adminizer 4.7.0-build.221 → 4.7.0-build.223
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/{RelationDialogStack-DI2bZxQX.js → RelationDialogStack-BMZo1QRZ.js} +3 -3
- package/assets/add-0KaxrScv.js +1 -0
- package/assets/add-group-CPXkGTr7.js +1 -0
- package/assets/add-group-form-C6VpxJEt.js +1 -0
- package/assets/add-user-Byfiq50b.js +1 -0
- package/assets/add-user-form-C8yO8lrZ.js +1 -0
- package/assets/app-AKbNCggP.css +1 -0
- package/assets/app-layout-Bjgva97i.js +1 -0
- package/assets/app-shell-C-KGeyHm.js +1 -0
- package/assets/app-sidebar-BMWQjQU6.js +1 -0
- package/assets/app-sidebar-header-DNVyCDYl.js +1 -0
- package/assets/app.js +40 -40
- package/assets/breadcrumbs-DY2-f0eK.js +1 -0
- package/assets/{catalog-6ZZjWdFs.js → catalog-DnoADWcE.js} +1 -1
- package/assets/dashboard-2at2nhO0.js +3 -0
- package/assets/date-picker-CxixWjRa.js +1 -0
- package/assets/del-modal-Dvy0zeoq.js +1 -0
- package/assets/dynamic-controls-DNj9IjO2.js +1 -0
- package/assets/geo-json-DqtGUsLr.js +1 -0
- package/assets/handsontable-BIbTrWKR.js +336 -0
- package/assets/history-DYGYeEIh.js +1 -0
- package/assets/home-CKNnNJjN.js +2 -0
- package/assets/icon-BNGKzGZ7.js +1 -0
- package/assets/init-user-t-d_vNLL.js +1 -0
- package/assets/input-error-DWqoFEJV.js +1 -0
- package/assets/{jsoneditor-DVNQmA6G.js → jsoneditor-BHznoqRl.js} +80 -80
- package/assets/{list-CFU0-TgN.js → list-CzIUr2De.js} +2 -2
- package/assets/login-Clo4HA5m.js +1 -0
- package/assets/manifest.json +214 -214
- package/assets/material-icon-BHJ7WqTP.js +1 -0
- package/assets/{media-manager-WcKe1EvD.js → media-manager-CFw0tBCd.js} +3 -3
- package/assets/module-Bev0HlY0.js +1 -0
- package/assets/{monaco-Bl4zdWCn.js → monaco-zQv4SXpG.js} +3 -3
- package/assets/nav-footer-CXtbtjAl.js +1 -0
- package/assets/{nav-main-rTH0PfDw.js → nav-main-D7C3gPnk.js} +1 -1
- package/assets/nav-user-FMUw60LO.js +1 -0
- package/assets/notification-CS-8eIU-.js +20 -0
- package/assets/pagination-render-h4cwZ-B5.js +1 -0
- package/assets/register-CJU1C00h.js +1 -0
- package/assets/ru-1NdRIQNV.js +1 -0
- package/assets/theme-switcher-CMQ9tR1p.js +1 -0
- package/assets/toast-editor-ofn75pVw.js +668 -0
- package/assets/user-filters-list-D_1ONxMq.js +1 -0
- package/assets/user-info-CBo3gU6R.js +1 -0
- package/assets/user-menu-content-DxCnUJ_F.js +1 -0
- package/assets/welcome-DwQqpZox.js +1 -0
- package/controllers/widgets/Info.js +1 -1
- package/lib/widgets/abstractCustom.d.ts +2 -0
- package/lib/widgets/abstractCustom.js +2 -0
- package/lib/widgets/abstractInfo.d.ts +4 -1
- package/lib/widgets/abstractWidgetBase.d.ts +2 -0
- package/lib/widgets/abstractWidgetBase.js +2 -0
- package/lib/widgets/widgetHandler.d.ts +1 -0
- package/lib/widgets/widgetHandler.js +16 -11
- package/package.json +1 -1
- package/ui/components/VanillaJSONEditor.d.ts +1 -1
- package/ui/components/handsontable.d.ts +1 -1
- package/ui/components/ui/avatar.d.ts +3 -3
- package/ui/components/ui/badge.d.ts +1 -1
- package/ui/components/ui/breadcrumb.d.ts +7 -7
- package/ui/components/ui/button.d.ts +1 -1
- package/ui/components/ui/calendar.d.ts +1 -1
- package/ui/components/ui/card.d.ts +7 -7
- package/ui/components/ui/checkbox.d.ts +1 -1
- package/ui/components/ui/collapsible.d.ts +3 -3
- package/ui/components/ui/command.d.ts +9 -9
- package/ui/components/ui/context-menu.d.ts +15 -15
- package/ui/components/ui/dialog-stack.d.ts +10 -10
- package/ui/components/ui/dialog.d.ts +10 -10
- package/ui/components/ui/dropdown-menu.d.ts +15 -15
- package/ui/components/ui/input.d.ts +1 -1
- package/ui/components/ui/label.d.ts +1 -1
- package/ui/components/ui/menubar.d.ts +16 -16
- package/ui/components/ui/pagination.d.ts +7 -7
- package/ui/components/ui/popover.d.ts +4 -4
- package/ui/components/ui/select.d.ts +10 -10
- package/ui/components/ui/separator.d.ts +1 -1
- package/ui/components/ui/sheet.d.ts +8 -8
- package/ui/components/ui/sidebar.d.ts +23 -23
- package/ui/components/ui/skeleton.d.ts +1 -1
- package/ui/components/ui/slider.d.ts +1 -1
- package/ui/components/ui/sonner.d.ts +1 -1
- package/ui/components/ui/switch.d.ts +1 -1
- package/ui/components/ui/table.d.ts +8 -8
- package/ui/components/ui/tabs.d.ts +4 -4
- package/ui/components/ui/textarea.d.ts +1 -1
- package/ui/components/ui/tooltip.d.ts +4 -4
- package/assets/add-4213XScp.js +0 -1
- package/assets/add-group--F1XxfJ1.js +0 -1
- package/assets/add-group-form-DKRXC2n-.js +0 -1
- package/assets/add-user-b9HfMq7z.js +0 -1
- package/assets/add-user-form-UXAToWQd.js +0 -1
- package/assets/app-Clx8f5hd.css +0 -1
- package/assets/app-layout-C02ja4OI.js +0 -1
- package/assets/app-shell-D8wtkECO.js +0 -1
- package/assets/app-sidebar-BR5_zwxj.js +0 -1
- package/assets/app-sidebar-header-BZbIBQjq.js +0 -1
- package/assets/breadcrumbs-CODaqVkB.js +0 -1
- package/assets/dashboard-CftAdKiH.js +0 -3
- package/assets/date-picker-DSOkNiNo.js +0 -1
- package/assets/del-modal-Cd4M7af8.js +0 -1
- package/assets/dynamic-controls-BsrJhPDY.js +0 -1
- package/assets/geo-json-CzR5JBXL.js +0 -1
- package/assets/handsontable-BI98OF5R.js +0 -336
- package/assets/history-DLHSU7Ak.js +0 -1
- package/assets/home-NcQ7nnU0.js +0 -2
- package/assets/icon-C2JNaLxH.js +0 -1
- package/assets/init-user-D2HSyXup.js +0 -1
- package/assets/input-error-CH2caTtO.js +0 -1
- package/assets/login-DFSLEO17.js +0 -1
- package/assets/material-icon-Bx9pGQiQ.js +0 -1
- package/assets/module-CT7PC6pc.js +0 -1
- package/assets/nav-footer-BiSQkPt4.js +0 -1
- package/assets/nav-user-Bj6cWs0a.js +0 -1
- package/assets/notification-Bi-PX87D.js +0 -20
- package/assets/pagination-render-AKJvTIRA.js +0 -1
- package/assets/register-BTP4uxsK.js +0 -1
- package/assets/ru-eW0WKkga.js +0 -1
- package/assets/theme-switcher-Dm8EOGzx.js +0 -1
- package/assets/toast-editor-DOg_gvSp.js +0 -668
- package/assets/user-filters-list-YUfR4XMI.js +0 -1
- package/assets/user-info-BgSbT02v.js +0 -1
- package/assets/user-menu-content-TQTXHIv6.js +0 -1
- package/assets/welcome-vLwTu1R6.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./toast-editor-
|
|
2
|
-
import{bX as Bn,c8 as w,c1 as fn,aw as Bb,aQ as Vb,b7 as Nb,ba as Ob,bb as Db,b8 as zb,b9 as Fb,bu as Ub,bL as Hb,y as No,ci as Aa,an as jb,bw as jl,a_ as Wb,aN as qb,b as $b,bB as Gb,bF as Kb,bG as hr,bE as en,bC as Zb,bD as $t,aA as Jr,r as Mt,k as Jb,Z as Yb,$ as Xb,a1 as Qb,ab as ew,a2 as Bh,a8 as Vh,a3 as Nh,a4 as Oh,ch as tw,cb as Wl,az as ql,aP as $l,c6 as Gl,c4 as Kl,ay as Oo,bP as iw,bN as nw,bQ as rw,av as sw,bO as ow,bt as aw}from"./app.js";import{aX as Nt,aZ as A}from"./handsontable-BI98OF5R.js";import{Icon as Do}from"./icon-C2JNaLxH.js";import{a as Dh,_ as $i}from"./jsoneditor-DVNQmA6G.js";import wi from"./dynamic-controls-BsrJhPDY.js";import Zl from"./input-error-CH2caTtO.js";function lw(n,e){for(var t=0;t<e.length;t++){const i=e[t];if(typeof i!="string"&&!Array.isArray(i)){for(const r in i)if(r!=="default"&&!(r in n)){const s=Object.getOwnPropertyDescriptor(i,r);s&&Object.defineProperty(n,r,s.get?s:{enumerable:!0,get:()=>i[r]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}function cw(){const n={resolve:null,promise:null};return n.promise=new Promise(e=>{n.resolve=e}),n}function uw(n){let e=null;return(...t)=>(e||(e={current:n(...t)}),e.current)}const _e=new Array(256).fill("").map((n,e)=>("0"+e.toString(16)).slice(-2));function dw(){const[n,e,t,i]=crypto.getRandomValues(new Uint32Array(4));return"e"+_e[n>>0&255]+_e[n>>8&255]+_e[n>>16&255]+_e[n>>24&255]+_e[e>>0&255]+_e[e>>8&255]+_e[e>>16&255]+_e[e>>24&255]+_e[t>>0&255]+_e[t>>8&255]+_e[t>>16&255]+_e[t>>24&255]+_e[i>>0&255]+_e[i>>8&255]+_e[i>>16&255]+_e[i>>24&255]}function zh(n){return!!n&&/^\d+\.\d+\.\d+/.test(n)}function hw(n){if(!zh(n))throw new Error(`Invalid semantic version: ${n||"<blank>"}.`);const[e,t,i]=n.split(".");return{major:Number.parseInt(e,10),minor:Number.parseInt(t,10),patch:Number.parseInt(i,10)}}function Fh(n){return n?["nightly","alpha","internal","nightly-","staging"].some(e=>n.includes(e)):!1}function mw(n){return zh(n)||Fh(n)}function gw(n,e){const t=n.extraPlugins||[];return{...n,extraPlugins:[...t,...e.filter(i=>!t.includes(i))]}}function fw(n){if(Fh(n))return 3;const{major:e}=hw(n);switch(!0){case e>=44:return 3;case e>=38:return 2;default:return 1}}function pw(){const{CKEDITOR_VERSION:n,CKEDITOR:e}=window;return mw(n)?{source:e?"cdn":"npm",version:n}:null}function bw(){const n=pw();return n?fw(n.version):null}function Uh(n,e){switch(e||=bw()||void 0,e){case 1:case 2:return n===void 0;case 3:return n==="GPL";default:return!1}}function ww(n,e){return function(i){Uh(i.config.get("licenseKey"))||i.on("collectUsageData",(r,{setUsageData:s})=>{s(`integration.${n}`,e)})}}var yw=Object.defineProperty,vw=(n,e,t)=>e in n?yw(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Me=(n,e,t)=>vw(n,typeof e!="symbol"?e+"":e,t);const Hh=class jh{constructor(e,t){Me(this,"_lifecycle"),Me(this,"_element"),Me(this,"_releaseLock",null),Me(this,"_value",null),Me(this,"_afterMountCallbacks",[]),Me(this,"_state",{destroyedBeforeInitialization:!1,mountingInProgress:null}),Me(this,"release",uw(()=>{const{_releaseLock:i,_state:r,_element:s,_lifecycle:o}=this;r.mountingInProgress?r.mountingInProgress.then(()=>o.unmount({element:s,mountResult:this.value})).catch(a=>{console.error("Semaphore unmounting error:",a)}).then(i.resolve).then(()=>{this._value=null}):(r.destroyedBeforeInitialization=!0,i.resolve())})),this._element=e,this._lifecycle=t,this._lock()}get value(){return this._value}unsafeSetValue(e){this._value=e,this._afterMountCallbacks.forEach(t=>t(e)),this._afterMountCallbacks=[]}runAfterMount(e){const{_value:t,_afterMountCallbacks:i}=this;t?e(t):i.push(e)}_lock(){const{_semaphores:e}=jh,{_state:t,_element:i,_lifecycle:r}=this,s=e.get(i)||Promise.resolve(null),o=cw();this._releaseLock=o;const a=s.then(()=>t.destroyedBeforeInitialization?Promise.resolve(void 0):(t.mountingInProgress=r.mount().then(l=>(l&&this.unsafeSetValue(l),l)),t.mountingInProgress)).then(async l=>{l&&r.afterMount&&await r.afterMount({element:i,mountResult:l})}).then(()=>o.promise).catch(l=>{console.error("Semaphore mounting error:",l)}).then(()=>{e.get(i)===a&&e.delete(i)});e.set(i,a)}};Me(Hh,"_semaphores",new Map);let kw=Hh;const _w="$__CKEditorReactContextMetadata";function Cw(n,e){return{...e,[_w]:n}}const Lw=Nt.createContext(null),Tw=n=>!!n&&typeof n=="object"&&"status"in n&&["initializing","initialized","error"].includes(n.status),Wh=n=>e=>Tw(e)&&e.status===n,Jl=Wh("initializing"),Ew=n=>Wh("initialized")(n)&&n.watchdog.state==="ready";const xw=ww("react",{version:"9.5.0",frameworkVersion:Nt.version});function Sw(n){return Uh(n.licenseKey)?n:gw(n,[xw])}const Gs="Lock from React integration (@ckeditor/ckeditor5-react)";class qh extends Nt.Component{constructor(e){super(e),Me(this,"domContainer",Nt.createRef()),Me(this,"editorSemaphore",null),this._checkVersion()}_checkVersion(){const{CKEDITOR_VERSION:e}=window;if(!e)return console.warn('Cannot find the "CKEDITOR_VERSION" in the "window" scope.');const[t]=e.split(".").map(Number);t>=42||e.startsWith("0.0.0")||console.warn("The <CKEditor> component requires using CKEditor 5 in version 42+ or nightly build.")}get _semaphoreValue(){const{editorSemaphore:e}=this;return e?e.value:null}get watchdog(){const{_semaphoreValue:e}=this;return e?e.watchdog:null}get editor(){const{_semaphoreValue:e}=this;return e?e.instance:null}shouldComponentUpdate(e){const{props:t,editorSemaphore:i}=this;return e.id!==t.id||e.disableWatchdog!==t.disableWatchdog?!0:(i&&(i.runAfterMount(({instance:r})=>{this._shouldUpdateEditorData(t,e,r)&&r.data.set(e.data)}),"disabled"in e&&i.runAfterMount(({instance:r})=>{e.disabled?r.enableReadOnlyMode(Gs):r.disableReadOnlyMode(Gs)})),!1)}componentDidMount(){Jl(this.context)||this._initLifeCycleSemaphore()}componentDidUpdate(){Jl(this.context)||this._initLifeCycleSemaphore()}componentWillUnmount(){this._unlockLifeCycleSemaphore()}_unlockLifeCycleSemaphore(){this.editorSemaphore&&(this.editorSemaphore.release(),this.editorSemaphore=null)}_initLifeCycleSemaphore(){this._unlockLifeCycleSemaphore(),this.editorSemaphore=new kw(this.domContainer.current,{mount:async()=>this._initializeEditor(),afterMount:({mountResult:e})=>{const{onReady:t}=this.props;t&&this.domContainer.current!==null&&t(e.instance)},unmount:async({element:e,mountResult:t})=>{const{onAfterDestroy:i}=this.props;try{await this._destroyEditor(t),e.innerHTML=""}finally{i&&i(t.instance)}}})}render(){return Nt.createElement("div",{ref:this.domContainer})}async _initializeEditor(){if(this.props.disableWatchdog)return{instance:await this._createEditor(this.domContainer.current,this._getConfig()),watchdog:null};const e=Ew(this.context)?new Aw(this.context.watchdog):new this.props.editor.EditorWatchdog(this.props.editor,this.props.watchdogConfig),t={current:0};return e.setCreator(async(i,r)=>{var s;const{editorSemaphore:o}=this,{onAfterDestroy:a}=this.props;t.current>0&&a&&((s=o?.value)!=null&&s.instance)&&a(o.value.instance);const l=await this._createEditor(i,r);return o&&t.current>0&&(o.unsafeSetValue({instance:l,watchdog:e}),setTimeout(()=>{this.props.onReady&&this.props.onReady(e.editor)})),t.current++,l}),e.on("error",(i,{error:r,causesRestart:s})=>{(this.props.onError||console.error)(r,{phase:"runtime",willEditorRestart:s})}),await e.create(this.domContainer.current,this._getConfig()).catch(i=>{(this.props.onError||console.error)(i,{phase:"initialization",willEditorRestart:!1})}),{watchdog:e,instance:e.editor}}_createEditor(e,t){const{contextItemMetadata:i}=this.props;return i&&(t=Cw(i,t)),this.props.editor.create(e,Sw(t)).then(r=>{if("disabled"in this.props){this.props.disabled&&r.enableReadOnlyMode(Gs)}const s=r.model.document,o=r.editing.view.document;return s.on("change:data",a=>{this.props.onChange&&this.props.onChange(a,r)}),o.on("focus",a=>{this.props.onFocus&&this.props.onFocus(a,r)}),o.on("blur",a=>{this.props.onBlur&&this.props.onBlur(a,r)}),r})}async _destroyEditor(e){const{watchdog:t,instance:i}=e;return new Promise((r,s)=>{setTimeout(async()=>{try{if(t)return await t.destroy(),r();if(i)return await i.destroy(),r();r()}catch(o){console.error(o),s(o)}})})}_shouldUpdateEditorData(e,t,i){return!(e.data===t.data||i.data.get()===t.data)}_getConfig(){const e=this.props.config||{};return this.props.data&&e.initialData&&console.warn("Editor data should be provided either using `config.initialData` or `content` property. The config value takes precedence over `content` property and will be used when both are specified."),{...e,initialData:e.initialData||this.props.data||""}}}Me(qh,"contextType",Lw);class Aw{constructor(e){Me(this,"_contextWatchdog"),Me(this,"_id"),Me(this,"_creator"),this._contextWatchdog=e,this._id=dw()}setCreator(e){this._creator=e}create(e,t){return this._contextWatchdog.add({sourceElementOrData:e,config:t,creator:this._creator,id:this._id,type:"editor"})}on(e,t){this._contextWatchdog.on("itemError",(i,{itemId:r,error:s})=>{r===this._id&&t(null,{error:s,causesRestart:void 0})})}destroy(){return this._contextWatchdog.state==="ready"?this._contextWatchdog.remove(this._id):Promise.resolve()}get editor(){return this._contextWatchdog.getItem(this._id)}}function $h(...n){return e=>{n.forEach(t=>{typeof t=="function"?t(e):t!=null&&(t.current=e)})}}const Iw=A.memo(A.forwardRef(({id:n,semaphore:e,rootName:t},i)=>{const r=A.useRef(null);return A.useEffect(()=>{let s,o;return e.runAfterMount(({instance:a})=>{if(!r.current)return;o=a;const{ui:l,model:c}=o,u=c.document.getRoot(t);u&&o.ui.getEditableElement(t)&&o.detachEditable(u),s=l.view.createEditable(t,r.current),l.addEditable(s),a.editing.view.forceRender()}),()=>{if(o&&o.state!=="destroyed"&&r.current){const a=o.model.document.getRoot(t);a&&o.detachEditable(a)}}},[e.revision]),Nt.createElement("div",{key:e.revision,id:n,ref:$h(i,r)})}));Iw.displayName="EditorEditable";const Pw=A.forwardRef(({editor:n},e)=>{const t=A.useRef(null);return A.useEffect(()=>{const i=t.current;if(!n||!i)return;const r=n.ui.view.toolbar.element;return i.appendChild(r),()=>{i.contains(r)&&i.removeChild(r)}},[n&&n.id]),Nt.createElement("div",{ref:$h(t,e)})});Pw.displayName="EditorToolbarWrapper";function Rw(){}function Ia(n){return n==null||typeof n!="object"&&typeof n!="function"}function Pa(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function Mw(n){if(Ia(n))return n;if(Array.isArray(n)||Pa(n)||n instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&n instanceof SharedArrayBuffer)return n.slice(0);const e=Object.getPrototypeOf(n),t=e.constructor;if(n instanceof Date||n instanceof Map||n instanceof Set)return new t(n);if(n instanceof RegExp){const i=new t(n);return i.lastIndex=n.lastIndex,i}if(n instanceof DataView)return new t(n.buffer.slice(0));if(n instanceof Error){const i=new t(n.message);return i.stack=n.stack,i.name=n.name,i.cause=n.cause,i}if(typeof File<"u"&&n instanceof File)return new t([n],n.name,{type:n.type,lastModified:n.lastModified});if(typeof n=="object"){const i=Object.create(e);return Object.assign(i,n)}return n}function zo(n){return typeof n=="object"&&n!==null}function Gh(n){return Object.getOwnPropertySymbols(n).filter(e=>Object.prototype.propertyIsEnumerable.call(n,e))}function Kh(n){return n==null?n===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(n)}const Bw="[object RegExp]",Zh="[object String]",Jh="[object Number]",Yh="[object Boolean]",Xh="[object Arguments]",Vw="[object Symbol]",Nw="[object Date]",Ow="[object Map]",Dw="[object Set]",zw="[object Array]",Fw="[object ArrayBuffer]",Uw="[object Object]",Hw="[object DataView]",jw="[object Uint8Array]",Ww="[object Uint8ClampedArray]",qw="[object Uint16Array]",$w="[object Uint32Array]",Gw="[object Int8Array]",Kw="[object Int16Array]",Zw="[object Int32Array]",Jw="[object Float32Array]",Yw="[object Float64Array]";function Xw(n,e){return Pi(n,void 0,n,new Map,e)}function Pi(n,e,t,i=new Map,r=void 0){const s=r?.(n,e,t,i);if(s!=null)return s;if(Ia(n))return n;if(i.has(n))return i.get(n);if(Array.isArray(n)){const o=new Array(n.length);i.set(n,o);for(let a=0;a<n.length;a++)o[a]=Pi(n[a],a,t,i,r);return Object.hasOwn(n,"index")&&(o.index=n.index),Object.hasOwn(n,"input")&&(o.input=n.input),o}if(n instanceof Date)return new Date(n.getTime());if(n instanceof RegExp){const o=new RegExp(n.source,n.flags);return o.lastIndex=n.lastIndex,o}if(n instanceof Map){const o=new Map;i.set(n,o);for(const[a,l]of n)o.set(a,Pi(l,a,t,i,r));return o}if(n instanceof Set){const o=new Set;i.set(n,o);for(const a of n)o.add(Pi(a,void 0,t,i,r));return o}if(typeof Buffer<"u"&&Buffer.isBuffer(n))return n.subarray();if(Pa(n)){const o=new(Object.getPrototypeOf(n)).constructor(n.length);i.set(n,o);for(let a=0;a<n.length;a++)o[a]=Pi(n[a],a,t,i,r);return o}if(n instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&n instanceof SharedArrayBuffer)return n.slice(0);if(n instanceof DataView){const o=new DataView(n.buffer.slice(0),n.byteOffset,n.byteLength);return i.set(n,o),Yt(o,n,t,i,r),o}if(typeof File<"u"&&n instanceof File){const o=new File([n],n.name,{type:n.type});return i.set(n,o),Yt(o,n,t,i,r),o}if(n instanceof Blob){const o=new Blob([n],{type:n.type});return i.set(n,o),Yt(o,n,t,i,r),o}if(n instanceof Error){const o=new n.constructor;return i.set(n,o),o.message=n.message,o.name=n.name,o.stack=n.stack,o.cause=n.cause,Yt(o,n,t,i,r),o}if(typeof n=="object"&&Qw(n)){const o=Object.create(Object.getPrototypeOf(n));return i.set(n,o),Yt(o,n,t,i,r),o}return n}function Yt(n,e,t=n,i,r){const s=[...Object.keys(e),...Gh(e)];for(let o=0;o<s.length;o++){const a=s[o],l=Object.getOwnPropertyDescriptor(n,a);(l==null||l.writable)&&(n[a]=Pi(e[a],a,t,i,r))}}function Qw(n){switch(Kh(n)){case Xh:case zw:case Fw:case Hw:case Yh:case Nw:case Jw:case Yw:case Gw:case Kw:case Zw:case Ow:case Jh:case Uw:case Bw:case Dw:case Zh:case Vw:case jw:case Ww:case qw:case $w:return!0;default:return!1}}function Yl(n){return typeof n=="function"}function ey(n){return n!==null&&(typeof n=="object"||typeof n=="function")}function Qh(n,e){return Xw(n,(t,i,r,s)=>{const o=e?.(t,i,r,s);if(o!=null)return o;if(typeof n=="object")switch(Object.prototype.toString.call(n)){case Jh:case Zh:case Yh:{const a=new n.constructor(n?.valueOf());return Yt(a,n),a}case Xh:{const a={};return Yt(a,n),a.length=n.length,a[Symbol.iterator]=n[Symbol.iterator],a}default:return}})}function Xl(n){return Qh(n)}function Ql(n){return n!==null&&typeof n=="object"&&Kh(n)==="[object Arguments]"}function ec(n){return typeof n=="string"||n instanceof String}function ty(n){return Pa(n)}function Xt(n){if(typeof n!="object"||n==null)return!1;if(Object.getPrototypeOf(n)===null)return!0;if(Object.prototype.toString.call(n)!=="[object Object]"){const t=n[Symbol.toStringTag];return t==null||!Object.getOwnPropertyDescriptor(n,Symbol.toStringTag)?.writable?!1:n.toString()===`[object ${t}]`}let e=n;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(n)===e}function iy(n,...e){const t=e.slice(0,-1),i=e[e.length-1];let r=n;for(let s=0;s<t.length;s++){const o=t[s];r=Nr(r,o,i,new Map)}return r}function Nr(n,e,t,i){if(Ia(n)&&(n=Object(n)),e==null||typeof e!="object")return n;if(i.has(e))return Mw(i.get(e));if(i.set(e,n),Array.isArray(e)){e=e.slice();for(let s=0;s<e.length;s++)e[s]=e[s]??void 0}const r=[...Object.keys(e),...Gh(e)];for(let s=0;s<r.length;s++){const o=r[s];let a=e[o],l=n[o];if(Ql(a)&&(a={...a}),Ql(l)&&(l={...l}),typeof Buffer<"u"&&Buffer.isBuffer(a)&&(a=Xl(a)),Array.isArray(a))if(typeof l=="object"&&l!=null){const u=[],d=Reflect.ownKeys(l);for(let h=0;h<d.length;h++){const m=d[h];u[m]=l[m]}l=u}else l=[];const c=t(l,a,o,n,e,i);c!=null?n[o]=c:Array.isArray(a)||zo(l)&&zo(a)?n[o]=Nr(l,a,t,i):l==null&&Xt(a)?n[o]=Nr({},a,t,i):l==null&&ty(a)?n[o]=Xl(a):(l===void 0||a!==void 0)&&(n[o]=a)}return n}function ny(n,...e){return iy(n,...e,Rw)}function em(n){return zo(n)&&n.nodeType===1&&!Xt(n)}let Fo;try{Fo={window,document}}catch{Fo={window:{},document:{}}}var E=Fo;function ry(){try{return navigator.userAgent.toLowerCase()}catch{return""}}const Gt=ry(),R={isMac:tm(Gt),isWindows:sy(Gt),isGecko:oy(Gt),isSafari:ay(Gt),isiOS:ly(Gt),isAndroid:cy(Gt),isBlink:uy(Gt),get isMediaForcedColors(){return dy()}};function tm(n){return n.indexOf("macintosh")>-1}function sy(n){return n.indexOf("windows")>-1}function oy(n){return!!n.match(/gecko\/\d+/)}function ay(n){return n.indexOf(" applewebkit/")>-1&&n.indexOf("chrome")===-1}function ly(n){return!!n.match(/iphone|ipad/i)||tm(n)&&navigator.maxTouchPoints>0}function cy(n){return n.indexOf("android")>-1}function uy(n){return n.indexOf("chrome/")>-1&&n.indexOf("edge/")<0}function dy(){return E.window.matchMedia?E.window.matchMedia("(forced-colors: active)").matches:!1}function im(n,e,t,i){t=t||function(l,c){return l===c};const r=Array.isArray(n)?n:Array.prototype.slice.call(n),s=Array.isArray(e)?e:Array.prototype.slice.call(e),o=hy(r,s,t);return i?gy(o,s.length):my(s,o)}function hy(n,e,t){const i=tc(n,e,t);if(i===-1)return{firstIndex:-1,lastIndexOld:-1,lastIndexNew:-1};const r=ic(n,i),s=ic(e,i),o=tc(r,s,t),a=n.length-o,l=e.length-o;return{firstIndex:i,lastIndexOld:a,lastIndexNew:l}}function tc(n,e,t){for(let i=0;i<Math.max(n.length,e.length);i++)if(n[i]===void 0||e[i]===void 0||!t(n[i],e[i]))return i;return-1}function ic(n,e){return n.slice(e).reverse()}function my(n,e){const t=[],{firstIndex:i,lastIndexOld:r,lastIndexNew:s}=e;return s-i>0&&t.push({index:i,type:"insert",values:n.slice(i,s)}),r-i>0&&t.push({index:i+(s-i),type:"delete",howMany:r-i}),t}function gy(n,e){const{firstIndex:t,lastIndexOld:i,lastIndexNew:r}=n;if(t===-1)return Array(e).fill("equal");let s=[];return t>0&&(s=s.concat(Array(t).fill("equal"))),r-t>0&&(s=s.concat(Array(r-t).fill("insert"))),i-t>0&&(s=s.concat(Array(i-t).fill("delete"))),r<e&&(s=s.concat(Array(e-r).fill("equal"))),s}function Di(n,e,t){t=t||function(f,b){return f===b};const i=n.length,r=e.length;if(i>200||r>200||i+r>300)return Di.fastDiff(n,e,t,!0);let s,o;if(r<i){const f=n;n=e,e=f,s="delete",o="insert"}else s="insert",o="delete";const a=n.length,l=e.length,c=l-a,u={},d={};function h(f){const b=(d[f-1]!==void 0?d[f-1]:-1)+1,y=d[f+1]!==void 0?d[f+1]:-1,C=b>y?-1:1;u[f+C]&&(u[f]=u[f+C].slice(0)),u[f]||(u[f]=[]),u[f].push(b>y?s:o);let L=Math.max(b,y),O=L-f;for(;O<a&&L<l&&t(n[O],e[L]);)O++,L++,u[f].push("equal");return L}let m=0,g;do{for(g=-m;g<c;g++)d[g]=h(g);for(g=c+m;g>c;g--)d[g]=h(g);d[c]=h(c),m++}while(d[c]!==l);return u[c].slice(1)}Di.fastDiff=im;function nc(){return function n(){n.called=!0}}class _t{source;name;path;stop;off;return;constructor(e,t){this.source=e,this.name=t,this.path=[],this.stop=nc(),this.off=nc()}}const Ce=new Array(256).fill("").map((n,e)=>("0"+e.toString(16)).slice(-2));function Pe(){const[n,e,t,i]=crypto.getRandomValues(new Uint32Array(4));return"e"+Ce[n>>0&255]+Ce[n>>8&255]+Ce[n>>16&255]+Ce[n>>24&255]+Ce[e>>0&255]+Ce[e>>8&255]+Ce[e>>16&255]+Ce[e>>24&255]+Ce[t>>0&255]+Ce[t>>8&255]+Ce[t>>16&255]+Ce[t>>24&255]+Ce[i>>0&255]+Ce[i>>8&255]+Ce[i>>16&255]+Ce[i>>24&255]}const Ot={get(n="normal"){return typeof n!="number"?this[n]||this.normal:n},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5};function fy(n,e){const t=Ot.get(e.priority);let i=0,r=n.length;for(;i<r;){const s=i+r>>1;Ot.get(n[s].priority)<t?r=s:i=s+1}n.splice(i,0,e)}const py="https://ckeditor.com/docs/ckeditor5/latest/support/error-codes.html";class p extends Error{context;data;constructor(e,t,i){super(wy(e,i)),this.name="CKEditorError",this.context=t,this.data=i}is(e){return e==="CKEditorError"}static rethrowUnexpectedError(e,t){if(e.is&&e.is("CKEditorError"))throw e;const i=new p(e.message,t);throw i.stack=e.stack,i}}function H(n,e){console.warn(...rm(n,e))}function by(n,e){console.error(...rm(n,e))}function nm(n){return`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./toast-editor-ofn75pVw.js","./app.js","./jsoneditor-BHznoqRl.js","./handsontable-BIbTrWKR.js","./monaco-zQv4SXpG.js","./app-AKbNCggP.css","./geo-json-DqtGUsLr.js","./media-manager-CFw0tBCd.js","./icon-BNGKzGZ7.js","./dynamic-controls-DNj9IjO2.js","./input-error-DWqoFEJV.js","./media-manager-BZPjl98I.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{h as Bn,j as w,aB as fn,I as Bb,bV as Vb,S as Nb,c as Ob,d as Db,e as zb,f as Fb,bW as Ub,aR as Hb,g as No,m as Aa,E as jb,bX as jl,P as Wb,bY as qb,be as $b,a5 as Gb,a6 as Kb,a7 as hr,a8 as en,a9 as Zb,aa as $t,L as Jr,B as Mt,ab as Jb,ac as Yb,ad as Xb,ae as Qb,af as ew,D as Bh,i as Vh,k as Nh,l as Oh,aj as tw,bZ as Wl,ai as ql,bg as $l,b_ as Gl,b$ as Kl,b as Oo,N as iw,O as nw,Q as rw,bh as sw,R as ow,n as aw}from"./app.js";import{e as Nt,r as A}from"./handsontable-BIbTrWKR.js";import{Icon as Do}from"./icon-BNGKzGZ7.js";import{g as Dh,_ as $i}from"./jsoneditor-BHznoqRl.js";import wi from"./dynamic-controls-DNj9IjO2.js";import Zl from"./input-error-DWqoFEJV.js";function lw(n,e){for(var t=0;t<e.length;t++){const i=e[t];if(typeof i!="string"&&!Array.isArray(i)){for(const r in i)if(r!=="default"&&!(r in n)){const s=Object.getOwnPropertyDescriptor(i,r);s&&Object.defineProperty(n,r,s.get?s:{enumerable:!0,get:()=>i[r]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}function cw(){const n={resolve:null,promise:null};return n.promise=new Promise(e=>{n.resolve=e}),n}function uw(n){let e=null;return(...t)=>(e||(e={current:n(...t)}),e.current)}const _e=new Array(256).fill("").map((n,e)=>("0"+e.toString(16)).slice(-2));function dw(){const[n,e,t,i]=crypto.getRandomValues(new Uint32Array(4));return"e"+_e[n>>0&255]+_e[n>>8&255]+_e[n>>16&255]+_e[n>>24&255]+_e[e>>0&255]+_e[e>>8&255]+_e[e>>16&255]+_e[e>>24&255]+_e[t>>0&255]+_e[t>>8&255]+_e[t>>16&255]+_e[t>>24&255]+_e[i>>0&255]+_e[i>>8&255]+_e[i>>16&255]+_e[i>>24&255]}function zh(n){return!!n&&/^\d+\.\d+\.\d+/.test(n)}function hw(n){if(!zh(n))throw new Error(`Invalid semantic version: ${n||"<blank>"}.`);const[e,t,i]=n.split(".");return{major:Number.parseInt(e,10),minor:Number.parseInt(t,10),patch:Number.parseInt(i,10)}}function Fh(n){return n?["nightly","alpha","internal","nightly-","staging"].some(e=>n.includes(e)):!1}function mw(n){return zh(n)||Fh(n)}function gw(n,e){const t=n.extraPlugins||[];return{...n,extraPlugins:[...t,...e.filter(i=>!t.includes(i))]}}function fw(n){if(Fh(n))return 3;const{major:e}=hw(n);switch(!0){case e>=44:return 3;case e>=38:return 2;default:return 1}}function pw(){const{CKEDITOR_VERSION:n,CKEDITOR:e}=window;return mw(n)?{source:e?"cdn":"npm",version:n}:null}function bw(){const n=pw();return n?fw(n.version):null}function Uh(n,e){switch(e||=bw()||void 0,e){case 1:case 2:return n===void 0;case 3:return n==="GPL";default:return!1}}function ww(n,e){return function(i){Uh(i.config.get("licenseKey"))||i.on("collectUsageData",(r,{setUsageData:s})=>{s(`integration.${n}`,e)})}}var yw=Object.defineProperty,vw=(n,e,t)=>e in n?yw(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Me=(n,e,t)=>vw(n,typeof e!="symbol"?e+"":e,t);const Hh=class jh{constructor(e,t){Me(this,"_lifecycle"),Me(this,"_element"),Me(this,"_releaseLock",null),Me(this,"_value",null),Me(this,"_afterMountCallbacks",[]),Me(this,"_state",{destroyedBeforeInitialization:!1,mountingInProgress:null}),Me(this,"release",uw(()=>{const{_releaseLock:i,_state:r,_element:s,_lifecycle:o}=this;r.mountingInProgress?r.mountingInProgress.then(()=>o.unmount({element:s,mountResult:this.value})).catch(a=>{console.error("Semaphore unmounting error:",a)}).then(i.resolve).then(()=>{this._value=null}):(r.destroyedBeforeInitialization=!0,i.resolve())})),this._element=e,this._lifecycle=t,this._lock()}get value(){return this._value}unsafeSetValue(e){this._value=e,this._afterMountCallbacks.forEach(t=>t(e)),this._afterMountCallbacks=[]}runAfterMount(e){const{_value:t,_afterMountCallbacks:i}=this;t?e(t):i.push(e)}_lock(){const{_semaphores:e}=jh,{_state:t,_element:i,_lifecycle:r}=this,s=e.get(i)||Promise.resolve(null),o=cw();this._releaseLock=o;const a=s.then(()=>t.destroyedBeforeInitialization?Promise.resolve(void 0):(t.mountingInProgress=r.mount().then(l=>(l&&this.unsafeSetValue(l),l)),t.mountingInProgress)).then(async l=>{l&&r.afterMount&&await r.afterMount({element:i,mountResult:l})}).then(()=>o.promise).catch(l=>{console.error("Semaphore mounting error:",l)}).then(()=>{e.get(i)===a&&e.delete(i)});e.set(i,a)}};Me(Hh,"_semaphores",new Map);let kw=Hh;const _w="$__CKEditorReactContextMetadata";function Cw(n,e){return{...e,[_w]:n}}const Lw=Nt.createContext(null),Tw=n=>!!n&&typeof n=="object"&&"status"in n&&["initializing","initialized","error"].includes(n.status),Wh=n=>e=>Tw(e)&&e.status===n,Jl=Wh("initializing"),Ew=n=>Wh("initialized")(n)&&n.watchdog.state==="ready";const xw=ww("react",{version:"9.5.0",frameworkVersion:Nt.version});function Sw(n){return Uh(n.licenseKey)?n:gw(n,[xw])}const Gs="Lock from React integration (@ckeditor/ckeditor5-react)";class qh extends Nt.Component{constructor(e){super(e),Me(this,"domContainer",Nt.createRef()),Me(this,"editorSemaphore",null),this._checkVersion()}_checkVersion(){const{CKEDITOR_VERSION:e}=window;if(!e)return console.warn('Cannot find the "CKEDITOR_VERSION" in the "window" scope.');const[t]=e.split(".").map(Number);t>=42||e.startsWith("0.0.0")||console.warn("The <CKEditor> component requires using CKEditor 5 in version 42+ or nightly build.")}get _semaphoreValue(){const{editorSemaphore:e}=this;return e?e.value:null}get watchdog(){const{_semaphoreValue:e}=this;return e?e.watchdog:null}get editor(){const{_semaphoreValue:e}=this;return e?e.instance:null}shouldComponentUpdate(e){const{props:t,editorSemaphore:i}=this;return e.id!==t.id||e.disableWatchdog!==t.disableWatchdog?!0:(i&&(i.runAfterMount(({instance:r})=>{this._shouldUpdateEditorData(t,e,r)&&r.data.set(e.data)}),"disabled"in e&&i.runAfterMount(({instance:r})=>{e.disabled?r.enableReadOnlyMode(Gs):r.disableReadOnlyMode(Gs)})),!1)}componentDidMount(){Jl(this.context)||this._initLifeCycleSemaphore()}componentDidUpdate(){Jl(this.context)||this._initLifeCycleSemaphore()}componentWillUnmount(){this._unlockLifeCycleSemaphore()}_unlockLifeCycleSemaphore(){this.editorSemaphore&&(this.editorSemaphore.release(),this.editorSemaphore=null)}_initLifeCycleSemaphore(){this._unlockLifeCycleSemaphore(),this.editorSemaphore=new kw(this.domContainer.current,{mount:async()=>this._initializeEditor(),afterMount:({mountResult:e})=>{const{onReady:t}=this.props;t&&this.domContainer.current!==null&&t(e.instance)},unmount:async({element:e,mountResult:t})=>{const{onAfterDestroy:i}=this.props;try{await this._destroyEditor(t),e.innerHTML=""}finally{i&&i(t.instance)}}})}render(){return Nt.createElement("div",{ref:this.domContainer})}async _initializeEditor(){if(this.props.disableWatchdog)return{instance:await this._createEditor(this.domContainer.current,this._getConfig()),watchdog:null};const e=Ew(this.context)?new Aw(this.context.watchdog):new this.props.editor.EditorWatchdog(this.props.editor,this.props.watchdogConfig),t={current:0};return e.setCreator(async(i,r)=>{var s;const{editorSemaphore:o}=this,{onAfterDestroy:a}=this.props;t.current>0&&a&&((s=o?.value)!=null&&s.instance)&&a(o.value.instance);const l=await this._createEditor(i,r);return o&&t.current>0&&(o.unsafeSetValue({instance:l,watchdog:e}),setTimeout(()=>{this.props.onReady&&this.props.onReady(e.editor)})),t.current++,l}),e.on("error",(i,{error:r,causesRestart:s})=>{(this.props.onError||console.error)(r,{phase:"runtime",willEditorRestart:s})}),await e.create(this.domContainer.current,this._getConfig()).catch(i=>{(this.props.onError||console.error)(i,{phase:"initialization",willEditorRestart:!1})}),{watchdog:e,instance:e.editor}}_createEditor(e,t){const{contextItemMetadata:i}=this.props;return i&&(t=Cw(i,t)),this.props.editor.create(e,Sw(t)).then(r=>{if("disabled"in this.props){this.props.disabled&&r.enableReadOnlyMode(Gs)}const s=r.model.document,o=r.editing.view.document;return s.on("change:data",a=>{this.props.onChange&&this.props.onChange(a,r)}),o.on("focus",a=>{this.props.onFocus&&this.props.onFocus(a,r)}),o.on("blur",a=>{this.props.onBlur&&this.props.onBlur(a,r)}),r})}async _destroyEditor(e){const{watchdog:t,instance:i}=e;return new Promise((r,s)=>{setTimeout(async()=>{try{if(t)return await t.destroy(),r();if(i)return await i.destroy(),r();r()}catch(o){console.error(o),s(o)}})})}_shouldUpdateEditorData(e,t,i){return!(e.data===t.data||i.data.get()===t.data)}_getConfig(){const e=this.props.config||{};return this.props.data&&e.initialData&&console.warn("Editor data should be provided either using `config.initialData` or `content` property. The config value takes precedence over `content` property and will be used when both are specified."),{...e,initialData:e.initialData||this.props.data||""}}}Me(qh,"contextType",Lw);class Aw{constructor(e){Me(this,"_contextWatchdog"),Me(this,"_id"),Me(this,"_creator"),this._contextWatchdog=e,this._id=dw()}setCreator(e){this._creator=e}create(e,t){return this._contextWatchdog.add({sourceElementOrData:e,config:t,creator:this._creator,id:this._id,type:"editor"})}on(e,t){this._contextWatchdog.on("itemError",(i,{itemId:r,error:s})=>{r===this._id&&t(null,{error:s,causesRestart:void 0})})}destroy(){return this._contextWatchdog.state==="ready"?this._contextWatchdog.remove(this._id):Promise.resolve()}get editor(){return this._contextWatchdog.getItem(this._id)}}function $h(...n){return e=>{n.forEach(t=>{typeof t=="function"?t(e):t!=null&&(t.current=e)})}}const Iw=A.memo(A.forwardRef(({id:n,semaphore:e,rootName:t},i)=>{const r=A.useRef(null);return A.useEffect(()=>{let s,o;return e.runAfterMount(({instance:a})=>{if(!r.current)return;o=a;const{ui:l,model:c}=o,u=c.document.getRoot(t);u&&o.ui.getEditableElement(t)&&o.detachEditable(u),s=l.view.createEditable(t,r.current),l.addEditable(s),a.editing.view.forceRender()}),()=>{if(o&&o.state!=="destroyed"&&r.current){const a=o.model.document.getRoot(t);a&&o.detachEditable(a)}}},[e.revision]),Nt.createElement("div",{key:e.revision,id:n,ref:$h(i,r)})}));Iw.displayName="EditorEditable";const Pw=A.forwardRef(({editor:n},e)=>{const t=A.useRef(null);return A.useEffect(()=>{const i=t.current;if(!n||!i)return;const r=n.ui.view.toolbar.element;return i.appendChild(r),()=>{i.contains(r)&&i.removeChild(r)}},[n&&n.id]),Nt.createElement("div",{ref:$h(t,e)})});Pw.displayName="EditorToolbarWrapper";function Rw(){}function Ia(n){return n==null||typeof n!="object"&&typeof n!="function"}function Pa(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function Mw(n){if(Ia(n))return n;if(Array.isArray(n)||Pa(n)||n instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&n instanceof SharedArrayBuffer)return n.slice(0);const e=Object.getPrototypeOf(n),t=e.constructor;if(n instanceof Date||n instanceof Map||n instanceof Set)return new t(n);if(n instanceof RegExp){const i=new t(n);return i.lastIndex=n.lastIndex,i}if(n instanceof DataView)return new t(n.buffer.slice(0));if(n instanceof Error){const i=new t(n.message);return i.stack=n.stack,i.name=n.name,i.cause=n.cause,i}if(typeof File<"u"&&n instanceof File)return new t([n],n.name,{type:n.type,lastModified:n.lastModified});if(typeof n=="object"){const i=Object.create(e);return Object.assign(i,n)}return n}function zo(n){return typeof n=="object"&&n!==null}function Gh(n){return Object.getOwnPropertySymbols(n).filter(e=>Object.prototype.propertyIsEnumerable.call(n,e))}function Kh(n){return n==null?n===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(n)}const Bw="[object RegExp]",Zh="[object String]",Jh="[object Number]",Yh="[object Boolean]",Xh="[object Arguments]",Vw="[object Symbol]",Nw="[object Date]",Ow="[object Map]",Dw="[object Set]",zw="[object Array]",Fw="[object ArrayBuffer]",Uw="[object Object]",Hw="[object DataView]",jw="[object Uint8Array]",Ww="[object Uint8ClampedArray]",qw="[object Uint16Array]",$w="[object Uint32Array]",Gw="[object Int8Array]",Kw="[object Int16Array]",Zw="[object Int32Array]",Jw="[object Float32Array]",Yw="[object Float64Array]";function Xw(n,e){return Pi(n,void 0,n,new Map,e)}function Pi(n,e,t,i=new Map,r=void 0){const s=r?.(n,e,t,i);if(s!=null)return s;if(Ia(n))return n;if(i.has(n))return i.get(n);if(Array.isArray(n)){const o=new Array(n.length);i.set(n,o);for(let a=0;a<n.length;a++)o[a]=Pi(n[a],a,t,i,r);return Object.hasOwn(n,"index")&&(o.index=n.index),Object.hasOwn(n,"input")&&(o.input=n.input),o}if(n instanceof Date)return new Date(n.getTime());if(n instanceof RegExp){const o=new RegExp(n.source,n.flags);return o.lastIndex=n.lastIndex,o}if(n instanceof Map){const o=new Map;i.set(n,o);for(const[a,l]of n)o.set(a,Pi(l,a,t,i,r));return o}if(n instanceof Set){const o=new Set;i.set(n,o);for(const a of n)o.add(Pi(a,void 0,t,i,r));return o}if(typeof Buffer<"u"&&Buffer.isBuffer(n))return n.subarray();if(Pa(n)){const o=new(Object.getPrototypeOf(n)).constructor(n.length);i.set(n,o);for(let a=0;a<n.length;a++)o[a]=Pi(n[a],a,t,i,r);return o}if(n instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&n instanceof SharedArrayBuffer)return n.slice(0);if(n instanceof DataView){const o=new DataView(n.buffer.slice(0),n.byteOffset,n.byteLength);return i.set(n,o),Yt(o,n,t,i,r),o}if(typeof File<"u"&&n instanceof File){const o=new File([n],n.name,{type:n.type});return i.set(n,o),Yt(o,n,t,i,r),o}if(n instanceof Blob){const o=new Blob([n],{type:n.type});return i.set(n,o),Yt(o,n,t,i,r),o}if(n instanceof Error){const o=new n.constructor;return i.set(n,o),o.message=n.message,o.name=n.name,o.stack=n.stack,o.cause=n.cause,Yt(o,n,t,i,r),o}if(typeof n=="object"&&Qw(n)){const o=Object.create(Object.getPrototypeOf(n));return i.set(n,o),Yt(o,n,t,i,r),o}return n}function Yt(n,e,t=n,i,r){const s=[...Object.keys(e),...Gh(e)];for(let o=0;o<s.length;o++){const a=s[o],l=Object.getOwnPropertyDescriptor(n,a);(l==null||l.writable)&&(n[a]=Pi(e[a],a,t,i,r))}}function Qw(n){switch(Kh(n)){case Xh:case zw:case Fw:case Hw:case Yh:case Nw:case Jw:case Yw:case Gw:case Kw:case Zw:case Ow:case Jh:case Uw:case Bw:case Dw:case Zh:case Vw:case jw:case Ww:case qw:case $w:return!0;default:return!1}}function Yl(n){return typeof n=="function"}function ey(n){return n!==null&&(typeof n=="object"||typeof n=="function")}function Qh(n,e){return Xw(n,(t,i,r,s)=>{const o=e?.(t,i,r,s);if(o!=null)return o;if(typeof n=="object")switch(Object.prototype.toString.call(n)){case Jh:case Zh:case Yh:{const a=new n.constructor(n?.valueOf());return Yt(a,n),a}case Xh:{const a={};return Yt(a,n),a.length=n.length,a[Symbol.iterator]=n[Symbol.iterator],a}default:return}})}function Xl(n){return Qh(n)}function Ql(n){return n!==null&&typeof n=="object"&&Kh(n)==="[object Arguments]"}function ec(n){return typeof n=="string"||n instanceof String}function ty(n){return Pa(n)}function Xt(n){if(typeof n!="object"||n==null)return!1;if(Object.getPrototypeOf(n)===null)return!0;if(Object.prototype.toString.call(n)!=="[object Object]"){const t=n[Symbol.toStringTag];return t==null||!Object.getOwnPropertyDescriptor(n,Symbol.toStringTag)?.writable?!1:n.toString()===`[object ${t}]`}let e=n;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(n)===e}function iy(n,...e){const t=e.slice(0,-1),i=e[e.length-1];let r=n;for(let s=0;s<t.length;s++){const o=t[s];r=Nr(r,o,i,new Map)}return r}function Nr(n,e,t,i){if(Ia(n)&&(n=Object(n)),e==null||typeof e!="object")return n;if(i.has(e))return Mw(i.get(e));if(i.set(e,n),Array.isArray(e)){e=e.slice();for(let s=0;s<e.length;s++)e[s]=e[s]??void 0}const r=[...Object.keys(e),...Gh(e)];for(let s=0;s<r.length;s++){const o=r[s];let a=e[o],l=n[o];if(Ql(a)&&(a={...a}),Ql(l)&&(l={...l}),typeof Buffer<"u"&&Buffer.isBuffer(a)&&(a=Xl(a)),Array.isArray(a))if(typeof l=="object"&&l!=null){const u=[],d=Reflect.ownKeys(l);for(let h=0;h<d.length;h++){const m=d[h];u[m]=l[m]}l=u}else l=[];const c=t(l,a,o,n,e,i);c!=null?n[o]=c:Array.isArray(a)||zo(l)&&zo(a)?n[o]=Nr(l,a,t,i):l==null&&Xt(a)?n[o]=Nr({},a,t,i):l==null&&ty(a)?n[o]=Xl(a):(l===void 0||a!==void 0)&&(n[o]=a)}return n}function ny(n,...e){return iy(n,...e,Rw)}function em(n){return zo(n)&&n.nodeType===1&&!Xt(n)}let Fo;try{Fo={window,document}}catch{Fo={window:{},document:{}}}var E=Fo;function ry(){try{return navigator.userAgent.toLowerCase()}catch{return""}}const Gt=ry(),R={isMac:tm(Gt),isWindows:sy(Gt),isGecko:oy(Gt),isSafari:ay(Gt),isiOS:ly(Gt),isAndroid:cy(Gt),isBlink:uy(Gt),get isMediaForcedColors(){return dy()}};function tm(n){return n.indexOf("macintosh")>-1}function sy(n){return n.indexOf("windows")>-1}function oy(n){return!!n.match(/gecko\/\d+/)}function ay(n){return n.indexOf(" applewebkit/")>-1&&n.indexOf("chrome")===-1}function ly(n){return!!n.match(/iphone|ipad/i)||tm(n)&&navigator.maxTouchPoints>0}function cy(n){return n.indexOf("android")>-1}function uy(n){return n.indexOf("chrome/")>-1&&n.indexOf("edge/")<0}function dy(){return E.window.matchMedia?E.window.matchMedia("(forced-colors: active)").matches:!1}function im(n,e,t,i){t=t||function(l,c){return l===c};const r=Array.isArray(n)?n:Array.prototype.slice.call(n),s=Array.isArray(e)?e:Array.prototype.slice.call(e),o=hy(r,s,t);return i?gy(o,s.length):my(s,o)}function hy(n,e,t){const i=tc(n,e,t);if(i===-1)return{firstIndex:-1,lastIndexOld:-1,lastIndexNew:-1};const r=ic(n,i),s=ic(e,i),o=tc(r,s,t),a=n.length-o,l=e.length-o;return{firstIndex:i,lastIndexOld:a,lastIndexNew:l}}function tc(n,e,t){for(let i=0;i<Math.max(n.length,e.length);i++)if(n[i]===void 0||e[i]===void 0||!t(n[i],e[i]))return i;return-1}function ic(n,e){return n.slice(e).reverse()}function my(n,e){const t=[],{firstIndex:i,lastIndexOld:r,lastIndexNew:s}=e;return s-i>0&&t.push({index:i,type:"insert",values:n.slice(i,s)}),r-i>0&&t.push({index:i+(s-i),type:"delete",howMany:r-i}),t}function gy(n,e){const{firstIndex:t,lastIndexOld:i,lastIndexNew:r}=n;if(t===-1)return Array(e).fill("equal");let s=[];return t>0&&(s=s.concat(Array(t).fill("equal"))),r-t>0&&(s=s.concat(Array(r-t).fill("insert"))),i-t>0&&(s=s.concat(Array(i-t).fill("delete"))),r<e&&(s=s.concat(Array(e-r).fill("equal"))),s}function Di(n,e,t){t=t||function(f,b){return f===b};const i=n.length,r=e.length;if(i>200||r>200||i+r>300)return Di.fastDiff(n,e,t,!0);let s,o;if(r<i){const f=n;n=e,e=f,s="delete",o="insert"}else s="insert",o="delete";const a=n.length,l=e.length,c=l-a,u={},d={};function h(f){const b=(d[f-1]!==void 0?d[f-1]:-1)+1,y=d[f+1]!==void 0?d[f+1]:-1,C=b>y?-1:1;u[f+C]&&(u[f]=u[f+C].slice(0)),u[f]||(u[f]=[]),u[f].push(b>y?s:o);let L=Math.max(b,y),O=L-f;for(;O<a&&L<l&&t(n[O],e[L]);)O++,L++,u[f].push("equal");return L}let m=0,g;do{for(g=-m;g<c;g++)d[g]=h(g);for(g=c+m;g>c;g--)d[g]=h(g);d[c]=h(c),m++}while(d[c]!==l);return u[c].slice(1)}Di.fastDiff=im;function nc(){return function n(){n.called=!0}}class _t{source;name;path;stop;off;return;constructor(e,t){this.source=e,this.name=t,this.path=[],this.stop=nc(),this.off=nc()}}const Ce=new Array(256).fill("").map((n,e)=>("0"+e.toString(16)).slice(-2));function Pe(){const[n,e,t,i]=crypto.getRandomValues(new Uint32Array(4));return"e"+Ce[n>>0&255]+Ce[n>>8&255]+Ce[n>>16&255]+Ce[n>>24&255]+Ce[e>>0&255]+Ce[e>>8&255]+Ce[e>>16&255]+Ce[e>>24&255]+Ce[t>>0&255]+Ce[t>>8&255]+Ce[t>>16&255]+Ce[t>>24&255]+Ce[i>>0&255]+Ce[i>>8&255]+Ce[i>>16&255]+Ce[i>>24&255]}const Ot={get(n="normal"){return typeof n!="number"?this[n]||this.normal:n},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5};function fy(n,e){const t=Ot.get(e.priority);let i=0,r=n.length;for(;i<r;){const s=i+r>>1;Ot.get(n[s].priority)<t?r=s:i=s+1}n.splice(i,0,e)}const py="https://ckeditor.com/docs/ckeditor5/latest/support/error-codes.html";class p extends Error{context;data;constructor(e,t,i){super(wy(e,i)),this.name="CKEditorError",this.context=t,this.data=i}is(e){return e==="CKEditorError"}static rethrowUnexpectedError(e,t){if(e.is&&e.is("CKEditorError"))throw e;const i=new p(e.message,t);throw i.stack=e.stack,i}}function H(n,e){console.warn(...rm(n,e))}function by(n,e){console.error(...rm(n,e))}function nm(n){return`
|
|
3
3
|
Read more: ${py}#error-${n}`}function wy(n,e){const t=new WeakSet,r=e?` ${JSON.stringify(e,(o,a)=>{if(typeof a=="object"&&a!==null){if(t.has(a))return`[object ${a.constructor.name}]`;t.add(a)}return a})}`:"",s=nm(n);return n+r+s}function rm(n,e){const t=nm(n);return e?[n,e,t]:[n,t]}const yy="45.2.2",vy=new Date(2025,8,3);if(globalThis.CKEDITOR_VERSION)throw new p("ckeditor-duplicated-modules",null);globalThis.CKEDITOR_VERSION=yy;const Ei=Symbol("listeningTo"),Uo=Symbol("emitterId"),gt=Symbol("delegations"),sm=G(Object);function G(n){if(!n)return sm;class e extends n{on(i,r,s){this.listenTo(this,i,r,s)}once(i,r,s){let o=!1;const a=(l,...c)=>{o||(o=!0,l.off(),r.call(this,l,...c))};this.listenTo(this,i,a,s)}off(i,r){this.stopListening(this,i,r)}listenTo(i,r,s,o={}){let a,l;this[Ei]||(this[Ei]={});const c=this[Ei];Ks(i)||om(i);const u=Ks(i);(a=c[u])||(a=c[u]={emitter:i,callbacks:{}}),(l=a.callbacks[r])||(l=a.callbacks[r]=[]),l.push(s),Ty(this,i,r,s,o)}stopListening(i,r,s){const o=this[Ei];let a=i&&Ks(i);const l=o&&a?o[a]:void 0,c=l&&r?l.callbacks[r]:void 0;if(!(!o||i&&!l||r&&!c))if(s)Zs(this,i,r,s),c.indexOf(s)!==-1&&(c.length===1?delete l.callbacks[r]:Zs(this,i,r,s));else if(c){for(;s=c.pop();)Zs(this,i,r,s);delete l.callbacks[r]}else if(l){for(r in l.callbacks)this.stopListening(i,r);delete o[a]}else{for(a in o)this.stopListening(o[a].emitter);delete this[Ei]}}fire(i,...r){try{const s=i instanceof _t?i:new _t(this,i),o=s.name;let a=Ly(this,o);if(s.path.push(this),a){a=a.slice();for(let c=0;c<a.length;c++){const u=a[c].callback;if(u.call(this,s,...r),s.off.called&&(delete s.off.called,this._removeEventListener(o,u)),s.stop.called)break}}const l=this[gt];if(l){const c=l.get(o),u=l.get("*");c&&rc(c,s,r),u&&rc(u,s,r)}return s.return}catch(s){p.rethrowUnexpectedError(s,this)}}delegate(...i){return{to:(r,s)=>{this[gt]||(this[gt]=new Map),i.forEach(o=>{const a=this[gt].get(o);a?a.set(r,s):this[gt].set(o,new Map([[r,s]]))})}}}stopDelegating(i,r){if(this[gt])if(!i)this[gt].clear();else if(!r)this[gt].delete(i);else{const s=this[gt].get(i);s&&s.delete(r)}}_addEventListener(i,r,s){Cy(this,i);const o=Ho(this,i),a=Ot.get(s.priority),l={callback:r,priority:a};for(const c of o)fy(c,l)}_removeEventListener(i,r){const s=Ho(this,i);for(const o of s)for(let a=0;a<o.length;a++)o[a].callback==r&&(o.splice(a,1),a--)}}return e}["on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach(n=>{G[n]=sm.prototype[n]});function ky(n,e){const t=n[Ei];return t&&t[e]?t[e].emitter:null}function om(n,e){n[Uo]||(n[Uo]=e||Pe())}function Ks(n){return n[Uo]}function am(n){return n._events||Object.defineProperty(n,"_events",{value:{}}),n._events}function _y(){return{callbacks:[],childEvents:[]}}function Cy(n,e){const t=am(n);if(t[e])return;let i=e,r=null;const s=[];for(;i!==""&&!t[i];)t[i]=_y(),s.push(t[i]),r&&t[i].childEvents.push(r),r=i,i=i.substr(0,i.lastIndexOf(":"));if(i!==""){for(const o of s)o.callbacks=t[i].callbacks.slice();t[i].childEvents.push(r)}}function Ho(n,e){const t=am(n)[e];if(!t)return[];let i=[t.callbacks];for(let r=0;r<t.childEvents.length;r++){const s=Ho(n,t.childEvents[r]);i=i.concat(s)}return i}function Ly(n,e){if(!n._events)return null;let t=e;do{const i=n._events[t];if(i&&i.callbacks&&i.callbacks.length)return i.callbacks;const r=t.lastIndexOf(":");t=r>-1?t.substring(0,r):""}while(t);return null}function rc(n,e,t){for(let[i,r]of n){r?typeof r=="function"&&(r=r(e.name)):r=e.name;const s=new _t(e.source,r);s.path=[...e.path],i.fire(s,...t)}}function Ty(n,e,t,i,r){e._addEventListener?e._addEventListener(t,i,r):n._addEventListener.call(e,t,i,r)}function Zs(n,e,t,i){e._removeEventListener?e._removeEventListener(t,i):n._removeEventListener.call(e,t,i)}const kn=Symbol("observableProperties"),Vn=Symbol("boundObservables"),_n=Symbol("boundProperties"),Kt=Symbol("decoratedMethods"),sc=Symbol("decoratedOriginal"),lm=$(G());function $(n){if(!n)return lm;class e extends n{set(i,r){if(ey(i)){Object.keys(i).forEach(o=>{this.set(o,i[o])},this);return}Js(this);const s=this[kn];if(i in this&&!s.has(i))throw new p("observable-set-cannot-override",this);Object.defineProperty(this,i,{enumerable:!0,configurable:!0,get(){return s.get(i)},set(o){const a=s.get(i);let l=this.fire(`set:${i}`,i,o,a);l===void 0&&(l=o),(a!==l||!s.has(i))&&(s.set(i,l),this.fire(`change:${i}`,i,l,a))}}),this[i]=r}bind(...i){if(!i.length||!oc(i))throw new p("observable-bind-wrong-properties",this);if(new Set(i).size!==i.length)throw new p("observable-bind-duplicate-properties",this);Js(this);const r=this[_n];i.forEach(o=>{if(r.has(o))throw new p("observable-bind-rebind",this)});const s=new Map;return i.forEach(o=>{const a={property:o,to:[]};r.set(o,a),s.set(o,a)}),{to:Ey,toMany:xy,_observable:this,_bindProperties:i,_to:[],_bindings:s}}unbind(...i){if(!this[kn])return;const r=this[_n],s=this[Vn];if(i.length){if(!oc(i))throw new p("observable-unbind-wrong-properties",this);i.forEach(o=>{const a=r.get(o);a&&(a.to.forEach(([l,c])=>{const u=s.get(l),d=u[c];d.delete(a),d.size||delete u[c],Object.keys(u).length||(s.delete(l),this.stopListening(l,"change"))}),r.delete(o))})}else s.forEach((o,a)=>{this.stopListening(a,"change")}),s.clear(),r.clear()}decorate(i){Js(this);const r=this[i];if(!r)throw new p("observablemixin-cannot-decorate-undefined",this,{object:this,methodName:i});this.on(i,(s,o)=>{s.return=r.apply(this,o)}),this[i]=function(...s){return this.fire(i,s)},this[i][sc]=r,this[Kt]||(this[Kt]=[]),this[Kt].push(i)}stopListening(i,r,s){if(!i&&this[Kt]){for(const o of this[Kt])this[o]=this[o][sc];delete this[Kt]}super.stopListening(i,r,s)}[kn];[Kt];[_n];[Vn]}return e}["set","bind","unbind","decorate","on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach(n=>{$[n]=lm.prototype[n]});function Js(n){n[kn]||(Object.defineProperty(n,kn,{value:new Map}),Object.defineProperty(n,Vn,{value:new Map}),Object.defineProperty(n,_n,{value:new Map}))}function Ey(...n){const e=Ay(...n),t=Array.from(this._bindings.keys()),i=t.length;if(!e.callback&&e.to.length>1)throw new p("observable-bind-to-no-callback",this);if(i>1&&e.callback)throw new p("observable-bind-to-extra-callback",this);e.to.forEach(r=>{if(r.properties.length&&r.properties.length!==i)throw new p("observable-bind-to-properties-length",this);r.properties.length||(r.properties=this._bindProperties)}),this._to=e.to,e.callback&&(this._bindings.get(t[0]).callback=e.callback),Ry(this._observable,this._to),Py(this),this._bindProperties.forEach(r=>{cm(this._observable,r)})}function xy(n,e,t){if(this._bindings.size>1)throw new p("observable-bind-to-many-not-one-binding",this);this.to(...Sy(n,e),t)}function Sy(n,e){const t=n.map(i=>[i,e]);return Array.prototype.concat.apply([],t)}function oc(n){return n.every(e=>typeof e=="string")}function Ay(...n){if(!n.length)throw new p("observable-bind-to-parse-error",null);const e={to:[]};let t;return typeof n[n.length-1]=="function"&&(e.callback=n.pop()),n.forEach(i=>{if(typeof i=="string")t.properties.push(i);else if(typeof i=="object")t={observable:i,properties:[]},e.to.push(t);else throw new p("observable-bind-to-parse-error",null)}),e}function Iy(n,e,t,i){const r=n[Vn],s=r.get(t),o=s||{};o[i]||(o[i]=new Set),o[i].add(e),s||r.set(t,o)}function Py(n){let e;n._bindings.forEach((t,i)=>{n._to.forEach(r=>{e=r.properties[t.callback?0:n._bindProperties.indexOf(i)],t.to.push([r.observable,e]),Iy(n._observable,t,r.observable,e)})})}function cm(n,e){const i=n[_n].get(e);let r;i.callback?r=i.callback.apply(n,i.to.map(s=>s[0][s[1]])):(r=i.to[0],r=r[0][r[1]]),Object.prototype.hasOwnProperty.call(n,e)?n[e]=r:n.set(e,r)}function Ry(n,e){e.forEach(t=>{const i=n[Vn];let r;i.get(t.observable)||n.listenTo(t.observable,"change",(s,o)=>{r=i.get(t.observable)[o],r&&r.forEach(a=>{cm(n,a.property)})})})}class um{_replacedElements;constructor(){this._replacedElements=[]}replace(e,t){this._replacedElements.push({element:e,newElement:t}),e.style.display="none",t&&e.parentNode.insertBefore(t,e.nextSibling)}restore(){this._replacedElements.forEach(({element:e,newElement:t})=>{e.style.display="",t&&t.remove()}),this._replacedElements=[]}}function jo(n){let e=0;for(const t of n)e++;return e}function Le(n,e){const t=Math.min(n.length,e.length);for(let i=0;i<t;i++)if(n[i]!=e[i])return i;return n.length==e.length?"same":n.length<e.length?"prefix":"extension"}function Ue(n){return!!(n&&n[Symbol.iterator])}function Ne(n,e,t={},i=[]){const r=t&&t.xmlns,s=r?n.createElementNS(r,e):n.createElement(e);for(const o in t)s.setAttribute(o,t[o]);(ec(i)||!Ue(i))&&(i=[i]);for(let o of i)ec(o)&&(o=n.createTextNode(o)),s.appendChild(o);return s}class dm{_config;constructor(e,t){this._config=Object.create(null),t&&this.define(ac(t)),e&&this._setObjectToTarget(this._config,e)}set(e,t){this._setToTarget(this._config,e,t)}define(e,t){this._setToTarget(this._config,e,t,!0)}get(e){return this._getFromSource(this._config,e)}*names(){for(const e of Object.keys(this._config))yield e}_setToTarget(e,t,i,r=!1){if(Xt(t)){this._setObjectToTarget(e,t,r);return}const s=t.split(".");t=s.pop();for(const o of s)Xt(e[o])||(e[o]=Object.create(null)),e=e[o];if(Xt(i)){Xt(e[t])||(e[t]=Object.create(null)),e=e[t],this._setObjectToTarget(e,i,r);return}r&&typeof e[t]<"u"||(e[t]=i)}_getFromSource(e,t){const i=t.split(".");t=i.pop();for(const r of i){if(!Xt(e[r])){e=null;break}e=e[r]}return e?ac(e[t]):void 0}_setObjectToTarget(e,t,i){Object.keys(t).forEach(r=>{this._setToTarget(e,r,t[r],i)})}}function ac(n){return Qh(n,My)}function My(n){return em(n)||typeof n=="function"?n:void 0}function Ht(n){if(n){if(n.defaultView)return n instanceof n.defaultView.Document;if(n.ownerDocument&&n.ownerDocument.defaultView)return n instanceof n.ownerDocument.defaultView.Node}return!1}function Yr(n){const e=Object.prototype.toString.apply(n);return e=="[object Window]"||e=="[object global]"}const hm=Ee(G());function Ee(n){if(!n)return hm;class e extends n{listenTo(i,r,s,o={}){if(Ht(i)||Yr(i)||i instanceof E.window.EventTarget){const a={capture:!!o.useCapture,passive:!!o.usePassive},l=this._getProxyEmitter(i,a)||new By(i,a);this.listenTo(l,r,s,o)}else super.listenTo(i,r,s,o)}stopListening(i,r,s){if(Ht(i)||Yr(i)||i instanceof E.window.EventTarget){const o=this._getAllProxyEmitters(i);for(const a of o)this.stopListening(a,r,s)}else super.stopListening(i,r,s)}_getProxyEmitter(i,r){return ky(this,mm(i,r))}_getAllProxyEmitters(i){return[{capture:!1,passive:!1},{capture:!1,passive:!0},{capture:!0,passive:!1},{capture:!0,passive:!0}].map(r=>this._getProxyEmitter(i,r)).filter(r=>!!r)}}return e}["_getProxyEmitter","_getAllProxyEmitters","on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach(n=>{Ee[n]=hm.prototype[n]});class By extends G(){_domNode;_options;constructor(e,t){super(),om(this,mm(e,t)),this._domNode=e,this._options=t}_domListeners;attach(e){if(this._domListeners&&this._domListeners[e])return;const t=this._createDomListener(e);this._domNode.addEventListener(e,t,this._options),this._domListeners||(this._domListeners={}),this._domListeners[e]=t}detach(e){let t;this._domListeners[e]&&(!(t=this._events[e])||!t.callbacks.length)&&this._domListeners[e].removeListener()}_addEventListener(e,t,i){this.attach(e),G().prototype._addEventListener.call(this,e,t,i)}_removeEventListener(e,t){G().prototype._removeEventListener.call(this,e,t),this.detach(e)}_createDomListener(e){const t=i=>{this.fire(e,i)};return t.removeListener=()=>{this._domNode.removeEventListener(e,t,this._options),delete this._domListeners[e]},t}}function Vy(n){return n["data-ck-expando"]||(n["data-ck-expando"]=Pe())}function mm(n,e){let t=Vy(n);for(const i of Object.keys(e).sort())e[i]&&(t+="-"+i);return t}function Ny(n){const e=[];let t=n;for(;t&&t.nodeType!=Node.DOCUMENT_NODE;)e.unshift(t),t=t.parentNode;return e}function Oy(n){return n instanceof HTMLTextAreaElement?n.value:n.innerHTML}function gm(n){const e=n.ownerDocument.defaultView.getComputedStyle(n);return{top:parseInt(e.borderTopWidth,10),right:parseInt(e.borderRightWidth,10),bottom:parseInt(e.borderBottomWidth,10),left:parseInt(e.borderLeftWidth,10)}}function fm(n){if(!n.target)return null;const e=n.target.ownerDocument,t=n.clientX,i=n.clientY;let r=null;return e.caretRangeFromPoint&&e.caretRangeFromPoint(t,i)?r=e.caretRangeFromPoint(t,i):n.rangeParent&&(r=e.createRange(),r.setStart(n.rangeParent,n.rangeOffset),r.collapse(!0)),r}function ne(n){return Object.prototype.toString.call(n)=="[object Text]"}function Rs(n){return Object.prototype.toString.apply(n)=="[object Range]"}function pm(n){return!n||!n.parentNode||n.offsetParent===E.document.body?null:n.offsetParent}const bm=["top","right","bottom","left","width","height"];class B{top;right;bottom;left;width;height;_source;constructor(e){const t=Rs(e);if(Object.defineProperty(this,"_source",{value:e._source||e,writable:!0,enumerable:!1}),Wo(e)||t)if(t){const i=B.getDomRangeRects(e);mr(this,B.getBoundingRect(i))}else mr(this,e.getBoundingClientRect());else if(Yr(e)){const{innerWidth:i,innerHeight:r}=e;mr(this,{top:0,right:i,bottom:r,left:0,width:i,height:r})}else mr(this,e)}clone(){return new B(this)}moveTo(e,t){return this.top=t,this.right=e+this.width,this.bottom=t+this.height,this.left=e,this}moveBy(e,t){return this.top+=t,this.right+=e,this.left+=e,this.bottom+=t,this}getIntersection(e){const t={top:Math.max(this.top,e.top),right:Math.min(this.right,e.right),bottom:Math.min(this.bottom,e.bottom),left:Math.max(this.left,e.left),width:0,height:0};if(t.width=t.right-t.left,t.height=t.bottom-t.top,t.width<0||t.height<0)return null;{const i=new B(t);return i._source=this._source,i}}getIntersectionArea(e){const t=this.getIntersection(e);return t?t.getArea():0}getArea(){return this.width*this.height}getVisible(){const e=this._source;let t=this.clone();if(lc(e))return t;let i=e,r=e.parentNode||e.commonAncestorContainer,s;for(;r&&!lc(r);){const o=Dy(r)==="visible";i instanceof HTMLElement&&cc(i)==="absolute"&&(s=i);const a=cc(r);if(o||s&&(a==="relative"&&o||a!=="relative")){i=r,r=r.parentNode;continue}const l=new B(r),c=t.getIntersection(l);if(c)c.getArea()<t.getArea()&&(t=c);else return null;i=r,r=r.parentNode}return t}isEqual(e){for(const t of bm)if(this[t]!==e[t])return!1;return!0}contains(e){const t=this.getIntersection(e);return!!(t&&t.isEqual(e))}toAbsoluteRect(){const{scrollX:e,scrollY:t}=E.window,i=this.clone().moveBy(e,t);if(Wo(i._source)){const r=pm(i._source);r&&zy(i,r)}return i}excludeScrollbarsAndBorders(){const e=this._source;let t,i,r;if(Yr(e))t=e.innerWidth-e.document.documentElement.clientWidth,i=e.innerHeight-e.document.documentElement.clientHeight,r=e.getComputedStyle(e.document.documentElement).direction;else{const s=gm(e);t=e.offsetWidth-e.clientWidth-s.left-s.right,i=e.offsetHeight-e.clientHeight-s.top-s.bottom,r=e.ownerDocument.defaultView.getComputedStyle(e).direction,this.left+=s.left,this.top+=s.top,this.right-=s.right,this.bottom-=s.bottom,this.width=this.right-this.left,this.height=this.bottom-this.top}return this.width-=t,r==="ltr"?this.right-=t:this.left+=t,this.height-=i,this.bottom-=i,this}static getDomRangeRects(e){const t=[],i=Array.from(e.getClientRects());if(i.length)for(const r of i)t.push(new B(r));else{let r=e.startContainer;ne(r)&&(r=r.parentNode);const s=new B(r.getBoundingClientRect());s.right=s.left,s.width=0,t.push(s)}return t}static getBoundingRect(e){const t={left:Number.POSITIVE_INFINITY,top:Number.POSITIVE_INFINITY,right:Number.NEGATIVE_INFINITY,bottom:Number.NEGATIVE_INFINITY,width:0,height:0};let i=0;for(const r of e)i++,t.left=Math.min(t.left,r.left),t.top=Math.min(t.top,r.top),t.right=Math.max(t.right,r.right),t.bottom=Math.max(t.bottom,r.bottom);return i==0?null:(t.width=t.right-t.left,t.height=t.bottom-t.top,new B(t))}}function mr(n,e){for(const t of bm)n[t]=e[t]}function lc(n){return Wo(n)?n===n.ownerDocument.body:!1}function Wo(n){return n!==null&&typeof n=="object"&&n.nodeType===1&&typeof n.getBoundingClientRect=="function"}function cc(n){return n instanceof HTMLElement?n.ownerDocument.defaultView.getComputedStyle(n).position:"static"}function Dy(n){return n instanceof HTMLElement?n.ownerDocument.defaultView.getComputedStyle(n).overflow:"visible"}function zy(n,e){const t=new B(e),i=gm(e);let r=0,s=0;r-=t.left,s-=t.top,r+=e.scrollLeft,s+=e.scrollTop,r-=i.left,s-=i.top,n.moveBy(r,s)}class ie{_element;_callback;static _observerInstance=null;static _elementCallbacks=null;constructor(e,t){ie._observerInstance||ie._createObserver(),this._element=e,this._callback=t,ie._addElementCallback(e,t),ie._observerInstance.observe(e)}get element(){return this._element}destroy(){ie._deleteElementCallback(this._element,this._callback)}static _addElementCallback(e,t){ie._elementCallbacks||(ie._elementCallbacks=new Map);let i=ie._elementCallbacks.get(e);i||(i=new Set,ie._elementCallbacks.set(e,i)),i.add(t)}static _deleteElementCallback(e,t){const i=ie._getElementCallbacks(e);i&&(i.delete(t),i.size||(ie._elementCallbacks.delete(e),ie._observerInstance.unobserve(e))),ie._elementCallbacks&&!ie._elementCallbacks.size&&(ie._observerInstance=null,ie._elementCallbacks=null)}static _getElementCallbacks(e){return ie._elementCallbacks?ie._elementCallbacks.get(e):null}static _createObserver(){ie._observerInstance=new E.window.ResizeObserver(e=>{for(const t of e){const i=ie._getElementCallbacks(t.target);if(i)for(const r of i)r(t)}})}}function uc(n,e){n instanceof HTMLTextAreaElement&&(n.value=e),n.innerHTML=e}function Gi(n){return e=>e+n}function Ri(n){let e=0;for(;n.previousSibling;)n=n.previousSibling,e++;return e}function wm(n,e,t){n.insertBefore(t,n.childNodes[e]||null)}function Cn(n){return n&&n.nodeType===Node.COMMENT_NODE}function Fy(n){try{E.document.createAttribute(n)}catch{return!1}return!0}function Ct(n){return n?ne(n)?Ct(n.parentElement):n.getClientRects?!!n.getClientRects().length:!1:!1}function Ra({element:n,target:e,positions:t,limiter:i,fitInViewport:r,viewportOffsetConfig:s}){Yl(e)&&(e=e()),Yl(i)&&(i=i());const o=pm(n),a=Uy(s),l=new B(n),c=dc(e,a);let u;if(!c||!a.getIntersection(c))return null;const d={targetRect:c,elementRect:l,positionedElementAncestor:o,viewportRect:a};if(!i&&!r)u=new ym(t[0],d);else{if(i){const h=dc(i,a);h&&(d.limiterRect=h)}u=Hy(t,d)}return u}function dc(n,e){const t=new B(n).getVisible();return t?t.getIntersection(e):null}function Uy(n){n=Object.assign({top:0,bottom:0,left:0,right:0},n);const e=new B(E.window);return e.top+=n.top,e.height-=n.top,e.bottom-=n.bottom,e.height-=n.bottom,e}function Hy(n,e){const{elementRect:t}=e,i=t.getArea(),r=n.map(a=>new ym(a,e)).filter(a=>!!a.name);let s=0,o=null;for(const a of r){const{limiterIntersectionArea:l,viewportIntersectionArea:c}=a;if(l===i)return a;const u=c**2+l**2;u>s&&(s=u,o=a)}return o}class ym{name;config;_positioningFunctionCoordinates;_options;_cachedRect;_cachedAbsoluteRect;constructor(e,t){const i=e(t.targetRect,t.elementRect,t.viewportRect,t.limiterRect);if(!i)return;const{left:r,top:s,name:o,config:a}=i;this.name=o,this.config=a,this._positioningFunctionCoordinates={left:r,top:s},this._options=t}get left(){return this._absoluteRect.left}get top(){return this._absoluteRect.top}get limiterIntersectionArea(){const e=this._options.limiterRect;return e?e.getIntersectionArea(this._rect):0}get viewportIntersectionArea(){return this._options.viewportRect.getIntersectionArea(this._rect)}get _rect(){return this._cachedRect?this._cachedRect:(this._cachedRect=this._options.elementRect.clone().moveTo(this._positioningFunctionCoordinates.left,this._positioningFunctionCoordinates.top),this._cachedRect)}get _absoluteRect(){return this._cachedAbsoluteRect?this._cachedAbsoluteRect:(this._cachedAbsoluteRect=this._rect.toAbsoluteRect(),this._cachedAbsoluteRect)}}function hc(n){const e=n.parentNode;e&&e.removeChild(n)}function Or(){const n=E.window.visualViewport;if(!n||!(R.isiOS||R.isSafari))return{left:0,top:0};const e=Math.max(Math.round(n.offsetLeft),0),t=Math.max(Math.round(n.offsetTop),0);return{left:e,top:t}}function jy({target:n,viewportOffset:e=0,ancestorOffset:t=0,alignToTop:i,forceScroll:r}){const s=Ma(n);let o=s,a=null;for(e=$y(e);o;){let l;o==s?l=mc(n):l=mc(a),qy({parent:l,getRect:()=>Ys(n,o),alignToTop:i,ancestorOffset:t,forceScroll:r});let c=Ys(n,o);const u=Ys(l,o);if(c.height>u.height){const d=c.getIntersection(u);d&&(c=d)}if(Wy({window:o,rect:c,viewportOffset:e,alignToTop:i,forceScroll:r}),o.parent!=o){if(a=o.frameElement,o=o.parent,!a)return}else o=null}}function Wy({window:n,rect:e,alignToTop:t,forceScroll:i,viewportOffset:r}){const s=e.clone().moveBy(0,r.bottom),o=e.clone().moveBy(0,-r.top),a=new B(n).excludeScrollbarsAndBorders(),l=[o,s],c=t&&i,u=l.every(f=>a.contains(f));let{scrollX:d,scrollY:h}=n;const m=d,g=h;c?h-=a.top-e.top+r.top:u||(km(o,a)?h-=a.top-e.top+r.top:vm(s,a)&&(t?h+=e.top-a.top-r.top:h+=e.bottom-a.bottom+r.bottom)),u||(_m(e,a)?d-=a.left-e.left+r.left:Cm(e,a)&&(d+=e.right-a.right+r.right)),(d!=m||h!==g)&&n.scrollTo(d,h)}function qy({parent:n,getRect:e,alignToTop:t,forceScroll:i,ancestorOffset:r=0,limiterElement:s}){const o=Ma(n),a=t&&i;let l,c,u;const d=s||o.document.body;for(;n!=d;)c=e(),l=new B(n).excludeScrollbarsAndBorders(),u=l.contains(c),a?n.scrollTop-=l.top-c.top+r:u||(km(c,l)?n.scrollTop-=l.top-c.top+r:vm(c,l)&&(t?n.scrollTop+=c.top-l.top-r:n.scrollTop+=c.bottom-l.bottom+r)),u||(_m(c,l)?n.scrollLeft-=l.left-c.left+r:Cm(c,l)&&(n.scrollLeft+=c.right-l.right+r)),n=n.parentNode}function vm(n,e){return n.bottom>e.bottom}function km(n,e){return n.top<e.top}function _m(n,e){return n.left<e.left}function Cm(n,e){return n.right>e.right}function Ma(n){return Rs(n)?n.startContainer.ownerDocument.defaultView:n.ownerDocument.defaultView}function mc(n){if(Rs(n)){let e=n.commonAncestorContainer;return ne(e)&&(e=e.parentNode),e}else return n.parentNode}function Ys(n,e){const t=Ma(n),i=new B(n);if(t===e)return i;{let r=t;for(;r!=e;){const s=r.frameElement,o=new B(s).excludeScrollbarsAndBorders();i.moveBy(o.left,o.top),r=r.parent}}return i}function $y(n){return typeof n=="number"?{top:n,bottom:n,left:n,right:n}:n}const Gy={ctrl:"⌃",cmd:"⌘",alt:"⌥",shift:"⇧"},Ky={ctrl:"Ctrl+",alt:"Alt+",shift:"Shift+"},gc={37:"←",38:"↑",39:"→",40:"↓",9:"⇥",33:"Page Up",34:"Page Down"},F=Qy(),Zy=Object.fromEntries(Object.entries(F).map(([n,e])=>{let t;return e in gc?t=gc[e]:t=n.charAt(0).toUpperCase()+n.slice(1),[e,t]}));function Ui(n){let e;if(typeof n=="string"){if(e=F[n.toLowerCase()],!e)throw new p("keyboard-unknown-key",null,{key:n})}else e=n.keyCode+(n.altKey?F.alt:0)+(n.ctrlKey?F.ctrl:0)+(n.shiftKey?F.shift:0)+(n.metaKey?F.cmd:0);return e}function Ba(n){return typeof n=="string"&&(n=ev(n)),n.map(e=>typeof e=="string"?Yy(e):e).reduce((e,t)=>t+e,0)}function Xr(n,e){let t=Ba(n);const i=R.isMac||R.isiOS;return Object.entries(i?Gy:Ky).reduce((o,[a,l])=>((t&F[a])!=0&&(t&=~F[a],o+=l),o),"")+(t?Zy[t]:"")}function Jy(n){return n==F.arrowright||n==F.arrowleft||n==F.arrowup||n==F.arrowdown}function Va(n,e){const t=e==="ltr";switch(n){case F.arrowleft:return t?"left":"right";case F.arrowright:return t?"right":"left";case F.arrowup:return"up";case F.arrowdown:return"down"}}function Yy(n){if(n.endsWith("!"))return Ui(n.slice(0,-1));const e=Ui(n);return(R.isMac||R.isiOS)&&e==F.ctrl?F.cmd:e}function Xy(n,e){const t=Va(n,e);return t==="down"||t==="right"}function Qy(){const n={pageup:33,pagedown:34,end:35,home:36,arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,backspace:8,delete:46,enter:13,space:32,esc:27,tab:9,ctrl:1114112,shift:2228224,alt:4456448,cmd:8912896};for(let e=65;e<=90;e++){const t=String.fromCharCode(e);n[t.toLowerCase()]=e}for(let e=48;e<=57;e++)n[e-48]=e;for(let e=112;e<=123;e++)n["f"+(e-111)]=e;return Object.assign(n,{"'":222,",":108,"-":109,".":110,"/":111,";":186,"=":187,"[":219,"\\":220,"]":221,"`":223}),n}function ev(n){return n.split("+").map(e=>e.trim())}const tv=["ar","ara","dv","div","fa","per","fas","he","heb","ku","kur","ug","uig","ur","urd"];function fc(n){return tv.includes(n)?"rtl":"ltr"}function X(n){return Array.isArray(n)?n:[n]}E.window.CKEDITOR_TRANSLATIONS||(E.window.CKEDITOR_TRANSLATIONS={});function iv(n,e,t=1,i){if(typeof t!="number")throw new p("translation-service-quantity-not-a-number",null,{quantity:t});const r=i||E.window.CKEDITOR_TRANSLATIONS,s=sv(r);s===1&&(n=Object.keys(r)[0]);const o=e.id||e.string;if(s===0||!rv(n,o,r))return t!==1?e.plural:e.string;const a=r[n].dictionary,l=r[n].getPluralForm||(d=>d===1?0:1),c=a[o];if(typeof c=="string")return c;const u=Number(l(t));return c[u]}function nv(n){return Array.isArray(n)?n.reduce((e,t)=>ny(e,t)):n}function rv(n,e,t){return!!t[n]&&!!t[n].dictionary[e]}function sv(n){return Object.keys(n).length}class ov{uiLanguage;uiLanguageDirection;contentLanguage;contentLanguageDirection;t;translations;constructor({uiLanguage:e="en",contentLanguage:t,translations:i}={}){this.uiLanguage=e,this.contentLanguage=t||this.uiLanguage,this.uiLanguageDirection=fc(this.uiLanguage),this.contentLanguageDirection=fc(this.contentLanguage),this.translations=nv(i),this.t=(r,s)=>this._t(r,s)}get language(){return console.warn("locale-deprecated-language-property: The Locale#language property has been deprecated and will be removed in the near future. Please use #uiLanguage and #contentLanguage properties instead."),this.uiLanguage}_t(e,t=[]){t=X(t),typeof e=="string"&&(e={string:e});const r=!!e.plural?t[0]:1,s=iv(this.uiLanguage,e,r,this.translations);return av(s,t)}}function av(n,e){return n.replace(/%(\d+)/g,(t,i)=>i<e.length?e[i]:t)}class Re extends G(){_items;_itemMap;_idProperty;_bindToCollection;_bindToExternalToInternalMap;_bindToInternalToExternalMap;_skippedIndexesFromExternal;constructor(e={},t={}){super();const i=Ue(e);if(i||(t=e),this._items=[],this._itemMap=new Map,this._idProperty=t.idProperty||"id",this._bindToExternalToInternalMap=new WeakMap,this._bindToInternalToExternalMap=new WeakMap,this._skippedIndexesFromExternal=[],i)for(const r of e)this._items.push(r),this._itemMap.set(this._getItemIdBeforeAdding(r),r)}get length(){return this._items.length}get first(){return this._items[0]||null}get last(){return this._items[this.length-1]||null}add(e,t){return this.addMany([e],t)}addMany(e,t){if(t===void 0)t=this._items.length;else if(t>this._items.length||t<0)throw new p("collection-add-item-invalid-index",this);let i=0;for(const r of e){const s=this._getItemIdBeforeAdding(r),o=t+i;this._items.splice(o,0,r),this._itemMap.set(s,r),this.fire("add",r,o),i++}return this.fire("change",{added:e,removed:[],index:t}),this}get(e){let t;if(typeof e=="string")t=this._itemMap.get(e);else if(typeof e=="number")t=this._items[e];else throw new p("collection-get-invalid-arg",this);return t||null}has(e){if(typeof e=="string")return this._itemMap.has(e);{const t=this._idProperty,i=e[t];return i&&this._itemMap.has(i)}}getIndex(e){let t;return typeof e=="string"?t=this._itemMap.get(e):t=e,t?this._items.indexOf(t):-1}remove(e){const[t,i]=this._remove(e);return this.fire("change",{added:[],removed:[t],index:i}),t}map(e,t){return this._items.map(e,t)}forEach(e,t){this._items.forEach(e,t)}find(e,t){return this._items.find(e,t)}filter(e,t){return this._items.filter(e,t)}clear(){this._bindToCollection&&(this.stopListening(this._bindToCollection),this._bindToCollection=null);const e=Array.from(this._items);for(;this.length;)this._remove(0);this.fire("change",{added:[],removed:e,index:0})}bindTo(e){if(this._bindToCollection)throw new p("collection-bind-to-rebind",this);return this._bindToCollection=e,{as:t=>{this._setUpBindToBinding(i=>new t(i))},using:t=>{typeof t=="function"?this._setUpBindToBinding(t):this._setUpBindToBinding(i=>i[t])}}}_setUpBindToBinding(e){const t=this._bindToCollection,i=(r,s,o)=>{const a=t._bindToCollection==this,l=t._bindToInternalToExternalMap.get(s);if(a&&l)this._bindToExternalToInternalMap.set(s,l),this._bindToInternalToExternalMap.set(l,s);else{const c=e(s);if(!c){this._skippedIndexesFromExternal.push(o);return}let u=o;for(const d of this._skippedIndexesFromExternal)o>d&&u--;for(const d of t._skippedIndexesFromExternal)u>=d&&u++;this._bindToExternalToInternalMap.set(s,c),this._bindToInternalToExternalMap.set(c,s),this.add(c,u);for(let d=0;d<t._skippedIndexesFromExternal.length;d++)u<=t._skippedIndexesFromExternal[d]&&t._skippedIndexesFromExternal[d]++}};for(const r of t)i(null,r,t.getIndex(r));this.listenTo(t,"add",i),this.listenTo(t,"remove",(r,s,o)=>{const a=this._bindToExternalToInternalMap.get(s);a&&this.remove(a),this._skippedIndexesFromExternal=this._skippedIndexesFromExternal.reduce((l,c)=>(o<c&&l.push(c-1),o>c&&l.push(c),l),[])})}_getItemIdBeforeAdding(e){const t=this._idProperty;let i;if(t in e){if(i=e[t],typeof i!="string")throw new p("collection-add-invalid-id",this);if(this.get(i))throw new p("collection-add-item-already-exists",this)}else e[t]=i=Pe();return i}_remove(e){let t,i,r,s=!1;const o=this._idProperty;if(typeof e=="string"?(i=e,r=this._itemMap.get(i),s=!r,r&&(t=this._items.indexOf(r))):typeof e=="number"?(t=e,r=this._items[t],s=!r,r&&(i=r[o])):(r=e,i=r[o],t=this._items.indexOf(r),s=t==-1||!this._itemMap.get(i)),s)throw new p("collection-remove-404",this);this._items.splice(t,1),this._itemMap.delete(i);const a=this._bindToInternalToExternalMap.get(r);return this._bindToInternalToExternalMap.delete(r),this._bindToExternalToInternalMap.delete(a),this.fire("remove",r,t),[r,t]}[Symbol.iterator](){return this._items[Symbol.iterator]()}}function ce(n){const e=n.next();return e.done?null:e.value}class te extends Ee($()){_elements=new Set;_externalViews=new Set;_blurTimeout=null;constructor(){super(),this.set("isFocused",!1),this.set("focusedElement",null)}get elements(){return Array.from(this._elements.values())}get externalViews(){return Array.from(this._externalViews.values())}add(e){if(bc(e))this._addElement(e);else if(pc(e))this._addView(e);else{if(!e.element)throw new p("focustracker-add-view-missing-element",{focusTracker:this,view:e});this._addElement(e.element)}}remove(e){bc(e)?this._removeElement(e):pc(e)?this._removeView(e):this._removeElement(e.element)}_addElement(e){if(this._elements.has(e))throw new p("focustracker-add-element-already-exist",this);this.listenTo(e,"focus",()=>{const t=this.externalViews.find(i=>lv(e,i));t?this._focus(t.element):this._focus(e)},{useCapture:!0}),this.listenTo(e,"blur",()=>{this._blur()},{useCapture:!0}),this._elements.add(e)}_removeElement(e){this._elements.has(e)&&(this.stopListening(e),this._elements.delete(e)),e===this.focusedElement&&this._blur()}_addView(e){e.element&&this._addElement(e.element),this.listenTo(e.focusTracker,"change:focusedElement",()=>{e.focusTracker.focusedElement?e.element&&this._focus(e.element):this._blur()}),this._externalViews.add(e)}_removeView(e){e.element&&this._removeElement(e.element),this.stopListening(e.focusTracker),this._externalViews.delete(e)}destroy(){this.stopListening(),this._elements.clear(),this._externalViews.clear(),this.isFocused=!1,this.focusedElement=null}_focus(e){this._clearBlurTimeout(),this.focusedElement=e,this.isFocused=!0}_blur(){this.elements.find(i=>i.contains(document.activeElement))||this.externalViews.find(i=>i.focusTracker.isFocused&&!i.focusTracker._blurTimeout)||(this._clearBlurTimeout(),this._blurTimeout=setTimeout(()=>{this.focusedElement=null,this.isFocused=!1},0))}_clearBlurTimeout(){clearTimeout(this._blurTimeout),this._blurTimeout=null}}function pc(n){return"focusTracker"in n&&n.focusTracker instanceof te}function bc(n){return em(n)}function lv(n,e){return wc(n,e)?!0:!!e.focusTracker.externalViews.find(t=>wc(n,t))}function wc(n,e){return!!e.element&&e.element.contains(document.activeElement)&&n.contains(e.element)}class re{_listener;constructor(){this._listener=new(Ee())}listenTo(e){this._listener.listenTo(e,"keydown",(t,i)=>{this._listener.fire("_keydown:"+Ui(i),i)})}set(e,t,i={}){const r=Ba(e),s=i.priority;this._listener.listenTo(this._listener,"_keydown:"+r,(o,a)=>{i.filter&&!i.filter(a)||(t(a,()=>{a.preventDefault(),a.stopPropagation(),o.stop()}),o.return=!0)},{priority:s})}press(e){return!!this._listener.fire("_keydown:"+Ui(e),e)}stopListening(e){this._listener.stopListening(e)}destroy(){this.stopListening()}}function cv(n){const e=new Map;for(const t in n)e.set(t,n[t]);return e}function Lt(n){return Ue(n)?new Map(n):cv(n)}function yc(n,e,t){const i=n.length,r=e.length;for(let s=i-1;s>=t;s--)n[s+r]=n[s];for(let s=0;s<r;s++)n[t+s]=e[s]}function Na(n,e){let t;function i(...r){i.cancel(),t=setTimeout(()=>n(...r),e)}return i.cancel=()=>{clearTimeout(t)},i}function Oa(n){try{if(!n.startsWith("ey"))return null;const e=atob(n.replace(/-/g,"+").replace(/_/g,"/"));return JSON.parse(e)}catch{return null}}function uv(){const n=[];for(let e=0;e<256;e++){let t=e;for(let i=0;i<8;i++)t&1?t=3988292384^t>>>1:t=t>>>1;n[e]=t}return n}function dv(n){const e=Array.isArray(n)?n:[n],t=uv();let i=-1;const r=e.map(s=>Array.isArray(s)?s.join(""):String(s)).join("");for(let s=0;s<r.length;s++){const o=r.charCodeAt(s);i=i>>>8^t[(i^o)&255]}return i=(i^-1)>>>0,i.toString(16).padStart(8,"0")}function hv(n){const e=[{name:"address",isVoid:!1},{name:"article",isVoid:!1},{name:"aside",isVoid:!1},{name:"blockquote",isVoid:!1},{name:"details",isVoid:!1},{name:"dialog",isVoid:!1},{name:"dd",isVoid:!1},{name:"div",isVoid:!1},{name:"dl",isVoid:!1},{name:"dt",isVoid:!1},{name:"fieldset",isVoid:!1},{name:"figcaption",isVoid:!1},{name:"figure",isVoid:!1},{name:"footer",isVoid:!1},{name:"form",isVoid:!1},{name:"h1",isVoid:!1},{name:"h2",isVoid:!1},{name:"h3",isVoid:!1},{name:"h4",isVoid:!1},{name:"h5",isVoid:!1},{name:"h6",isVoid:!1},{name:"header",isVoid:!1},{name:"hgroup",isVoid:!1},{name:"hr",isVoid:!0},{name:"li",isVoid:!1},{name:"main",isVoid:!1},{name:"nav",isVoid:!1},{name:"ol",isVoid:!1},{name:"p",isVoid:!1},{name:"section",isVoid:!1},{name:"table",isVoid:!1},{name:"tbody",isVoid:!1},{name:"td",isVoid:!1},{name:"th",isVoid:!1},{name:"thead",isVoid:!1},{name:"tr",isVoid:!1},{name:"ul",isVoid:!1}],t=e.map(o=>o.name).join("|"),i=n.replace(new RegExp(`</?(${t})( .*?)?>`,"g"),`
|
|
4
4
|
$&
|
|
5
5
|
`).replace(/<br[^>]*>/g,`$&
|
|
@@ -17,4 +17,4 @@ $&
|
|
|
17
17
|
`:n.is("element")&&n.getCustomProperty("dataPipeline:transparentRendering")||e.is("element")&&e.getCustomProperty("dataPipeline:transparentRendering")?"":`
|
|
18
18
|
|
|
19
19
|
`:""}class In extends k{_markersToCopy=new Map;static get pluginName(){return"ClipboardMarkersUtils"}static get isOfficialPlugin(){return!0}_registerMarkerToCopy(e,t){this._markersToCopy.set(e,t)}_copySelectedFragmentWithMarkers(e,t,i=r=>r.model.getSelectedContent(r.model.document.selection)){return this.editor.model.change(r=>{const s=r.model.document.selection;r.setSelection(t);const o=this._insertFakeMarkersIntoSelection(r,r.model.document.selection,e),a=i(r),l=this._removeFakeMarkersInsideElement(r,a);for(const[c,u]of Object.entries(o)){l[c]||=r.createRangeIn(a);for(const d of u)r.remove(d)}a.markers.clear();for(const[c,u]of Object.entries(l))a.markers.set(c,u);return r.setSelection(s),a})}_pasteMarkersIntoTransformedElement(e,t){const i=this._getPasteMarkersFromRangeMap(e);return this.editor.model.change(r=>{const s=this._insertFakeMarkersElements(r,i),o=t(r),a=this._removeFakeMarkersInsideElement(r,o);for(const l of Object.values(s).flat())r.remove(l);for(const[l,c]of Object.entries(a))r.model.markers.has(l)||r.addMarker(l,{usingOperation:!0,affectsData:!0,range:c});return o})}_pasteFragmentWithMarkers(e){const t=this._getPasteMarkersFromRangeMap(e.markers);e.markers.clear();for(const i of t)e.markers.set(i.name,i.range);return this.editor.model.insertContent(e)}_forceMarkersCopy(e,t,i={allowedActions:"all",copyPartiallySelected:!0,duplicateOnPaste:!0}){const r=this._markersToCopy.get(e);this._markersToCopy.set(e,i),t(),r?this._markersToCopy.set(e,r):this._markersToCopy.delete(e)}_isMarkerCopyable(e,t){const i=this._getMarkerClipboardConfig(e);if(!i)return!1;if(!t)return!0;const{allowedActions:r}=i;return r==="all"||r.includes(t)}_hasMarkerConfiguration(e){return!!this._getMarkerClipboardConfig(e)}_getMarkerClipboardConfig(e){const[t]=e.split(":");return this._markersToCopy.get(t)||null}_insertFakeMarkersIntoSelection(e,t,i){const r=this._getCopyableMarkersFromSelection(e,t,i);return this._insertFakeMarkersElements(e,r)}_getCopyableMarkersFromSelection(e,t,i){const r=Array.from(t.getRanges()),s=new Set(r.flatMap(a=>Array.from(e.model.markers.getMarkersIntersectingRange(a)))),o=a=>{if(!this._isMarkerCopyable(a.name,i))return!1;const{copyPartiallySelected:c}=this._getMarkerClipboardConfig(a.name);if(!c){const u=a.getRange();return r.some(d=>d.containsRange(u,!0))}return!0};return Array.from(s).filter(o).map(a=>({name:i==="dragstart"?this._getUniqueMarkerName(a.name):a.name,range:a.getRange()}))}_getPasteMarkersFromRangeMap(e,t=null){const{model:i}=this.editor;return(e instanceof Map?Array.from(e.entries()):Object.entries(e)).flatMap(([s,o])=>{if(!this._hasMarkerConfiguration(s))return[{name:s,range:o}];if(this._isMarkerCopyable(s,t)){const a=this._getMarkerClipboardConfig(s),l=i.markers.has(s)&&i.markers.get(s).getRange().root.rootName==="$graveyard";return(a.duplicateOnPaste||l)&&(s=this._getUniqueMarkerName(s)),[{name:s,range:o}]}return[]})}_insertFakeMarkersElements(e,t){const i={},r=t.flatMap(s=>{const{start:o,end:a}=s.range;return[{position:o,marker:s,type:"start"},{position:a,marker:s,type:"end"}]}).sort(({position:s},{position:o})=>s.isBefore(o)?1:-1);for(const{position:s,marker:o,type:a}of r){const l=e.createElement("$marker",{"data-name":o.name,"data-type":a});i[o.name]||(i[o.name]=[]),i[o.name].push(l),e.insert(l,s)}return i}_removeFakeMarkersInsideElement(e,t){const r=this._getAllFakeMarkersFromElement(e,t).reduce((s,o)=>{const a=o.markerElement&&e.createPositionBefore(o.markerElement);let l=s[o.name],c=!1;return l?.start&&l?.end&&(this._getMarkerClipboardConfig(o.name).duplicateOnPaste?s[this._getUniqueMarkerName(o.name)]=s[o.name]:c=!0,l=null),c||(s[o.name]={...l,[o.type]:a}),o.markerElement&&e.remove(o.markerElement),s},{});return VA(r,s=>new v(s.start||e.createPositionFromPath(t,[0]),s.end||e.createPositionAt(t,"end")))}_getAllFakeMarkersFromElement(e,t){const i=Array.from(e.createRangeIn(t)).flatMap(({item:o})=>{if(!o.is("element","$marker"))return[];const a=o.getAttribute("data-name"),l=o.getAttribute("data-type");return[{markerElement:o,name:a,type:l}]}),r=[],s=[];for(const o of i)o.type==="end"&&(i.some(l=>l.name===o.name&&l.type==="start")||r.push({markerElement:null,name:o.name,type:"start"})),o.type==="start"&&(i.some(l=>l.name===o.name&&l.type==="end")||s.unshift({markerElement:null,name:o.name,type:"end"}));return[...r,...i,...s]}_getUniqueMarkerName(e){const t=e.split(":"),i=Pe().substring(1,6);return t.length===3?`${t.slice(0,2).join(":")}:${i}`:`${t.join(":")}:${i}`}}class Ke extends k{static get pluginName(){return"ClipboardPipeline"}static get isOfficialPlugin(){return!0}static get requires(){return[In]}init(){this.editor.editing.view.addObserver(Kn),this._setupPasteDrop(),this._setupCopyCut()}_fireOutputTransformationEvent(e,t,i){const r=this.editor.plugins.get("ClipboardMarkersUtils");this.editor.model.enqueueChange({isUndoable:i==="cut"},()=>{const s=r._copySelectedFragmentWithMarkers(i,t);this.fire("outputTransformation",{dataTransfer:e,content:s,method:i})})}_setupPasteDrop(){const e=this.editor,t=e.model,i=e.editing.view,r=i.document,s=this.editor.plugins.get("ClipboardMarkersUtils");this.listenTo(r,"clipboardInput",(o,a)=>{a.method=="paste"&&!e.model.canEditAt(e.model.document.selection)&&o.stop()},{priority:"highest"}),this.listenTo(r,"clipboardInput",(o,a)=>{const l=a.dataTransfer;let c;if(a.content)c=a.content;else{let h="";l.getData("text/html")?h=OA(l.getData("text/html")):l.getData("text/plain")&&(h=NA(l.getData("text/plain"))),c=this.editor.data.htmlProcessor.toView(h)}const u=new _t(this,"inputTransformation"),d=l.getData("application/ckeditor5-editor-id")||null;this.fire(u,{content:c,dataTransfer:l,sourceEditorId:d,targetRanges:a.targetRanges,method:a.method}),u.stop.called&&o.stop(),i.scrollToTheSelection()},{priority:"low"}),this.listenTo(this,"inputTransformation",(o,a)=>{if(a.content.isEmpty)return;const c=this.editor.data.toModel(a.content,"$clipboardHolder");c.childCount!=0&&(o.stop(),t.change(()=>{this.fire("contentInsertion",{content:c,method:a.method,sourceEditorId:a.sourceEditorId,dataTransfer:a.dataTransfer,targetRanges:a.targetRanges})}))},{priority:"low"}),this.listenTo(this,"contentInsertion",(o,a)=>{a.resultRange=s._pasteFragmentWithMarkers(a.content)},{priority:"low"})}_setupCopyCut(){const e=this.editor,t=e.model.document,r=e.editing.view.document,s=(o,a)=>{const l=a.dataTransfer;a.preventDefault(),this._fireOutputTransformationEvent(l,t.selection,o.name)};this.listenTo(r,"copy",s,{priority:"low"}),this.listenTo(r,"cut",(o,a)=>{e.model.canEditAt(e.model.document.selection)?s(o,a):a.preventDefault()},{priority:"low"}),this.listenTo(this,"outputTransformation",(o,a)=>{const l=e.data.toView(a.content,{isClipboardPipeline:!0});r.fire("clipboardOutput",{dataTransfer:a.dataTransfer,content:l,method:a.method})},{priority:"low"}),this.listenTo(r,"clipboardOutput",(o,a)=>{a.content.isEmpty||(a.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(a.content)),a.dataTransfer.setData("text/plain",lp(e.data.htmlProcessor.domConverter,a.content)),a.dataTransfer.setData("application/ckeditor5-editor-id",this.editor.id)),a.method=="cut"&&e.model.deleteContent(t.selection)},{priority:"low"})}}const Ao=Gi("px");class zA extends S{constructor(){super();const e=this.bindTemplate;this.set({isVisible:!1,left:null,top:null,width:null}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-clipboard-drop-target-line",e.if("isVisible","ck-hidden",t=>!t)],style:{left:e.to("left",t=>Ao(t)),top:e.to("top",t=>Ao(t)),width:e.to("width",t=>Ao(t))}}})}}class xr extends k{removeDropMarkerDelayed=Na(()=>this.removeDropMarker(),40);_updateDropMarkerThrottled=vd(e=>this._updateDropMarker(e),40);_reconvertMarkerThrottled=vd(()=>{this.editor.model.markers.has("drop-target")&&this.editor.editing.reconvertMarker("drop-target")},0);_dropTargetLineView=new zA;_domEmitter=new(Ee());_scrollables=new Map;static get pluginName(){return"DragDropTarget"}static get isOfficialPlugin(){return!0}init(){this._setupDropMarker()}destroy(){this._domEmitter.stopListening();for(const{resizeObserver:e}of this._scrollables.values())e.destroy();return this._updateDropMarkerThrottled.cancel(),this.removeDropMarkerDelayed.cancel(),this._reconvertMarkerThrottled.cancel(),super.destroy()}updateDropMarker(e,t,i,r,s,o){this.removeDropMarkerDelayed.cancel();const a=Ld(this.editor,e,t,i,r,s,o);if(a){if(o&&o.containsRange(a))return this.removeDropMarker();this._updateDropMarkerThrottled(a)}}getFinalDropRange(e,t,i,r,s,o){const a=Ld(this.editor,e,t,i,r,s,o);return this.removeDropMarker(),a}removeDropMarker(){const e=this.editor.model;this.removeDropMarkerDelayed.cancel(),this._updateDropMarkerThrottled.cancel(),this._dropTargetLineView.isVisible=!1,e.markers.has("drop-target")&&e.change(t=>{t.removeMarker("drop-target")})}_setupDropMarker(){const e=this.editor;e.ui.view.body.add(this._dropTargetLineView),e.conversion.for("editingDowncast").markerToHighlight({model:"drop-target",view:{classes:["ck-clipboard-drop-target-range"]}}),e.conversion.for("editingDowncast").markerToElement({model:"drop-target",view:(t,{writer:i})=>{if(e.model.schema.checkChild(t.markerRange.start,"$text"))return this._dropTargetLineView.isVisible=!1,this._createDropTargetPosition(i);t.markerRange.isCollapsed?this._updateDropTargetLine(t.markerRange):this._dropTargetLineView.isVisible=!1}})}_updateDropMarker(e){const t=this.editor,i=t.model.markers;t.model.change(r=>{i.has("drop-target")?i.get("drop-target").getRange().isEqual(e)||r.updateMarker("drop-target",{range:e}):r.addMarker("drop-target",{range:e,usingOperation:!1,affectsData:!1})})}_createDropTargetPosition(e){return e.createUIElement("span",{class:"ck ck-clipboard-drop-target-position"},function(t){const i=this.toDomElement(t);return i.append("",t.createElement("span"),""),i})}_updateDropTargetLine(e){const t=this.editor.editing,i=e.start.nodeBefore,r=e.start.nodeAfter,s=e.start.parent,o=i?t.mapper.toViewElement(i):null,a=o?t.view.domConverter.mapViewToDom(o):null,l=r?t.mapper.toViewElement(r):null,c=l?t.view.domConverter.mapViewToDom(l):null,u=t.mapper.toViewElement(s);if(!u)return;const d=t.view.domConverter.mapViewToDom(u),h=this._getScrollableRect(u),{scrollX:m,scrollY:g}=E.window,f=a?new B(a):null,b=c?new B(c):null,y=new B(d).excludeScrollbarsAndBorders(),C=f?f.bottom:y.top,L=b?b.top:y.bottom,O=E.window.getComputedStyle(d),U=C<=L?(C+L)/2:L;if(h.top<U&&U<h.bottom){const x=y.left+parseFloat(O.paddingLeft),D=y.right-parseFloat(O.paddingRight),I=Math.max(x+m,h.left),M=Math.min(D+m,h.right);this._dropTargetLineView.set({isVisible:!0,left:I,top:U+g,width:M-I})}else this._dropTargetLineView.isVisible=!1}_getScrollableRect(e){const t=e.root.rootName;let i;if(this._scrollables.has(t))i=this._scrollables.get(t).domElement;else{const r=this.editor.editing.view.domConverter.mapViewToDom(e);i=UA(r),this._domEmitter.listenTo(i,"scroll",this._reconvertMarkerThrottled,{usePassive:!0});const s=new ie(i,this._reconvertMarkerThrottled);this._scrollables.set(t,{domElement:i,resizeObserver:s})}return new B(i).excludeScrollbarsAndBorders()}}function Ld(n,e,t,i,r,s,o){const a=n.model,l=n.editing.mapper;let u=Td(n,e);for(;u;){if(!s){if(a.schema.checkChild(u,"$text")){if(t){const d=t[0].start,h=l.toModelPosition(d);if(!o||Array.from(o.getItems({shallow:!0})).every(g=>a.schema.checkChild(h,g))){if(a.schema.checkChild(h,"$text"))return a.createRange(h);if(d)return Sr(n,Td(n,d.parent),i,r)}}}else if(a.schema.isInline(u))return Sr(n,u,i,r)}if(a.schema.isBlock(u))return Sr(n,u,i,r);if(a.schema.checkChild(u,"$block")){const d=Array.from(u.getChildren()).filter(g=>g.is("element")&&!FA(n,g));let h=0,m=d.length;if(m==0)return a.createRange(a.createPositionAt(u,"end"));for(;h<m-1;){const g=Math.floor((h+m)/2);up(n,d[g],i,r)=="before"?m=g:h=g}return Sr(n,d[h],i,r)}u=u.parent}return null}function FA(n,e){const t=n.editing.mapper,i=n.editing.view.domConverter,r=t.toViewElement(e);if(!r)return!0;const s=i.mapViewToDom(r);return E.window.getComputedStyle(s).float!="none"}function Sr(n,e,t,i){const r=n.model;return r.createRange(r.createPositionAt(e,up(n,e,t,i)))}function up(n,e,t,i){const r=n.editing.mapper,s=n.editing.view.domConverter,o=r.toViewElement(e),a=s.mapViewToDom(o),l=new B(a);return n.model.schema.isInline(e)?t<(l.left+l.right)/2?"before":"after":i<(l.top+l.bottom)/2?"before":"after"}function Td(n,e){const t=n.editing.mapper,i=n.editing.view,r=t.toModelElement(e);if(r)return r;const s=i.createPositionBefore(e),o=t.findMappedViewAncestor(s);return t.toModelElement(o)}function UA(n){let e=n;do{e=e.parentElement;const t=E.window.getComputedStyle(e).overflowY;if(t=="auto"||t=="scroll")break}while(e.tagName!="BODY");return e}class HA extends k{_isBlockDragging=!1;_domEmitter=new(Ee());static get pluginName(){return"DragDropBlockToolbar"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;if(this.listenTo(e,"change:isReadOnly",(t,i,r)=>{r?(this.forceDisabled("readOnlyMode"),this._isBlockDragging=!1):this.clearForceDisabled("readOnlyMode")}),R.isAndroid&&this.forceDisabled("noAndroidSupport"),e.plugins.has("BlockToolbar")){const i=e.plugins.get("BlockToolbar").buttonView.element;this._domEmitter.listenTo(i,"dragstart",(r,s)=>this._handleBlockDragStart(s)),this._domEmitter.listenTo(E.document,"dragover",(r,s)=>this._handleBlockDragging(s)),this._domEmitter.listenTo(E.document,"drop",(r,s)=>this._handleBlockDragging(s)),this._domEmitter.listenTo(E.document,"dragend",()=>this._handleBlockDragEnd(),{useCapture:!0}),this.isEnabled&&i.setAttribute("draggable","true"),this.on("change:isEnabled",(r,s,o)=>{i.setAttribute("draggable",o?"true":"false")})}}destroy(){return this._domEmitter.stopListening(),super.destroy()}_handleBlockDragStart(e){if(!this.isEnabled)return;const t=this.editor.model,i=t.document.selection,r=this.editor.editing.view,s=Array.from(i.getSelectedBlocks()),o=t.createRange(t.createPositionBefore(s[0]),t.createPositionAfter(s[s.length-1]));t.change(a=>a.setSelection(o)),this._isBlockDragging=!0,r.focus(),r.getObserver(Kn).onDomEvent(e)}_handleBlockDragging(e){if(!this.isEnabled||!this._isBlockDragging)return;const t=e.clientX+(this.editor.locale.contentLanguageDirection=="ltr"?100:-100),i=e.clientY,r=document.elementFromPoint(t,i),s=this.editor.editing.view;!r||!r.closest(".ck-editor__editable")||s.getObserver(Kn).onDomEvent({...e,type:e.type,dataTransfer:e.dataTransfer,target:r,clientX:t,clientY:i,preventDefault:()=>e.preventDefault(),stopPropagation:()=>e.stopPropagation()})}_handleBlockDragEnd(){this._isBlockDragging=!1}}class jA extends k{_draggedRange;_draggingUid;_draggableElement;_clearDraggableAttributesDelayed=Na(()=>this._clearDraggableAttributes(),40);_blockMode=!1;_domEmitter=new(Ee());_previewContainer;static get pluginName(){return"DragDrop"}static get isOfficialPlugin(){return!0}static get requires(){return[Ke,rr,xr,HA]}init(){const e=this.editor,t=e.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,t.addObserver(Kn),t.addObserver(Vs),this._setupDragging(),this._setupContentInsertionIntegration(),this._setupClipboardInputIntegration(),this._setupDraggableAttributeHandling(),this.listenTo(e,"change:isReadOnly",(i,r,s)=>{s?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")}),this.on("change:isEnabled",(i,r,s)=>{s||this._finalizeDragging(!1)}),R.isAndroid&&this.forceDisabled("noAndroidSupport")}destroy(){return this._draggedRange&&(this._draggedRange.detach(),this._draggedRange=null),this._previewContainer&&this._previewContainer.remove(),this._domEmitter.stopListening(),this._clearDraggableAttributesDelayed.cancel(),super.destroy()}_setupDragging(){const e=this.editor,t=e.model,i=e.editing.view,r=i.document,s=e.plugins.get(xr);this.listenTo(r,"dragstart",(o,a)=>{if(a.target?.is("editableElement")){a.preventDefault();return}if(this._prepareDraggedRange(a.target),!this._draggedRange){a.preventDefault();return}this._draggingUid=Pe(),a.dataTransfer.effectAllowed=this.isEnabled?"copyMove":"copy",a.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const l=t.createSelection(this._draggedRange.toRange());this.editor.plugins.get("ClipboardPipeline")._fireOutputTransformationEvent(a.dataTransfer,l,"dragstart");const{dataTransfer:u,domTarget:d,domEvent:h}=a,{clientX:m}=h;this._updatePreview({dataTransfer:u,domTarget:d,clientX:m}),a.stopPropagation(),this.isEnabled||(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="")},{priority:"low"}),this.listenTo(r,"dragend",(o,a)=>{this._finalizeDragging(!a.dataTransfer.isCanceled&&a.dataTransfer.dropEffect=="move")},{priority:"low"}),this._domEmitter.listenTo(E.document,"dragend",()=>{this._blockMode=!1},{useCapture:!0}),this.listenTo(r,"dragenter",()=>{this.isEnabled&&i.focus()}),this.listenTo(r,"dragleave",()=>{s.removeDropMarkerDelayed()}),this.listenTo(r,"dragging",(o,a)=>{if(!this.isEnabled){a.dataTransfer.dropEffect="none";return}const{clientX:l,clientY:c}=a.domEvent;s.updateDropMarker(a.target,a.targetRanges,l,c,this._blockMode,this._draggedRange),this._draggedRange||(a.dataTransfer.dropEffect="copy"),R.isGecko||(a.dataTransfer.effectAllowed=="copy"?a.dataTransfer.dropEffect="copy":["all","copyMove"].includes(a.dataTransfer.effectAllowed)&&(a.dataTransfer.dropEffect="move")),o.stop()},{priority:"low"})}_setupClipboardInputIntegration(){const e=this.editor,i=e.editing.view.document,r=e.plugins.get(xr);this.listenTo(i,"clipboardInput",(s,o)=>{if(o.method!="drop")return;const{clientX:a,clientY:l}=o.domEvent,c=r.getFinalDropRange(o.target,o.targetRanges,a,l,this._blockMode,this._draggedRange);if(!c){this._finalizeDragging(!1),s.stop();return}if(this._draggedRange&&this._draggingUid!=o.dataTransfer.getData("application/ckeditor5-dragging-uid")&&(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid=""),Ed(o.dataTransfer)=="move"&&this._draggedRange&&this._draggedRange.containsRange(c,!0)){this._finalizeDragging(!1),s.stop();return}o.targetRanges=[e.editing.mapper.toViewRange(c)]},{priority:"high"})}_setupContentInsertionIntegration(){const e=this.editor.plugins.get(Ke);e.on("contentInsertion",(t,i)=>{if(!this.isEnabled||i.method!=="drop")return;const r=i.targetRanges.map(s=>this.editor.editing.mapper.toModelRange(s));this.editor.model.change(s=>s.setSelection(r))},{priority:"high"}),e.on("contentInsertion",(t,i)=>{if(!this.isEnabled||i.method!=="drop")return;const r=Ed(i.dataTransfer)=="move",s=!i.resultRange||!i.resultRange.isCollapsed;this._finalizeDragging(s&&r)},{priority:"lowest"})}_setupDraggableAttributeHandling(){const e=this.editor,t=e.editing.view,i=t.document;this.listenTo(i,"mousedown",(r,s)=>{if(R.isAndroid||!s)return;this._clearDraggableAttributesDelayed.cancel();let o=xd(s.target);if(R.isBlink&&!e.isReadOnly&&!o&&!i.selection.isCollapsed){const a=i.selection.getSelectedElement();(!a||!oe(a))&&(o=i.selection.editableElement)}o&&(t.change(a=>{a.setAttribute("draggable","true",o)}),this._draggableElement=e.editing.mapper.toModelElement(o))}),this.listenTo(i,"mouseup",()=>{R.isAndroid||this._clearDraggableAttributesDelayed()})}_clearDraggableAttributes(){const e=this.editor.editing;e.view.change(t=>{this._draggableElement&&this._draggableElement.root.rootName!="$graveyard"&&t.removeAttribute("draggable",e.mapper.toViewElement(this._draggableElement)),this._draggableElement=null})}_finalizeDragging(e){const t=this.editor,i=t.model;t.plugins.get(xr).removeDropMarker(),this._clearDraggableAttributes(),t.plugins.has("WidgetToolbarRepository")&&t.plugins.get("WidgetToolbarRepository").clearForceDisabled("dragDrop"),this._draggingUid="",this._previewContainer&&(this._previewContainer.remove(),this._previewContainer=void 0),this._draggedRange&&(e&&this.isEnabled&&i.change(s=>{const o=i.createSelection(this._draggedRange);i.deleteContent(o,{doNotAutoparagraph:!0});const a=o.getFirstPosition().parent;a.isEmpty&&!i.schema.checkChild(a,"$text")&&i.schema.checkChild(a,"paragraph")&&s.insertElement("paragraph",a,0)}),this._draggedRange.detach(),this._draggedRange=null)}_prepareDraggedRange(e){const t=this.editor,i=t.model,r=i.document.selection,s=e?xd(e):null;if(s){const c=t.editing.mapper.toModelElement(s);this._draggedRange=qe.fromRange(i.createRangeOn(c)),this._blockMode=i.schema.isBlock(c),t.plugins.has("WidgetToolbarRepository")&&t.plugins.get("WidgetToolbarRepository").forceDisabled("dragDrop");return}if(r.isCollapsed&&!r.getFirstPosition().parent.isEmpty)return;const o=Array.from(r.getSelectedBlocks()),a=r.getFirstRange();if(o.length==0){this._draggedRange=qe.fromRange(a);return}const l=dp(i,o);if(o.length>1)this._draggedRange=qe.fromRange(l),this._blockMode=!0;else if(o.length==1){const c=a.start.isTouching(l.start)&&a.end.isTouching(l.end);this._draggedRange=qe.fromRange(c?l:a),this._blockMode=c}i.change(c=>c.setSelection(this._draggedRange.toRange()))}_updatePreview({dataTransfer:e,domTarget:t,clientX:i}){const r=this.editor.editing.view,s=r.document.selection.editableElement,o=r.domConverter.mapViewToDom(s),a=E.window.getComputedStyle(o);this._previewContainer?this._previewContainer.firstElementChild&&this._previewContainer.removeChild(this._previewContainer.firstElementChild):(this._previewContainer=Ne(E.document,"div",{style:"position: fixed; left: -999999px;"}),E.document.body.appendChild(this._previewContainer));const l=new B(o);if(o.contains(t))return;const c=parseFloat(a.paddingLeft),u=Ne(E.document,"div");u.className="ck ck-content",u.style.width=a.width,u.style.paddingLeft=`${l.left-i+c}px`,R.isiOS&&(u.style.backgroundColor="white"),r.domConverter.setContentOf(u,e.getData("text/html")),e.setDragImage(u,0,0),this._previewContainer.appendChild(u)}}function Ed(n){return R.isGecko?n.dropEffect:["all","copyMove"].includes(n.effectAllowed)?"move":"copy"}function xd(n){if(n.is("editableElement"))return null;if(n.hasClass("ck-widget__selection-handle"))return n.findAncestor(oe);if(oe(n))return n;const e=n.findAncestor(t=>oe(t)||t.is("editableElement"));return oe(e)?e:null}function dp(n,e){const t=e[0],i=e[e.length-1],r=t.getCommonAncestor(i),s=n.createPositionBefore(t),o=n.createPositionAfter(i);if(r&&r.is("element")&&!n.schema.isLimit(r)){const a=n.createRangeOn(r),l=s.isTouching(a.start),c=o.isTouching(a.end);if(l&&c)return dp(n,[r])}return n.createRange(s,o)}class WA extends k{static get pluginName(){return"PastePlainText"}static get isOfficialPlugin(){return!0}static get requires(){return[Ke]}init(){const e=this.editor,t=e.model,i=e.editing.view,r=t.document.selection;i.addObserver(Kn),e.plugins.get(Ke).on("contentInsertion",(s,o)=>{qA(o.content,t)&&t.change(a=>{const l=Array.from(r.getAttributes()).filter(([u])=>t.schema.getAttributeProperties(u).isFormatting);r.isCollapsed||t.deleteContent(r,{doNotAutoparagraph:!0}),l.push(...r.getAttributes());const c=a.createRangeIn(o.content);for(const u of c.getItems())for(const d of l)t.schema.checkAttribute(u,d[0])&&a.setAttribute(d[0],d[1],u)})})}}function qA(n,e){let t=e.createRangeIn(n);if(n.childCount==1){const i=n.getChild(0);i.is("element")&&e.schema.isBlock(i)&&!e.schema.isObject(i)&&!e.schema.isLimit(i)&&(t=e.createRangeIn(i))}for(const i of t.getItems())if(!e.schema.isInline(i)||Array.from(i.getAttributeKeys()).find(s=>e.schema.getAttributeProperties(s).isFormatting))return!1;return!0}class $A extends k{static get pluginName(){return"Clipboard"}static get isOfficialPlugin(){return!0}static get requires(){return[In,Ke,jA,WA]}init(){const e=this.editor,t=this.editor.t;e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Copy selected content"),keystroke:"CTRL+C"},{label:t("Paste content"),keystroke:"CTRL+V"},{label:t("Paste content as plain text"),keystroke:"CTRL+SHIFT+V"}]})}}function GA(n){return typeof n=="object"&&n!==null}function KA(n){if(typeof n!="object"||n==null)return!1;if(Object.getPrototypeOf(n)===null)return!0;if(Object.prototype.toString.call(n)!=="[object Object]"){const t=n[Symbol.toStringTag];return t==null||!Object.getOwnPropertyDescriptor(n,Symbol.toStringTag)?.writable?!1:n.toString()===`[object ${t}]`}let e=n;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(n)===e}function ZA(n){return GA(n)&&n.nodeType===1&&!KA(n)}class JA extends Bx{view;_toolbarConfig;_elementReplacer;constructor(e,t){super(e),this.view=t,this._toolbarConfig=Vf(e.config.get("toolbar")),this._elementReplacer=new um,this.listenTo(e.editing.view,"scrollToTheSelection",this._handleScrollToTheSelectionWithStickyPanel.bind(this))}get element(){return this.view.element}init(e){const t=this.editor,i=this.view,r=t.editing.view,s=i.editable,o=r.document.getRoot();s.name=o.rootName,i.render();const a=s.element;this.setEditableElement(s.name,a),i.editable.bind("isFocused").to(this.focusTracker),r.attachDomRoot(a),e&&this._elementReplacer.replace(e,this.element),this._initPlaceholder(),this._initToolbar(),i.menuBarView&&this.initMenuBar(i.menuBarView),this._initDialogPluginIntegration(),this._initContextualBalloonIntegration(),this.fire("ready")}destroy(){super.destroy();const e=this.view,t=this.editor.editing.view;this._elementReplacer.restore(),t.getDomRoot(e.editable.name)&&t.detachDomRoot(e.editable.name),e.destroy()}_initToolbar(){const e=this.view;e.stickyPanel.bind("isActive").to(this.focusTracker,"isFocused"),e.stickyPanel.limiterElement=e.element,e.stickyPanel.bind("viewportTopOffset").to(this,"viewportOffset",({visualTop:t})=>t||0),e.toolbar.fillFromConfig(this._toolbarConfig,this.componentFactory),this.addToolbar(e.toolbar)}_initPlaceholder(){const e=this.editor,t=e.editing.view,i=t.document.getRoot(),r=e.sourceElement;let s;const o=e.config.get("placeholder");o&&(s=typeof o=="string"?o:o[this.view.editable.name]),!s&&r&&r.tagName.toLowerCase()==="textarea"&&(s=r.getAttribute("placeholder")),s&&(i.placeholder=s),Ga({view:t,element:i,isDirectHost:!1,keepOnFocus:!0})}_initContextualBalloonIntegration(){if(!this.editor.plugins.has("ContextualBalloon"))return;const{stickyPanel:e}=this.view,t=this.editor.plugins.get("ContextualBalloon");t.on("getPositionOptions",r=>{const s=r.return;if(!s||!e.isSticky||!e.element)return;const o=new B(e.element).height,a=typeof s.target=="function"?s.target():s.target,l=typeof s.limiter=="function"?s.limiter():s.limiter;if(a&&l&&new B(a).height>=new B(l).height-o)return;const c={...s.viewportOffsetConfig},u=(c.top||0)+o;r.return={...s,viewportOffsetConfig:{...c,top:u}}},{priority:"low"});const i=()=>{t.visibleView&&t.updatePosition()};this.listenTo(e,"change:isSticky",i),this.listenTo(this.editor.ui,"change:viewportOffset",i)}_handleScrollToTheSelectionWithStickyPanel(e,t,i){const r=this.view.stickyPanel;if(r.isSticky){const s=new B(r.element).height;t.viewportOffset.top+=s}else{const s=()=>{this.editor.editing.view.scrollToTheSelection(i)};this.listenTo(r,"change:isSticky",s),setTimeout(()=>{this.stopListening(r,"change:isSticky",s)},20)}}_initDialogPluginIntegration(){if(!this.editor.plugins.has("Dialog"))return;const e=this.view.stickyPanel,t=this.editor.plugins.get("Dialog");t.on("show",()=>{const i=t.view;i.on("moveTo",(r,s)=>{if(!e.isSticky||i.wasMoved||i.isModal)return;const o=new B(e.contentPanelElement);s[1]<o.bottom+qn.defaultOffset&&(s[1]=o.bottom+qn.defaultOffset)},{priority:"high"})},{priority:"low"})}}class YA extends Nx{stickyPanel;toolbar;editable;constructor(e,t,i={}){super(e),this.stickyPanel=new Ux(e),this.toolbar=new si(e,{shouldGroupWhenFull:i.shouldToolbarGroupWhenFull}),i.useMenuBar&&(this.menuBarView=new qx(e)),this.editable=new Dx(e,t,void 0,{label:i.label})}render(){super.render(),this.menuBarView?this.stickyPanel.content.addMany([this.menuBarView,this.toolbar]):this.stickyPanel.content.add(this.toolbar),this.top.add(this.stickyPanel),this.main.add(this.editable)}}class XA extends ia(YC){static get editorName(){return"ClassicEditor"}ui;constructor(e,t={}){if(!Wr(e)&&t.initialData!==void 0)throw new p("editor-create-initial-data",null);super(t),this.config.define("menuBar.isVisible",!1),this.config.get("initialData")===void 0&&this.config.set("initialData",QA(e)),Wr(e)&&(this.sourceElement=e),this.model.document.createRoot();const i=!this.config.get("toolbar.shouldNotGroupWhenFull"),r=this.config.get("menuBar"),s=new YA(this.locale,this.editing.view,{shouldToolbarGroupWhenFull:i,useMenuBar:r.isVisible,label:this.config.get("label")});this.ui=new JA(this,s),QC(this)}destroy(){return this.sourceElement&&this.updateSourceElement(),this.ui.destroy(),super.destroy()}static create(e,t={}){return new Promise(i=>{const r=new this(e,t);i(r.initPlugins().then(()=>r.ui.init(Wr(e)?e:null)).then(()=>r.data.init(r.config.get("initialData"))).then(()=>r.fire("ready")).then(()=>r))})}}function QA(n){return Wr(n)?Oy(n):n}function Wr(n){return ZA(n)}class eI extends N{constructor(e){super(e),this.affectsData=!1}execute(){const e=this.editor.model,t=e.document.selection;let i=e.schema.getLimitElement(t);if(t.containsEntireContent(i)||!Sd(e.schema,i))do if(i=i.parent,!i)return;while(!Sd(e.schema,i));e.change(r=>{r.setSelection(i,"in")})}}function Sd(n,e){return n.isLimit(e)&&(n.checkChild(e,"$text")||n.checkChild(e,"paragraph"))}const tI=Ba("Ctrl+A");class iI extends k{static get pluginName(){return"SelectAllEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t,r=e.editing.view.document;e.commands.add("selectAll",new eI(e)),this.listenTo(r,"keydown",(s,o)=>{Ui(o)===tI&&(e.execute("selectAll"),o.preventDefault())}),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Select all"),keystroke:"CTRL+A"}]})}}class nI extends k{static get pluginName(){return"SelectAllUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("selectAll",()=>{const t=this._createButton(P);return t.set({tooltip:!0}),t}),e.ui.componentFactory.add("menuBar:selectAll",()=>this._createButton(ke))}_createButton(e){const t=this.editor,i=t.locale,r=t.commands.get("selectAll"),s=new e(t.locale),o=i.t;return s.set({label:o("Select all"),icon:IT,keystroke:"Ctrl+A"}),s.bind("isEnabled").to(r,"isEnabled"),this.listenTo(s,"execute",()=>{t.execute("selectAll"),t.editing.view.focus()}),s}}class rI extends k{static get requires(){return[iI,nI]}static get pluginName(){return"SelectAll"}static get isOfficialPlugin(){return!0}}class hp extends N{_stack=[];_createdBatches=new WeakSet;constructor(e){super(e),this.refresh(),this._isEnabledBasedOnSelection=!1,this.listenTo(e.data,"set",(t,i)=>{i[1]={...i[1]};const r=i[1];r.batchType||(r.batchType={isUndoable:!1})},{priority:"high"}),this.listenTo(e.data,"set",(t,i)=>{i[1].batchType.isUndoable||this.clearStack()})}refresh(){this.isEnabled=this._stack.length>0}get createdBatches(){return this._createdBatches}addBatch(e){const t=this.editor.model.document.selection,i={ranges:t.hasOwnRange?Array.from(t.getRanges()):[],isBackward:t.isBackward};this._stack.push({batch:e,selection:i}),this.refresh()}clearStack(){this._stack=[],this.refresh()}_restoreSelection(e,t,i){const r=this.editor.model,s=r.document,o=[],a=e.map(c=>c.getTransformedByOperations(i)),l=a.flat();for(const c of a){const u=c.filter(d=>d.root!=s.graveyard).filter(d=>!oI(d,l));u.length&&(sI(u),o.push(u[0]))}o.length&&r.change(c=>{c.setSelection(o,{backward:t})})}_undo(e,t){const i=this.editor.model,r=i.document;this._createdBatches.add(t);const s=e.operations.slice().filter(o=>o.isDocumentOperation);s.reverse();for(const o of s){const a=o.baseVersion+1,l=Array.from(r.history.getOperations(a)),u=z0([o.getReversed()],l,{useRelations:!0,document:this.editor.model.document,forceWeakRemove:!0}).operationsA;for(let d of u){const h=d.affectedSelectable;h&&!i.canEditAt(h)&&(d=new he(d.baseVersion)),t.addOperation(d),i.applyOperation(d),r.history.setOperationAsUndone(o,d)}}}}function sI(n){n.sort((e,t)=>e.start.isBefore(t.start)?-1:1);for(let e=1;e<n.length;e++){const i=n[e-1].getJoined(n[e],!0);i&&(e--,n.splice(e,2,i))}}function oI(n,e){return e.some(t=>t!==n&&t.containsRange(n,!0))}class aI extends hp{execute(e=null){const t=e?this._stack.findIndex(s=>s.batch==e):this._stack.length-1,i=this._stack.splice(t,1)[0],r=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(r,()=>{this._undo(i.batch,r);const s=this.editor.model.document.history.getOperations(i.batch.baseVersion);this._restoreSelection(i.selection.ranges,i.selection.isBackward,s)}),this.fire("revert",i.batch,r),this.refresh()}}class lI extends hp{execute(){const e=this._stack.pop(),t=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(t,()=>{const r=e.batch.operations[e.batch.operations.length-1].baseVersion+1,s=this.editor.model.document.history.getOperations(r);this._restoreSelection(e.selection.ranges,e.selection.isBackward,s),this._undo(e.batch,t)}),this.refresh()}}class cI extends k{_undoCommand;_redoCommand;_batchRegistry=new WeakSet;static get pluginName(){return"UndoEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t;this._undoCommand=new aI(e),this._redoCommand=new lI(e),e.commands.add("undo",this._undoCommand),e.commands.add("redo",this._redoCommand),this.listenTo(e.model,"applyOperation",(i,r)=>{const s=r[0];if(!s.isDocumentOperation)return;const o=s.batch,a=this._redoCommand.createdBatches.has(o),l=this._undoCommand.createdBatches.has(o);this._batchRegistry.has(o)||(this._batchRegistry.add(o),o.isUndoable&&(a?this._undoCommand.addBatch(o):l||(this._undoCommand.addBatch(o),this._redoCommand.clearStack())))},{priority:"highest"}),this.listenTo(this._undoCommand,"revert",(i,r,s)=>{this._redoCommand.addBatch(s)}),e.keystrokes.set("CTRL+Z","undo"),e.keystrokes.set("CTRL+Y","redo"),e.keystrokes.set("CTRL+SHIFT+Z","redo"),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Undo"),keystroke:"CTRL+Z"},{label:t("Redo"),keystroke:[["CTRL+Y"],["CTRL+SHIFT+Z"]]}]})}}class uI extends k{static get pluginName(){return"UndoUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale,i=e.t,r=t.uiLanguageDirection=="ltr"?vu:wu,s=t.uiLanguageDirection=="ltr"?wu:vu;this._addButtonsToFactory("undo",i("Undo"),"CTRL+Z",r),this._addButtonsToFactory("redo",i("Redo"),"CTRL+Y",s)}_addButtonsToFactory(e,t,i,r){const s=this.editor;s.ui.componentFactory.add(e,()=>{const o=this._createButton(P,e,t,i,r);return o.set({tooltip:!0}),o}),s.ui.componentFactory.add("menuBar:"+e,()=>this._createButton(ke,e,t,i,r))}_createButton(e,t,i,r,s){const o=this.editor,a=o.locale,l=o.commands.get(t),c=new e(a);return c.set({label:i,icon:s,keystroke:r}),c.bind("isEnabled").to(l,"isEnabled"),this.listenTo(c,"execute",()=>{o.execute(t),o.editing.view.focus()}),c}}class dI extends k{static get requires(){return[cI,uI]}static get pluginName(){return"Undo"}static get isOfficialPlugin(){return!0}}class hI extends k{static get requires(){return[AE,$A,Us,rI,VS,fS,dI]}static get pluginName(){return"Essentials"}static get isOfficialPlugin(){return!0}}class mI extends N{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}refresh(){const e=this.editor.model,t=e.document,i=ce(t.selection.getSelectedBlocks());this.value=!!i&&i.is("element","paragraph"),this.isEnabled=!!i&&Ad(i,e.schema)}execute(e={}){const t=this.editor.model,i=t.document,r=e.selection||i.selection;t.canEditAt(r)&&t.change(s=>{const o=r.getSelectedBlocks();for(const a of o)!a.is("element","paragraph")&&Ad(a,t.schema)&&s.rename(a,"paragraph")})}}function Ad(n,e){return e.checkChild(n.parent,"paragraph")&&!e.isObject(n)}class gI extends N{constructor(e){super(e),this._isEnabledBasedOnSelection=!1}execute(e){const t=this.editor.model,i=e.attributes;let r=e.position;return t.canEditAt(r)?t.change(s=>{if(r=this._findPositionToInsertParagraph(r,s),!r)return null;const o=s.createElement("paragraph");return i&&t.schema.setAllowedAttributes(o,i,s),t.insertContent(o,r),s.setSelection(o,"in"),s.createPositionAt(o,0)}):null}_findPositionToInsertParagraph(e,t){const i=this.editor.model;if(i.schema.checkChild(e,"paragraph"))return e;const r=i.schema.findAllowedParent(e,"paragraph");if(!r)return null;const s=e.parent,o=i.schema.checkChild(s,"$text");return s.isEmpty||o&&e.isAtEnd?i.createPositionAfter(s):!s.isEmpty&&o&&e.isAtStart?i.createPositionBefore(s):t.split(e,r).position}}class Hs extends k{static get pluginName(){return"Paragraph"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model;e.commands.add("paragraph",new mI(e)),e.commands.add("insertParagraph",new gI(e)),t.schema.register("paragraph",{inheritAllFrom:"$block"}),e.conversion.elementToElement({model:"paragraph",view:"p"}),e.conversion.for("upcast").elementToElement({model:(i,{writer:r})=>!Hs.paragraphLikeElements.has(i.name)||i.isEmpty?null:r.createElement("paragraph"),view:/.+/,converterPriority:"low"})}static paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"])}class fI extends N{modelElements;constructor(e,t){super(e),this.modelElements=t}refresh(){const e=ce(this.editor.model.document.selection.getSelectedBlocks());this.value=!!e&&this.modelElements.includes(e.name)&&e.name,this.isEnabled=!!e&&this.modelElements.some(t=>Id(e,t,this.editor.model.schema))}execute(e){const t=this.editor.model,i=t.document,r=e.value;t.change(s=>{const o=Array.from(i.selection.getSelectedBlocks()).filter(a=>Id(a,r,t.schema));for(const a of o)a.is("element",r)||s.rename(a,r)})}}function Id(n,e,t){return t.checkChild(n.parent,e)&&!t.isObject(n)}const Pd="paragraph";class pI extends k{static get pluginName(){return"HeadingEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[Hs]}init(){const e=this.editor,t=e.config.get("heading.options"),i=[];for(const r of t)r.model!=="paragraph"&&(e.model.schema.register(r.model,{inheritAllFrom:"$block"}),e.conversion.elementToElement(r),i.push(r.model));this._addDefaultH1Conversion(e),e.commands.add("heading",new fI(e,i))}afterInit(){const e=this.editor,t=e.commands.get("enter"),i=e.config.get("heading.options");t&&this.listenTo(t,"afterExecute",(r,s)=>{const o=e.model.document.selection.getFirstPosition().parent;i.some(l=>o.is("element",l.model))&&!o.is("element",Pd)&&o.childCount===0&&s.writer.rename(o,Pd)})}_addDefaultH1Conversion(e){e.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:Ot.low+1})}}function bI(n){const e=n.t,t={Paragraph:e("Paragraph"),"Heading 1":e("Heading 1"),"Heading 2":e("Heading 2"),"Heading 3":e("Heading 3"),"Heading 4":e("Heading 4"),"Heading 5":e("Heading 5"),"Heading 6":e("Heading 6")};return n.config.get("heading.options").map(i=>{const r=t[i.title];return r&&r!=i.title&&(i.title=r),i})}class wI extends k{static get pluginName(){return"HeadingUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.t,i=bI(e),r=t("Choose heading"),s=t("Heading");e.ui.componentFactory.add("heading",o=>{const a={},l=new Re,c=e.commands.get("heading"),u=e.commands.get("paragraph"),d=[c];for(const m of i){const g={type:"button",model:new $n({label:m.title,class:m.class,role:"menuitemradio",withText:!0})};m.model==="paragraph"?(g.model.bind("isOn").to(u,"value"),g.model.set("commandName","paragraph"),d.push(u)):(g.model.bind("isOn").to(c,"value",f=>f===m.model),g.model.set({commandName:"heading",commandValue:m.model})),l.add(g),a[m.model]=m.title}const h=Fe(o);return ir(h,l,{ariaLabel:s,role:"menu"}),h.buttonView.set({ariaLabel:s,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:s}),h.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),h.bind("isEnabled").toMany(d,"isEnabled",(...m)=>m.some(g=>g)),h.buttonView.bind("label").to(c,"value",u,"value",(m,g)=>{const f=g?"paragraph":m;return typeof f=="boolean"||!a[f]?r:a[f]}),h.buttonView.bind("ariaLabel").to(c,"value",u,"value",(m,g)=>{const f=g?"paragraph":m;return typeof f=="boolean"||!a[f]?s:`${a[f]}, ${s}`}),this.listenTo(h,"execute",m=>{const{commandName:g,commandValue:f}=m.source;e.execute(g,f?{value:f}:void 0),e.editing.view.focus()}),h}),e.ui.componentFactory.add("menuBar:heading",o=>{const a=new ut(o),l=e.commands.get("heading"),c=e.commands.get("paragraph"),u=[l],d=new Gn(o);a.set({class:"ck-heading-dropdown"}),d.set({ariaLabel:t("Heading"),role:"menu"}),a.buttonView.set({label:t("Heading")}),a.panelView.children.add(d);for(const h of i){const m=new nr(o,a),g=new ke(o);m.children.add(g),d.items.add(m),g.set({isToggleable:!0,label:h.title,role:"menuitemradio",class:h.class}),g.delegate("execute").to(a),g.on("execute",()=>{const f=h.model==="paragraph"?"paragraph":"heading";e.execute(f,{value:h.model}),e.editing.view.focus()}),h.model==="paragraph"?(g.bind("isOn").to(c,"value"),u.push(c)):g.bind("isOn").to(l,"value",f=>f===h.model)}return a.bind("isEnabled").toMany(u,"isEnabled",(...h)=>h.some(m=>m)),a})}}class yI extends k{static get requires(){return[pI,wI]}static get pluginName(){return"Heading"}static get isOfficialPlugin(){return!0}}class vI extends N{refresh(){const e=this.editor.model,t=e.schema,i=e.document.selection;this.isEnabled=kI(i,t,e)}execute(){const e=this.editor.model;e.change(t=>{const i=t.createElement("horizontalLine");e.insertObject(i,null,null,{setSelection:"after"})})}}function kI(n,e,t){const i=_I(n,t);return e.checkChild(i,"horizontalLine")}function _I(n,e){const i=rp(n,e).start.parent;return i.isEmpty&&!i.is("element","$root")?i.parent:i}class CI extends k{static get pluginName(){return"HorizontalLineEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.model.schema,i=e.t,r=e.conversion;t.register("horizontalLine",{inheritAllFrom:"$blockObject"}),r.for("dataDowncast").elementToElement({model:"horizontalLine",view:(s,{writer:o})=>o.createEmptyElement("hr")}),r.for("editingDowncast").elementToStructure({model:"horizontalLine",view:(s,{writer:o})=>{const a=i("Horizontal line"),l=o.createContainerElement("div",null,o.createEmptyElement("hr"));return o.addClass("ck-horizontal-line",l),o.setCustomProperty("hr",!0,l),LI(l,o,a)}}),r.for("upcast").elementToElement({view:"hr",model:"horizontalLine"}),e.commands.add("horizontalLine",new vI(e))}}function LI(n,e,t){return e.setCustomProperty("horizontalLine",!0,n),Ll(n,e,{label:t})}class TI extends k{static get pluginName(){return"HorizontalLineUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("horizontalLine",()=>{const t=this._createButton(P);return t.set({tooltip:!0}),t}),e.ui.componentFactory.add("menuBar:horizontalLine",()=>this._createButton(ke))}_createButton(e){const t=this.editor,i=t.locale,r=t.commands.get("horizontalLine"),s=new e(t.locale),o=i.t;return s.set({label:o("Horizontal line"),icon:tT}),s.bind("isEnabled").to(r,"isEnabled"),this.listenTo(s,"execute",()=>{t.execute("horizontalLine"),t.editing.view.focus()}),s}}class EI extends k{static get requires(){return[CI,TI,rr]}static get pluginName(){return"HorizontalLine"}static get isOfficialPlugin(){return!0}}function hn(n){return n}function mp(n){return n!==null&&(typeof n=="object"||typeof n=="function")}function xI(n){return n.createContainerElement("span",{class:"image-inline"},n.createEmptyElement("img"))}function Rd(n){return n.createContainerElement("figure",{class:"image"},[n.createEmptyElement("img"),n.createSlot("children")])}function gp(n,e){const t=n.plugins.get("ImageUtils"),i=n.plugins.has("ImageInlineEditing")&&n.plugins.has("ImageBlockEditing");return s=>t.isInlineImageView(s)?i&&(s.getStyle("display")=="block"||s.findAncestor(t.isBlockImageView)?"imageBlock":"imageInline")!==e?null:r(s):null;function r(s){const o={name:!0};return s.hasAttribute("src")&&(o.attributes=["src"]),o}}function xl(n,e){const t=ce(e.getSelectedBlocks());return!t||n.isObject(t)||t.isEmpty&&t.name!="listItem"?"imageBlock":"imageInline"}function Cs(n){return n&&n.endsWith("px")?parseInt(n):null}function Ls(n){const e=Cs(n.getStyle("width")),t=Cs(n.getStyle("height"));return!!(e&&t)}const SI=/^(image|image-inline)$/;class Te extends k{_domEmitter=new(Ee());static get pluginName(){return"ImageUtils"}static get isOfficialPlugin(){return!0}isImage(e){return this.isInlineImage(e)||this.isBlockImage(e)}isInlineImageView(e){return!!e&&e.is("element","img")}isBlockImageView(e){return!!e&&e.is("element","figure")&&e.hasClass("image")}insertImage(e={},t=null,i=null,r={}){const s=this.editor,o=s.model,a=o.document.selection,l=fp(s,t||a,i);e={...Object.fromEntries(a.getAttributes()),...e};for(const c in e)o.schema.checkAttribute(l,c)||delete e[c];return o.change(c=>{const{setImageSizes:u=!0}=r,d=c.createElement(l,e);return o.insertObject(d,t,null,{setSelection:"on",findOptimalPosition:!t&&l!="imageInline"?"auto":void 0}),d.parent?(u&&this.setImageNaturalSizeAttributes(d),d):null})}setImageNaturalSizeAttributes(e){const t=e.getAttribute("src");t&&(e.getAttribute("width")||e.getAttribute("height")||this.editor.model.change(i=>{const r=new E.window.Image;this._domEmitter.listenTo(r,"load",()=>{!e.getAttribute("width")&&!e.getAttribute("height")&&this.editor.model.enqueueChange(i.batch,s=>{s.setAttribute("width",r.naturalWidth,e),s.setAttribute("height",r.naturalHeight,e)}),this._domEmitter.stopListening(r,"load")}),r.src=t}))}getClosestSelectedImageWidget(e){const t=e.getFirstPosition();if(!t)return null;const i=e.getSelectedElement();if(i&&this.isImageWidget(i))return i;let r=t.parent;for(;r;){if(r.is("element")&&this.isImageWidget(r))return r;r=r.parent}return null}getClosestSelectedImageElement(e){const t=e.getSelectedElement();return this.isImage(t)?t:e.getFirstPosition().findAncestor("imageBlock")}getImageWidgetFromImageView(e){return e.findAncestor({classes:SI})}isImageAllowed(){const t=this.editor.model.document.selection;return AI(this.editor,t)&&II(t)}toImageWidget(e,t,i){return t.setCustomProperty("image",!0,e),Ll(e,t,{label:()=>{const o=this.findViewImgElement(e).getAttribute("alt");return o?`${o} ${i}`:i}})}isImageWidget(e){return!!e.getCustomProperty("image")&&oe(e)}isBlockImage(e){return!!e&&e.is("element","imageBlock")}isInlineImage(e){return!!e&&e.is("element","imageInline")}findViewImgElement(e){if(this.isInlineImageView(e))return e;const t=this.editor.editing.view;for(const{item:i}of t.createRangeIn(e))if(this.isInlineImageView(i))return i}destroy(){return this._domEmitter.stopListening(),super.destroy()}}function AI(n,e){if(fp(n,e,null)=="imageBlock"){const i=PI(e,n.model);if(n.model.schema.checkChild(i,"imageBlock"))return!0}else if(n.model.schema.checkChild(e.focus,"imageInline"))return!0;return!1}function II(n){return[...n.focus.getAncestors()].every(e=>!e.is("element","imageBlock"))}function PI(n,e){const i=rp(n,e).start.parent;return i.isEmpty&&!i.is("element","$root")?i.parent:i}function fp(n,e,t){const i=n.model.schema,r=n.config.get("image.insert.type");return n.plugins.has("ImageBlockEditing")?n.plugins.has("ImageInlineEditing")?t||(r==="inline"?"imageInline":r!=="auto"?"imageBlock":e.is("selection")?xl(i,e):i.checkChild(e,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}class RI extends N{refresh(){const i=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!i,this.isEnabled&&i.hasAttribute("alt")?this.value=i.getAttribute("alt"):this.value=!1}execute(e){const t=this.editor,i=t.plugins.get("ImageUtils"),r=t.model,s=i.getClosestSelectedImageElement(r.document.selection);r.change(o=>{o.setAttribute("alt",e.newValue,s)})}}class MI extends k{static get requires(){return[Te]}static get pluginName(){return"ImageTextAlternativeEditing"}static get isOfficialPlugin(){return!0}init(){this.editor.commands.add("imageTextAlternative",new RI(this.editor))}}class BI extends S{focusTracker;keystrokes;labeledInput;backButtonView;saveButtonView;children;_focusables;_focusCycler;constructor(e){super(e),this.focusTracker=new te,this.keystrokes=new re,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.labeledInput=this._createLabeledInputView(),this.children=this.createCollection([this._createHeaderView()]),this.children.add(new we(e,{children:[this.labeledInput,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding"]})),this._focusables=new pe,this.keystrokes.set("Esc",(t,i)=>{this.fire("cancel"),i()}),this._focusCycler=new xe({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),hi({view:this}),[this.backButtonView,this.labeledInput,this.saveButtonView].forEach(t=>{this._focusables.add(t),this.focusTracker.add(t.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createBackButton(){const e=this.locale.t,t=new P(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:Ki,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new P(this.locale);return t.set({label:e("Save"),withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new qt(this.locale,{label:e("Text Alternative")});return t.children.add(this.backButtonView,0),t}_createLabeledInputView(){const e=this.locale.t,t=new ue(this.locale,Ge);return t.label=e("Text alternative"),t.class="ck-labeled-field-view_full-width",t}}function VI(n){const e=n.plugins.get("ContextualBalloon");if(n.plugins.get("ImageUtils").getClosestSelectedImageWidget(n.editing.view.document.selection)){const i=Sl(n);e.updatePosition(i)}}function Sl(n){const e=n.editing.view,t=de.defaultPositions,i=n.plugins.get("ImageUtils");return{target:e.domConverter.mapViewToDom(i.getClosestSelectedImageWidget(e.document.selection)),positions:[t.northArrowSouth,t.northArrowSouthWest,t.northArrowSouthEast,t.southArrowNorth,t.southArrowNorthWest,t.southArrowNorthEast,t.viewportStickyNorth]}}class NI extends k{_balloon;_form;static get requires(){return[Et]}static get pluginName(){return"ImageTextAlternativeUI"}static get isOfficialPlugin(){return!0}init(){this._createButton()}destroy(){super.destroy(),this._form&&this._form.destroy()}_createButton(){const e=this.editor,t=e.t;e.ui.componentFactory.add("imageTextAlternative",i=>{const r=e.commands.get("imageTextAlternative"),s=new P(i);return s.set({label:t("Change image text alternative"),icon:zT,tooltip:!0}),s.bind("isEnabled").to(r,"isEnabled"),s.bind("isOn").to(r,"value",o=>!!o),this.listenTo(s,"execute",()=>{this._showForm()}),s})}_createForm(){const e=this.editor,i=e.editing.view.document,r=e.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(bs(BI))(e.locale),this._form.render(),this.listenTo(this._form,"submit",()=>{e.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)}),this.listenTo(this._form,"cancel",()=>{this._hideForm(!0)}),this.listenTo(e.ui,"update",()=>{r.getClosestSelectedImageWidget(i.selection)?this._isVisible&&VI(e):this._hideForm(!0)}),di({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;this._form||this._createForm();const e=this.editor,t=e.commands.get("imageTextAlternative"),i=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:Sl(e)}),i.fieldView.value=i.fieldView.element.value=t.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}class Al extends k{static get requires(){return[MI,NI]}static get pluginName(){return"ImageTextAlternative"}static get isOfficialPlugin(){return!0}}function OI(n){const e=(t,i,r)=>{if(!r.consumable.test(i.viewItem,{name:!0,classes:"image"}))return;const s=n.findViewImgElement(i.viewItem);if(!s||!r.consumable.test(s,{name:!0}))return;r.consumable.consume(i.viewItem,{name:!0,classes:"image"});const o=r.convertItem(s,i.modelCursor),a=ce(o.modelRange.getItems());if(!a){r.consumable.revert(i.viewItem,{name:!0,classes:"image"});return}r.convertChildren(i.viewItem,a),r.updateConversionResult(a,i)};return t=>{t.on("element:figure",e)}}function pp(n,e){const t=(i,r,s)=>{if(!s.consumable.consume(r.item,i.name))return;const o=s.writer,a=s.mapper.toViewElement(r.item),l=n.findViewImgElement(a);r.attributeNewValue===null?(o.removeAttribute("srcset",l),o.removeAttribute("sizes",l)):r.attributeNewValue&&(o.setAttribute("srcset",r.attributeNewValue,l),o.setAttribute("sizes","100vw",l))};return i=>{i.on(`attribute:srcset:${e}`,t)}}function Ts(n,e,t){const i=(r,s,o)=>{if(!o.consumable.consume(s.item,r.name))return;const a=o.writer,l=o.mapper.toViewElement(s.item),c=n.findViewImgElement(l);a.setAttribute(s.attributeKey,s.attributeNewValue||"",c)};return r=>{r.on(`attribute:${t}:${e}`,i)}}class Il extends ht{observe(e){this.listenTo(e,"load",(t,i)=>{const r=i.target;this.checkShouldIgnoreEventFromTarget(r)||r.tagName=="IMG"&&this._fireEvents(i)},{useCapture:!0})}stopObserving(e){this.stopListening(e)}_fireEvents(e){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",e))}}class DI extends N{constructor(e){super(e);const t=e.config.get("image.insert.type");e.plugins.has("ImageBlockEditing")||t==="block"&&H("image-block-plugin-required"),e.plugins.has("ImageInlineEditing")||t==="inline"&&H("image-inline-plugin-required")}refresh(){const e=this.editor.plugins.get("ImageUtils");this.isEnabled=e.isImageAllowed()}execute(e){const t=X(e.source),i=this.editor.model.document.selection,r=this.editor.plugins.get("ImageUtils"),s=Object.fromEntries(i.getAttributes());t.forEach((o,a)=>{const l=i.getSelectedElement();if(typeof o=="string"&&(o={src:o}),a&&l&&r.isImage(l)){const c=this.editor.model.createPositionAfter(l);r.insertImage({...o,...s},c,e.imageType)}else e.breakBlock?r.insertImage({...o,...s},i.getFirstPosition(),e.imageType):r.insertImage({...o,...s},null,e.imageType)})}}class zI extends N{constructor(e){super(e),this.decorate("cleanupImage")}refresh(){const t=this.editor.plugins.get("ImageUtils"),i=this.editor.model.document.selection.getSelectedElement();this.isEnabled=t.isImage(i),this.value=this.isEnabled?i.getAttribute("src"):null}execute(e){const t=this.editor.model.document.selection.getSelectedElement(),i=this.editor.plugins.get("ImageUtils");this.editor.model.change(r=>{r.setAttribute("src",e.source,t),this.cleanupImage(r,t),i.setImageNaturalSizeAttributes(t)})}cleanupImage(e,t){e.removeAttribute("srcset",t),e.removeAttribute("sizes",t),e.removeAttribute("sources",t),e.removeAttribute("width",t),e.removeAttribute("height",t),e.removeAttribute("alt",t)}}class bp extends k{static get requires(){return[Te]}static get pluginName(){return"ImageEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.conversion;e.editing.view.addObserver(Il),t.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:"srcset"});const i=new DI(e),r=new zI(e);e.commands.add("insertImage",i),e.commands.add("replaceImageSource",r),e.commands.add("imageInsert",i)}}class wp extends k{static get requires(){return[Te]}static get pluginName(){return"ImageSizeAttributes"}static get isOfficialPlugin(){return!0}afterInit(){this._registerSchema(),this._registerConverters("imageBlock"),this._registerConverters("imageInline")}_registerSchema(){this.editor.plugins.has("ImageBlockEditing")&&this.editor.model.schema.extend("imageBlock",{allowAttributes:["width","height"]}),this.editor.plugins.has("ImageInlineEditing")&&this.editor.model.schema.extend("imageInline",{allowAttributes:["width","height"]})}_registerConverters(e){const t=this.editor,i=t.plugins.get("ImageUtils"),r=e==="imageBlock"?"figure":"img";t.conversion.for("upcast").attributeToAttribute({view:{name:r,styles:{width:/.+/}},model:{key:"width",value:o=>Ls(o)?Cs(o.getStyle("width")):null}}).attributeToAttribute({view:{name:r,key:"width"},model:"width"}).attributeToAttribute({view:{name:r,styles:{height:/.+/}},model:{key:"height",value:o=>Ls(o)?Cs(o.getStyle("height")):null}}).attributeToAttribute({view:{name:r,key:"height"},model:"height"}),t.conversion.for("editingDowncast").add(o=>{s(o,"width","width",!0,!0),s(o,"height","height",!0,!0)}),t.conversion.for("dataDowncast").add(o=>{s(o,"width","width",!1),s(o,"height","height",!1)}),t.conversion.for("upcast").add(o=>{o.on("element:img",(a,l,c)=>{const u=l.viewItem.getAttribute("width"),d=l.viewItem.getAttribute("height");u&&d&&c.consumable.consume(l.viewItem,{styles:["aspect-ratio"]})})});function s(o,a,l,c,u=!1){o.on(`attribute:${a}:${e}`,(d,h,m)=>{if(!m.consumable.consume(h.item,d.name))return;const g=m.writer,f=m.mapper.toViewElement(h.item),b=i.findViewImgElement(f);h.attributeNewValue!==null?g.setAttribute(l,h.attributeNewValue,b):g.removeAttribute(l,b);const y=h.item.getAttribute("width"),C=h.item.getAttribute("height"),L=y&&C;if(L&&u&&g.setAttribute("loading","lazy",b),h.item.hasAttribute("sources"))return;const O=h.item.hasAttribute("resizedWidth");e==="imageInline"&&!O&&!c||L&&g.setStyle("aspect-ratio",`${y}/${C}`,b)})}}}class yp extends N{_modelElementName;constructor(e,t){super(e),this._modelElementName=t}refresh(){const t=this.editor.plugins.get("ImageUtils"),i=t.getClosestSelectedImageElement(this.editor.model.document.selection);this._modelElementName==="imageBlock"?this.isEnabled=t.isInlineImage(i):this.isEnabled=t.isBlockImage(i)}execute(e={}){const t=this.editor,i=this.editor.model,r=t.plugins.get("ImageUtils"),s=r.getClosestSelectedImageElement(i.document.selection),o=Object.fromEntries(s.getAttributes());return!o.src&&!o.uploadId?null:i.change(a=>{const{setImageSizes:l=!0}=e,c=Array.from(i.markers).filter(h=>h.getRange().containsItem(s)),u=r.insertImage(o,i.createSelection(s,"on"),this._modelElementName,{setImageSizes:l});if(!u)return null;const d=a.createRangeOn(u);for(const h of c){const m=h.getRange(),g=m.root.rootName!="$graveyard"?m.getJoined(d,!0):d;a.updateMarker(h,{range:g})}return{oldElement:s,newElement:u}})}}class vp extends k{static get requires(){return[Te]}static get pluginName(){return"ImagePlaceholder"}static get isOfficialPlugin(){return!0}afterInit(){this._setupSchema(),this._setupConversion(),this._setupLoadListener()}_setupSchema(){const e=this.editor.model.schema;e.isRegistered("imageBlock")&&e.extend("imageBlock",{allowAttributes:["placeholder"]}),e.isRegistered("imageInline")&&e.extend("imageInline",{allowAttributes:["placeholder"]})}_setupConversion(){const e=this.editor,t=e.conversion,i=e.plugins.get("ImageUtils");t.for("editingDowncast").add(r=>{r.on("attribute:placeholder",(s,o,a)=>{if(!a.consumable.test(o.item,s.name)||!o.item.is("element","imageBlock")&&!o.item.is("element","imageInline"))return;a.consumable.consume(o.item,s.name);const l=a.writer,c=a.mapper.toViewElement(o.item),u=i.findViewImgElement(c);o.attributeNewValue?(l.addClass("image_placeholder",u),l.setStyle("background-image",`url(${o.attributeNewValue})`,u),l.setCustomProperty("editingPipeline:doNotReuseOnce",!0,u)):(l.removeClass("image_placeholder",u),l.removeStyle("background-image",u))})})}_setupLoadListener(){const e=this.editor,t=e.model,i=e.editing,r=i.view,s=e.plugins.get("ImageUtils");r.addObserver(Il),this.listenTo(r.document,"imageLoaded",(o,a)=>{const l=r.domConverter.mapDomToView(a.target);if(!l)return;const c=s.getImageWidgetFromImageView(l);if(!c)return;const u=i.mapper.toModelElement(c);!u||!u.hasAttribute("placeholder")||t.enqueueChange({isUndoable:!1},d=>{d.removeAttribute("placeholder",u)})})}}class kp extends k{static get requires(){return[bp,wp,Te,vp,Ke]}static get pluginName(){return"ImageBlockEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),e.plugins.has("ImageInlineEditing")&&(e.commands.add("imageTypeBlock",new yp(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const e=this.editor,t=e.t,i=e.conversion,r=e.plugins.get("ImageUtils");i.for("dataDowncast").elementToStructure({model:"imageBlock",view:(s,{writer:o})=>Rd(o)}),i.for("editingDowncast").elementToStructure({model:"imageBlock",view:(s,{writer:o})=>r.toImageWidget(Rd(o),o,t("image widget"))}),i.for("downcast").add(Ts(r,"imageBlock","src")).add(Ts(r,"imageBlock","alt")).add(pp(r,"imageBlock")),i.for("upcast").elementToElement({view:gp(e,"imageBlock"),model:(s,{writer:o})=>o.createElement("imageBlock",s.hasAttribute("src")?{src:s.getAttribute("src")}:void 0)}).add(OI(r))}_setupClipboardIntegration(){const e=this.editor,t=e.model,i=e.editing.view,r=e.plugins.get("ImageUtils"),s=e.plugins.get("ClipboardPipeline");this.listenTo(s,"inputTransformation",(o,a)=>{const l=Array.from(a.content.getChildren());let c;if(!l.every(r.isInlineImageView))return;a.targetRanges?c=e.editing.mapper.toModelRange(a.targetRanges[0]):c=t.document.selection.getFirstRange();const u=t.createSelection(c);if(xl(t.schema,u)==="imageBlock"){const d=new rl(i.document),h=l.map(m=>d.createElement("figure",{class:"image"},m));a.content=d.createDocumentFragment(h)}}),this.listenTo(s,"contentInsertion",(o,a)=>{a.method==="paste"&&t.change(l=>{const c=l.createRangeIn(a.content);for(const u of c.getItems())u.is("element","imageBlock")&&r.setImageNaturalSizeAttributes(u)})})}}class FI extends S{focusTracker;keystrokes;_focusables;_focusCycler;children;constructor(e,t=[]){super(e),this.focusTracker=new te,this.keystrokes=new re,this._focusables=new pe,this.children=this.createCollection(),this._focusCycler=new xe({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});for(const i of t)this.children.add(i),this._focusables.add(i),i instanceof xf&&this._focusables.addMany(i.children);this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-form"],tabindex:-1},children:this.children})}render(){super.render(),hi({view:this});for(const t of this._focusables)this.focusTracker.add(t.element);this.keystrokes.listenTo(this.element);const e=t=>t.stopPropagation();this.keystrokes.set("arrowright",e),this.keystrokes.set("arrowleft",e),this.keystrokes.set("arrowup",e),this.keystrokes.set("arrowdown",e)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}}class sr extends k{static get pluginName(){return"ImageInsertUI"}static get isOfficialPlugin(){return!0}static get requires(){return[Te]}dropdownView;_integrations=new Map;constructor(e){super(e),e.config.define("image.insert.integrations",["upload","assetManager","url"])}init(){const e=this.editor,t=e.model.document.selection,i=e.plugins.get("ImageUtils");this.set("isImageSelected",!1),this.listenTo(e.model.document,"change",()=>{this.isImageSelected=i.isImage(t.getSelectedElement())});const r=o=>this._createToolbarComponent(o),s=o=>this._createMenuBarComponent(o);e.ui.componentFactory.add("insertImage",r),e.ui.componentFactory.add("imageInsert",r),e.ui.componentFactory.add("menuBar:insertImage",s)}registerIntegration({name:e,observable:t,buttonViewCreator:i,formViewCreator:r,menuBarButtonViewCreator:s,requiresForm:o=!1,override:a=!1}){this._integrations.has(e)&&!a&&H("image-insert-integration-exists",{name:e}),this._integrations.set(e,{observable:t,buttonViewCreator:i,menuBarButtonViewCreator:s,formViewCreator:r,requiresForm:o})}_createToolbarComponent(e){const t=this.editor,i=e.t,r=this._prepareIntegrations();if(!r.length)return null;let s;const o=r[0];if(r.length==1){if(!o.requiresForm)return o.buttonViewCreator(!0);s=o.buttonViewCreator(!0)}else{const c=o.buttonViewCreator(!1);s=new tr(e,c),s.tooltip=!0,s.bind("label").to(this,"isImageSelected",u=>i(u?"Replace image":"Insert image"))}const a=this.dropdownView=Fe(e,s),l=r.map(({observable:c})=>typeof c=="function"?c():c);return a.bind("isEnabled").toMany(l,"isEnabled",(...c)=>c.some(u=>u)),a.once("change:isOpen",()=>{const c=r.flatMap(({formViewCreator:d})=>d(r.length==1)),u=new FI(t.locale,c);a.panelView.children.add(u)}),a}_createMenuBarComponent(e){const t=e.t,i=this._prepareIntegrations();if(!i.length)return null;const r=i.flatMap(({menuBarButtonViewCreator:a})=>a(i.length==1)),s=new ut(e),o=new Gn(e);s.panelView.children.add(o),s.buttonView.set({icon:iT,label:t("Image")});for(const a of r){const l=new nr(e,s);l.children.add(a),o.items.add(l),a.delegate("execute").to(s)}return s}_prepareIntegrations(){const t=this.editor.config.get("image.insert.integrations"),i=[];if(!t.length)return H("image-insert-integrations-not-specified"),i;for(const r of t){if(!this._integrations.has(r)){["upload","assetManager","url"].includes(r)||H("image-insert-unknown-integration",{item:r});continue}i.push(this._integrations.get(r))}return i.length||H("image-insert-integrations-not-registered"),i}}class UI extends k{static get requires(){return[kp,rr,Al,sr]}static get pluginName(){return"ImageBlock"}static get isOfficialPlugin(){return!0}}class HI extends k{static get requires(){return[bp,wp,Te,vp,Ke]}static get pluginName(){return"ImageInlineEditing"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.model.schema.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"],disallowIn:["caption"]}),this._setupConversion(),e.plugins.has("ImageBlockEditing")&&(e.commands.add("imageTypeInline",new yp(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const e=this.editor,t=e.t,i=e.conversion,r=e.plugins.get("ImageUtils");i.for("dataDowncast").elementToElement({model:"imageInline",view:(s,{writer:o})=>o.createEmptyElement("img")}),i.for("editingDowncast").elementToStructure({model:"imageInline",view:(s,{writer:o})=>r.toImageWidget(xI(o),o,t("image widget"))}),i.for("downcast").add(Ts(r,"imageInline","src")).add(Ts(r,"imageInline","alt")).add(pp(r,"imageInline")),i.for("upcast").elementToElement({view:gp(e,"imageInline"),model:(s,{writer:o})=>o.createElement("imageInline",s.hasAttribute("src")?{src:s.getAttribute("src")}:void 0)})}_setupClipboardIntegration(){const e=this.editor,t=e.model,i=e.editing.view,r=e.plugins.get("ImageUtils"),s=e.plugins.get("ClipboardPipeline");this.listenTo(s,"inputTransformation",(o,a)=>{const l=Array.from(a.content.getChildren());let c;if(!l.every(r.isBlockImageView))return;a.targetRanges?c=e.editing.mapper.toModelRange(a.targetRanges[0]):c=t.document.selection.getFirstRange();const u=t.createSelection(c);if(xl(t.schema,u)==="imageInline"){const d=new rl(i.document),h=l.map(m=>m.childCount===1?(Array.from(m.getAttributes()).forEach(g=>d.setAttribute(...g,r.findViewImgElement(m))),m.getChild(0)):m);a.content=d.createDocumentFragment(h)}}),this.listenTo(s,"contentInsertion",(o,a)=>{a.method==="paste"&&t.change(l=>{const c=l.createRangeIn(a.content);for(const u of c.getItems())u.is("element","imageInline")&&r.setImageNaturalSizeAttributes(u)})})}}class jI extends k{static get requires(){return[HI,rr,Al,sr]}static get pluginName(){return"ImageInline"}static get isOfficialPlugin(){return!0}}class _p extends k{static get pluginName(){return"ImageCaptionUtils"}static get isOfficialPlugin(){return!0}static get requires(){return[Te]}getCaptionFromImageModelElement(e){for(const t of e.getChildren())if(t&&t.is("element","caption"))return t;return null}getCaptionFromModelSelection(e){const t=this.editor.plugins.get("ImageUtils"),i=e.getFirstPosition().findAncestor("caption");return i&&t.isBlockImage(i.parent)?i:null}matchImageCaptionViewElement(e){const t=this.editor.plugins.get("ImageUtils");return e.name=="figcaption"&&t.isBlockImageView(e.parent)?{name:!0}:null}}class WI extends N{refresh(){const e=this.editor,t=e.plugins.get("ImageCaptionUtils"),i=e.plugins.get("ImageUtils");if(!e.plugins.has(kp)){this.isEnabled=!1,this.value=!1;return}const r=e.model.document.selection,s=r.getSelectedElement();if(!s){const o=t.getCaptionFromModelSelection(r);this.isEnabled=!!o,this.value=!!o;return}this.isEnabled=i.isImage(s),this.isEnabled?this.value=!!t.getCaptionFromImageModelElement(s):this.value=!1}execute(e={}){const{focusCaptionOnShow:t}=e;this.editor.model.change(i=>{this.value?this._hideImageCaption(i):this._showImageCaption(i,t)})}_showImageCaption(e,t){const r=this.editor.model.document.selection,s=this.editor.plugins.get("ImageCaptionEditing"),o=this.editor.plugins.get("ImageUtils");let a=r.getSelectedElement();const l=s._getSavedCaption(a);o.isInlineImage(a)&&(this.editor.execute("imageTypeBlock"),a=r.getSelectedElement());const c=l||e.createElement("caption");e.append(c,a),t&&e.setSelection(c,"in")}_hideImageCaption(e){const t=this.editor,i=t.model.document.selection,r=t.plugins.get("ImageCaptionEditing"),s=t.plugins.get("ImageCaptionUtils");let o=i.getSelectedElement(),a;o?a=s.getCaptionFromImageModelElement(o):(a=s.getCaptionFromModelSelection(i),o=a.parent),r._saveCaption(o,a),e.setSelection(o,"on"),e.remove(a)}}class qI extends k{static get requires(){return[Te,_p]}static get pluginName(){return"ImageCaptionEditing"}static get isOfficialPlugin(){return!0}_savedCaptionsMap;constructor(e){super(e),this._savedCaptionsMap=new WeakMap}init(){const e=this.editor,t=e.model.schema;t.isRegistered("caption")?t.extend("caption",{allowIn:"imageBlock"}):t.register("caption",{allowIn:"imageBlock",allowContentOf:"$block",isLimit:!0}),e.commands.add("toggleImageCaption",new WI(this.editor)),this._setupConversion(),this._setupImageTypeCommandsIntegration(),this._registerCaptionReconversion()}_setupConversion(){const e=this.editor,t=e.editing.view,i=e.plugins.get("ImageUtils"),r=e.plugins.get("ImageCaptionUtils"),s=e.t;e.conversion.for("upcast").elementToElement({view:o=>r.matchImageCaptionViewElement(o),model:"caption"}),e.conversion.for("dataDowncast").elementToElement({model:"caption",view:(o,{writer:a})=>i.isBlockImage(o.parent)?a.createContainerElement("figcaption"):null}),e.conversion.for("editingDowncast").elementToElement({model:"caption",view:(o,{writer:a})=>{if(!i.isBlockImage(o.parent))return null;const l=a.createEditableElement("figcaption");a.setCustomProperty("imageCaption",!0,l),l.placeholder=s("Enter image caption"),Ga({view:t,element:l,keepOnFocus:!0});const c=o.parent.getAttribute("alt"),u=c?s("Caption for image: %0",[c]):s("Caption for the image");return Tl(l,a,{label:u})}})}_setupImageTypeCommandsIntegration(){const e=this.editor,t=e.plugins.get("ImageUtils"),i=e.plugins.get("ImageCaptionUtils"),r=e.commands.get("imageTypeInline"),s=e.commands.get("imageTypeBlock"),o=a=>{if(!a.return)return;const{oldElement:l,newElement:c}=a.return;if(!l)return;if(t.isBlockImage(l)){const d=i.getCaptionFromImageModelElement(l);if(d){this._saveCaption(c,d);return}}const u=this._getSavedCaption(l);u&&this._saveCaption(c,u)};r&&this.listenTo(r,"execute",o,{priority:"low"}),s&&this.listenTo(s,"execute",o,{priority:"low"})}_getSavedCaption(e){const t=this._savedCaptionsMap.get(e);return t?K.fromJSON(t):null}_saveCaption(e,t){this._savedCaptionsMap.set(e,t.toJSON())}_registerCaptionReconversion(){const e=this.editor,t=e.model,i=e.plugins.get("ImageUtils"),r=e.plugins.get("ImageCaptionUtils");t.document.on("change:data",()=>{const s=t.document.differ.getChanges();for(const o of s){if(o.attributeKey!=="alt")continue;const a=o.range.start.nodeAfter;if(i.isBlockImage(a)){const l=r.getCaptionFromImageModelElement(a);if(!l)return;e.editing.reconvertItem(l)}}})}}class $I extends k{static get requires(){return[_p]}static get pluginName(){return"ImageCaptionUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,i=e.plugins.get("ImageCaptionUtils"),r=e.t;e.ui.componentFactory.add("toggleImageCaption",s=>{const o=e.commands.get("toggleImageCaption"),a=new P(s);return a.set({icon:lf,tooltip:!0,isToggleable:!0}),a.bind("isOn","isEnabled").to(o,"value","isEnabled"),a.bind("label").to(o,"value",l=>r(l?"Toggle caption off":"Toggle caption on")),this.listenTo(a,"execute",()=>{e.execute("toggleImageCaption",{focusCaptionOnShow:!0});const l=i.getCaptionFromModelSelection(e.model.document.selection);if(l){const c=e.editing.mapper.toViewElement(l);t.scrollToTheSelection(),t.change(u=>{u.addClass("image__caption_highlighted",c)})}e.editing.view.focus()}),a})}}class GI extends k{static get requires(){return[qI,$I]}static get pluginName(){return"ImageCaption"}static get isOfficialPlugin(){return!0}}function Cp(n){const e=n.map(t=>t.replace("+","\\+"));return new RegExp(`^image\\/(${e.join("|")})$`)}function KI(n){return new Promise((e,t)=>{const i=n.getAttribute("src");fetch(i).then(r=>r.blob()).then(r=>{const s=Lp(r,i),a=`image.${s.replace("image/","")}`,l=new File([r],a,{type:s});e(l)}).catch(r=>r&&r.name==="TypeError"?JI(i).then(e).catch(t):t(r))})}function ZI(n,e){return!n.isInlineImageView(e)||!e.getAttribute("src")?!1:!!e.getAttribute("src").match(/^data:image\/\w+;base64,/g)||!!e.getAttribute("src").match(/^blob:/g)}function Lp(n,e){return n.type?n.type:e.match(/data:(image\/\w+);base64/)?e.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}function JI(n){return YI(n).then(e=>{const t=Lp(e,n),r=`image.${t.replace("image/","")}`;return new File([e],r,{type:t})})}function YI(n){return new Promise((e,t)=>{const i=E.document.createElement("img");i.addEventListener("load",()=>{const r=E.document.createElement("canvas");r.width=i.width,r.height=i.height,r.getContext("2d").drawImage(i,0,0),r.toBlob(o=>o?e(o):t())}),i.addEventListener("error",()=>t()),i.src=n})}class XI extends k{static get pluginName(){return"ImageUploadUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("uploadImage",()=>this._createToolbarButton()),e.ui.componentFactory.add("imageUpload",()=>this._createToolbarButton()),e.ui.componentFactory.add("menuBar:uploadImage",()=>this._createMenuBarButton("standalone")),e.plugins.has("ImageInsertUI")&&e.plugins.get("ImageInsertUI").registerIntegration({name:"upload",observable:()=>e.commands.get("uploadImage"),buttonViewCreator:()=>this._createToolbarButton(),formViewCreator:()=>this._createDropdownButton(),menuBarButtonViewCreator:t=>this._createMenuBarButton(t?"insertOnly":"insertNested")})}_createButton(e){const t=this.editor,i=t.locale,r=t.commands.get("uploadImage"),s=t.config.get("image.upload.types"),o=Cp(s),a=new e(t.locale),l=i.t;return a.set({acceptedType:s.map(c=>`image/${c}`).join(","),allowMultipleFiles:!0,label:l("Upload from computer"),icon:nT}),a.bind("isEnabled").to(r),a.on("done",(c,u)=>{const d=Array.from(u).filter(h=>o.test(h.type));d.length&&(t.execute("uploadImage",{file:d}),t.editing.view.focus())}),a}_createToolbarButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),i=this.editor.commands.get("uploadImage"),r=this._createButton(Hu);return r.tooltip=!0,r.bind("label").to(t,"isImageSelected",i,"isAccessAllowed",(s,o)=>e(o?s?"Replace image from computer":"Upload image from computer":"You have no image upload permissions.")),r}_createDropdownButton(){const e=this.editor.locale.t,t=this.editor.plugins.get("ImageInsertUI"),i=this._createButton(Hu);return i.withText=!0,i.bind("label").to(t,"isImageSelected",r=>e(r?"Replace from computer":"Upload from computer")),i.on("execute",()=>{t.dropdownView.isOpen=!1}),i}_createMenuBarButton(e){const t=this.editor.locale.t,i=this._createButton($f);switch(i.withText=!0,e){case"standalone":i.label=t("Image from computer");break;case"insertOnly":i.label=t("Image");break;case"insertNested":i.label=t("From computer");break}return i}}class QI extends k{static get pluginName(){return"ImageUploadProgress"}static get isOfficialPlugin(){return!0}placeholder;constructor(e){super(e),this.placeholder="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}init(){const e=this.editor;e.plugins.has("ImageBlockEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",this.uploadStatusChange),e.plugins.has("ImageInlineEditing")&&e.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",this.uploadStatusChange)}uploadStatusChange=(e,t,i)=>{const r=this.editor,s=t.item,o=s.getAttribute("uploadId");if(!i.consumable.consume(t.item,e.name))return;const a=r.plugins.get("ImageUtils"),l=r.plugins.get(Vt),c=o?t.attributeNewValue:null,u=this.placeholder,d=r.editing.mapper.toViewElement(s),h=i.writer;if(c=="reading"){Md(d,h),Bd(a,u,d,h);return}if(c=="uploading"){const m=l.loaders.get(o);Md(d,h),m?(Vd(d,h),tP(d,h,m,r.editing.view),oP(a,d,h,m)):Bd(a,u,d,h);return}c=="complete"&&l.loaders.get(o)&&nP(d,h,r.editing.view),iP(d,h),Vd(d,h),eP(d,h)}}function Md(n,e){n.hasClass("ck-appear")||e.addClass("ck-appear",n)}function eP(n,e){e.removeClass("ck-appear",n)}function Bd(n,e,t,i){t.hasClass("ck-image-upload-placeholder")||i.addClass("ck-image-upload-placeholder",t);const r=n.findViewImgElement(t);r.getAttribute("src")!==e&&i.setAttribute("src",e,r),Tp(t,"placeholder")||i.insert(i.createPositionAfter(r),sP(i))}function Vd(n,e){n.hasClass("ck-image-upload-placeholder")&&e.removeClass("ck-image-upload-placeholder",n),Ep(n,e,"placeholder")}function tP(n,e,t,i){const r=rP(e);e.insert(e.createPositionAt(n,"end"),r),t.on("change:uploadedPercent",(s,o,a)=>{i.change(l=>{l.setStyle("width",a+"%",r)})})}function iP(n,e){Ep(n,e,"progressBar")}function nP(n,e,t){const i=e.createUIElement("div",{class:"ck-image-upload-complete-icon"});e.insert(e.createPositionAt(n,"end"),i),setTimeout(()=>{t.change(r=>r.remove(r.createRangeOn(i)))},3e3)}function rP(n){const e=n.createUIElement("div",{class:"ck-progress-bar"});return n.setCustomProperty("progressBar",!0,e),e}function sP(n){const e=n.createUIElement("div",{class:"ck-upload-placeholder-loader"});return n.setCustomProperty("placeholder",!0,e),e}function Tp(n,e){for(const t of n.getChildren())if(t.getCustomProperty(e))return t}function Ep(n,e,t){const i=Tp(n,t);i&&e.remove(e.createRangeOn(i))}function oP(n,e,t,i){if(i.data){const r=n.findViewImgElement(e);t.setAttribute("src",i.data,r)}}class aP extends N{constructor(e){super(e),this.set("isAccessAllowed",!0)}refresh(){const e=this.editor,t=e.plugins.get("ImageUtils"),i=e.model.document.selection.getSelectedElement();this.isEnabled=t.isImageAllowed()||t.isImage(i)}execute(e){const t=X(e.file),i=this.editor.model.document.selection,r=this.editor.plugins.get("ImageUtils"),s=Object.fromEntries(i.getAttributes());t.forEach((o,a)=>{const l=i.getSelectedElement();if(a&&l&&r.isImage(l)){const c=this.editor.model.createPositionAfter(l);this._uploadImage(o,s,c)}else this._uploadImage(o,s)})}_uploadImage(e,t,i){const r=this.editor,o=r.plugins.get(Vt).createLoader(e),a=r.plugins.get("ImageUtils");o&&a.insertImage({...t,uploadId:o.id},i)}}class lP extends k{static get requires(){return[Vt,td,Ke,Te]}static get pluginName(){return"ImageUploadEditing"}static get isOfficialPlugin(){return!0}_uploadImageElements;_uploadedImages=new Map;constructor(e){super(e),e.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}}),this._uploadImageElements=new Map}init(){const e=this.editor,t=e.model.document,i=e.conversion,r=e.plugins.get(Vt),s=e.plugins.get("ImageUtils"),o=e.plugins.get("ClipboardPipeline"),a=Cp(e.config.get("image.upload.types")),l=new aP(e);e.commands.add("uploadImage",l),e.commands.add("imageUpload",l),i.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}).add(c=>c.on("element:img",(u,d,h)=>{if(!h.consumable.test(d.viewItem,{attributes:["data-ck-upload-id"]}))return;const m=d.viewItem.getAttribute("data-ck-upload-id");if(!m)return;const[g]=Array.from(d.modelRange.getItems({shallow:!0})),f=r.loaders.get(m);g&&(h.writer.setAttribute("uploadId",m,g),h.consumable.consume(d.viewItem,{attributes:["data-ck-upload-id"]}),f&&f.data&&h.writer.setAttribute("uploadStatus",f.status,g))},{priority:"low"})),this.listenTo(e.editing.view.document,"clipboardInput",(c,u)=>{if(cP(u.dataTransfer))return;const d=Array.from(u.dataTransfer.files).filter(m=>m?a.test(m.type):!1);if(!d.length)return;if(c.stop(),e.model.change(m=>{u.targetRanges&&m.setSelection(u.targetRanges.map(g=>e.editing.mapper.toModelRange(g))),e.execute("uploadImage",{file:d})}),!e.commands.get("uploadImage").isAccessAllowed){const m=e.plugins.get("Notification"),g=e.locale.t;m.showWarning(g("You have no image upload permissions."),{namespace:"image"})}}),this.listenTo(o,"inputTransformation",(c,u)=>{const d=Array.from(e.editing.view.createRangeIn(u.content)).map(m=>m.item).filter(m=>ZI(s,m)&&!m.getAttribute("uploadProcessed")).map(m=>({promise:KI(m),imageElement:m}));if(!d.length)return;const h=new rl(e.editing.view.document);for(const m of d){h.setAttribute("uploadProcessed",!0,m.imageElement);const g=r.createLoader(m.promise);g&&(h.setAttribute("src","",m.imageElement),h.setAttribute("uploadId",g.id,m.imageElement))}}),e.editing.view.document.on("dragover",(c,u)=>{u.preventDefault()}),t.on("change",()=>{const c=t.differ.getChanges({includeChangesInGraveyard:!0}).reverse(),u=new Set;for(const d of c)if(d.type=="insert"&&d.name!="$text"){const h=d.position.nodeAfter,m=d.position.root.rootName=="$graveyard";for(const g of uP(e,h)){const f=g.getAttribute("uploadId");if(!f)continue;const b=r.loaders.get(f);if(!b){!m&&this._uploadedImages.has(f)&&e.model.enqueueChange({isUndoable:!1},y=>{y.setAttribute("uploadStatus","complete",g),this.fire("uploadComplete",{data:this._uploadedImages.get(f),imageElement:g})});continue}m?u.has(f)||Array.from(this._uploadImageElements.get(f)).every(C=>C.root.rootName=="$graveyard")&&b.abort():(u.add(f),this._uploadImageElements.has(f)?this._uploadImageElements.get(f).add(g):this._uploadImageElements.set(f,new Set([g])),b.status=="idle"&&this._readAndUpload(b))}}}),this.on("uploadComplete",(c,{imageElement:u,data:d})=>{const h=d.urls?d.urls:d;this.editor.model.change(m=>{m.setAttribute("src",h.default,u),this._parseAndSetSrcsetAttributeOnImage(h,u,m),s.setImageNaturalSizeAttributes(u)})},{priority:"low"})}afterInit(){const e=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&(e.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageBlock")),this.editor.plugins.has("ImageInlineEditing")&&(e.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]}),this._registerConverters("imageInline"))}_readAndUpload(e){const t=this.editor,i=t.model,r=t.locale.t,s=t.plugins.get(Vt),o=t.plugins.get(td),a=t.plugins.get("ImageUtils"),l=this._uploadImageElements;return i.enqueueChange({isUndoable:!1},u=>{const d=l.get(e.id);for(const h of d)u.setAttribute("uploadStatus","reading",h)}),e.read().then(()=>{const u=e.upload();t.ui&&t.ui.ariaLiveAnnouncer.announce(r("Uploading image"));for(const d of l.get(e.id)){if(R.isSafari){const h=t.editing.mapper.toViewElement(d),m=a.findViewImgElement(h);t.editing.view.once("render",()=>{if(!m.parent)return;const g=t.editing.view.domConverter.mapViewToDom(m.parent);if(!g)return;const f=g.style.display;g.style.display="none",g._ckHack=g.offsetHeight,g.style.display=f})}i.enqueueChange({isUndoable:!1},h=>{h.setAttribute("uploadStatus","uploading",d)})}return u}).then(u=>{i.enqueueChange({isUndoable:!1},d=>{for(const h of l.get(e.id))d.setAttribute("uploadStatus","complete",h),this.fire("uploadComplete",{data:u,imageElement:h});t.ui&&t.ui.ariaLiveAnnouncer.announce(r("Image upload complete")),this._uploadedImages.set(e.id,u)}),c()}).catch(u=>{if(t.ui&&t.ui.ariaLiveAnnouncer.announce(r("Error during image upload")),e.status!=="error"&&e.status!=="aborted")throw u;e.status=="error"&&u&&o.showWarning(u,{title:r("Upload failed"),namespace:"upload"}),i.enqueueChange({isUndoable:!1},d=>{for(const h of l.get(e.id))h.root.rootName!=="$graveyard"&&d.remove(h)}),c()});function c(){i.enqueueChange({isUndoable:!1},u=>{for(const d of l.get(e.id))u.removeAttribute("uploadId",d),u.removeAttribute("uploadStatus",d);l.delete(e.id)}),s.destroyLoader(e)}}_parseAndSetSrcsetAttributeOnImage(e,t,i){let r=0;const s=Object.keys(e).filter(o=>{const a=parseInt(o,10);if(!isNaN(a))return r=Math.max(r,a),!0}).map(o=>`${e[o]} ${o}w`).join(", ");if(s!=""){const o={srcset:s};!t.hasAttribute("width")&&!t.hasAttribute("height")&&(o.width=r),i.setAttributes(o,t)}}_registerConverters(e){const{conversion:t,plugins:i}=this.editor,r=i.get(Vt),s=i.get(Te);t.for("dataDowncast").add(o=>{o.on(`attribute:uploadId:${e}`,(a,l,c)=>{if(!c.consumable.test(l.item,a.name))return;const u=r.loaders.get(l.attributeNewValue);if(!u||!u.data)return null;const d=c.mapper.toViewElement(l.item),h=s.findViewImgElement(d);h&&(c.consumable.consume(l.item,a.name),c.writer.setAttribute("data-ck-upload-id",u.id,h))})})}}function cP(n){return Array.from(n.types).includes("text/html")&&n.getData("text/html")!==""}function uP(n,e){const t=n.plugins.get("ImageUtils");return Array.from(n.model.createRangeOn(e)).filter(i=>t.isImage(i.item)).map(i=>i.item)}class xp extends k{static get pluginName(){return"ImageUpload"}static get isOfficialPlugin(){return!0}static get requires(){return[lP,XI,QI]}}class dP extends S{urlInputView;keystrokes;constructor(e){super(e),this.set("imageURLInputValue",""),this.set("isImageSelected",!1),this.set("isEnabled",!0),this.keystrokes=new re,this.urlInputView=this._createUrlInputView(),this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-url"],tabindex:"-1"},children:[this.urlInputView,{tag:"div",attributes:{class:["ck","ck-image-insert-url__action-row"]}}]})}render(){super.render(),hi({view:this}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.keystrokes.destroy()}_createUrlInputView(){const e=this.locale,t=e.t,i=new ue(e,Ge);return i.bind("label").to(this,"isImageSelected",r=>t(r?"Update image URL":"Insert image via URL")),i.bind("isEnabled").to(this),i.fieldView.inputMode="url",i.fieldView.placeholder="https://example.com/image.png",i.fieldView.bind("value").to(this,"imageURLInputValue",r=>r||""),i.fieldView.on("input",()=>{this.imageURLInputValue=i.fieldView.element.value.trim()}),i}focus(){this.urlInputView.focus()}}class hP extends k{_imageInsertUI;_formView;static get pluginName(){return"ImageInsertViaUrlUI"}static get isOfficialPlugin(){return!0}static get requires(){return[sr,Qe]}init(){this.editor.ui.componentFactory.add("insertImageViaUrl",()=>this._createToolbarButton()),this.editor.ui.componentFactory.add("menuBar:insertImageViaUrl",()=>this._createMenuBarButton("standalone"))}afterInit(){this._imageInsertUI=this.editor.plugins.get("ImageInsertUI"),this._imageInsertUI.registerIntegration({name:"url",observable:()=>this.editor.commands.get("insertImage"),buttonViewCreator:()=>this._createToolbarButton(),formViewCreator:()=>this._createDropdownButton(),menuBarButtonViewCreator:e=>this._createMenuBarButton(e?"insertOnly":"insertNested")})}_createInsertUrlButton(e){const t=new e(this.editor.locale);return t.icon=rT,t.on("execute",()=>{this._showModal()}),t}_createToolbarButton(){const e=this.editor.locale.t,t=this._createInsertUrlButton(P);return t.tooltip=!0,t.bind("label").to(this._imageInsertUI,"isImageSelected",i=>e(i?"Update image URL":"Insert image via URL")),t}_createDropdownButton(){const e=this.editor.locale.t,t=this._createInsertUrlButton(P);return t.withText=!0,t.bind("label").to(this._imageInsertUI,"isImageSelected",i=>e(i?"Update image URL":"Insert via URL")),t}_createMenuBarButton(e){const t=this.editor.locale.t,i=this._createInsertUrlButton(ke);switch(i.withText=!0,e){case"standalone":i.label=t("Image via URL");break;case"insertOnly":i.label=t("Image");break;case"insertNested":i.label=t("Via URL");break}return i}_createInsertUrlView(){const e=this.editor,t=e.locale,i=e.commands.get("replaceImageSource"),r=e.commands.get("insertImage"),s=new dP(t);return s.bind("isImageSelected").to(this._imageInsertUI),s.bind("isEnabled").toMany([r,i],"isEnabled",(...o)=>o.some(a=>a)),s}_showModal(){const e=this.editor,i=e.locale.t,r=e.plugins.get("Dialog");this._formView||(this._formView=this._createInsertUrlView(),this._formView.on("submit",()=>this._handleSave()));const s=e.commands.get("replaceImageSource");this._formView.imageURLInputValue=s.value||"",r.show({id:"insertImageViaUrl",title:i("Image via URL"),isModal:!0,content:this._formView,actionButtons:[{label:i("Cancel"),withText:!0,onExecute:()=>r.hide()},{label:this._imageInsertUI.isImageSelected?i("Save"):i("Insert"),class:"ck-button-action",withText:!0,onExecute:()=>this._handleSave()}]})}_handleSave(){this.editor.commands.get("replaceImageSource").isEnabled?this.editor.execute("replaceImageSource",{source:this._formView.imageURLInputValue}):this.editor.execute("insertImage",{source:this._formView.imageURLInputValue}),this.editor.plugins.get("Dialog").hide()}}class Sp extends k{static get pluginName(){return"ImageInsertViaUrl"}static get isOfficialPlugin(){return!0}static get requires(){return[hP,sr]}}class mP extends k{static get pluginName(){return"ImageInsert"}static get isOfficialPlugin(){return!0}static get requires(){return[xp,Sp,sr]}}class gP extends N{refresh(){const e=this.editor,i=e.plugins.get("ImageUtils").getClosestSelectedImageElement(e.model.document.selection);this.isEnabled=!!i,!i||!i.hasAttribute("resizedWidth")?this.value=null:this.value={width:i.getAttribute("resizedWidth"),height:null}}execute(e){const t=this.editor,i=t.model,r=t.plugins.get("ImageUtils"),s=r.getClosestSelectedImageElement(i.document.selection);this.value={width:e.width,height:null},s&&i.change(o=>{o.setAttribute("resizedWidth",e.width,s),o.removeAttribute("resizedHeight",s),r.setImageNaturalSizeAttributes(s)})}}class Ap extends k{static get requires(){return[Te]}static get pluginName(){return"ImageResizeEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("image",{resizeUnit:"%",resizeOptions:[{name:"resizeImage:original",value:null,icon:"original"},{name:"resizeImage:custom",value:"custom",icon:"custom"},{name:"resizeImage:25",value:"25",icon:"small"},{name:"resizeImage:50",value:"50",icon:"medium"},{name:"resizeImage:75",value:"75",icon:"large"}]})}init(){const e=this.editor,t=new gP(e);this._registerConverters("imageBlock"),this._registerConverters("imageInline"),e.commands.add("resizeImage",t),e.commands.add("imageResize",t)}afterInit(){this._registerSchema()}_registerSchema(){this.editor.plugins.has("ImageBlockEditing")&&this.editor.model.schema.extend("imageBlock",{allowAttributes:["resizedWidth","resizedHeight"]}),this.editor.plugins.has("ImageInlineEditing")&&this.editor.model.schema.extend("imageInline",{allowAttributes:["resizedWidth","resizedHeight"]})}_registerConverters(e){const t=this.editor,i=t.plugins.get("ImageUtils");t.conversion.for("downcast").add(r=>r.on(`attribute:resizedWidth:${e}`,(s,o,a)=>{if(!a.consumable.consume(o.item,s.name))return;const l=a.writer,c=a.mapper.toViewElement(o.item);o.attributeNewValue!==null?(l.setStyle("width",o.attributeNewValue,c),l.addClass("image_resized",c)):(l.removeStyle("width",c),l.removeClass("image_resized",c))})),t.conversion.for("dataDowncast").attributeToAttribute({model:{name:e,key:"resizedHeight"},view:r=>({key:"style",value:{height:r}})}),t.conversion.for("editingDowncast").add(r=>r.on(`attribute:resizedHeight:${e}`,(s,o,a)=>{if(!a.consumable.consume(o.item,s.name))return;const l=a.writer,c=a.mapper.toViewElement(o.item),u=e==="imageInline"?i.findViewImgElement(c):c;o.attributeNewValue!==null?l.setStyle("height",o.attributeNewValue,u):l.removeStyle("height",u)})),t.conversion.for("upcast").attributeToAttribute({view:{name:e==="imageBlock"?"figure":"img",styles:{width:/.+/}},model:{key:"resizedWidth",value:r=>Ls(r)?null:r.getStyle("width")}}),t.conversion.for("upcast").attributeToAttribute({view:{name:e==="imageBlock"?"figure":"img",styles:{height:/.+/}},model:{key:"resizedHeight",value:r=>Ls(r)?null:r.getStyle("height")}}),t.conversion.for("upcast").add(r=>{r.on(`element:${e==="imageBlock"?"figure":"img"}`,(s,o,a)=>{a.consumable.consume(o.viewItem,{classes:["image_resized"]})})})}}const Io={small:_T,medium:kT,large:vT,custom:wT,original:yT};class fP extends k{static get requires(){return[Ap]}static get pluginName(){return"ImageResizeButtons"}static get isOfficialPlugin(){return!0}_resizeUnit;constructor(e){super(e),this._resizeUnit=e.config.get("image.resizeUnit")}init(){const e=this.editor,t=e.config.get("image.resizeOptions"),i=e.commands.get("resizeImage");this.bind("isEnabled").to(i);for(const r of t)this._registerImageResizeButton(r);this._registerImageResizeDropdown(t)}_registerImageResizeButton(e){const t=this.editor,{name:i,value:r,icon:s}=e;t.ui.componentFactory.add(i,o=>{const a=new P(o),l=t.commands.get("resizeImage"),c=this._getOptionLabelValue(e,!0);if(!Io[s])throw new p("imageresizebuttons-missing-icon",t,e);if(a.set({label:c,icon:Io[s],tooltip:c,isToggleable:!0}),a.bind("isEnabled").to(this),t.plugins.has("ImageCustomResizeUI")&&mn(e)){const u=t.plugins.get("ImageCustomResizeUI");this.listenTo(a,"execute",()=>{u._showForm(this._resizeUnit)})}else{const u=r?r+this._resizeUnit:null;a.bind("isOn").to(l,"value",l,"isEnabled",aa(u)),this.listenTo(a,"execute",()=>{t.execute("resizeImage",{width:u})})}return a})}_registerImageResizeDropdown(e){const t=this.editor,i=t.t,r=e.find(o=>!o.value),s=o=>{const a=t.commands.get("resizeImage"),l=Fe(o,Mf),c=l.buttonView,u=i("Resize image");return c.set({tooltip:u,commandValue:r.value,icon:Io.medium,isToggleable:!0,label:this._getOptionLabelValue(r),withText:!0,class:"ck-resize-image-button",ariaLabel:u,ariaLabelledBy:void 0}),c.bind("label").to(a,"value",d=>d&&d.width?d.width:this._getOptionLabelValue(r)),l.bind("isEnabled").to(this),ir(l,()=>this._getResizeDropdownListItemDefinitions(e,a),{ariaLabel:i("Image resize list"),role:"menu"}),this.listenTo(l,"execute",d=>{"onClick"in d.source?d.source.onClick():(t.execute(d.source.commandName,{width:d.source.commandValue}),t.editing.view.focus())}),l};t.ui.componentFactory.add("resizeImage",s),t.ui.componentFactory.add("imageResize",s)}_getOptionLabelValue(e,t=!1){const i=this.editor.t;return e.label?e.label:t?mn(e)?i("Custom image size"):e.value?i("Resize image to %0",e.value+this._resizeUnit):i("Resize image to the original size"):mn(e)?i("Custom"):e.value?e.value+this._resizeUnit:i("Original")}_getResizeDropdownListItemDefinitions(e,t){const{editor:i}=this,r=new Re,s=e.map(o=>mn(o)?{...o,valueWithUnits:"custom"}:o.value?{...o,valueWithUnits:`${o.value}${this._resizeUnit}`}:{...o,valueWithUnits:null});for(const o of s){let a=null;if(i.plugins.has("ImageCustomResizeUI")&&mn(o)){const l=i.plugins.get("ImageCustomResizeUI");a={type:"button",model:new $n({label:this._getOptionLabelValue(o),role:"menuitemradio",withText:!0,icon:null,onClick:()=>{l._showForm(this._resizeUnit)}})};const c=Object.values(s).map(u=>u.valueWithUnits);a.model.bind("isOn").to(t,"value",t,"isEnabled",pP(c))}else a={type:"button",model:new $n({commandName:"resizeImage",commandValue:o.valueWithUnits,label:this._getOptionLabelValue(o),role:"menuitemradio",withText:!0,icon:null})},a.model.bind("isOn").to(t,"value",t,"isEnabled",aa(o.valueWithUnits));a.model.bind("isEnabled").to(t,"isEnabled"),r.add(a)}return r}}function mn(n){return n.value==="custom"}function aa(n){return(e,t)=>{const i=e;return i===void 0||!t?!1:n===null&&i===n?!0:i!==null&&i.width===n}}function pP(n){return(e,t)=>!n.some(i=>aa(i)(e,t))}const bP="figure.image.ck-widget > img,figure.image.ck-widget > picture > img,figure.image.ck-widget > a > img,figure.image.ck-widget > a > picture > img,span.image-inline.ck-widget > img,span.image-inline.ck-widget > picture > img",Po="image_resized";class wP extends k{static get requires(){return[So,Te]}static get pluginName(){return"ImageResizeHandles"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.commands.get("resizeImage");this.bind("isEnabled").to(e),this._setupResizerCreator()}_setupResizerCreator(){const e=this.editor,t=e.editing.view,i=e.plugins.get("ImageUtils");t.addObserver(Il),this.listenTo(t.document,"imageLoaded",(r,s)=>{if(!s.target.matches(bP))return;const o=e.editing.view.domConverter,a=o.domToView(s.target),l=i.getImageWidgetFromImageView(a);let c=this.editor.plugins.get(So).getResizerByViewElement(l);if(c){c.redraw();return}const u=e.editing.mapper,d=u.toModelElement(l);c=e.plugins.get(So).attachTo({unit:e.config.get("image.resizeUnit"),modelElement:d,viewElement:l,editor:e,getHandleHost(h){return h.querySelector("img")},getResizeHost(){return o.mapViewToDom(u.toViewElement(d))},isCentered(){return d.getAttribute("imageStyle")=="alignCenter"},onCommit(h){t.change(m=>{m.removeClass(Po,l)}),e.execute("resizeImage",{width:h})}}),c.on("updateSize",()=>{l.hasClass(Po)||t.change(m=>{m.addClass(Po,l)});const h=d.name==="imageInline"?a:l;h.getStyle("height")&&t.change(m=>{m.removeStyle("height",h)})}),c.bind("isEnabled").to(this)})}}function Ip(n){if(!n)return null;const[,e,t]=n.trim().match(/([.,\d]+)(%|px)$/)||[],i=Number.parseFloat(e);return Number.isNaN(i)?null:{value:i,unit:t}}function Pp(n,e,t){return t==="px"?{value:e.value,unit:"px"}:{value:e.value/n*100,unit:"%"}}function Rp(n){const{editing:e}=n,i=n.plugins.get("ImageUtils").getClosestSelectedImageElement(n.model.document.selection);if(!i)return null;const r=e.mapper.toViewElement(i),s=e.view.domConverter.mapViewToDom(r);return{model:i,view:r,dom:s}}function yP(n,e){const t=Rp(n);if(!t)return null;const i=Ip(t.model.getAttribute("resizedWidth")||null);if(!i)return null;if(i.unit===e)return i;const r=El(t.dom),s={value:new B(t.dom).width};return Pp(r,s,e)}class vP extends S{focusTracker;keystrokes;unit;backButtonView;saveButtonView;labeledInput;children;_focusables;_focusCycler;_validators;constructor(e,t,i){super(e),this.focusTracker=new te,this.keystrokes=new re,this.unit=t,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.labeledInput=this._createLabeledInputView(),this.children=this.createCollection([this._createHeaderView()]),this.children.add(new we(e,{children:[this.labeledInput,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding"]})),this._focusables=new pe,this._validators=i,this.keystrokes.set("Esc",(r,s)=>{this.fire("cancel"),s()}),this._focusCycler=new xe({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-image-custom-resize-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),hi({view:this}),[this.backButtonView,this.labeledInput,this.saveButtonView].forEach(t=>{this._focusables.add(t),this.focusTracker.add(t.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createBackButton(){const e=this.locale.t,t=new P(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:Ki,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new P(this.locale);return t.set({label:e("Save"),withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new qt(this.locale,{label:e("Image Resize")});return t.children.add(this.backButtonView,0),t}_createLabeledInputView(){const e=this.locale.t,t=new ue(this.locale,Df);return t.label=e("Resize image (in %0)",this.unit),t.class="ck-labeled-field-view_full-width",t.fieldView.set({step:.1}),t}isValid(){this.resetFormStatus();for(const e of this._validators){const t=e(this);if(t)return this.labeledInput.errorText=t,!1}return!0}resetFormStatus(){this.labeledInput.errorText=null}get rawSize(){const{element:e}=this.labeledInput.fieldView;return e?e.value:null}get parsedSize(){const{rawSize:e}=this;if(e===null)return null;const t=Number.parseFloat(e);return Number.isNaN(t)?null:t}get sizeWithUnits(){const{parsedSize:e,unit:t}=this;return e===null?null:`${e}${t}`}}function kP(n,e){const t=Rp(n);if(!t)return null;const i=El(t.dom),r=Ip(window.getComputedStyle(t.dom).minWidth)||{value:1},s=Math.max(.1,Pp(i,r,e).value);return{unit:e,lower:s,upper:e==="px"?i:100}}class _P extends k{_balloon;_form;static get requires(){return[Et]}static get pluginName(){return"ImageCustomResizeUI"}static get isOfficialPlugin(){return!0}destroy(){super.destroy(),this._form&&this._form.destroy()}_createForm(e){const t=this.editor;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(bs(vP))(t.locale,e,CP(t)),this._form.render(),this.listenTo(this._form,"submit",()=>{this._form.isValid()&&(t.execute("resizeImage",{width:this._form.sizeWithUnits}),this._hideForm(!0))}),this.listenTo(this._form.labeledInput,"change:errorText",()=>{t.ui.update()}),this.listenTo(this._form,"cancel",()=>{this._hideForm(!0)}),di({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(e){if(this._isVisible)return;this._form||this._createForm(e);const t=this.editor,i=this._form.labeledInput;this._form.disableCssTransitions(),this._form.resetFormStatus(),this._isInBalloon||this._balloon.add({view:this._form,position:Sl(t)});const r=yP(t,e),s=r?r.value.toFixed(1):"",o=kP(t,e);i.fieldView.value=i.fieldView.element.value=s,o&&Object.assign(i.fieldView,{min:o.lower.toFixed(1),max:Math.ceil(o.upper).toFixed(1)}),this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}function CP(n){const e=n.t;return[t=>{if(t.rawSize.trim()==="")return e("The value must not be empty.");if(t.parsedSize===null)return e("The value should be a plain number.")}]}class LP extends k{static get requires(){return[Ap,wP,_P,fP]}static get pluginName(){return"ImageResize"}static get isOfficialPlugin(){return!0}}class TP extends N{_defaultStyles;_styles;constructor(e,t){super(e),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(t.map(i=>{if(i.isDefault)for(const r of i.modelElements)this._defaultStyles[r]=i.name;return[i.name,i]}))}refresh(){const i=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!i,this.isEnabled?i.hasAttribute("imageStyle")?this.value=i.getAttribute("imageStyle"):this.value=this._defaultStyles[i.name]:this.value=!1}execute(e={}){const t=this.editor,i=t.model,r=t.plugins.get("ImageUtils");i.change(s=>{const o=e.value,{setImageSizes:a=!0}=e;let l=r.getClosestSelectedImageElement(i.document.selection);o&&this.shouldConvertImageType(o,l)&&(this.editor.execute(r.isBlockImage(l)?"imageTypeInline":"imageTypeBlock",{setImageSizes:a}),l=r.getClosestSelectedImageElement(i.document.selection)),!o||this._styles.get(o).isDefault?s.removeAttribute("imageStyle",l):s.setAttribute("imageStyle",o,l),a&&r.setImageNaturalSizeAttributes(l)})}shouldConvertImageType(e,t){return!this._styles.get(e).modelElements.includes(t.name)}}const qr={get inline(){return{name:"inline",title:"In line",icon:uf,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:hl,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:df,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:gs,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:fs,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:hf,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:gs,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:fs,modelElements:["imageBlock"],className:"image-style-side"}}},Mp={full:bT,left:df,right:hf,center:gs,inlineLeft:hl,inlineRight:fs,inline:uf},Bp=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function EP(n){return(n.configuredStyles.options||[]).map(i=>AP(i)).filter(i=>IP(i,n))}function xP(n,e){return n&&e?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:n?{options:["block","side"]}:e?{options:["inline","alignLeft","alignRight"]}:{}}function SP(n){return n.has("ImageBlockEditing")&&n.has("ImageInlineEditing")?[...Bp]:[]}function AP(n){return typeof n=="string"?qr[n]?n={...qr[n]}:n={name:n}:n=PP(qr[n.name],n),typeof n.icon=="string"&&(n.icon=Mp[n.icon]||n.icon),n}function IP(n,{isBlockPluginLoaded:e,isInlinePluginLoaded:t}){const{modelElements:i,name:r}=n;if(!i||!i.length||!r)return Vp({style:n}),!1;{const s=[e?"imageBlock":null,t?"imageInline":null];if(!i.some(o=>s.includes(o)))return H("image-style-missing-dependency",{style:n,missingPlugins:i.map(o=>o==="imageBlock"?"ImageBlockEditing":"ImageInlineEditing")}),!1}return!0}function PP(n,e){const t={...e};for(const i in n)Object.prototype.hasOwnProperty.call(e,i)||(t[i]=n[i]);return t}function Vp(n){H("image-style-configuration-definition-invalid",n)}var la={normalizeStyles:EP,getDefaultStylesConfiguration:xP,getDefaultDropdownDefinitions:SP,warnInvalidStyle:Vp,DEFAULT_OPTIONS:qr,DEFAULT_ICONS:Mp,DEFAULT_DROPDOWN_DEFINITIONS:Bp};function RP(n){return(e,t,i)=>{if(!i.consumable.consume(t.item,e.name))return;const r=Nd(t.attributeNewValue,n),s=Nd(t.attributeOldValue,n),o=i.mapper.toViewElement(t.item),a=i.writer;s&&a.removeClass(s.className,o),r&&a.addClass(r.className,o)}}function MP(n){const e={imageInline:n.filter(t=>!t.isDefault&&t.modelElements.includes("imageInline")),imageBlock:n.filter(t=>!t.isDefault&&t.modelElements.includes("imageBlock"))};return(t,i,r)=>{if(!i.modelRange)return;const s=i.viewItem,o=ce(i.modelRange.getItems());if(o&&r.schema.checkAttribute(o,"imageStyle"))for(const a of e[o.name])r.consumable.consume(s,{classes:a.className})&&r.writer.setAttribute("imageStyle",a.name,o)}}function Nd(n,e){for(const t of e)if(t.name===n)return t}class Np extends k{static get pluginName(){return"ImageStyleEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Te]}normalizedStyles;init(){const{normalizeStyles:e,getDefaultStylesConfiguration:t}=la,i=this.editor,r=i.plugins.has("ImageBlockEditing"),s=i.plugins.has("ImageInlineEditing");i.config.define("image.styles",t(r,s)),this.normalizedStyles=e({configuredStyles:i.config.get("image.styles"),isBlockPluginLoaded:r,isInlinePluginLoaded:s}),this._setupConversion(r,s),this._setupPostFixer(),i.commands.add("imageStyle",new TP(i,this.normalizedStyles))}_setupConversion(e,t){const i=this.editor,r=i.model.schema,s=RP(this.normalizedStyles),o=MP(this.normalizedStyles);i.editing.downcastDispatcher.on("attribute:imageStyle",s),i.data.downcastDispatcher.on("attribute:imageStyle",s),e&&(r.extend("imageBlock",{allowAttributes:"imageStyle"}),i.data.upcastDispatcher.on("element:figure",o,{priority:"low"})),t&&(r.extend("imageInline",{allowAttributes:"imageStyle"}),i.data.upcastDispatcher.on("element:img",o,{priority:"low"}))}_setupPostFixer(){const e=this.editor,t=e.model.document,i=e.plugins.get(Te),r=new Map(this.normalizedStyles.map(s=>[s.name,s]));t.registerPostFixer(s=>{let o=!1;for(const a of t.differ.getChanges())if(a.type=="insert"||a.type=="attribute"&&a.attributeKey=="imageStyle"){let l=a.type=="insert"?a.position.nodeAfter:a.range.start.nodeAfter;if(l&&l.is("element","paragraph")&&l.childCount>0&&(l=l.getChild(0)),!i.isImage(l))continue;const c=l.getAttribute("imageStyle");if(!c)continue;const u=r.get(c);(!u||!u.modelElements.includes(l.name))&&(s.removeAttribute("imageStyle",l),o=!0)}return o})}}class BP extends k{static get requires(){return[Np]}static get pluginName(){return"ImageStyleUI"}static get isOfficialPlugin(){return!0}get localizedDefaultStylesTitles(){const e=this.editor.t;return{"Wrap text":e("Wrap text"),"Break text":e("Break text"),"In line":e("In line"),"Full size image":e("Full size image"),"Side image":e("Side image"),"Left aligned image":e("Left aligned image"),"Centered image":e("Centered image"),"Right aligned image":e("Right aligned image")}}init(){const e=this.editor.plugins,t=this.editor.config.get("image.toolbar")||[],i=e.get("ImageStyleEditing"),r=Od(i.normalizedStyles,this.localizedDefaultStylesTitles);for(const o of r)this._createButton(o);const s=Od([...t.filter(mp),...la.getDefaultDropdownDefinitions(e)],this.localizedDefaultStylesTitles);for(const o of s)this._createDropdown(o,r)}_createDropdown(e,t){const i=this.editor.ui.componentFactory;i.add(e.name,r=>{let s;const{defaultItem:o,items:a,title:l}=e,c=a.filter(m=>t.find(({name:g})=>Dd(g)===m)).map(m=>{const g=i.create(m);return m===o&&(s=g),g});a.length!==c.length&&la.warnInvalidStyle({dropdown:e});const u=Fe(r,tr),d=u.buttonView,h=d.arrowView;return zs(u,c,{enableActiveItemFocusOnDropdownOpen:!0}),d.set({label:zd(l,s.label),class:null,tooltip:!0}),h.unbind("label"),h.set({label:l}),d.bind("icon").toMany(c,"isOn",(...m)=>{const g=m.findIndex(hn);return g<0?s.icon:c[g].icon}),d.bind("label").toMany(c,"isOn",(...m)=>{const g=m.findIndex(hn);return zd(l,g<0?s.label:c[g].label)}),d.bind("isOn").toMany(c,"isOn",(...m)=>m.some(hn)),d.bind("class").toMany(c,"isOn",(...m)=>m.some(hn)?"ck-splitbutton_flatten":void 0),d.on("execute",()=>{c.some(({isOn:m})=>m)?u.isOpen=!u.isOpen:s.fire("execute")}),u.bind("isEnabled").toMany(c,"isEnabled",(...m)=>m.some(hn)),this.listenTo(u,"execute",()=>{this.editor.editing.view.focus()}),u})}_createButton(e){const t=e.name;this.editor.ui.componentFactory.add(Dd(t),i=>{const r=this.editor.commands.get("imageStyle"),s=new P(i);return s.set({label:e.title,icon:e.icon,tooltip:!0,isToggleable:!0}),s.bind("isEnabled").to(r,"isEnabled"),s.bind("isOn").to(r,"value",o=>o===t),s.on("execute",this._executeCommand.bind(this,t)),s})}_executeCommand(e){this.editor.execute("imageStyle",{value:e}),this.editor.editing.view.focus()}}function Od(n,e){for(const t of n)e[t.title]&&(t.title=e[t.title]);return n}function Dd(n){return`imageStyle:${n}`}function zd(n,e){return(n?n+": ":"")+e}class VP extends k{static get requires(){return[Np,BP]}static get pluginName(){return"ImageStyle"}static get isOfficialPlugin(){return!0}}class NP extends k{static get requires(){return[_s,Te]}static get pluginName(){return"ImageToolbar"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=e.t,i=e.plugins.get(_s),r=e.plugins.get("ImageUtils");i.register("image",{ariaLabel:t("Image toolbar"),items:OP(e.config.get("image.toolbar")||[]),getRelatedElement:s=>r.getClosestSelectedImageWidget(s)})}}function OP(n){return n.map(e=>mp(e)?e.name:e)}function Op(n){if(n==null)return"";if(Array.isArray(n))return n.map(Op).join(",");const e=String(n);return e==="0"&&Object.is(Number(n),-0)?"-0":e}function DP(n){return n.substring(0,1).toUpperCase()+n.substring(1)}function zP(n){return DP(Op(n))}class FP{_definitions=new Set;get length(){return this._definitions.size}add(e){Array.isArray(e)?e.forEach(t=>this._definitions.add(t)):this._definitions.add(e)}getDispatcher(){return e=>{e.on("attribute:linkHref",(t,i,r)=>{if(!r.consumable.test(i.item,"attribute:linkHref")||!(i.item.is("selection")||r.schema.isInline(i.item)))return;const s=r.writer,o=s.document.selection;for(const a of this._definitions){const l=s.createAttributeElement("a",a.attributes,{priority:5});a.classes&&s.addClass(a.classes,l);for(const c in a.styles)s.setStyle(c,a.styles[c],l);s.setCustomProperty("link",!0,l),a.callback(i.attributeNewValue)?i.item.is("selection")?s.wrap(o.getFirstRange(),l):s.wrap(r.mapper.toViewRange(i.range),l):s.unwrap(r.mapper.toViewRange(i.range),l)}},{priority:"high"})}}getDispatcherForLinkedImage(){return e=>{e.on("attribute:linkHref:imageBlock",(t,i,{writer:r,mapper:s})=>{const o=s.toViewElement(i.item),a=Array.from(o.getChildren()).find(l=>l.is("element","a"));if(a)for(const l of this._definitions){const c=Lt(l.attributes);if(l.callback(i.attributeNewValue)){for(const[u,d]of c)u==="class"?r.addClass(d,a):r.setAttribute(u,d,a);l.classes&&r.addClass(l.classes,a);for(const u in l.styles)r.setStyle(u,l.styles[u],a)}else{for(const[u,d]of c)u==="class"?r.removeClass(d,a):r.removeAttribute(u,a);l.classes&&r.removeClass(l.classes,a);for(const u in l.styles)r.removeStyle(u,a)}}})}}}const UP=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,HP="^(?:(?:<protocols>):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))",jP=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,WP=/^((\w+:(\/{2,})?)|(\W))/i,qP=["https?","ftps?","mailto"],Ar="Ctrl+K";function $P(n){return n.is("attributeElement")&&!!n.getCustomProperty("link")}function Fd(n,{writer:e}){const t=e.createAttributeElement("a",{href:n},{priority:5});return e.setCustomProperty("link",!0,t),t}function Dp(n,e=qP){const t=String(n),i=e.join("|"),r=new RegExp(`${HP.replace("<protocols>",i)}`,"i");return GP(t,r)?t:"#"}function GP(n,e){return!!n.replace(UP,"").match(e)}function KP(n,e){const t={"Open in a new tab":n("Open in a new tab"),Downloadable:n("Downloadable")};return e.forEach(i=>("label"in i&&t[i.label]&&(i.label=t[i.label]),i)),e}function ZP(n){const e=[];if(n)for(const[t,i]of Object.entries(n)){const r=Object.assign({},i,{id:`link${zP(t)}`});e.push(r)}return e}function ca(n,e){return n?e.checkAttribute(n.name,"linkHref"):!1}function JP(n){return jP.test(n)}function Pl(n,e){const t=JP(n)?"mailto:":e,i=!!t&&!zp(n);return n&&i?t+n:n}function zp(n){return WP.test(n)}function YP(n){window.open(n,"_blank","noopener")}function ua(n){let e="";for(const t of n.getItems()){if(!t.is("$text")&&!t.is("$textProxy"))return;e+=t.data}return e}class XP extends N{manualDecorators=new Re;automaticDecorators=new FP;restoreManualDecoratorStates(){for(const e of this.manualDecorators)e.value=this._getDecoratorStateFromModel(e.id)}refresh(){const e=this.editor.model,t=e.document.selection,i=t.getSelectedElement()||ce(t.getSelectedBlocks());ca(i,e.schema)?(this.value=i.getAttribute("linkHref"),this.isEnabled=e.schema.checkAttribute(i,"linkHref")):(this.value=t.getAttribute("linkHref"),this.isEnabled=e.schema.checkAttributeInSelection(t,"linkHref"));for(const r of this.manualDecorators)r.value=this._getDecoratorStateFromModel(r.id)}execute(e,t={},i){const r=this.editor.model,s=r.document.selection,o=[],a=[];for(const l in t)t[l]?o.push(l):a.push(l);r.change(l=>{const c=h=>{l.setAttribute("linkHref",e,h),o.forEach(m=>l.setAttribute(m,!0,h)),a.forEach(m=>l.removeAttribute(m,h))},u=(h,m)=>{const g=ua(h);if(!g)return h;let f=i;if(f||(f=m&&m==g?e:g),f!=g){const b=QP(g,f);let y=0;for(const{offset:C,actual:L,expected:O}of b){const U=C+y,x=l.createRange(h.start.getShiftedBy(U),h.start.getShiftedBy(U+L.length)),I=e2(x,h).getAttributes(),M=Array.from(I).filter(([be])=>r.schema.getAttributeProperties(be).isFormatting),J=l.createText(O,M);c(J),r.insertContent(J,x),y+=O.length}return l.createRange(h.start,h.start.getShiftedBy(f.length))}},d=h=>{const{plugins:m}=this.editor;if(l.setSelection(h.end),m.has("TwoStepCaretMovement"))m.get("TwoStepCaretMovement")._handleForwardMovement();else for(const g of["linkHref",...o,...a])l.removeSelectionAttribute(g)};if(s.isCollapsed){const h=s.getFirstPosition();if(s.hasAttribute("linkHref")){const m=s.getAttribute("linkHref"),g=Fs(h,"linkHref",m,r),f=u(g,m);c(f||g),f&&d(f)}else if(e!==""){const m=Lt(s.getAttributes());m.set("linkHref",e),o.forEach(f=>{m.set(f,!0)});const g=r.insertContent(l.createText(i||e,m),h);d(g)}}else{const h=Array.from(s.getRanges()),m=r.schema.getValidRanges(h,"linkHref"),g=[];for(const y of s.getSelectedBlocks())r.schema.checkAttribute(y,"linkHref")&&g.push(l.createRangeOn(y));const f=g.slice();for(const y of m)this._isRangeToUpdate(y,g)&&f.push(y);const b=h.map(y=>({start:me.fromPosition(y.start,"toPrevious"),end:me.fromPosition(y.end,"toNext")}));for(let y of f){const C=(y.start.textNode||y.start.nodeAfter).getAttribute("linkHref");y=u(y,C)||y,c(y)}l.setSelection(b.map(y=>{const C=y.start.toPosition(),L=y.end.toPosition();return y.start.detach(),y.end.detach(),r.createRange(C,L)}))}})}_getDecoratorStateFromModel(e){const t=this.editor.model,i=t.document.selection,r=i.getSelectedElement();return ca(r,t.schema)?r.getAttribute(e):i.getAttribute(e)}_isRangeToUpdate(e,t){for(const i of t)if(i.containsRange(e))return!1;return!0}}function QP(n,e){const t=Di(n,e),i={equal:0,insert:0,delete:0},r=[];let s="",o="";for(const a of[...t,null])a=="insert"?o+=e[i.equal+i.insert]:a=="delete"?s+=n[i.equal+i.delete]:(s.length||o.length)&&(r.push({offset:i.equal,actual:s,expected:o}),s="",o=""),a&&i[a]++;return r}function e2(n,e){if(!n.isCollapsed)return ce(n.getItems());const t=n.start;return t.textNode?t.textNode:!t.nodeBefore||t.isEqual(e.start)?t.nodeAfter:t.nodeBefore}class t2 extends N{refresh(){const e=this.editor.model,t=e.document.selection,i=t.getSelectedElement();ca(i,e.schema)?this.isEnabled=e.schema.checkAttribute(i,"linkHref"):this.isEnabled=e.schema.checkAttributeInSelection(t,"linkHref")}execute(){const e=this.editor,t=this.editor.model,i=t.document.selection,r=e.commands.get("link");t.change(s=>{const o=i.isCollapsed?[Fs(i.getFirstPosition(),"linkHref",i.getAttribute("linkHref"),t)]:t.schema.getValidRanges(i.getRanges(),"linkHref");for(const a of o)if(s.removeAttribute("linkHref",a),r)for(const l of r.manualDecorators)s.removeAttribute(l.id,a)})}}class i2 extends $(){id;defaultValue;label;attributes;classes;styles;constructor({id:e,label:t,attributes:i,classes:r,styles:s,defaultValue:o}){super(),this.id=e,this.set("value",void 0),this.defaultValue=o,this.label=t,this.attributes=i,this.classes=r,this.styles=s}_createPattern(){return{attributes:this.attributes,classes:this.classes,styles:this.styles}}}const n2="ck-link_selected",Ud="automatic",r2="manual",s2=/^(https?:)?\/\//;class Es extends k{_linkOpeners=[];static get pluginName(){return"LinkEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[ad,Xf,Ke]}constructor(e){super(e),e.config.define("link",{allowCreatingEmptyLinks:!1,addTargetToExternalLinks:!1,toolbar:["linkPreview","|","editLink","linkProperties","unlink"]})}init(){const e=this.editor,t=this.editor.config.get("link.allowedProtocols");e.model.schema.extend("$text",{allowAttributes:"linkHref"}),e.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:Fd}),e.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(s,o)=>Fd(Dp(s,t),o)}),e.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:!0}},model:{key:"linkHref",value:s=>s.getAttribute("href")}}),e.commands.add("link",new XP(e)),e.commands.add("unlink",new t2(e));const i=KP(e.t,ZP(e.config.get("link.decorators")));this._enableAutomaticDecorators(i.filter(s=>s.mode===Ud)),this._enableManualDecorators(i.filter(s=>s.mode===r2)),e.plugins.get(ad).registerAttribute("linkHref"),bS(e,"linkHref","a",n2),this._enableLinkOpen(),this._enableSelectionAttributesFixer(),this._enableClipboardIntegration()}_registerLinkOpener(e){this._linkOpeners.push(e)}_enableAutomaticDecorators(e){const t=this.editor,r=t.commands.get("link").automaticDecorators;t.config.get("link.addTargetToExternalLinks")&&r.add({id:"linkIsExternal",mode:Ud,callback:s=>!!s&&s2.test(s),attributes:{target:"_blank",rel:"noopener noreferrer"}}),r.add(e),r.length&&t.conversion.for("downcast").add(r.getDispatcher())}_enableManualDecorators(e){if(!e.length)return;const t=this.editor,r=t.commands.get("link").manualDecorators;e.forEach(s=>{t.model.schema.extend("$text",{allowAttributes:s.id});const o=new i2(s);r.add(o),t.conversion.for("downcast").attributeToElement({model:o.id,view:(a,{writer:l,schema:c},{item:u})=>{if((u.is("selection")||c.isInline(u))&&a){const d=l.createAttributeElement("a",o.attributes,{priority:5});o.classes&&l.addClass(o.classes,d);for(const h in o.styles)l.setStyle(h,o.styles[h],d);return l.setCustomProperty("link",!0,d),d}}}),t.conversion.for("upcast").elementToAttribute({view:{name:"a",...o._createPattern()},model:{key:o.id}})})}_enableLinkOpen(){const e=this.editor,i=e.editing.view.document,r=s=>{this._linkOpeners.some(o=>o(s))||YP(s)};this.listenTo(i,"click",(s,o)=>{if(!(R.isMac?o.domEvent.metaKey:o.domEvent.ctrlKey))return;let l=o.domTarget;if(l.tagName.toLowerCase()!="a"&&(l=l.closest("a")),!l)return;const c=l.getAttribute("href");c&&(s.stop(),o.preventDefault(),r(c))},{context:"$capture"}),this.listenTo(i,"keydown",(s,o)=>{const l=e.commands.get("link").value;l&&o.keyCode===F.enter&&o.altKey&&(s.stop(),r(l))})}_enableSelectionAttributesFixer(){const t=this.editor.model,i=t.document.selection;this.listenTo(i,"change:attribute",(r,{attributeKeys:s})=>{!s.includes("linkHref")||i.hasAttribute("linkHref")||t.change(o=>{o2(o,a2(t.schema))})})}_enableClipboardIntegration(){const e=this.editor,t=e.model,i=this.editor.config.get("link.defaultProtocol");i&&this.listenTo(e.plugins.get("ClipboardPipeline"),"contentInsertion",(r,s)=>{t.change(o=>{const a=o.createRangeIn(s.content);for(const l of a.getItems())if(l.hasAttribute("linkHref")){const c=Pl(l.getAttribute("linkHref"),i);o.setAttribute("linkHref",c,l)}})})}}function o2(n,e){n.removeSelectionAttribute("linkHref");for(const t of e)n.removeSelectionAttribute(t)}function a2(n){return n.getDefinition("$text").allowAttributes.filter(t=>t.startsWith("link"))}class l2 extends P{constructor(e){super(e);const t=this.bindTemplate;this.set({href:void 0,withText:!0}),this.extendTemplate({attributes:{class:["ck-link-toolbar__preview"],href:t.to("href"),target:"_blank",rel:"noopener noreferrer"},on:{click:t.to(i=>{if(this.href){const r=()=>i.preventDefault();this.fire("navigate",this.href,r)}})}}),this.template.tag="a"}}class c2 extends S{focusTracker=new te;keystrokes=new re;backButtonView;saveButtonView;displayedTextInputView;urlInputView;children;providersListChildren;_validators;_focusables=new pe;_focusCycler;constructor(e,t){super(e),this._validators=t,this.backButtonView=this._createBackButton(),this.saveButtonView=this._createSaveButton(),this.displayedTextInputView=this._createDisplayedTextInput(),this.urlInputView=this._createUrlInput(),this.providersListChildren=this.createCollection(),this.children=this.createCollection([this._createHeaderView()]),this._createFormChildren(),this.listenTo(this.providersListChildren,"add",()=>{this.stopListening(this.providersListChildren,"add"),this.children.add(this._createProvidersListView())}),this._focusCycler=new xe({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-link-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render(),hi({view:this}),[this.urlInputView,this.saveButtonView,...this.providersListChildren,this.backButtonView,this.displayedTextInputView].forEach(t=>{this._focusables.add(t),this.focusTracker.add(t.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}isValid(){this.resetFormStatus();for(const e of this._validators){const t=e(this);if(t)return this.urlInputView.errorText=t,!1}return!0}resetFormStatus(){this.urlInputView.errorText=null}_createBackButton(){const e=this.locale.t,t=new P(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:Ki,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createSaveButton(){const e=this.locale.t,t=new P(this.locale);return t.set({label:e("Insert"),tooltip:!1,withText:!0,type:"submit",class:"ck-button-action ck-button-bold"}),t}_createHeaderView(){const e=this.locale.t,t=new qt(this.locale,{label:e("Link")});return t.children.add(this.backButtonView,0),t}_createProvidersListView(){const e=new Ji(this.locale);return e.extendTemplate({attributes:{class:["ck-link-form__providers-list"]}}),e.items.bindTo(this.providersListChildren).using(t=>{const i=new nt(this.locale);return i.children.add(t),i}),e}_createDisplayedTextInput(){const e=this.locale.t,t=new ue(this.locale,Ge);return t.label=e("Displayed text"),t.class="ck-labeled-field-view_full-width",t}_createUrlInput(){const e=this.locale.t,t=new ue(this.locale,Ge);return t.fieldView.inputMode="url",t.label=e("Link URL"),t.class="ck-labeled-field-view_full-width",t}_createFormChildren(){this.children.add(new we(this.locale,{children:[this.displayedTextInputView],class:["ck-form__row_large-top-padding"]})),this.children.add(new we(this.locale,{children:[this.urlInputView,this.saveButtonView],class:["ck-form__row_with-submit","ck-form__row_large-top-padding","ck-form__row_large-bottom-padding"]}))}get url(){const{element:e}=this.urlInputView.fieldView;return e?e.value.trim():null}}class u2 extends S{focusTracker=new te;keystrokes=new re;backButtonView;listView;listChildren;emptyListInformation;children;_focusables=new pe;_focusCycler;constructor(e){super(e),this.listChildren=this.createCollection(),this.backButtonView=this._createBackButton(),this.listView=this._createListView(),this.emptyListInformation=this._createEmptyLinksListItemView(),this.children=this.createCollection([this._createHeaderView(),this.emptyListInformation]),this.set("title",""),this.set("emptyListPlaceholder",""),this.set("hasItems",!1),this.listenTo(this.listChildren,"change",()=>{this.hasItems=this.listChildren.length>0}),this.on("change:hasItems",(t,i,r)=>{r?(this.children.remove(this.emptyListInformation),this.children.add(this.listView)):(this.children.remove(this.listView),this.children.add(this.emptyListInformation))}),this.keystrokes.set("Esc",(t,i)=>{this.fire("cancel"),i()}),this._focusCycler=new xe({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-providers"],tabindex:"-1"},children:this.children})}render(){super.render(),[this.listView,this.backButtonView].forEach(t=>{this._focusables.add(t),this.focusTracker.add(t.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createListView(){const e=new Ji(this.locale);return e.extendTemplate({attributes:{class:["ck-link-providers__list"]}}),e.items.bindTo(this.listChildren).using(t=>{const i=new nt(this.locale);return i.children.add(t),i}),e}_createBackButton(){const e=this.locale.t,t=new P(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:Ki,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createHeaderView(){const e=new qt(this.locale);return e.bind("label").to(this,"title"),e.children.add(this.backButtonView,0),e}_createEmptyLinksListItemView(){const e=new S(this.locale);return e.setTemplate({tag:"p",attributes:{class:["ck","ck-link__empty-list-info"]},children:[{text:this.bindTemplate.to("emptyListPlaceholder")}]}),e}}class d2 extends S{focusTracker=new te;keystrokes=new re;backButtonView;children;listChildren;_focusables=new pe;_focusCycler;constructor(e){super(e),this.backButtonView=this._createBackButton(),this.listChildren=this.createCollection(),this.children=this.createCollection([this._createHeaderView(),this._createListView()]),this._focusCycler=new xe({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-properties"],tabindex:"-1"},children:this.children}),this.keystrokes.set("Esc",(t,i)=>{this.fire("back"),i()})}render(){super.render(),[...this.listChildren,this.backButtonView].forEach(t=>{this._focusables.add(t),this.focusTracker.add(t.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBackButton(){const e=this.locale.t,t=new P(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:Ki,tooltip:!0}),t.delegate("execute").to(this,"back"),t}_createHeaderView(){const e=this.locale.t,t=new qt(this.locale,{label:e("Link properties")});return t.children.add(this.backButtonView,0),t}_createListView(){const e=new Ji(this.locale);return e.extendTemplate({attributes:{class:["ck-link__list"]}}),e.items.bindTo(this.listChildren).using(t=>{const i=new nt(this.locale);return i.children.add(t),i}),e}}class h2 extends P{arrowView;constructor(e){super(e),this.set({withText:!0}),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{class:["ck-link__button"]}})}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const e=new mt;return e.content=cf,e}}const ot="link-ui";class m2 extends k{toolbarView=null;formView=null;linkProviderItemsView=null;propertiesView=null;_balloon;_linksProviders=new Re;static get requires(){return[Et,Es]}static get pluginName(){return"LinkUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t;this.set("selectedLinkableText",void 0),e.editing.view.addObserver(A1),this._balloon=e.plugins.get(Et),this._registerComponents(),this._registerEditingOpeners(),this._enableBalloonActivators(),e.conversion.for("editingDowncast").markerToHighlight({model:ot,view:{classes:["ck-fake-link-selection"]}}),e.conversion.for("editingDowncast").markerToElement({model:ot,view:(i,{writer:r})=>{if(!i.markerRange.isCollapsed)return null;const s=r.createUIElement("span");return r.addClass(["ck-fake-link-selection","ck-fake-link-selection_collapsed"],s),s}}),e.accessibility.addKeystrokeInfos({keystrokes:[{label:t("Create link"),keystroke:Ar},{label:t("Move out of a link"),keystroke:[["arrowleft","arrowleft"],["arrowright","arrowright"]]}]})}destroy(){super.destroy(),this.propertiesView&&this.propertiesView.destroy(),this.formView&&this.formView.destroy(),this.toolbarView&&this.toolbarView.destroy(),this.linkProviderItemsView&&this.linkProviderItemsView.destroy()}registerLinksListProvider(e){const t=this._linksProviders.filter(i=>(i.order||0)<=(e.order||0)).length;this._linksProviders.add(e,t)}_createViews(){const e=this.editor.commands.get("link");this.toolbarView=this._createToolbarView(),this.formView=this._createFormView(),e.manualDecorators.length&&(this.propertiesView=this._createPropertiesView()),this._enableUserBalloonInteractions()}_createToolbarView(){const e=this.editor,t=new si(e.locale),i=e.commands.get("link");t.class="ck-link-toolbar";let r=e.config.get("link.toolbar");return i.manualDecorators.length||(r=r.filter(s=>s!=="linkProperties")),t.fillFromConfig(r,e.ui.componentFactory),t.keystrokes.set("Esc",(s,o)=>{this._hideUI(),o()}),t.keystrokes.set(Ar,(s,o)=>{this._addFormView(),o()}),e.ui.addToolbar(t,{isContextual:!0,beforeFocus:()=>{this._getSelectedLinkElement()&&!this._isToolbarVisible&&this._showUI(!0)},afterBlur:()=>{this._hideUI(!1)}}),t}_createFormView(){const e=this.editor,t=e.locale.t,i=e.commands.get("link"),r=e.config.get("link.defaultProtocol"),s=new(bs(c2))(e.locale,g2(e));return s.displayedTextInputView.bind("isEnabled").to(this,"selectedLinkableText",o=>o!==void 0),s.urlInputView.bind("isEnabled").to(i,"isEnabled"),s.saveButtonView.bind("isEnabled").to(i,"isEnabled"),s.saveButtonView.bind("label").to(i,"value",o=>t(o?"Update":"Insert")),this.listenTo(s,"submit",()=>{if(s.isValid()){const o=s.urlInputView.fieldView.element.value,a=Pl(o,r),l=s.displayedTextInputView.fieldView.element.value;e.execute("link",a,this._getDecoratorSwitchesState(),l!==this.selectedLinkableText?l:void 0),this._closeFormView()}}),this.listenTo(s.urlInputView,"change:errorText",()=>{e.ui.update()}),this.listenTo(s,"cancel",()=>{this._closeFormView()}),s.keystrokes.set("Esc",(o,a)=>{this._closeFormView(),a()}),s.providersListChildren.bindTo(this._linksProviders).using(o=>this._createLinksListProviderButton(o)),s}_createLinkProviderListView(e){return e.getListItems().map(({href:t,label:i,icon:r})=>{const s=new P;return s.set({label:i,icon:r,tooltip:!1,withText:!0}),s.on("execute",()=>{this.formView.resetFormStatus(),this.formView.urlInputView.fieldView.value=t,this.editor.editing.view.focus(),this._removeLinksProviderView(),this.formView.focus()}),s})}_createLinkProviderItemsView(e){const t=this.editor,i=t.locale.t,r=new u2(t.locale),{emptyListPlaceholder:s,label:o}=e;return r.emptyListPlaceholder=s||i("No links available"),r.title=o,this.listenTo(r,"cancel",()=>{t.editing.view.focus(),this._removeLinksProviderView(),this.formView.focus()}),r}_createPropertiesView(){const e=this.editor,t=this.editor.commands.get("link"),i=new(bs(d2))(e.locale);return this.listenTo(i,"back",()=>{e.editing.view.focus(),this._removePropertiesView()}),i.listChildren.bindTo(t.manualDecorators).using(r=>{const s=new er(e.locale);return s.set({label:r.label,withText:!0}),s.bind("isOn").toMany([r,t],"value",(o,a)=>a===void 0&&o===void 0?!!r.defaultValue:!!o),s.on("execute",()=>{r.set("value",!s.isOn),e.execute("link",t.value,this._getDecoratorSwitchesState())}),s}),i}_getDecoratorSwitchesState(){const e=this.editor.commands.get("link");return Array.from(e.manualDecorators).reduce((t,i)=>{const r=e.value===void 0&&i.value===void 0?i.defaultValue:i.value;return{...t,[i.id]:!!r}},{})}_registerEditingOpeners(){this.editor.plugins.get(Es)._registerLinkOpener(t=>{const i=this._getLinkProviderLinkByHref(t);if(!i)return!1;const{item:r,provider:s}=i;return s.navigate?s.navigate(r):!1})}_registerComponents(){const e=this.editor;e.ui.componentFactory.add("link",()=>{const t=this._createButton(P);return t.set({tooltip:!0}),t}),e.ui.componentFactory.add("menuBar:link",()=>{const t=this._createButton(ke);return t.set({role:"menuitemcheckbox"}),t}),e.ui.componentFactory.add("linkPreview",t=>{const i=new l2(t),r=e.config.get("link.allowedProtocols"),s=e.commands.get("link"),o=t.t;i.bind("isEnabled").to(s,"value",l=>!!l),i.bind("href").to(s,"value",l=>l&&Dp(l,r));const a=l=>{if(!l){i.label=void 0,i.icon=void 0,i.tooltip=o("Open link in new tab");return}const c=this._getLinkProviderLinkByHref(l);if(c){const{label:u,tooltip:d,icon:h}=c.item;i.label=u,i.tooltip=d||!1,i.icon=h}else i.label=l,i.icon=void 0,i.tooltip=o("Open link in new tab")};return a(s.value),this.listenTo(s,"change:value",(l,c,u)=>{a(u)}),this.listenTo(i,"navigate",(l,c,u)=>{const d=this._getLinkProviderLinkByHref(c);if(!d)return;const{provider:h,item:m}=d,{navigate:g}=h;g&&g(m)&&(l.stop(),u())}),i}),e.ui.componentFactory.add("unlink",t=>{const i=e.commands.get("unlink"),r=new P(t),s=t.t;return r.set({label:s("Unlink"),icon:HT,tooltip:!0}),r.bind("isEnabled").to(i),this.listenTo(r,"execute",()=>{e.execute("unlink"),this._hideUI()}),r}),e.ui.componentFactory.add("editLink",t=>{const i=e.commands.get("link"),r=new P(t),s=t.t;return r.set({label:s("Edit link"),icon:LT,tooltip:!0}),r.bind("isEnabled").to(i),this.listenTo(r,"execute",()=>{this._addFormView()}),r}),e.ui.componentFactory.add("linkProperties",t=>{const i=e.commands.get("link"),r=new P(t),s=t.t;return r.set({label:s("Link properties"),icon:PT,tooltip:!0}),r.bind("isEnabled").to(i,"isEnabled",i,"value",i,"manualDecorators",(o,a,l)=>o&&!!a&&l.length>0),this.listenTo(r,"execute",()=>{this._addPropertiesView()}),r})}_createLinksListProviderButton(e){const t=this.editor.locale,i=new h2(t);return i.set({label:e.label}),this.listenTo(i,"execute",()=>{this._showLinksProviderView(e)}),i}_createButton(e){const t=this.editor,i=t.locale,r=t.commands.get("link"),s=new e(t.locale),o=i.t;return s.set({label:o("Link"),icon:aT,keystroke:Ar,isToggleable:!0}),s.bind("isEnabled").to(r,"isEnabled"),s.bind("isOn").to(r,"value",a=>!!a),this.listenTo(s,"execute",()=>{t.editing.view.scrollToTheSelection(),this._showUI(!0),this._getSelectedLinkElement()&&this._addFormView()}),s}_enableBalloonActivators(){const e=this.editor,t=e.editing.view.document;this.listenTo(t,"click",()=>{this._getSelectedLinkElement()&&this._showUI()}),e.keystrokes.set(Ar,(i,r)=>{r(),e.commands.get("link").isEnabled&&(e.editing.view.scrollToTheSelection(),this._showUI(!0))})}_enableUserBalloonInteractions(){this.editor.keystrokes.set("Tab",(e,t)=>{this._isToolbarVisible&&!this.toolbarView.focusTracker.isFocused&&(this.toolbarView.focus(),t())},{priority:"high"}),this.editor.keystrokes.set("Esc",(e,t)=>{this._isUIVisible&&(this._hideUI(),t())}),di({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:()=>[this._balloon.view.element],callback:()=>{this._hideUI(!1)}})}_addToolbarView(){this.toolbarView||this._createViews(),!this._isToolbarInPanel&&this._balloon.add({view:this.toolbarView,position:this._getBalloonPositionData(),balloonClassName:"ck-toolbar-container"})}_addFormView(){if(this.formView||this._createViews(),this._isFormInPanel)return;const e=this.editor.commands.get("link");this.formView.disableCssTransitions(),this.formView.resetFormStatus(),this.formView.backButtonView.isVisible=e.isEnabled&&!!e.value,this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),this.selectedLinkableText=this._getSelectedLinkableText(),this.formView.displayedTextInputView.fieldView.value=this.selectedLinkableText||"",this.formView.urlInputView.fieldView.value=e.value||"",this._balloon.visibleView===this.formView&&this.formView.urlInputView.fieldView.select(),this.formView.enableCssTransitions()}_addPropertiesView(){this.propertiesView||this._createViews(),!this._arePropertiesInPanel&&(this.propertiesView.disableCssTransitions(),this._balloon.add({view:this.propertiesView,position:this._getBalloonPositionData()}),this.propertiesView.enableCssTransitions(),this.propertiesView.focus())}_showLinksProviderView(e){this.linkProviderItemsView&&this._removeLinksProviderView(),this.linkProviderItemsView=this._createLinkProviderItemsView(e),this._addLinkProviderItemsView(e)}_addLinkProviderItemsView(e){this.linkProviderItemsView.listChildren.clear(),this.linkProviderItemsView.listChildren.addMany(this._createLinkProviderListView(e)),this._balloon.add({view:this.linkProviderItemsView,position:this._getBalloonPositionData()}),this.linkProviderItemsView.focus()}_closeFormView(){const e=this.editor.commands.get("link");this.selectedLinkableText=void 0,e.value!==void 0?this._removeFormView():this._hideUI()}_removePropertiesView(){this._arePropertiesInPanel&&this._balloon.remove(this.propertiesView)}_removeLinksProviderView(){this._isLinksListInPanel&&this._balloon.remove(this.linkProviderItemsView)}_removeFormView(e=!0){this._isFormInPanel&&(this.formView.saveButtonView.focus(),this.formView.displayedTextInputView.fieldView.reset(),this.formView.urlInputView.fieldView.reset(),this._balloon.remove(this.formView),e&&this.editor.editing.view.focus(),this._hideFakeVisualSelection())}_showUI(e=!1){this.formView||this._createViews(),this._getSelectedLinkElement()?(this._isToolbarVisible?this._addFormView():this._addToolbarView(),e&&this._balloon.showStack("main")):(this._showFakeVisualSelection(),this._addToolbarView(),e&&this._balloon.showStack("main"),this._addFormView()),this._startUpdatingUI()}_hideUI(e=!0){const t=this.editor;this._isUIInPanel&&(this.stopListening(t.ui,"update"),this.stopListening(this._balloon,"change:visibleView"),e&&t.editing.view.focus(),this._removeLinksProviderView(),this._removePropertiesView(),this._removeFormView(e),this._isToolbarInPanel&&this._balloon.remove(this.toolbarView),this._hideFakeVisualSelection())}_startUpdatingUI(){const e=this.editor,t=e.editing.view.document;let i=this._getSelectedLinkElement(),r=o();const s=()=>{const a=this._getSelectedLinkElement(),l=o();i&&!a||!i&&l!==r?this._hideUI():this._isUIVisible&&this._balloon.updatePosition(this._getBalloonPositionData()),i=a,r=l};function o(){return t.selection.focus.getAncestors().reverse().find(a=>a.is("element"))}this.listenTo(e.ui,"update",s),this.listenTo(this._balloon,"change:visibleView",s)}get _arePropertiesInPanel(){return!!this.propertiesView&&this._balloon.hasView(this.propertiesView)}get _isLinksListInPanel(){return!!this.linkProviderItemsView&&this._balloon.hasView(this.linkProviderItemsView)}get _isFormInPanel(){return!!this.formView&&this._balloon.hasView(this.formView)}get _isToolbarInPanel(){return!!this.toolbarView&&this._balloon.hasView(this.toolbarView)}get _isPropertiesVisible(){return!!this.propertiesView&&this._balloon.visibleView===this.propertiesView}get _isFormVisible(){return!!this.formView&&this._balloon.visibleView==this.formView}get _isToolbarVisible(){return!!this.toolbarView&&this._balloon.visibleView===this.toolbarView}get _isUIInPanel(){return this._arePropertiesInPanel||this._isLinksListInPanel||this._isFormInPanel||this._isToolbarInPanel}get _isUIVisible(){return this._isPropertiesVisible||this._isLinksListInPanel||this._isFormVisible||this._isToolbarVisible}_getBalloonPositionData(){const e=this.editor.editing.view,t=e.document;if(this.editor.model.markers.has(ot)){const r=this.editor.editing.mapper.markerNameToElements(ot);if(r){const s=Array.from(r),o=e.createRange(e.createPositionBefore(s[0]),e.createPositionAfter(s[s.length-1]));return{target:e.domConverter.viewRangeToDom(o)}}}return{target:()=>{const r=this._getSelectedLinkElement();return r?e.domConverter.mapViewToDom(r):e.domConverter.viewRangeToDom(t.selection.getFirstRange())}}}_getSelectedLinkElement(){const e=this.editor.editing.view,t=e.document.selection,i=t.getSelectedElement();if(t.isCollapsed||i&&oe(i))return Ro(t.getFirstPosition());{const r=t.getFirstRange().getTrimmed(),s=Ro(r.start),o=Ro(r.end);return!s||s!=o?null:e.createRangeIn(s).getTrimmed().isEqual(r)?s:null}}_getSelectedLinkableText(){const e=this.editor.model,t=this.editor.editing,i=this._getSelectedLinkElement();if(!i)return ua(e.document.selection.getFirstRange());const r=t.view.createRangeOn(i),s=t.mapper.toModelRange(r);return ua(s)}_getLinkProviderLinkByHref(e){if(!e)return null;for(const t of this._linksProviders){const i=t.getItem?t.getItem(e):t.getListItems().find(r=>r.href===e);if(i)return{provider:t,item:i}}return null}_showFakeVisualSelection(){const e=this.editor.model;e.change(t=>{const i=e.document.selection.getFirstRange();if(e.markers.has(ot))t.updateMarker(ot,{range:i});else if(i.start.isAtEnd){const r=i.start.getLastMatchingPosition(({item:s})=>!e.schema.isContent(s),{boundaries:i});t.addMarker(ot,{usingOperation:!1,affectsData:!1,range:t.createRange(r,i.end)})}else t.addMarker(ot,{usingOperation:!1,affectsData:!1,range:i})})}_hideFakeVisualSelection(){const e=this.editor.model;e.markers.has(ot)&&e.change(t=>{t.removeMarker(ot)})}}function Ro(n){return n.getAncestors().find(e=>$P(e))||null}function g2(n){const e=n.t,t=n.config.get("link.allowCreatingEmptyLinks");return[i=>{if(!t&&!i.url.length)return e("Link URL must not be empty.")}]}const f2=4,Fp=new RegExp("(^|\\s)(((?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(((?!www\\.)|(www\\.))(?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.)+(?:[a-z\\u00a1-\\uffff]{2,63}))|localhost)(?::\\d{2,5})?(?:[/?#]\\S*)?)|((www.|(\\S+@))((?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.))+(?:[a-z\\u00a1-\\uffff]{2,63})))$","i"),p2=2;class b2 extends k{static get requires(){return[Xi,Es]}static get pluginName(){return"AutoLink"}static get isOfficialPlugin(){return!0}init(){const t=this.editor.model.document.selection;t.on("change:range",()=>{this.isEnabled=!t.anchor.parent.is("element","codeBlock")}),this._enableTypingHandling()}afterInit(){this._enableEnterHandling(),this._enableShiftEnterHandling(),this._enablePasteLinking()}_expandLinkRange(e,t){return t.textNode&&t.textNode.hasAttribute("linkHref")?Fs(t,"linkHref",t.textNode.getAttribute("linkHref"),e):null}_selectEntireLinks(e,t){const r=this.editor.model,s=r.document.selection,o=s.getFirstPosition(),a=s.getLastPosition();let l=t.getJoined(this._expandLinkRange(r,o)||t);l&&(l=l.getJoined(this._expandLinkRange(r,a)||t)),l&&(l.start.isBefore(o)||l.end.isAfter(a))&&e.setSelection(l)}_enablePasteLinking(){const e=this.editor,t=e.model,i=t.document.selection,r=e.plugins.get("ClipboardPipeline"),s=e.commands.get("link");r.on("inputTransformation",(o,a)=>{if(!this.isEnabled||!s.isEnabled||i.isCollapsed||a.method!=="paste"||i.rangeCount>1)return;const l=i.getFirstRange(),c=a.dataTransfer.getData("text/plain");if(!c)return;const u=c.match(Fp);u&&u[2]===c&&(t.change(d=>{this._selectEntireLinks(d,l),s.execute(c)}),o.stop())},{priority:"high"})}_enableTypingHandling(){const e=this.editor,t=new pS(e.model,i=>{let r=i;if(!w2(r))return;r=r.slice(0,-1),"!.:,;?".includes(r[r.length-1])&&(r=r.slice(0,-1));const s=Hd(r);if(s)return{url:s,removedTrailingCharacters:i.length-r.length}});t.on("matched:data",(i,r)=>{const{batch:s,range:o,url:a,removedTrailingCharacters:l}=r;if(!s.isTyping)return;const c=o.end.getShiftedBy(-l),u=c.getShiftedBy(-a.length),d=e.model.createRange(u,c);this._applyAutoLink(a,d)}),t.bind("isEnabled").to(this)}_enableEnterHandling(){const e=this.editor,t=e.model,i=e.commands.get("enter");i&&i.on("execute",()=>{const r=t.document.selection.getFirstPosition();let s;r.parent.previousSibling?.is("element")?s=t.createRangeIn(r.parent.previousSibling):s=t.createRange(t.createPositionAt(r.parent,0),r),this._checkAndApplyAutoLinkOnRange(s)})}_enableShiftEnterHandling(){const e=this.editor,t=e.model,i=e.commands.get("shiftEnter");i&&i.on("execute",()=>{const r=t.document.selection.getFirstPosition(),s=t.createRange(t.createPositionAt(r.parent,0),r.getShiftedBy(-1));this._checkAndApplyAutoLinkOnRange(s)})}_checkAndApplyAutoLinkOnRange(e){const t=this.editor.model,{text:i,range:r}=ep(e,t),s=Hd(i);if(s){const o=t.createRange(r.end.getShiftedBy(-s.length),r.end);this._applyAutoLink(s,o)}}_applyAutoLink(e,t){const i=this.editor.model,r=this.editor.config.get("link.defaultProtocol"),s=Pl(e,r);!this.isEnabled||!y2(t,i)||!zp(s)||v2(t)||this._persistAutoLink(s,t)}_persistAutoLink(e,t){const i=this.editor.model,r=this.editor.plugins.get("Delete");i.enqueueChange(s=>{s.setAttribute("linkHref",e,t),i.enqueueChange(()=>{r.requestUndoOnBackspace()})})}}function w2(n){return n.length>f2&&n[n.length-1]===" "&&n[n.length-2]!==" "}function Hd(n){const e=Fp.exec(n);return e?e[p2]:null}function y2(n,e){return e.schema.checkAttributeInSelection(e.createSelection(n),"linkHref")}function v2(n){const e=n.start.nodeAfter;return!!e&&e.hasAttribute("linkHref")}class k2 extends k{static get requires(){return[Es,m2,b2]}static get pluginName(){return"Link"}static get isOfficialPlugin(){return!0}}class Ze{_startElement;_referenceIndent;_isForward;_includeSelf;_sameAttributes;_sameIndent;_lowerIndent;_higherIndent;constructor(e,t){this._startElement=e,this._referenceIndent=e.getAttribute("listIndent"),this._isForward=t.direction=="forward",this._includeSelf=!!t.includeSelf,this._sameAttributes=X(t.sameAttributes||[]),this._sameIndent=!!t.sameIndent,this._lowerIndent=!!t.lowerIndent,this._higherIndent=!!t.higherIndent}static first(e,t){const r=new this(e,t)[Symbol.iterator]();return ce(r)}*[Symbol.iterator](){const e=[];for(const{node:t}of new or(this._getStartNode(),this._isForward?"forward":"backward")){const i=t.getAttribute("listIndent");if(i<this._referenceIndent){if(!this._lowerIndent)break;this._referenceIndent=i}else if(i>this._referenceIndent){if(!this._higherIndent)continue;if(!this._isForward){e.push(t);continue}}else{if(!this._sameIndent){if(this._higherIndent){e.length&&(yield*e,e.length=0);break}continue}if(this._sameAttributes.some(r=>t.getAttribute(r)!==this._startElement.getAttribute(r)))break}e.length&&(yield*e,e.length=0),yield t}}_getStartNode(){return this._includeSelf?this._startElement:this._isForward?this._startElement.nextSibling:this._startElement.previousSibling}}class or{_node;_isForward;_previousNodesByIndent=[];_previous=null;_previousNodeIndent=null;constructor(e,t="forward"){this._node=e,this._isForward=t==="forward"}[Symbol.iterator](){return this}next(){if(!ee(this._node))return{done:!0,value:void 0};const e=this._node.getAttribute("listIndent");let t=null;if(this._previous){const r=this._previousNodeIndent;e>r?this._previousNodesByIndent[r]=this._previous:e<r?(t=this._previousNodesByIndent[e]||null,this._previousNodesByIndent.length=e):t=this._previous}const i={node:this._node,previous:this._previous,previousNodeInList:t};return this._previous=this._node,this._previousNodeIndent=e,this._node=this._isForward?this._node.nextSibling:this._node.previousSibling,{value:i,done:!1}}}class _2{_listHead;constructor(e){this._listHead=e}[Symbol.iterator](){return new or(this._listHead)}}class qi{static next(){return Pe()}}function ee(n){return!!n&&n.is("element")&&n.hasAttribute("listItemId")}function Rl(n,e={}){return[...jt(n,{...e,direction:"backward"}),...jt(n,{...e,direction:"forward"})]}function jt(n,e={}){const t=e.direction=="forward",i=Array.from(new Ze(n,{...e,includeSelf:t,sameIndent:!0,sameAttributes:"listItemId"}));return t?i:i.reverse()}function C2(n){return Array.from(new Ze(n,{direction:"forward",higherIndent:!0}))}function Up(n,e){const t=new Ze(n,{sameIndent:!0,sameAttributes:"listType",...e}),i=new Ze(n,{sameIndent:!0,sameAttributes:"listType",includeSelf:!0,direction:"forward",...e});return[...Array.from(t).reverse(),...i]}function oi(n){return!Ze.first(n,{sameIndent:!0,sameAttributes:"listItemId"})}function jd(n){return!Ze.first(n,{direction:"forward",sameIndent:!0,sameAttributes:"listItemId"})}function ar(n,e={}){n=X(n);const t=e.withNested!==!1,i=new Set;for(const r of n)for(const s of Rl(r,{higherIndent:t}))i.add(s);return mi(i)}function js(n){n=X(n);const e=new Set;for(const t of n)for(const i of Up(t))e.add(i);return mi(e)}function Ml(n,e){const t=jt(n,{direction:"forward"}),i=qi.next();for(const r of t)e.setAttribute("listItemId",i,r);return t}function da(n,e,t){const i={};for(const[s,o]of e.getAttributes())s.startsWith("list")&&(i[s]=o);const r=jt(n,{direction:"forward"});for(const s of r)t.setAttributes(i,s);return r}function ha(n,e,{expand:t,indentBy:i=1}={}){n=X(n);const r=t?ar(n):n;for(const s of r){const o=s.getAttribute("listIndent")+i;o<0?Ws(s,e):e.setAttribute("listIndent",o,s)}return r}function L2(n,e){n=X(n);const t=ar(n),i=new Set,r=Math.min(...t.map(o=>o.getAttribute("listIndent"))),s=new Map;for(const o of t)s.set(o,Ze.first(o,{lowerIndent:!0}));for(const o of t){if(i.has(o))continue;i.add(o);const a=o.getAttribute("listIndent")-1;if(a<0){Ws(o,e);continue}if(o.getAttribute("listIndent")==r){const l=E2(o,s.get(o),e);for(const c of l)i.add(c);if(l.length)continue}e.setAttribute("listIndent",a,o)}return mi(i)}function Ws(n,e){n=X(n);for(const t of n)t.is("element","listItem")&&e.rename(t,"paragraph");for(const t of n)for(const i of t.getAttributeKeys())i.startsWith("list")&&e.removeAttribute(i,t);return n}function Zn(n){if(!n.length)return!1;const e=n[0].getAttribute("listItemId");return e?!n.some(t=>t.getAttribute("listItemId")!=e):!1}function T2(n,e){const t=[];let i=Number.POSITIVE_INFINITY;for(const{node:r}of new or(n.nextSibling)){const s=r.getAttribute("listIndent");if(s==0)break;s<i&&(i=s);const o=s-i;e.setAttribute("listIndent",o,r),t.push(r)}return t}function mi(n){return Array.from(n).filter(e=>e.root.rootName!=="$graveyard").sort((e,t)=>e.index-t.index)}function Jn(n){const e=n.document.selection.getSelectedElement();return e&&n.schema.isObject(e)&&n.schema.isBlock(e)?e:null}function Mo(n,e){return e.checkChild(n.parent,"listItem")&&e.checkChild(n,"$text")&&!e.isObject(n)}function xs(n){return n=="numbered"||n=="customNumbered"}function E2(n,e,t){return jt(e,{direction:"forward"}).pop().index>n.index?da(n,e,t):[]}class Wd extends N{_direction;constructor(e,t){super(e),this._direction=t}refresh(){this.isEnabled=this._checkEnabled()}execute(){const e=this.editor.model,t=qd(e.document.selection);e.change(i=>{const r=[];Zn(t)&&!oi(t[0])?(this._direction=="forward"&&r.push(...ha(t,i)),r.push(...Ml(t[0],i))):this._direction=="forward"?r.push(...ha(t,i,{expand:!0})):r.push(...L2(t,i));for(const s of r){if(!s.hasAttribute("listType"))continue;const o=Ze.first(s,{sameIndent:!0});o&&i.setAttribute("listType",o.getAttribute("listType"),s)}this._fireAfterExecute(r)})}_fireAfterExecute(e){this.fire("afterExecute",mi(new Set(e)))}_checkEnabled(){let e=qd(this.editor.model.document.selection),t=e[0];if(!t)return!1;if(this._direction=="backward"||Zn(e)&&!oi(e[0]))return!0;e=ar(e),t=e[0];const i=Ze.first(t,{sameIndent:!0});return i?i.getAttribute("listType")==t.getAttribute("listType"):!1}}function qd(n){const e=Array.from(n.getSelectedBlocks()),t=e.findIndex(i=>!ee(i));return t!=-1&&(e.length=t),e}class Ir extends N{type;_listWalkerOptions;constructor(e,t,i={}){super(e),this.type=t,this._listWalkerOptions=i.multiLevel?{higherIndent:!0,lowerIndent:!0,sameAttributes:[]}:void 0}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(e={}){const t=this.editor.model,i=t.document,r=Jn(t),s=Array.from(i.selection.getSelectedBlocks()).filter(a=>t.schema.checkAttribute(a,"listType")||Mo(a,t.schema)),o=e.forceValue!==void 0?!e.forceValue:this.value;t.change(a=>{if(o){const l=s[s.length-1],c=jt(l,{direction:"forward"}),u=[];c.length>1&&u.push(...Ml(c[1],a)),u.push(...Ws(s,a)),u.push(...T2(l,a)),this._fireAfterExecute(u)}else if((r||i.selection.isCollapsed)&&ee(s[0])){const l=Up(r||s[0],this._listWalkerOptions);for(const c of l)a.setAttributes({...e.additionalAttributes,listType:this.type},c);this._fireAfterExecute(l)}else{const l=[];for(const c of s)if(!c.hasAttribute("listType"))!c.is("element","listItem")&&Mo(c,t.schema)&&a.rename(c,"listItem"),a.setAttributes({...e.additionalAttributes,listIndent:0,listItemId:qi.next(),listType:this.type},c),l.push(c);else for(const u of ar(c,{withNested:!1}))u.getAttribute("listType")!=this.type&&(a.setAttributes({...e.additionalAttributes,listType:this.type},u),l.push(u));this._fireAfterExecute(l)}})}_fireAfterExecute(e){this.fire("afterExecute",mi(new Set(e)))}_getValue(){const e=this.editor.model.document.selection,t=Array.from(e.getSelectedBlocks());if(!t.length)return!1;for(const i of t)if(i.getAttribute("listType")!=this.type)return!1;return!0}_checkEnabled(){const e=this.editor.model,t=e.schema,i=e.document.selection,r=Array.from(i.getSelectedBlocks());if(!r.length)return!1;if(this.value)return!0;for(const s of r)if(t.checkAttribute(s,"listType")||Mo(s,t))return!0;return!1}}class $d extends N{_direction;constructor(e,t){super(e),this._direction=t}refresh(){this.isEnabled=this._checkEnabled()}execute({shouldMergeOnBlocksContentLevel:e=!1}={}){const t=this.editor.model,i=t.document.selection,r=[];t.change(s=>{const{firstElement:o,lastElement:a}=this._getMergeSubjectElements(i,e),l=o.getAttribute("listIndent")||0,c=a.getAttribute("listIndent"),u=a.getAttribute("listItemId");if(l!=c){const d=C2(a);r.push(...ha([a,...d],s,{indentBy:l-c,expand:l<c}))}if(e){let d=i;i.isCollapsed&&(d=s.createSelection(s.createRange(s.createPositionAt(o,"end"),s.createPositionAt(a,0)))),t.deleteContent(d,{doNotResetEntireContent:i.isCollapsed});const h=d.getLastPosition().parent,m=h.nextSibling;r.push(h),m&&m!==a&&m.getAttribute("listItemId")==u&&r.push(...da(m,h,s))}else r.push(...da(a,o,s));this._fireAfterExecute(r)})}_fireAfterExecute(e){this.fire("afterExecute",mi(new Set(e)))}_checkEnabled(){const e=this.editor.model,t=e.document.selection,i=Jn(e);if(t.isCollapsed||i){const r=i||t.getFirstPosition().parent;if(!ee(r))return!1;const s=this._direction=="backward"?r.previousSibling:r.nextSibling;if(!s||Zn([r,s]))return!1}else{const r=t.getLastPosition(),s=t.getFirstPosition();if(r.parent===s.parent||!ee(r.parent))return!1}return!0}_getMergeSubjectElements(e,t){const i=this.editor.model,r=Jn(i);let s,o;if(e.isCollapsed||r){const a=r||e.getFirstPosition().parent,l=oi(a);this._direction=="backward"?(o=a,l&&!t?s=Ze.first(a,{sameIndent:!0,lowerIndent:!0}):s=a.previousSibling):(s=a,o=a.nextSibling)}else s=e.getFirstPosition().parent,o=e.getLastPosition().parent;return{firstElement:s,lastElement:o}}}class Gd extends N{_direction;constructor(e,t){super(e),this._direction=t}refresh(){this.isEnabled=this._checkEnabled()}execute(){this.editor.model.change(t=>{const i=Ml(this._getStartBlock(),t);this._fireAfterExecute(i)})}_fireAfterExecute(e){this.fire("afterExecute",mi(new Set(e)))}_checkEnabled(){const e=this.editor.model.document.selection,t=this._getStartBlock();return e.isCollapsed&&ee(t)&&!oi(t)}_getStartBlock(){const t=this.editor.model.document.selection.getFirstPosition().parent;return this._direction=="before"?t:t.nextSibling}}class x2 extends k{static get pluginName(){return"ListUtils"}static get isOfficialPlugin(){return!0}expandListBlocksToCompleteList(e){return js(e)}isFirstBlockOfListItem(e){return oi(e)}isListItemBlock(e){return ee(e)}expandListBlocksToCompleteItems(e,t={}){return ar(e,t)}isNumberedListType(e){return xs(e)}}function S2(n){return n.is("element","ol")||n.is("element","ul")}function ma(n){return n.is("element","li")}function A2(n){let e=0,t=n.parent;for(;t;){if(ma(t))e++;else{const i=t.previousSibling;i&&ma(i)&&e++}t=t.parent}return e}function I2(n,e,t,i=jp(t,e)){return n.createAttributeElement(Hp(t),null,{priority:2*e/100-100,id:i})}function P2(n,e,t){return n.createAttributeElement("li",null,{priority:(2*e+1)/100-100,id:t})}function Hp(n){return n=="numbered"||n=="customNumbered"?"ol":"ul"}function jp(n,e){return`list-${n}-${e}`}function et(n,e,t){const i=n.nodeBefore;if(ee(i)){let r=i;for(const{node:s}of new or(r,"backward"))if(r=s,t.has(r)||(t.add(r),e.has(i)))return;e.add(r)}else{const r=n.nodeAfter;ee(r)&&e.add(r)}}function R2(n,e){let t=0,i=-1,r=null,s=!1;for(const{node:o}of n){const a=o.getAttribute("listIndent");if(a>t){let l;r===null?(r=a-t,l=t):(r>a&&(r=a),l=a-r),l>i+1&&(l=i+1),e.setAttribute("listIndent",l,o),s=!0,i=l}else r=null,t=a+1,i=a}return s}function M2(n,e,t){const i=new Set;let r=!1;for(const{node:s}of n){if(i.has(s))continue;let o=s.getAttribute("listType"),a=s.getAttribute("listItemId");if(e.has(a)&&(a=qi.next()),e.add(a),s.is("element","listItem")){s.getAttribute("listItemId")!=a&&(t.setAttribute("listItemId",a,s),r=!0);continue}for(const l of jt(s,{direction:"forward"}))i.add(l),l.getAttribute("listType")!=o&&(a=qi.next(),o=l.getAttribute("listType")),l.getAttribute("listItemId")!=a&&(t.setAttribute("listItemId",a,l),r=!0)}return r}function B2(){return(n,e,t)=>{const{writer:i,schema:r}=t;if(!e.modelRange)return;const s=Array.from(e.modelRange.getItems({shallow:!0})).filter(d=>r.checkAttribute(d,"listItemId"));if(!s.length)return;const o=qi.next(),a=A2(e.viewItem);let l=e.viewItem.parent&&e.viewItem.parent.is("element","ol")?"numbered":"bulleted";const c=s[0].getAttribute("listType");c&&(l=c);const u={listItemId:o,listIndent:a,listType:l};for(const d of s)d.hasAttribute("listItemId")||i.setAttributes(u,d);s.length>1&&s[1].getAttribute("listItemId")!=u.listItemId&&t.keepEmptyElement(s[0])}}function V2(n,e,t,i){return()=>{const a=n.document.differ.getChanges(),l=[],c=new Set,u=new Set,d=new Set;for(const h of a)if(h.type=="insert"&&h.name!="$text")et(h.position,c,d),h.attributes.has("listItemId")?u.add(h.position.nodeAfter):et(h.position.getShiftedBy(h.length),c,d);else if(h.type=="remove"&&h.attributes.has("listItemId"))et(h.position,c,d);else if(h.type=="attribute"){const m=h.range.start.nodeAfter;t.includes(h.attributeKey)?(et(h.range.start,c,d),h.attributeNewValue===null?(et(h.range.start.getShiftedBy(1),c,d),s(m)&&l.push(m)):u.add(m)):ee(m)&&s(m)&&l.push(m)}for(const h of c.values())l.push(...r(h,u));for(const h of new Set(l))e.reconvertItem(h)};function r(a,l){const c=[],u=new Set,d=[];for(const{node:h,previous:m}of new or(a)){if(u.has(h))continue;const g=h.getAttribute("listIndent");m&&g<m.getAttribute("listIndent")&&(d.length=g+1),d[g]=Object.fromEntries(Array.from(h.getAttributes()).filter(([b])=>t.includes(b)));const f=jt(h,{direction:"forward"});for(const b of f)u.add(b),(s(b,f)||o(b,d,l))&&c.push(b)}return c}function s(a,l){const c=e.mapper.toViewElement(a);if(!c)return!1;if(i.fire("checkElement",{modelElement:a,viewElement:c}))return!0;if(!a.is("element","paragraph")&&!a.is("element","listItem"))return!1;const d=qp(a,t,l);return d&&c.is("element","p")?!0:!!(!d&&c.is("element","span"))}function o(a,l,c){if(c.has(a))return!1;const u=e.mapper.toViewElement(a);let d=l.length-1;for(let h=u.parent;!h.is("editableElement");h=h.parent){const m=ma(h),g=S2(h);if(!g&&!m)continue;const f=`checkAttributes:${m?"item":"list"}`;if(i.fire(f,{viewElement:h,modelAttributes:l[d]}))break;if(g&&(d--,d<0))return!1}return!0}}function Kd(n,e,t,{dataPipeline:i}={}){const r=H2(n);return(s,o,a)=>{const{writer:l,mapper:c,consumable:u}=a,d=o.item;if(!n.includes(o.attributeKey)||!r(d,u))return;const h=O2(d,c,t);Wp(h,l,c),F2(h,l);const m=z2(d,h,e,l,{dataPipeline:i});U2(d,m,e,l)}}function N2(n){return(e,t,i)=>{const{writer:r,mapper:s}=i,o=e.name.split(":")[1];if(!n.checkAttribute(o,"listItemId"))return;const a=s.toViewPosition(t.position),l=t.position.getShiftedBy(t.length),c=s.toViewPosition(l,{isPhantom:!0}),d=r.createRange(a,c).getTrimmed().end.nodeBefore;d&&Wp(d,r,s)}}function Zd(n,{dataPipeline:e}={}){return(t,{writer:i})=>{if(!qp(t,n))return null;if(!e)return i.createContainerElement("span",{class:"ck-list-bogus-paragraph"});const r=i.createContainerElement("p");return i.setCustomProperty("dataPipeline:transparentRendering",!0,r),r}}function O2(n,e,t){const i=t.createRangeOn(n);return e.toViewRange(i).getTrimmed().end.nodeBefore}function D2(n,e){return(t,i)=>{if(i.modelPosition.offset>0)return;const r=i.modelPosition.parent;if(!ee(r)||!n.some(c=>c.scope=="itemMarker"&&c.canInjectMarkerIntoElement&&c.canInjectMarkerIntoElement(r)))return;const s=i.mapper.toViewElement(r),o=e.createRangeIn(s),a=o.getWalker();let l=o.start;for(const{item:c}of a){if(c.is("element")&&i.mapper.toModelElement(c)||c.is("$textProxy"))break;c.is("element")&&c.getCustomProperty("listItemMarker")&&(l=e.createPositionAfter(c),a.skip(({previousPosition:u})=>!u.isEqual(l)))}i.viewPosition=l}}function Wp(n,e,t){for(;n.parent.is("attributeElement")&&n.parent.getCustomProperty("listItemWrapper");)e.unwrap(e.createRangeOn(n),n.parent);const i=[];r(e.createPositionBefore(n).getWalker({direction:"backward"})),r(e.createRangeIn(n).getWalker());for(const s of i)e.remove(s);function r(s){for(const{item:o}of s){if(o.is("element")&&t.toModelElement(o))break;o.is("element")&&o.getCustomProperty("listItemMarker")&&i.push(o)}}}function z2(n,e,t,i,{dataPipeline:r}){let s=i.createRangeOn(e);if(!oi(n))return s;for(const o of t){if(o.scope!="itemMarker")continue;const a=o.createElement(i,n,{dataPipeline:r});if(!a||(i.setCustomProperty("listItemMarker",!0,a),o.canInjectMarkerIntoElement&&o.canInjectMarkerIntoElement(n)?i.insert(i.createPositionAt(e,0),a):(i.insert(s.start,a),s=i.createRange(i.createPositionBefore(a),i.createPositionAfter(e))),!o.createWrapperElement||!o.canWrapElement))continue;const l=o.createWrapperElement(i,n,{dataPipeline:r});i.setCustomProperty("listItemWrapper",!0,l),o.canWrapElement(n)?s=i.wrap(s,l):(s=i.wrap(i.createRangeOn(a),l),s=i.createRange(s.start,i.createPositionAfter(e)))}return s}function F2(n,e){let t=n.parent;for(;t.is("attributeElement")&&["ul","ol","li"].includes(t.name);){const i=t.parent;e.unwrap(e.createRangeOn(n),t),t=i}}function U2(n,e,t,i){if(!n.hasAttribute("listIndent"))return;const r=n.getAttribute("listIndent");let s=n;for(let o=r;o>=0;o--){const a=P2(i,o,s.getAttribute("listItemId")),l=I2(i,o,s.getAttribute("listType"));for(const c of t)(c.scope=="list"||c.scope=="item")&&s.hasAttribute(c.attributeName)&&c.setAttributeOnDowncast(i,s.getAttribute(c.attributeName),c.scope=="list"?l:a);if(e=i.wrap(e,a),e=i.wrap(e,l),o==0||(s=Ze.first(s,{lowerIndent:!0}),!s))break}}function H2(n){return(e,t)=>{const i=[];for(const r of n)e.hasAttribute(r)&&i.push(`attribute:${r}`);return i.every(r=>t.test(e,r)!==!1)?(i.forEach(r=>t.consume(e,r)),!0):!1}}function qp(n,e,t=Rl(n)){if(!ee(n))return!1;for(const i of n.getAttributeKeys())if(!(i.startsWith("selection:")||i=="htmlEmptyBlock")&&!e.includes(i))return!1;return t.length<2}const $r=["listType","listIndent","listItemId"];class ga extends k{_downcastStrategies=[];static get pluginName(){return"ListEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[Us,Xi,x2,Ke]}constructor(e){super(e),e.config.define("list.multiBlock",!0)}init(){const e=this.editor,t=e.model,i=e.config.get("list.multiBlock");if(e.plugins.has("LegacyListEditing"))throw new p("list-feature-conflict",this,{conflictPlugin:"LegacyListEditing"});t.schema.register("$listItem",{allowAttributes:$r}),i?(t.schema.extend("$container",{allowAttributesOf:"$listItem"}),t.schema.extend("$block",{allowAttributesOf:"$listItem"}),t.schema.extend("$blockObject",{allowAttributesOf:"$listItem"})):t.schema.register("listItem",{inheritAllFrom:"$block",allowAttributesOf:"$listItem"});for(const r of $r)t.schema.setAttributeProperties(r,{copyOnReplace:!0});e.commands.add("numberedList",new Ir(e,"numbered")),e.commands.add("bulletedList",new Ir(e,"bulleted")),e.commands.add("customNumberedList",new Ir(e,"customNumbered",{multiLevel:!0})),e.commands.add("customBulletedList",new Ir(e,"customBulleted",{multiLevel:!0})),e.commands.add("indentList",new Wd(e,"forward")),e.commands.add("outdentList",new Wd(e,"backward")),e.commands.add("splitListItemBefore",new Gd(e,"before")),e.commands.add("splitListItemAfter",new Gd(e,"after")),i&&(e.commands.add("mergeListItemBackward",new $d(e,"backward")),e.commands.add("mergeListItemForward",new $d(e,"forward"))),this._setupDeleteIntegration(),this._setupEnterIntegration(),this._setupTabIntegration(),this._setupClipboardIntegration(),this._setupAccessibilityIntegration()}afterInit(){const t=this.editor.commands,i=t.get("indent"),r=t.get("outdent");i&&i.registerChildCommand(t.get("indentList"),{priority:"high"}),r&&r.registerChildCommand(t.get("outdentList"),{priority:"lowest"}),this._setupModelPostFixing(),this._setupConversion()}registerDowncastStrategy(e){this._downcastStrategies.push(e)}getListAttributeNames(){return[...$r,...this._downcastStrategies.map(e=>e.attributeName)]}_setupDeleteIntegration(){const e=this.editor,t=e.commands.get("mergeListItemBackward"),i=e.commands.get("mergeListItemForward");this.listenTo(e.editing.view.document,"delete",(r,s)=>{const o=e.model.document.selection;Jn(e.model)||e.model.change(()=>{const a=o.getFirstPosition();if(o.isCollapsed&&s.direction=="backward"){if(!a.isAtStart)return;const l=a.parent;if(!ee(l))return;if(!Ze.first(l,{sameAttributes:"listType",sameIndent:!0})&&l.getAttribute("listIndent")===0)jd(l)||e.execute("splitListItemAfter"),e.execute("outdentList");else{if(!t||!t.isEnabled)return;t.execute({shouldMergeOnBlocksContentLevel:Jd(e.model,"backward")})}s.preventDefault(),r.stop()}else{if(o.isCollapsed&&!o.getLastPosition().isAtEnd||!i||!i.isEnabled)return;i.execute({shouldMergeOnBlocksContentLevel:Jd(e.model,"forward")}),s.preventDefault(),r.stop()}})},{context:"li"})}_setupEnterIntegration(){const e=this.editor,t=e.model,i=e.commands,r=i.get("enter");this.listenTo(e.editing.view.document,"enter",(s,o)=>{const a=t.document,l=a.selection.getFirstPosition().parent;if(a.selection.isCollapsed&&ee(l)&&l.isEmpty&&!o.isSoft){const c=oi(l),u=jd(l);c&&u?(e.execute("outdentList"),o.preventDefault(),s.stop()):c&&!u?(e.execute("splitListItemAfter"),o.preventDefault(),s.stop()):u&&(e.execute("splitListItemBefore"),o.preventDefault(),s.stop())}},{context:"li"}),this.listenTo(r,"afterExecute",()=>{const s=i.get("splitListItemBefore");if(s.refresh(),!s.isEnabled)return;const a=e.model.document.selection.getLastPosition().parent;Rl(a).length===2&&s.execute()})}_setupTabIntegration(){const e=this.editor;this.listenTo(e.editing.view.document,"tab",(t,i)=>{const r=i.shiftKey?"outdentList":"indentList";this.editor.commands.get(r).isEnabled&&(e.execute(r),i.stopPropagation(),i.preventDefault(),t.stop())},{context:"li"})}_setupConversion(){const e=this.editor,t=e.model,i=this.getListAttributeNames(),r=e.config.get("list.multiBlock"),s=r?"paragraph":"listItem";e.conversion.for("upcast").elementToElement({view:"li",model:(a,{writer:l})=>l.createElement(s,{listType:""})}).elementToElement({view:"p",model:(a,{writer:l})=>a.parent&&a.parent.is("element","li")?l.createElement(s,{listType:""}):null,converterPriority:"high"}).add(a=>{a.on("element:li",B2())}),r||e.conversion.for("downcast").elementToElement({model:"listItem",view:"p"}),e.conversion.for("editingDowncast").elementToElement({model:s,view:Zd(i),converterPriority:"high"}).add(a=>{a.on("attribute",Kd(i,this._downcastStrategies,t)),a.on("remove",N2(t.schema))}),e.conversion.for("dataDowncast").elementToElement({model:s,view:Zd(i,{dataPipeline:!0}),converterPriority:"high"}).add(a=>{a.on("attribute",Kd(i,this._downcastStrategies,t,{dataPipeline:!0}))});const o=D2(this._downcastStrategies,e.editing.view);e.editing.mapper.on("modelToViewPosition",o),e.data.mapper.on("modelToViewPosition",o),this.listenTo(t.document,"change:data",V2(t,e.editing,i,this),{priority:"high"}),this.on("checkAttributes:item",(a,{viewElement:l,modelAttributes:c})=>{l.id!=c.listItemId&&(a.return=!0,a.stop())}),this.on("checkAttributes:list",(a,{viewElement:l,modelAttributes:c})=>{(l.name!=Hp(c.listType)||l.id!=jp(c.listType,c.listIndent))&&(a.return=!0,a.stop())})}_setupModelPostFixing(){const e=this.editor.model,t=this.getListAttributeNames();e.document.registerPostFixer(i=>j2(e,i,t,this)),this.on("postFixer",(i,{listNodes:r,writer:s})=>{i.return=R2(r,s)||i.return},{priority:"high"}),this.on("postFixer",(i,{listNodes:r,writer:s,seenIds:o})=>{i.return=M2(r,o,s)||i.return},{priority:"high"})}_setupClipboardIntegration(){const e=this.editor.model,t=this.editor.plugins.get("ClipboardPipeline");this.listenTo(e,"insertContent",W2(e),{priority:"high"}),this.listenTo(t,"outputTransformation",(i,r)=>{e.change(s=>{const o=Array.from(r.content.getChildren()),a=o[o.length-1];if(o.length>1&&a.is("element")&&a.isEmpty&&o.slice(0,-1).every(ee)&&s.remove(a),r.method=="copy"||r.method=="cut"){const l=Array.from(r.content.getChildren());Zn(l)&&Ws(l,s)}})})}_setupAccessibilityIntegration(){const e=this.editor,t=e.t;e.accessibility.addKeystrokeInfoGroup({id:"list",label:t("Keystrokes that can be used in a list"),keystrokes:[{label:t("Increase list item indent"),keystroke:"Tab"},{label:t("Decrease list item indent"),keystroke:"Shift+Tab"}]})}}function j2(n,e,t,i){const r=n.document.differ.getChanges(),s=new Set,o=new Set,a=i.editor.config.get("list.multiBlock");let l=!1;for(const u of r){if(u.type=="insert"&&u.name!="$text"){const d=u.position.nodeAfter;if(!n.schema.checkAttribute(d,"listItemId"))for(const h of Array.from(d.getAttributeKeys()))t.includes(h)&&(e.removeAttribute(h,d),l=!0);et(u.position,o,s),u.attributes.has("listItemId")||et(u.position.getShiftedBy(u.length),o,s);for(const{item:h,previousPosition:m}of n.createRangeIn(d))ee(h)&&et(m,o,s)}else u.type=="remove"?et(u.position,o,s):u.type=="attribute"&&t.includes(u.attributeKey)&&(et(u.range.start,o,s),u.attributeNewValue===null&&et(u.range.start.getShiftedBy(1),o,s));if(!a&&u.type=="attribute"&&$r.includes(u.attributeKey)){const d=u.range.start.nodeAfter;u.attributeNewValue===null&&d&&d.is("element","listItem")?(e.rename(d,"paragraph"),l=!0):u.attributeOldValue===null&&d&&d.is("element")&&d.name!="listItem"&&(e.rename(d,"listItem"),l=!0)}}const c=new Set;for(const u of o.values())l=i.fire("postFixer",{listNodes:new _2(u),listHead:u,writer:e,seenIds:c})||l;return l}function W2(n){return(e,[t,i])=>{const r=t.is("documentFragment")?Array.from(t.getChildren()):[t];if(!r.length)return;const o=(i?n.createSelection(i):n.document.selection).getFirstPosition();let a;if(ee(o.parent))a=o.parent;else if(ee(o.nodeBefore)&&ee(o.nodeAfter))a=o.nodeBefore;else return;n.change(l=>{const c=a.getAttribute("listType"),u=a.getAttribute("listIndent"),d=r[0].getAttribute("listIndent")||0,h=Math.max(u-d,0);for(const m of r){const g=ee(m);a.is("element","listItem")&&m.is("element","paragraph")&&l.rename(m,"listItem"),l.setAttributes({listIndent:(g?m.getAttribute("listIndent"):0)+h,listItemId:g?m.getAttribute("listItemId"):qi.next(),listType:c},m)}})}}function Jd(n,e){const t=n.document.selection;if(!t.isCollapsed)return!Jn(n);if(e==="forward")return!0;const r=t.getFirstPosition().parent,s=r.previousSibling;return n.schema.isObject(s)?!1:s.isEmpty?!0:Zn([r,s])}function Yd(n,e,t,i){n.ui.componentFactory.add(e,()=>{const r=Xd(P,n,e,t,i);return r.set({tooltip:!0,isToggleable:!0}),r}),n.ui.componentFactory.add(`menuBar:${e}`,()=>{const r=Xd(ke,n,e,t,i);return r.set({role:"menuitemcheckbox",isToggleable:!0}),r})}function Xd(n,e,t,i,r){const s=e.commands.get(t),o=new n(e.locale);return o.set({label:i,icon:r}),o.bind("isOn","isEnabled").to(s,"value","isEnabled"),o.on("execute",()=>{e.execute(t),e.editing.view.focus()}),o}class q2 extends k{static get pluginName(){return"ListUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor.t;this.editor.ui.componentFactory.has("numberedList")||Yd(this.editor,"numberedList",e("Numbered List"),dl),this.editor.ui.componentFactory.has("bulletedList")||Yd(this.editor,"bulletedList",e("Bulleted List"),ul)}}class $2 extends k{static get requires(){return[ga,q2]}static get pluginName(){return"List"}static get isOfficialPlugin(){return!0}}class G2 extends N{refresh(){const e=this._getValue();this.value=e,this.isEnabled=e!=null}execute({startIndex:e=1}={}){const t=this.editor.model,i=t.document;let r=Array.from(i.selection.getSelectedBlocks()).filter(s=>ee(s)&&xs(s.getAttribute("listType")));r=js(r),t.change(s=>{for(const o of r)s.setAttribute("listStart",e>=0?e:1,o)})}_getValue(){const t=this.editor.model.document,i=ce(t.selection.getSelectedBlocks());return i&&ee(i)&&xs(i.getAttribute("listType"))?i.getAttribute("listStart"):null}}const $p={},Gp={},Kp={},Zp=[{listStyle:"disc",typeAttribute:"disc",listType:"bulleted"},{listStyle:"circle",typeAttribute:"circle",listType:"bulleted"},{listStyle:"square",typeAttribute:"square",listType:"bulleted"},{listStyle:"decimal",typeAttribute:"1",listType:"numbered"},{listStyle:"decimal-leading-zero",typeAttribute:null,listType:"numbered"},{listStyle:"lower-roman",typeAttribute:"i",listType:"numbered"},{listStyle:"upper-roman",typeAttribute:"I",listType:"numbered"},{listStyle:"lower-alpha",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-alpha",typeAttribute:"A",listType:"numbered"},{listStyle:"lower-latin",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-latin",typeAttribute:"A",listType:"numbered"}];for(const{listStyle:n,typeAttribute:e,listType:t}of Zp)$p[n]=t,Gp[n]=e,e&&(Kp[e]=n);function Jp(){return Zp.map(n=>n.listStyle)}function Bl(n){return $p[n]||null}function Yp(n){return Kp[n]||null}function fa(n){return Gp[n]||null}function K2(n){switch(n){case"lower-alpha":return"lower-latin";case"upper-alpha":return"upper-latin";default:return n}}class Z2 extends N{defaultType;_supportedTypes;constructor(e,t,i){super(e),this.defaultType=t,this._supportedTypes=i}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(e={}){const t=this.editor.model,i=t.document;t.change(r=>{this._tryToConvertItemsToList(e);let s=Array.from(i.selection.getSelectedBlocks()).filter(o=>o.hasAttribute("listType"));if(s.length){s=js(s);for(const o of s)r.setAttribute("listStyle",e.type||this.defaultType,o)}})}isStyleTypeSupported(e){return this._supportedTypes?this._supportedTypes.includes(e):!0}_getValue(){const e=ce(this.editor.model.document.selection.getSelectedBlocks());return ee(e)?e.getAttribute("listStyle"):null}_checkEnabled(){const e=this.editor,t=e.commands.get("numberedList"),i=e.commands.get("bulletedList");return t.isEnabled||i.isEnabled}_tryToConvertItemsToList(e){if(!e.type)return;const t=Bl(e.type);if(!t)return;const i=this.editor,r=`${t}List`;i.commands.get(r).value||i.execute(r)}}class J2 extends N{refresh(){const e=this._getValue();this.value=e,this.isEnabled=e!=null}execute(e={}){const t=this.editor.model,i=t.document;let r=Array.from(i.selection.getSelectedBlocks()).filter(s=>ee(s)&&s.getAttribute("listType")=="numbered");r=js(r),t.change(s=>{for(const o of r)s.setAttribute("listReversed",!!e.reversed,o)})}_getValue(){const t=this.editor.model.document,i=ce(t.selection.getSelectedBlocks());return ee(i)&&i.getAttribute("listType")=="numbered"?i.getAttribute("listReversed"):null}}function Qd(n){return(e,t,i)=>{const{writer:r,schema:s,consumable:o}=i;if(o.test(t.viewItem,n.viewConsumables)===!1)return;t.modelRange||Object.assign(t,i.convertChildren(t.viewItem,t.modelCursor));let a=!1;for(const l of t.modelRange.getItems({shallow:!0}))s.checkAttribute(l,n.attributeName)&&n.appliesToListItem(l)&&(l.hasAttribute(n.attributeName)||(r.setAttribute(n.attributeName,n.getAttributeOnUpcast(t.viewItem),l),a=!0));a&&o.consume(t.viewItem,n.viewConsumables)}}class Y2 extends k{static get pluginName(){return"ListPropertiesUtils"}static get isOfficialPlugin(){return!0}getAllSupportedStyleTypes(){return Jp()}getListTypeFromListStyleType(e){return Bl(e)}getListStyleTypeFromTypeAttribute(e){return Yp(e)}getTypeAttributeFromListStyleType(e){return fa(e)}}function Xp(n){const{startIndex:e,reversed:t,styles:i}=n;return{styles:X2(i),startIndex:e||!1,reversed:t||!1}}function X2(n){const e={listTypes:["bulleted","numbered"],useAttribute:!1};return n===!0||(n?Array.isArray(n)||typeof n=="string"?e.listTypes=X(n):(e.listTypes=n.listTypes?X(n.listTypes):e.listTypes,e.useAttribute=!!n.useAttribute,n.listStyleTypes&&(e.listStyleTypes=n.listStyleTypes)):e.listTypes=[]),e}const gn="default";class Q2 extends k{static get requires(){return[ga,Y2]}static get pluginName(){return"ListPropertiesEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("list.properties",{styles:!0,startIndex:!1,reversed:!1})}init(){const e=this.editor,t=e.model,i=e.plugins.get(ga),r=e.config.get("list.properties"),s=eR(r);for(const o of s)o.addCommand(e),t.schema.extend("$listItem",{allowAttributes:o.attributeName}),i.registerDowncastStrategy({scope:"list",attributeName:o.attributeName,setAttributeOnDowncast(a,l,c){o.setAttributeOnDowncast(a,l,c)}});e.conversion.for("upcast").add(o=>{for(const a of s)o.on("element:ol",Qd(a)),o.on("element:ul",Qd(a))}),i.on("checkAttributes:list",(o,{viewElement:a,modelAttributes:l})=>{for(const c of s)c.getAttributeOnUpcast(a)!=l[c.attributeName]&&(o.return=!0,o.stop())}),this.listenTo(e.commands.get("indentList"),"afterExecute",(o,a)=>{t.change(l=>{for(const c of a)for(const u of s)u.appliesToListItem(c)&&l.setAttribute(u.attributeName,u.defaultValue,c)})}),i.on("postFixer",(o,{listNodes:a,writer:l})=>{for(const{node:c}of a)for(const u of s)u.hasValidAttribute(c)||(u.appliesToListItem(c)?l.setAttribute(u.attributeName,u.defaultValue,c):l.removeAttribute(u.attributeName,c),o.return=!0)}),i.on("postFixer",(o,{listNodes:a,writer:l})=>{for(const{node:c,previousNodeInList:u}of a)if(u&&u.getAttribute("listType")==c.getAttribute("listType"))for(const d of s){const{attributeName:h}=d;if(!d.appliesToListItem(c))continue;const m=u.getAttribute(h);c.getAttribute(h)!=m&&(l.setAttribute(h,m,c),o.return=!0)}})}}function eR(n){const e=[],t=Xp(n);if(n.styles){const i=t.styles.useAttribute;e.push({attributeName:"listStyle",defaultValue:gn,viewConsumables:{styles:"list-style-type"},addCommand(r){let s=Jp();i&&(s=s.filter(o=>!!fa(o))),r.commands.add("listStyle",new Z2(r,gn,s))},appliesToListItem(r){return r.getAttribute("listType")=="numbered"||r.getAttribute("listType")=="bulleted"},hasValidAttribute(r){if(!this.appliesToListItem(r))return!r.hasAttribute("listStyle");if(!r.hasAttribute("listStyle"))return!1;const s=r.getAttribute("listStyle");return s==gn?!0:Bl(s)==r.getAttribute("listType")},setAttributeOnDowncast(r,s,o){if(s&&s!==gn)if(i){const a=fa(s);if(a){r.setAttribute("type",a,o);return}}else{r.setStyle("list-style-type",s,o);return}r.removeStyle("list-style-type",o),r.removeAttribute("type",o)},getAttributeOnUpcast(r){const s=r.getStyle("list-style-type");if(s)return K2(s);const o=r.getAttribute("type");return o?Yp(o):gn}})}return n.reversed&&e.push({attributeName:"listReversed",defaultValue:!1,viewConsumables:{attributes:"reversed"},addCommand(i){i.commands.add("listReversed",new J2(i))},appliesToListItem(i){return i.getAttribute("listType")=="numbered"},hasValidAttribute(i){return this.appliesToListItem(i)==i.hasAttribute("listReversed")},setAttributeOnDowncast(i,r,s){r?i.setAttribute("reversed","reversed",s):i.removeAttribute("reversed",s)},getAttributeOnUpcast(i){return i.hasAttribute("reversed")}}),n.startIndex&&e.push({attributeName:"listStart",defaultValue:1,viewConsumables:{attributes:"start"},addCommand(i){i.commands.add("listStart",new G2(i))},appliesToListItem(i){return xs(i.getAttribute("listType"))},hasValidAttribute(i){return this.appliesToListItem(i)==i.hasAttribute("listStart")},setAttributeOnDowncast(i,r,s){r==0||r>1?i.setAttribute("start",r,s):i.removeAttribute("start",s)},getAttributeOnUpcast(i){const r=i.getAttribute("start");return r>=0?r:1}}),e}class Qp extends S{children;stylesView=null;additionalPropertiesCollapsibleView=null;startIndexFieldView=null;reversedSwitchButtonView=null;focusTracker=new te;keystrokes=new re;focusables=new pe;focusCycler;constructor(e,{enabledProperties:t,styleButtonViews:i,styleGridAriaLabel:r}){super(e);const s=["ck","ck-list-properties"];this.children=this.createCollection(),this.focusCycler=new xe({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),i&&i.length?(this.stylesView=this._createStylesView(i,r),this.children.add(this.stylesView)):s.push("ck-list-properties_without-styles"),(t.startIndex||t.reversed)&&(this._addNumberedListPropertyViews(t),s.push("ck-list-properties_with-numbered-properties")),this.setTemplate({tag:"div",attributes:{class:s},children:this.children})}render(){if(super.render(),this.stylesView){this.focusables.add(this.stylesView),this.focusTracker.add(this.stylesView.element),(this.startIndexFieldView||this.reversedSwitchButtonView)&&(this.focusables.add(this.children.last.buttonView),this.focusTracker.add(this.children.last.buttonView.element));for(const e of this.stylesView.children)this.stylesView.focusTracker.add(e.element);bl({keystrokeHandler:this.stylesView.keystrokes,focusTracker:this.stylesView.focusTracker,gridItems:this.stylesView.children,numberOfColumns:()=>E.window.getComputedStyle(this.stylesView.element).getPropertyValue("grid-template-columns").split(" ").length,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection})}if(this.startIndexFieldView){this.focusables.add(this.startIndexFieldView),this.focusTracker.add(this.startIndexFieldView.element);const e=t=>t.stopPropagation();this.keystrokes.set("arrowright",e),this.keystrokes.set("arrowleft",e),this.keystrokes.set("arrowup",e),this.keystrokes.set("arrowdown",e)}this.reversedSwitchButtonView&&(this.focusables.add(this.reversedSwitchButtonView),this.focusTracker.add(this.reversedSwitchButtonView.element)),this.keystrokes.listenTo(this.element)}focus(){this.focusCycler.focusFirst()}focusLast(){this.focusCycler.focusLast()}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createStylesView(e,t){const i=new S(this.locale);return i.children=i.createCollection(),i.children.addMany(e),i.setTemplate({tag:"div",attributes:{"aria-label":t,class:["ck","ck-list-styles-list"]},children:i.children}),i.children.delegate("execute").to(this),i.focus=function(){for(const r of this.children)if(r instanceof P&&r.isOn){r.focus();return}this.children.first.focus()},i.focusTracker=new te,i.keystrokes=new re,i.render(),i.keystrokes.listenTo(i.element),i}_addNumberedListPropertyViews(e){const t=this.locale.t,i=[];e.startIndex&&(this.startIndexFieldView=this._createStartIndexField(),i.push(this.startIndexFieldView)),e.reversed&&(this.reversedSwitchButtonView=this._createReversedSwitchButton(),i.push(this.reversedSwitchButtonView)),this.stylesView?(this.additionalPropertiesCollapsibleView=new xf(this.locale,i),this.additionalPropertiesCollapsibleView.set({label:t("List properties"),isCollapsed:!0}),this.additionalPropertiesCollapsibleView.buttonView.bind("isEnabled").toMany(i,"isEnabled",(...r)=>r.some(s=>s)),this.additionalPropertiesCollapsibleView.buttonView.on("change:isEnabled",(r,s,o)=>{o||(this.additionalPropertiesCollapsibleView.isCollapsed=!0)}),this.children.add(this.additionalPropertiesCollapsibleView)):this.children.addMany(i)}_createStartIndexField(){const e=this.locale.t,t=new ue(this.locale,Df);return t.set({label:e("Start at"),class:"ck-numbered-list-properties__start-index"}),t.fieldView.set({min:0,step:1,value:1,inputMode:"numeric"}),t.fieldView.on("input",()=>{const i=t.fieldView.element,r=i.valueAsNumber;if(Number.isNaN(r)){t.errorText=e("Invalid start index value.");return}i.checkValidity()?this.fire("listStart",{startIndex:r}):t.errorText=e("Start index must be greater than 0.")}),t}_createReversedSwitchButton(){const e=this.locale.t,t=new er(this.locale);return t.set({withText:!0,label:e("Reversed order"),class:"ck-numbered-list-properties__reversed-order"}),t.delegate("execute").to(this,"listReversed"),t}}class tR extends k{static get pluginName(){return"ListPropertiesUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.locale.t,i=e.config.get("list.properties"),r=Xp(i),s=r.styles.listTypes;if(s.includes("bulleted")){const o=[{label:t("Toggle the disc list style"),tooltip:t("Disc"),type:"disc",icon:dT},{label:t("Toggle the circle list style"),tooltip:t("Circle"),type:"circle",icon:lT},{label:t("Toggle the square list style"),tooltip:t("Square"),type:"square",icon:gT}],a=t("Bulleted List"),l=t("Bulleted list styles toolbar"),c="bulletedList";e.ui.componentFactory.add(c,eh({editor:e,normalizedConfig:r,parentCommandName:c,buttonLabel:a,buttonIcon:ul,styleGridAriaLabel:l,styleDefinitions:o})),e.ui.componentFactory.add(`menuBar:${c}`,th({editor:e,normalizedConfig:r,parentCommandName:c,buttonLabel:a,styleGridAriaLabel:l,styleDefinitions:o}))}if(s.includes("numbered")||i.startIndex||i.reversed){const o=[{label:t("Toggle the decimal list style"),tooltip:t("Decimal"),type:"decimal",icon:uT},{label:t("Toggle the decimal with leading zero list style"),tooltip:t("Decimal with leading zero"),type:"decimal-leading-zero",icon:cT},{label:t("Toggle the lower–roman list style"),tooltip:t("Lower–roman"),type:"lower-roman",icon:mT},{label:t("Toggle the upper–roman list style"),tooltip:t("Upper-roman"),type:"upper-roman",icon:pT},{label:t("Toggle the lower–latin list style"),tooltip:t("Lower-latin"),type:"lower-latin",icon:hT},{label:t("Toggle the upper–latin list style"),tooltip:t("Upper-latin"),type:"upper-latin",icon:fT}],a=t("Numbered List"),l=t("Numbered list styles toolbar"),c="numberedList";e.ui.componentFactory.add(c,eh({editor:e,normalizedConfig:r,parentCommandName:c,buttonLabel:a,buttonIcon:dl,styleGridAriaLabel:l,styleDefinitions:o})),s.includes("numbered")&&e.ui.componentFactory.add(`menuBar:${c}`,th({editor:e,normalizedConfig:r,parentCommandName:c,buttonLabel:a,styleGridAriaLabel:l,styleDefinitions:o}))}}}function eh({editor:n,normalizedConfig:e,parentCommandName:t,buttonLabel:i,buttonIcon:r,styleGridAriaLabel:s,styleDefinitions:o}){const a=n.commands.get(t);return l=>{const c=Fe(l,tr),u=c.buttonView;return c.bind("isEnabled").to(a),c.class="ck-list-styles-dropdown",u.on("execute",()=>{n.execute(t),n.editing.view.focus()}),u.set({label:i,icon:r,tooltip:!0,isToggleable:!0}),u.bind("isOn").to(a,"value",d=>!!d),c.once("change:isOpen",()=>{const d=iR({editor:n,normalizedConfig:e,dropdownView:c,parentCommandName:t,styleGridAriaLabel:s,styleDefinitions:o});c.panelView.children.add(d)}),c.on("execute",()=>{n.editing.view.focus()}),c}}function eb({editor:n,listStyleCommand:e,parentCommandName:t}){const i=n.locale,r=n.commands.get(t);return({label:s,type:o,icon:a,tooltip:l})=>{const c=new P(i);return c.set({label:s,icon:a,tooltip:l}),c.bind("isOn").to(e,"value",u=>u===o),c.on("execute",()=>{r.value?e.value===o?n.execute(t):e.value!==o&&n.execute("listStyle",{type:o}):n.model.change(()=>{n.execute("listStyle",{type:o})})}),c}}function iR({editor:n,normalizedConfig:e,dropdownView:t,parentCommandName:i,styleDefinitions:r,styleGridAriaLabel:s}){const o=n.locale,a={...e,...i!="numberedList"?{startIndex:!1,reversed:!1}:null},l=i.replace("List","");let c=null;if(e.styles.listTypes.includes(l)){const d=n.commands.get("listStyle"),h=eb({editor:n,parentCommandName:i,listStyleCommand:d}),m=e.styles.listStyleTypes;let g=r;if(m){const b=m[l];b&&(g=r.filter(y=>b.includes(y.type)))}const f=tb(d);c=g.filter(f).map(h)}const u=new Qp(o,{styleGridAriaLabel:s,enabledProperties:a,styleButtonViews:c});if(e.styles.listTypes.includes(l)&&yl(t,()=>u.stylesView.children.find(d=>d.isOn)),a.startIndex){const d=n.commands.get("listStart");u.startIndexFieldView.bind("isEnabled").to(d),u.startIndexFieldView.fieldView.bind("value").to(d),u.on("listStart",(h,m)=>n.execute("listStart",m))}if(a.reversed){const d=n.commands.get("listReversed");u.reversedSwitchButtonView.bind("isEnabled").to(d),u.reversedSwitchButtonView.bind("isOn").to(d,"value",h=>!!h),u.on("listReversed",()=>{const h=d.value;n.execute("listReversed",{reversed:!h})})}return u.delegate("execute").to(t),u}function th({editor:n,normalizedConfig:e,parentCommandName:t,buttonLabel:i,styleGridAriaLabel:r,styleDefinitions:s}){return o=>{const a=new ut(o),l=n.commands.get(t),c=n.commands.get("listStyle"),u=tb(c),d=eb({editor:n,parentCommandName:t,listStyleCommand:c}),h=e.styles.listStyleTypes;let m=s;if(h){const b=l.type,y=h[b];y&&(m=s.filter(C=>y.includes(C.type)))}const g=m.filter(u).map(d),f=new Qp(o,{styleGridAriaLabel:r,enabledProperties:{...e,startIndex:!1,reversed:!1},styleButtonViews:g});return f.delegate("execute").to(a),a.buttonView.set({label:i,icon:t==="bulletedList"?ul:dl}),a.panelView.children.add(f),a.bind("isEnabled").to(l,"isEnabled"),a.on("execute",()=>{n.editing.view.focus()}),a}}function tb(n){return typeof n.isStyleTypeSupported=="function"?e=>n.isStyleTypeSupported(e.type):()=>!0}class nR extends k{static get requires(){return[Q2,tR]}static get pluginName(){return"ListProperties"}static get isOfficialPlugin(){return!0}}F.arrowup,F.arrowdown,F.esc;F.enter,F.tab;class rR extends N{constructor(e){super(e),this.affectsData=!1,this.value=!1}execute(){const e="ck-show-blocks",t=this.editor.editing.view;t.change(i=>{for(const r of t.document.roots)r.hasClass(e)?(i.removeClass(e,r),this.value=!1):(i.addClass(e,r),this.value=!0)})}}class sR extends k{static get pluginName(){return"ShowBlocksEditing"}static get isOfficialPlugin(){return!0}init(){const{editor:e}=this;e.commands.add("showBlocks",new rR(e))}}class oR extends k{static get pluginName(){return"ShowBlocksUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("showBlocks",()=>{const t=this._createButton(P);return t.set({tooltip:!0,icon:RT}),t}),e.ui.componentFactory.add("menuBar:showBlocks",()=>this._createButton(ke))}_createButton(e){const t=this.editor,i=t.locale,r=t.commands.get("showBlocks"),s=new e(i),o=i.t;return s.set({label:o("Show blocks"),isToggleable:!0,role:"menuitemcheckbox"}),s.bind("isEnabled").to(r),s.bind("isOn").to(r,"value",r,"isEnabled",(a,l)=>a&&l),this.listenTo(s,"execute",()=>{t.execute("showBlocks"),t.editing.view.focus()}),s}}class aR extends k{static get pluginName(){return"ShowBlocks"}static get isOfficialPlugin(){return!0}static get requires(){return[sR,oR]}}const Pr="SourceEditingMode";class lR extends k{static get pluginName(){return"SourceEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[ji]}_elementReplacer;_replacedRoots;_dataFromRoots;constructor(e){super(e),this.set("isSourceEditingMode",!1),this._elementReplacer=new um,this._replacedRoots=new Map,this._dataFromRoots=new Map,e.config.define("sourceEditing.allowCollaborationFeatures",!1)}init(){this._checkCompatibility();const e=this.editor,t=e.locale.t;e.ui.componentFactory.add("sourceEditing",()=>{const i=this._createButton(P);return i.set({label:t("Source"),icon:MT,tooltip:!0,class:"ck-source-editing-button"}),i}),e.ui.componentFactory.add("menuBar:sourceEditing",()=>{const i=this._createButton(ke);return i.set({label:t("Show source"),role:"menuitemcheckbox"}),i}),this._isAllowedToHandleSourceEditingMode()&&(this.on("change:isSourceEditingMode",(i,r,s)=>{s?(this._hideVisibleDialog(),this._showSourceEditing(),this._disableCommands()):(this._hideSourceEditing(),this._enableCommands())}),this.on("change:isEnabled",(i,r,s)=>this._handleReadOnlyMode(!s)),this.listenTo(e,"change:isReadOnly",(i,r,s)=>this._handleReadOnlyMode(s))),e.data.on("get",()=>{this.isSourceEditingMode&&this.updateEditorData()},{priority:"high"})}updateEditorData(){const e=this.editor,t={};for(const[i,r]of this._replacedRoots){const s=this._dataFromRoots.get(i),o=r.dataset.value;s!==o&&(t[i]=o,this._dataFromRoots.set(i,o))}Object.keys(t).length&&e.data.set(t,{batchType:{isUndoable:!0},suppressErrorInCollaboration:!0})}_checkCompatibility(){const e=this.editor,t=e.config.get("sourceEditing.allowCollaborationFeatures");if(!t&&e.plugins.has("RealTimeCollaborativeEditing"))throw new p("source-editing-incompatible-with-real-time-collaboration",null);!t&&["CommentsEditing","TrackChangesEditing","RevisionHistory"].some(r=>e.plugins.has(r))&&console.warn("You initialized the editor with the source editing feature and at least one of the collaboration features. Please be advised that the source editing feature may not work, and be careful when editing document source that contains markers created by the collaboration features."),e.plugins.has("RestrictedEditingModeEditing")&&console.warn("You initialized the editor with the source editing feature and restricted editing feature. Please be advised that the source editing feature may not work, and be careful when editing document source that contains markers created by the restricted editing feature.")}_showSourceEditing(){const e=this.editor,t=e.editing.view,i=e.model;i.change(r=>{r.setSelection(null),r.removeSelectionAttribute(i.document.selection.getAttributeKeys())});for(const[r,s]of t.domRoots){const o=cR(e.data.get({rootName:r})),a=Ne(s.ownerDocument,"textarea",{rows:"1","aria-label":"Source code editing area"}),l=Ne(s.ownerDocument,"div",{class:"ck-source-editing-area","data-value":o},[a]);a.value=o,a.setSelectionRange(0,0),a.addEventListener("input",()=>{l.dataset.value=a.value,e.ui.update()}),t.change(c=>{const u=t.document.getRoot(r);c.addClass("ck-hidden",u)}),e.ui.setEditableElement("sourceEditing:"+r,a),this._replacedRoots.set(r,l),this._elementReplacer.replace(s,l),this._dataFromRoots.set(r,o)}this._hideDocumentOutline(),this._refreshAnnotationsVisibility(),this._focusSourceEditing()}_hideSourceEditing(){const t=this.editor.editing.view;this.updateEditorData(),t.change(i=>{for(const[r]of this._replacedRoots)i.removeClass("ck-hidden",t.document.getRoot(r))}),this._elementReplacer.restore(),this._replacedRoots.clear(),this._dataFromRoots.clear(),this._showDocumentOutline(),this._refreshAnnotationsVisibility(),t.focus()}_hideDocumentOutline(){this.editor.plugins.has("DocumentOutlineUI")&&(this.editor.plugins.get("DocumentOutlineUI").view.element.style.display="none")}_showDocumentOutline(){this.editor.plugins.has("DocumentOutlineUI")&&(this.editor.plugins.get("DocumentOutlineUI").view.element.style.display="")}_refreshAnnotationsVisibility(){this.editor.plugins.has("Annotations")&&this.editor.plugins.get("Annotations").refreshVisibility()}_focusSourceEditing(){const e=this.editor,[t]=this._replacedRoots.values(),i=t.querySelector("textarea");e.editing.view.document.isFocused=!1,i.focus()}_disableCommands(){const e=this.editor;for(const t of e.commands.commands())t.forceDisabled(Pr);e.plugins.has("CommentsArchiveUI")&&e.plugins.get("CommentsArchiveUI").forceDisabled(Pr)}_enableCommands(){const e=this.editor;for(const t of e.commands.commands())t.clearForceDisabled(Pr);e.plugins.has("CommentsArchiveUI")&&e.plugins.get("CommentsArchiveUI").clearForceDisabled(Pr)}_handleReadOnlyMode(e){if(this.isSourceEditingMode)for(const[,t]of this._replacedRoots)t.querySelector("textarea").readOnly=e}_isAllowedToHandleSourceEditingMode(){const t=this.editor.ui.view.editable;return t&&!t.hasExternalElement}_hideVisibleDialog(){if(this.editor.plugins.has("Dialog")){const e=this.editor.plugins.get("Dialog");e.isOpen&&e.hide()}}_createButton(e){const t=this.editor,i=new e(t.locale);return i.set({withText:!0,isToggleable:!0}),i.bind("isOn").to(this,"isSourceEditingMode"),i.bind("isEnabled").to(this,"isEnabled",t,"isReadOnly",t.plugins.get(ji),"hasAny",(r,s,o)=>!(!r||s||o)),this.listenTo(i,"execute",()=>{this.isSourceEditingMode=!this.isSourceEditingMode}),i}}function cR(n){return uR(n)?hv(n):n}function uR(n){return n.startsWith("<")}function dR(){}function ih(n){if(!n||typeof n!="object")return!1;const e=Object.getPrototypeOf(n);return e===null||e===Object.prototype||Object.getPrototypeOf(e)===null?Object.prototype.toString.call(n)==="[object Object]":!1}function nh(n){return Object.getOwnPropertySymbols(n).filter(e=>Object.prototype.propertyIsEnumerable.call(n,e))}function rh(n){return n==null?n===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(n)}const hR="[object RegExp]",mR="[object String]",gR="[object Number]",fR="[object Boolean]",sh="[object Arguments]",pR="[object Symbol]",bR="[object Date]",wR="[object Map]",yR="[object Set]",vR="[object Array]",kR="[object Function]",_R="[object ArrayBuffer]",Bo="[object Object]",CR="[object Error]",LR="[object DataView]",TR="[object Uint8Array]",ER="[object Uint8ClampedArray]",xR="[object Uint16Array]",SR="[object Uint32Array]",AR="[object BigUint64Array]",IR="[object Int8Array]",PR="[object Int16Array]",RR="[object Int32Array]",MR="[object BigInt64Array]",BR="[object Float32Array]",VR="[object Float64Array]";function NR(n,e){return n===e||Number.isNaN(n)&&Number.isNaN(e)}function OR(n,e,t){return vn(n,e,void 0,void 0,void 0,void 0,t)}function vn(n,e,t,i,r,s,o){const a=o(n,e,t,i,r,s);if(a!==void 0)return a;if(typeof n==typeof e)switch(typeof n){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return n===e;case"number":return n===e||Object.is(n,e);case"function":return n===e;case"object":return Pn(n,e,s,o)}return Pn(n,e,s,o)}function Pn(n,e,t,i){if(Object.is(n,e))return!0;let r=rh(n),s=rh(e);if(r===sh&&(r=Bo),s===sh&&(s=Bo),r!==s)return!1;switch(r){case mR:return n.toString()===e.toString();case gR:{const l=n.valueOf(),c=e.valueOf();return NR(l,c)}case fR:case bR:case pR:return Object.is(n.valueOf(),e.valueOf());case hR:return n.source===e.source&&n.flags===e.flags;case kR:return n===e}t=t??new Map;const o=t.get(n),a=t.get(e);if(o!=null&&a!=null)return o===e;t.set(n,e),t.set(e,n);try{switch(r){case wR:{if(n.size!==e.size)return!1;for(const[l,c]of n.entries())if(!e.has(l)||!vn(c,e.get(l),l,n,e,t,i))return!1;return!0}case yR:{if(n.size!==e.size)return!1;const l=Array.from(n.values()),c=Array.from(e.values());for(let u=0;u<l.length;u++){const d=l[u],h=c.findIndex(m=>vn(d,m,void 0,n,e,t,i));if(h===-1)return!1;c.splice(h,1)}return!0}case vR:case TR:case ER:case xR:case SR:case AR:case IR:case PR:case RR:case MR:case BR:case VR:{if(typeof Buffer<"u"&&Buffer.isBuffer(n)!==Buffer.isBuffer(e)||n.length!==e.length)return!1;for(let l=0;l<n.length;l++)if(!vn(n[l],e[l],l,n,e,t,i))return!1;return!0}case _R:return n.byteLength!==e.byteLength?!1:Pn(new Uint8Array(n),new Uint8Array(e),t,i);case LR:return n.byteLength!==e.byteLength||n.byteOffset!==e.byteOffset?!1:Pn(new Uint8Array(n),new Uint8Array(e),t,i);case CR:return n.name===e.name&&n.message===e.message;case Bo:{if(!(Pn(n.constructor,e.constructor,t,i)||ih(n)&&ih(e)))return!1;const c=[...Object.keys(n),...nh(n)],u=[...Object.keys(e),...nh(e)];if(c.length!==u.length)return!1;for(let d=0;d<c.length;d++){const h=c[d],m=n[h];if(!Object.hasOwn(e,h))return!1;const g=e[h];if(!vn(m,g,h,n,e,t,i))return!1}return!0}default:return!1}}finally{t.delete(n),t.delete(e)}}function oh(n,e){return OR(n,e,dR)}function DR(n){return n!==null&&(typeof n=="object"||typeof n=="function")}function zR(n,e,{signal:t,edges:i}={}){let r,s=null;const o=i!=null&&i.includes("leading"),a=i==null||i.includes("trailing"),l=()=>{s!==null&&(n.apply(r,s),r=void 0,s=null)},c=()=>{a&&l(),m()};let u=null;const d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,c()},e)},h=()=>{u!==null&&(clearTimeout(u),u=null)},m=()=>{h(),r=void 0,s=null},g=()=>{h(),l()},f=function(...b){if(t?.aborted)return;r=this,s=b;const y=u==null;d(),o&&y&&l()};return f.schedule=d,f.cancel=m,f.flush=g,t?.addEventListener("abort",m,{once:!0}),f}function Vl(n,e=0,t={}){typeof t!="object"&&(t={});const{signal:i,leading:r=!1,trailing:s=!0,maxWait:o}=t,a=Array(2);r&&(a[0]="leading"),s&&(a[1]="trailing");let l,c=null;const u=zR(function(...m){l=n.apply(this,m),c=null},e,{signal:i,edges:a}),d=function(...m){if(o!=null){if(c===null)c=Date.now();else if(Date.now()-c>=o)return l=n.apply(this,m),c=Date.now(),u.cancel(),u.schedule(),l}return u.apply(this,m),l},h=()=>(u.flush(),l);return d.cancel=u.cancel,d.flush=h,d}function FR(n,e=0,t={}){typeof t!="object"&&(t={});const{leading:i=!0,trailing:r=!0,signal:s}=t;return Vl(n,e,{leading:i,trailing:r,signal:s,maxWait:e})}function Nl(n,e){const{modelAttribute:t,styleName:i,viewElement:r,defaultValue:s,reduceBoxSides:o=!1,shouldUpcast:a=()=>!0}=e;n.for("upcast").attributeToAttribute({view:{name:r,styles:{[i]:/[\s\S]+/}},model:{key:t,value:(l,c,u)=>{if(!a(l))return;const d=zt(s,"",u),h=l.getNormalizedStyle(i),m=o?Kr(h):h;if(d!==m)return m}}})}function pa(n,e,t,i){n.for("upcast").add(r=>r.on("element:"+e,(s,o,a)=>{if(!o.modelRange)return;const l=["border-top-width","border-top-color","border-top-style","border-bottom-width","border-bottom-color","border-bottom-style","border-right-width","border-right-color","border-right-style","border-left-width","border-left-color","border-left-style"].filter(f=>o.viewItem.hasStyle(f));if(!l.length)return;const c={styles:l};if(!a.consumable.test(o.viewItem,c))return;const u=[...o.modelRange.getItems({shallow:!0})].pop(),d=u.findAncestor("table",{includeSelf:!0});let h=i;d&&d.getAttribute("tableType")=="layout"&&(h={style:"none",color:"",width:""}),a.consumable.consume(o.viewItem,c);const m={style:o.viewItem.getNormalizedStyle("border-style"),color:o.viewItem.getNormalizedStyle("border-color"),width:o.viewItem.getNormalizedStyle("border-width")},g={style:Kr(m.style),color:Kr(m.color),width:Kr(m.width)};g.style!==h.style&&a.writer.setAttribute(t.style,g.style,u),g.color!==h.color&&a.writer.setAttribute(t.color,g.color,u),g.width!==h.width&&a.writer.setAttribute(t.width,g.width,u)}))}function Rn(n,e){const{modelElement:t,modelAttribute:i,styleName:r}=e;n.for("downcast").attributeToAttribute({model:{name:t,key:i},view:s=>({key:"style",value:{[r]:s}})})}function Gr(n,e){const{modelAttribute:t,styleName:i}=e;n.for("downcast").add(r=>r.on(`attribute:${t}:table`,(s,o,a)=>{const{item:l,attributeNewValue:c}=o,{mapper:u,writer:d}=a;if(!a.consumable.consume(o.item,s.name))return;const h=[...u.toViewElement(l).getChildren()].find(m=>m.is("element","table"));c?d.setStyle(i,c,h):d.removeStyle(i,h)}))}function zt(n,e,t){const i=t.modelRange&&ce(t.modelRange.getItems({shallow:!0})),r=i&&i.is("element")&&i.findAncestor("table",{includeSelf:!0});return r&&r.getAttribute("tableType")==="layout"?e:n}function Kr(n){if(!n)return;const e=["top","right","bottom","left"];if(!e.every(s=>n[s]))return n;const i=n.top;return e.every(s=>n[s]===i)?i:n}function se(n,e,t,i,r=1){e!=null&&r!==void 0&&r!==null&&e>r?i.setAttribute(n,e,t):i.removeAttribute(n,t)}function gi(n,e,t={}){const i=n.createElement("tableCell",t);return n.insertElement("paragraph",i),n.insert(i,e),i}function ba(n,e){const t=e.parent.parent,i=parseInt(t.getAttribute("headingColumns")||"0"),{column:r}=n.getCellLocation(e);return!!i&&r<i}function Zr(n,e,t){const{modelAttribute:i}=t;n.extend("tableCell",{allowAttributes:[i]}),Nl(e,{viewElement:/^(td|th)$/,...t}),Rn(e,{modelElement:"tableCell",...t})}function Ft(n){const e=n.getSelectedElement();return e&&e.is("element","table")?e:n.getFirstPosition().findAncestor("table")}function UR(){return n=>{n.on("element:figure",(e,t,i)=>{if(!i.consumable.test(t.viewItem,{name:!0,classes:"table"}))return;const r=WR(t.viewItem);if(!r||!i.consumable.test(r,{name:!0}))return;i.consumable.consume(t.viewItem,{name:!0,classes:"table"});const s=i.convertItem(r,t.modelCursor),o=ce(s.modelRange.getItems());if(!o){i.consumable.revert(t.viewItem,{name:!0,classes:"table"});return}i.convertChildren(t.viewItem,i.writer.createPositionAt(o,"end")),i.updateConversionResult(o,t)})}}function HR(){return n=>{n.on("element:table",(e,t,i)=>{const r=t.viewItem;if(!i.consumable.test(r,{name:!0}))return;const{rows:s,headingRows:o,headingColumns:a}=qR(r),l={};a&&(l.headingColumns=a),o&&(l.headingRows=o);const c=i.writer.createElement("table",l);if(i.safeInsert(c,t.modelCursor)){if(i.consumable.consume(r,{name:!0}),s.forEach(u=>i.convertItem(u,i.writer.createPositionAt(c,"end"))),i.convertChildren(r,i.writer.createPositionAt(c,"end")),c.isEmpty){const u=i.writer.createElement("tableRow");i.writer.insert(u,i.writer.createPositionAt(c,"end")),gi(i.writer,i.writer.createPositionAt(u,"end"))}i.updateConversionResult(c,t)}})}}function jR(){return n=>{n.on("element:tr",(e,t)=>{t.viewItem.isEmpty&&t.modelCursor.index==0&&e.stop()},{priority:"high"})}}function ah(n){return e=>{e.on(`element:${n}`,(t,i,{writer:r})=>{if(!i.modelRange)return;const s=i.modelRange.start.nodeAfter,o=r.createPositionAt(s,0);if(i.viewItem.isEmpty){r.insertElement("paragraph",o);return}const a=Array.from(s.getChildren());if(a.every(l=>l.is("element","$marker"))){const l=r.createElement("paragraph");r.insert(l,r.createPositionAt(s,0));for(const c of a)r.move(r.createRangeOn(c),r.createPositionAt(l,"end"))}},{priority:"low"})}}function WR(n){for(const e of n.getChildren())if(e.is("element","table"))return e}function qR(n){let e=0,t;const i=[],r=[];let s;for(const o of Array.from(n.getChildren())){if(o.name!=="tbody"&&o.name!=="thead"&&o.name!=="tfoot")continue;o.name==="thead"&&!s&&(s=o);const a=Array.from(o.getChildren()).filter(c=>c.is("element","tr"));let l=null;for(const c of a){const u=Array.from(c.getChildren()).filter(d=>d.is("element","td")||d.is("element","th"));if(s&&o===s||o.name==="tbody"&&u.length>0&&(l===null||u.length===l)&&u.every(d=>d.is("element","th")))e++,i.push(c);else{r.push(c);const d=$R(c);(!t||d<t)&&(t=d)}l=Math.max(l||0,u.length)}}return{headingRows:e,headingColumns:t||0,rows:[...i,...r]}}function $R(n){let e=0,t=0;const i=Array.from(n.getChildren()).filter(r=>r.name==="th"||r.name==="td");for(;t<i.length&&i[t].name==="th";){const r=i[t],s=parseInt(r.getAttribute("colspan")||"1");e=e+s,t++}return e}class q{_table;_startRow;_endRow;_startColumn;_endColumn;_includeAllSlots;_skipRows;_row;_rowIndex;_column;_cellIndex;_spannedCells;_nextCellAtColumn;_jumpedToStartRow=!1;constructor(e,t={}){this._table=e,this._startRow=t.row!==void 0?t.row:t.startRow||0,this._endRow=t.row!==void 0?t.row:t.endRow,this._startColumn=t.column!==void 0?t.column:t.startColumn||0,this._endColumn=t.column!==void 0?t.column:t.endColumn,this._includeAllSlots=!!t.includeAllSlots,this._skipRows=new Set,this._row=0,this._rowIndex=0,this._column=0,this._cellIndex=0,this._spannedCells=new Map,this._nextCellAtColumn=-1}[Symbol.iterator](){return this}next(){this._canJumpToStartRow()&&this._jumpToNonSpannedRowClosestToStartRow();const e=this._table.getChild(this._rowIndex);if(!e||this._isOverEndRow())return{done:!0,value:void 0};if(!e.is("element","tableRow"))return this._rowIndex++,this.next();if(this._isOverEndColumn())return this._advanceToNextRow();let t=null;const i=this._getSpanned();if(i)this._includeAllSlots&&!this._shouldSkipSlot()&&(t=this._formatOutValue(i.cell,i.row,i.column));else{const r=e.getChild(this._cellIndex);if(!r)return this._advanceToNextRow();const s=parseInt(r.getAttribute("colspan")||"1"),o=parseInt(r.getAttribute("rowspan")||"1");(s>1||o>1)&&this._recordSpans(r,o,s),this._shouldSkipSlot()||(t=this._formatOutValue(r)),this._nextCellAtColumn=this._column+s}return this._column++,this._column==this._nextCellAtColumn&&this._cellIndex++,t||this.next()}skipRow(e){this._skipRows.add(e)}_advanceToNextRow(){return this._row++,this._rowIndex++,this._column=0,this._cellIndex=0,this._nextCellAtColumn=-1,this.next()}_isOverEndRow(){return this._endRow!==void 0&&this._row>this._endRow}_isOverEndColumn(){return this._endColumn!==void 0&&this._column>this._endColumn}_formatOutValue(e,t=this._row,i=this._column){return{done:!1,value:new GR(this,e,t,i)}}_shouldSkipSlot(){const e=this._skipRows.has(this._row),t=this._row<this._startRow,i=this._column<this._startColumn,r=this._endColumn!==void 0&&this._column>this._endColumn;return e||t||i||r}_getSpanned(){const e=this._spannedCells.get(this._row);return e&&e.get(this._column)||null}_recordSpans(e,t,i){const r={cell:e,row:this._row,column:this._column};for(let s=this._row;s<this._row+t;s++)for(let o=this._column;o<this._column+i;o++)(s!=this._row||o!=this._column)&&this._markSpannedCell(s,o,r)}_markSpannedCell(e,t,i){this._spannedCells.has(e)||this._spannedCells.set(e,new Map),this._spannedCells.get(e).set(t,i)}_canJumpToStartRow(){return!!this._startRow&&this._startRow>0&&!this._jumpedToStartRow}_jumpToNonSpannedRowClosestToStartRow(){const e=this._getRowLength(0);for(let t=this._startRow;!this._jumpedToStartRow;t--)e===this._getRowLength(t)&&(this._row=t,this._rowIndex=t,this._jumpedToStartRow=!0)}_getRowLength(e){return[...this._table.getChild(e).getChildren()].reduce((i,r)=>i+parseInt(r.getAttribute("colspan")||"1"),0)}}class GR{cell;row;column;cellAnchorRow;cellAnchorColumn;_cellIndex;_rowIndex;_table;constructor(e,t,i,r){this.cell=t,this.row=e._row,this.column=e._column,this.cellAnchorRow=i,this.cellAnchorColumn=r,this._cellIndex=e._cellIndex,this._rowIndex=e._rowIndex,this._table=e._table}get isAnchor(){return this.row===this.cellAnchorRow&&this.column===this.cellAnchorColumn}get cellWidth(){return parseInt(this.cell.getAttribute("colspan")||"1")}get cellHeight(){return parseInt(this.cell.getAttribute("rowspan")||"1")}get rowIndex(){return this._rowIndex}getPositionBefore(){return this._table.root.document.model.createPositionAt(this._table.getChild(this.row),this._cellIndex)}}function lh(n,e){return(t,{writer:i})=>{const r=t.getAttribute("headingRows")||0,s=i.createContainerElement("table",null,[]),o=i.createContainerElement("figure",{class:"table"},s);r>0&&i.insert(i.createPositionAt(s,"end"),i.createContainerElement("thead",null,i.createSlot(a=>a.is("element","tableRow")&&a.index<r))),r<n.getRows(t)&&i.insert(i.createPositionAt(s,"end"),i.createContainerElement("tbody",null,i.createSlot(a=>a.is("element","tableRow")&&a.index>=r)));for(const{positionOffset:a,filter:l}of e.additionalSlots)i.insert(i.createPositionAt(s,a),i.createSlot(l));return i.insert(i.createPositionAt(s,"after"),i.createSlot(a=>a.is("element","tableRow")?!1:!e.additionalSlots.some(({filter:l})=>l(a)))),e.asWidget?ZR(o,i):o}}function KR(){return(n,{writer:e})=>n.isEmpty?e.createEmptyElement("tr"):e.createContainerElement("tr")}function ch(n={}){return(e,{writer:t})=>{const i=e.parent,r=i.parent,s=r.getChildIndex(i),o=new q(r,{row:s}),a=r.getAttribute("headingRows")||0,l=r.getAttribute("headingColumns")||0;let c=null;for(const u of o)if(u.cell==e){const h=u.row<a||u.column<l?"th":"td";c=n.asWidget?Tl(t.createEditableElement(h),t,{withAriaRole:!1}):t.createContainerElement(h);break}return c}}function uh(n={}){return(e,{writer:t})=>{if(!e.parent.is("element","tableCell")||!ib(e))return null;if(n.asWidget)return t.createContainerElement("span",{class:"ck-table-bogus-paragraph"});{const i=t.createContainerElement("p");return t.setCustomProperty("dataPipeline:transparentRendering",!0,i),i}}}function ib(n){return n.parent.childCount==1&&!JR(n)}function ZR(n,e){return e.setCustomProperty("table",!0,n),Ll(n,e,{hasSelectionHandle:!0})}function JR(n){for(const e of n.getAttributeKeys())if(!(e.startsWith("selection:")||e=="htmlEmptyBlock"))return!0;return!1}class YR extends N{refresh(){const e=this.editor.model,t=e.document.selection,i=e.schema;this.isEnabled=XR(t,i)}execute(e={}){const t=this.editor,i=t.model,r=t.plugins.get("TableUtils"),s=t.config.get("table.defaultHeadings.rows"),o=t.config.get("table.defaultHeadings.columns");e.headingRows===void 0&&s&&(e.headingRows=s),e.headingColumns===void 0&&o&&(e.headingColumns=o),i.change(a=>{const l=r.createTable(a,e);i.insertObject(l,null,null,{findOptimalPosition:"auto"}),a.setSelection(a.createPositionAt(l.getNodeByPath([0,0,0]),0))})}}function XR(n,e){const t=n.getFirstPosition().parent,i=t===t.root?t:t.parent;return e.checkChild(i,"table")}class dh extends N{order;constructor(e,t={}){super(e),this.order=t.order||"below"}refresh(){const e=this.editor.model.document.selection,i=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(e).length;this.isEnabled=i}execute(){const e=this.editor,t=e.model.document.selection,i=e.plugins.get("TableUtils"),r=this.order==="above",s=i.getSelectionAffectedTableCells(t),o=i.getRowIndexes(s),a=r?o.first:o.last,l=s[0].findAncestor("table");i.insertRows(l,{at:r?a:a+1,copyStructureFromAbove:!r})}}class hh extends N{order;constructor(e,t={}){super(e),this.order=t.order||"right"}refresh(){const e=this.editor.model.document.selection,i=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(e).length;this.isEnabled=i}execute(){const e=this.editor,t=e.model.document.selection,i=e.plugins.get("TableUtils"),r=this.order==="left",s=i.getSelectionAffectedTableCells(t),o=i.getColumnIndexes(s),a=r?o.first:o.last,l=s[0].findAncestor("table");i.insertColumns(l,{columns:1,at:r?a:a+1})}}class mh extends N{direction;constructor(e,t={}){super(e),this.direction=t.direction||"horizontally"}refresh(){const t=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=t.length===1}execute(){const e=this.editor.plugins.get("TableUtils"),t=e.getSelectionAffectedTableCells(this.editor.model.document.selection)[0];this.direction==="horizontally"?e.splitCellHorizontally(t,2):e.splitCellVertically(t,2)}}function nb(n,e,t){const{startRow:i,startColumn:r,endRow:s,endColumn:o}=e,a=t.createElement("table"),l=n.getAttribute("tableType");l&&t.setAttribute("tableType",l,a);const c=s-i+1;for(let d=0;d<c;d++)t.insertElement("tableRow",a,"end");const u=[...new q(n,{startRow:i,endRow:s,startColumn:r,endColumn:o,includeAllSlots:!0})];for(const{row:d,column:h,cell:m,isAnchor:g,cellAnchorRow:f,cellAnchorColumn:b}of u){const y=d-i,C=a.getChild(y);if(!g)(f<i||b<r)&&gi(t,t.createPositionAt(C,"end"));else{const L=t.cloneElement(m);t.append(L,C),lb(L,d,h,s,o,t)}}return QR(a,n,i,r,t),a}function rb(n,e,t=0){const i=[],r=new q(n,{startRow:t,endRow:e-1});for(const s of r){const{row:o,cellHeight:a}=s,l=o+a-1;o<e&&e<=l&&i.push(s)}return i}function sb(n,e,t){const i=n.parent,r=i.parent,s=i.index,o=parseInt(n.getAttribute("rowspan")),a=e-s,l={},c=o-a;c>1&&(l.rowspan=c);const u=parseInt(n.getAttribute("colspan")||"1");u>1&&(l.colspan=u);const d=s,h=d+a,m=[...new q(r,{startRow:d,endRow:h,includeAllSlots:!0})];let g=null,f;for(const b of m){const{row:y,column:C,cell:L}=b;L===n&&f===void 0&&(f=C),f!==void 0&&f===C&&y===h&&(g=gi(t,b.getPositionBefore(),l))}return se("rowspan",a,n,t),g}function ob(n,e){const t=[],i=new q(n);for(const r of i){const{column:s,cellWidth:o}=r,a=s+o-1;s<e&&e<=a&&t.push(r)}return t}function ab(n,e,t,i){const r=parseInt(n.getAttribute("colspan")),s=t-e,o={},a=r-s;a>1&&(o.colspan=a);const l=parseInt(n.getAttribute("rowspan")||"1");l>1&&(o.rowspan=l);const c=gi(i,i.createPositionAfter(n),o);return se("colspan",s,n,i),c}function lb(n,e,t,i,r,s){const o=parseInt(n.getAttribute("colspan")||"1"),a=parseInt(n.getAttribute("rowspan")||"1");if(t+o-1>r){const u=r-t+1;se("colspan",u,n,s,1)}if(e+a-1>i){const u=i-e+1;se("rowspan",u,n,s,1)}}function QR(n,e,t,i,r){const s=parseInt(e.getAttribute("headingRows")||"0");if(s>0){const a=s-t;se("headingRows",a,n,r,0)}const o=parseInt(e.getAttribute("headingColumns")||"0");if(o>0){const a=o-i;se("headingColumns",a,n,r,0)}}function wa(n,e){const t=e.getColumns(n),i=new Array(t).fill(0);for(const{column:s}of new q(n))i[s]++;const r=i.reduce((s,o,a)=>o?s:[...s,a],[]);if(r.length>0){const s=r[r.length-1];return e.removeColumns(n,{at:s}),!0}return!1}function ya(n,e){const t=[],i=e.getRows(n);for(let r=0;r<i;r++)n.getChild(r).isEmpty&&t.push(r);if(t.length>0){const r=t[t.length-1];return e.removeRows(n,{at:r}),!0}return!1}function Ol(n,e){wa(n,e)||ya(n,e)}function cb(n,e){const t=Array.from(new q(n,{startColumn:e.firstColumn,endColumn:e.lastColumn,row:e.lastRow}));if(t.every(({cellHeight:s})=>s===1))return e.lastRow;const r=t[0].cellHeight-1;return e.lastRow+r}function ub(n,e){const t=Array.from(new q(n,{startRow:e.firstRow,endRow:e.lastRow,column:e.lastColumn}));if(t.every(({cellWidth:s})=>s===1))return e.lastColumn;const r=t[0].cellWidth-1;return e.lastColumn+r}class Rr extends N{direction;isHorizontal;constructor(e,t){super(e),this.direction=t.direction,this.isHorizontal=this.direction=="right"||this.direction=="left"}refresh(){const e=this._getMergeableCell();this.value=e,this.isEnabled=!!e}execute(){const e=this.editor.model,t=e.document,r=this.editor.plugins.get("TableUtils").getTableCellsContainingSelection(t.selection)[0],s=this.value,o=this.direction;e.change(a=>{const l=o=="right"||o=="down",c=l?r:s,u=l?s:r,d=u.parent;i5(u,c,a);const h=this.isHorizontal?"colspan":"rowspan",m=parseInt(r.getAttribute(h)||"1"),g=parseInt(s.getAttribute(h)||"1");a.setAttribute(h,m+g,c),a.setSelection(a.createRangeIn(c));const f=this.editor.plugins.get("TableUtils"),b=d.findAncestor("table");Ol(b,f)})}_getMergeableCell(){const t=this.editor.model.document,i=this.editor.plugins.get("TableUtils"),r=i.getTableCellsContainingSelection(t.selection)[0];if(!r)return;const s=this.isHorizontal?e5(r,this.direction,i):t5(r,this.direction,i);if(!s)return;const o=this.isHorizontal?"rowspan":"colspan",a=parseInt(r.getAttribute(o)||"1");if(parseInt(s.getAttribute(o)||"1")===a)return s}}function e5(n,e,t){const r=n.parent.parent,s=e=="right"?n.nextSibling:n.previousSibling,o=(r.getAttribute("headingColumns")||0)>0;if(!s)return;const a=e=="right"?n:s,l=e=="right"?s:n,{column:c}=t.getCellLocation(a),{column:u}=t.getCellLocation(l),d=parseInt(a.getAttribute("colspan")||"1"),h=ba(t,a),m=ba(t,l);return o&&h!=m?void 0:c+d===u?s:void 0}function t5(n,e,t){const i=n.parent,r=i.parent,s=r.getChildIndex(i);if(e=="down"&&s===t.getRows(r)-1||e=="up"&&s===0)return null;const o=parseInt(n.getAttribute("rowspan")||"1"),a=r.getAttribute("headingRows")||0,l=e=="down"&&s+o===a,c=e=="up"&&s===a;if(a&&(l||c))return null;const u=parseInt(n.getAttribute("rowspan")||"1"),d=e=="down"?s+u:s,h=[...new q(r,{endRow:d})],g=h.find(b=>b.cell===n).column,f=h.find(({row:b,cellHeight:y,column:C})=>C!==g?!1:e=="down"?b===d:d===b+y);return f&&f.cell?f.cell:null}function i5(n,e,t){gh(n)||(gh(e)&&t.remove(t.createRangeIn(e)),t.move(t.createRangeIn(n),t.createPositionAt(e,"end"))),t.remove(n)}function gh(n){const e=n.getChild(0);return n.childCount==1&&e.is("element","paragraph")&&e.isEmpty}class n5 extends N{refresh(){const e=this.editor.plugins.get("TableUtils"),t=e.getSelectionAffectedTableCells(this.editor.model.document.selection),i=t[0];if(i){const r=i.findAncestor("table"),o=e.getRows(r)-1,a=e.getRowIndexes(t),l=a.first===0&&a.last===o;this.isEnabled=!l}else this.isEnabled=!1}execute(){const e=this.editor.model,t=this.editor.plugins.get("TableUtils"),i=t.getSelectionAffectedTableCells(e.document.selection),r=t.getRowIndexes(i),s=i[0],o=s.findAncestor("table"),a=t.getCellLocation(s).column;e.change(l=>{const c=r.last-r.first+1;t.removeRows(o,{at:r.first,rows:c});const u=r5(o,r.first,a,t.getRows(o));l.setSelection(l.createPositionAt(u,0))})}}function r5(n,e,t,i){const r=n.getChild(Math.min(e,i-1));let s=r.getChild(0),o=0;for(const a of r.getChildren()){if(o>t)return s;s=a,o+=parseInt(a.getAttribute("colspan")||"1")}return s}class s5 extends N{refresh(){const e=this.editor.plugins.get("TableUtils"),t=e.getSelectionAffectedTableCells(this.editor.model.document.selection),i=t[0];if(i){const r=i.findAncestor("table"),s=e.getColumns(r),{first:o,last:a}=e.getColumnIndexes(t);this.isEnabled=a-o<s-1}else this.isEnabled=!1}execute(){const e=this.editor.plugins.get("TableUtils"),[t,i]=a5(this.editor.model.document.selection,e),r=t.parent.parent,s=[...new q(r)],o={first:s.find(l=>l.cell===t).column,last:s.find(l=>l.cell===i).column},a=o5(s,t,i,o);this.editor.model.change(l=>{const c=o.last-o.first+1;e.removeColumns(r,{at:o.first,columns:c}),l.setSelection(l.createPositionAt(a,0))})}}function o5(n,e,t,i){return parseInt(t.getAttribute("colspan")||"1")>1?t:e.previousSibling||t.nextSibling?t.nextSibling||e.previousSibling:i.first?n.reverse().find(({column:s})=>s<i.first).cell:n.reverse().find(({column:s})=>s>i.last).cell}function a5(n,e){const t=e.getSelectionAffectedTableCells(n),i=t[0],r=t.pop(),s=[i,r];return i.isBefore(r)?s:s.reverse()}class l5 extends N{refresh(){const e=this.editor.plugins.get("TableUtils"),t=this.editor.model,i=e.getSelectionAffectedTableCells(t.document.selection);if(i.length===0){this.isEnabled=!1,this.value=!1;return}const r=i[0].findAncestor("table");this.isEnabled=t.schema.checkAttribute(r,"headingRows"),this.value=i.every(s=>this._isInHeading(s,s.parent.parent))}execute(e={}){if(e.forceValue===this.value)return;const t=this.editor.plugins.get("TableUtils"),i=this.editor.model,r=t.getSelectionAffectedTableCells(i.document.selection),s=r[0].findAncestor("table"),{first:o,last:a}=t.getRowIndexes(r),l=this.value?o:a+1,c=s.getAttribute("headingRows")||0;i.change(u=>{if(l){const d=l>c?c:0,h=rb(s,l,d);for(const{cell:m}of h)sb(m,l,u)}se("headingRows",l,s,u,0)})}_isInHeading(e,t){const i=parseInt(t.getAttribute("headingRows")||"0");return!!i&&e.parent.index<i}}class c5 extends N{refresh(){const e=this.editor.plugins.get("TableUtils"),t=this.editor.model,i=e.getSelectionAffectedTableCells(t.document.selection);if(i.length===0){this.isEnabled=!1,this.value=!1;return}const r=i[0].findAncestor("table");this.isEnabled=t.schema.checkAttribute(r,"headingColumns"),this.value=i.every(s=>ba(e,s))}execute(e={}){if(e.forceValue===this.value)return;const t=this.editor.plugins.get("TableUtils"),i=this.editor.model,r=t.getSelectionAffectedTableCells(i.document.selection),s=r[0].findAncestor("table"),{first:o,last:a}=t.getColumnIndexes(r),l=this.value?o:a+1;i.change(c=>{if(l){const u=ob(s,l);for(const{cell:d,column:h}of u)ab(d,h,l,c)}se("headingColumns",l,s,c,0)})}}const u5=5,va=40,d5=2,h5=3;function m5(n){const e=new Set;for(const t of n.document.differ.getChanges()){let i=null;switch(t.type){case"insert":i=["table","tableRow","tableCell"].includes(t.name)?t.position:null;break;case"remove":i=["tableRow","tableCell"].includes(t.name)?t.position:null;break;case"attribute":t.range.start.nodeAfter&&(i=["table","tableRow","tableCell"].includes(t.range.start.nodeAfter.name)?t.range.start:null);break}if(!i)continue;const r=i.nodeAfter&&i.nodeAfter.is("element","table")?i.nodeAfter:i.findAncestor("table");for(const s of n.createRangeOn(r).getItems())s.is("element","table")&&lr(s)&&e.add(s)}return e}function g5(n,e){return va*100/db(n,e)}function db(n,e){const t=fh(n,"tbody",e)||fh(n,"thead",e),i=e.editing.view.domConverter.mapViewToDom(t);return ka(i)}function fh(n,e,t){return[...[...t.editing.mapper.toViewElement(n).getChildren()].find(s=>s.is("element","table")).getChildren()].find(s=>s.is("element",e))}function ka(n){const e=E.window.getComputedStyle(n);return e.boxSizing==="border-box"?parseFloat(e.width)-parseFloat(e.paddingLeft)-parseFloat(e.paddingRight)-parseFloat(e.borderLeftWidth)-parseFloat(e.borderRightWidth):parseFloat(e.width)}function f5(n,e){const t=e.getCellLocation(n).column,i=n.getAttribute("colspan")||1;return{leftEdge:t,rightEdge:t+i-1}}function Be(n){const e=Math.pow(10,d5),t=typeof n=="number"?n:parseFloat(n);return Math.round(t*e)/e}function p5(n,e,t){return n<=e?Be(e):n>=t?Be(t):Be(n)}function b5(n,e){return Array(n).fill(e)}function Yn(n){return n.map(e=>typeof e=="number"?e:parseFloat(e)).filter(e=>!Number.isNaN(e)).reduce((e,t)=>e+t,0)}function Dl(n){const e=n.map(r=>r==="auto"?r:parseFloat(r.replace("%","")));let t=w5(e);const i=Yn(t);return i!==100&&(t=t.map(r=>Be(r*100/i)).map((r,s,o)=>{if(!(s===o.length-1))return r;const l=Yn(o);return Be(r+100-l)})),t.map(r=>r+"%")}function w5(n){const e=n.filter(r=>r==="auto").length;if(e===0)return n.map(r=>Be(r));const t=Yn(n),i=Math.max((100-t)/e,u5);return n.map(r=>r==="auto"?i:r).map(r=>Be(r))}function y5(n){const e=E.window.getComputedStyle(n);return e.boxSizing==="border-box"?parseInt(e.width):parseFloat(e.width)+parseFloat(e.paddingLeft)+parseFloat(e.paddingRight)+parseFloat(e.borderWidth)}function hb(n,e,t,i){for(let r=0;r<Math.max(t.length,n.length);r++){const s=n[r],o=t[r];o?s?i.setAttribute("columnWidth",o,s):i.appendElement("tableColumn",{columnWidth:o},e):i.remove(s)}}function lr(n){if(n.is("element","tableColumnGroup"))return n;const e=n.getChildren();return Array.from(e).find(t=>t.is("element","tableColumnGroup"))}function cr(n){const e=lr(n);return e?Array.from(e.getChildren()):[]}function v5(n){return cr(n).map(e=>e.getAttribute("columnWidth"))}function k5(n,e){return cr(n).reduce((i,r)=>{const s=r.getAttribute("columnWidth"),o=r.getAttribute("colSpan");if(!o)return i.push(s),i;for(let a=0;a<o;a++)i.push(s);return e.removeAttribute("colSpan",r),i},[])}class ge extends k{static get pluginName(){return"TableUtils"}static get isOfficialPlugin(){return!0}init(){this.decorate("insertColumns"),this.decorate("insertRows")}getCellLocation(e){const t=e.parent,i=t.parent,r=i.getChildIndex(t),s=new q(i,{row:r});for(const{cell:o,row:a,column:l}of s)if(o===e)return{row:a,column:l};}createTable(e,t){const i=e.createElement("table"),r=t.rows||2,s=t.columns||2;return Vo(e,i,0,r,s),t.headingRows&&se("headingRows",Math.min(t.headingRows,r),i,e,0),t.headingColumns&&se("headingColumns",Math.min(t.headingColumns,s),i,e,0),i}insertRows(e,t={}){const i=this.editor.model,r=t.at||0,s=t.rows||1,o=t.copyStructureFromAbove!==void 0,a=t.copyStructureFromAbove?r-1:r,l=this.getRows(e),c=this.getColumns(e);if(r>l)throw new p("tableutils-insertrows-insert-out-of-range",this,{options:t});i.change(u=>{const d=e.getAttribute("headingRows")||0;if(d>r&&se("headingRows",d+s,e,u,0),!o&&(r===0||r===l)){Vo(u,e,r,s,c);return}const h=o?Math.max(r,a):r,m=new q(e,{endRow:h}),g=new Array(c).fill(1);for(const{row:f,column:b,cellHeight:y,cellWidth:C,cell:L}of m){const O=f+y-1,U=f<r&&r<=O,x=f<=a&&a<=O;U?(u.setAttribute("rowspan",y+s,L),g[b]=-C):o&&x&&(g[b]=C)}for(let f=0;f<s;f++){const b=u.createElement("tableRow");u.insert(b,e,r);for(let y=0;y<g.length;y++){const C=g[y],L=u.createPositionAt(b,"end");C>0&&gi(u,L,C>1?{colspan:C}:void 0),y+=Math.abs(C)-1}}})}insertColumns(e,t={}){const i=this.editor.model,r=t.at||0,s=t.columns||1;i.change(o=>{const a=e.getAttribute("headingColumns");r<a&&o.setAttribute("headingColumns",a+s,e);const l=this.getColumns(e);if(r===0||l===r){for(const u of e.getChildren())u.is("element","tableRow")&&Ii(s,o,o.createPositionAt(u,r?"end":0));return}const c=new q(e,{column:r,includeAllSlots:!0});for(const u of c){const{row:d,cell:h,cellAnchorColumn:m,cellAnchorRow:g,cellWidth:f,cellHeight:b}=u;if(m<r){o.setAttribute("colspan",f+s,h);const y=g+b-1;for(let C=d;C<=y;C++)c.skipRow(C)}else Ii(s,o,u.getPositionBefore())}})}removeRows(e,t){const i=this.editor.model,r=t.rows||1,s=this.getRows(e),o=t.at,a=o+r-1;if(a>s-1)throw new p("tableutils-removerows-row-index-out-of-range",this,{table:e,options:t});i.change(l=>{const c={first:o,last:a},{cellsToMove:u,cellsToTrim:d}=L5(e,c);if(u.size){const h=a+1;T5(e,h,u,l)}for(let h=a;h>=o;h--)l.remove(e.getChild(h));for(const{rowspan:h,cell:m}of d)se("rowspan",h,m,l);C5(e,c,l),wa(e,this)||ya(e,this)})}removeColumns(e,t){const i=this.editor.model,r=t.at,s=t.columns||1,o=t.at+s-1;i.change(a=>{_5(e,{first:r,last:o},a);const l=cr(e);for(let c=o;c>=r;c--){for(const{cell:u,column:d,cellWidth:h}of[...new q(e)])d<=c&&h>1&&d+h>c?se("colspan",h-1,u,a):d===c&&a.remove(u);if(l[c]){const u=c===0?l[1]:l[c-1],d=parseFloat(l[c].getAttribute("columnWidth")),h=parseFloat(u.getAttribute("columnWidth"));a.remove(l[c]),a.setAttribute("columnWidth",d+h+"%",u)}}ya(e,this)||wa(e,this)})}splitCellVertically(e,t=2){const i=this.editor.model,s=e.parent.parent,o=parseInt(e.getAttribute("rowspan")||"1"),a=parseInt(e.getAttribute("colspan")||"1");i.change(l=>{if(a>1){const{newCellsSpan:c,updatedSpan:u}=ph(a,t);se("colspan",u,e,l);const d={};c>1&&(d.colspan=c),o>1&&(d.rowspan=o);const h=a>t?t-1:a-1;Ii(h,l,l.createPositionAfter(e),d)}if(a<t){const c=t-a,u=[...new q(s)],{column:d}=u.find(({cell:f})=>f===e),h=u.filter(({cell:f,cellWidth:b,column:y})=>{const C=f!==e&&y===d,L=y<d&&y+b>d;return C||L});for(const{cell:f,cellWidth:b}of h)l.setAttribute("colspan",b+c,f);const m={};o>1&&(m.rowspan=o),Ii(c,l,l.createPositionAfter(e),m);const g=s.getAttribute("headingColumns")||0;g>d&&se("headingColumns",g+c,s,l)}})}splitCellHorizontally(e,t=2){const i=this.editor.model,r=e.parent,s=r.parent,o=s.getChildIndex(r),a=parseInt(e.getAttribute("rowspan")||"1"),l=parseInt(e.getAttribute("colspan")||"1");i.change(c=>{if(a>1){const u=[...new q(s,{startRow:o,endRow:o+a-1,includeAllSlots:!0})],{newCellsSpan:d,updatedSpan:h}=ph(a,t);se("rowspan",h,e,c);const{column:m}=u.find(({cell:b})=>b===e),g={};d>1&&(g.rowspan=d),l>1&&(g.colspan=l);let f=0;for(const b of u){const{column:y,row:C}=b,L=C>=o+h,O=y===m;f>=d&&O&&(f=0),L&&O&&(f||Ii(1,c,b.getPositionBefore(),g),f++)}}if(a<t){const u=t-a,d=[...new q(s,{startRow:0,endRow:o})];for(const{cell:g,cellHeight:f,row:b}of d)if(g!==e&&b+f>o){const y=f+u;c.setAttribute("rowspan",y,g)}const h={};l>1&&(h.colspan=l),Vo(c,s,o+1,u,1,h);const m=s.getAttribute("headingRows")||0;m>o&&se("headingRows",m+u,s,c)}})}getColumns(e){return[...e.getChild(0).getChildren()].filter(i=>i.is("element","tableCell")).reduce((i,r)=>{const s=parseInt(r.getAttribute("colspan")||"1");return i+s},0)}getRows(e){return Array.from(e.getChildren()).reduce((t,i)=>i.is("element","tableRow")?t+1:t,0)}createTableWalker(e,t={}){return new q(e,t)}getSelectedTableCells(e){const t=[];for(const i of this.sortRanges(e.getRanges())){const r=i.getContainedElement();r&&r.is("element","tableCell")&&t.push(r)}return t}getTableCellsContainingSelection(e){const t=[];for(const i of e.getRanges()){const r=i.start.findAncestor("tableCell");r&&t.push(r)}return t}getSelectionAffectedTableCells(e){const t=this.getSelectedTableCells(e);return t.length?t:this.getTableCellsContainingSelection(e)}getRowIndexes(e){const t=e.map(i=>i.parent.index);return this._getFirstLastIndexesObject(t)}getColumnIndexes(e){const t=e[0].findAncestor("table"),r=[...new q(t)].filter(s=>e.includes(s.cell)).map(s=>s.column);return this._getFirstLastIndexesObject(r)}isSelectionRectangular(e){if(e.length<2||!this._areCellInTheSameTableSection(e))return!1;const t=new Set,i=new Set;let r=0;for(const o of e){const{row:a,column:l}=this.getCellLocation(o),c=parseInt(o.getAttribute("rowspan"))||1,u=parseInt(o.getAttribute("colspan"))||1;t.add(a),i.add(l),c>1&&t.add(a+c-1),u>1&&i.add(l+u-1),r+=c*u}return x5(t,i)==r}sortRanges(e){return Array.from(e).sort(E5)}_getFirstLastIndexesObject(e){const t=e.sort((s,o)=>s-o),i=t[0],r=t[t.length-1];return{first:i,last:r}}_areCellInTheSameTableSection(e){const t=e[0].findAncestor("table"),i=this.getRowIndexes(e),r=parseInt(t.getAttribute("headingRows"))||0;if(!this._areIndexesInSameSection(i,r))return!1;const s=this.getColumnIndexes(e),o=parseInt(t.getAttribute("headingColumns"))||0;return this._areIndexesInSameSection(s,o)}_areIndexesInSameSection({first:e,last:t},i){const r=e<i,s=t<i;return r===s}}function Vo(n,e,t,i,r,s={}){for(let o=0;o<i;o++){const a=n.createElement("tableRow");n.insert(a,e,t),Ii(r,n,n.createPositionAt(a,"end"),s)}}function Ii(n,e,t,i={}){for(let r=0;r<n;r++)gi(e,t,i)}function ph(n,e){if(n<e)return{newCellsSpan:1,updatedSpan:1};const t=Math.floor(n/e),i=n-t*e+t;return{newCellsSpan:t,updatedSpan:i}}function _5(n,e,t){const i=n.getAttribute("headingColumns")||0;if(i&&e.first<i){const r=Math.min(i-1,e.last)-e.first+1;t.setAttribute("headingColumns",i-r,n)}}function C5(n,{first:e,last:t},i){const r=n.getAttribute("headingRows")||0;if(e<r){const s=t<r?r-(t-e+1):e;se("headingRows",s,n,i,0)}}function L5(n,{first:e,last:t}){const i=new Map,r=[];for(const{row:s,column:o,cellHeight:a,cell:l}of new q(n,{endRow:t})){const c=s+a-1;if(s>=e&&s<=t&&c>t){const h=t-s+1,m=a-h;i.set(o,{cell:l,rowspan:m})}if(s<e&&c>=e){let h;c>=t?h=t-e+1:h=c-e+1,r.push({cell:l,rowspan:a-h})}}return{cellsToMove:i,cellsToTrim:r}}function T5(n,e,t,i){const s=[...new q(n,{includeAllSlots:!0,row:e})],o=n.getChild(e);let a;for(const{column:l,cell:c,isAnchor:u}of s)if(t.has(l)){const{cell:d,rowspan:h}=t.get(l),m=a?i.createPositionAfter(a):i.createPositionAt(o,0);i.move(i.createRangeOn(d),m),se("rowspan",h,d,i),a=d}else u&&(a=c)}function E5(n,e){const t=n.start,i=e.start;return t.isBefore(i)?-1:1}function x5(n,e){const t=Array.from(n.values()),i=Array.from(e.values()),r=Math.max(...t),s=Math.min(...t),o=Math.max(...i),a=Math.min(...i);return(r-s+1)*(o-a+1)}class S5 extends N{refresh(){const e=this.editor.plugins.get(ge),t=e.getSelectedTableCells(this.editor.model.document.selection);this.isEnabled=e.isSelectionRectangular(t)}execute(){const e=this.editor.model,t=this.editor.plugins.get(ge);e.change(i=>{const r=t.getSelectedTableCells(e.document.selection),s=r.shift(),{mergeWidth:o,mergeHeight:a}=I5(s,r,t);se("colspan",o,s,i),se("rowspan",a,s,i);for(const c of r)A5(c,s,i);const l=s.findAncestor("table");Ol(l,t),i.setSelection(s,"in")})}}function A5(n,e,t){bh(n)||(bh(e)&&t.remove(t.createRangeIn(e)),t.move(t.createRangeIn(n),t.createPositionAt(e,"end"))),t.remove(n)}function bh(n){const e=n.getChild(0);return n.childCount==1&&e.is("element","paragraph")&&e.isEmpty}function I5(n,e,t){let i=0,r=0;for(const c of e){const{row:u,column:d}=t.getCellLocation(c);i=wh(c,d,i,"colspan"),r=wh(c,u,r,"rowspan")}const{row:s,column:o}=t.getCellLocation(n),a=i-o,l=r-s;return{mergeWidth:a,mergeHeight:l}}function wh(n,e,t,i){const r=parseInt(n.getAttribute(i)||"1");return Math.max(t,e+r)}class P5 extends N{constructor(e){super(e),this.affectsData=!1}refresh(){const t=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=t.length>0}execute(){const e=this.editor.model,t=this.editor.plugins.get("TableUtils"),i=t.getSelectionAffectedTableCells(e.document.selection),r=t.getRowIndexes(i),s=i[0].findAncestor("table"),o=[];for(let a=r.first;a<=r.last;a++)for(const l of s.getChild(a).getChildren())o.push(e.createRangeOn(l));e.change(a=>{a.setSelection(o)})}}class R5 extends N{constructor(e){super(e),this.affectsData=!1}refresh(){const t=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=t.length>0}execute(){const e=this.editor.plugins.get("TableUtils"),t=this.editor.model,i=e.getSelectionAffectedTableCells(t.document.selection),r=i[0],s=i.pop(),o=r.findAncestor("table"),a=e.getCellLocation(r),l=e.getCellLocation(s),c=Math.min(a.column,l.column),u=Math.max(a.column,l.column),d=[];for(const h of new q(o,{startColumn:c,endColumn:u}))d.push(t.createRangeOn(h.cell));t.change(h=>{h.setSelection(d)})}}function M5(n){n.document.registerPostFixer(e=>B5(e,n))}function B5(n,e){const t=e.document.differ.getChanges();let i=!1;const r=new Set;for(const s of t){let o=null;s.type=="insert"&&s.name=="table"&&(o=s.position.nodeAfter),(s.type=="insert"||s.type=="remove")&&(s.name=="tableRow"||s.name=="tableCell")&&(o=s.position.findAncestor("table")),z5(s)&&(o=s.range.start.findAncestor("table")),o&&!r.has(o)&&(i=V5(o,n)||i,i=N5(o,n)||i,r.add(o))}return i}function V5(n,e){let t=!1;const i=O5(n);if(i.length){t=!0;for(const r of i)se("rowspan",r.rowspan,r.cell,e,1)}return t}function N5(n,e){let t=!1;const i=D5(n),r=[];for(const[l,c]of i.entries())!c&&n.getChild(l).is("element","tableRow")&&r.push(l);if(r.length){t=!0;for(const l of r.reverse())e.remove(n.getChild(l)),i.splice(l,1)}const s=i.filter((l,c)=>n.getChild(c).is("element","tableRow")),o=s[0];if(!s.every(l=>l===o)){const l=s.reduce((c,u)=>u>c?u:c,0);for(const[c,u]of s.entries()){const d=l-u;if(d){for(let h=0;h<d;h++)gi(e,e.createPositionAt(n.getChild(c),"end"));t=!0}}}return t}function O5(n){const e=parseInt(n.getAttribute("headingRows")||"0"),t=Array.from(n.getChildren()).reduce((r,s)=>s.is("element","tableRow")?r+1:r,0),i=[];for(const{row:r,cell:s,cellHeight:o}of new q(n)){if(o<2)continue;const l=r<e?e:t;if(r+o>l){const c=l-r;i.push({cell:s,rowspan:c})}}return i}function D5(n){const e=new Array(n.childCount).fill(0);for(const{rowIndex:t}of new q(n,{includeAllSlots:!0}))e[t]++;return e}function z5(n){if(n.type!=="attribute")return!1;const e=n.attributeKey;return e==="headingRows"||e==="colspan"||e==="rowspan"}function F5(n){n.document.registerPostFixer(e=>U5(e,n))}function U5(n,e){const t=e.document.differ.getChanges();let i=!1;for(const r of t)r.type=="insert"&&r.name=="table"&&(i=H5(r.position.nodeAfter,n)||i),r.type=="insert"&&r.name=="tableRow"&&(i=mb(r.position.nodeAfter,n)||i),r.type=="insert"&&r.name=="tableCell"&&(i=_a(r.position.nodeAfter,n)||i),(r.type=="remove"||r.type=="insert")&&j5(r)&&(i=_a(r.position.parent,n)||i);return i}function H5(n,e){let t=!1;for(const i of n.getChildren())i.is("element","tableRow")&&(t=mb(i,e)||t);return t}function mb(n,e){let t=!1;for(const i of n.getChildren())t=_a(i,e)||t;return t}function _a(n,e){if(n.childCount==0)return e.insertElement("paragraph",n),!0;const t=Array.from(n.getChildren()).filter(i=>i.is("$text"));for(const i of t)e.wrap(e.createRangeOn(i),"paragraph");return!!t.length}function j5(n){return n.position.parent.is("element","tableCell")?n.type=="insert"&&n.name=="$text"||n.type=="remove":!1}function W5(n,e){const t=n.document.differ;for(const i of t.getChanges()){let r,s=!1;if(i.type=="attribute"){const c=i.range.start.nodeAfter;if(!c||!c.is("element","table")||i.attributeKey!="headingRows"&&i.attributeKey!="headingColumns")continue;r=c,s=i.attributeKey=="headingRows"}else(i.name=="tableRow"||i.name=="tableCell")&&(r=i.position.findAncestor("table"),s=i.name=="tableRow");if(!r)continue;const o=r.getAttribute("headingRows")||0,a=r.getAttribute("headingColumns")||0,l=new q(r);for(const c of l){const d=c.row<o||c.column<a?"th":"td",h=e.mapper.toViewElement(c.cell);h&&h.is("element")&&h.name!=d&&e.reconvertItem(s?c.cell.parent:c.cell)}}}function q5(n,e){const t=n.document.differ,i=new Set;for(const r of t.getChanges()){const s=r.type=="attribute"?r.range.start.parent:r.position.parent;s.is("element","tableCell")&&i.add(s)}for(const r of i.values()){const s=Array.from(r.getChildren()).filter(o=>$5(o,e.mapper));for(const o of s)e.reconvertItem(o)}}function $5(n,e){if(!n.is("element","paragraph"))return!1;const t=e.toViewElement(n);return t?ib(n)!==t.is("element","span"):!1}class ur extends k{_additionalSlots;static get pluginName(){return"TableEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[ge]}constructor(e){super(e),this._additionalSlots=[]}init(){const e=this.editor,t=e.model,i=t.schema,r=e.conversion,s=e.plugins.get(ge);i.register("table",{inheritAllFrom:"$blockObject",allowAttributes:["headingRows","headingColumns"]}),i.register("tableRow",{allowIn:"table",isLimit:!0}),i.register("tableCell",{allowContentOf:"$container",allowIn:"tableRow",allowAttributes:["colspan","rowspan"],isLimit:!0,isSelectable:!0}),r.for("upcast").add(UR()),r.for("upcast").add(HR()),r.for("editingDowncast").elementToStructure({model:{name:"table",attributes:["headingRows"]},view:lh(s,{asWidget:!0,additionalSlots:this._additionalSlots})}),r.for("dataDowncast").elementToStructure({model:{name:"table",attributes:["headingRows"]},view:lh(s,{additionalSlots:this._additionalSlots})}),r.for("upcast").elementToElement({model:"tableRow",view:"tr"}),r.for("upcast").add(jR()),r.for("downcast").elementToElement({model:"tableRow",view:KR()}),r.for("upcast").elementToElement({model:"tableCell",view:"td"}),r.for("upcast").elementToElement({model:"tableCell",view:"th"}),r.for("upcast").add(ah("td")),r.for("upcast").add(ah("th")),r.for("editingDowncast").elementToElement({model:"tableCell",view:ch({asWidget:!0})}),r.for("dataDowncast").elementToElement({model:"tableCell",view:ch()}),r.for("editingDowncast").elementToElement({model:"paragraph",view:uh({asWidget:!0}),converterPriority:"high"}),r.for("dataDowncast").elementToElement({model:"paragraph",view:uh(),converterPriority:"high"}),r.for("downcast").attributeToAttribute({model:"colspan",view:"colspan"}),r.for("upcast").attributeToAttribute({model:{key:"colspan",value:yh("colspan")},view:"colspan"}),r.for("downcast").attributeToAttribute({model:"rowspan",view:"rowspan"}),r.for("upcast").attributeToAttribute({model:{key:"rowspan",value:yh("rowspan")},view:"rowspan"}),e.config.define("table.defaultHeadings.rows",0),e.config.define("table.defaultHeadings.columns",0),e.commands.add("insertTable",new YR(e)),e.commands.add("insertTableRowAbove",new dh(e,{order:"above"})),e.commands.add("insertTableRowBelow",new dh(e,{order:"below"})),e.commands.add("insertTableColumnLeft",new hh(e,{order:"left"})),e.commands.add("insertTableColumnRight",new hh(e,{order:"right"})),e.commands.add("removeTableRow",new n5(e)),e.commands.add("removeTableColumn",new s5(e)),e.commands.add("splitTableCellVertically",new mh(e,{direction:"vertically"})),e.commands.add("splitTableCellHorizontally",new mh(e,{direction:"horizontally"})),e.commands.add("mergeTableCells",new S5(e)),e.commands.add("mergeTableCellRight",new Rr(e,{direction:"right"})),e.commands.add("mergeTableCellLeft",new Rr(e,{direction:"left"})),e.commands.add("mergeTableCellDown",new Rr(e,{direction:"down"})),e.commands.add("mergeTableCellUp",new Rr(e,{direction:"up"})),e.commands.add("setTableColumnHeader",new c5(e)),e.commands.add("setTableRowHeader",new l5(e)),e.commands.add("selectTableRow",new P5(e)),e.commands.add("selectTableColumn",new R5(e)),M5(t),F5(t),this.listenTo(t.document,"change:data",()=>{W5(t,e.editing),q5(t,e.editing)})}registerAdditionalSlot(e){this._additionalSlots.push(e)}}function yh(n){return e=>{const t=parseInt(e.getAttribute(n));return Number.isNaN(t)||t<=0?null:t}}class vh extends S{items;keystrokes;focusTracker;constructor(e){super(e);const t=this.bindTemplate;this.items=this._createGridCollection(),this.keystrokes=new re,this.focusTracker=new te,this.set("rows",0),this.set("columns",0),this.bind("label").to(this,"columns",this,"rows",(i,r)=>`${r} × ${i}`),this.setTemplate({tag:"div",attributes:{class:["ck"]},children:[{tag:"div",attributes:{class:["ck-insert-table-dropdown__grid"]},on:{"mouseover@.ck-insert-table-dropdown-grid-box":t.to("boxover")},children:this.items},{tag:"div",attributes:{class:["ck","ck-insert-table-dropdown__label"],"aria-hidden":!0},children:[{text:t.to("label")}]}],on:{mousedown:t.to(i=>{i.preventDefault()}),click:t.to(()=>{this.fire("execute")})}}),this.on("boxover",(i,r)=>{const{row:s,column:o}=r.target.dataset;this.items.get((parseInt(s,10)-1)*10+(parseInt(o,10)-1)).focus()}),this.focusTracker.on("change:focusedElement",(i,r,s)=>{if(!s)return;const{row:o,column:a}=s.dataset;this.set({rows:parseInt(o),columns:parseInt(a)})}),this.on("change:columns",()=>this._highlightGridBoxes()),this.on("change:rows",()=>this._highlightGridBoxes())}render(){super.render(),bl({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:10,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection});for(const e of this.items)this.focusTracker.add(e.element);this.keystrokes.listenTo(this.element)}reset(){this.set({rows:1,columns:1})}focus(){this.items.get(0).focus()}focusLast(){this.items.get(0).focus()}_highlightGridBoxes(){const e=this.rows,t=this.columns;this.items.map((i,r)=>{const s=Math.floor(r/10),o=r%10,a=s<e&&o<t;i.set("isOn",a)})}_createGridButton(e,t,i,r){const s=new P(e);return s.set({label:r,class:"ck-insert-table-dropdown-grid-box"}),s.extendTemplate({attributes:{"data-row":t,"data-column":i}}),s}_createGridCollection(){const e=[];for(let t=0;t<100;t++){const i=Math.floor(t/10),r=t%10,s=`${i+1} × ${r+1}`;e.push(this._createGridButton(this.locale,i+1,r+1,s))}return this.createCollection(e)}}class G5 extends k{static get pluginName(){return"TableUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=this.editor.t,r=e.locale.contentLanguageDirection==="ltr";e.ui.componentFactory.add("insertTable",s=>{const o=e.commands.get("insertTable"),a=Fe(s);a.bind("isEnabled").to(o),a.buttonView.set({icon:yu,label:t("Insert table"),tooltip:!0});let l;return a.on("change:isOpen",()=>{l||(l=new vh(s),a.panelView.children.add(l),l.delegate("execute").to(a),a.on("execute",()=>{e.execute("insertTable",{rows:l.rows,columns:l.columns}),e.editing.view.focus()}))}),a}),e.ui.componentFactory.add("menuBar:insertTable",s=>{const o=e.commands.get("insertTable"),a=new ut(s),l=new vh(s);return l.delegate("execute").to(a),a.on("change:isOpen",(c,u,d)=>{d||l.reset()}),l.on("execute",()=>{e.execute("insertTable",{rows:l.rows,columns:l.columns}),e.editing.view.focus()}),a.buttonView.set({label:t("Table"),icon:yu}),a.panelView.children.add(l),a.bind("isEnabled").to(o),a}),e.ui.componentFactory.add("tableColumn",s=>{const o=[{type:"switchbutton",model:{commandName:"setTableColumnHeader",label:t("Header column"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:r?"insertTableColumnLeft":"insertTableColumnRight",label:t("Insert column left")}},{type:"button",model:{commandName:r?"insertTableColumnRight":"insertTableColumnLeft",label:t("Insert column right")}},{type:"button",model:{commandName:"removeTableColumn",label:t("Delete column")}},{type:"button",model:{commandName:"selectTableColumn",label:t("Select column")}}];return this._prepareDropdown(t("Column"),VT,o,s)}),e.ui.componentFactory.add("tableRow",s=>{const o=[{type:"switchbutton",model:{commandName:"setTableRowHeader",label:t("Header row"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:"insertTableRowAbove",label:t("Insert row above")}},{type:"button",model:{commandName:"insertTableRowBelow",label:t("Insert row below")}},{type:"button",model:{commandName:"removeTableRow",label:t("Delete row")}},{type:"button",model:{commandName:"selectTableRow",label:t("Select row")}}];return this._prepareDropdown(t("Row"),DT,o,s)}),e.ui.componentFactory.add("mergeTableCells",s=>{const o=[{type:"button",model:{commandName:"mergeTableCellUp",label:t("Merge cell up")}},{type:"button",model:{commandName:r?"mergeTableCellRight":"mergeTableCellLeft",label:t("Merge cell right")}},{type:"button",model:{commandName:"mergeTableCellDown",label:t("Merge cell down")}},{type:"button",model:{commandName:r?"mergeTableCellLeft":"mergeTableCellRight",label:t("Merge cell left")}},{type:"separator"},{type:"button",model:{commandName:"splitTableCellVertically",label:t("Split cell vertically")}},{type:"button",model:{commandName:"splitTableCellHorizontally",label:t("Split cell horizontally")}}];return this._prepareMergeSplitButtonDropdown(t("Merge cells"),NT,o,s)})}_prepareDropdown(e,t,i,r){const s=this.editor,o=Fe(r),a=this._fillDropdownWithListOptions(o,i);return o.buttonView.set({label:e,icon:t,tooltip:!0}),o.bind("isEnabled").toMany(a,"isEnabled",(...l)=>l.some(c=>c)),this.listenTo(o,"execute",l=>{s.execute(l.source.commandName),l.source instanceof er||s.editing.view.focus()}),o}_prepareMergeSplitButtonDropdown(e,t,i,r){const s=this.editor,o=Fe(r,tr),a="mergeTableCells",l=s.commands.get(a),c=this._fillDropdownWithListOptions(o,i);return o.buttonView.set({label:e,icon:t,tooltip:!0,isEnabled:!0}),o.bind("isEnabled").toMany([l,...c],"isEnabled",(...u)=>u.some(d=>d)),this.listenTo(o.buttonView,"execute",()=>{s.execute(a),s.editing.view.focus()}),this.listenTo(o,"execute",u=>{s.execute(u.source.commandName),s.editing.view.focus()}),o}_fillDropdownWithListOptions(e,t){const i=this.editor,r=[],s=new Re;for(const o of t)K5(o,i,r,s);return ir(e,s),r}}function K5(n,e,t,i){if(n.type==="button"||n.type==="switchbutton"){const r=n.model=new $n(n.model),{commandName:s,bindIsOn:o}=n.model,a=e.commands.get(s);t.push(a),r.set({commandName:s}),r.bind("isEnabled").to(a),o&&r.bind("isOn").to(a,"value"),r.set({withText:!0})}i.add(n)}class Ut extends k{static get pluginName(){return"TableSelection"}static get isOfficialPlugin(){return!0}static get requires(){return[ge,ge]}init(){const e=this.editor,t=e.model,i=e.editing.view;this.listenTo(t,"deleteContent",(r,s)=>this._handleDeleteContent(r,s),{priority:"high"}),this.listenTo(i.document,"insertText",(r,s)=>this._handleInsertTextEvent(r,s),{priority:"high"}),this._defineSelectionConverter(),this._enablePluginDisabling()}getSelectedTableCells(){const e=this.editor.plugins.get(ge),t=this.editor.model.document.selection,i=e.getSelectedTableCells(t);return i.length==0?null:i}getSelectionAsFragment(){const e=this.editor.plugins.get(ge),t=this.getSelectedTableCells();return t?this.editor.model.change(i=>{const r=i.createDocumentFragment(),{first:s,last:o}=e.getColumnIndexes(t),{first:a,last:l}=e.getRowIndexes(t),c=t[0].findAncestor("table");let u=l,d=o;if(e.isSelectionRectangular(t)){const g={firstColumn:s,lastColumn:o,firstRow:a,lastRow:l};u=cb(c,g),d=ub(c,g)}const m=nb(c,{startRow:a,startColumn:s,endRow:u,endColumn:d},i);return i.insert(m,r,0),r}):null}setCellSelection(e,t){const i=this._getCellsToSelect(e,t);this.editor.model.change(r=>{r.setSelection(i.cells.map(s=>r.createRangeOn(s)),{backward:i.backward})})}getFocusCell(){const i=[...this.editor.model.document.selection.getRanges()].pop().getContainedElement();return i&&i.is("element","tableCell")?i:null}getAnchorCell(){const e=this.editor.model.document.selection,i=ce(e.getRanges()).getContainedElement();return i&&i.is("element","tableCell")?i:null}_defineSelectionConverter(){const e=this.editor,t=new Set;e.conversion.for("editingDowncast").add(r=>r.on("selection",(s,o,a)=>{const l=a.writer;i(l);const c=this.getSelectedTableCells();if(!c)return;for(const d of c){const h=a.mapper.toViewElement(d);l.addClass("ck-editor__editable_selected",h),t.add(h)}const u=a.mapper.toViewElement(c[c.length-1]);l.setSelection(u,0)},{priority:"lowest"}));function i(r){for(const s of t)r.removeClass("ck-editor__editable_selected",s);t.clear()}}_enablePluginDisabling(){const e=this.editor;this.on("change:isEnabled",()=>{if(!this.isEnabled){const t=this.getSelectedTableCells();if(!t)return;e.model.change(i=>{const r=i.createPositionAt(t[0],0),s=e.model.schema.getNearestSelectionRange(r);i.setSelection(s)})}})}_handleDeleteContent(e,t){const i=this.editor.plugins.get(ge),r=t[0],s=t[1],o=this.editor.model,a=!s||s.direction=="backward",l=i.getSelectedTableCells(r);l.length&&(e.stop(),o.change(c=>{const u=l[a?l.length-1:0];o.change(h=>{for(const m of l)o.deleteContent(h.createSelection(m,"in"))});const d=o.schema.getNearestSelectionRange(c.createPositionAt(u,0));r.is("documentSelection")?c.setSelection(d):r.setTo(d)}))}_handleInsertTextEvent(e,t){const i=this.editor,r=this.getSelectedTableCells();if(!r)return;const s=i.editing.view,o=i.editing.mapper,a=r.map(l=>s.createRangeOn(o.toViewElement(l)));t.selection=s.createSelection(a),t.preventDefault()}_getCellsToSelect(e,t){const i=this.editor.plugins.get("TableUtils"),r=i.getCellLocation(e),s=i.getCellLocation(t),o=Math.min(r.row,s.row),a=Math.max(r.row,s.row),l=Math.min(r.column,s.column),c=parseInt(t.getAttribute("colspan")||"1")-1,u=Math.max(r.column,s.column+c),d=new Array(a-o+1).fill(null).map(()=>[]),h={startRow:o,endRow:a,startColumn:l,endColumn:u};for(const{row:f,cell:b}of new q(e.findAncestor("table"),h))d[f-o].push(b);const m=s.row<r.row,g=s.column<r.column;return m&&d.reverse(),g&&d.forEach(f=>f.reverse()),{cells:d.flat(),backward:m||g}}}class Z5 extends k{static get pluginName(){return"TableClipboard"}static get isOfficialPlugin(){return!0}static get requires(){return[In,Ke,Ut,ge]}init(){const t=this.editor.editing.view.document;this.listenTo(t,"copy",(i,r)=>this._onCopyCut(i,r)),this.listenTo(t,"cut",(i,r)=>this._onCopyCut(i,r)),this._listenToContentInsertion(),this.decorate("_replaceTableSlotCell")}_listenToContentInsertion(){const{editor:e}=this,t=e.plugins.get(Ke),i=e.plugins.get(Ut);let r=!1;t.on("contentInsertion",(s,o)=>{r=o.method==="paste"}),this.listenTo(e.model,"insertContent",(s,[o,a])=>{(r||i.getSelectedTableCells()!==null)&&this._onInsertContent(s,o,a)},{priority:"high"}),t.on("contentInsertion",()=>{r=!1},{priority:"lowest"})}_onCopyCut(e,t){const i=this.editor.editing.view,r=this.editor.plugins.get(Ut),s=this.editor.plugins.get(In);r.getSelectedTableCells()&&(e.name=="cut"&&!this.editor.model.canEditAt(this.editor.model.document.selection)||(t.preventDefault(),e.stop(),this.editor.model.enqueueChange({isUndoable:e.name==="cut"},()=>{const o=s._copySelectedFragmentWithMarkers(e.name,this.editor.model.document.selection,()=>r.getSelectionAsFragment());i.document.fire("clipboardOutput",{dataTransfer:t.dataTransfer,content:this.editor.data.toView(o),method:e.name})})))}_onInsertContent(e,t,i){if(i&&!i.is("documentSelection"))return;const r=this.editor.model,s=this.editor.plugins.get(ge),o=this.editor.plugins.get(In),a=this.getTableIfOnlyTableInContent(t,r);if(!a)return;const l=s.getSelectionAffectedTableCells(r.document.selection);if(!l.length){Ol(a,s);return}e.stop(),t.is("documentFragment")?o._pasteMarkersIntoTransformedElement(t.markers,c=>this._replaceSelectedCells(a,l,c)):this.editor.model.change(c=>{this._replaceSelectedCells(a,l,c)})}_replaceSelectedCells(e,t,i){const r=this.editor.plugins.get(ge),s={width:r.getColumns(e),height:r.getRows(e)},o=J5(t,s,i,r),a=o.lastRow-o.firstRow+1,l=o.lastColumn-o.firstColumn+1,c={startRow:0,startColumn:0,endRow:Math.min(a,s.height)-1,endColumn:Math.min(l,s.width)-1};e=nb(e,c,i);const u=t[0].findAncestor("table"),d=this._replaceSelectedCellsWithPasted(e,s,u,o,i);if(this.editor.plugins.get("TableSelection").isEnabled){const h=r.sortRanges(d.map(m=>i.createRangeOn(m)));i.setSelection(h)}else i.setSelection(d[0],0);return u}_replaceSelectedCellsWithPasted(e,t,i,r,s){const{width:o,height:a}=t,l=X5(e,o,a),c=[...new q(i,{startRow:r.firstRow,endRow:r.lastRow,startColumn:r.firstColumn,endColumn:r.lastColumn,includeAllSlots:!0})],u=[];let d;for(const b of c){const{row:y,column:C}=b;C===r.firstColumn&&(d=b.getPositionBefore());const L=y-r.firstRow,O=C-r.firstColumn,U=l[L%a][O%o],x=U?s.cloneElement(U):null,D=this._replaceTableSlotCell(b,x,d,s);D&&(lb(D,y,C,r.lastRow,r.lastColumn,s),u.push(D),d=s.createPositionAfter(D))}const h=parseInt(i.getAttribute("headingRows")||"0"),m=parseInt(i.getAttribute("headingColumns")||"0"),g=r.firstRow<h&&h<=r.lastRow,f=r.firstColumn<m&&m<=r.lastColumn;if(g){const b={first:r.firstColumn,last:r.lastColumn},y=Ca(i,h,b,s,r.firstRow);u.push(...y)}if(f){const b={first:r.firstRow,last:r.lastRow},y=La(i,m,b,s);u.push(...y)}return u}_replaceTableSlotCell(e,t,i,r){const{cell:s,isAnchor:o}=e;return o&&r.remove(s),t?(r.insert(t,i),t):null}getTableIfOnlyTableInContent(e,t){if(!e.is("documentFragment")&&!e.is("element"))return null;if(e.is("element","table"))return e;if(e.childCount==1&&e.getChild(0).is("element","table"))return e.getChild(0);const i=t.createRangeIn(e);for(const r of i.getItems())if(r.is("element","table")){const s=t.createRange(i.start,t.createPositionBefore(r));if(t.hasContent(s,{ignoreWhitespaces:!0}))return null;const o=t.createRange(t.createPositionAfter(r),i.end);return t.hasContent(o,{ignoreWhitespaces:!0})?null:r}return null}}function J5(n,e,t,i){const r=n[0].findAncestor("table"),s=i.getColumnIndexes(n),o=i.getRowIndexes(n),a={firstColumn:s.first,lastColumn:s.last,firstRow:o.first,lastRow:o.last},l=n.length===1;return l&&(a.lastRow+=e.height-1,a.lastColumn+=e.width-1,Y5(r,a.lastRow+1,a.lastColumn+1,i)),l||!i.isSelectionRectangular(n)?Q5(r,a,t):(a.lastRow=cb(r,a),a.lastColumn=ub(r,a)),a}function Y5(n,e,t,i){const r=i.getColumns(n),s=i.getRows(n);t>r&&i.insertColumns(n,{at:r,columns:t-r}),e>s&&i.insertRows(n,{at:s,rows:e-s})}function X5(n,e,t){const i=new Array(t).fill(null).map(()=>new Array(e).fill(null));for(const{column:r,row:s,cell:o}of new q(n))i[s][r]=o;return i}function Q5(n,e,t){const{firstRow:i,lastRow:r,firstColumn:s,lastColumn:o}=e,a={first:i,last:r},l={first:s,last:o};La(n,s,a,t),La(n,o+1,a,t),Ca(n,i,l,t),Ca(n,r+1,l,t,i)}function Ca(n,e,t,i,r=0){return e<1?void 0:rb(n,e,r).filter(({column:a,cellWidth:l})=>gb(a,l,t)).map(({cell:a})=>sb(a,e,i))}function La(n,e,t,i){return e<1?void 0:ob(n,e).filter(({row:o,cellHeight:a})=>gb(o,a,t)).map(({cell:o,column:a})=>ab(o,a,e,i))}function gb(n,e,t){const i=n+e-1,{first:r,last:s}=t,o=n>=r&&n<=s,a=n<r&&i>=r;return o||a}class eM extends k{static get pluginName(){return"TableKeyboard"}static get isOfficialPlugin(){return!0}static get requires(){return[Ut,ge]}init(){const e=this.editor,i=e.editing.view.document,r=e.t;this.listenTo(i,"arrowKey",(...s)=>this._onArrowKey(...s),{context:"table"}),this.listenTo(i,"tab",(...s)=>this._handleTabOnSelectedTable(...s),{context:"figure"}),this.listenTo(i,"tab",(...s)=>this._handleTab(...s),{context:["th","td"]}),e.accessibility.addKeystrokeInfoGroup({id:"table",label:r("Keystrokes that can be used in a table cell"),keystrokes:[{label:r("Move the selection to the next cell"),keystroke:"Tab"},{label:r("Move the selection to the previous cell"),keystroke:"Shift+Tab"},{label:r("Insert a new table row (when in the last cell of a table)"),keystroke:"Tab"},{label:r("Navigate through the table"),keystroke:[["arrowup"],["arrowright"],["arrowdown"],["arrowleft"]]}]})}_handleTabOnSelectedTable(e,t){const i=this.editor,s=i.model.document.selection.getSelectedElement();!s||!s.is("element","table")||(t.preventDefault(),t.stopPropagation(),e.stop(),i.model.change(o=>{o.setSelection(o.createRangeIn(s.getChild(0).getChild(0)))}))}_handleTab(e,t){const i=this.editor,r=this.editor.plugins.get(ge),s=this.editor.plugins.get("TableSelection"),o=i.model.document.selection,a=!t.shiftKey;let l=r.getTableCellsContainingSelection(o)[0];if(l||(l=s.getFocusCell()),!l)return;t.preventDefault(),t.stopPropagation(),e.stop();const c=l.parent,u=c.parent,d=u.getChildIndex(c),h=c.getChildIndex(l),m=h===0;if(!a&&m&&d===0){i.model.change(y=>{y.setSelection(y.createRangeOn(u))});return}const g=h===c.childCount-1,f=d===r.getRows(u)-1;if(a&&f&&g&&(i.execute("insertTableRowBelow"),d===r.getRows(u)-1)){i.model.change(y=>{y.setSelection(y.createRangeOn(u))});return}let b;if(a&&g)b=u.getChild(d+1).getChild(0);else if(!a&&m){const y=u.getChild(d-1);b=y.getChild(y.childCount-1)}else b=c.getChild(h+(a?1:-1));i.model.change(y=>{y.setSelection(y.createRangeIn(b))})}_onArrowKey(e,t){const i=this.editor,r=t.keyCode,s=Va(r,i.locale.contentLanguageDirection);this._handleArrowKeys(s,t.shiftKey)&&(t.preventDefault(),t.stopPropagation(),e.stop())}_handleArrowKeys(e,t){const i=this.editor.plugins.get(ge),r=this.editor.plugins.get("TableSelection"),s=this.editor.model,o=s.document.selection,a=["right","down"].includes(e),l=i.getSelectedTableCells(o);if(l.length){let u;return t?u=r.getFocusCell():u=a?l[l.length-1]:l[0],this._navigateFromCellInDirection(u,e,t),!0}const c=o.focus.findAncestor("tableCell");if(!c)return!1;if(!o.isCollapsed)if(t){if(o.isBackward==a&&!o.containsEntireContent(c))return!1}else{const u=o.getSelectedElement();if(!u||!s.schema.isObject(u))return!1}return this._isSelectionAtCellEdge(o,c,a)?(this._navigateFromCellInDirection(c,e,t),!0):!1}_isSelectionAtCellEdge(e,t,i){const r=this.editor.model,s=this.editor.model.schema,o=i?e.getLastPosition():e.getFirstPosition();if(!s.getLimitElement(o).is("element","tableCell"))return r.createPositionAt(t,i?"end":0).isTouching(o);const a=r.createSelection(o);return r.modifySelection(a,{direction:i?"forward":"backward"}),o.isEqual(a.focus)}_navigateFromCellInDirection(e,t,i=!1){const r=this.editor.model,s=e.findAncestor("table"),o=[...new q(s,{includeAllSlots:!0})],{row:a,column:l}=o[o.length-1],c=o.find(({cell:C})=>C==e);let{row:u,column:d}=c;switch(t){case"left":d--;break;case"up":u--;break;case"right":d+=c.cellWidth;break;case"down":u+=c.cellHeight;break}const h=u<0||u>a,m=d<0&&u<=0,g=d>l&&u>=a;if(h||m||g){r.change(C=>{C.setSelection(C.createRangeOn(s))});return}d<0?(d=i?0:l,u--):d>l&&(d=i?l:0,u++);const f=o.find(C=>C.row==u&&C.column==d).cell,b=["right","down"].includes(t),y=this.editor.plugins.get("TableSelection");if(i&&y.isEnabled){const C=y.getAnchorCell()||e;y.setCellSelection(C,f)}else{const C=r.createPositionAt(f,b?0:"end");r.change(L=>{L.setSelection(C)})}}}class fb extends xt{domEventType=["mousemove","mouseleave"];onDomEvent(e){this.fire(e.type,e)}}class tM extends k{static get pluginName(){return"TableMouse"}static get isOfficialPlugin(){return!0}static get requires(){return[Ut,ge]}init(){this.editor.editing.view.addObserver(fb),this._enableShiftClickSelection(),this._enableMouseDragSelection()}_enableShiftClickSelection(){const e=this.editor,t=e.plugins.get(ge);let i=!1;const r=e.plugins.get(Ut);this.listenTo(e.editing.view.document,"mousedown",(s,o)=>{const a=e.model.document.selection;if(!this.isEnabled||!r.isEnabled||!o.domEvent.shiftKey)return;const l=r.getAnchorCell()||t.getTableCellsContainingSelection(a)[0];if(!l)return;const c=this._getModelTableCellFromDomEvent(o);c&&kh(l,c)&&(i=!0,r.setCellSelection(l,c),o.preventDefault())}),this.listenTo(e.editing.view.document,"mouseup",()=>{i=!1}),this.listenTo(e.editing.view.document,"selectionChange",s=>{i&&s.stop()},{priority:"highest"})}_enableMouseDragSelection(){const e=this.editor;let t,i,r=!1,s=!1;const o=e.plugins.get(Ut);this.listenTo(e.editing.view.document,"mousedown",(a,l)=>{!this.isEnabled||!o.isEnabled||l.domEvent.shiftKey||l.domEvent.ctrlKey||l.domEvent.altKey||(t=this._getModelTableCellFromDomEvent(l))}),this.listenTo(e.editing.view.document,"mousemove",(a,l)=>{if(!l.domEvent.buttons||!t)return;const c=this._getModelTableCellFromDomEvent(l);c&&kh(t,c)&&(i=c,!r&&i!=t&&(r=!0)),r&&(s=!0,o.setCellSelection(t,i),l.preventDefault())}),this.listenTo(e.editing.view.document,"mouseup",()=>{r=!1,s=!1,t=null,i=null}),this.listenTo(e.editing.view.document,"selectionChange",a=>{s&&a.stop()},{priority:"highest"})}_getModelTableCellFromDomEvent(e){const t=e.target,i=this.editor.editing.view.createPositionAt(t,0);return this.editor.editing.mapper.toModelPosition(i).parent.findAncestor("tableCell",{includeSelf:!0})}}function kh(n,e){return n.parent.parent==e.parent.parent}class iM extends k{static get requires(){return[ur,G5,Ut,tM,eM,Z5,rr]}static get pluginName(){return"Table"}static get isOfficialPlugin(){return!0}}function Ss(n){const e=pb(n);return e||qs(n)}function pb(n){const e=n.getSelectedElement();return e&&bb(e)?e:null}function qs(n){const e=n.getFirstPosition();if(!e)return null;let t=e.parent;for(;t;){if(t.is("element")&&bb(t))return t;t=t.parent}return null}function bb(n){return!!n.getCustomProperty("table")&&oe(n)}class nM extends k{static get requires(){return[_s]}static get pluginName(){return"TableToolbar"}static get isOfficialPlugin(){return!0}afterInit(){const e=this.editor,t=e.t,i=e.plugins.get(_s),r=e.config.get("table.contentToolbar"),s=e.config.get("table.tableToolbar");r&&i.register("tableContent",{ariaLabel:t("Table toolbar"),items:r,getRelatedElement:qs}),s&&i.register("table",{ariaLabel:t("Table toolbar"),items:s,getRelatedElement:pb})}}class rM extends S{options;focusTracker;focusCycler;_focusables;dropdownView;inputView;keystrokes;_stillTyping;constructor(e,t){super(e),this.set("value",""),this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isEmpty",!0),this.options=t,this.focusTracker=new te,this._focusables=new pe,this.dropdownView=this._createDropdownView(),this.inputView=this._createInputTextView(),this.keystrokes=new re,this._stillTyping=!1,this.focusCycler=new xe({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-input-color"]},children:[this.dropdownView,this.inputView]}),this.on("change:value",(i,r,s)=>this._setInputValue(s))}render(){super.render(),[this.inputView,this.dropdownView.buttonView].forEach(e=>{this.focusTracker.add(e.element),this._focusables.add(e)}),this.keystrokes.listenTo(this.element)}focus(e){e===-1?this.focusCycler.focusLast():this.focusCycler.focusFirst()}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createDropdownView(){const e=this.locale,t=e.t,i=this.bindTemplate,r=this._createColorSelector(e),s=Fe(e),o=new S;return o.setTemplate({tag:"span",attributes:{class:["ck","ck-input-color__button__preview"],style:{backgroundColor:i.to("value")}},children:[{tag:"span",attributes:{class:["ck","ck-input-color__button__preview__no-color-indicator",i.if("value","ck-hidden",a=>a!="")]}}]}),s.buttonView.extendTemplate({attributes:{class:"ck-input-color__button"}}),s.buttonView.children.add(o),s.buttonView.label=t("Color picker"),s.buttonView.tooltip=!0,s.panelPosition=e.uiLanguageDirection==="rtl"?"se":"sw",s.panelView.children.add(r),s.bind("isEnabled").to(this,"isReadOnly",a=>!a),s.on("change:isOpen",(a,l,c)=>{c&&(r.updateSelectedColors(),r.showColorGridsFragment())}),s}_createInputTextView(){const e=this.locale,t=new Rf(e);return t.extendTemplate({on:{blur:t.bindTemplate.to("blur")}}),t.value=this.value,t.bind("isReadOnly","hasError").to(this),this.bind("isFocused","isEmpty").to(t),t.on("input",()=>{const i=t.element.value,r=this.options.colorDefinitions.find(s=>i===s.label);this._stillTyping=!0,this.value=r&&r.color||i}),t.on("blur",()=>{this._stillTyping=!1,this._setInputValue(t.element.value)}),t.delegate("input").to(this),t}_createColorSelector(e){const t=e.t,i=this.options.defaultColorValue||"",r=t(i?"Restore default":"Remove color"),s=new lx(e,{colors:this.options.colorDefinitions,columns:this.options.columns,removeButtonLabel:r,colorPickerLabel:t("Color picker"),colorPickerViewConfig:this.options.colorPickerConfig===!1?!1:{...this.options.colorPickerConfig,hideInput:!0}});s.appendUI(),s.on("execute",(a,l)=>{if(l.source==="colorPickerSaveButton"){this.dropdownView.isOpen=!1;return}this.value=l.value||i,this.fire("input"),l.source!=="colorPicker"&&(this.dropdownView.isOpen=!1)});let o=this.value;return s.on("colorPicker:cancel",()=>{this.value=o,this.fire("input"),this.dropdownView.isOpen=!1}),s.colorGridsFragmentView.colorPickerButtonView.on("execute",()=>{o=this.value}),s.bind("selectedColor").to(this,"value"),s}_setInputValue(e){if(!this._stillTyping){const t=_h(e),i=this.options.colorDefinitions.find(r=>t===_h(r.color));i?this.inputView.value=i.label:this.inputView.value=e||""}}}function _h(n){return n.replace(/([(,])\s+/g,"$1").replace(/^\s+|\s+(?=[),\s]|$)/g,"").replace(/,|\s/g," ")}const zl=n=>n==="";function Fl(n){return{none:n("None"),solid:n("Solid"),dotted:n("Dotted"),dashed:n("Dashed"),double:n("Double"),groove:n("Groove"),ridge:n("Ridge"),inset:n("Inset"),outset:n("Outset")}}function wb(n){return n('The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".')}function yb(n){return n('The value is invalid. Try "10px" or "2em" or simply "2".')}function As(n){return n=n.trim().toLowerCase(),zl(n)||Dg(n)}function Mn(n){return n=n.trim(),zl(n)||_b(n)||sl(n)||H1(n)}function vb(n){return n=n.trim(),zl(n)||_b(n)||sl(n)}function kb(n,e){const t=new Re,i=Fl(n.t);for(const r in i){const s={type:"button",model:new $n({_borderStyleValue:r,label:i[r],role:"menuitemradio",withText:!0})};r==="none"?s.model.bind("isOn").to(n,"borderStyle",o=>e==="none"?!o:o===r):s.model.bind("isOn").to(n,"borderStyle",o=>o===r),t.add(s)}return t}function Ta(n){const{view:e,icons:t,toolbar:i,labels:r,propertyName:s,nameToValue:o,defaultValue:a}=n;for(const l in r){const c=new P(e.locale);c.set({role:"radio",isToggleable:!0,label:r[l],icon:t[l],tooltip:r[l]});const u=o?o(l):l;c.bind("isOn").to(e,s,d=>{let h=d;return d===""&&a&&(h=a),u===h}),c.on("execute",()=>{!a&&u&&e[s]===u?e[s]=void 0:e[s]=u}),i.items.add(c)}}const Is=[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:!0},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}];function Ps(n){return(e,t,i)=>{const r=new rM(e.locale,{colorDefinitions:sM(n.colorConfig),columns:n.columns,defaultColorValue:n.defaultColorValue,colorPickerConfig:n.colorPickerConfig});return r.inputView.set({id:t,ariaDescribedById:i}),r.bind("isReadOnly").to(e,"isEnabled",s=>!s),r.bind("hasError").to(e,"errorText",s=>!!s),r.on("input",()=>{e.errorText=null}),e.bind("isEmpty","isFocused").to(r),r}}function _b(n){const e=parseFloat(n);return!Number.isNaN(e)&&n===String(e)}function sM(n){return n.map(e=>({color:e.model,label:e.label,options:{hasBorder:e.hasBorder}}))}class oM extends S{options;focusTracker;keystrokes;children;borderStyleDropdown;borderWidthInput;borderColorInput;backgroundInput;paddingInput;widthInput;heightInput;horizontalAlignmentToolbar;verticalAlignmentToolbar;saveButtonView;cancelButtonView;_focusables;_focusCycler;constructor(e,t){super(e),this.set({borderStyle:"",borderWidth:"",borderColor:"",padding:"",backgroundColor:"",width:"",height:"",horizontalAlignment:"",verticalAlignment:""}),this.options=t;const{borderStyleDropdown:i,borderWidthInput:r,borderColorInput:s,borderRowLabel:o}=this._createBorderFields(),{backgroundRowLabel:a,backgroundInput:l}=this._createBackgroundFields(),{widthInput:c,operatorLabel:u,heightInput:d,dimensionsLabel:h}=this._createDimensionFields(),{horizontalAlignmentToolbar:m,verticalAlignmentToolbar:g,alignmentLabel:f}=this._createAlignmentFields();this.focusTracker=new te,this.keystrokes=new re,this.children=this.createCollection(),this.borderStyleDropdown=i,this.borderWidthInput=r,this.borderColorInput=s,this.backgroundInput=l,this.paddingInput=this._createPaddingField(),this.widthInput=c,this.heightInput=d,this.horizontalAlignmentToolbar=m,this.verticalAlignmentToolbar=g;const{saveButtonView:b,cancelButtonView:y}=this._createActionButtons();this.saveButtonView=b,this.cancelButtonView=y,this._focusables=new pe,this._focusCycler=new xe({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.children.add(new qt(e,{label:this.t("Cell properties")})),this.children.add(new we(e,{labelView:o,children:[o,i,s,r],class:"ck-table-form__border-row"})),this.children.add(new we(e,{labelView:a,children:[a,l],class:"ck-table-form__background-row"})),this.children.add(new we(e,{children:[new we(e,{labelView:h,children:[h,c,u,d],class:"ck-table-form__dimensions-row"}),new we(e,{children:[this.paddingInput],class:"ck-table-cell-properties-form__padding-row"})]})),this.children.add(new we(e,{labelView:f,children:[f,m,g],class:"ck-table-cell-properties-form__alignment-row"})),this.children.add(new we(e,{children:[this.saveButtonView,this.cancelButtonView],class:"ck-table-form__action-row"})),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-table-form","ck-table-cell-properties-form"],tabindex:"-1"},children:this.children})}render(){super.render(),hi({view:this}),[this.borderColorInput,this.backgroundInput].forEach(e=>{this._focusCycler.chain(e.fieldView.focusCycler)}),[this.borderStyleDropdown,this.borderColorInput,this.borderWidthInput,this.backgroundInput,this.widthInput,this.heightInput,this.paddingInput,this.horizontalAlignmentToolbar,this.verticalAlignmentToolbar,this.saveButtonView,this.cancelButtonView].forEach(e=>{this._focusables.add(e),this.focusTracker.add(e.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBorderFields(){const e=this.options.defaultTableCellProperties,t={style:e.borderStyle,width:e.borderWidth,color:e.borderColor},i=Ps({colorConfig:this.options.borderColors,columns:5,defaultColorValue:t.color,colorPickerConfig:this.options.colorPickerConfig}),r=this.locale,s=this.t,o=s("Style"),a=new $e(r);a.text=s("Border");const l=Fl(s),c=new ue(r,zf);c.set({label:o,class:"ck-table-form__border-style"}),c.fieldView.buttonView.set({ariaLabel:o,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:o}),c.fieldView.buttonView.bind("label").to(this,"borderStyle",h=>l[h||"none"]),c.fieldView.on("execute",h=>{this.borderStyle=h.source._borderStyleValue}),c.bind("isEmpty").to(this,"borderStyle",h=>!h),ir(c.fieldView,kb(this,t.style),{role:"menu",ariaLabel:o});const u=new ue(r,Ge);u.set({label:s("Width"),class:"ck-table-form__border-width"}),u.fieldView.bind("value").to(this,"borderWidth"),u.bind("isEnabled").to(this,"borderStyle",Mr),u.fieldView.on("input",()=>{this.borderWidth=u.fieldView.element.value});const d=new ue(r,i);return d.set({label:s("Color"),class:"ck-table-form__border-color"}),d.fieldView.bind("value").to(this,"borderColor"),d.bind("isEnabled").to(this,"borderStyle",Mr),d.fieldView.on("input",()=>{this.borderColor=d.fieldView.value}),this.on("change:borderStyle",(h,m,g,f)=>{Mr(g)||(this.borderColor="",this.borderWidth=""),Mr(f)||(this.borderColor=t.color,this.borderWidth=t.width)}),{borderRowLabel:a,borderStyleDropdown:c,borderColorInput:d,borderWidthInput:u}}_createBackgroundFields(){const e=this.locale,t=this.t,i=new $e(e);i.text=t("Background");const r=Ps({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableCellProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),s=new ue(e,r);return s.set({label:t("Color"),class:"ck-table-cell-properties-form__background"}),s.fieldView.bind("value").to(this,"backgroundColor"),s.fieldView.on("input",()=>{this.backgroundColor=s.fieldView.value}),{backgroundRowLabel:i,backgroundInput:s}}_createDimensionFields(){const e=this.locale,t=this.t,i=new $e(e);i.text=t("Dimensions");const r=new ue(e,Ge);r.set({label:t("Width"),class:"ck-table-form__dimensions-row__width"}),r.fieldView.bind("value").to(this,"width"),r.fieldView.on("input",()=>{this.width=r.fieldView.element.value});const s=new S(e);s.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const o=new ue(e,Ge);return o.set({label:t("Height"),class:"ck-table-form__dimensions-row__height"}),o.fieldView.bind("value").to(this,"height"),o.fieldView.on("input",()=>{this.height=o.fieldView.element.value}),{dimensionsLabel:i,widthInput:r,operatorLabel:s,heightInput:o}}_createPaddingField(){const e=this.locale,t=this.t,i=new ue(e,Ge);return i.set({label:t("Padding"),class:"ck-table-cell-properties-form__padding"}),i.fieldView.bind("value").to(this,"padding"),i.fieldView.on("input",()=>{this.padding=i.fieldView.element.value}),i}_createAlignmentFields(){const e=this.locale,t=this.t,i=new $e(e),r={left:cl,center:rf,right:of,justify:sf,top:ZL,middle:KL,bottom:GL};i.text=t("Table cell text alignment");const s=new si(e),o=e.contentLanguageDirection==="rtl";s.set({isCompact:!0,role:"radiogroup",ariaLabel:t("Horizontal text alignment toolbar")}),Ta({view:this,icons:r,toolbar:s,labels:this._horizontalAlignmentLabels,propertyName:"horizontalAlignment",nameToValue:l=>{if(o){if(l==="left")return"right";if(l==="right")return"left"}return l},defaultValue:this.options.defaultTableCellProperties.horizontalAlignment});const a=new si(e);return a.set({isCompact:!0,role:"radiogroup",ariaLabel:t("Vertical text alignment toolbar")}),Ta({view:this,icons:r,toolbar:a,labels:this._verticalAlignmentLabels,propertyName:"verticalAlignment",defaultValue:this.options.defaultTableCellProperties.verticalAlignment}),{horizontalAlignmentToolbar:s,verticalAlignmentToolbar:a,alignmentLabel:i}}_createActionButtons(){const e=this.locale,t=this.t,i=new P(e),r=new P(e),s=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.paddingInput];return i.set({label:t("Save"),icon:Os,class:"ck-button-save",type:"submit",withText:!0}),i.bind("isEnabled").toMany(s,"errorText",(...o)=>o.every(a=>!a)),r.set({label:t("Cancel"),icon:Ns,class:"ck-button-cancel",withText:!0}),r.delegate("execute").to(this,"cancel"),{saveButtonView:i,cancelButtonView:r}}get _horizontalAlignmentLabels(){const e=this.locale,t=this.t,i=t("Align cell text to the left"),r=t("Align cell text to the center"),s=t("Align cell text to the right"),o=t("Justify cell text");return e.uiLanguageDirection==="rtl"?{right:s,center:r,left:i,justify:o}:{left:i,center:r,right:s,justify:o}}get _verticalAlignmentLabels(){const e=this.t;return{top:e("Align cell text to the top"),middle:e("Align cell text to the middle"),bottom:e("Align cell text to the bottom")}}}function Mr(n){return n!=="none"}const Ea=[de.defaultPositions.northArrowSouth,de.defaultPositions.northArrowSouthWest,de.defaultPositions.northArrowSouthEast,de.defaultPositions.southArrowNorth,de.defaultPositions.southArrowNorthWest,de.defaultPositions.southArrowNorthEast,de.defaultPositions.viewportStickyNorth];function Cb(n,e){const t=n.plugins.get("ContextualBalloon"),i=n.editing.view.document.selection;let r;e==="cell"?qs(i)&&(r=Tb(n)):Ss(i)&&(r=Lb(n)),r&&t.updatePosition(r)}function Lb(n){const e=n.model.document.selection,t=Ft(e),i=n.editing.mapper.toViewElement(t);return{target:n.editing.view.domConverter.mapViewToDom(i),positions:Ea}}function Tb(n){const e=n.editing.mapper,t=n.editing.view.domConverter,i=n.model.document.selection;if(i.rangeCount>1)return{target:()=>aM(i.getRanges(),n),positions:Ea};const r=Eb(i.getFirstPosition()),s=e.toViewElement(r);return{target:t.mapViewToDom(s),positions:Ea}}function Eb(n){return n.nodeAfter&&n.nodeAfter.is("element","tableCell")?n.nodeAfter:n.findAncestor("tableCell")}function aM(n,e){const t=e.editing.mapper,i=e.editing.view.domConverter,r=Array.from(n).map(s=>{const o=Eb(s.start),a=t.toViewElement(o);return new B(i.mapViewToDom(a))});return B.getBoundingRect(r)}function fi(n){if(!n||!DR(n))return n;const{top:e,right:t,bottom:i,left:r}=n;if(e==t&&t==i&&i==r)return e}function pi(n,e){const t=parseFloat(n);return Number.isNaN(t)||String(t)!==String(n)?n:`${t}${e}`}function $s(n,e={}){const t={borderStyle:"none",borderWidth:"",borderColor:"",backgroundColor:"",width:"",height:"",...n};return e.includeAlignmentProperty&&!t.alignment&&(t.alignment="center"),e.includePaddingProperty&&!t.padding&&(t.padding=""),e.includeVerticalAlignmentProperty&&!t.verticalAlignment&&(t.verticalAlignment="middle"),e.includeHorizontalAlignmentProperty&&!t.horizontalAlignment&&(t.horizontalAlignment=e.isRightToLeftContent?"right":"left"),t}function xb(n,e){return $s({borderStyle:"double",borderColor:"hsl(0, 0%, 70%)",borderWidth:"1px",...n},e)}function Ul(n,e){return $s({borderStyle:"solid",borderColor:"hsl(0, 0%, 75%)",borderWidth:"1px",...n},e)}const lM=500,Ch={borderStyle:"tableCellBorderStyle",borderColor:"tableCellBorderColor",borderWidth:"tableCellBorderWidth",height:"tableCellHeight",width:"tableCellWidth",padding:"tableCellPadding",backgroundColor:"tableCellBackgroundColor",horizontalAlignment:"tableCellHorizontalAlignment",verticalAlignment:"tableCellVerticalAlignment"};class cM extends k{_defaultContentTableCellProperties;_defaultLayoutTableCellProperties;_balloon;view;_viewWithContentTableDefaults;_viewWithLayoutTableDefaults;_undoStepBatch;_isReady;static get requires(){return[Et]}static get pluginName(){return"TableCellPropertiesUI"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("table.tableCellProperties",{borderColors:Is,backgroundColors:Is})}init(){const e=this.editor,t=e.t;this._defaultContentTableCellProperties=Ul(e.config.get("table.tableCellProperties.defaultProperties"),{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,includePaddingProperty:!0,isRightToLeftContent:e.locale.contentLanguageDirection==="rtl"}),this._defaultLayoutTableCellProperties=$s(void 0,{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,isRightToLeftContent:e.locale.contentLanguageDirection==="rtl"}),this._balloon=e.plugins.get(Et),this.view=null,this._isReady=!1,e.ui.componentFactory.add("tableCellProperties",i=>{const r=new P(i);r.set({label:t("Cell properties"),icon:BT,tooltip:!0}),this.listenTo(r,"execute",()=>this._showView());const s=Object.values(Ch).map(o=>e.commands.get(o));return r.bind("isEnabled").toMany(s,"isEnabled",(...o)=>o.some(a=>a)),r})}destroy(){super.destroy(),this.view&&this.view.destroy()}_createPropertiesView(e){const t=this.editor,i=t.config.get("table.tableCellProperties"),r=ys(i.borderColors),s=ws(t.locale,r),o=ys(i.backgroundColors),a=ws(t.locale,o),l=i.colorPicker!==!1,c=new oM(t.locale,{borderColors:s,backgroundColors:a,defaultTableCellProperties:e,colorPickerConfig:l?i.colorPicker||{}:!1}),u=t.t;c.render(),this.listenTo(c,"submit",()=>{this._hideView()}),this.listenTo(c,"cancel",()=>{this._undoStepBatch.operations.length&&t.execute("undo",this._undoStepBatch),this._hideView()}),c.keystrokes.set("Esc",(m,g)=>{this._hideView(),g()}),di({emitter:c,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const d=wb(u),h=yb(u);return c.on("change:borderStyle",this._getPropertyChangeCallback("tableCellBorderStyle")),c.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:c.borderColorInput,commandName:"tableCellBorderColor",errorText:d,validator:As})),c.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:c.borderWidthInput,commandName:"tableCellBorderWidth",errorText:h,validator:vb})),c.on("change:padding",this._getValidatedPropertyChangeCallback({viewField:c.paddingInput,commandName:"tableCellPadding",errorText:h,validator:Mn})),c.on("change:width",this._getValidatedPropertyChangeCallback({viewField:c.widthInput,commandName:"tableCellWidth",errorText:h,validator:Mn})),c.on("change:height",this._getValidatedPropertyChangeCallback({viewField:c.heightInput,commandName:"tableCellHeight",errorText:h,validator:Mn})),c.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:c.backgroundInput,commandName:"tableCellBackgroundColor",errorText:d,validator:As})),c.on("change:horizontalAlignment",this._getPropertyChangeCallback("tableCellHorizontalAlignment")),c.on("change:verticalAlignment",this._getPropertyChangeCallback("tableCellVerticalAlignment")),c}_fillViewFormFromCommandValues(){const e=this.editor.commands,t=e.get("tableCellBorderStyle");Object.entries(Ch).map(([i,r])=>{const s=i,o=this.view===this._viewWithContentTableDefaults?this._defaultContentTableCellProperties[s]||"":this._defaultLayoutTableCellProperties[s]||"";return[i,e.get(r).value||o]}).forEach(([i,r])=>{(i==="borderColor"||i==="borderWidth")&&t.value==="none"||this.view.set(i,r)}),this._isReady=!0}_showView(){const e=this.editor,t=Ss(e.editing.view.document.selection),i=t&&e.editing.mapper.toModelElement(t),r=!i||i.getAttribute("tableType")!=="layout";r&&!this._viewWithContentTableDefaults?this._viewWithContentTableDefaults=this._createPropertiesView(this._defaultContentTableCellProperties):!r&&!this._viewWithLayoutTableDefaults&&(this._viewWithLayoutTableDefaults=this._createPropertiesView(this._defaultLayoutTableCellProperties)),this.view=r?this._viewWithContentTableDefaults:this._viewWithLayoutTableDefaults,this.listenTo(e.ui,"update",()=>{this._updateView()}),this._fillViewFormFromCommandValues(),this._balloon.add({view:this.view,position:Tb(e)}),this._undoStepBatch=e.model.createBatch(),this.view.focus()}_hideView(){const e=this.editor;this.stopListening(e.ui,"update"),this._isReady=!1,this.view.saveButtonView.focus(),this._balloon.remove(this.view),this.editor.editing.view.focus()}_updateView(){const e=this.editor,t=e.editing.view.document;qs(t.selection)?this._isViewVisible&&Cb(e,"cell"):this._hideView()}get _isViewVisible(){return!!this.view&&this._balloon.visibleView===this.view}get _isViewInBalloon(){return!!this.view&&this._balloon.hasView(this.view)}_getPropertyChangeCallback(e){return(t,i,r)=>{this._isReady&&this.editor.execute(e,{value:r,batch:this._undoStepBatch})}}_getValidatedPropertyChangeCallback(e){const{commandName:t,viewField:i,validator:r,errorText:s}=e,o=Vl(()=>{i.errorText=s},lM);return(a,l,c)=>{o.cancel(),this._isReady&&(r(c)?(this.editor.execute(t,{value:c,batch:this._undoStepBatch}),i.errorText=null):o())}}}class St extends N{attributeName;_defaultValue;_defaultContentTableValue;_defaultLayoutTableValue;constructor(e,t,i){switch(super(e),this.attributeName=t,this._defaultContentTableValue=i,t){case"tableCellBorderStyle":this._defaultLayoutTableValue="none";break;case"tableCellHorizontalAlignment":this._defaultLayoutTableValue="left";break;case"tableCellVerticalAlignment":this._defaultLayoutTableValue="middle";break;default:this._defaultLayoutTableValue=void 0}}refresh(){const t=this.editor.model.document.selection,r=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(t),s=Ft(t);this._defaultValue=!s||s.getAttribute("tableType")!=="layout"?this._defaultContentTableValue:this._defaultLayoutTableValue,this.isEnabled=!!r.length,this.value=this._getSingleValue(r)}execute(e={}){const{value:t,batch:i}=e,r=this.editor.model,o=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(r.document.selection),a=this._getValueToSet(t);r.enqueueChange(i,l=>{a?o.forEach(c=>l.setAttribute(this.attributeName,a,c)):o.forEach(c=>l.removeAttribute(this.attributeName,c))})}_getAttribute(e){if(!e)return;const t=e.getAttribute(this.attributeName);if(t!==this._defaultValue)return t}_getValueToSet(e){if(e!==this._defaultValue)return e}_getSingleValue(e){const t=this._getAttribute(e[0]);return e.every(r=>this._getAttribute(r)===t)?t:void 0}}class uM extends St{constructor(e,t){super(e,"tableCellWidth",t)}_getValueToSet(e){if(e=pi(e,"px"),e!==this._defaultValue)return e}}class Sb extends k{static get pluginName(){return"TableCellWidthEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[ur]}init(){const e=this.editor,t=Ul(e.config.get("table.tableCellProperties.defaultProperties"));Zr(e.model.schema,e.conversion,{modelAttribute:"tableCellWidth",styleName:"width",defaultValue:t.width}),e.commands.add("tableCellWidth",new uM(e,t.width))}}class dM extends St{constructor(e,t){super(e,"tableCellPadding",t)}_getAttribute(e){if(!e)return;const t=fi(e.getAttribute(this.attributeName));if(t!==this._defaultValue)return t}_getValueToSet(e){const t=pi(e,"px");if(t!==this._defaultValue)return t}}class hM extends St{constructor(e,t){super(e,"tableCellHeight",t)}_getValueToSet(e){const t=pi(e,"px");if(t!==this._defaultValue)return t}}class mM extends St{constructor(e,t){super(e,"tableCellBackgroundColor",t)}}class gM extends St{constructor(e,t){super(e,"tableCellVerticalAlignment",t)}}class fM extends St{constructor(e,t){super(e,"tableCellHorizontalAlignment",t)}}class pM extends St{constructor(e,t){super(e,"tableCellBorderStyle",t)}_getAttribute(e){if(!e)return;const t=fi(e.getAttribute(this.attributeName));if(t!==this._defaultValue)return t}}class bM extends St{constructor(e,t){super(e,"tableCellBorderColor",t)}_getAttribute(e){if(!e)return;const t=fi(e.getAttribute(this.attributeName));if(t!==this._defaultValue)return t}}class wM extends St{constructor(e,t){super(e,"tableCellBorderWidth",t)}_getAttribute(e){if(!e)return;const t=fi(e.getAttribute(this.attributeName));if(t!==this._defaultValue)return t}_getValueToSet(e){const t=pi(e,"px");if(t!==this._defaultValue)return t}}const Lh=/^(top|middle|bottom)$/,Th=/^(left|center|right|justify)$/;class yM extends k{static get pluginName(){return"TableCellPropertiesEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[ur,Sb]}init(){const e=this.editor,t=e.model.schema,i=e.conversion;e.config.define("table.tableCellProperties.defaultProperties",{});const r=Ul(e.config.get("table.tableCellProperties.defaultProperties"),{includeVerticalAlignmentProperty:!0,includeHorizontalAlignmentProperty:!0,includePaddingProperty:!0,isRightToLeftContent:e.locale.contentLanguageDirection==="rtl"});e.data.addStyleProcessorRules(Fg),vM(t,i,{color:r.borderColor,style:r.borderStyle,width:r.borderWidth}),e.commands.add("tableCellBorderStyle",new pM(e,r.borderStyle)),e.commands.add("tableCellBorderColor",new bM(e,r.borderColor)),e.commands.add("tableCellBorderWidth",new wM(e,r.borderWidth)),Zr(t,i,{modelAttribute:"tableCellHeight",styleName:"height",defaultValue:r.height}),e.commands.add("tableCellHeight",new hM(e,r.height)),e.data.addStyleProcessorRules(sC),Zr(t,i,{modelAttribute:"tableCellPadding",styleName:"padding",reduceBoxSides:!0,defaultValue:r.padding}),e.commands.add("tableCellPadding",new dM(e,r.padding)),e.data.addStyleProcessorRules(zg),Zr(t,i,{modelAttribute:"tableCellBackgroundColor",styleName:"background-color",defaultValue:r.backgroundColor}),e.commands.add("tableCellBackgroundColor",new mM(e,r.backgroundColor)),kM(t,i,r.horizontalAlignment),e.commands.add("tableCellHorizontalAlignment",new fM(e,r.horizontalAlignment)),_M(t,i,r.verticalAlignment),e.commands.add("tableCellVerticalAlignment",new gM(e,r.verticalAlignment))}}function vM(n,e,t){const i={width:"tableCellBorderWidth",color:"tableCellBorderColor",style:"tableCellBorderStyle"};n.extend("tableCell",{allowAttributes:Object.values(i)}),pa(e,"td",i,t),pa(e,"th",i,t),Rn(e,{modelElement:"tableCell",modelAttribute:i.style,styleName:"border-style"}),Rn(e,{modelElement:"tableCell",modelAttribute:i.color,styleName:"border-color"}),Rn(e,{modelElement:"tableCell",modelAttribute:i.width,styleName:"border-width"})}function kM(n,e,t){n.extend("tableCell",{allowAttributes:["tableCellHorizontalAlignment"]}),e.for("downcast").attributeToAttribute({model:{name:"tableCell",key:"tableCellHorizontalAlignment"},view:i=>({key:"style",value:{"text-align":i}})}),e.for("upcast").attributeToAttribute({view:{name:/^(td|th)$/,styles:{"text-align":Th}},model:{key:"tableCellHorizontalAlignment",value:(i,r,s)=>{const o=zt(t,"left",s),a=i.getStyle("text-align");return a===o?null:a}}}).attributeToAttribute({view:{name:/^(td|th)$/,attributes:{align:Th}},model:{key:"tableCellHorizontalAlignment",value:(i,r,s)=>{const o=zt(t,"left",s),a=i.getAttribute("align");return a===o?null:a}}})}function _M(n,e,t){n.extend("tableCell",{allowAttributes:["tableCellVerticalAlignment"]}),e.for("downcast").attributeToAttribute({model:{name:"tableCell",key:"tableCellVerticalAlignment"},view:i=>({key:"style",value:{"vertical-align":i}})}),e.for("upcast").attributeToAttribute({view:{name:/^(td|th)$/,styles:{"vertical-align":Lh}},model:{key:"tableCellVerticalAlignment",value:(i,r,s)=>{const o=zt(t,"middle",s),a=i.getStyle("vertical-align");return a===o?null:a}}}).attributeToAttribute({view:{name:/^(td|th)$/,attributes:{valign:Lh}},model:{key:"tableCellVerticalAlignment",value:(i,r,s)=>{const o=zt(t,"middle",s),a=i.getAttribute("valign");return a===o?null:a}}})}class CM extends k{static get pluginName(){return"TableCellProperties"}static get isOfficialPlugin(){return!0}static get requires(){return[yM,cM]}}class LM extends N{refresh(){this.isEnabled=!0}execute(e={}){const{model:t,plugins:i}=this.editor;let{table:r=t.document.selection.getSelectedElement(),columnWidths:s,tableWidth:o}=e;s&&(s=Array.isArray(s)?s:s.split(",")),t.change(a=>{o?a.setAttribute("tableWidth",o,r):a.removeAttribute("tableWidth",r);const l=i.get("TableColumnResizeEditing").getColumnGroupElement(r);if(!s&&!l)return;if(!s)return a.remove(l);const c=Dl(s);if(l)Array.from(l.getChildren()).forEach((u,d)=>a.setAttribute("columnWidth",c[d],u));else{const u=a.createElement("tableColumnGroup");c.forEach(d=>a.appendElement("tableColumn",{columnWidth:d},u)),a.append(u,r)}})}}function TM(n){return e=>e.on("element:colgroup",(t,i,r)=>{const s=i.modelCursor.findAncestor("table"),o=lr(s);if(!o)return;const a=cr(o),l=n.getColumns(s);let c=k5(o,r.writer);c=Array.from({length:l},(u,d)=>c[d]||"auto"),(c.length!=a.length||c.includes("auto"))&&hb(a,o,Dl(c),r.writer)},{priority:"low"})}function EM(){return n=>n.on("insert:table",(e,t,i)=>{const r=i.writer,s=t.item,o=i.mapper.toViewElement(s),a=o.is("element","table")?o:Array.from(o.getChildren()).find(c=>c.is("element","table"));lr(s)?r.addClass("ck-table-resized",a):r.removeClass("ck-table-resized",a)},{priority:"low"})}const Eh=Gi("px");class xM extends k{_isResizingActive;_resizingData;_domEmitter;_tableUtilsPlugin;_initialMouseEventData=null;static get requires(){return[ur,ge]}static get pluginName(){return"TableColumnResizeEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this._isResizingActive=!1,this.set("_isResizingAllowed",!0),this._resizingData=null,this._domEmitter=new(Ee()),this._tableUtilsPlugin=e.plugins.get("TableUtils"),this.on("change:_isResizingAllowed",(t,i,r)=>{const s=r?"removeClass":"addClass";e.editing.view.change(o=>{for(const a of e.editing.view.document.roots)o[s]("ck-column-resize_disabled",e.editing.view.document.getRoot(a.rootName))})})}init(){this._extendSchema(),this._registerPostFixer(),this._registerConverters(),this._registerResizingListeners(),this._registerResizerInserter();const e=this.editor,t=e.plugins.get("TableColumnResize");e.plugins.get("TableEditing").registerAdditionalSlot({filter:s=>s.is("element","tableColumnGroup"),positionOffset:0});const r=new LM(e);e.commands.add("resizeTableWidth",r),e.commands.add("resizeColumnWidths",r),this.bind("_isResizingAllowed").to(e,"isReadOnly",t,"isEnabled",r,"isEnabled",(s,o,a)=>!s&&o&&a)}destroy(){this._domEmitter.stopListening(),super.destroy()}getColumnGroupElement(e){return lr(e)}getTableColumnElements(e){return cr(e)}getTableColumnsWidths(e){return v5(e)}_extendSchema(){this.editor.model.schema.extend("table",{allowAttributes:["tableWidth"]}),this.editor.model.schema.register("tableColumnGroup",{allowIn:"table",isLimit:!0}),this.editor.model.schema.register("tableColumn",{allowIn:"tableColumnGroup",allowAttributes:["columnWidth","colSpan"],isLimit:!0})}_registerPostFixer(){const t=this.editor.model;t.document.registerPostFixer(s=>{let o=!1;for(const a of m5(t)){const l=this.getColumnGroupElement(a),c=this.getTableColumnElements(l),u=this.getTableColumnsWidths(l);let d=Dl(u);d=i(d,a,this),!oh(u,d)&&(hb(c,l,d,s),o=!0)}return o});function i(s,o,a){const l=a._tableUtilsPlugin.getColumns(o);if(l-s.length===0)return s;const u=s.map(h=>Number(h.replace("%",""))),d=r(a.editor.model.document.differ,o);for(const h of d){const m=l-u.length;if(m===0)continue;const g=m>0,f=a._tableUtilsPlugin.getCellLocation(h).column;if(g){const b=g5(o,a.editor),y=b5(m,b);u.splice(f,0,...y)}else{const b=u.splice(f,Math.abs(m));u[f]+=Yn(b)}}return u.map(h=>h+"%")}function r(s,o){const a=new Set;for(const l of s.getChanges())if(l.type=="insert"&&l.position.nodeAfter&&l.position.nodeAfter.name=="tableCell"&&l.position.nodeAfter.getAncestors().includes(o))a.add(l.position.nodeAfter);else if(l.type=="remove"){const c=l.position.nodeBefore||l.position.nodeAfter;c.name=="tableCell"&&c.getAncestors().includes(o)&&a.add(c)}return a}}_registerConverters(){const t=this.editor.conversion;t.for("upcast").attributeToAttribute({view:{name:/^(figure|table)$/,styles:{width:/[\s\S]+/}},model:{name:"table",key:"tableWidth",value:i=>{if(!i.parent.is("element","figure"))return i.getStyle("width")}}}),t.for("downcast").attributeToAttribute({model:{name:"table",key:"tableWidth"},view:i=>({name:"figure",key:"style",value:{width:i}})}),t.elementToElement({model:"tableColumnGroup",view:"colgroup"}),t.elementToElement({model:"tableColumn",view:"col"}),t.for("downcast").add(EM()),t.for("upcast").add(TM(this._tableUtilsPlugin)),t.for("upcast").attributeToAttribute({view:{name:"col",styles:{width:/.*/}},model:{key:"columnWidth",value:i=>{const r=i.getStyle("width");return!r||!r.endsWith("%")&&!r.endsWith("pt")?"auto":r}}}),t.for("upcast").attributeToAttribute({view:{name:"col",key:"span"},model:"colSpan"}),t.for("downcast").attributeToAttribute({model:{name:"tableColumn",key:"columnWidth"},view:i=>({key:"style",value:{width:i}})})}_registerResizingListeners(){const e=this.editor.editing.view;e.addObserver(fb),e.document.on("mouseover",this._onMouseOverHandler.bind(this),{priority:"high"}),e.document.on("mousedown",this._onMouseDownHandler.bind(this),{priority:"high"}),e.document.on("mouseout",this._onMouseOutHandler.bind(this),{priority:"high"}),this._domEmitter.listenTo(E.window.document,"mousemove",FR(this._onMouseMoveHandler.bind(this),50)),this._domEmitter.listenTo(E.window.document,"mouseup",this._onMouseUpHandler.bind(this))}_recalculateResizerElement(e){const t=this.editor,i=t.editing.view.domConverter,r=i.mapViewToDom(e.findAncestor("table")),s=i.mapViewToDom(e.findAncestor(u=>["td","th"].includes(u.name))),o=new B(r),a=new B(s),l=Eh(Number((o.top-a.top).toFixed(4))),c=Eh(Number((a.bottom-o.bottom).toFixed(4)));t.editing.view.change(u=>{u.setStyle("top",l,e),u.setStyle("bottom",c,e)})}_resetResizerStyles(e){this.editor.editing.view.change(t=>{t.removeStyle("top",e),t.removeStyle("bottom",e)})}_onMouseOverHandler(e,t){const i=t.target;i.hasClass("ck-table-column-resizer")&&this._isResizingAllowed&&this._recalculateResizerElement(i)}_onMouseOutHandler(e,t){const i=t.target;i.hasClass("ck-table-column-resizer")&&this._isResizingAllowed&&(this._isResizingActive||this._resetResizerStyles(i))}_onMouseDownHandler(e,t){const i=t.target;if(!i.hasClass("ck-table-column-resizer")||!this._isResizingAllowed)return;const r=this.editor,s=r.editing.mapper.toModelElement(i.findAncestor("figure"));r.model.canEditAt(s)&&(t.preventDefault(),e.stop(),this._initialMouseEventData=t)}_startResizingAfterThreshold(){const e=this._initialMouseEventData,{target:t}=e,i=this.editor.editing.mapper.toModelElement(t.findAncestor("figure")),r=t.findAncestor("table"),s=o(i,this._tableUtilsPlugin,this.editor);Array.from(r.getChildren()).find(c=>c.is("element","colgroup"))||this.editor.editing.view.change(c=>{a(c,s,r)}),this._isResizingActive=!0,this._resizingData=this._getResizingData(e,s),this.editor.editing.view.change(c=>l(c,r,this._resizingData));function o(c,u,d){const h=Array(u.getColumns(c)),m=new q(c);for(const g of m){const f=d.editing.mapper.toViewElement(g.cell),b=d.editing.view.domConverter.mapViewToDom(f),y=y5(b);(!h[g.column]||y<h[g.column])&&(h[g.column]=Be(y))}return h}function a(c,u,d){const h=c.createContainerElement("colgroup");for(let m=0;m<u.length;m++){const g=c.createEmptyElement("col"),f=`${Be(u[m]/Yn(u)*100)}%`;c.setStyle("width",f,g),c.insert(c.createPositionAt(h,"end"),g)}c.insert(c.createPositionAt(d,0),h)}function l(c,u,d){const h=d.widths.viewFigureWidth/d.widths.viewFigureParentWidth;c.addClass("ck-table-resized",u),c.addClass("ck-table-column-resizer__active",d.elements.viewResizer),c.setStyle("width",`${Be(h*100)}%`,u.findAncestor("figure"))}}_onMouseMoveHandler(e,t){if(this._initialMouseEventData){const L=this._initialMouseEventData.domEvent;if(Math.abs(t.clientX-L.clientX)>=h5)this._startResizingAfterThreshold(),this._initialMouseEventData=null;else return}if(!this._isResizingActive)return;if(!this._isResizingAllowed){this._onMouseUpHandler();return}const{columnPosition:i,flags:{isRightEdge:r,isTableCentered:s,isLtrContent:o},elements:{viewFigure:a,viewLeftColumn:l,viewRightColumn:c,viewResizer:u},widths:{viewFigureParentWidth:d,tableWidth:h,leftColumnWidth:m,rightColumnWidth:g}}=this._resizingData,f=-m+va,b=r?d-h:g-va,y=(o?1:-1)*(r&&s?2:1),C=p5((t.clientX-i)*y,Math.min(f,0),Math.max(b,0));C!==0&&(this.editor.editing.view.change(L=>{const O=Be((m+C)*100/h);if(L.setStyle("width",`${O}%`,l),r){const U=Be((h+C)*100/d);L.setStyle("width",`${U}%`,a)}else{const U=Be((g-C)*100/h);L.setStyle("width",`${U}%`,c)}}),this._recalculateResizerElement(u))}_onMouseUpHandler(){if(this._initialMouseEventData=null,!this._isResizingActive)return;const{viewResizer:e,modelTable:t,viewFigure:i,viewColgroup:r}=this._resizingData.elements,s=this.editor,o=s.editing.view,a=this.getColumnGroupElement(t),l=Array.from(r.getChildren()).filter(b=>b.is("view:element")),c=a?this.getTableColumnsWidths(a):null,u=l.map(b=>b.getStyle("width")),d=!oh(c,u),h=t.getAttribute("tableWidth"),m=i.getStyle("width"),g=h!==m;(d||g)&&(this._isResizingAllowed?s.execute("resizeTableWidth",{table:t,tableWidth:`${Be(m)}%`,columnWidths:u}):o.change(b=>{if(c)for(const y of l)b.setStyle("width",c.shift(),y);else b.remove(r);g&&(h?b.setStyle("width",h,i):b.removeStyle("width",i)),!c&&!h&&b.removeClass("ck-table-resized",[...i.getChildren()].find(y=>y.name==="table"))})),o.change(b=>{b.removeClass("ck-table-column-resizer__active",e)}),o.domConverter.mapViewToDom(e).matches(":hover")||this._resetResizerStyles(e),this._isResizingActive=!1,this._resizingData=null}_getResizingData(e,t){const i=this.editor,r=e.domEvent.clientX,s=e.target,o=s.findAncestor("td")||s.findAncestor("th"),a=i.editing.mapper.toModelElement(o),l=a.findAncestor("table"),c=f5(a,this._tableUtilsPlugin).rightEdge,u=this._tableUtilsPlugin.getColumns(l)-1,d=c===u,h=!l.hasAttribute("tableAlignment"),m=i.locale.contentLanguageDirection!=="rtl",g=o.findAncestor("table"),f=g.findAncestor("figure"),b=[...g.getChildren()].find(I=>I.is("element","colgroup")),y=b.getChild(c),C=d?void 0:b.getChild(c+1),L=ka(i.editing.view.domConverter.mapViewToDom(f.parent)),O=ka(i.editing.view.domConverter.mapViewToDom(f)),U=db(l,i),x=t[c],D=d?void 0:t[c+1];return{columnPosition:r,flags:{isRightEdge:d,isTableCentered:h,isLtrContent:m},elements:{viewResizer:s,modelTable:l,viewFigure:f,viewColgroup:b,viewLeftColumn:y,viewRightColumn:C},widths:{viewFigureParentWidth:L,viewFigureWidth:O,tableWidth:U,leftColumnWidth:x,rightColumnWidth:D}}}_registerResizerInserter(){this.editor.conversion.for("editingDowncast").add(e=>{e.on("insert:tableCell",(t,i,r)=>{const s=i.item,o=r.mapper.toViewElement(s),a=r.writer;a.insert(a.createPositionAt(o,"end"),a.createUIElement("div",{class:"ck-table-column-resizer"}))},{priority:"lowest"})})}}class SM extends k{static get requires(){return[xM,Sb]}static get pluginName(){return"TableColumnResize"}static get isOfficialPlugin(){return!0}}class bi extends N{attributeName;_defaultValue;_defaultContentTableValue;_defaultLayoutTableValue;constructor(e,t,i){super(e),this.attributeName=t,this._defaultContentTableValue=i,this._defaultLayoutTableValue=t==="tableBorderStyle"?"none":void 0}refresh(){const t=this.editor.model.document.selection,i=Ft(t);this._defaultValue=!i||i.getAttribute("tableType")!=="layout"?this._defaultContentTableValue:this._defaultLayoutTableValue,this.isEnabled=!!i,this.value=this._getValue(i)}execute(e={}){const t=this.editor.model,i=t.document.selection,{value:r,batch:s}=e,o=Ft(i),a=this._getValueToSet(r);t.enqueueChange(s,l=>{a?l.setAttribute(this.attributeName,a,o):l.removeAttribute(this.attributeName,o)})}_getValue(e){if(!e)return;const t=e.getAttribute(this.attributeName);if(t!==this._defaultValue)return t}_getValueToSet(e){if(e!==this._defaultValue)return e}}class AM extends bi{constructor(e,t){super(e,"tableBackgroundColor",t)}}class IM extends bi{constructor(e,t){super(e,"tableBorderColor",t)}_getValue(e){if(!e)return;const t=fi(e.getAttribute(this.attributeName));if(t!==this._defaultValue)return t}}class PM extends bi{constructor(e,t){super(e,"tableBorderStyle",t)}_getValue(e){if(!e)return;const t=fi(e.getAttribute(this.attributeName));if(t!==this._defaultValue)return t}}class RM extends bi{constructor(e,t){super(e,"tableBorderWidth",t)}_getValue(e){if(!e)return;const t=fi(e.getAttribute(this.attributeName));if(t!==this._defaultValue)return t}_getValueToSet(e){const t=pi(e,"px");if(t!==this._defaultValue)return t}}class MM extends bi{constructor(e,t){super(e,"tableWidth",t)}_getValueToSet(e){if(e=pi(e,"px"),e!==this._defaultValue)return e}}class BM extends bi{constructor(e,t){super(e,"tableHeight",t)}_getValueToSet(e){if(e=pi(e,"px"),e!==this._defaultValue)return e}}class VM extends bi{constructor(e,t){super(e,"tableAlignment",t)}}const NM=/^(left|center|right)$/,OM=/^(left|none|right)$/;class DM extends k{static get pluginName(){return"TablePropertiesEditing"}static get isOfficialPlugin(){return!0}static get requires(){return[ur]}init(){const e=this.editor,t=e.model.schema,i=e.conversion;e.config.define("table.tableProperties.defaultProperties",{});const r=xb(e.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0});e.data.addStyleProcessorRules(Fg),zM(t,i,{color:r.borderColor,style:r.borderStyle,width:r.borderWidth}),e.commands.add("tableBorderColor",new IM(e,r.borderColor)),e.commands.add("tableBorderStyle",new PM(e,r.borderStyle)),e.commands.add("tableBorderWidth",new RM(e,r.borderWidth)),FM(t,i,r.alignment),e.commands.add("tableAlignment",new VM(e,r.alignment)),xh(t,i,{modelAttribute:"tableWidth",styleName:"width",defaultValue:r.width}),e.commands.add("tableWidth",new MM(e,r.width)),xh(t,i,{modelAttribute:"tableHeight",styleName:"height",defaultValue:r.height}),e.commands.add("tableHeight",new BM(e,r.height)),e.data.addStyleProcessorRules(zg),UM(t,i,{modelAttribute:"tableBackgroundColor",styleName:"background-color",defaultValue:r.backgroundColor}),e.commands.add("tableBackgroundColor",new AM(e,r.backgroundColor))}}function zM(n,e,t){const i={width:"tableBorderWidth",color:"tableBorderColor",style:"tableBorderStyle"};n.extend("table",{allowAttributes:Object.values(i)}),pa(e,"table",i,t),Gr(e,{modelAttribute:i.color,styleName:"border-color"}),Gr(e,{modelAttribute:i.style,styleName:"border-style"}),Gr(e,{modelAttribute:i.width,styleName:"border-width"})}function FM(n,e,t){n.extend("table",{allowAttributes:["tableAlignment"]}),e.for("downcast").attributeToAttribute({model:{name:"table",key:"tableAlignment",values:["left","center","right"]},view:{left:{key:"style",value:{float:"left"}},right:{key:"style",value:{float:"right"}},center:(i,r,s)=>({key:"style",value:s.item.getAttribute("tableType")!=="layout"?{float:"none"}:{"margin-left":"auto","margin-right":"auto"}})},converterPriority:"high"}),e.for("upcast").attributeToAttribute({view:{name:/^(table|figure)$/,styles:{float:OM}},model:{key:"tableAlignment",value:(i,r,s)=>{const o=zt(t,"",s);let a=i.getStyle("float");return a==="none"&&(a="center"),a===o?null:a}}}).attributeToAttribute({view:{name:/^(table|figure)$/,styles:{"margin-left":"auto","margin-right":"auto"}},model:{key:"tableAlignment",value:(i,r,s)=>{const o=zt(t,"",s),a="center";return a===o?null:a}}}).attributeToAttribute({view:{attributes:{align:NM}},model:{name:"table",key:"tableAlignment",value:(i,r,s)=>{const o=zt(t,"",s),a=i.getAttribute("align");return a===o?null:a}}})}function UM(n,e,t){const{modelAttribute:i}=t;n.extend("table",{allowAttributes:[i]}),Nl(e,{viewElement:"table",...t}),Gr(e,t)}function xh(n,e,t){const{modelAttribute:i}=t;n.extend("table",{allowAttributes:[i]}),Nl(e,{viewElement:/^(table|figure)$/,shouldUpcast:r=>!(r.name=="table"&&r.parent.name=="figure"),...t}),Rn(e,{modelElement:"table",...t})}class HM extends S{options;focusTracker;keystrokes;children;borderStyleDropdown;borderWidthInput;borderColorInput;backgroundInput;widthInput;heightInput;alignmentToolbar;saveButtonView;cancelButtonView;_focusables;_focusCycler;constructor(e,t){super(e),this.set({borderStyle:"",borderWidth:"",borderColor:"",backgroundColor:"",width:"",height:"",alignment:""}),this.options=t;const{borderStyleDropdown:i,borderWidthInput:r,borderColorInput:s,borderRowLabel:o}=this._createBorderFields(),{backgroundRowLabel:a,backgroundInput:l}=this._createBackgroundFields(),{widthInput:c,operatorLabel:u,heightInput:d,dimensionsLabel:h}=this._createDimensionFields(),{alignmentToolbar:m,alignmentLabel:g}=this._createAlignmentFields();this.focusTracker=new te,this.keystrokes=new re,this.children=this.createCollection(),this.borderStyleDropdown=i,this.borderWidthInput=r,this.borderColorInput=s,this.backgroundInput=l,this.widthInput=c,this.heightInput=d,this.alignmentToolbar=m;const{saveButtonView:f,cancelButtonView:b}=this._createActionButtons();this.saveButtonView=f,this.cancelButtonView=b,this._focusables=new pe,this._focusCycler=new xe({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.children.add(new qt(e,{label:this.t("Table properties")})),this.children.add(new we(e,{labelView:o,children:[o,i,s,r],class:"ck-table-form__border-row"})),this.children.add(new we(e,{labelView:a,children:[a,l],class:"ck-table-form__background-row"})),this.children.add(new we(e,{children:[new we(e,{labelView:h,children:[h,c,u,d],class:"ck-table-form__dimensions-row"}),new we(e,{labelView:g,children:[g,m],class:"ck-table-properties-form__alignment-row"})]})),this.children.add(new we(e,{children:[this.saveButtonView,this.cancelButtonView],class:"ck-table-form__action-row"})),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-table-form","ck-table-properties-form"],tabindex:"-1"},children:this.children})}render(){super.render(),hi({view:this}),[this.borderColorInput,this.backgroundInput].forEach(e=>{this._focusCycler.chain(e.fieldView.focusCycler)}),[this.borderStyleDropdown,this.borderColorInput,this.borderWidthInput,this.backgroundInput,this.widthInput,this.heightInput,this.alignmentToolbar,this.saveButtonView,this.cancelButtonView].forEach(e=>{this._focusables.add(e),this.focusTracker.add(e.element)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBorderFields(){const e=this.options.defaultTableProperties,t={style:e.borderStyle,width:e.borderWidth,color:e.borderColor},i=Ps({colorConfig:this.options.borderColors,columns:5,defaultColorValue:t.color,colorPickerConfig:this.options.colorPickerConfig}),r=this.locale,s=this.t,o=s("Style"),a=new $e(r);a.text=s("Border");const l=Fl(s),c=new ue(r,zf);c.set({label:o,class:"ck-table-form__border-style"}),c.fieldView.buttonView.set({ariaLabel:o,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:o}),c.fieldView.buttonView.bind("label").to(this,"borderStyle",h=>l[h||"none"]),c.fieldView.on("execute",h=>{this.borderStyle=h.source._borderStyleValue}),c.bind("isEmpty").to(this,"borderStyle",h=>!h),ir(c.fieldView,kb(this,t.style),{role:"menu",ariaLabel:o});const u=new ue(r,Ge);u.set({label:s("Width"),class:"ck-table-form__border-width"}),u.fieldView.bind("value").to(this,"borderWidth"),u.bind("isEnabled").to(this,"borderStyle",Br),u.fieldView.on("input",()=>{this.borderWidth=u.fieldView.element.value});const d=new ue(r,i);return d.set({label:s("Color"),class:"ck-table-form__border-color"}),d.fieldView.bind("value").to(this,"borderColor"),d.bind("isEnabled").to(this,"borderStyle",Br),d.fieldView.on("input",()=>{this.borderColor=d.fieldView.value}),this.on("change:borderStyle",(h,m,g,f)=>{Br(g)||(this.borderColor="",this.borderWidth=""),Br(f)||(this.borderColor=t.color,this.borderWidth=t.width)}),{borderRowLabel:a,borderStyleDropdown:c,borderColorInput:d,borderWidthInput:u}}_createBackgroundFields(){const e=this.locale,t=this.t,i=new $e(e);i.text=t("Background");const r=Ps({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),s=new ue(e,r);return s.set({label:t("Color"),class:"ck-table-properties-form__background"}),s.fieldView.bind("value").to(this,"backgroundColor"),s.fieldView.on("input",()=>{this.backgroundColor=s.fieldView.value}),{backgroundRowLabel:i,backgroundInput:s}}_createDimensionFields(){const e=this.locale,t=this.t,i=new $e(e);i.text=t("Dimensions");const r=new ue(e,Ge);r.set({label:t("Width"),class:"ck-table-form__dimensions-row__width"}),r.fieldView.bind("value").to(this,"width"),r.fieldView.on("input",()=>{this.width=r.fieldView.element.value});const s=new S(e);s.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const o=new ue(e,Ge);return o.set({label:t("Height"),class:"ck-table-form__dimensions-row__height"}),o.fieldView.bind("value").to(this,"height"),o.fieldView.on("input",()=>{this.height=o.fieldView.element.value}),{dimensionsLabel:i,widthInput:r,operatorLabel:s,heightInput:o}}_createAlignmentFields(){const e=this.locale,t=this.t,i=new $e(e);i.text=t("Alignment");const r=new si(e);return r.set({role:"radiogroup",isCompact:!0,ariaLabel:t("Table alignment toolbar")}),Ta({view:this,icons:{left:hl,center:gs,right:fs},toolbar:r,labels:this._alignmentLabels,propertyName:"alignment",defaultValue:this.options.defaultTableProperties.alignment}),{alignmentLabel:i,alignmentToolbar:r}}_createActionButtons(){const e=this.locale,t=this.t,i=new P(e),r=new P(e),s=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.widthInput,this.heightInput];return i.set({label:t("Save"),icon:Os,class:"ck-button-save",type:"submit",withText:!0}),i.bind("isEnabled").toMany(s,"errorText",(...o)=>o.every(a=>!a)),r.set({label:t("Cancel"),icon:Ns,class:"ck-button-cancel",withText:!0}),r.delegate("execute").to(this,"cancel"),{saveButtonView:i,cancelButtonView:r}}get _alignmentLabels(){const e=this.locale,t=this.t,i=t("Align table to the left"),r=t("Center table"),s=t("Align table to the right");return e.uiLanguageDirection==="rtl"?{right:s,center:r,left:i}:{left:i,center:r,right:s}}}function Br(n){return n!=="none"}const jM=500,Sh={borderStyle:"tableBorderStyle",borderColor:"tableBorderColor",borderWidth:"tableBorderWidth",backgroundColor:"tableBackgroundColor",width:"tableWidth",height:"tableHeight",alignment:"tableAlignment"};class WM extends k{_defaultContentTableProperties;_defaultLayoutTableProperties;_balloon;view=null;_viewWithContentTableDefaults=null;_viewWithLayoutTableDefaults=null;_undoStepBatch;_isReady;static get requires(){return[Et]}static get pluginName(){return"TablePropertiesUI"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("table.tableProperties",{borderColors:Is,backgroundColors:Is})}init(){const e=this.editor;this._defaultContentTableProperties=xb(e.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0}),this._defaultLayoutTableProperties=$s(),this._balloon=e.plugins.get(Et),e.ui.componentFactory.add("tableProperties",()=>this._createTablePropertiesButton())}_createTablePropertiesButton(){const e=this.editor,t=e.t,i=new P(e.locale);i.set({label:t("Table properties"),icon:OT,tooltip:!0}),this.listenTo(i,"execute",()=>this._showView());const r=Object.values(Sh).map(s=>e.commands.get(s));return i.bind("isEnabled").toMany(r,"isEnabled",(...s)=>s.some(o=>o)),i}destroy(){super.destroy(),this.view&&this.view.destroy()}_createPropertiesView(e){const t=this.editor,i=t.config.get("table.tableProperties"),r=ys(i.borderColors),s=ws(t.locale,r),o=ys(i.backgroundColors),a=ws(t.locale,o),l=i.colorPicker!==!1,c=new HM(t.locale,{borderColors:s,backgroundColors:a,defaultTableProperties:e,colorPickerConfig:l?i.colorPicker||{}:!1}),u=t.t;c.render(),this.listenTo(c,"submit",()=>{this._hideView()}),this.listenTo(c,"cancel",()=>{this._undoStepBatch.operations.length&&t.execute("undo",this._undoStepBatch),this._hideView()}),c.keystrokes.set("Esc",(m,g)=>{this._hideView(),g()}),di({emitter:c,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const d=wb(u),h=yb(u);return c.on("change:borderStyle",this._getPropertyChangeCallback("tableBorderStyle")),c.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:c.borderColorInput,commandName:"tableBorderColor",errorText:d,validator:As})),c.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:c.borderWidthInput,commandName:"tableBorderWidth",errorText:h,validator:vb})),c.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:c.backgroundInput,commandName:"tableBackgroundColor",errorText:d,validator:As})),c.on("change:width",this._getValidatedPropertyChangeCallback({viewField:c.widthInput,commandName:"tableWidth",errorText:h,validator:Mn})),c.on("change:height",this._getValidatedPropertyChangeCallback({viewField:c.heightInput,commandName:"tableHeight",errorText:h,validator:Mn})),c.on("change:alignment",this._getPropertyChangeCallback("tableAlignment")),c}_fillViewFormFromCommandValues(){const e=this.editor.commands,t=e.get("tableBorderStyle");Object.entries(Sh).map(([i,r])=>{const s=i,o=this.view===this._viewWithContentTableDefaults?this._defaultContentTableProperties[s]||"":this._defaultLayoutTableProperties[s]||"";return[s,e.get(r).value||o]}).forEach(([i,r])=>{(i==="borderColor"||i==="borderWidth")&&t.value==="none"||this.view.set(i,r)}),this._isReady=!0}_showView(){const e=this.editor,t=Ss(e.editing.view.document.selection),i=t&&e.editing.mapper.toModelElement(t),r=!i||i.getAttribute("tableType")!=="layout";r&&!this._viewWithContentTableDefaults?this._viewWithContentTableDefaults=this._createPropertiesView(this._defaultContentTableProperties):!r&&!this._viewWithLayoutTableDefaults&&(this._viewWithLayoutTableDefaults=this._createPropertiesView(this._defaultLayoutTableProperties)),this.view=r?this._viewWithContentTableDefaults:this._viewWithLayoutTableDefaults,this.listenTo(e.ui,"update",()=>{this._updateView()}),this._fillViewFormFromCommandValues(),this._balloon.add({view:this.view,position:Lb(e)}),this._undoStepBatch=e.model.createBatch(),this.view.focus()}_hideView(){const e=this.editor;this.stopListening(e.ui,"update"),this._isReady=!1,this.view.saveButtonView.focus(),this._balloon.remove(this.view),this.editor.editing.view.focus()}_updateView(){const e=this.editor,t=e.editing.view.document;Ss(t.selection)?this._isViewVisible&&Cb(e,"table"):this._hideView()}get _isViewVisible(){return!!this.view&&this._balloon.visibleView===this.view}get _isViewInBalloon(){return!!this.view&&this._balloon.hasView(this.view)}_getPropertyChangeCallback(e){return(t,i,r)=>{this._isReady&&this.editor.execute(e,{value:r,batch:this._undoStepBatch})}}_getValidatedPropertyChangeCallback(e){const{commandName:t,viewField:i,validator:r,errorText:s}=e,o=Vl(()=>{i.errorText=s},jM);return(a,l,c)=>{o.cancel(),this._isReady&&(r(c)?(this.editor.execute(t,{value:c,batch:this._undoStepBatch}),i.errorText=null):o())}}}class qM extends k{static get pluginName(){return"TableProperties"}static get isOfficialPlugin(){return!0}static get requires(){return[DM,WM]}}function $M(n){n.document.registerPostFixer(e=>GM(e,n))}function GM(n,e){const t=e.document.differ.getChanges();let i=!1;for(const r of t){if(r.type!="insert")continue;const s=r.position.parent;if(s.is("element","table")||r.name=="table"){const o=r.name=="table"?r.position.nodeAfter:s,a=Array.from(o.getChildren()).filter(c=>c.is("element","caption")),l=a.shift();if(!l)continue;for(const c of a)n.move(n.createRangeIn(c),l,"end"),n.remove(c);l.nextSibling&&(n.move(n.createRangeOn(l),o,"end"),i=!0),i=!!a.length||i}}return i}function Ah(n){return!!n&&n.is("element","table")}function xa(n){for(const e of n.getChildren())if(e.is("element","caption"))return e;return null}function KM(n){const e=Ft(n);return e?xa(e):null}function ZM(n){const e=n.parent;return n.name=="figcaption"&&e&&e.is("element","figure")&&e.hasClass("table")?{name:!0}:n.name=="caption"&&e&&e.is("element","table")?{name:!0}:null}class JM extends N{refresh(){const e=this.editor,t=Ft(e.model.document.selection);this.isEnabled=!!t&&e.model.schema.checkChild(t,"caption"),this.isEnabled?this.value=!!xa(t):this.value=!1}execute({focusCaptionOnShow:e=!1}={}){this.editor.model.change(t=>{this.value?this._hideTableCaption(t):this._showTableCaption(t,e)})}_showTableCaption(e,t){const i=this.editor.model,r=Ft(i.document.selection),a=this.editor.plugins.get("TableCaptionEditing")._getSavedCaption(r)||e.createElement("caption");i.insertContent(a,r,"end"),t&&e.setSelection(a,"in")}_hideTableCaption(e){const t=this.editor.model,i=Ft(t.document.selection),r=this.editor.plugins.get("TableCaptionEditing"),s=xa(i);r._saveCaption(i,s),t.deleteContent(e.createSelection(s,"on"))}}class YM extends k{_savedCaptionsMap;static get pluginName(){return"TableCaptionEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this._savedCaptionsMap=new WeakMap}init(){const e=this.editor,t=e.model.schema,i=e.editing.view,r=e.t;t.isRegistered("caption")?t.extend("caption",{allowIn:"table"}):t.register("caption",{allowIn:"table",allowContentOf:"$block",isLimit:!0}),e.commands.add("toggleTableCaption",new JM(this.editor)),e.conversion.for("upcast").elementToElement({view:ZM,model:"caption"}),e.conversion.for("dataDowncast").elementToElement({model:"caption",view:(s,{writer:o})=>Ah(s.parent)?o.createContainerElement("figcaption"):null}),e.conversion.for("editingDowncast").elementToElement({model:"caption",view:(s,{writer:o})=>{if(!Ah(s.parent))return null;const a=o.createEditableElement("figcaption");return o.setCustomProperty("tableCaption",!0,a),a.placeholder=r("Enter table caption"),Ga({view:i,element:a,keepOnFocus:!0}),Tl(a,o)}}),$M(e.model)}_getSavedCaption(e){const t=this._savedCaptionsMap.get(e);return t?K.fromJSON(t):null}_saveCaption(e,t){this._savedCaptionsMap.set(e,t.toJSON())}}class XM extends k{static get pluginName(){return"TableCaptionUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor,t=e.editing.view,i=e.t;e.ui.componentFactory.add("toggleTableCaption",r=>{const s=e.commands.get("toggleTableCaption"),o=new P(r);return o.set({icon:lf,tooltip:!0,isToggleable:!0}),o.bind("isOn","isEnabled").to(s,"value","isEnabled"),o.bind("label").to(s,"value",a=>i(a?"Toggle caption off":"Toggle caption on")),this.listenTo(o,"execute",()=>{if(e.execute("toggleTableCaption",{focusCaptionOnShow:!0}),s.value){const a=KM(e.model.document.selection),l=e.editing.mapper.toViewElement(a);if(!l)return;t.scrollToTheSelection(),t.change(c=>{c.addClass("table__caption_highlighted",l)})}e.editing.view.focus()}),o})}}class QM extends k{static get pluginName(){return"TableCaption"}static get isOfficialPlugin(){return!0}static get requires(){return[YM,XM]}}const eB={pl:{dictionary:{"Words: %0":"Słowa: %0","Characters: %0":"Znaki: %0","Widget toolbar":"Pasek widgetów","Insert paragraph before block":"Wstaw akapit przed blokiem","Insert paragraph after block":"Wstaw akapit po bloku","Press Enter to type after or press Shift + Enter to type before the widget":"Naciśnij Enter, aby pisać po widżecie, lub Shift + Enter, aby pisać przed widżetem","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Klawisze, których można używać po wybraniu widżetu (na przykład: obraz, tabela itd.)","Insert a new paragraph directly after a widget":"Wstawia nowy akapit bezpośrednio po widżecie","Insert a new paragraph directly before a widget":"Wstawia nowy akapit bezpośrednio przed widżetem","Move the caret to allow typing directly before a widget":"Przenosi kursor, aby umożliwić pisanie bezpośrednio przed widżetem","Move the caret to allow typing directly after a widget":"Przenosi kursor, aby umożliwić pisanie bezpośrednio za widżetem","Move focus from an editable area back to the parent widget":"Przenieś skupienie z edytowalnego obszaru z powrotem do widżetu nadrzędnego","Upload in progress":"Trwa przesyłanie",Undo:"Cofnij",Redo:"Ponów","Rich Text Editor":"Edytor tekstu sformatowanego","Edit block":"Edytuj blok","Click to edit block":"Kliknij, aby edytować blok","Drag to move":"Przeciągnij, aby przenieść",Next:"Następny",Previous:"Poprzedni","Editor toolbar":"Pasek narzędzi edytora","Dropdown toolbar":"Rozwijany pasek narzędzi","Dropdown menu":"Menu rozwijane",Black:"Czarny","Dim grey":"Ciemnoszary",Grey:"Szary","Light grey":"Jasnoszary",White:"Biały",Red:"Czerwony",Orange:"Pomarańczowy",Yellow:"Żółty","Light green":"Jasnozielony",Green:"Zielony",Aquamarine:"Akwamaryna",Turquoise:"Turkusowy","Light blue":"Jasnoniebieski",Blue:"Niebieski",Purple:"Purpurowy","Editor block content toolbar":"Pasek zadań treści blokowej edytora","Editor contextual toolbar":"Kontekstowy pasek zadań edytora",HEX:"SZESNASTKOWY","No results found":"Nie znaleziono wyników","No searchable items":"Brak elementów do wyszukania","Editor dialog":"Okno edytora",Close:"Zamknij","Help Contents. To close this dialog press ESC.":"Zawartość pomocy. Aby zamknąć to okno dialogowe, naciśnij klawisz ESC.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Poniżej znajdziesz listę skrótów klawiszowych, których można używać w edytorze.","(may require <kbd>Fn</kbd>)":"(może wymagać użycia klawisza <kbd>Fn</kbd>)",Accessibility:"Dostępność","Accessibility help":"Pomoc dotycząca dostępności","Press %0 for help.":"Naciśnij %0, aby uzyskać pomoc.","Move focus in and out of an active dialog window":"Przenosi fokus do i z aktywnego okna dialogowego",MENU_BAR_MENU_FILE:"Plik",MENU_BAR_MENU_EDIT:"Zmiana",MENU_BAR_MENU_VIEW:"Zobacz",MENU_BAR_MENU_INSERT:"Wstaw",MENU_BAR_MENU_FORMAT:"Format",MENU_BAR_MENU_TOOLS:"Narzędzia",MENU_BAR_MENU_HELP:"Pomoc",MENU_BAR_MENU_TEXT:"Tekst",MENU_BAR_MENU_FONT:"Czcionka","Editor menu bar":"Pasek menu edytora",'Please enter a valid color (e.g. "ff0000").':"Wprowadź prawidłowy kolor (np. „ff0000”).","Insert table":"Wstaw tabelę","Header column":"Kolumna nagłówka","Insert column left":"Wstaw kolumnę z lewej","Insert column right":"Wstaw kolumnę z prawej","Delete column":"Usuń kolumnę","Select column":"Zaznacz kolumnę",Column:"Kolumna","Header row":"Wiersz nagłówka","Insert row below":"Wstaw wiersz poniżej","Insert row above":"Wstaw wiersz ponad","Delete row":"Usuń wiersz","Select row":"Zaznacz wiersz",Row:"Wiersz","Merge cell up":"Scal komórkę w górę","Merge cell right":"Scal komórkę w prawo","Merge cell down":"Scal komórkę w dół","Merge cell left":"Scal komórkę w lewo","Split cell vertically":"Podziel komórkę pionowo","Split cell horizontally":"Podziel komórkę poziomo","Merge cells":"Scal komórki","Table toolbar":"Pasek narzędzi tabel","Table properties":"Właściwości tabeli","Cell properties":"Właściwości komórki",Border:"Obramowanie",Style:"Styl",Width:"Szerokość",Height:"Wysokość",Color:"Kolor",Background:"Tło",Padding:"Dopełnienie",Dimensions:"Wymiary","Table cell text alignment":"Wyrównanie tekstu komórki tabeli",Alignment:"Wyrównanie","Horizontal text alignment toolbar":"Pasek narzędzi wyrównania tekstu w poziomie","Vertical text alignment toolbar":"Pasek narzędzi wyrównania tekstu w pionie","Table alignment toolbar":"Pasek narzędzi wyrównania tabeli",None:"Brak",Solid:"Ciągłe",Dotted:"Kropkowane",Dashed:"Kreskowane",Double:"Podwójne",Groove:"Wklęsłe",Ridge:"Wypukłe",Inset:"Zapadnięte",Outset:"Wysunięte","Align cell text to the left":"Wyrównaj tekst w komórce do lewej","Align cell text to the center":"Wyrównaj tekst w komórce do środka","Align cell text to the right":"Wyrównaj tekst w komórce do prawej","Justify cell text":"Wyjustuj tekst komórki","Align cell text to the top":"Wyrównaj tekst w komórce do góry","Align cell text to the middle":"Wyrównaj tekst w komórce do środka","Align cell text to the bottom":"Wyrównaj tekst w komórce do dołu","Align table to the left":"Wyrównaj tabelę do lewej","Center table":"Wyrównaj tabelę do środka","Align table to the right":"Wyrównaj tabelę do prawej",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'Kolor jest niepoprawny. Spróbuj wpisać "#FF0000", "rgb(255,0,0)" lub "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'Wartość jest niepoprawna. Spróbuj wpisać "10px", "2em" lub po prostu "2".',"Enter table caption":"Wprowadź podpis tabeli","Keystrokes that can be used in a table cell":"Klawisze, których można używać w komórce tabeli","Move the selection to the next cell":"Przenosi zaznaczenie do następnej komórki","Move the selection to the previous cell":"Przenosi zaznaczenie do poprzedniej komórki","Insert a new table row (when in the last cell of a table)":"Wstawia nowy wiersz tabeli (w przypadku ostatniej komórki tabeli)","Navigate through the table":"Umożliwia poruszanie się po tabeli",Table:"Tabela","Insert table layout":"Wstaw layout tabeli","Table layout":"Layout tabeli","Layout table":"Tabela layoutu","Content table":"Tabela zawartości","Choose table type":"Wybierz typ tabeli","Table type":"Typ tabeli","Table type options":"Opcje typu tabeli",Styles:"Style","Multiple styles":"Wiele stylów","Block styles":"Style tekstu blokowego","Text styles":"Style tekstu","Special characters":"Znaki specjalne",Category:"Kategorie",All:"Wszystko",Arrows:"Strzałki",Currency:"Waluta",Latin:"Łaciński",Mathematical:"Matematyczne",Text:"Tekst","leftwards simple arrow":"prosta strzałka w lewo","rightwards simple arrow":"prosta strzałka w prawo","upwards simple arrow":"prosta strzałka w górę","downwards simple arrow":"prosta strzałka w dół","leftwards double arrow":"podwójna strzałka w lewo","rightwards double arrow":"podwójna strzałka w prawo","upwards double arrow":"podwójna strzałka w górę","downwards double arrow":"podwójna strzałka w dół","leftwards dashed arrow":"przerywana strzałka w lewo","rightwards dashed arrow":"przerywana strzałka w prawo","upwards dashed arrow":"przerywana strzałka w górę","downwards dashed arrow":"przerywana strzałka w dół","leftwards arrow to bar":"strzałka w lewo do belki","rightwards arrow to bar":"strzałka w prawo do belki","upwards arrow to bar":"strzałka w górę do belki","downwards arrow to bar":"strzałka w dół do belki","up down arrow with base":"strzałka w górę i w dół z podstawą","back with leftwards arrow above":"do tyłu ze strzałką w lewo powyżej","end with leftwards arrow above":"koniec ze strzałką w lewo powyżej","on with exclamation mark with left right arrow above":"na z wykrzyknikiem i strzałką w lewo i prawo powyżej","soon with rightwards arrow above":"wkrótce ze strzałką w prawo powyżej","top with upwards arrow above":"do góry ze strzałką w górę powyżej","Dollar sign":"Znak dolara","Euro sign":"Znak euro","Yen sign":"Znak jena","Pound sign":"Znak funta","Cent sign":"Znak centa","Euro-currency sign":"Znak euro","Colon sign":"Znak colona","Cruzeiro sign":"Znak cruzeiro","French franc sign":"Znak franka francuskiego","Lira sign":"Znak liry","Currency sign":"Znak waluty","Bitcoin sign":"Znak bitcoina","Mill sign":"Symbol mila","Naira sign":"Znak nairy","Peseta sign":"Znak pesety","Rupee sign":"Znak rupii","Won sign":"Znak wona","New sheqel sign":"Znak nowego szekla","Dong sign":"Znak donga","Kip sign":"Znak kipa","Tugrik sign":"Znak tugrika","Drachma sign":"Znak drachmy","German penny sign":"Znak feniga","Peso sign":"Znak peso","Guarani sign":"Znak guarani","Austral sign":"Znak australa","Hryvnia sign":"Znak hrywny","Cedi sign":"Znak cedi","Livre tournois sign":"Symbol liwra turońskiego","Spesmilo sign":"Symbol spesmilo","Tenge sign":"Znak tenge","Indian rupee sign":"Znak rupii indyjskiej","Turkish lira sign":"Znak liry tureckiej","Nordic mark sign":"Znak marki nordyckiej","Manat sign":"Znak manata","Ruble sign":"Znak rubla","Latin capital letter a with macron":"Łacińska wielka litera a z makronem","Latin small letter a with macron":"Łacińska mała litera a z makronem","Latin capital letter a with breve":"Łacińska wielka litera a z łuczkiem","Latin small letter a with breve":"Łacińska mała litera a z łuczkiem","Latin capital letter a with ogonek":"Łacińska wielka litera a z ogonkiem","Latin small letter a with ogonek":"Łacińska mała litera a z ogonkiem","Latin capital letter c with acute":"Łacińska wielka litera c z kreską","Latin small letter c with acute":"Łacińska mała litera c z kreską","Latin capital letter c with circumflex":"Łacińska wielka litera c z daszkiem","Latin small letter c with circumflex":"Łacińska mała litera c z daszkiem","Latin capital letter c with dot above":"Łacińska wielka litera c z kropką powyżej","Latin small letter c with dot above":"Łacińska mała litera c z kropką powyżej","Latin capital letter c with caron":"Łacińska wielka litera c z ptaszkiem","Latin small letter c with caron":"Łacińska mała litera c z ptaszkiem","Latin capital letter d with caron":"Łacińska wielka litera d z ptaszkiem","Latin small letter d with caron":"Łacińska mała litera d z ptaszkiem","Latin capital letter d with stroke":"Łacińska wielka litera d z przekreśleniem","Latin small letter d with stroke":"Łacińska mała litera d z przekreśleniem","Latin capital letter e with macron":"Łacińska wielka litera e z makronem","Latin small letter e with macron":"Łacińska mała litera e z makronem","Latin capital letter e with breve":"Łacińska wielka litera e z łuczkiem","Latin small letter e with breve":"Łacińska mała litera e z łuczkiem","Latin capital letter e with dot above":"Łacińska wielka litera e z kropką powyżej","Latin small letter e with dot above":"Łacińska mała litera e z kropką powyżej","Latin capital letter e with ogonek":"Łacińska wielka litera e z ogonkiem","Latin small letter e with ogonek":"Łacińska mała litera e z ogonkiem","Latin capital letter e with caron":"Łacińska wielka litera e z ptaszkiem","Latin small letter e with caron":"Łacińska mała litera e z ptaszkiem","Latin capital letter g with circumflex":"Łacińska wielka litera g z daszkiem","Latin small letter g with circumflex":"Łacińska mała litera g z daszkiem","Latin capital letter g with breve":"Łacińska wielka litera g z łuczkiem","Latin small letter g with breve":"Łacińska mała litera g z łuczkiem","Latin capital letter g with dot above":"Łacińska wielka litera g z kropką powyżej","Latin small letter g with dot above":"Łacińska mała litera g z kropką powyżej","Latin capital letter g with cedilla":"Łacińska wielka litera g z haczykiem","Latin small letter g with cedilla":"Łacińska mała litera g z haczykiem","Latin capital letter h with circumflex":"Łacińska wielka litera h z daszkiem","Latin small letter h with circumflex":"Łacińska mała litera h z daszkiem","Latin capital letter h with stroke":"Łacińska wielka litera h z przekreśleniem","Latin small letter h with stroke":"Łacińska mała litera h z przekreśleniem","Latin capital letter i with tilde":" Łacińska wielka litera i z tyldą","Latin small letter i with tilde":"Łacińska mała litera i z tyldą","Latin capital letter i with macron":"Łacińska wielka litera i z makronem","Latin small letter i with macron":"Łacińska mała litera i z makronem","Latin capital letter i with breve":"Łacińska wielka litera i z łuczkiem","Latin small letter i with breve":"Łacińska mała litera i z łuczkiem","Latin capital letter i with ogonek":"Łacińska wielka litera i z ogonkiem","Latin small letter i with ogonek":"Łacińska mała litera i z ogonkiem","Latin capital letter i with dot above":"Łacińska wielka litera i z kropką powyżej","Latin small letter dotless i":"Łacińska mała litera i bez kropki","Latin capital ligature ij":"Łacińska wielka ligatura ij","Latin small ligature ij":"Łacińska mała ligatura ij","Latin capital letter j with circumflex":"Łacińska wielka litera j z daszkiem","Latin small letter j with circumflex":"Łacińska mała litera j z daszkiem","Latin capital letter k with cedilla":"Łacińska wielka litera k z haczykiem","Latin small letter k with cedilla":"Łacińska mała litera k z haczykiem","Latin small letter kra":"Łacińska mała litera kra","Latin capital letter l with acute":"Łacińska wielka litera l z kreską","Latin small letter l with acute":"Łacińska mała litera l z kreską","Latin capital letter l with cedilla":"Łacińska wielka litera l z haczykiem","Latin small letter l with cedilla":"Łacińska mała litera l z haczykiem","Latin capital letter l with caron":"Łacińska wielka litera l z ptaszkiem","Latin small letter l with caron":"Łacińska mała litera l z ptaszkiem","Latin capital letter l with middle dot":"Łacińska wielka litera l z kropką pośrodku","Latin small letter l with middle dot":"Łacińska mała litera l z kropką pośrodku","Latin capital letter l with stroke":"Łacińska wielka litera l z przekreśleniem","Latin small letter l with stroke":"Łacińska mała litera l z przekreśleniem","Latin capital letter n with acute":"Łacińska wielka litera n z kreską","Latin small letter n with acute":"Łacińska mała litera n z kreską","Latin capital letter n with cedilla":"Łacińska wielka litera n z haczykiem","Latin small letter n with cedilla":"Łacińska mała litera n z haczykiem","Latin capital letter n with caron":"Łacińska wielka litera n z ptaszkiem","Latin small letter n with caron":"Łacińska mała litera n z ptaszkiem","Latin small letter n preceded by apostrophe":"Łacińska mała litera n poprzedzona apostrofem","Latin capital letter eng":"Łacińska wielka litera eng","Latin small letter eng":"Łacińska mała litera eng","Latin capital letter o with macron":"Łacińska wielka litera o z makronem","Latin small letter o with macron":"Łacińska mała litera o z makronem","Latin capital letter o with breve":"Łacińska wielka litera o z łuczkiem","Latin small letter o with breve":"Łacińska mała litera o z łuczkiem","Latin capital letter o with double acute":"Łacińska wielka litera o z dwiema kreskami","Latin small letter o with double acute":"Łacińska mała litera o z dwiema kreskami","Latin capital ligature oe":"Łacińska wielka ligatura oe","Latin small ligature oe":"Łacińska mała ligatura oe","Latin capital letter r with acute":"Łacińska wielka litera r z kreską","Latin small letter r with acute":"Łacińska mała litera r z kreską","Latin capital letter r with cedilla":"Łacińska wielka litera r z haczykiem","Latin small letter r with cedilla":"Łacińska mała litera r z haczykiem","Latin capital letter r with caron":"Łacińska wielka litera r z ptaszkiem","Latin small letter r with caron":"Łacińska mała litera r z ptaszkiem","Latin capital letter s with acute":"Łacińska wielka litera s z kreską","Latin small letter s with acute":"Łacińska mała litera s z kreską","Latin capital letter s with circumflex":"Łacińska wielka litera s z daszkiem","Latin small letter s with circumflex":"Łacińska mała litera s z daszkiem","Latin capital letter s with cedilla":"Łacińska wielka litera s z haczykiem","Latin small letter s with cedilla":"Łacińska wielka litera s z haczykiem","Latin capital letter s with caron":"Łacińska wielka litera s z ptaszkiem","Latin small letter s with caron":"Łacińska mała litera s z ptaszkiem","Latin capital letter t with cedilla":"Łacińska wielka litera t z haczykiem","Latin small letter t with cedilla":"Łacińska mała litera t z haczykiem","Latin capital letter t with caron":"Łacińska wielka litera t z ptaszkiem","Latin small letter t with caron":"Łacińska mała litera t z ptaszkiem","Latin capital letter t with stroke":"Łacińska wielka litera t z przekreśleniem","Latin small letter t with stroke":"Łacińska mała litera t z przekreśleniem","Latin capital letter u with tilde":"Łacińska wielka litera u z tyldą","Latin small letter u with tilde":"Łacińska mała litera u z tyldą","Latin capital letter u with macron":"Łacińska wielka litera u z makronem","Latin small letter u with macron":"Łacińska mała litera u z makronem","Latin capital letter u with breve":"Łacińska wielka litera u z łuczkiem","Latin small letter u with breve":"Łacińska mała litera u z łuczkiem","Latin capital letter u with ring above":"Łacińska wielka litera u z kółkiem powyżej","Latin small letter u with ring above":"Łacińska mała litera u z kółkiem powyżej","Latin capital letter u with double acute":"Łacińska wielka litera u z dwiema kreskami","Latin small letter u with double acute":"Łacińska mała litera u z dwiema kreskami","Latin capital letter u with ogonek":"Łacińska wielka litera u z ogonkiem","Latin small letter u with ogonek":"Łacińska mała litera u z ogonkiem","Latin capital letter w with circumflex":"Łacińska wielka litera w z daszkiem","Latin small letter w with circumflex":"Łacińska mała litera w z daszkiem","Latin capital letter y with circumflex":"Łacińska wielka litera y z daszkiem","Latin small letter y with circumflex":"Łacińska mała litera y z daszkiem","Latin capital letter y with diaeresis":"Łacińska wielka litera y z dwiema kropkami","Latin capital letter z with acute":"Łacińska wielka litera z z kreską","Latin small letter z with acute":"Łacińska mała litera z z kreską","Latin capital letter z with dot above":"Łacińska wielka litera z z kropką powyżej","Latin small letter z with dot above":"Łacińska mała litera z z kropką powyżej","Latin capital letter z with caron":"Łacińska wielka litera z z ptaszkiem","Latin small letter z with caron":"Łacińska mała litera z z ptaszkiem","Latin small letter long s":"Łacińska litera długie s","Less-than sign":"Znak mniejszości","Greater-than sign":"Znak większości","Less-than or equal to":"Znak mniejsze niż lub równe","Greater-than or equal to":"Znak większe niż lub równe","En dash":"Półpauza","Em dash":"Pauza",Macron:"Makron",Overline:"Nadkreślenie","Degree sign":"Znak stopnia","Minus sign":"Znak minus","Plus-minus sign":"Znak plus-minus","Division sign":"Znak dzielenia","Fraction slash":"Kreska ułamkowa","Multiplication sign":"Znak mnożenia","Latin small letter f with hook":"Łacińska mała litera f z zawijasem",Integral:"Całka","N-ary summation":"Suma n-argumentowa",Infinity:"Nieskończoność","Square root":"Pierwiastek kwadratowy","Tilde operator":"Operator tylda","Approximately equal to":"W przybliżeniu równe","Almost equal to":"Prawie równe","Not equal to":"Różne","Identical to":"Identyczne","Element of":"Należy do","Not an element of":"Nie należy do","Contains as member":"Zawiera element","N-ary product":"Iloczyn n-argumentowy","Logical and":"Koniunkcja logiczna","Logical or":"Alternatywa logiczna","Not sign":"Znak negacji",Intersection:"Część wspólna",Union:"Suma zbiorów","Partial differential":"Pochodna cząstkowa","For all":"Kwantyfikator ogólny","There exists":"Kwantyfikator szczegółowy","Empty set":"Zbiór pusty",Nabla:"Operator nabla","Asterisk operator":"Operator asterysk","Proportional to":"Proporcjonalność",Angle:"Kąt","Vulgar fraction one quarter":"Ułamek zwykły jedna czwarta","Vulgar fraction one half":"Ułamek zwykły jedna druga","Vulgar fraction three quarters":"Ułamek zwykły trzy czwarte","Single left-pointing angle quotation mark":"Pojedynczy lewy cudzysłów kątowy","Single right-pointing angle quotation mark":"Pojedynczy prawy cudzysłów kątowy","Left-pointing double angle quotation mark":"Podwójny lewy cudzysłów kątowy","Right-pointing double angle quotation mark":"Podwójny prawy cudzysłów kątowy","Left single quotation mark":"Pojedynczy lewy cudzysłów","Right single quotation mark":"Pojedynczy prawy cudzysłów","Left double quotation mark":"Podwójny lewy cudzysłów","Right double quotation mark":"Podwójny prawy cudzysłów","Single low-9 quotation mark":"Pojedynczy dolny cudzysłów","Double low-9 quotation mark":"Podwójny dolny cudzysłów","Inverted exclamation mark":"Odwrócony wykrzyknik","Inverted question mark":"Odwrócony pytajnik","Two dot leader":"Dwie kropki wiodące","Horizontal ellipsis":"Wielokropek poziomy","Double dagger":"Podwójny sztylet","Per mille sign":"Znak promila","Per ten thousand sign":"Punkt bazowy","Double exclamation mark":"Podwójny wykrzyknik","Question exclamation mark":"Pytajnik z wykrzyknikiem","Exclamation question mark":"Wykrzyknik z pytajnikiem","Double question mark":"Podwójny pytajnik","Copyright sign":"Znak praw autorskich","Registered sign":"Zastrzeżony znak towarowy","Trade mark sign":"Symbol znaku towarowego","Section sign":"Znak sekcji","Paragraph sign":"Znak akapitu","Reversed paragraph sign":"Odwrócony znak akapitu","Show source":"Pokaż źródło","Show blocks":"Wyświetl bloki","Select all":"Zaznacz wszystko","Disable editing":"Zablokuj edycję","Enable editing":"Odblokuj edycję","Previous editable region":"Poprzednie pole do edycji","Next editable region":"Następne pole do edycji","Navigate editable regions":"Przejdź między polami do edycji","Remove Format":"Usuń formatowanie","Page break":"Podział strony","media widget":"widget osadzenia mediów","Media URL":"Adres URL","Paste the media URL in the input.":"Wklej adres URL mediów do pola.","Tip: Paste the URL into the content to embed faster.":"Wskazówka: Wklej URL do treści edytora, by łatwiej osadzić media.","The URL must not be empty.":"Adres URL nie może być pusty.","This media URL is not supported.":"Ten rodzaj adresu URL nie jest obsługiwany.","Insert media":"Wstaw media",Media:"Nośniki","Media toolbar":"Pasek narzędzi mediów","Open media in new tab":"Otwórz media w nowej zakładce","Media embed":"Osadzanie multimediów","Numbered List":"Lista numerowana","Bulleted List":"Lista wypunktowana","To-do List":"Lista rzeczy do zrobienia","Bulleted list styles toolbar":"Pasek z narzędziami: style listy z punktorami","Numbered list styles toolbar":"Pasek z narzędziami: style listy numerowanej","Toggle the disc list style":"Włącz/wyłącz listę w stylu „dysk”","Toggle the circle list style":"Włącz/wyłącz listę w stylu „kółko”","Toggle the square list style":"Włącz/wyłącz listę w stylu „kwadrat”","Toggle the decimal list style":"Włącz/wyłącz listę w stylu „dziesiętne”","Toggle the decimal with leading zero list style":"Włącz/wyłącz listę w stylu „dziesiętne z zerem wiodącym”","Toggle the lower–roman list style":"Włącz/wyłącz listę w stylu „małe cyfry rzymskie”","Toggle the upper–roman list style":"Włącz/wyłącz listę w stylu „wielkie cyfry rzymskie”","Toggle the lower–latin list style":"Włącz/wyłącz listę w stylu „alfabet łaciński – małe litery”","Toggle the upper–latin list style":"Włącz/wyłącz listę w stylu „alfabet łaciński – wielkie litery”",Disc:"Dysk",Circle:"Kółko",Square:"Kwadrat",Decimal:"Dziesiętne","Decimal with leading zero":"Dziesiętne z zerem wiodącym","Lower–roman":"Małe cyfry rzymskie","Upper-roman":"Wielkie cyfry rzymskie","Lower-latin":"Alfabet łaciński – małe litery","Upper-latin":"Alfabet łaciński – wielkie litery","List properties":"Właściwości listy","Start at":"Zacznij od","Invalid start index value.":"Nieprawidłowa wartość indeksu początkowego.","Start index must be greater than 0.":"Wartość początkowa musi być większa niż 0.","Reversed order":"Odwrócona kolejność","Keystrokes that can be used in a list":"Klawisze, których można używać w odniesieniu do listy","Increase list item indent":"Zwiększa wcięcie elementu listy","Decrease list item indent":"Zmniejsza wcięcie elementu listy","Entering a to-do list":"Wchodzenie na listę zadań do wykonania","Leaving a to-do list":"Opuszczenie listy zadań do wykonania",Unlink:"Usuń odnośnik",Link:"Wstaw odnośnik","Link URL":"Adres URL","Link URL must not be empty.":"Adres URL linku nie może być pusty","Link image":"Wstaw odnośnik do obrazka","Edit link":"Edytuj odnośnik","Open link in new tab":"Otwórz odnośnik w nowej zakładce","Open in a new tab":"Otwórz w nowej zakładce",Downloadable:"Do pobrania","Create link":"Tworzy link","Move out of a link":"Umożliwia wyjście z linku","Link properties":"Właściwości linku","Displayed text":"Wyświetlany tekst","No links available":"Brak dostępnych linków",Language:"Język","Choose language":"Wybierz język","Remove language":"Usuń język","Increase indent":"Zwiększ wcięcie","Decrease indent":"Zmniejsz wcięcie","image widget":"Obraz","Wrap text":"Zawijaj tekst","Break text":"Rozbijaj tekst","In line":"W linii","Side image":"Obraz dosunięty do brzegu, oblewany tekstem","Full size image":"Obraz w pełnym rozmiarze","Left aligned image":"Obraz wyrównany do lewej","Centered image":"Obraz wyrównany do środka","Right aligned image":"Obraz wyrównany do prawej","Change image text alternative":"Zmień tekst zastępczy obrazka","Text alternative":"Tekst zastępczy obrazka","Enter image caption":"Wstaw tytuł obrazka","Insert image":"Wstaw obraz","Replace image":"Zastąp obraz","Upload from computer":"Prześlij z komputera","Replace from computer":"Zastąp z komputera","Upload image from computer":"Prześlij obraz z komputera","Image from computer":"Obraz z komputera","From computer":"Z komputera","Replace image from computer":"Zastąp obraz z komputera","Upload failed":"Przesyłanie obrazu nie powiodło się","You have no image upload permissions.":"Nie masz uprawnień do przesyłania obrazów.","Image toolbar":"Pasek narzędzi obrazka","Resize image":"Zmień rozmiar obrazka","Resize image to %0":"Zmień rozmiar do %0","Resize image to the original size":"Przywróć oryginalny rozmiar obrazu","Resize image (in %0)":"Zmień rozmiar obrazu (w %0)",Original:"Oryginalny","Custom image size":"Niestandardowy rozmiar obrazu",Custom:"Niestandardowy","Image resize list":"Lista: zmiana wielkości obrazu","Insert image via URL":"Wstaw obraz z adresu URL","Insert via URL":"Wstaw przez URL","Image via URL":"Obraz przez URL","Via URL":"Przez URL","Update image URL":"Uaktualnij obraz z adresu URL","Caption for the image":"Nagłówek do obrazu","Caption for image: %0":"Nagłówek do obrazu: %0","The value must not be empty.":"Wartość nie może być pusta.","The value should be a plain number.":"Wartość powinna zawierać tylko liczbę.","Uploading image":"Trwa przesyłanie obrazu","Image upload complete":"Przesyłanie obrazu zakończone","Error during image upload":"Błąd podczas przesyłania obrazu",Image:"Obraz","Image Resize":"Zmiana rozmiaru obrazu","Text Alternative":"Alternatywny tekst","HTML object":"Obiekt HTML","Insert HTML":"Wstaw kod HTML","HTML snippet":"Kod HTML","Paste raw HTML here...":"Wstaw tutaj czysty kod HTML...","Edit source":"Edytuj źródło","Save changes":"Zapisz zmiany","No preview available":"Podgląd nie jest dostępny","Empty snippet content":"Brak kodu","Horizontal line":"Linia pozioma","Yellow marker":"Żółty marker","Green marker":"Zielony marker","Pink marker":"Różowy marker","Blue marker":"Niebieski marker","Red pen":"Czerwony długopis","Green pen":"Zielony długopis","Remove highlight":"Usuń podświetlenie",Highlight:"Podświetlenie","Text highlight toolbar":"Pasek narzędzi podświetleń",Heading:"Nagłówek","Choose heading":"Wybierz nagłówek","Heading 1":"Nagłówek 1","Heading 2":"Nagłówek 2","Heading 3":"Nagłówek 3","Heading 4":"Nagłówek 4","Heading 5":"Nagłówek 5","Heading 6":"Nagłówek 6","Type your title":"Podaj tytuł","Type or paste your content here.":"Wpisz lub wklej tutaj treść dokumentu.","Enter fullscreen mode":"Włącz tryb pełnoekranowy","Leave fullscreen mode":"Wyłącz tryb pełnoekranowy","Fullscreen mode":"Tryb pełnoekranowy","Toggle fullscreen mode":"Przełącz tryb pełnoekranowy","Document outline":"Zarys dokumentu","Connected users":"Połączeni użytkownicy","Font Size":"Rozmiar czcionki",Tiny:"Bardzo mały",Small:"Mały",Big:"Duży",Huge:"Bardzo duży","Font Family":"Czcionka",Default:"Domyślny","Font Color":"Kolor czcionki","Font Background Color":"Kolor tła czcionki","Document colors":"Kolory dokumentu","Find and replace":"Znajdź i zamień","Find in text…":"Znajdź…",Find:"Znajdź","Previous result":"Poprzedni","Next result":"Następny",Replace:"Zamień","Replace all":"Zamień wszystko","Match case":"Uwzględnij wielkość liter","Whole words only":"Znajdź tylko całe wyrazy","Replace with…":"Zamień na…","Text to find must not be empty.":"Szukany tekst nie może być pusty.","Tip: Find some text first in order to replace it.":"Podpowiedź: Znajdź jakiś tekst, aby go zamienić.","Advanced options":"Opcje zaawansowane","Find in the document":"Otwiera interfejs Znajdź w dokumencie","Insert a soft break (a <code><br></code> element)":"Wstawia miękki enter (element <code><br></code>","Insert a hard break (a new paragraph)":"Wstawia twardą spację (nowy akapit)",Emoji:"Emoji","Show all emoji...":"Pokaż wszystkie emoji...","Find an emoji (min. 2 characters)":"Znajdź emoji (min. 2 znaki)",'No emojis were found matching "%0".':"Nie znaleziono emoji odpowiadających „%0”.","Keep on typing to see the emoji.":"Wpisuj dalej, aby zobaczyć emoji.","The query must contain at least two characters.":"Zapytanie musi zawierać co najmniej dwa znaki.","Smileys & Expressions":"Emotikony i wyrażenia","Gestures & People":"Gesty i ludzie","Animals & Nature":"Zwierzęta i natura","Food & Drinks":"Jedzenie i napoje","Travel & Places":"Podróże i miejsca",Activities:"Aktywności",Objects:"Obiekty",Symbols:"Symbole",Flags:"Flagi","Select skin tone":"Wybierz odcień skóry","Default skin tone":"Domyślny odcień skóry","Light skin tone":"Jasny odcień skóry","Medium Light skin tone":"Średnio jasny odcień skóry","Medium skin tone":"Średni odcień skóry","Medium Dark skin tone":"Średnio ciemny odcień skóry","Dark skin tone":"Ciemny odcień skóry","Emoji picker":"Selektor emotikonów",Cancel:"Anuluj",Clear:"Wyczyść","Remove color":"Usuń kolor","Restore default":"Przywróć domyślne",Save:"Zapisz","Show more items":"Pokaż więcej","%0 of %1":"%0 z %1","Cannot upload file:":"Nie można przesłać pliku:","Rich Text Editor. Editing area: %0":"Edytor tekstu. Obszar edycji: %0","Insert with file manager":"Wstaw za pomocą menedżera plików","Replace with file manager":"Zastąp za pomocą menedżera plików","Insert image with file manager":"Wstaw obraz za pomocą menedżera plików","Replace image with file manager":"Zastąp obraz za pomocą menedżera plików",File:"Plik","With file manager":"Przez menedżer plików","Toggle caption off":"Ukryj podpis tabeli","Toggle caption on":"Pokaż podpis tabeli","Content editing keystrokes":"Klawisze edycji zawartości","These keyboard shortcuts allow for quick access to content editing features.":"Te skróty klawiszowe umożliwiają szybki dostęp do funkcji edycji zawartości.","User interface and content navigation keystrokes":"Klawisze umożliwiające poruszanie się po interfejsie użytkownika i zawartości","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Aby łatwiej poruszać się po interfejsie użytkownika CKEditor 5, użyj następujących skrótów klawiszowych.","Close contextual balloons, dropdowns, and dialogs":"Zamyka podpowiedzi kontekstowe, menu rozwijane i okna dialogowe","Open the accessibility help dialog":"Otwiera okno pomocy dotyczącej dostępności","Move focus between form fields (inputs, buttons, etc.)":"Przenosi fokus pomiędzy polami formularza (polami wprowadzania, przyciskami itd.)","Move focus to the menu bar, navigate between menu bars":"Zmień ukierunkowanie na pasek menu, nawiguj między paskami menu","Move focus to the toolbar, navigate between toolbars":"Przenosi fokus na pasek narzędzi, umożliwia poruszanie się pomiędzy paskami narzędzi","Navigate through the toolbar or menu bar":"Nawiguj za pomocą paska narzędzi lub paska menu","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Uruchom aktualnie aktywny przycisk. Uruchomienie przycisków wchodzących w interakcję z zawartością edytora przywraca ukierunkowanie na zawartość.",Accept:"Zaakceptuj",Paragraph:"Akapit","Color picker":"Wybór koloru","Please try a different phrase or check the spelling.":"Spróbuj wyszukać inną frazą lub sprawdź poprawność ortograficzną wyszukiwania.",Source:"Źródło",Insert:"Wstaw",Update:"Zaktualizuj",Back:"Wróć","Insert code block":"Wstaw blok kodu","Plain text":"Zwykły tekst","Leaving %0 code snippet":"Opuszczenie fragmentu kodu %0","Entering %0 code snippet":"Wchodzenie we fragment kodu %0","Entering code snippet":"Wchodzenie we fragment kodu","Leaving code snippet":"Opuszczanie fragmentu kodu","Code block":"Blok kodu","Copy selected content":"Kopiuje zaznaczoną zawartość","Paste content":"Wkleja zawartość","Paste content as plain text":"Wkleja zawartość jako zwykły tekst","Insert image or file":"Wstaw obrazek lub plik","Could not obtain resized image URL.":"Nie można pobrać adresu URL obrazka po przeskalowaniu.","Selecting resized image failed":"Wybranie obrazka po przeskalowaniu nie powiodło się.","Could not insert image at the current position.":"Nie można wstawić obrazka w bieżącej lokalizacji.","Inserting image failed":"Wstawienie obrazka nie powiodło się.",Bookmark:"Zakładka","Edit bookmark":"Edytuj zakładkę","Remove bookmark":"Usuń zakładkę","Bookmark name":"Nazwa zakładki","Enter the bookmark name without spaces.":"Wprowadź nazwę zakładki bez spacji.","Bookmark must not be empty.":"Nazwa zakładki nie może być pusta.","Bookmark name cannot contain space characters.":"Nazwa zakładki nie może zawierać spacji.","Bookmark name already exists.":"Zakładka o takiej nazwie już istnieje.","bookmark widget":"widżet zakładek","Bookmark toolbar":"Pasek narzędzi zakładek",Bookmarks:"Zakładki","No bookmarks available.":"Brak dostępnych zakładek.","Scroll to bookmark":"Przewiń do zakładki","Open file manager":"Otwórz menedżer plików","Cannot determine a category for the uploaded file.":"Nie można ustalić kategorii przesłanego pliku.","Cannot access default workspace.":"Nie można uzyskać dostępu do domyślnego obszaru roboczego.","You have no image editing permissions.":"Nie masz uprawnień do edytowania obrazów.","Edit image":"Edytuj obraz","Processing the edited image.":"Trwa przetwarzanie edytowanego obrazu.","Server failed to process the image.":"Serwer nie mógł przetworzyć obrazu.","Failed to determine category of edited image.":"Nie udało się określić kategorii edytowanego obrazu.","Block quote":"Cytat blokowy",Bold:"Pogrubienie",Italic:"Kursywa",Underline:"Podkreślenie",Code:"Kod",Strikethrough:"Przekreślenie",Subscript:"Indeks dolny",Superscript:"Indeks górny","Italic text":"Zmienia tekst na kursywę","Move out of an inline code style":"Przenosi zaznaczenie poza styl kodu inline","Bold text":"Pogrubia tekst","Underline text":"Podkreśla tekst","Strikethrough text":"Przekreśla tekst","Saving changes":"Zapisywanie zmian","Revert autoformatting action":"Cofa automatyczne formatowanie","Align left":"Wyrównaj do lewej","Align right":"Wyrównaj do prawej","Align center":"Wyrównaj do środka",Justify:"Wyrównaj obustronnie","Text alignment":"Wyrównanie tekstu","Text alignment toolbar":"Pasek narzędzi wyrównania tekstu"},getPluralForm(n){return n==1?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2}}};const tB={ar:{dictionary:{"Words: %0":"الكلمات: %0","Characters: %0":"الأحرف: %0","Widget toolbar":"شريط أدوات الواجهة","Insert paragraph before block":"إدراج فقرة قبل الكتلة","Insert paragraph after block":"إدراج فقرة بعد الكتلة","Press Enter to type after or press Shift + Enter to type before the widget":"اضغط على Enter للكتابة بعد ذلك أو اضغط على Shift + Enter للكتابة قبل الأداة","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"ضغطة المفاتيح التي يمكن استخدامها عند اختيار الأداة (على سبيل المثال: الصورة والجدول وما إلى ذلك)","Insert a new paragraph directly after a widget":"قم بإدراج فقرة جديدة مباشرةً بعد الأداة","Insert a new paragraph directly before a widget":"قم بإدراج فقرة جديدة مباشرةً قبل الأداة","Move the caret to allow typing directly before a widget":"حرّكْ علامة الإقحام للسماح بالكتابة مباشرةً قبل الأداة","Move the caret to allow typing directly after a widget":"حرّكْ علامة الإقحام للسماح بالكتابة مباشرةً بعد الأداة","Move focus from an editable area back to the parent widget":"انقل التركيز من منطقة قابلة للتحرير لتعيده إلى الأداة الأصلية","Upload in progress":"جاري الرفع",Undo:"تراجع",Redo:"إعادة","Rich Text Editor":"معالج نصوص","Edit block":"كتلة التحرير","Click to edit block":"انقر لتحرير الوحدة التجميعية","Drag to move":"اسحب للنقل",Next:"التالي",Previous:"السابق","Editor toolbar":"شريط أدوات المحرر","Dropdown toolbar":"شريط أدوات القائمة المنسدلة","Dropdown menu":"القائمة المنسدلة",Black:"أسود","Dim grey":"رمادي خافت",Grey:"رمادي","Light grey":"رمادي فاتح",White:"أبيض",Red:"أحمر",Orange:"برتقالي",Yellow:"أصفر","Light green":"أخضر فاتح",Green:"أخضر",Aquamarine:"أخضر زبرجد",Turquoise:"فيروزي","Light blue":"أزرق فاتح",Blue:"أزرق",Purple:"أرجواني","Editor block content toolbar":"شريط المحرر لأدوات كتلة المحتوى","Editor contextual toolbar":"شريط المحرر للأدوات السياقية",HEX:"لون سداسي عشري","No results found":"لم يتم العثور على نتائج","No searchable items":"لا توجد عناصر قابلة للبحث متاحة","Editor dialog":"حوار المحرر",Close:"إغلاق","Help Contents. To close this dialog press ESC.":"محتويات التعليمات. لإغلاق هذا الحوار، اضغطْ على مفتاح ESC.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"ستجد أدناه قائمة باختصارات لوحة المفاتيح التي يمكن استخدامها في المحرِّر.","(may require <kbd>Fn</kbd>)":"(قد يتطلب <kbd>مفتاح Fn</kbd>)",Accessibility:"إمكانية الوصول","Accessibility help":"تعليمات إمكانية الوصول","Press %0 for help.":"اضغط على %0 للحصول على التعليمات.","Move focus in and out of an active dialog window":"انقلْ التركيز داخل وخارج نافذة الحوار النشطة",MENU_BAR_MENU_FILE:"ملف",MENU_BAR_MENU_EDIT:"تحرير",MENU_BAR_MENU_VIEW:"عرض",MENU_BAR_MENU_INSERT:"إدراج",MENU_BAR_MENU_FORMAT:"صيغة",MENU_BAR_MENU_TOOLS:"أدوات",MENU_BAR_MENU_HELP:"مساعدة",MENU_BAR_MENU_TEXT:"نص",MENU_BAR_MENU_FONT:"خط","Editor menu bar":"شريط قائمة المحرِّر",'Please enter a valid color (e.g. "ff0000").':'يُرجى إدخال لون صالح (على سبيل المثال "ff0000").',"Insert table":"إدراج جدول","Header column":"عمود عنوان","Insert column left":"أدخل العمود إلى اليسار","Insert column right":"أدخل العمود إلى اليمين","Delete column":"حذف العمود","Select column":"حدد العمود",Column:"عمود","Header row":"صف عنوان","Insert row below":"ادراج صف بعد","Insert row above":"ادراج صف قبل","Delete row":"حذف الصف","Select row":"حدد صفًا",Row:"صف","Merge cell up":"دمج الخلايا للأعلى","Merge cell right":"دمج الخلايا لليمين","Merge cell down":"دمج الخلايا للأسفل","Merge cell left":"دمج الخلايا لليسار","Split cell vertically":"فصل الخلايا بشكل عمودي","Split cell horizontally":"فصل الخلايا بشكل افقي","Merge cells":"دمج الخلايا","Table toolbar":"شريط أدوات الجدول","Table properties":"خصائص الجدول","Cell properties":"خصائص الخلية",Border:"الحدود",Style:"أسلوب",Width:"العرض",Height:"الارتفاع",Color:"اللون",Background:"الخلفية",Padding:"الحاشية",Dimensions:"الابعاد","Table cell text alignment":"محاذاة نص خلية الجدول",Alignment:"المحاذاة","Horizontal text alignment toolbar":"شريط أدوات محاذاة النص الأفقي","Vertical text alignment toolbar":"شريط أدوات محاذاة النص العمودي","Table alignment toolbar":"شريط أدوات محاذاة الجدول",None:"لا شيء",Solid:"صلب",Dotted:"منقط",Dashed:"متقطع",Double:"مزدوج",Groove:"إطار محفور",Ridge:"إطار ناتئ",Inset:"منخفض",Outset:"بارز","Align cell text to the left":"قم بمحاذاة نص الخلية إلى اليسار","Align cell text to the center":"قم بمحاذاة نص الخلية إلى المركز","Align cell text to the right":"قم بمحاذاة نص الخلية إلى اليمين","Justify cell text":"ضبط نص الخلية","Align cell text to the top":"قم بمحاذاة نص الخلية إلى الأعلى","Align cell text to the middle":"قم بمحاذاة نص الخلية إلى المنتصف","Align cell text to the bottom":"قم بمحاذاة نص الخلية للاسفل","Align table to the left":"قم بمحاذاة الجدول إلى اليسار","Center table":"قم بمحاذاة الجدول إلى المنتصف","Align table to the right":"قم بمحاذاة الجدول إلى اليمين",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'هذا اللون غير صالح. جرِّب "#FF0000" أو "rgb(255,0,0)" أو "أحمر".','The value is invalid. Try "10px" or "2em" or simply "2".':'هذه القيمة غير صالحة. جرِّب "10px" أو "2em" أو "2" وحسب.',"Enter table caption":"أدخل التسمية التوضيحية للجدول","Keystrokes that can be used in a table cell":"ضغطة المفاتيح التي يمكن استخدامها في خلية الجدول","Move the selection to the next cell":"انقلْ التحديد إلى الخلية التالية","Move the selection to the previous cell":"انقلْ التحديد إلى الخلية السابقة","Insert a new table row (when in the last cell of a table)":"قمْ بإدراج صف جدول جديد (في آخر خلية من الجدول)","Navigate through the table":"تنقّلْ عبر الجدول",Table:"جدول","Insert table layout":"إدراج تخطيط الجدول","Table layout":"تخطيط الجدول","Layout table":"جدول التخطيط","Content table":"جدول المحتويات","Choose table type":"اختر نوع الجدول","Table type":"نوع الجدول","Table type options":"خيارات نوع الجدول",Styles:"الأنماط","Multiple styles":"أنماط متعددة","Block styles":"أنماط الكتل","Text styles":"أنماط النصوص","Special characters":"أحرف خاصة",Category:"الفئة",All:"الكل",Arrows:"أسهم",Currency:"عملة",Latin:"لاتيني",Mathematical:"رياضي",Text:"نص","leftwards simple arrow":"سهم بسيط يشير إلى اليسار","rightwards simple arrow":"سهم بسيط يشير إلى اليمين","upwards simple arrow":"سهم بسيط يشير إلى الأعلى","downwards simple arrow":"سهم بسيط يشير إلى الأسفل","leftwards double arrow":"سهم مزدوج متجه يساراً","rightwards double arrow":"سهم مزدوج متجه يميناً","upwards double arrow":"سهم مزدوج متجه لأعلى","downwards double arrow":"سهم مزدوج متجه لأسفل","leftwards dashed arrow":"سهم متقطع متجه يساراً","rightwards dashed arrow":"سهم متقطع متجه يميناً","upwards dashed arrow":"سهم متقطع متجه لأعلى","downwards dashed arrow":"سهم متقطع متجه لأسفل","leftwards arrow to bar":"سهم يشير إلى خط جهة اليسار","rightwards arrow to bar":"سهم يشير إلى خط جهة اليمين","upwards arrow to bar":"سهم لأعلى يشير إلى خط","downwards arrow to bar":"سهم لأسفل يشير إلى خط","up down arrow with base":"سهم بالاتجاهين أعلى وأسفل، له قاعدة","back with leftwards arrow above":'"عودة" أعلاها سهم يتجه يساراً',"end with leftwards arrow above":'"النهاية" أعلاها سهم يتجه يساراً',"on with exclamation mark with left right arrow above":'"يعمل" وعلامة تعجب، أعلاهما سهم باتجاهين يميناً ويساراً',"soon with rightwards arrow above":'"قريباً" أعلاها سهم يتجه يميناً',"top with upwards arrow above":'"إلى القمة" أعلاها سهم لأعلى',"Dollar sign":"رمز الدولار","Euro sign":"رمز اليورو","Yen sign":"رمز الين","Pound sign":"رمز الجنيه","Cent sign":"رمز السنت","Euro-currency sign":"رمز عملة اليورو","Colon sign":"رمز الكولون","Cruzeiro sign":"رمز الكروزيرو","French franc sign":"رمز الفرانك الفرنسي","Lira sign":"رمز الليرة","Currency sign":"رمز العملة","Bitcoin sign":"رمز البيتكوين","Mill sign":"رمز المليم","Naira sign":"رمز النيرة","Peseta sign":"رمز البيزيتا","Rupee sign":"رمز الروبية","Won sign":"رمز الوون","New sheqel sign":"رمز الشيكل الجديد","Dong sign":"رمز الدونغ","Kip sign":"رمز الكيب","Tugrik sign":"رمز التوغروغ","Drachma sign":"رمز الدراخما","German penny sign":"رمز البنس الألماني","Peso sign":"رمز البيزو","Guarani sign":"رمز الغواراني","Austral sign":"رمز الأسترال","Hryvnia sign":"رمز الهريفنا","Cedi sign":"رمز السيدي","Livre tournois sign":"رمز الليفر تورنوز","Spesmilo sign":"رمز السبسميلو","Tenge sign":"رمز التينغ","Indian rupee sign":"رمز الروبية الهندية","Turkish lira sign":"رمز الليرة التركية","Nordic mark sign":"رمز المارك الاسكندنافي","Manat sign":"رمز المانات","Ruble sign":"رمز الروبيل","Latin capital letter a with macron":"حرف a لاتيني كبير مع علامة تشكيل ماكرون","Latin small letter a with macron":"حرف a لاتيني صغير مع علامة تشكيل ماكرون","Latin capital letter a with breve":"حرف a لاتيني كبير مع علامة تشكيل بريف","Latin small letter a with breve":"حرف a لاتيني صغير مع علامة تشكيل بريف","Latin capital letter a with ogonek":"حرف a لاتيني كبير مع علامة تشكيل خطاف","Latin small letter a with ogonek":"حرف a لاتيني صغير مع علامة تشكيل خطاف","Latin capital letter c with acute":"حرف c لاتيني كبير مع علامة تشكيل النبرة الحادة","Latin small letter c with acute":"حرف c لاتيني صغير مع علامة تشكيل النبرة الحادة","Latin capital letter c with circumflex":"حرف c لاتيني كبير مع علامة تشكيل ثنية محيطة","Latin small letter c with circumflex":"حرف c لاتيني صغير مع علامة تشكيل ثنية محيطة","Latin capital letter c with dot above":"حرف c لاتيني كبير مع نقطة أعلاه","Latin small letter c with dot above":"حرف c لاتيني صغير مع نقطة أعلاه","Latin capital letter c with caron":"حرف c لاتيني كبير مع علامة تشكيل كارون","Latin small letter c with caron":"حرف c لاتيني صغير مع علامة تشكيل كارون","Latin capital letter d with caron":"حرف d لاتيني كبير مع علامة تشكيل كارون","Latin small letter d with caron":"حرف d لاتيني صغير مع علامة تشكيل كارون","Latin capital letter d with stroke":"حرف d لاتيني كبير مع علامة شطب","Latin small letter d with stroke":"حرف d لاتيني صغير مع علامة شطب","Latin capital letter e with macron":"حرف e لاتيني كبير مع علامة تشكيل ماكرون","Latin small letter e with macron":"حرف e لاتيني صغير مع علامة تشكيل ماكرون","Latin capital letter e with breve":"حرف e لاتيني كبير مع علامة تشكيل بريف","Latin small letter e with breve":"حرف e لاتيني صغير مع علامة تشكيل بريف","Latin capital letter e with dot above":"حرف e لاتيني كبير مع نقطة أعلاه","Latin small letter e with dot above":"حرف e لاتيني صغير مع نقطة أعلاه","Latin capital letter e with ogonek":"حرف e لاتيني كبير مع علامة تشكيل خطاف","Latin small letter e with ogonek":"حرف e لاتيني صغير مع علامة تشكيل خطاف","Latin capital letter e with caron":"حرف e لاتيني كبير مع علامة تشكيل كارون","Latin small letter e with caron":"حرف e لاتيني صغير مع علامة تشكيل كارون","Latin capital letter g with circumflex":"حرف g لاتيني كبير مع علامة تشكيل ثنية محيطة","Latin small letter g with circumflex":"حرف g لاتيني صغير مع علامة تشكيل ثنية محيطة","Latin capital letter g with breve":"حرف g لاتيني كبير مع علامة تشكيل بريف","Latin small letter g with breve":"حرف g لاتيني صغير مع علامة تشكيل بريف","Latin capital letter g with dot above":"حرف g لاتيني كبير مع نقطة أعلاه","Latin small letter g with dot above":"حرف g لاتيني صغير مع نقطة أعلاه","Latin capital letter g with cedilla":"حرف g لاتيني كبير مع علامة تشكيل السيديلة","Latin small letter g with cedilla":"حرف g لاتيني صغير مع علامة تشكيل السيديلة","Latin capital letter h with circumflex":"حرف h لاتيني كبير مع علامة تشكيل ثنية محيطة","Latin small letter h with circumflex":"حرف h لاتيني صغير مع علامة تشكيل ثنية محيطة","Latin capital letter h with stroke":"حرف h لاتيني كبير مع علامة شطب","Latin small letter h with stroke":"حرف h لاتيني صغير مع علامة شطب","Latin capital letter i with tilde":"حرف i لاتيني كبير مع علامة المد","Latin small letter i with tilde":"حرف i لاتيني صغير مع علامة المد","Latin capital letter i with macron":"حرف i لاتيني كبير مع علامة تشكيل ماكرون","Latin small letter i with macron":"حرف i لاتيني صغير مع علامة تشكيل ماكرون","Latin capital letter i with breve":"حرف i لاتيني كبير مع علامة تشكيل بريف","Latin small letter i with breve":"حرف i لاتيني صغير مع علامة تشكيل بريف","Latin capital letter i with ogonek":"حرف i لاتيني كبير مع علامة تشكيل خطاف","Latin small letter i with ogonek":"حرف i لاتيني صغير مع علامة تشكيل خطاف","Latin capital letter i with dot above":"حرف i لاتيني كبير مع نقطة أعلاه","Latin small letter dotless i":"حرف i لاتيني صغير بدون نقطة","Latin capital ligature ij":"حرف ij لاتيني مُركَّب كبير","Latin small ligature ij":"حرف ij لاتيني مُركَّب صغير","Latin capital letter j with circumflex":"حرف j لاتيني كبير مع علامة تشكيل ثنية محيطة","Latin small letter j with circumflex":"حرف j لاتيني صغير مع علامة تشكيل ثنية محيطة","Latin capital letter k with cedilla":"حرف k لاتيني كبير مع علامة تشكيل السيديلة","Latin small letter k with cedilla":"حرف k لاتيني صغير مع علامة تشكيل السيديلة","Latin small letter kra":"حرف kra لاتيني صغير","Latin capital letter l with acute":"حرف l لاتيني كبير مع علامة تشكيل النبرة الحادة","Latin small letter l with acute":"حرف l لاتيني صغير مع علامة تشكيل النبرة الحادة","Latin capital letter l with cedilla":"حرف l لاتيني كبير مع علامة تشكيل السيديلة","Latin small letter l with cedilla":"حرف l لاتيني صغير مع علامة تشكيل السيديلة","Latin capital letter l with caron":"حرف l لاتيني كبير مع علامة تشكيل كارون","Latin small letter l with caron":"حرف l لاتيني صغير مع علامة تشكيل كارون","Latin capital letter l with middle dot":"حرف l لاتيني كبير مع نقطة عند الوسط","Latin small letter l with middle dot":"حرف l لاتيني صغير مع نقطة عند الوسط","Latin capital letter l with stroke":"حرف l لاتيني كبير مع علامة شطب","Latin small letter l with stroke":"حرف l لاتيني صغير مع علامة شطب","Latin capital letter n with acute":"حرف n لاتيني كبير مع علامة تشكيل النبرة الحادة","Latin small letter n with acute":"حرف n لاتيني صغير مع علامة تشكيل النبرة الحادة","Latin capital letter n with cedilla":"حرف n لاتيني كبير مع علامة تشكيل السيديلة","Latin small letter n with cedilla":"حرف n لاتيني صغير مع علامة تشكيل السيديلة","Latin capital letter n with caron":"حرف n لاتيني كبير مع علامة تشكيل كارون","Latin small letter n with caron":"حرف n لاتيني صغير مع علامة تشكيل كارون","Latin small letter n preceded by apostrophe":"حرف n لاتيني صغير مسبوقة بعلامة فاصلة عليا","Latin capital letter eng":"حرف eng لاتيني كبير","Latin small letter eng":"حرف eng لاتيني صغير","Latin capital letter o with macron":"حرف o لاتيني كبير مع علامة تشكيل ماكرون","Latin small letter o with macron":"حرف o لاتيني صغير مع علامة تشكيل ماكرون","Latin capital letter o with breve":"حرف o لاتيني كبير مع علامة تشكيل بريف","Latin small letter o with breve":"حرف o لاتيني صغير مع علامة تشكيل بريف","Latin capital letter o with double acute":"حرف o لاتيني كبير مع علامة تشكيل النبرة الحادة المزدوجة","Latin small letter o with double acute":"حرف o لاتيني صغير مع علامة تشكيل النبرة الحادة المزدوجة","Latin capital ligature oe":"حرف oe لاتيني مُركَّب كبير","Latin small ligature oe":"حرف oe لاتيني مُركَّب صغير","Latin capital letter r with acute":"حرف r لاتيني كبير مع علامة تشكيل النبرة الحادة","Latin small letter r with acute":`حرف r لاتيني صغير مع علامة تشكيل النبرة الحادة
|
|
20
|
-
`,"Latin capital letter r with cedilla":"حرف r لاتيني كبير مع علامة تشكيل السيديلة","Latin small letter r with cedilla":"حرف r لاتيني صغير مع علامة تشكيل السيديلة","Latin capital letter r with caron":"حرف r لاتيني كبير مع علامة تشكيل كارون","Latin small letter r with caron":"حرف r لاتيني صغير مع علامة تشكيل كارون","Latin capital letter s with acute":"حرف s لاتيني كبير مع علامة تشكيل النبرة الحادة","Latin small letter s with acute":"حرف s لاتيني صغير مع علامة تشكيل النبرة الحادة","Latin capital letter s with circumflex":"حرف s لاتيني كبير مع علامة تشكيل ثنية محيطة","Latin small letter s with circumflex":"حرف s لاتيني صغير مع علامة تشكيل ثنية محيطة","Latin capital letter s with cedilla":"حرف s لاتيني كبير مع علامة تشكيل السيديلة","Latin small letter s with cedilla":"حرف s لاتيني صغير مع علامة تشكيل السيديلة","Latin capital letter s with caron":"حرف s لاتيني كبير مع علامة تشكيل كارون","Latin small letter s with caron":"حرف s لاتيني صغير مع علامة تشكيل كارون","Latin capital letter t with cedilla":"حرف t لاتيني كبير مع علامة تشكيل السيديلة","Latin small letter t with cedilla":"حرف t لاتيني صغير مع علامة تشكيل السيديلة","Latin capital letter t with caron":"حرف t لاتيني كبير مع علامة تشكيل كارون","Latin small letter t with caron":"حرف t لاتيني صغير مع علامة تشكيل كارون","Latin capital letter t with stroke":"حرف t لاتيني كبير مع علامة شطب","Latin small letter t with stroke":"حرف t لاتيني صغير مع علامة شطب","Latin capital letter u with tilde":"حرف u لاتيني كبير مع علامة المد","Latin small letter u with tilde":"حرف u لاتيني صغير مع علامة المد","Latin capital letter u with macron":"حرف u لاتيني كبير مع علامة تشكيل ماكرون","Latin small letter u with macron":"حرف u لاتيني صغير مع علامة تشكيل ماكرون","Latin capital letter u with breve":"حرف u لاتيني كبير مع علامة تشكيل بريف","Latin small letter u with breve":"حرف u لاتيني صغير مع علامة تشكيل بريف","Latin capital letter u with ring above":"حرف u لاتيني كبير مع حلقة أعلاه","Latin small letter u with ring above":"حرف u لاتيني صغير مع حلقة أعلاه","Latin capital letter u with double acute":"حرف u لاتيني كبير مع علامة تشكيل النبرة الحادة المزدوجة","Latin small letter u with double acute":"حرف u لاتيني صغير مع علامة تشكيل النبرة الحادة المزدوجة","Latin capital letter u with ogonek":"حرف u لاتيني كبير مع علامة تشكيل خطاف","Latin small letter u with ogonek":"حرف u لاتيني صغير مع علامة تشكيل خطاف","Latin capital letter w with circumflex":"حرف w لاتيني كبير مع علامة تشكيل ثنية محيطة","Latin small letter w with circumflex":"حرف w لاتيني صغير مع علامة تشكيل ثنية محيطة","Latin capital letter y with circumflex":"حرف y لاتيني كبير مع علامة تشكيل ثنية محيطة","Latin small letter y with circumflex":"حرف y لاتيني صغير مع علامة تشكيل ثنية محيطة","Latin capital letter y with diaeresis":"حرف y لاتيني كبير مع نقطتين أعلاه","Latin capital letter z with acute":"حرف z لاتيني كبير مع علامة تشكيل النبرة الحادة","Latin small letter z with acute":"حرف z لاتيني صغير مع علامة تشكيل النبرة الحادة","Latin capital letter z with dot above":"حرف z لاتيني كبير مع نقطة أعلاه","Latin small letter z with dot above":"حرف z لاتيني صغير مع نقطة أعلاه","Latin capital letter z with caron":"حرف z لاتيني كبير مع علامة تشكيل كارون","Latin small letter z with caron":"حرف z لاتيني صغير مع علامة تشكيل كارون","Latin small letter long s":'حرف "s طويل" لاتيني صغير',"Less-than sign":"علامة أقل من","Greater-than sign":"علامة أكبر من","Less-than or equal to":"أقل من أو يساوي","Greater-than or equal to":"أكبر من أو يساوي","En dash":"شرطة قصيرة","Em dash":"شرطة طويلة",Macron:"علامة التشكيل ماكرون",Overline:"خط أعلى الحرف","Degree sign":"علامة الدرجة","Minus sign":"علامة الطرح","Plus-minus sign":"علامة الطرح والجمع","Division sign":"علامة القسمة","Fraction slash":"شرطة الكسر","Multiplication sign":"علامة الضرب","Latin small letter f with hook":"حرف f لاتيني صغير مع علامة الخطاف",Integral:"علامة التكامل","N-ary summation":"جمع مصفوفة N",Infinity:"علامة ما لا نهاية","Square root":"الجذر التربيعي","Tilde operator":"علامة دلتا","Approximately equal to":"يساوي تقريباً","Almost equal to":"يساوي على الأرجح","Not equal to":"لا يساوي","Identical to":"مطابق لـ","Element of":"ينتمي إلى","Not an element of":"لا ينتمي إلى","Contains as member":"يحتوي كعضو","N-ary product":"حاصل مصفوفة N","Logical and":"and المنطقية","Logical or":"or المنطقية","Not sign":"علامة Not المنطقية",Intersection:"تقاطع",Union:"اتحاد","Partial differential":"التفاضلية الجزئية","For all":"علامة للكل","There exists":"علامة يوجد بها","Empty set":"مجموعة فارغة",Nabla:"رمز نبلة","Asterisk operator":"علامة الضرب (النجمة)","Proportional to":"يتناسب مع",Angle:"علامة الزاوية","Vulgar fraction one quarter":"الكسر الاعتيادي ربع","Vulgar fraction one half":"الكسر الاعتيادي نصف","Vulgar fraction three quarters":"الكسر الاعتيادي ثلاثة أرباع","Single left-pointing angle quotation mark":"علامة تنصيص أحادية، رمز الزاوية، تشير جهة اليسار","Single right-pointing angle quotation mark":"علامة تنصيص أحادية، رمز الزاوية، تشير جهة اليمين","Left-pointing double angle quotation mark":"علامة تنصيص مزدوجة، رمز الزاوية، تشير جهة اليسار","Right-pointing double angle quotation mark":"علامة تنصيص مزدوجة، رمز الزاوية، تشير جهة اليمين","Left single quotation mark":"علامة تنصيص أحادية، تشير جهة اليسار","Right single quotation mark":"علامة تنصيص أحادية، تشير جهة اليمين","Left double quotation mark":"علامة تنصيص مزدوجة، تشير جهة اليسار","Right double quotation mark":"علامة تنصيص مزدوجة، تشير جهة اليمين","Single low-9 quotation mark":"علامة تنصيص 9 منخفضة، أحادية","Double low-9 quotation mark":"علامة تنصيص 9 منخفضة، مزدوجة","Inverted exclamation mark":"علامة تعجّب مقلوبة","Inverted question mark":"علامة استفهام مقلوبة","Two dot leader":"سابقة من نقطتان","Horizontal ellipsis":"علامة القطع الأفقي","Double dagger":"رمز الخنجر المزدوج","Per mille sign":'علامة "لكل ميل"',"Per ten thousand sign":'علامة "لكل 10 آلاف"',"Double exclamation mark":"علامة تعجّب مزدوجة","Question exclamation mark":"علامة استفهام مزدوجة","Exclamation question mark":"علامة استفهام مع علامة تعجب","Double question mark":"علامة استفهام مزدوجة","Copyright sign":'علامة "حق التأليف والنشر"',"Registered sign":'علامة "مسجل"',"Trade mark sign":"رمز العلامة التجارية","Section sign":"علامة القطاع","Paragraph sign":"علامة الفقرة","Reversed paragraph sign":"علامة الفقرة مقلوبة","Show source":"إظهار المصدر","Show blocks":"عرض الكتل","Select all":"تحديد الكل","Disable editing":"تعطيل التحرير","Enable editing":"تمكين التحرير","Previous editable region":"منطقة التحرير السابقة","Next editable region":"منطقة التحرير التالية","Navigate editable regions":"التنقل في مناطق التحرير","Remove Format":"إزالة التنسيق","Page break":"فاصل صفحات","media widget":"أداة الوسائط","Media URL":"عنوان URL الوسائط","Paste the media URL in the input.":"ألصق عنوان URL الوسائط في موضع الإدخال.","Tip: Paste the URL into the content to embed faster.":"نصيحة: ألصق عنوان URL داخل المحتوى؛ لتسريع عملية التضمين.","The URL must not be empty.":"لا يمكن ترك بيان عنوان URL فارغاً.","This media URL is not supported.":"عنوان URL الوسائط هذا غير مدعوم.","Insert media":"أدخل الوسائط",Media:"وسائط","Media toolbar":"شريط أدوات الوسائط","Open media in new tab":"فتح الوسائط في علامة تبويب جديدة","Media embed":"تضمين الوسائط","Numbered List":"قائمة رقمية","Bulleted List":"قائمة نقطية","To-do List":"قائمة المهام","Bulleted list styles toolbar":"شريط أدوات أنماط قوائم التعداد النقطي","Numbered list styles toolbar":"شريط أدوات أنماط القوائم المرقمة","Toggle the disc list style":"تبديل نمط قائمة الأقراص","Toggle the circle list style":"تبديل نمط قائمة الدوائر","Toggle the square list style":"تبديل نمط قائمة المربعات","Toggle the decimal list style":"تبديل نمط قائمة الأرقام العشرية","Toggle the decimal with leading zero list style":"تبديل الأرقام العشرية بنمط قائمة الأصفار البادئة","Toggle the lower–roman list style":"تبديل نمط قائمة الأرقام الرومانية الصغيرة","Toggle the upper–roman list style":"تبديل نمط قائمة الأرقام الرومانية الكبيرة","Toggle the lower–latin list style":"تبديل نمط قائمة الأحرف اللاتينية الصغيرة","Toggle the upper–latin list style":"تبديل نمط قائمة الأحرف اللاتينية الكبيرة",Disc:"قرص",Circle:"دائرة",Square:"مربع",Decimal:"رقم عشري","Decimal with leading zero":"رقم عشري مع البدء بصفر ","Lower–roman":"رقم روماني صغير","Upper-roman":"رقم روماني كبير","Lower-latin":"حرف لاتيني صغير","Upper-latin":"حرف لاتيني كبير","List properties":"خصائص القائمة","Start at":"البدء من","Invalid start index value.":"قيمة فهرس البداية غير صالحة.","Start index must be greater than 0.":"يجب أن تكون قيمة البداية في الفهرس أكبر من 0.","Reversed order":"عكس اتجاه الترتيب","Keystrokes that can be used in a list":"ضغطة المفاتيح التي يمكن استخدامها في القائمة","Increase list item indent":"زيادة المسافة البادئة لعنصر القائمة","Decrease list item indent":"تقليل المسافة البادئة لعنصر القائمة","Entering a to-do list":"إدخال قائمة مهام","Leaving a to-do list":"ترك قائمة المهام",Unlink:"إلغاء الرابط",Link:"رابط","Link URL":"رابط عنوان","Link URL must not be empty.":"يجب ألا يكون عنوان الرابط فارغاً.","Link image":"ربط الصورة","Edit link":"تحرير الرابط","Open link in new tab":"فتح الرابط في تبويب جديد","Open in a new tab":"فتح في تبويب جديد",Downloadable:"يمكن تنزيله","Create link":"قمْ بإنشاء رابط","Move out of a link":"ابتعدْ عن الرابط","Link properties":"خصائص الرابط","Displayed text":"النص المعروض","No links available":"لا توجد روابط متاحة",Language:"اللغة","Choose language":"اختيار اللغة","Remove language":"إزالة اللغة","Increase indent":"زيادة المسافة البادئة","Decrease indent":"تقليص المسافة البادئة","image widget":"عنصر الصورة","Wrap text":"التفاف النص","Break text":"اعتراض النص","In line":"سطري مع النص","Side image":"صورة جانبية","Full size image":"صورة بحجم كامل","Left aligned image":"صورة بمحاذاة لليسار","Centered image":"صورة بالوسط","Right aligned image":"صورة بمحاذاة لليمين","Change image text alternative":"غير النص البديل للصورة","Text alternative":"النص البديل","Enter image caption":"ادخل عنوان الصورة","Insert image":"ادراج صورة","Replace image":"استبدال الصورة","Upload from computer":"رفع الملف من الحاسوب","Replace from computer":"استبدال من الحاسوب","Upload image from computer":"تحميل الصورة من الحاسوب","Image from computer":"صورة من جهاز الكمبيوتر","From computer":"من الكمبيوتر","Replace image from computer":"استبدال الصورة من الحاسوب","Upload failed":"فشل الرفع","You have no image upload permissions.":"ليس لديك أذونات تحميل الصور.","Image toolbar":"شريط أدوات الصور","Resize image":"تغيير حجم الصورة","Resize image to %0":"تغيير حجم الصورة إلى %0","Resize image to the original size":"تغيير حجم الصورة إلى الحجم الأصلي","Resize image (in %0)":"تغيير حجم الصورة (في %0 )",Original:"الحجم الأصلي","Custom image size":"حجم مخصص للصورة",Custom:"مخصص","Image resize list":"قائمة تغيير حجم الصورة","Insert image via URL":"إدراج صورة عبر عنوان URL","Insert via URL":"إدراج عبر URL","Image via URL":"صورة عبر URL","Via URL":"عبر URL","Update image URL":"عنوان URL الخاص بتحديث الصورة","Caption for the image":"التسمية التوضيحية للصورة","Caption for image: %0":"التسمية التوضيحية للصورة: %0","The value must not be empty.":"يجب ألا تكون القيمة فارغة.","The value should be a plain number.":"يجب أن تكون القيمة رقماً عادياً.","Uploading image":"جارٍ تحميل الصورة","Image upload complete":"اكتمل تحميل الصورة","Error during image upload":"حدث خطأ أثناء رفع الصورة",Image:"صورة","Image Resize":"تغيير حجم الصورة","Text Alternative":"النص البديل","HTML object":"عنصر HTML","Insert HTML":"إدراج HTML","HTML snippet":"قصاصة برمجية بلغة HTML","Paste raw HTML here...":"ألصق رمز HTML الأولي هنا...","Edit source":"تحرير المصدر","Save changes":"حفظ التغييرات","No preview available":"المعاينة غير متاحة","Empty snippet content":"محتوى القصاصة فارغ","Horizontal line":"خط أفقي","Yellow marker":"تحديد اصفر","Green marker":"تحديد اخضر","Pink marker":"تحديد وردي","Blue marker":"تحديد ازرق","Red pen":"تحديد احمر","Green pen":"قلم اخضر","Remove highlight":"إزالة التحديد",Highlight:"تحديد","Text highlight toolbar":"شريط أدوات تمييز النص",Heading:"عنوان","Choose heading":"اختر عنوان","Heading 1":"عنوان 1","Heading 2":"عنوان 2","Heading 3":"عنوان 3","Heading 4":"عنوان 4","Heading 5":"عنوان 5","Heading 6":"عنوان 6","Type your title":"أدخل العنوان","Type or paste your content here.":"أكتب المحتوى أو ألصقه هنا.","Enter fullscreen mode":"الدخول في وضع ملء الشاشة","Leave fullscreen mode":"مغادرة وضع ملء الشاشة","Fullscreen mode":"وضع ملء الشاشة","Toggle fullscreen mode":"تبديل وضع ملء الشاشة","Document outline":"مخطط المستند","Connected users":"المستخدمون المتصلون","Font Size":"حجم الخط",Tiny:"ضئيل",Small:"صغير",Big:"كبير",Huge:"ضخم","Font Family":"نوع الخط",Default:"افتراضي","Font Color":"لون الخط","Font Background Color":"لون خلفية الخط","Document colors":"ألوان المستند","Find and replace":"البحث والاستبدال","Find in text…":"البحث في النص...",Find:"البحث","Previous result":"النتيجة السابقة","Next result":"النتيجة التالية",Replace:"استبدال","Replace all":"استبدال الكل","Match case":"مطابقة حالة الأحرف","Whole words only":"الكلمات بأكملها فقط","Replace with…":"استبدال بـ...","Text to find must not be empty.":"لا يمكن لبيان النص المطلوب البحث عنه أن يكون فارغاً.","Tip: Find some text first in order to replace it.":"نصيحة: في البداية، ابحث عن جزء من النص؛ لتتمكن من استبداله. ","Advanced options":"الخيارات المتقدمة","Find in the document":"ابحثْ في الوثيقة","Insert a soft break (a <code><br></code> element)":"قمْ بإدراج فاصل بسيط (عنصر <code><br></code>)","Insert a hard break (a new paragraph)":"قمْ بإدراج فاصل ثابت (فقرة جديدة)",Emoji:"الرموز التعبيرية","Show all emoji...":"إظهار جميع الرموز التعبيرية...","Find an emoji (min. 2 characters)":"ابحث عن رمز تعبيري (حد أدنى حرفين)",'No emojis were found matching "%0".':'لم نعثر على أي رموز تعبيرية مطابقة لـ "%0".',"Keep on typing to see the emoji.":"استمر في الكتابة لرؤية الرمز التعبيري.","The query must contain at least two characters.":"يجب أن يحتوي الاستعلام على حرفين على الأقل.","Smileys & Expressions":"الابتسامات والتعبيرات","Gestures & People":"الإيماءات والأشخاص","Animals & Nature":"الحيوانات والطبيعة","Food & Drinks":"الأطعمة والمشروبات","Travel & Places":"السفر والأماكن",Activities:"الأنشطة",Objects:"الأشياء",Symbols:"الرموز",Flags:"الأعلام","Select skin tone":"حدد لون البشرة","Default skin tone":"لون البشرة الافتراضي","Light skin tone":"لون البشرة الفاتح","Medium Light skin tone":"لون بشرة فاتح متوسط","Medium skin tone":"لون البشرة متوسط","Medium Dark skin tone":"لون البشرة داكن متوسط","Dark skin tone":"لون بشرة داكن","Emoji picker":"أداة اختيار الرموز التعبيرية",Cancel:"إلغاء",Clear:"مسح","Remove color":"إزالة اللون","Restore default":"استعادة الافتراضي",Save:"حفظ","Show more items":"عرض المزيد من العناصر","%0 of %1":"%0 من %1","Cannot upload file:":"لا يمكن رفع الملف:","Rich Text Editor. Editing area: %0":"محرر النصوص المنسّقة. منطقة التحرير: %0","Insert with file manager":"إدخال مع مدير الملفات","Replace with file manager":"استبدال بمدير الملفات","Insert image with file manager":"إدراج صورة مع مدير الملفات","Replace image with file manager":"استبدال الصورة بمدير الملفات",File:"ملف","With file manager":"باستخدام مدير الملفات","Toggle caption off":"إخفاء التسمية التوضيحية","Toggle caption on":"عرض التسمية التوضيحية","Content editing keystrokes":"ضغطة المفاتيح لتحرير المحتوى","These keyboard shortcuts allow for quick access to content editing features.":"تسمح اختصارات لوحة المفاتيح هذه بالوصول سريعاً إلى ميزات تحرير المحتوى.","User interface and content navigation keystrokes":"واجهة المستخدم وضغطة المفاتيح للتنقل في المحتوى","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"استخدمْ ضغطة المفاتيح التالية للتنقل بشكل أكثر كفاءة في واجهة مستخدم CKEditor 5.","Close contextual balloons, dropdowns, and dialogs":"أغلقْ البالونات السياقية والقوائم المنسدلة ومربعات الحوار","Open the accessibility help dialog":"افتحْ مربع الحوار بشأن تعليمات إمكانية الوصول","Move focus between form fields (inputs, buttons, etc.)":"انقلْ التركيز بين حقول النموذج (المدخلات والأزرار وما إلى ذلك)","Move focus to the menu bar, navigate between menu bars":"انقلْ التركيز إلى شريط القائمة، وتَنقّلْ بين أشرطة القوائم","Move focus to the toolbar, navigate between toolbars":"انقلْ التركيز إلى شريط الأدوات، وتنقّلْ بين أشرطة الأدوات","Navigate through the toolbar or menu bar":"تنقّلْ عبر شريط الأدوات أو شريط القوائم","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"قم بتنفيذ الزر المركَّز حالياً، حيث أن تنفيذ الأزرار المتفاعلة مع محتوى المحرِّر يؤدي إلى إعادة التركيز إلى المحتوى.",Accept:"قبول",Paragraph:"فقرة","Color picker":"أداة انتقاء الألوان","Please try a different phrase or check the spelling.":"يُرجى محاولة البحث باستخدام عبارة أخرى أو تدقيق عبارة البحث إملائياً.",Source:"المصدر",Insert:"إدراج",Update:"تحديث",Back:"الرجوع","Insert code block":"إدراج كتلة تعليمات برمجية","Plain text":"نص عادي","Leaving %0 code snippet":"ترك مقتطف الكود %0","Entering %0 code snippet":"إدخال مقتطف الكود %0","Entering code snippet":"إدخال مقتطف الكود","Leaving code snippet":"ترك مقتطف الكود","Code block":"كتلة تعليمات برمجية","Copy selected content":"انسخْ المحتوى المحدد","Paste content":"الصقْ المحتوى","Paste content as plain text":"الصقْ المحتوى كنص عادي","Insert image or file":"إدراج صورة أو ملف","Could not obtain resized image URL.":"تعذر الحصول على عنوان URL الخاص بالصورة التي غُيّرَ حجمُها","Selecting resized image failed":"فشلت عملية تحديد الصورة التي غُيّرَ حجمها","Could not insert image at the current position.":"تعذر إدراج الصورة في الموضع الحالي.","Inserting image failed":"فشلت عملية إدراج الصورة",Bookmark:"إشارة مرجعية","Edit bookmark":"تحرير الإشارة المرجعية","Remove bookmark":"إزالة الإشارة المرجعية","Bookmark name":"اسم الإشارة المرجعية","Enter the bookmark name without spaces.":"أدخل اسم الإشارة المرجعية بدون مسافات.","Bookmark must not be empty.":"لا يجب أن تكون الإشارة المرجعية فارغة.","Bookmark name cannot contain space characters.":"لا يمكن أن يحتوي اسم الإشارة المرجعية على مسافة.","Bookmark name already exists.":"اسم الإشارة المرجعية موجود بالفعل.","bookmark widget":"أداة الإشارة المرجعية","Bookmark toolbar":"شريط أدوات الإشارة المرجعية",Bookmarks:"الإشارات المرجعية","No bookmarks available.":"لا توجد إشارات مرجعية متاحة.","Scroll to bookmark":"مرر إلى الإشارة المرجعية","Open file manager":"فتح مدير الملفات","Cannot determine a category for the uploaded file.":"تعذر تحديد فئة الملف الذي تم رفعه","Cannot access default workspace.":"لا يمكن الوصول إلى مساحة العمل الافتراضية.","You have no image editing permissions.":"ليس لديك أذونات تحرير الصور.","Edit image":"تحرير الصورة","Processing the edited image.":"معالجة الصورة المعدلة.","Server failed to process the image.":"فشل الخادم في معالجة الصورة.","Failed to determine category of edited image.":"فشلت عملية تحديد فئة الصورة التي تم تحريرها.","Block quote":"اقتباس",Bold:"عريض",Italic:"مائل",Underline:"تحته خط",Code:"شفرة برمجية",Strikethrough:"يتوسطه خط",Subscript:"حرف منخفض",Superscript:"حرف مرتفع","Italic text":"نص مائل","Move out of an inline code style":"ابتعدْ عن نمط التعليمات البرمجية المضمّنة","Bold text":"نص غامق","Underline text":"تسطير النص","Strikethrough text":"توسيط الخط في النص","Saving changes":"جاري حفظ التعديلات","Revert autoformatting action":"العودة إلى إجراء التنسيق التلقائي","Align left":"محاذاة لليسار","Align right":"محاذاة لليمين","Align center":"محاذاة في المنتصف",Justify:"ضبط","Text alignment":"محاذاة النص","Text alignment toolbar":"شريط أدوات محاذاة النص"},getPluralForm(n){return n==0?0:n==1?1:n==2?2:n%100>=3&&n%100<=10?3:n%100>=11?4:5}}};const iB={zh:{dictionary:{"Words: %0":"字數: %0","Characters: %0":"字元數: %0","Widget toolbar":"小工具","Insert paragraph before block":"在這個區塊前面插入一個段落","Insert paragraph after block":"在這個區塊後面插入一個段落","Press Enter to type after or press Shift + Enter to type before the widget":"按下 Enter 在小工具後輸入,或按下 Shift + Enter 在小工具前輸入","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"小工具選取時可使用的按鍵(例如:圖片、表格等)","Insert a new paragraph directly after a widget":"在小工具後直接插入新段落","Insert a new paragraph directly before a widget":"在小工具前直接插入新段落","Move the caret to allow typing directly before a widget":"移動插入符號,以便在小工具前直接輸入","Move the caret to allow typing directly after a widget":"移動插入符號,以便在小工具後直接輸入","Move focus from an editable area back to the parent widget":"將焦點從可編輯區域移回上層小工具","Upload in progress":"正在上傳",Undo:"取消",Redo:"重做","Rich Text Editor":"富文本編輯器","Edit block":"編輯區塊","Click to edit block":"點擊來編輯區塊","Drag to move":"拖曳來移動",Next:"下一",Previous:"上一","Editor toolbar":"編輯器工具","Dropdown toolbar":"下拉選單","Dropdown menu":"下拉式選單",Black:"黑色","Dim grey":"淡灰色",Grey:"灰色","Light grey":"亮灰色",White:"白色",Red:"紅色",Orange:"橘色",Yellow:"黃色","Light green":"亮綠色",Green:"綠色",Aquamarine:"淺綠色",Turquoise:"藍綠色","Light blue":"亮藍色",Blue:"藍色",Purple:"紫色","Editor block content toolbar":"編輯器區塊內容工具列","Editor contextual toolbar":"編輯器關聯式工具列",HEX:"十六進位","No results found":"找不到結果","No searchable items":"沒有可搜尋的項目","Editor dialog":"編輯工具對話框",Close:"關閉","Help Contents. To close this dialog press ESC.":"協助內容。想關閉此對話框,請按 ESC 鍵。","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"下方是可在編輯器中使用的鍵盤快捷鍵列表。","(may require <kbd>Fn</kbd>)":"(可能需要 <kbd>Fn</kbd>)",Accessibility:"協助工具","Accessibility help":"無障礙協助","Press %0 for help.":"按下 %0 來取得協助。","Move focus in and out of an active dialog window":"將焦點移入或移出啟用中的對話視窗",MENU_BAR_MENU_FILE:"檔案",MENU_BAR_MENU_EDIT:"編輯",MENU_BAR_MENU_VIEW:"檢視",MENU_BAR_MENU_INSERT:"插入",MENU_BAR_MENU_FORMAT:"格式",MENU_BAR_MENU_TOOLS:"工具",MENU_BAR_MENU_HELP:"說明",MENU_BAR_MENU_TEXT:"文字",MENU_BAR_MENU_FONT:"字型","Editor menu bar":"編輯器選單列",'Please enter a valid color (e.g. "ff0000").':"請輸入有效的顏色(例如「ff0000」)。","Insert table":"插入表格","Header column":"標題欄","Insert column left":"插入左方欄","Insert column right":"插入右方欄","Delete column":"刪除欄","Select column":"選擇欄",Column:"欄","Header row":"標題列","Insert row below":"插入下方列","Insert row above":"插入上方列","Delete row":"刪除列","Select row":"選擇列",Row:"列","Merge cell up":"合併上方儲存格","Merge cell right":"合併右方儲存格","Merge cell down":"合併下方儲存格","Merge cell left":"合併左方儲存格","Split cell vertically":"垂直分割儲存格","Split cell horizontally":"水平分割儲存格","Merge cells":"合併儲存格","Table toolbar":"表格工具","Table properties":"表格屬性","Cell properties":"儲存格屬性",Border:"邊框",Style:"樣式",Width:"寬度",Height:"高度",Color:"文字顏色",Background:"背景顏色",Padding:"儲存格留白",Dimensions:"尺寸","Table cell text alignment":"儲存格文字對齊",Alignment:"對齊","Horizontal text alignment toolbar":"水平對齊","Vertical text alignment toolbar":"垂直對齊","Table alignment toolbar":"表格對齊",None:"無",Solid:"實線",Dotted:"點線",Dashed:"虛線",Double:"雙線",Groove:"內凹線",Ridge:"凸起線",Inset:"內邊線",Outset:"外框線","Align cell text to the left":"靠左對齊","Align cell text to the center":"置中對齊","Align cell text to the right":"靠右對齊","Justify cell text":"分散對齊","Align cell text to the top":"向上對齊","Align cell text to the middle":"置中對齊","Align cell text to the bottom":"向下對齊","Align table to the left":"靠左對齊","Center table":"置中對齊","Align table to the right":"靠右對齊",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'顏色代碼錯誤。試試看 "#FF0000" 或 "rgb(255, 0, 0)" 或 "red"。','The value is invalid. Try "10px" or "2em" or simply "2".':'尺寸代碼錯誤。試試看 "10px" 或 "2em" 或簡單寫 "2"。',"Enter table caption":"輸入表標題","Keystrokes that can be used in a table cell":"可在表格單元格中使用的按鍵","Move the selection to the next cell":"將選取範圍移動到下一個單元格","Move the selection to the previous cell":"將選取範圍移動到上一個單元格","Insert a new table row (when in the last cell of a table)":"插入新的表格橫排(當位於表格的最後一個單元格時)","Navigate through the table":"在表格中移動",Table:"表格","Insert table layout":"插入表格版面配置","Table layout":"表格版面配置","Layout table":"版面配置表格","Content table":"內容表格","Choose table type":"選擇表格類型","Table type":"表格類型","Table type options":"表格類型選項",Styles:"樣式","Multiple styles":"多重樣式","Block styles":"區塊樣式","Text styles":"文字樣式","Special characters":"特殊字元",Category:"類別",All:"所有",Arrows:"箭頭",Currency:"貨幣",Latin:"拉丁字母",Mathematical:"數學",Text:"文字","leftwards simple arrow":"向左簡單箭號","rightwards simple arrow":"向右簡單箭號","upwards simple arrow":"向上簡單箭號","downwards simple arrow":"向下簡單箭號","leftwards double arrow":"向左雙箭頭","rightwards double arrow":"向右雙箭頭","upwards double arrow":"向上雙箭頭","downwards double arrow":"向下雙箭頭","leftwards dashed arrow":"向左虛線箭頭","rightwards dashed arrow":"向右虛線箭頭","upwards dashed arrow":"向上虛線箭頭","downwards dashed arrow":"向下虛線箭頭","leftwards arrow to bar":"向左停止箭頭","rightwards arrow to bar":"向右停止箭頭","upwards arrow to bar":"向上停止箭頭","downwards arrow to bar":"向下停止箭頭","up down arrow with base":"有底線的上下箭號","back with leftwards arrow above":"Back 上方有向左箭號","end with leftwards arrow above":"End 上方有向左箭號","on with exclamation mark with left right arrow above":"帶驚嘆號的 On 上方有左右雙向箭號","soon with rightwards arrow above":"Soon 上方有向右箭號","top with upwards arrow above":"Top 上方有向上箭號","Dollar sign":"貨幣符號","Euro sign":"歐元符號","Yen sign":"日圓符號","Pound sign":"英鎊符號","Cent sign":"美分符號","Euro-currency sign":"歐元貨幣符號","Colon sign":"冒號","Cruzeiro sign":"克魯薩多符號","French franc sign":"法國法郎符號","Lira sign":"里拉符號","Currency sign":"貨幣符號","Bitcoin sign":"比特幣符號","Mill sign":"密爾符號","Naira sign":"奈及利亞奈拉符號","Peseta sign":"比塞塔符號","Rupee sign":"印度盧比符號","Won sign":"圜符號","New sheqel sign":"新謝克爾符號","Dong sign":"盾符號","Kip sign":"基普符號","Tugrik sign":"圖格里克符號","Drachma sign":"得拉克馬符號","German penny sign":"德國便士符號","Peso sign":"披索符號","Guarani sign":"瓜拉尼符號","Austral sign":"奧斯特拉爾符號","Hryvnia sign":"赫伐尼亞符號","Cedi sign":"塞地符號","Livre tournois sign":"里弗爾法鎊符號","Spesmilo sign":"Spesmilo 貨幣符號","Tenge sign":"勘察加幣符號","Indian rupee sign":"印度盧比符號","Turkish lira sign":"土耳其里拉符號","Nordic mark sign":"日耳曼馬克符號","Manat sign":"馬納特符號","Ruble sign":"盧布符號","Latin capital letter a with macron":"拉丁大寫字母 A 帶長音符號","Latin small letter a with macron":"拉丁小寫字母 a 帶長音符號","Latin capital letter a with breve":"拉丁大寫字母 A 帶短音符號","Latin small letter a with breve":"拉丁小寫字母 a 帶短音符號","Latin capital letter a with ogonek":"拉丁大寫字母 A 帶 Ogonek","Latin small letter a with ogonek":"拉丁小寫字母 a 帶 Ogonek","Latin capital letter c with acute":"拉丁大寫字母 C 帶尖音符號","Latin small letter c with acute":"拉丁小寫字母 c 帶尖音符號","Latin capital letter c with circumflex":"拉丁大寫字母 C 帶抑揚符號","Latin small letter c with circumflex":"拉丁小寫字母 c 帶抑揚符號","Latin capital letter c with dot above":"上有一點的拉丁大寫字母 C","Latin small letter c with dot above":"上有一點的拉丁小寫字母 c","Latin capital letter c with caron":"拉丁大寫字母 C 帶上勾符號","Latin small letter c with caron":"拉丁小寫字母 c 帶上勾符號","Latin capital letter d with caron":"拉丁大寫字母 D 帶上勾符號","Latin small letter d with caron":"拉丁小寫字母 d 帶上勾符號","Latin capital letter d with stroke":"拉丁大寫字母 D 帶粗線符號","Latin small letter d with stroke":"拉丁小寫字母 d 帶粗線符號","Latin capital letter e with macron":"拉丁大寫字母 E 帶長音符號","Latin small letter e with macron":"拉丁小寫字母 e 帶長音符號","Latin capital letter e with breve":"拉丁大寫字母 E 帶短音符號","Latin small letter e with breve":"拉丁小寫字母 e 帶短音符號","Latin capital letter e with dot above":"上有一點的拉丁大寫字母 E","Latin small letter e with dot above":"上有一點的拉丁小寫字母 e","Latin capital letter e with ogonek":"拉丁大寫字母 E 帶 Ogonek","Latin small letter e with ogonek":"拉丁小寫字母 e 帶 Ogonek","Latin capital letter e with caron":"拉丁大寫字母 E 帶上勾符號","Latin small letter e with caron":"拉丁小寫字母 e 帶上勾符號","Latin capital letter g with circumflex":"拉丁大寫字母 G 帶抑揚符號","Latin small letter g with circumflex":"拉丁小寫字母 g 帶抑揚符號","Latin capital letter g with breve":"拉丁大寫字母 G 帶短音符號","Latin small letter g with breve":"拉丁小寫字母 g 帶短音符號","Latin capital letter g with dot above":"上有一點的拉丁大寫字母 G","Latin small letter g with dot above":"上有一點的拉丁小寫字母 g","Latin capital letter g with cedilla":"拉丁大寫字母 G 帶下尾符號","Latin small letter g with cedilla":"拉丁小寫字母 g 帶下尾符號","Latin capital letter h with circumflex":"拉丁大寫字母 H 帶抑揚符號","Latin small letter h with circumflex":"拉丁小寫字母 h 帶抑揚符號","Latin capital letter h with stroke":"拉丁大寫字母 H 帶粗線符號","Latin small letter h with stroke":"拉丁小寫字母 h 帶粗線符號","Latin capital letter i with tilde":"拉丁大寫字母 I 帶波狀符號","Latin small letter i with tilde":"拉丁小寫字母 i 帶波狀符號","Latin capital letter i with macron":"拉丁大寫字母 I 帶長音符號","Latin small letter i with macron":"拉丁小寫字母 i 帶長音符號","Latin capital letter i with breve":"拉丁大寫字母 I 帶短音符號","Latin small letter i with breve":"拉丁小寫字母 i 帶短音符號","Latin capital letter i with ogonek":"拉丁大寫字母 I 帶 Ogonek","Latin small letter i with ogonek":"拉丁小寫字母 i 帶 Ogonek","Latin capital letter i with dot above":"上有一點的拉丁大寫字母 I","Latin small letter dotless i":"拉丁小寫字母無點 I","Latin capital ligature ij":"拉丁大寫連字 IJ","Latin small ligature ij":"拉丁小寫連字 ij","Latin capital letter j with circumflex":"拉丁大寫字母 J 帶抑揚符號","Latin small letter j with circumflex":"拉丁小寫字母 j 帶抑揚符號","Latin capital letter k with cedilla":"拉丁大寫字母 K 帶下尾符號","Latin small letter k with cedilla":"拉丁小寫字母 k 帶下尾符號","Latin small letter kra":"拉丁小寫字母 kra","Latin capital letter l with acute":"拉丁大寫字母 L 帶尖音符號","Latin small letter l with acute":"拉丁小寫字母 l 帶尖音符號","Latin capital letter l with cedilla":"拉丁大寫字母 L 帶下尾符號","Latin small letter l with cedilla":"拉丁小寫字母 l 帶下尾符號","Latin capital letter l with caron":"拉丁大寫字母 L 帶上勾符號","Latin small letter l with caron":"拉丁小寫字母 l 帶上勾符號","Latin capital letter l with middle dot":"中間一點的拉丁大寫字母 L","Latin small letter l with middle dot":"中間一點的拉丁小寫字母 l","Latin capital letter l with stroke":"拉丁大寫字母 L 帶粗線符號","Latin small letter l with stroke":"拉丁小寫字母 l 帶粗線符號","Latin capital letter n with acute":"拉丁大寫字母 N 帶尖音符號","Latin small letter n with acute":"拉丁小寫字母 n 帶尖音符號","Latin capital letter n with cedilla":"拉丁大寫字母 N 帶下尾符號","Latin small letter n with cedilla":"拉丁小寫字母 n 帶下尾符號","Latin capital letter n with caron":"拉丁大寫字母 N 帶上勾符號","Latin small letter n with caron":"拉丁小寫字母 n 帶上勾符號","Latin small letter n preceded by apostrophe":"前有撇號的拉丁小寫字母 n","Latin capital letter eng":"拉丁大寫字母 Eng","Latin small letter eng":"拉丁小寫字母 Eng","Latin capital letter o with macron":"拉丁大寫字母 O 帶長音符號","Latin small letter o with macron":"拉丁小寫字母 o 帶長音符號","Latin capital letter o with breve":"拉丁大寫字母 O 帶短音符號","Latin small letter o with breve":"拉丁小寫字母 o 帶短音符號","Latin capital letter o with double acute":"拉丁大寫字母 O 帶雙尖音符號","Latin small letter o with double acute":"拉丁小寫字母 o 帶雙尖音符號","Latin capital ligature oe":"拉丁大寫連字 OE","Latin small ligature oe":"拉丁小寫連字 oe","Latin capital letter r with acute":"拉丁大寫字母 R 帶尖音符號","Latin small letter r with acute":"拉丁小寫字母 r 帶尖音符號","Latin capital letter r with cedilla":"拉丁大寫字母 R 帶下尾符號","Latin small letter r with cedilla":"拉丁小寫字母 r 帶下尾符號","Latin capital letter r with caron":"拉丁大寫字母 R 帶上勾符號","Latin small letter r with caron":"拉丁小寫字母 r 帶上勾符號","Latin capital letter s with acute":"拉丁大寫字母 S 帶尖音符號","Latin small letter s with acute":"拉丁小寫字母 s 帶尖音符號","Latin capital letter s with circumflex":"拉丁大寫字母 S 帶抑揚符號","Latin small letter s with circumflex":"拉丁小寫字母 s 帶抑揚符號","Latin capital letter s with cedilla":"拉丁大寫字母 S 帶下尾符號","Latin small letter s with cedilla":"拉丁小寫字母 s 帶下尾符號","Latin capital letter s with caron":"拉丁大寫字母 S 帶上勾符號","Latin small letter s with caron":"拉丁小寫字母 s 帶上勾符號","Latin capital letter t with cedilla":"拉丁大寫字母 T 帶下尾符號","Latin small letter t with cedilla":"拉丁小寫字母 t 帶下尾符號","Latin capital letter t with caron":"拉丁大寫字母 T 帶上勾符號","Latin small letter t with caron":"拉丁小寫字母 t 帶上勾符號","Latin capital letter t with stroke":"拉丁大寫字母 T 帶粗線符號","Latin small letter t with stroke":"拉丁小寫字母 t 帶粗線符號","Latin capital letter u with tilde":"拉丁大寫字母 U 帶波狀符號","Latin small letter u with tilde":"拉丁小寫字母 u 帶波狀符號","Latin capital letter u with macron":"拉丁大寫字母 U 帶長音符號","Latin small letter u with macron":"拉丁小寫字母 u 帶長音符號","Latin capital letter u with breve":"拉丁大寫字母 U 帶短音符號","Latin small letter u with breve":"拉丁小寫字母 u 帶短音符號","Latin capital letter u with ring above":"拉丁大寫字母 U 帶上圓圈","Latin small letter u with ring above":"拉丁小寫字母 u 帶上圓圈","Latin capital letter u with double acute":"拉丁大寫字母 U 帶雙尖音符號","Latin small letter u with double acute":"拉丁小寫字母 u 帶雙尖音符號","Latin capital letter u with ogonek":"拉丁大寫字母 U 帶 Ogonek","Latin small letter u with ogonek":"拉丁小寫字母 u 帶 Ogonek","Latin capital letter w with circumflex":"拉丁大寫字母 W 帶抑揚符號","Latin small letter w with circumflex":"拉丁小寫字母 w 帶抑揚符號","Latin capital letter y with circumflex":"拉丁大寫字母 Y 帶抑揚符號","Latin small letter y with circumflex":"拉丁小寫字母 y 帶抑揚符號","Latin capital letter y with diaeresis":"拉丁大寫字母 Y 帶分音符號","Latin capital letter z with acute":"拉丁大寫字母 Z 帶尖音符號","Latin small letter z with acute":"拉丁小寫字母 z 帶尖音符號","Latin capital letter z with dot above":"上有一點的拉丁大寫字母 Z","Latin small letter z with dot above":"上有一點的拉丁小寫字母 z","Latin capital letter z with caron":"拉丁大寫字母 Z 帶上勾符號","Latin small letter z with caron":"拉丁小寫字母 z 帶上勾符號","Latin small letter long s":"拉丁小寫字母長 s","Less-than sign":"小於符號","Greater-than sign":"大於符號","Less-than or equal to":"小於或等於","Greater-than or equal to":"大於或等於","En dash":"短破折號","Em dash":"長破折號",Macron:"長音符號",Overline:"頂線","Degree sign":"度符號","Minus sign":"減號","Plus-minus sign":"加減符號","Division sign":"除號","Fraction slash":"分數斜線","Multiplication sign":"乘號","Latin small letter f with hook":"帶鉤的拉丁小寫字母 f",Integral:"積分","N-ary summation":"N 元總合",Infinity:"無限","Square root":"平方根","Tilde operator":"波狀符號運算子","Approximately equal to":"約等於","Almost equal to":"幾乎等於","Not equal to":"不等於","Identical to":"恆等於","Element of":"屬於","Not an element of":"不屬於","Contains as member":"包含","N-ary product":"N 元乘積","Logical and":"邏輯 And","Logical or":"邏輯 Or","Not sign":"Not 符號",Intersection:"交集",Union:"聯集","Partial differential":"偏微分","For all":"對於所有","There exists":"存在","Empty set":"空集合",Nabla:"倒三角算子","Asterisk operator":"星號運算子","Proportional to":"正比於",Angle:"角度","Vulgar fraction one quarter":"普通分數四分之一","Vulgar fraction one half":"普通分數二分之一","Vulgar fraction three quarters":"普通分數四分之三","Single left-pointing angle quotation mark":"單左尖角括號","Single right-pointing angle quotation mark":"單右尖角括號","Left-pointing double angle quotation mark":"左尖雙角括號","Right-pointing double angle quotation mark":"右尖雙角括號","Left single quotation mark":"左單引號","Right single quotation mark":"右單引號","Left double quotation mark":"左雙引號","Right double quotation mark":"右雙引號","Single low-9 quotation mark":"單下 9 形引號","Double low-9 quotation mark":"雙下 9 形引號","Inverted exclamation mark":"倒驚嘆號","Inverted question mark":"倒問號","Two dot leader":"兩點前置字元","Horizontal ellipsis":"水平省略符號","Double dagger":"雙劍註釋符號","Per mille sign":"千分號","Per ten thousand sign":"萬分號","Double exclamation mark":"雙驚嘆號","Question exclamation mark":"疑問驚嘆號","Exclamation question mark":"驚嘆疑問號","Double question mark":"雙問號","Copyright sign":"版權符號","Registered sign":"註冊商標符號","Trade mark sign":"商標符號","Section sign":"章節符號","Paragraph sign":"段落符號","Reversed paragraph sign":"反段落符號","Show source":"顯示來源","Show blocks":"顯示區塊","Select all":"選取全部","Disable editing":"停用編輯","Enable editing":"啟用編輯","Previous editable region":"上一個可編輯區域","Next editable region":"下一個可編輯區域","Navigate editable regions":"編輯區域導航","Remove Format":"移除格式","Page break":"換頁","media widget":"影音小工具","Media URL":"影音網址","Paste the media URL in the input.":"在輸入框貼上影音網址。","Tip: Paste the URL into the content to embed faster.":"提示:在內容貼上網址更快崁入。","The URL must not be empty.":"網址不能空白。","This media URL is not supported.":"不支援此影音網址。","Insert media":"插入影音",Media:"媒體","Media toolbar":"影音工具","Open media in new tab":"在新分頁打開媒體","Media embed":"媒體嵌入","Numbered List":"有序清單","Bulleted List":"符號清單","To-do List":"代辦清單","Bulleted list styles toolbar":"無序清單工具列","Numbered list styles toolbar":"有序清單工具列","Toggle the disc list style":"切換為實心圓點標示","Toggle the circle list style":"切換為空心圓點標示","Toggle the square list style":"切換為方形標示","Toggle the decimal list style":"切換為數字標示","Toggle the decimal with leading zero list style":"切換為0開頭的數字標示","Toggle the lower–roman list style":"切換為小寫羅馬數字標示","Toggle the upper–roman list style":"切換為大寫羅馬數字標示","Toggle the lower–latin list style":"切換為小寫拉丁文字標示","Toggle the upper–latin list style":"切換為大寫拉丁文字標示",Disc:"實心圓點",Circle:"空心圓點",Square:"方形",Decimal:"數字","Decimal with leading zero":"0開頭的數字","Lower–roman":"小寫羅馬數字","Upper-roman":"大寫羅馬數字","Lower-latin":"小寫拉丁字母","Upper-latin":"大寫拉丁字母","List properties":"清單屬性","Start at":"起始於","Invalid start index value.":"無效的起始索引值。","Start index must be greater than 0.":"起始索引須大於 0。","Reversed order":"反轉順序","Keystrokes that can be used in a list":"可在列表中使用的按鍵","Increase list item indent":"增加列表項目縮排","Decrease list item indent":"減少列表項目縮排","Entering a to-do list":"進入待辦事項清單","Leaving a to-do list":"離開待辦事項清單",Unlink:"移除連結",Link:"連結","Link URL":"連結˙ URL","Link URL must not be empty.":"連結 URL 不得為空白。","Link image":"圖片連結","Edit link":"編輯連結","Open link in new tab":"在新視窗開啟連結","Open in a new tab":"在新視窗開啟",Downloadable:"可下載","Create link":"建立連結","Move out of a link":"移出連結","Link properties":"連結屬性","Displayed text":"顯示的文字","No links available":"無可用連結",Language:"語言","Choose language":"選擇語言","Remove language":"移除語言","Increase indent":"增加縮排","Decrease indent":"減少縮排","image widget":"圖片小工具","Wrap text":"文繞圖","Break text":"上及下","In line":"行中","Side image":"側邊圖片","Full size image":"完整尺寸圖片","Left aligned image":"向左對齊圖片","Centered image":"置中圖片","Right aligned image":"向右對齊圖片","Change image text alternative":"修改圖片的替代文字","Text alternative":"替代文字","Enter image caption":"輸入圖片說明","Insert image":"插入圖片","Replace image":"替換圖片","Upload from computer":"從電腦上傳","Replace from computer":"從電腦替換","Upload image from computer":"從電腦上傳圖片","Image from computer":"來自電腦的圖片","From computer":"從電腦","Replace image from computer":"從電腦替換圖片","Upload failed":"上傳失敗","You have no image upload permissions.":"您沒有圖片上傳權限。","Image toolbar":"圖片工具","Resize image":"縮放圖片","Resize image to %0":"縮放圖片到 %0","Resize image to the original size":"縮放圖片到原始尺寸","Resize image (in %0)":"調整圖片大小(單位為 %0)",Original:"原始圖片","Custom image size":"自訂圖片大小",Custom:"自訂","Image resize list":"圖片縮放清單","Insert image via URL":"使用連結插入圖片","Insert via URL":"透過網址插入","Image via URL":"透過網址插入圖片","Via URL":"透過網址","Update image URL":"更新圖片連結","Caption for the image":"影像的標題","Caption for image: %0":"影像標題:%0","The value must not be empty.":"數值不得為空白。","The value should be a plain number.":"數值應為純數字。","Uploading image":"正在上傳圖片","Image upload complete":"圖片上傳完成","Error during image upload":"圖片上傳期間發生錯誤",Image:"圖片","Image Resize":"圖片調整大小","Text Alternative":"文字替代","HTML object":"HTML 物件","Insert HTML":"輸入HTML","HTML snippet":"HTML標籤","Paste raw HTML here...":"在此貼上純HTML","Edit source":"編輯HTML","Save changes":"儲存變更","No preview available":"無法顯示預覽","Empty snippet content":"HTML標籤中無內容","Horizontal line":"水平線","Yellow marker":"黃色標記","Green marker":"綠色標記","Pink marker":"粉色標記","Blue marker":"藍色標記","Red pen":"紅色筆","Green pen":"綠色筆","Remove highlight":"清除高亮",Highlight:"高亮","Text highlight toolbar":"高亮",Heading:"標題","Choose heading":"選取標題","Heading 1":"標題 1","Heading 2":"標題 2","Heading 3":"標題 3","Heading 4":"標題 4","Heading 5":"標題 5","Heading 6":"標題 6","Type your title":"輸入你的標題","Type or paste your content here.":"在此輸入或貼上你的內容。","Enter fullscreen mode":"進入全螢幕模式","Leave fullscreen mode":"退出全螢幕模式","Fullscreen mode":"全螢幕模式","Toggle fullscreen mode":"切換全螢幕模式","Document outline":"文件大綱","Connected users":"已連線使用者","Font Size":"字體大小",Tiny:"特小",Small:"小",Big:"大",Huge:"特大","Font Family":"字型",Default:"預設","Font Color":"字體顏色","Font Background Color":"前景顏色","Document colors":"文件顏色","Find and replace":"尋找和取代","Find in text…":"在文本中尋找",Find:"尋找","Previous result":"前一個結果","Next result":"後一個結果",Replace:"取代","Replace all":"全部取代","Match case":"大小寫需相符","Whole words only":"僅全字拼寫","Replace with…":"以…替代","Text to find must not be empty.":"不能查找空字串","Tip: Find some text first in order to replace it.":"提示:先查找字串再取代","Advanced options":"進階選項","Find in the document":"在文件中尋找","Insert a soft break (a <code><br></code> element)":"插入非強制斷行(<code><br></code> 元件)","Insert a hard break (a new paragraph)":"插入強制斷行(新段落)",Emoji:"表情符號","Show all emoji...":"顯示所有表情符號…","Find an emoji (min. 2 characters)":"尋找表情符號(最少 2 個字元)",'No emojis were found matching "%0".':"找不到與「%0」相符的表情符號。","Keep on typing to see the emoji.":"繼續輸入以查看表情符號。","The query must contain at least two characters.":"查詢條件至少須包含兩個字元。","Smileys & Expressions":"笑臉與表情","Gestures & People":"手勢與人物","Animals & Nature":"動物與自然","Food & Drinks":"飲食","Travel & Places":"旅遊與景點",Activities:"活動",Objects:"物件",Symbols:"符號",Flags:"旗幟","Select skin tone":"選取膚色","Default skin tone":"預設膚色","Light skin tone":"淺調膚色","Medium Light skin tone":"中淺調膚色","Medium skin tone":"中調膚色","Medium Dark skin tone":"中深調膚色","Dark skin tone":"深調膚色","Emoji picker":"表情符號選擇器",Cancel:"取消",Clear:"清除","Remove color":"移除顏色","Restore default":"重設至預設值",Save:"儲存","Show more items":"顯示更多","%0 of %1":"%0/%1","Cannot upload file:":"無法上傳檔案:","Rich Text Editor. Editing area: %0":"RTF 編輯器。編輯區:%0","Insert with file manager":"使用檔案管理員插入","Replace with file manager":"使用檔案管理員替換","Insert image with file manager":"使用檔案管理員插入圖片","Replace image with file manager":"使用檔案管理員替換圖片",File:"檔案","With file manager":"使用檔案管理員","Toggle caption off":"關閉表標題","Toggle caption on":"開啟表標題","Content editing keystrokes":"內容編輯按鍵","These keyboard shortcuts allow for quick access to content editing features.":"運用這些鍵盤快捷鍵可快速使用內容編輯功能。","User interface and content navigation keystrokes":"使用者介面和內容瀏覽按鍵","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"使用以下按鍵可更有效率地在 CKEditor 5 使用者介面中移動。","Close contextual balloons, dropdowns, and dialogs":"關閉選單提示、下拉式選單和對話框","Open the accessibility help dialog":"開啟無障礙協助對話框","Move focus between form fields (inputs, buttons, etc.)":"在表單欄位(輸入、按鈕等)之間移動焦點","Move focus to the menu bar, navigate between menu bars":"將焦點移至選單列,瀏覽不同的選單列","Move focus to the toolbar, navigate between toolbars":"將焦點移動至工具列,在工具列間移動","Navigate through the toolbar or menu bar":"瀏覽工具列或選單列","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"執行目前所聚焦的按鈕。執行與編輯器內容互動的按鈕後,系統會將焦點移回內容。",Accept:"接受",Paragraph:"段落","Color picker":"顏色選擇","Please try a different phrase or check the spelling.":"請嘗試其他詞彙或確認拼寫是否正確。",Source:"原始碼",Insert:"插入",Update:"更新",Back:"返回","Insert code block":"插入程式碼區塊","Plain text":"純文字","Leaving %0 code snippet":"離開 %0 程式碼片段","Entering %0 code snippet":"進入 %0 程式碼片段","Entering code snippet":"進入程式碼片段","Leaving code snippet":"離開程式碼片段","Code block":"程式碼區塊","Copy selected content":"複製所選內容","Paste content":"貼上內容","Paste content as plain text":"將內容貼上為純文字","Insert image or file":"插入圖片或檔案","Could not obtain resized image URL.":"無法取得重設大小的圖片URL","Selecting resized image failed":"選擇重設大小的圖片失敗","Could not insert image at the current position.":"無法在這位置插入圖片","Inserting image failed":"插入圖片失敗",Bookmark:"書籤","Edit bookmark":"編輯書籤","Remove bookmark":"移除書籤","Bookmark name":"書籤名稱","Enter the bookmark name without spaces.":"輸入書籤名稱,請勿包含空格。","Bookmark must not be empty.":"書籤名稱不得為空。","Bookmark name cannot contain space characters.":"書籤名稱不可包含空格字元。","Bookmark name already exists.":"書籤名稱已存在。","bookmark widget":"書籤小工具","Bookmark toolbar":"書籤工具列",Bookmarks:"書籤","No bookmarks available.":"無可用書籤。","Scroll to bookmark":"捲動至書籤","Open file manager":"開啟檔案管理程式","Cannot determine a category for the uploaded file.":"無法確定上傳檔案的分類。","Cannot access default workspace.":"無法存取預設工作區。","You have no image editing permissions.":"您沒有圖片編輯權限。","Edit image":"編輯圖片","Processing the edited image.":"正在處理已編輯的圖片。","Server failed to process the image.":"伺服器無法處理該圖片。","Failed to determine category of edited image.":"無法判斷已編輯圖片的類別。","Block quote":"段落引用",Bold:"粗體",Italic:"斜體",Underline:"底線",Code:"代碼",Strikethrough:"刪除線",Subscript:"下標",Superscript:"上標","Italic text":"斜體文字","Move out of an inline code style":"移出行內程式碼樣式","Bold text":"粗體文字","Underline text":"底線文字","Strikethrough text":"刪除線文字","Saving changes":"正在儲存變更","Revert autoformatting action":"復原自動格式化操作","Align left":"靠左對齊","Align right":"靠右對齊","Align center":"置中對齊",Justify:"左右對齊","Text alignment":"文字對齊","Text alignment toolbar":"文字對齊"},getPluralForm(n){return 0}}};const nB={de:{dictionary:{"Words: %0":"Wörter: %0 ","Characters: %0":"Zeichen: %0 ","Widget toolbar":"Widget Werkzeugleiste","Insert paragraph before block":"Absatz vor Block einfügen","Insert paragraph after block":"Absatz nach Block einfügen","Press Enter to type after or press Shift + Enter to type before the widget":"Drücken Sie die Eingabetaste, um nach dem Widget zu tippen oder Shift + Eingabetaste, um vor dem Widget zu tippen.","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Tastatureingaben, die verwendet werden können, wenn ein Widget ausgewählt wurde (zum Beispiel: Bilder, Tabellen etc.)","Insert a new paragraph directly after a widget":"Einen neuen Abschnitt direkt nach einem Widget einfügen","Insert a new paragraph directly before a widget":"Einen neuen Abschnitt direkt vor einem Widget einfügen","Move the caret to allow typing directly before a widget":"Verschieben Sie den Textcursor, um die Eingabe direkt nach dem Widget zu erlauben","Move the caret to allow typing directly after a widget":"Verschieben Sie den Textcursor, um die direkte Eingabe nach dem Widget zu erlauben","Move focus from an editable area back to the parent widget":"Bewegen Sie den Fokus von einem bearbeitbaren Bereich zurück zum übergeordneten Widget","Upload in progress":"Upload läuft",Undo:"Rückgängig",Redo:"Wiederherstellen","Rich Text Editor":"Rich Text Editor","Edit block":"Absatz bearbeiten","Click to edit block":"Zum Bearbeiten des Blocks klicken","Drag to move":"Zum Verschieben ziehen",Next:"Nächste",Previous:"vorherige","Editor toolbar":"Editor Werkzeugleiste","Dropdown toolbar":"Dropdown-Liste Werkzeugleiste","Dropdown menu":"Dropdown-Menü",Black:"Schwarz","Dim grey":"Dunkelgrau",Grey:"Grau","Light grey":"Hellgrau",White:"Weiß",Red:"Rot",Orange:"Orange",Yellow:"Gelb","Light green":"Hellgrün",Green:"Grün",Aquamarine:"Aquamarinblau",Turquoise:"Türkis","Light blue":"Hellblau",Blue:"Blau",Purple:"Violett","Editor block content toolbar":"Editor Blockinhalt-Toolbar","Editor contextual toolbar":"Editor kontextuelle Toolbar",HEX:"HEX","No results found":"Keine Ergebnisse gefunden","No searchable items":"Keine durchsuchbaren Elemente","Editor dialog":"Editor-Dialog",Close:"Schließen","Help Contents. To close this dialog press ESC.":"Hilfe zum Inhalt. Drücken Sie die Esc-Taste, um dieses Dialogfenster zu schließen.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Unten finden Sie eine Liste mit Tastenkombinationen, die im Editor benutzt werden können.","(may require <kbd>Fn</kbd>)":"(erfordert gegebenenfalls <kbd>Fn</kbd>)",Accessibility:"Bedienungshilfen","Accessibility help":"Hilfe zur Eingabe","Press %0 for help.":"Drücken Sie %0 für Hilfe.","Move focus in and out of an active dialog window":"Fokus auf ein aktives Dialogfenster richten oder aufheben",MENU_BAR_MENU_FILE:"Datei",MENU_BAR_MENU_EDIT:"Bearbeiten",MENU_BAR_MENU_VIEW:"Anzeigen",MENU_BAR_MENU_INSERT:"Einfügen",MENU_BAR_MENU_FORMAT:"Format",MENU_BAR_MENU_TOOLS:"Werkzeuge",MENU_BAR_MENU_HELP:"Hilfe",MENU_BAR_MENU_TEXT:"Text",MENU_BAR_MENU_FONT:"Schriftart","Editor menu bar":"Menüleiste des Editors",'Please enter a valid color (e.g. "ff0000").':"Bitte geben Sie eine gültige Farbe ein (z. B. „ff0000“).","Insert table":"Tabelle einfügen","Header column":"Kopfspalte","Insert column left":"Spalte links einfügen","Insert column right":"Spalte rechts einfügen","Delete column":"Spalte löschen","Select column":"Spalte auswählen",Column:"Spalte","Header row":"Kopfzeile","Insert row below":"Zeile unten einfügen","Insert row above":"Zeile oben einfügen","Delete row":"Zeile löschen","Select row":"Zeile auswählen",Row:"Zeile","Merge cell up":"Zelle verbinden","Merge cell right":"Zelle rechts verbinden","Merge cell down":"Zelle unten verbinden","Merge cell left":"Zelle links verbinden","Split cell vertically":"Zelle vertikal teilen","Split cell horizontally":"Zelle horizontal teilen","Merge cells":"Zellen verbinden","Table toolbar":"Tabelle Werkzeugleiste","Table properties":"Tabelleneigenschaften","Cell properties":"Zelleneigenschaften",Border:"Rahmen",Style:"Rahmenart",Width:"Breite",Height:"Höhe",Color:"Farbe",Background:"Hintergrund",Padding:"Innenabstand",Dimensions:"Größe","Table cell text alignment":"Ausrichtung des Zellentextes",Alignment:"Ausrichtung","Horizontal text alignment toolbar":"Werkzeugleiste für die horizontale Zellentext-Ausrichtung","Vertical text alignment toolbar":"Werkzeugleiste für die vertikale Zellentext-Ausrichtung","Table alignment toolbar":"Werkzeugleiste für die Tabellen-Ausrichtung",None:"Kein Rahmen",Solid:"Durchgezogen",Dotted:"Gepunktet",Dashed:"Gestrichelt",Double:"Doppelt",Groove:"Eingeritzt",Ridge:"Hervorgehoben",Inset:"Eingelassen",Outset:"Geprägt","Align cell text to the left":"Zellentext linksbündig ausrichten","Align cell text to the center":"Zellentext zentriert ausrichten","Align cell text to the right":"Zellentext rechtsbündig ausrichten","Justify cell text":"Zellentext als Blocksatz ausrichten","Align cell text to the top":"Zellentext oben ausrichten","Align cell text to the middle":"Zellentext mittig ausrichten","Align cell text to the bottom":"Zellentext unten ausrichten","Align table to the left":"Tabelle links ausrichten","Center table":"Tabelle zentrieren","Align table to the right":"Tabelle rechts ausrichten",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':"Die Farbe ist ungültig. Probieren Sie „#FF0000“ oder „rgb(255,0,0)“ oder „red“.",'The value is invalid. Try "10px" or "2em" or simply "2".':"Der Wert ist ungültig. Probieren Sie „10px“ oder „2em“ oder „2“.","Enter table caption":"Tabellenüberschrift eingeben","Keystrokes that can be used in a table cell":"Tastatureingaben, die in einer Tabelle benutz werden können.","Move the selection to the next cell":"Auswahl in die nächste Zelle verschieben","Move the selection to the previous cell":"Auswahl in die vorherige Zelle verschieben","Insert a new table row (when in the last cell of a table)":"Eine neue Tabellenspalte einfügen (wenn in der letzten Tabellenzelle)","Navigate through the table":"Tabellennavigation",Table:"Tabelle","Insert table layout":"Tabellenlayout einfügen","Table layout":"Tabellenlayout","Layout table":"Layouttabelle","Content table":"Inhaltstabelle","Choose table type":"Tabellentyp auswählen","Table type":"Tabellentyp","Table type options":"Tabellentyp-Optionen",Styles:"Stile","Multiple styles":"Mehrere Stile","Block styles":"Block-Stile","Text styles":"Text-Stile","Special characters":"Sonderzeichen",Category:"Kategorie",All:"Alle",Arrows:"Pfeile",Currency:"Währung",Latin:"Lateinisch",Mathematical:"Mathematisch",Text:"Text","leftwards simple arrow":"einfacher Linkspfeil","rightwards simple arrow":"einfacher Rechtspfeil","upwards simple arrow":"einfacher Aufwärtspfeil","downwards simple arrow":"einfacher Abwärtspfeil","leftwards double arrow":"Doppelpfeil nach links","rightwards double arrow":"Doppelpfeil nach rechts","upwards double arrow":"Doppelpfeil nach oben","downwards double arrow":"Doppelpfeil nach unten","leftwards dashed arrow":"Gestrichelter Pfeil nach links","rightwards dashed arrow":"Gestrichelter Pfeil nach rechts","upwards dashed arrow":"Gestrichelter Pfeil nach oben","downwards dashed arrow":"Gestrichelter Pfeil nach unten","leftwards arrow to bar":"Pfeil nach links zum Querstrich","rightwards arrow to bar":"Pfeil nach rechts zum Querstrich","upwards arrow to bar":"Pfeil nach oben zum Querstrich","downwards arrow to bar":"Pfeil nach unten zum Querstrich","up down arrow with base":"Unterstrichener Pfeil nach oben und unten","back with leftwards arrow above":"„Back“ darüber Pfeil nach links","end with leftwards arrow above":"„End“ darüber Pfeil nach links","on with exclamation mark with left right arrow above":"„On“ mit Ausrufezeichen darüber Pfeil nach links und rechts","soon with rightwards arrow above":"„Soon“ darüber Pfeil nach rechts","top with upwards arrow above":"„Top“ darüber Pfeil nach oben","Dollar sign":"Dollar-Zeichen","Euro sign":"Euro-Zeichen","Yen sign":"Yen-Zeichen","Pound sign":"Pfund-Zeichen","Cent sign":"Cent-Zeichen","Euro-currency sign":"Euro-Währungszeichen","Colon sign":"Colón-Zeichen","Cruzeiro sign":"Cruzeiro-Zeichen","French franc sign":"Französischer Franc-Zeichen","Lira sign":"Lira-Zeichen","Currency sign":"Währungssymbol","Bitcoin sign":"Bitcoin-Zeichen","Mill sign":"Mill-Zeichen","Naira sign":"Naira-Zeichen","Peseta sign":"Peseta-Zeichen","Rupee sign":"Rupie-Zeichen","Won sign":"Won-Zeichen","New sheqel sign":"Schekel-Zeichen","Dong sign":"Đồng-Zeichen","Kip sign":"Kip-Zeichen","Tugrik sign":"Tugrik-Zeichen","Drachma sign":"Drachme-Zeichen","German penny sign":"Pfennig-Zeichen","Peso sign":"Philippinischer Peso-Zeichen","Guarani sign":"Guaraní-Zeichen","Austral sign":"Austral-Zeichen","Hryvnia sign":"Hrywnja-Zeichen","Cedi sign":"Cedi-Zeichen","Livre tournois sign":"Livre tournois-Zeichen","Spesmilo sign":"Spesmilo-Zeichen","Tenge sign":"Tenge-Zeichen","Indian rupee sign":"Indische Rupie-Zeichen","Turkish lira sign":"Türkische Lira-Zeichen","Nordic mark sign":"Nordische Mark-Zeichen","Manat sign":"Manat-Zeichen","Ruble sign":"Rubel-Zeichen","Latin capital letter a with macron":"Lateinischer Großbuchstabe a mit Makron","Latin small letter a with macron":"Lateinischer Kleinbuchstabe a mit Makron","Latin capital letter a with breve":"Lateinischer Großbuchstabe a mit Breve","Latin small letter a with breve":"Lateinischer Kleinbuchstabe a mit Breve","Latin capital letter a with ogonek":"Lateinischer Großbuchstabe a mit Ogonek","Latin small letter a with ogonek":"Lateinischer Kleinbuchstabe a mit Ogonek","Latin capital letter c with acute":"Lateinischer Großbuchstabe c mit Akut","Latin small letter c with acute":"Lateinischer Kleinbuchstabe c mit Akut","Latin capital letter c with circumflex":"Lateinischer Großbuchstabe c mit Zirkumflex","Latin small letter c with circumflex":"Lateinischer Kleinbuchstabe c mit Zirkumflex","Latin capital letter c with dot above":"Lateinischer Großbuchstabe c mit Punkt darüber","Latin small letter c with dot above":"Lateinischer Kleinbuchstabe c mit Punkt darüber","Latin capital letter c with caron":"Lateinischer Großbuchstabe c mit Hatschek","Latin small letter c with caron":"Lateinischer Kleinbuchstabe c mit Hatschek","Latin capital letter d with caron":"Lateinischer Großbuchstabe d mit Hatschek","Latin small letter d with caron":"Lateinischer Kleinbuchstabe d mit Hatschek","Latin capital letter d with stroke":"Lateinischer Großbuchstabe d mit Querstrich","Latin small letter d with stroke":"Lateinischer Kleinbuchstabe d mit Querstrich","Latin capital letter e with macron":"Lateinischer Großbuchstabe e mit Makron","Latin small letter e with macron":"Lateinischer Kleinbuchstabe e mit Makron","Latin capital letter e with breve":"Lateinischer Großbuchstabe e mit Breve","Latin small letter e with breve":"Lateinischer Kleinbuchstabe e mit Breve","Latin capital letter e with dot above":"Lateinischer Großbuchstabe e mit Punkt darüber","Latin small letter e with dot above":"Lateinischer Kleinbuchstabe e mit Punkt darüber","Latin capital letter e with ogonek":"Lateinischer Großbuchstabe e mit Ogonek","Latin small letter e with ogonek":"Lateinischer Kleinbuchstabe e mit Ogonek","Latin capital letter e with caron":"Lateinischer Großbuchstabe e mit Hatschek","Latin small letter e with caron":"Lateinischer Kleinbuchstabe e mit Hatschek","Latin capital letter g with circumflex":"Lateinischer Großbuchstabe g mit Zirkumflex","Latin small letter g with circumflex":"Lateinischer Kleinbuchstabe g mit Zirkumflex","Latin capital letter g with breve":"Lateinischer Großbuchstabe g mit Breve","Latin small letter g with breve":"Lateinischer Kleinbuchstabe g mit Breve","Latin capital letter g with dot above":"Lateinischer Großbuchstabe g mit Punkt darüber","Latin small letter g with dot above":"Lateinischer Kleinbuchstabe g mit Punkt darüber","Latin capital letter g with cedilla":"Lateinischer Großbuchstabe g mit Cedille","Latin small letter g with cedilla":"Lateinischer Kleinbuchstabe g mit Cedille","Latin capital letter h with circumflex":"Lateinischer Großbuchstabe h mit Zirkumflex","Latin small letter h with circumflex":"Lateinischer Kleinbuchstabe h mit Zirkumflex","Latin capital letter h with stroke":"Lateinischer Großbuchstabe h mit Querstrich","Latin small letter h with stroke":"Lateinischer Kleinbuchstabe h mit Querstrich","Latin capital letter i with tilde":"Lateinischer Großbuchstabe i mit Tilde","Latin small letter i with tilde":"Lateinischer Kleinbuchstabe i mit Tilde","Latin capital letter i with macron":"Lateinischer Großbuchstabe i mit Makron","Latin small letter i with macron":"Lateinischer Kleinbuchstabe i mit Makron","Latin capital letter i with breve":"Lateinischer Großbuchstabe i mit Breve","Latin small letter i with breve":"Lateinischer Kleinbuchstabe i mit Breve","Latin capital letter i with ogonek":"Lateinischer Großbuchstabe i mit Ogonek","Latin small letter i with ogonek":"Lateinischer Kleinbuchstabe i mit Ogonek","Latin capital letter i with dot above":"Lateinischer Großbuchstabe i mit Punkt darüber","Latin small letter dotless i":"Lateinischer Kleinbuchstabe i ohne Punkt","Latin capital ligature ij":"Große lateinische Ligatur ij","Latin small ligature ij":"Kleine lateinische Ligatur ij","Latin capital letter j with circumflex":"Lateinischer Großbuchstabe j mit Zirkumflex","Latin small letter j with circumflex":"Lateinischer Kleinbuchstabe j mit Zirkumflex","Latin capital letter k with cedilla":"Lateinischer Großbuchstabe k mit Cedille","Latin small letter k with cedilla":"Lateinischer Kleinbuchstabe k mit Cedille","Latin small letter kra":"Lateinischer Kleinbuchstabe Kra","Latin capital letter l with acute":"Lateinischer Großbuchstabe l mit Akut","Latin small letter l with acute":"Lateinischer Kleinbuchstabe l mit Akut","Latin capital letter l with cedilla":"Lateinischer Großbuchstabe l mit Cedille","Latin small letter l with cedilla":"Lateinischer Kleinbuchstabe l mit Cedille","Latin capital letter l with caron":"Lateinischer Großbuchstabe l mit Hatschek","Latin small letter l with caron":"Lateinischer Kleinbuchstabe l mit Hatschek","Latin capital letter l with middle dot":"Lateinischer Großbuchstabe l mit Mittelpunkt","Latin small letter l with middle dot":"Lateinischer Kleinbuchstabe l mit Mittelpunkt","Latin capital letter l with stroke":"Lateinischer Großbuchstabe l mit Querstrich","Latin small letter l with stroke":"Lateinischer Kleinbuchstabe l mit Querstrich","Latin capital letter n with acute":"Lateinischer Großbuchstabe n mit Akut","Latin small letter n with acute":"Lateinischer Kleinbuchstabe n mit Akut","Latin capital letter n with cedilla":"Lateinischer Großbuchstabe n mit Cedille","Latin small letter n with cedilla":"Lateinischer Kleinbuchstabe n mit Cedille","Latin capital letter n with caron":"Lateinischer Großbuchstabe n mit Hatschek","Latin small letter n with caron":"Lateinischer Kleinbuchstabe n mit Hatschek","Latin small letter n preceded by apostrophe":"Lateinischer Kleinbuchstabe n mit vorangestelltem Apostroph","Latin capital letter eng":"Lateinischer Großbuchstabe Eng","Latin small letter eng":"Lateinischer Kleinbuchstabe Eng","Latin capital letter o with macron":"Lateinischer Großbuchstabe o mit Makron","Latin small letter o with macron":"Lateinischer Kleinbuchstabe o mit Makron","Latin capital letter o with breve":"Lateinischer Großbuchstabe o mit Breve","Latin small letter o with breve":"Lateinischer Kleinbuchstabe o mit Breve","Latin capital letter o with double acute":"Lateinischer Großbuchstabe o mit doppeltem Akut","Latin small letter o with double acute":"Lateinischer Kleinbuchstabe o mit doppeltem Akut","Latin capital ligature oe":"Große lateinische Ligatur oe","Latin small ligature oe":"Kleine lateinische Ligatur oe","Latin capital letter r with acute":"Lateinischer Großbuchstabe r mit Akut","Latin small letter r with acute":"Lateinischer Kleinbuchstabe r mit Akut","Latin capital letter r with cedilla":"Lateinischer Großbuchstabe r mit Cedille","Latin small letter r with cedilla":"Lateinischer Kleinbuchstabe r mit Cedille","Latin capital letter r with caron":"Lateinischer Großbuchstabe r mit Hatschek","Latin small letter r with caron":"Lateinischer Kleinbuchstabe r mit Hatschek","Latin capital letter s with acute":"Lateinischer Großbuchstabe s mit Akut","Latin small letter s with acute":"Lateinischer Kleinbuchstabe s mit Akut","Latin capital letter s with circumflex":"Lateinischer Großbuchstabe s mit Zirkumflex","Latin small letter s with circumflex":"Lateinischer Kleinbuchstabe s mit Zirkumflex","Latin capital letter s with cedilla":"Lateinischer Großbuchstabe s mit Cedille","Latin small letter s with cedilla":"Lateinischer Kleinbuchstabe s mit Cedille","Latin capital letter s with caron":"Lateinischer Großbuchstabe s mit Hatschek","Latin small letter s with caron":"Lateinischer Kleinbuchstabe s mit Hatschek","Latin capital letter t with cedilla":"Lateinischer Großbuchstabe t mit Cedille","Latin small letter t with cedilla":"Lateinischer Kleinbuchstabe t mit Cedille","Latin capital letter t with caron":"Lateinischer Großbuchstabe t mit Hatschek","Latin small letter t with caron":"Lateinischer Kleinbuchstabe t mit Hatschek","Latin capital letter t with stroke":"Lateinischer Großbuchstabe t mit Querstrich","Latin small letter t with stroke":"Lateinischer Kleinbuchstabe t mit Querstrich","Latin capital letter u with tilde":"Lateinischer Großbuchstabe u mit Tilde","Latin small letter u with tilde":"Lateinischer Kleinbuchstabe u mit Tilde","Latin capital letter u with macron":"Lateinischer Großbuchstabe u mit Makron","Latin small letter u with macron":"Lateinischer Kleinbuchstabe u mit Makron","Latin capital letter u with breve":"Lateinischer Großbuchstabe u mit Breve","Latin small letter u with breve":"Lateinischer Kleinbuchstabe u mit Breve","Latin capital letter u with ring above":"Lateinischer Großbuchstabe u mit Kroužek darüber","Latin small letter u with ring above":"Lateinischer Kleinbuchstabe u mit Kroužek darüber","Latin capital letter u with double acute":"Lateinischer Großbuchstabe u mit doppeltem Akut","Latin small letter u with double acute":"Lateinischer Kleinbuchstabe u mit doppeltem Akut","Latin capital letter u with ogonek":"Lateinischer Großbuchstabe u mit Ogonek","Latin small letter u with ogonek":"Lateinischer Kleinbuchstabe u mit Ogonek","Latin capital letter w with circumflex":"Lateinischer Großbuchstabe w mit Zirkumflex","Latin small letter w with circumflex":"Lateinischer Kleinbuchstabe w mit Zirkumflex","Latin capital letter y with circumflex":"Lateinischer Großbuchstabe y mit Zirkumflex","Latin small letter y with circumflex":"Lateinischer Kleinbuchstabe y mit Zirkumflex","Latin capital letter y with diaeresis":"Lateinischer Großbuchstabe y mit Trema","Latin capital letter z with acute":"Lateinischer Großbuchstabe z mit Akut","Latin small letter z with acute":"Lateinischer Kleinbuchstabe z mit Akut","Latin capital letter z with dot above":"Lateinischer Großbuchstabe z mit Punkt darüber","Latin small letter z with dot above":"Lateinischer Kleinbuchstabe z mit Punkt darüber","Latin capital letter z with caron":"Lateinischer Großbuchstabe z mit Hatschek","Latin small letter z with caron":"Lateinischer Kleinbuchstabe z mit Hatschek","Latin small letter long s":"Lateinischer Kleinbuchstabe langes s","Less-than sign":"Kleiner-als-Zeichen","Greater-than sign":"Größer-als-Zeichen","Less-than or equal to":"Kleiner als oder gleich","Greater-than or equal to":"Größer als oder gleich","En dash":"Halbgeviertstrich","Em dash":"Geviertstrich",Macron:"Makron",Overline:"Überstrich","Degree sign":"Grad-Zeichen","Minus sign":"Minus-Zeichen","Plus-minus sign":"Plus-Minus-Zeichen","Division sign":"Geteilt-Zeichen","Fraction slash":"Schrägstrich","Multiplication sign":"Mal-Zeichen","Latin small letter f with hook":"Lateinischer Kleinbuchstabe f mit Haken",Integral:"Integral-Zeichen","N-ary summation":"Summen-Zeichen",Infinity:"Unendlich-Zeichen","Square root":"Wurzel-Zeichen","Tilde operator":"Tilde-Operator","Approximately equal to":"Ungefähr gleich","Almost equal to":"Gerundet","Not equal to":"Ungleich","Identical to":"Identisch mit","Element of":"Element von","Not an element of":"Kein Element von","Contains as member":"Enthält als Element","N-ary product":"Produkt-Zeichen","Logical and":"Logisches und","Logical or":"Logisches oder","Not sign":"Negations-Zeichen",Intersection:"Schnitt",Union:"Vereinigung","Partial differential":"Partielle Ableitung","For all":"Allquantor","There exists":"Existenzquantor","Empty set":"Leere Menge",Nabla:"Nabla","Asterisk operator":"Hodge-Stern-Operator","Proportional to":"Proportional zu",Angle:"Winkel-Zeichen","Vulgar fraction one quarter":"Gemeiner Bruch ein Viertel","Vulgar fraction one half":"Gemeiner Bruch ein Halb","Vulgar fraction three quarters":"Gemeiner Bruch drei Viertel","Single left-pointing angle quotation mark":"Einfache Guillemets nach links","Single right-pointing angle quotation mark":"Einfache Guillemets nach rechts","Left-pointing double angle quotation mark":"Doppelte Guillemets nach links","Right-pointing double angle quotation mark":"Doppelte Guillemets nach rechts","Left single quotation mark":"Einfache Anführungszeichen links","Right single quotation mark":"Einfache Anführungszeichen rechts","Left double quotation mark":"Doppelte Anführungszeichen links","Right double quotation mark":"Doppelte Anführungszeichen rechts","Single low-9 quotation mark":"Einfache Anführungszeichen links unten","Double low-9 quotation mark":"Doppelte Anführungszeichen links unten","Inverted exclamation mark":"Umgekehrtes Ausrufezeichen","Inverted question mark":"Umgekehrtes Fragezeichen","Two dot leader":"Doppel-Punktlinie","Horizontal ellipsis":"Auslassungspunkte","Double dagger":"Zweibalkenkreuz","Per mille sign":"Promille-Zeichen","Per ten thousand sign":"Pro-Zehntausend-Zeichen","Double exclamation mark":"Doppeltes Ausrufezeichen","Question exclamation mark":"Frage-Ruf-Zeichen","Exclamation question mark":"Ruf-Frage-Zeichen","Double question mark":"Doppeltes Fragezeichen","Copyright sign":"Copyright-Zeichen","Registered sign":"Registered-Trade-Mark-Zeichen","Trade mark sign":"Unregistered-Trade-Mark-Zeichen","Section sign":"Paragraphen-Zeichen","Paragraph sign":"Absatz-Zeichen","Reversed paragraph sign":"Umgedrehtes Absatz-Zeichen","Show source":"Quelle anzeigen","Show blocks":"Blöcke anzeigen","Select all":"Alles auswählen","Disable editing":"Bearbeitung deaktivieren","Enable editing":"Bearbeitung zulassen","Previous editable region":"Vorheriger bearbeitbarer Bereich","Next editable region":"Nächster bearbeitbarer Bereich","Navigate editable regions":"Durch bearbeitbare Bereiche navigieren","Remove Format":"Formatierung entfernen","Page break":"Seitenumbruch","media widget":"Medien-Widget","Media URL":"Medien-URL","Paste the media URL in the input.":"Medien-URL in das Eingabefeld einfügen.","Tip: Paste the URL into the content to embed faster.":"Tipp: Zum schnelleren Einbetten können Sie die Medien-URL in den Inhalt einfügen.","The URL must not be empty.":"Die URL darf nicht leer sein.","This media URL is not supported.":"Diese Medien-URL wird nicht unterstützt.","Insert media":"Medium einfügen",Media:"Medien","Media toolbar":"Medien Werkzeugleiste","Open media in new tab":"Medien in neuem Tab öffnen","Media embed":"Medieneinbettung","Numbered List":"Nummerierte Liste","Bulleted List":"Aufzählungsliste","To-do List":"Aufgabenliste","Bulleted list styles toolbar":"Darstellung der ungeordneten Liste","Numbered list styles toolbar":"Darstellung der geordneten Liste","Toggle the disc list style":"Gefüllten Kreis einstellen","Toggle the circle list style":"Leeren Kreis einstellen","Toggle the square list style":"Quadrat einstellen","Toggle the decimal list style":"Dezimalzahlen einstellen","Toggle the decimal with leading zero list style":"Dezimalzahlen mit vorangestellten Nullen einstellen","Toggle the lower–roman list style":"Kleingeschriebene römische Zahlen einstellen","Toggle the upper–roman list style":"Großgeschriebene römische Zahlen einstellen","Toggle the lower–latin list style":"Kleingeschriebene lateinische Buchstaben einstellen","Toggle the upper–latin list style":"Großgeschriebene lateinische Buchstaben einstellen",Disc:"Gefüllter Kreis",Circle:"Leerer Kreis",Square:"Quadrat",Decimal:"Dezimalzahlen","Decimal with leading zero":"Dezimalzahlen mit vorangestellten Nullen","Lower–roman":"Kleingeschriebene römische Zahlen","Upper-roman":"Großgeschriebene römische Zahlen","Lower-latin":"Kleingeschriebene lateinische Buchstaben","Upper-latin":"Großgeschriebene lateinische Buchstaben","List properties":"Listeneigenschaften","Start at":"Beginnen mit","Invalid start index value.":"Ungültiger Anfangsindexwert.","Start index must be greater than 0.":"Der Startwert muss größer als 0 sein.","Reversed order":"Umgekehrte Reihenfolge","Keystrokes that can be used in a list":"Tastatureingaben, die in einer Liste verwendet werden können.","Increase list item indent":"Listeneinzug vergrößern","Decrease list item indent":"Listeneinzug verkleinern","Entering a to-do list":"Eingabe einer Aufgabenliste","Leaving a to-do list":"Verlassen einer Aufgabenliste",Unlink:"Link entfernen",Link:"Link","Link URL":"Linkadresse","Link URL must not be empty.":"Die Link-URL darf nicht leer sein.","Link image":"Bild verlinken","Edit link":"Link bearbeiten","Open link in new tab":"Link im neuen Tab öffnen","Open in a new tab":"In neuem Tab öffnen",Downloadable:"Herunterladbar","Create link":"Link erstellen","Move out of a link":"Linkauswahl aufheben","Link properties":"Linkeigenschaften","Displayed text":"Angezeigter Text","No links available":"Keine Links verfügbar",Language:"Sprache","Choose language":"Sprache auswählen","Remove language":"Sprache entfernen","Increase indent":"Einzug vergrößern","Decrease indent":"Einzug verkleinern","image widget":"Bild-Steuerelement","Wrap text":"Text umfließt Bild","Break text":"Bild teilt Text","In line":"Text in Zeile","Side image":"Seitenbild","Full size image":"Bild in voller Größe","Left aligned image":"Linksbündiges Bild","Centered image":"Zentriertes Bild","Right aligned image":"Rechtsbündiges Bild","Change image text alternative":"Alternativtext ändern","Text alternative":"Alternativtext","Enter image caption":"Bildunterschrift eingeben","Insert image":"Bild einfügen","Replace image":"Bild ersetzen","Upload from computer":"Vom Computer hochladen","Replace from computer":"Vom Computer ersetzen","Upload image from computer":"Bild vom Computer hochladen","Image from computer":"Bild vom Computer","From computer":"Vom Computer","Replace image from computer":"Bild vom Computer ersetzen","Upload failed":"Hochladen fehlgeschlagen","You have no image upload permissions.":"Sie haben keine Berechtigung zum Hochladen von Bildern.","Image toolbar":"Bild Werkzeugleiste","Resize image":"Bildgröße ändern","Resize image to %0":"Bildgröße ändern in %0","Resize image to the original size":"Bild in Originalgröße ändern","Resize image (in %0)":"Bildgröße ändern (in %0)",Original:"Original","Custom image size":"Benutzerdefinierte Bildgröße",Custom:"Benutzerdefiniert","Image resize list":"Bildgrößen-Liste","Insert image via URL":"Bild von URL einfügen","Insert via URL":"Per URL einfügen","Image via URL":"Bild per URL","Via URL":"Per URL","Update image URL":"Bild-URL aktualisieren","Caption for the image":"Bildunterschrift","Caption for image: %0":"Bildunterschrift: %0","The value must not be empty.":"Der Wert darf nicht leer sein.","The value should be a plain number.":"Der Wert sollte eine einfache Zahl sein.","Uploading image":"Bild hochladen","Image upload complete":"Bild erfolgreich hochgeladen","Error during image upload":"Fehler beim Hochladen des Bildes",Image:"Bild","Image Resize":"Bildgrößenänderung","Text Alternative":"Textalternative","HTML object":"HTML-Objekt","Insert HTML":"HTML einfügen","HTML snippet":"HTML-Snippet","Paste raw HTML here...":"Rohes HTML hier einfügen …","Edit source":"Quelle bearbeiten","Save changes":"Änderungen speichern","No preview available":"Keine Vorschau verfügbar","Empty snippet content":"Leerer Snippet-Inhalt","Horizontal line":"Horizontale Linie","Yellow marker":"Gelber Marker","Green marker":"Grüner Marker","Pink marker":"Pinker Marker","Blue marker":"Blauer Marker","Red pen":"Rote Schriftfarbe","Green pen":"Grüne Schriftfarbe","Remove highlight":"Texthervorhebung entfernen",Highlight:"Texthervorhebung","Text highlight toolbar":"Text hervorheben Werkzeugleiste",Heading:"Überschrift","Choose heading":"Überschrift auswählen","Heading 1":"Überschrift 1","Heading 2":"Überschrift 2","Heading 3":"Überschrift 3","Heading 4":"Überschrift 4","Heading 5":"Überschrift 5","Heading 6":"Überschrift 6","Type your title":"Titel eingeben","Type or paste your content here.":"Hier Inhalt einfügen.","Enter fullscreen mode":"Vollbildmodus aktivieren","Leave fullscreen mode":"Vollbildmodus deaktivieren","Fullscreen mode":"Vollbildmodus","Toggle fullscreen mode":"Vollbildmodus umschalten","Document outline":"Dokumentgliederung","Connected users":"Verbundene Nutzer","Font Size":"Schriftgröße",Tiny:"Sehr klein",Small:"Klein",Big:"Groß",Huge:"Sehr groß","Font Family":"Schriftart",Default:"Standard","Font Color":"Schriftfarbe","Font Background Color":"Hintergrundfarbe","Document colors":"Dokumentfarben","Find and replace":"Suchen und ersetzen","Find in text…":"In Text suchen…",Find:"Suchen","Previous result":"Vorheriges Ergebnis","Next result":"Nächstes Ergebnis",Replace:"Ersetzen","Replace all":"Alle ersetzen","Match case":"Groß-/Kleinschreibung beachten","Whole words only":"Nur ganze Wörter","Replace with…":"Ersetzen durch…","Text to find must not be empty.":"Der Suchtext darf nicht leer sein.","Tip: Find some text first in order to replace it.":"Tipp: Zuerst nach Text suchen um diesen zu ersetzen.","Advanced options":"Erweiterte Optionen","Find in the document":"Dokument durchsuchen","Insert a soft break (a <code><br></code> element)":"Einen weichen Zeilenumbruch einfügen (ein <code><br></code>-Element)","Insert a hard break (a new paragraph)":"Zeilenumbruch einfügen (einen neuen Abschnitt)",Emoji:"Emojis","Show all emoji...":"Alle Emojis anzeigen ...","Find an emoji (min. 2 characters)":"Emoji finden (min. 2 Zeichen)",'No emojis were found matching "%0".':"Es wurden keine Emojis gefunden, die zu „%0“ passen.","Keep on typing to see the emoji.":"Weiteren Text eingeben, damit Emojis angezeigt werden.","The query must contain at least two characters.":"Die Anfrage muss aus mindestens zwei Zeichen bestehen.","Smileys & Expressions":"Smileys und Emotionen","Gestures & People":"Gesten und Personen","Animals & Nature":"Tiere und Natur","Food & Drinks":"Speisen und Getränke","Travel & Places":"Reisen und Orte",Activities:"Aktivitäten",Objects:"Objekte",Symbols:"Symbole",Flags:"Flaggen","Select skin tone":"Hautfarbe wählen","Default skin tone":"Standardhautfarbe","Light skin tone":"Helle Hautfarbe","Medium Light skin tone":"Mittelhelle Hautfarbe","Medium skin tone":"Mittlere Hautfarbe","Medium Dark skin tone":"Mitteldunkle Hautfarbe","Dark skin tone":"Dunkle Hautfarbe","Emoji picker":"Emoji-Auswahl",Cancel:"Abbrechen",Clear:"Löschen","Remove color":"Farbe entfernen","Restore default":"Standard wiederherstellen",Save:"Speichern","Show more items":"Mehr anzeigen","%0 of %1":"%0 von %1","Cannot upload file:":"Die Datei kann nicht hochgeladen werden:","Rich Text Editor. Editing area: %0":"Rich Text Editor. Bearbeitungsbereich: %0","Insert with file manager":"Mit Dateimanager einfügen","Replace with file manager":"Mittels Dateimanager ersetzen","Insert image with file manager":"Bild mit dem Dateimanager einfügen","Replace image with file manager":"Bild mittels Dateimanager ersetzen",File:"Datei","With file manager":"Mit dem Dateimanager","Toggle caption off":"Tabellenüberschrift deaktivieren","Toggle caption on":"Tabellenüberschrift aktivieren","Content editing keystrokes":"Tastatureingaben zur Inhaltsverarbeitung","These keyboard shortcuts allow for quick access to content editing features.":"Diese Tastenkombinationen ermöglichen einen schnellen Zugang zu den Inhaltsverarbeitungsfunktionen.","User interface and content navigation keystrokes":"Benutzeroberfläche und Inhaltsnavigationstasten","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Verwenden Sie die folgenden Tastatureingaben für eine effizientere Navigation auf der CKEditor-5-Benutzeroberfläche.","Close contextual balloons, dropdowns, and dialogs":"Kontextsprechblasen, Dropdown-Menü und Dialoge schließen","Open the accessibility help dialog":"Den Dialog zur Eingabehilfe öffnen","Move focus between form fields (inputs, buttons, etc.)":"Fokus zwischen Formularfeldern verschieben (Eingaben, Tastenfelder etc.)","Move focus to the menu bar, navigate between menu bars":"Fokus auf die Menüleiste richten, zwischen Menüleisten navigieren","Move focus to the toolbar, navigate between toolbars":"Fokus auf die Symbolleiste verschieben, zwischen den Symbolleisten navigieren","Navigate through the toolbar or menu bar":"Durch die Werkzeugleiste oder Menüleiste navigieren","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Ausführen der aktuell fokussierten Schaltfläche. Das Ausführen von Schaltflächen, die mit dem Inhalt des Editors interagieren, richtet den Fokus zurück auf den Inhalt.",Accept:"Akzeptieren",Paragraph:"Absatz","Color picker":"Farbwähler","Please try a different phrase or check the spelling.":"Bitte versuchen Sie einen anderen Ausdruck oder überprüfen Sie die Schreibweise.",Source:"Quelle",Insert:"Einfügen",Update:"Aktualisieren",Back:"Zurück","Insert code block":"Code-Block einfügen","Plain text":"Nur Text","Leaving %0 code snippet":"%0 Code-Ausschnitt verlassen","Entering %0 code snippet":"%0 Code-Ausschnitt eingeben","Entering code snippet":"Code-Ausschnit eingeben","Leaving code snippet":"Code-Ausschnit verlassen","Code block":"Codeblock","Copy selected content":"Markierten Inhalt kopieren","Paste content":"Inhalt einfügen","Paste content as plain text":"Inhalt als Klartext einfügen","Insert image or file":"Bild oder Datei einfügen","Could not obtain resized image URL.":"Die URL des angepassten Bildes konnte nicht abgerufen werden.","Selecting resized image failed":"Das angepasste Bild konnte nicht ausgewählt werden.","Could not insert image at the current position.":"Das Bild konnte an der aktuellen Position nicht eingefügt werden.","Inserting image failed":"Einfügen des Bildes fehlgeschlagen",Bookmark:"Lesezeichen","Edit bookmark":"Lesezeichen bearbeiten","Remove bookmark":"Lesezeichen entfernen","Bookmark name":"Name des Lesezeichens","Enter the bookmark name without spaces.":"Geben Sie den Namen des Lesezeichens ohne Leerzeichen ein.","Bookmark must not be empty.":"Das Lesezeichen darf nicht leer sein.","Bookmark name cannot contain space characters.":"Der Name des Lesezeichens darf keine Leerzeichen enthalten.","Bookmark name already exists.":"Der Lesezeichenname existiert bereits.","bookmark widget":"Lesezeichen-Widget","Bookmark toolbar":"Lesezeichen-Werkzeugleiste",Bookmarks:"Lesezeichen","No bookmarks available.":"Keine Lesezeichen verfügbar.","Scroll to bookmark":"Zu Lesezeichen scrollen","Open file manager":"Dateimanager öffnen","Cannot determine a category for the uploaded file.":"Die Kategorie für die hochgeladene Datei konnte nicht bestimmt werden.","Cannot access default workspace.":"Zugriff auf Standardarbeitsbereich nicht möglich.","You have no image editing permissions.":"Sie haben keine Berechtigung zum Bearbeiten von Bildern.","Edit image":"Bild bearbeiten","Processing the edited image.":"Das bearbeitete Bild wird verarbeitet.","Server failed to process the image.":"Der Server konnte das Bild nicht verarbeiten.","Failed to determine category of edited image.":"Es konnte für das bearbeitete Bild keine Kategorie ermittelt werden.","Block quote":"Blockzitat",Bold:"Fett",Italic:"Kursiv",Underline:"Unterstrichen",Code:"Code",Strikethrough:"Durchgestrichen",Subscript:"Tiefgestellt",Superscript:"Hochgestellt","Italic text":"Kursivschrift","Move out of an inline code style":"Inline Code Style verlassen","Bold text":"Fettschrift","Underline text":"Text hervorheben","Strikethrough text":"Durchgestrichener Text","Saving changes":"Änderungen werden gespeichert","Revert autoformatting action":"Automatischen Formatierungsvorgang rückgängig machen","Align left":"Linksbündig","Align right":"Rechtsbündig","Align center":"Zentriert",Justify:"Blocksatz","Text alignment":"Textausrichtung","Text alignment toolbar":"Text-Ausrichtung Toolbar"},getPluralForm(n){return n!=1}}};const rB={es:{dictionary:{"Words: %0":"Palabras: %0","Characters: %0":"Caracteres: %0","Widget toolbar":"Barra de herramientas del widget","Insert paragraph before block":"Insertar párrafo antes del bloque","Insert paragraph after block":"Insertar párrafo después del bloque","Press Enter to type after or press Shift + Enter to type before the widget":"Pulse Intro para escribir después o pulse Mayús + Intro para escribir antes del «widget».","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Teclas que se pueden utilizar cuando se selecciona un módulo interactivo (por ejemplo: imagen, tabla, etc.)","Insert a new paragraph directly after a widget":"Inserta un nuevo párrafo directamente después de un módulo interactivo","Insert a new paragraph directly before a widget":"Inserta un nuevo párrafo directamente antes de un módulo interactivo","Move the caret to allow typing directly before a widget":"Mueve el cursor para permitir escribir directamente antes de un módulo interactivo","Move the caret to allow typing directly after a widget":"Mueve el cursor para permitir escribir directamente después de un módulo interactivo","Move focus from an editable area back to the parent widget":"Cambiar el foco de un área editable al widget principal","Upload in progress":"Subida en progreso",Undo:"Deshacer",Redo:"Rehacer","Rich Text Editor":"Editor de Texto Enriquecido","Edit block":"Cuadro de edición","Click to edit block":"Haz clic para editar el bloque","Drag to move":"Arrastra para mover",Next:"Siguiente",Previous:"Anterior","Editor toolbar":"Barra de herramientas de edición","Dropdown toolbar":"Barra de herramientas desplegable","Dropdown menu":"Menú desplegable",Black:"Negro","Dim grey":"Gris oscuro",Grey:"Gris","Light grey":"Gris claro",White:"Blanco",Red:"Rojo",Orange:"Naranja",Yellow:"Amarillo","Light green":"Verde claro",Green:"Verde",Aquamarine:"Aguamarina",Turquoise:"Turquesa","Light blue":"Azul claro",Blue:"Azul",Purple:"Morado","Editor block content toolbar":"Barra de herramientas de contenido del bloque del editor","Editor contextual toolbar":"Barra de herramientas contextual del editor",HEX:"HEX","No results found":"No se han encontrado resultados","No searchable items":"No hay elementos que buscar","Editor dialog":"Diálogo del editor",Close:"Cerrar","Help Contents. To close this dialog press ESC.":"Contenidos de ayuda. Presione ESC para cerrar este cuadro de diálogo.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"A continuación, encontrará una lista de atajos de teclado que se pueden utilizar en el editor.","(may require <kbd>Fn</kbd>)":"(puede requerir <kbd>Fn</kbd>)",Accessibility:"Accesibilidad","Accessibility help":"Ayuda de accesibilidad","Press %0 for help.":"Presione %0 para obtener ayuda.","Move focus in and out of an active dialog window":"Mueve el foco dentro y fuera de una ventana de diálogo activa",MENU_BAR_MENU_FILE:"Archivo",MENU_BAR_MENU_EDIT:"Editar",MENU_BAR_MENU_VIEW:"Ver",MENU_BAR_MENU_INSERT:"Insertar",MENU_BAR_MENU_FORMAT:"Formato",MENU_BAR_MENU_TOOLS:"Herramientas",MENU_BAR_MENU_HELP:"Ayuda",MENU_BAR_MENU_TEXT:"Texto",MENU_BAR_MENU_FONT:"Fuente","Editor menu bar":"Barra de menú del editor",'Please enter a valid color (e.g. "ff0000").':'Introduzca un color válido (p. ej., "ff0000").',"Insert table":"Insertar tabla","Header column":"Columna de encabezado","Insert column left":"Insertar columna izquierda","Insert column right":"Insertar columna derecha","Delete column":"Eliminar columna","Select column":"Seleccionar columna",Column:"Columna","Header row":"Fila de encabezado","Insert row below":"Insertar fila debajo","Insert row above":"Insertar fila encima","Delete row":"Eliminar fila","Select row":"Seleccionar fila",Row:"Fila","Merge cell up":"Combinar celda superior","Merge cell right":"Combinar celda derecha","Merge cell down":"Combinar celda inferior","Merge cell left":"Combinar celda izquierda","Split cell vertically":"Dividir celdas verticalmente","Split cell horizontally":"Dividir celdas horizontalmente","Merge cells":"Combinar celdas","Table toolbar":"Barra de herramientas de tabla","Table properties":"Propiedades de tabla","Cell properties":"Propiedades de celda",Border:"Borde",Style:"Estilo",Width:"Ancho",Height:"Altura",Color:"Color",Background:"Fondo",Padding:"Márgenes",Dimensions:"Dimensiones","Table cell text alignment":"Alineación texto de celda",Alignment:"Alineación","Horizontal text alignment toolbar":"Alineación horizontal de texto","Vertical text alignment toolbar":"Alineación vertical de texto","Table alignment toolbar":"Alineación de tabla",None:"Ninguno",Solid:"Sólido",Dotted:"Línea de puntos",Dashed:"Línea discontinua",Double:"Doble línea",Groove:"Bisel",Ridge:"Marco",Inset:"Incrustación",Outset:"Relieve","Align cell text to the left":"Alinear texto de celda a la izquierda","Align cell text to the center":"Centrar texto de celda","Align cell text to the right":"Alinear texto de celda a la derecha","Justify cell text":"Justificar texto de celda","Align cell text to the top":"Alinear texto de celda hacia arriba","Align cell text to the middle":"Alinear texto de celda al medio","Align cell text to the bottom":"Alinear texto de celda hacia abajo","Align table to the left":"Alinear tabla a la izquierda","Center table":"Centrar tabla","Align table to the right":"Alinear tabla a la derecha",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'El color es inválido. Intente con "#FF0000", "rgb(255,0,0)" o "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'El valor es inválido. Intente con "10px", "2em" o simplemente "2".',"Enter table caption":"Ingresar título de tabla","Keystrokes that can be used in a table cell":"Teclas que se pueden utilizar en una celda de tabla","Move the selection to the next cell":"Mueve la selección a la siguiente celda","Move the selection to the previous cell":"Mueve la selección a la celda anterior","Insert a new table row (when in the last cell of a table)":"Inserta una nueva fila de la tabla (cuando esté en la última celda de una tabla)","Navigate through the table":"Navega por la tabla",Table:"Tabla","Insert table layout":"Insertar diseño de tabla","Table layout":"Diseño de tabla","Layout table":"Tabla de diseño","Content table":"Tabla de contenido","Choose table type":"Elegir tipo de tabla","Table type":"Tipo de tabla","Table type options":"Opciones del tipo de tabla",Styles:"Estilos","Multiple styles":"Múltiples estilos","Block styles":"Estilos de bloque","Text styles":"Estilos de texto","Special characters":"Caracteres especiales",Category:"Categoría",All:"Todos",Arrows:"Flechas",Currency:"Monedas",Latin:"Latín",Mathematical:"Matemáticas",Text:"Texto","leftwards simple arrow":"flecha simple hacia la izquierda","rightwards simple arrow":"flecha simple hacia la derecha","upwards simple arrow":"flecha simple hacia arriba","downwards simple arrow":"flecha simple hacia abajo","leftwards double arrow":"flecha doble hacia la izquierda","rightwards double arrow":"flecha doble hacia la derecha","upwards double arrow":"flecha doble hacia arriba","downwards double arrow":"flecha doble hacia abajo","leftwards dashed arrow":"flecha punteada hacia la izquierda","rightwards dashed arrow":"flecha punteada hacia la derecha","upwards dashed arrow":"flecha punteada hacia arriba","downwards dashed arrow":"flecha punteada hacia abajo","leftwards arrow to bar":"flecha hacia la izquierda hasta una barra","rightwards arrow to bar":"flecha hacia la derecha hasta una barra","upwards arrow to bar":"flecha hacia arriba hasta una barra","downwards arrow to bar":"flecha hacia abajo hasta una barra","up down arrow with base":"flecha hacia arriba y abajo con una base","back with leftwards arrow above":"«back» con una flecha hacia la izquierda arriba","end with leftwards arrow above":"«end» con una flecha hacia la izquierda arriba","on with exclamation mark with left right arrow above":"«on» seguido de un signo de exclamación y con una flecha hacia la izquierda y derecha arriba","soon with rightwards arrow above":"«soon» con una flecha hacia la derecha arriba","top with upwards arrow above":"«top» con una flecha hacia arriba arriba","Dollar sign":"Signo del dólar","Euro sign":"Signo del euro","Yen sign":"Signo del yen","Pound sign":"Signo de la libra","Cent sign":"Signo del centavo","Euro-currency sign":"Signo de la moneda euro","Colon sign":"Signo del colón","Cruzeiro sign":"Signo del cruceiro","French franc sign":"Signo del franco francés","Lira sign":"Signo de la lira","Currency sign":"Signo monetario","Bitcoin sign":"Signo del bitcóin","Mill sign":"Signo de milésima","Naira sign":"Signo de naira","Peseta sign":"Signo de la peseta","Rupee sign":"Signo de la rupia","Won sign":"Signo del won","New sheqel sign":"Signo del nuevo séquel","Dong sign":"Signo de dong","Kip sign":"Signo de kip","Tugrik sign":"Signo de tugrik","Drachma sign":"Signo de dracma","German penny sign":"Signo de centavo alemán","Peso sign":"Signo del peso","Guarani sign":"Signo del guaraní","Austral sign":"Signo de austral","Hryvnia sign":"Signo de grivna","Cedi sign":"Signo de cedi","Livre tournois sign":"Signo de libra tornesa","Spesmilo sign":"Signo de spesmilo","Tenge sign":"Signo de tenge","Indian rupee sign":"Signo de rupia india","Turkish lira sign":"Signo de lira turca","Nordic mark sign":"Signo de marco nórdico","Manat sign":"Signo de manat","Ruble sign":"Signo del rublo","Latin capital letter a with macron":"Letra latina mayúscula «A» con macrón","Latin small letter a with macron":"Letra latina minúscula «a» con macrón","Latin capital letter a with breve":"Letra latina mayúscula «A» con acento breve","Latin small letter a with breve":"Letra latina minúscula «a» con acento breve","Latin capital letter a with ogonek":"Letra latina mayúscula «A» con ogonek","Latin small letter a with ogonek":"Letra latina minúscula «a» con ogonek","Latin capital letter c with acute":"Letra latina mayúscula «C» con acento agudo","Latin small letter c with acute":"Letra latina minúscula «c» con acento agudo","Latin capital letter c with circumflex":"Letra latina mayúscula «C» con acento circunflejo","Latin small letter c with circumflex":"Letra latina minúscula «c» con acento circunflejo","Latin capital letter c with dot above":"Letra latina mayúscula «C» con punto superior","Latin small letter c with dot above":"Letra latina minúscula «c» con punto superior","Latin capital letter c with caron":"Letra latina mayúscula «C» con acento anticircunflejo","Latin small letter c with caron":"Letra latina minúscula «c» con acento anticircunflejo","Latin capital letter d with caron":"Letra latina mayúscula «D» con acento anticircunflejo","Latin small letter d with caron":"Letra latina minúscula «d» con acento anticircunflejo","Latin capital letter d with stroke":"Letra latina mayúscula «D» con barra horizontal","Latin small letter d with stroke":"Letra latina minúscula «d» con barra horizontal","Latin capital letter e with macron":"Letra latina mayúscula «E» con macrón","Latin small letter e with macron":"Letra latina minúscula «e» con macrón","Latin capital letter e with breve":"Letra latina mayúscula «e» con acento breve","Latin small letter e with breve":"Letra latina minúscula «e» con acento breve","Latin capital letter e with dot above":"Letra latina mayúscula «E» con punto superior","Latin small letter e with dot above":"Letra latina minúscula «e» con punto superior","Latin capital letter e with ogonek":"Letra latina mayúscula «E» con ogonek","Latin small letter e with ogonek":"Letra latina minúscula «e» con ogonek","Latin capital letter e with caron":"Letra latina mayúscula «E» con acento anticircunflejo","Latin small letter e with caron":"Letra latina minúscula «e» con acento anticircunflejo","Latin capital letter g with circumflex":"Letra latina mayúscula «G» con acento circunflejo","Latin small letter g with circumflex":"Letra latina minúscula «g» con acento circunflejo","Latin capital letter g with breve":"Letra latina mayúscula «G» con acento breve","Latin small letter g with breve":"Letra latina minúscula «g» con acento breve","Latin capital letter g with dot above":"Letra latina mayúscula «G» con punto superior","Latin small letter g with dot above":"Letra latina minúscula «g» con punto superior","Latin capital letter g with cedilla":"Letra latina mayúscula «G» con cedilla","Latin small letter g with cedilla":"Letra latina minúscula «g» con cedilla","Latin capital letter h with circumflex":"Letra latina mayúscula «H» con acento circunflejo","Latin small letter h with circumflex":"Letra latina minúscula «h» con acento circunflejo","Latin capital letter h with stroke":"Letra latina mayúscula «H» con barra horizontal","Latin small letter h with stroke":"Letra latina minúscula «h» con barra horizontal","Latin capital letter i with tilde":"Letra latina mayúscula «I» con tilde","Latin small letter i with tilde":"Letra latina minúscula «i» con tilde","Latin capital letter i with macron":"Letra latina mayúscula «I» con macrón","Latin small letter i with macron":"Letra latina minúscula «i» con macrón","Latin capital letter i with breve":"Letra latina mayúscula «I» con acento breve","Latin small letter i with breve":"Letra latina minúscula «i» con acento breve","Latin capital letter i with ogonek":"Letra latina mayúscula «I» con ogonek","Latin small letter i with ogonek":"Letra latina minúscula «i» con ogonek","Latin capital letter i with dot above":"Letra latina mayúscula «I» con punto superior","Latin small letter dotless i":"Letra latina minúscula «i» sin punto","Latin capital ligature ij":"Ligadura latina mayúscula «IJ»","Latin small ligature ij":"Ligadura latina minúscula «ij»","Latin capital letter j with circumflex":"Letra latina mayúscula «J» con acento circunflejo","Latin small letter j with circumflex":"Letra latina minúscula «j» con acento circunflejo","Latin capital letter k with cedilla":"Letra latina mayúscula «K» con cedilla","Latin small letter k with cedilla":"Letra latina minúscula «k» con cedilla","Latin small letter kra":"Letra latina minúscula «kra»","Latin capital letter l with acute":"Letra latina mayúscula «L» con acento agudo","Latin small letter l with acute":"Letra latina minúscula «l» con acento agudo","Latin capital letter l with cedilla":"Letra latina mayúscula «I» con cedilla","Latin small letter l with cedilla":"Letra latina minúscula «l» con cedilla","Latin capital letter l with caron":"Letra latina mayúscula «I» con acento anticircunflejo","Latin small letter l with caron":"Letra latina minúscula «i» con acento anticircunflejo","Latin capital letter l with middle dot":"Letra latina mayúscula «L» con punto medio","Latin small letter l with middle dot":"Letra latina minúscula «l» con punto medio","Latin capital letter l with stroke":"Letra latina mayúscula «L» con barra diagonal","Latin small letter l with stroke":"Letra latina minúscula «l» con barra diagonal","Latin capital letter n with acute":"Letra latina mayúscula «N» con acento agudo","Latin small letter n with acute":"Letra latina minúscula «n» con acento agudo","Latin capital letter n with cedilla":"Letra latina mayúscula «N» con cedilla","Latin small letter n with cedilla":"Letra latina minúscula «n» con cedilla","Latin capital letter n with caron":"Letra latina mayúscula «n» con acento anticircunflejo","Latin small letter n with caron":"Letra latina minúscula «n» con acento anticircunflejo","Latin small letter n preceded by apostrophe":"Letra latina minúscula «n» precedida de apóstrofo","Latin capital letter eng":"Letra latina mayúscula «Eng»","Latin small letter eng":"Letra latina minúscula «eng»","Latin capital letter o with macron":"Letra latina mayúscula «O» con macrón","Latin small letter o with macron":"Letra latina minúscula «o» con macrón","Latin capital letter o with breve":"Letra latina mayúscula «O» con acento breve","Latin small letter o with breve":"Letra latina minúscula «o» con acento breve","Latin capital letter o with double acute":"Letra latina mayúscula «O» con doble acento agudo","Latin small letter o with double acute":"Letra latina minúscula «o» con doble acento agudo","Latin capital ligature oe":"Ligadura latina mayúscula «OE»","Latin small ligature oe":"Ligadura latina minúscula «oe»","Latin capital letter r with acute":"Letra latina mayúscula «R» con acento agudo","Latin small letter r with acute":"Letra latina minúscula «r» con acento agudo","Latin capital letter r with cedilla":"Letra latina mayúscula «R» con cedilla","Latin small letter r with cedilla":"Letra latina minúscula «r» con cedilla","Latin capital letter r with caron":"Letra latina mayúscula «R» con acento anticircunflejo","Latin small letter r with caron":"Letra latina minúscula «r» con acento anticircunflejo","Latin capital letter s with acute":"Letra latina mayúscula «S» con acento agudo","Latin small letter s with acute":"Letra latina minúscula «s» con acento agudo","Latin capital letter s with circumflex":"Letra latina mayúscula «S» con acento circunflejo","Latin small letter s with circumflex":"Letra latina minúscula «s» con acento circunflejo","Latin capital letter s with cedilla":"Letra latina mayúscula «S» con cedilla","Latin small letter s with cedilla":"Letra latina minúscula «s» con cedilla","Latin capital letter s with caron":"Letra latina mayúscula «S» con acento anticircunflejo","Latin small letter s with caron":"Letra latina minúscula «s» con acento anticircunflejo","Latin capital letter t with cedilla":"Letra latina mayúscula «T» con cedilla","Latin small letter t with cedilla":"Letra latina minúscula «t» con cedilla","Latin capital letter t with caron":"Letra latina mayúscula «T» con acento anticircunflejo","Latin small letter t with caron":"Letra latina minúscula «t» con acento anticircunflejo","Latin capital letter t with stroke":"Letra latina mayúscula «T» con barra horizontal","Latin small letter t with stroke":"Letra latina minúscula «t» con barra horizontal","Latin capital letter u with tilde":"Letra latina mayúscula «U» con tilde","Latin small letter u with tilde":"Letra latina minúscula «u» con tilde","Latin capital letter u with macron":"Letra latina mayúscula «U» con macrón","Latin small letter u with macron":"Letra latina minúscula «u» con macrón","Latin capital letter u with breve":"Letra latina mayúscula «U» con acento breve","Latin small letter u with breve":"Letra latina minúscula «u» con acento breve","Latin capital letter u with ring above":"Letra latina mayúscula «U» con anillo superior","Latin small letter u with ring above":"Letra latina minúscula «u» con anillo superior","Latin capital letter u with double acute":"Letra latina mayúscula «U» con doble acento agudo","Latin small letter u with double acute":"Letra latina minúscula «u» con doble acento agudo","Latin capital letter u with ogonek":"Letra latina mayúscula «U» con ogonek","Latin small letter u with ogonek":"Letra latina minúscula «u» con ogonek","Latin capital letter w with circumflex":"Letra latina mayúscula «W» con acento circunflejo","Latin small letter w with circumflex":"Letra latina minúscula «w» con acento circunflejo","Latin capital letter y with circumflex":"Letra latina mayúscula «Y» con acento circunflejo","Latin small letter y with circumflex":"Letra latina minúscula «y» con acento circunflejo","Latin capital letter y with diaeresis":"Letra latina mayúscula «Y» con diéresis","Latin capital letter z with acute":"Letra latina mayúscula «Z» con acento agudo","Latin small letter z with acute":"Letra latina minúscula «z» con acento agudo","Latin capital letter z with dot above":"Letra latina mayúscula «Z» con punto superior","Latin small letter z with dot above":"Letra latina minúscula «z» con punto superior","Latin capital letter z with caron":"Letra latina mayúscula «Z» con acento anticircunflejo","Latin small letter z with caron":"Letra latina minúscula «z» con acento anticircunflejo","Latin small letter long s":"Letra latina minúscula «s» larga","Less-than sign":"Signo de menor que","Greater-than sign":"Signo de mayor que","Less-than or equal to":"Menor que o igual a","Greater-than or equal to":"Mayor que o igual a","En dash":"Semirraya","Em dash":"Raya",Macron:"Macrón",Overline:"Línea alta","Degree sign":"Signo de grado","Minus sign":"Signo de resta","Plus-minus sign":"Signo más-menos","Division sign":"Signo de división","Fraction slash":"Barra fraccionaria","Multiplication sign":"Signo de multiplicación","Latin small letter f with hook":"Letra latina minúscula «f» con gancho",Integral:"Integral","N-ary summation":"Sumatoria",Infinity:"Infinito","Square root":"Raíz cuadrada","Tilde operator":"Operador de tilde","Approximately equal to":"Aproximadamente igual a","Almost equal to":"Casi igual a","Not equal to":"No igual a","Identical to":"Idéntico a","Element of":"Elemento de","Not an element of":"No es un elemento de","Contains as member":"Contiene como miembro","N-ary product":"Productorio","Logical and":"Y lógico","Logical or":"O lógico","Not sign":"Signo de negación",Intersection:"Intersección",Union:"Unión","Partial differential":"Diferencial parcial","For all":"Para todo","There exists":"Existe","Empty set":"Conjunto vacío",Nabla:"Nabla","Asterisk operator":"Operador asterisco","Proportional to":"Proporcional a",Angle:"Ángulo","Vulgar fraction one quarter":"Fracción ordinaria de un cuarto","Vulgar fraction one half":"Fracción ordinaria de un medio","Vulgar fraction three quarters":"Fracción ordinaria de tres cuartos","Single left-pointing angle quotation mark":"Comilla tipográfica simple angular de apertura","Single right-pointing angle quotation mark":"Comilla tipográfica simple angular de cierre","Left-pointing double angle quotation mark":"Comilla tipográfica doble angular de apertura","Right-pointing double angle quotation mark":"Comilla tipográfica dobe angular de cierre","Left single quotation mark":"Comilla tipográfica de apertura","Right single quotation mark":"Comilla tipográfica de cierre","Left double quotation mark":"Comilla tipográfica doble de apertura","Right double quotation mark":"Comilla tipográfica de cierre","Single low-9 quotation mark":"Comilla tipográfica en forma de 9 simple y baja","Double low-9 quotation mark":"Comilla tipográfica en forma de 9 doble y baja","Inverted exclamation mark":"Signo de exclamación de apertura","Inverted question mark":"Signo de interrogación de apertura","Two dot leader":"Punto de inicio doble","Horizontal ellipsis":"Puntos suspensivos horizontales","Double dagger":"Cruz doble","Per mille sign":"Signo de por mil","Per ten thousand sign":"Signo de por diez mil","Double exclamation mark":"Signo de exclamación doble","Question exclamation mark":"Signo de exclamación interrogativa","Exclamation question mark":"Signo de interrogación exclamativa","Double question mark":"Signo de interrogación doble","Copyright sign":"Signo de derechos de autor","Registered sign":"Signo de marca registrada","Trade mark sign":"Signo de marca comercial","Section sign":"Signo de sección","Paragraph sign":"Signo de párrafo","Reversed paragraph sign":"Signo de antígrafo invertido","Show source":"Mostrar fuente","Show blocks":"Mostrar bloques","Select all":"Seleccionar todo","Disable editing":"Inhabilitar edición","Enable editing":"Habilitar edición","Previous editable region":"Anterior zona editable","Next editable region":"Siguiente zona editable","Navigate editable regions":"Navegar por las zonas editables","Remove Format":"Quitar Formato","Page break":"Salto de página","media widget":"Widget de contenido multimedia","Media URL":"URL del contenido multimedia","Paste the media URL in the input.":"Pega la URL del contenido multimedia","Tip: Paste the URL into the content to embed faster.":"Tip: pega la URL dentro del contenido para embeber más rápido","The URL must not be empty.":"La URL no debe estar vacía","This media URL is not supported.":"La URL de este contenido multimedia no está soportada","Insert media":"Insertar contenido multimedia",Media:"Multimedia","Media toolbar":"Barra de herramientas de contenido multimedia","Open media in new tab":"Abrir medio en una pestaña nueva","Media embed":"Inserción de medios","Numbered List":"Lista numerada","Bulleted List":"Lista con viñetas","To-do List":"Lista de tareas","Bulleted list styles toolbar":"Estilos de lista con viñetas","Numbered list styles toolbar":"Estilos de lista numerada","Toggle the disc list style":"Cambiar estilo de viñeta a disco","Toggle the circle list style":"Cambiar estilo de viñeta a círculo","Toggle the square list style":"Cambiar estilo de viñeta a cuadrado","Toggle the decimal list style":"Cambiar estilo de lista a decimal","Toggle the decimal with leading zero list style":"Cambiar estilo de lista decimal empezando con cero","Toggle the lower–roman list style":"Cambiar estilo de lista a números romanos en minúsculas","Toggle the upper–roman list style":"Cambiar estilo de lista a números roanos en mayúsculas","Toggle the lower–latin list style":"Cambiar estilo de lista a números latinos en minúsculas","Toggle the upper–latin list style":"Cambiar estilo de lista a números latinos en mayúsculas",Disc:"Disco",Circle:"Círculo",Square:"Cuadrado",Decimal:"Decimal","Decimal with leading zero":"Decimal con cero","Lower–roman":"Romanos minúsculas","Upper-roman":"Romanos mayúscula","Lower-latin":"Latinos minúsculas","Upper-latin":"Latinos minúsculas","List properties":"Propiedades de la lista","Start at":"Empezar en","Invalid start index value.":"Valor de índice de inicio no válido.","Start index must be greater than 0.":"El número de inicio debe ser mayor que 0.","Reversed order":"Orden inverso","Keystrokes that can be used in a list":"Teclas que se pueden utilizar en una lista","Increase list item indent":"Aumenta la sangría de los elementos de la lista","Decrease list item indent":"Reduce la sangría de los elementos de la lista","Entering a to-do list":"Ingresando lista de tareas pendientes","Leaving a to-do list":"Abandonando lista de tareas pendientes",Unlink:"Quitar enlace",Link:"Enlace","Link URL":"URL del enlace","Link URL must not be empty.":"La URL del enlace no puede estar vacía.","Link image":"URL de la imagen","Edit link":"Editar enlace","Open link in new tab":"Abrir enlace en una pestaña nueva","Open in a new tab":"Abrir en una pestaña nueva ",Downloadable:"Descargable","Create link":"Crea un enlace","Move out of a link":"Sale de un enlace","Link properties":"Propiedades del enlace","Displayed text":"Texto mostrado","No links available":"No hay enlaces disponibles",Language:"Idioma","Choose language":"Elija el idioma","Remove language":"Quitar idioma","Increase indent":"Aumentar sangría","Decrease indent":"Disminuir sangría","image widget":"Widget de imagen","Wrap text":"Mantener texto unido","Break text":"Permitir quebrar texto","In line":"En línea","Side image":"Imagen lateral","Full size image":"Imagen a tamaño completo","Left aligned image":"Imagen alineada a la izquierda","Centered image":"Imagen centrada","Right aligned image":"Imagen alineada a la derecha","Change image text alternative":"Cambiar el texto alternativo de la imagen","Text alternative":"Texto alternativo","Enter image caption":"Introducir título de la imagen","Insert image":"Insertar imagen","Replace image":"Reemplazar imagen","Upload from computer":"Subir desde el ordenador","Replace from computer":"Reemplazar desde el ordenador","Upload image from computer":"Subir imagen desde el ordenador","Image from computer":"Imagen del ordenador","From computer":"Desde el ordenador","Replace image from computer":"Reemplazar imagen del ordenador","Upload failed":"Fallo en la subida","You have no image upload permissions.":"No tienes permiso para subir imágenes.","Image toolbar":"Barra de herramientas de imagen","Resize image":"Redimensionar imagen","Resize image to %0":"Redimensionar imagen al %0","Resize image to the original size":"Redimensionar imagen al tamaño original","Resize image (in %0)":"Cambiar tamaño de la imagen (en un %0)",Original:"Original","Custom image size":"Personalizar tamaño de imagen",Custom:"Personalizar","Image resize list":"Listado para redimensionar imagen","Insert image via URL":"Insertar imagen vía URL","Insert via URL":"Insertar mediante URL","Image via URL":"Imagen mediante URL","Via URL":"Mediante URL","Update image URL":"Actualizar imagen vía URL","Caption for the image":"Descripción de la imagen","Caption for image: %0":"Título de la imagen: %0","The value must not be empty.":"El valor no puede estar vacío.","The value should be a plain number.":"El valor debe ser un número simple.","Uploading image":"Cargando imagen","Image upload complete":"Carga de imagen completa","Error during image upload":"Error durante la carga de la imagen",Image:"Imagen","Image Resize":"Cambiar tamaño de la imagen","Text Alternative":"Texto alternativo","HTML object":"Objeto HTML","Insert HTML":"Insertar HTML","HTML snippet":"Fragmento HTML","Paste raw HTML here...":"Pegue el código HTML aquí…","Edit source":"Editar fuente","Save changes":"Guardar cambios","No preview available":"No hay ninguna previsualización","Empty snippet content":"Fragmento vacío","Horizontal line":"Línea horizontal","Yellow marker":"Marcador amarillo","Green marker":"Marcador verde","Pink marker":"Marcador rosa","Blue marker":"Marcador azul","Red pen":"Texto rojo","Green pen":"Texto verde","Remove highlight":"Quitar resaltado",Highlight:"Resaltar","Text highlight toolbar":"Barra de herramientas de resaltado de texto",Heading:"Encabezado","Choose heading":"Elegir Encabezado","Heading 1":"Encabezado 1","Heading 2":"Encabezado 2","Heading 3":"Encabezado 3","Heading 4":"Encabezado 4","Heading 5":"Encabezado 5","Heading 6":"Encabezado 6","Type your title":"Introduce tu título","Type or paste your content here.":"Introduce o pega tu contenido aquí","Enter fullscreen mode":"Entrar al modo de pantalla completa","Leave fullscreen mode":"Salir del modo de pantalla completa","Fullscreen mode":"Modo de pantalla completa","Toggle fullscreen mode":"Alternar modo de pantalla completa","Document outline":"Boceto del documento","Connected users":"Usuarios conectados","Font Size":"Tamaño de fuente",Tiny:"Minúsculo",Small:"Pequeño",Big:"Grande",Huge:"Enorme","Font Family":"Fuente",Default:"Por defecto","Font Color":"Color de Fuente","Font Background Color":"Color de Fondo","Document colors":"Colores del documento","Find and replace":"Buscar y reemplazar","Find in text…":"Buscar en el texto...",Find:"Buscar","Previous result":"Resultado anterior","Next result":"Siguiente resultado",Replace:"Reemplazar","Replace all":"Reemplazar todo","Match case":"Respetar mayúsculas y minúsculas","Whole words only":"Solo palabras completas","Replace with…":"Reemplazar con...","Text to find must not be empty.":"El texto a buscar no debe estar vacío.","Tip: Find some text first in order to replace it.":"Consejo: Primero busque algún texto para reemplazar.","Advanced options":"Opciones avanzadas","Find in the document":"Busca en el documento","Insert a soft break (a <code><br></code> element)":"Inserta un salto de línea (un elemento <code><br></code>)","Insert a hard break (a new paragraph)":"Inserta un salto de párrafo (un nuevo párrafo)",Emoji:"Emoji","Show all emoji...":"Mostrar todos los emojis...","Find an emoji (min. 2 characters)":"Busca un emoji (2 caracteres como mínimo)",'No emojis were found matching "%0".':"No se han encontrado emojis que coincidan con «%0».","Keep on typing to see the emoji.":"Sigue escribiendo para ver el emoji.","The query must contain at least two characters.":"La solicitud debe contener al menos dos caracteres.","Smileys & Expressions":"Emoticonos y expresiones","Gestures & People":"Gestos y personas","Animals & Nature":"Animales y naturaleza","Food & Drinks":"Comidas y bebidas","Travel & Places":"Viajes y lugares",Activities:"Actividades",Objects:"Objetos",Symbols:"Símbolos",Flags:"Banderas","Select skin tone":"Seleccionar tono de piel","Default skin tone":"Tono de piel predeterminado","Light skin tone":"Tono de piel claro","Medium Light skin tone":"Tono de piel medio claro","Medium skin tone":"Tono de piel medio","Medium Dark skin tone":"Tono de piel medio oscuro","Dark skin tone":"Tono de piel oscuro","Emoji picker":"Selector de emojis",Cancel:"Cancelar",Clear:"Borrar","Remove color":"Quitar color","Restore default":"Restaurar valores predeterminados",Save:"Guardar","Show more items":"Mostrar más elementos","%0 of %1":"%0 de %1","Cannot upload file:":"No se pudo cargar el archivo:","Rich Text Editor. Editing area: %0":"Editor de texto enriquecido. Área de edición: %0","Insert with file manager":"Insertar con administrador de archivos","Replace with file manager":"Reemplazar con administrador de archivos","Insert image with file manager":"Insertar imagen con administrador de archivos","Replace image with file manager":"Reemplazar imagen con administrador de archivos",File:"Archivo","With file manager":"Con el administrador de archivos","Toggle caption off":"Desactivar título","Toggle caption on":"Activar título","Content editing keystrokes":"Teclas de edición de contenido","These keyboard shortcuts allow for quick access to content editing features.":"Estos atajos de teclado permiten acceder rápidamente a las funciones de edición de contenido.","User interface and content navigation keystrokes":"Teclas de navegación de contenido e interfaz de usuario","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Utilice las siguientes combinaciones de teclas para una navegación más eficiente en la interfaz de usuario de CKEditor 5.","Close contextual balloons, dropdowns, and dialogs":"Cierra globos contextuales, menús desplegables y cuadros de diálogo","Open the accessibility help dialog":"Abre el cuadro de diálogo de ayuda de accesibilidad","Move focus between form fields (inputs, buttons, etc.)":"Mueve el foco entre campos de formulario (entradas, botones, etc.)","Move focus to the menu bar, navigate between menu bars":"Mover el foco a la barra de menú, navegar entre las barras de menú","Move focus to the toolbar, navigate between toolbars":"Mueve el foco a la barra de herramientas y navega entre barras de herramientas","Navigate through the toolbar or menu bar":"Navegar por la barra de herramientas o la barra de menú","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Ejecutar el botón actualmente enfocado. Al ejecutar botones que interactúan con el contenido del editor, el foco vuelve al contenido.",Accept:"Aceptar",Paragraph:"Párrafo","Color picker":"Selector de color","Please try a different phrase or check the spelling.":"Intente con una frase diferente o revise la ortografía.",Source:"Fuente",Insert:"Insertar",Update:"Actualizar",Back:"Volver","Insert code block":"Insertar bloque de código","Plain text":"Texto plano","Leaving %0 code snippet":"Abandonando fragmento de código %0","Entering %0 code snippet":"Ingresando fragmento de código %0","Entering code snippet":"Ingresando fragmento de código","Leaving code snippet":"Abandonando fragmento de código","Code block":"Bloque de código","Copy selected content":"Copia el contenido seleccionado","Paste content":"Pega el contenido","Paste content as plain text":"Pega el contenido como texto sin formato","Insert image or file":"Insertar imagen o archivo","Could not obtain resized image URL.":"No se pudo obtener el URL de la imagen redimensionada.","Selecting resized image failed":"No se pudo seleccionar la imagen redimensionada","Could not insert image at the current position.":"No se pudo insertar la imagen en la posición actual.","Inserting image failed":"Error al insertar la imagen",Bookmark:"Marcador","Edit bookmark":"Editar marcador","Remove bookmark":"Eliminar marcador","Bookmark name":"Nombre del marcador","Enter the bookmark name without spaces.":"Introduzca el nombre del marcador sin espacios.","Bookmark must not be empty.":"El marcador no debe estar vacío.","Bookmark name cannot contain space characters.":"El nombre del marcador no puede contener espacios.","Bookmark name already exists.":"Ya existe el nombre del marcador.","bookmark widget":"Módulo interactivo del marcador","Bookmark toolbar":"Barra de marcadores",Bookmarks:"Marcadores","No bookmarks available.":"No hay marcadores disponibles.","Scroll to bookmark":"Desplazarse hasta el marcador","Open file manager":"Abrir gestor de archivos","Cannot determine a category for the uploaded file.":"No se puede determinar una categoría para el archivo subido.","Cannot access default workspace.":"No se puede acceder al espacio de trabajo predeterminado.","You have no image editing permissions.":"No tienes permiso para editar imágenes.","Edit image":"Editar imagen","Processing the edited image.":"Procesando la imagen editada.","Server failed to process the image.":"El servidor no pudo procesar la imagen.","Failed to determine category of edited image.":"No se pudo determinar la categoría de la imagen editada.","Block quote":"Bloque de cita",Bold:"Negrita",Italic:"Cursiva",Underline:"Subrayado",Code:"Código",Strikethrough:"Tachado",Subscript:"Subíndice",Superscript:"Superíndice","Italic text":"Texto en cursiva","Move out of an inline code style":"Sale de un estilo de código en línea","Bold text":"Texto en negrita","Underline text":"Subraya el texto","Strikethrough text":"Tacha el texto","Saving changes":"Guardando cambios","Revert autoformatting action":"Revierte la acción de formato automático","Align left":"Alinear a la izquierda","Align right":"Alinear a la derecha","Align center":"Centrar",Justify:"Justificar","Text alignment":"Alineación del texto","Text alignment toolbar":"Barra de herramientas de alineación del texto"},getPluralForm(n){return n!=1}}};const sB={fr:{dictionary:{"Words: %0":"Mots : %0","Characters: %0":"Caractères : %0","Widget toolbar":"Barre d'outils du widget","Insert paragraph before block":"Insérer du texte avant ce bloc","Insert paragraph after block":"Insérer du texte après ce bloc","Press Enter to type after or press Shift + Enter to type before the widget":"Appuyez sur la touche Entrée pour taper après ou sur Maj + Entrée pour taper avant le widget.","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Frappes de touches pouvant être utilisées lorsqu'un widget est sélectionné (par exemple : image, tableau, etc.)","Insert a new paragraph directly after a widget":"Insérer un nouveau paragraphe directement après un widget","Insert a new paragraph directly before a widget":"Insérer un nouveau paragraphe directement avant un widget","Move the caret to allow typing directly before a widget":"Déplacez le curseur pour permettre la saisie directement avant un widget","Move the caret to allow typing directly after a widget":"Déplacez le curseur pour permettre de taper directement après un widget","Move focus from an editable area back to the parent widget":"Déplacer le focus d'une zone modifiable vers le widget parent","Upload in progress":"Téléchargement en cours",Undo:"Annuler",Redo:"Restaurer","Rich Text Editor":"Éditeur de texte enrichi","Edit block":"Modifier le bloc","Click to edit block":"Cliquer pour modifier le bloc","Drag to move":"Faire glisser pour déplacer",Next:"Suivant",Previous:"Précedent","Editor toolbar":"Barre d'outils de l'éditeur","Dropdown toolbar":"Barre d'outils dans un menu déroulant","Dropdown menu":"Menu déroulant",Black:"Noir","Dim grey":"Gris pâle",Grey:"Gris","Light grey":"Gris clair",White:"Blanc",Red:"Rouge",Orange:"Orange",Yellow:"Jaune","Light green":"Vert clair",Green:"Vert",Aquamarine:"Bleu vert",Turquoise:"Turquoise","Light blue":"Bleu clair",Blue:"Bleu",Purple:"Violet","Editor block content toolbar":"Barre d'outils du contenu du bloc éditeur","Editor contextual toolbar":"Barre d'outils contextuelle de l'éditeur",HEX:"HEX","No results found":"Aucun résultat trouvé","No searchable items":"Aucun élément consultable","Editor dialog":"Boîte de dialogue de l'éditeur",Close:"Fermer","Help Contents. To close this dialog press ESC.":"Contenu de l'aide. Pour fermer cette boîte de dialogue, appuyez sur ESC.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Ci-dessous, vous trouverez une liste de raccourcis clavier pouvant être utilisés dans l’éditeur.","(may require <kbd>Fn</kbd>)":"(peut nécessiter <kbd> Fn </kbd> )",Accessibility:"Accessibilité","Accessibility help":"Aide à l'accessibilité","Press %0 for help.":"Appuyez sur %0 pour obtenir de l'aide.","Move focus in and out of an active dialog window":"Déplacer le focus vers et hors d'une fenêtre de dialogue active",MENU_BAR_MENU_FILE:"Fichier",MENU_BAR_MENU_EDIT:"Éditer",MENU_BAR_MENU_VIEW:"Afficher",MENU_BAR_MENU_INSERT:"Insérer",MENU_BAR_MENU_FORMAT:"Format",MENU_BAR_MENU_TOOLS:"Outils",MENU_BAR_MENU_HELP:"Aide",MENU_BAR_MENU_TEXT:"Texte",MENU_BAR_MENU_FONT:"Police de caractère","Editor menu bar":"Barre de menu de l'éditeur",'Please enter a valid color (e.g. "ff0000").':"Veuillez saisir une couleur valide (par exemple « ff0000 »).","Insert table":"Insérer un tableau","Header column":"Colonne d'entête","Insert column left":"Insérer une colonne à gauche","Insert column right":"Insérer une colonne à droite","Delete column":"Supprimer la colonne","Select column":"Sélectionner la colonne",Column:"Colonne","Header row":"Ligne d'entête","Insert row below":"Insérer une ligne en-dessous","Insert row above":"Insérer une ligne au-dessus","Delete row":"Supprimer la ligne","Select row":"Sélectionner la ligne",Row:"Ligne","Merge cell up":"Fusionner la cellule au-dessus","Merge cell right":"Fusionner la cellule à droite","Merge cell down":"Fusionner la cellule en-dessous","Merge cell left":"Fusionner la cellule à gauche","Split cell vertically":"Scinder la cellule verticalement","Split cell horizontally":"Scinder la cellule horizontalement","Merge cells":"Fusionner les cellules","Table toolbar":"Barre d'outils des tableaux","Table properties":"Propriétés du tableau","Cell properties":"Propriétés de la cellule",Border:"Bordure",Style:"Style",Width:"Largeur",Height:"Hauteur",Color:"Couleur",Background:"Fond",Padding:"Remplissage pour aérer le texte",Dimensions:"Dimensions","Table cell text alignment":"Alignement du texte de la cellule",Alignment:"Alignement","Horizontal text alignment toolbar":"Barre d'outils pour modifier l'alignement horizontal du texte","Vertical text alignment toolbar":"Barre d'outils pour modifier l'alignement vertical du texte","Table alignment toolbar":"Barre d'outils pour modifier l'alignement du tableau",None:"Aucun",Solid:"Continu",Dotted:"Pointillés",Dashed:"Tirets",Double:"Double",Groove:"Rainuré",Ridge:"Relief",Inset:"Relief intérieur",Outset:"Relief extérieur","Align cell text to the left":"Aligner la cellule à gauche","Align cell text to the center":"Aligner la cellule au centre","Align cell text to the right":"Aligner la cellule à droite","Justify cell text":"Justifier le contenu de la cellule","Align cell text to the top":"Aligner le texte en haut","Align cell text to the middle":"Aligner le texte au milieu","Align cell text to the bottom":"Aligner le texte en bas","Align table to the left":"Aligner le tableau à gauche","Center table":"Centrer le tableau ","Align table to the right":"Aligner le tableau à droite",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'La couleur est invalide. Essayez "#FF0000" ou "rgb(255,0,0)" ou "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'La valeur est invalide. Essayez "10px" ou "2em" ou simplement "2".',"Enter table caption":"Saisir la légende du tableau","Keystrokes that can be used in a table cell":"Frappes de touches pouvant être utilisées dans une cellule de tableau","Move the selection to the next cell":"Déplacer la sélection vers la cellule suivante","Move the selection to the previous cell":"Déplacer la sélection vers la cellule précédente","Insert a new table row (when in the last cell of a table)":"Insérer une nouvelle ligne de tableau (dans la dernière cellule d'un tableau)","Navigate through the table":"Naviguer dans le tableau",Table:"Tableau","Insert table layout":"Insérer une mise en page de tableau","Table layout":"Mise en page de tableau","Layout table":"Tableau de mise en page","Content table":"Tableau de contenu","Choose table type":"Choisir le type de tableau","Table type":"Type de tableau","Table type options":"Options de type de tableau",Styles:"Styles","Multiple styles":"Styles multiples","Block styles":"Styles de bloc","Text styles":"Styles de texte","Special characters":"Caractères spéciaux",Category:"Catégorie",All:"Tous",Arrows:"Flèches",Currency:"Devise",Latin:"Latin",Mathematical:"Mathématique",Text:"Texte","leftwards simple arrow":"flèche simple vers la gauche","rightwards simple arrow":"flèche simple vers la droite","upwards simple arrow":"flèche simple vers le haut","downwards simple arrow":"flèche simple vers le bas","leftwards double arrow":"Double flèche vers la gauche","rightwards double arrow":"Double flèche vers la droite","upwards double arrow":"Double flèche vers le haut","downwards double arrow":"Double flèche vers le bas","leftwards dashed arrow":"Flèche en pointillés vers la gauche","rightwards dashed arrow":"Flèche en pointillés vers la droite","upwards dashed arrow":"Flèche en pointillés vers le haut","downwards dashed arrow":"Flèche en pointillés vers le bas","leftwards arrow to bar":"Flèche vers la gauche avec barre de fin","rightwards arrow to bar":"Flèche vers la droite avec barre de fin","upwards arrow to bar":"Flèche vers le haut avec barre de fin","downwards arrow to bar":"Flèche vers le bas avec barre de fin","up down arrow with base":"Flèche haut et bas avec barre de fin","back with leftwards arrow above":"Précédent avec flèche vers la gauche","end with leftwards arrow above":"Fin avec flèche vers la gauche","on with exclamation mark with left right arrow above":"Allumé avec flèches vers la gauche et la droite","soon with rightwards arrow above":"Bientôt avec flèche vers la droite","top with upwards arrow above":"Haut avec flèche vers le haut","Dollar sign":"Dollar","Euro sign":"Euro","Yen sign":"Yen","Pound sign":"Livre sterling","Cent sign":"Centime","Euro-currency sign":"Symbole monétaire de l'euro","Colon sign":"Deux points","Cruzeiro sign":"Cruzeiro","French franc sign":"Franc français","Lira sign":"Lire","Currency sign":"Symbole monétaire","Bitcoin sign":"Bitcoin","Mill sign":"Moulin","Naira sign":"Naira","Peseta sign":"Peseta","Rupee sign":"Roupie","Won sign":"Won","New sheqel sign":"Shekel","Dong sign":"Dong","Kip sign":"Kip","Tugrik sign":"Tugrik","Drachma sign":"Drachme","German penny sign":"Pfennig","Peso sign":"Peso","Guarani sign":"Guarani","Austral sign":"Austral","Hryvnia sign":"Hryvnia","Cedi sign":"Cédi","Livre tournois sign":"Livre tournois","Spesmilo sign":"Spesmilo","Tenge sign":"Tenge","Indian rupee sign":"Roupie indienne","Turkish lira sign":"Lire turque","Nordic mark sign":"Mark nordique","Manat sign":"Manat","Ruble sign":"Rouble","Latin capital letter a with macron":"A barre majuscule","Latin small letter a with macron":"A barre minuscule","Latin capital letter a with breve":"A bref majuscule","Latin small letter a with breve":"A bref minuscule","Latin capital letter a with ogonek":"A ogonek majuscule","Latin small letter a with ogonek":"A ogonek minuscule","Latin capital letter c with acute":"C accent aigu majuscule","Latin small letter c with acute":"C accent aigu minuscule","Latin capital letter c with circumflex":"C circonflexe majuscule","Latin small letter c with circumflex":"C circonflexe minuscule","Latin capital letter c with dot above":"C point suscrit majuscule","Latin small letter c with dot above":"C point suscrit minuscule","Latin capital letter c with caron":"C caron majuscule","Latin small letter c with caron":"C caron minuscule","Latin capital letter d with caron":"D caron majuscule","Latin small letter d with caron":"C caron minuscule","Latin capital letter d with stroke":"D barré majuscule","Latin small letter d with stroke":"D barré minuscule","Latin capital letter e with macron":"E macron majuscule","Latin small letter e with macron":"E macron minuscule","Latin capital letter e with breve":"E bref majuscule","Latin small letter e with breve":"E bref minuscule","Latin capital letter e with dot above":"E point suscrit majuscule","Latin small letter e with dot above":"E point suscrit minuscule","Latin capital letter e with ogonek":"E ogonek majuscule","Latin small letter e with ogonek":"E ogonek minuscule","Latin capital letter e with caron":"E caron majuscule","Latin small letter e with caron":"E caron minuscule","Latin capital letter g with circumflex":"G accent circonflexe majuscule","Latin small letter g with circumflex":"G accent circonflexe minuscule","Latin capital letter g with breve":"G bref majuscule","Latin small letter g with breve":"G bref minuscule","Latin capital letter g with dot above":"G point suscrit majuscule","Latin small letter g with dot above":"G point suscrit minuscule","Latin capital letter g with cedilla":"G cédille majuscule","Latin small letter g with cedilla":"G cédille minuscule","Latin capital letter h with circumflex":"H accent circonflexe majuscule","Latin small letter h with circumflex":"H accent circonflexe minuscule","Latin capital letter h with stroke":"H barré majuscule","Latin small letter h with stroke":"H barré minuscule","Latin capital letter i with tilde":"I tilde majuscule","Latin small letter i with tilde":"I tilde minuscule","Latin capital letter i with macron":"I macron majuscule","Latin small letter i with macron":"I macron minuscule","Latin capital letter i with breve":"I bref majuscule","Latin small letter i with breve":"I bref minuscule","Latin capital letter i with ogonek":"I ogonek majuscule","Latin small letter i with ogonek":"I ogonek minuscule","Latin capital letter i with dot above":"I point suscrit majuscule","Latin small letter dotless i":"I sans point minuscule","Latin capital ligature ij":"Digramme soudé IJ majuscule","Latin small ligature ij":"Digramme soudé IJ minuscule","Latin capital letter j with circumflex":"J accent circonflexe majuscule","Latin small letter j with circumflex":"J accent circonflexe minuscule","Latin capital letter k with cedilla":"K cédille majuscule","Latin small letter k with cedilla":"K cédille minuscule","Latin small letter kra":"Kra minuscule","Latin capital letter l with acute":"L accent aigu majuscule","Latin small letter l with acute":"L accent aigu minuscule","Latin capital letter l with cedilla":"L cédille majuscule","Latin small letter l with cedilla":"L cédille minuscule","Latin capital letter l with caron":"L caron majuscule","Latin small letter l with caron":"L caron minuscule","Latin capital letter l with middle dot":"L point médian majuscule","Latin small letter l with middle dot":"L point médian minuscule","Latin capital letter l with stroke":"L barré majuscule","Latin small letter l with stroke":"L barré minuscule","Latin capital letter n with acute":"N accent aigu majuscule","Latin small letter n with acute":"N accent aigu minuscule","Latin capital letter n with cedilla":"N cédille majuscule","Latin small letter n with cedilla":"N cédille minuscule","Latin capital letter n with caron":"N caron majuscule","Latin small letter n with caron":"N caron minuscule","Latin small letter n preceded by apostrophe":"Apostrophe N minuscule","Latin capital letter eng":"Eng majuscule","Latin small letter eng":"Eng minuscule","Latin capital letter o with macron":"O macron majuscule","Latin small letter o with macron":"O macron minuscule","Latin capital letter o with breve":"O bref majuscule","Latin small letter o with breve":"O bref minuscule","Latin capital letter o with double acute":"O double accent aigu majuscule","Latin small letter o with double acute":"O double accent aigu minuscule","Latin capital ligature oe":"O-E entrelacé majuscule","Latin small ligature oe":"O-E entrelacé minuscule","Latin capital letter r with acute":"R accent aigu majuscule","Latin small letter r with acute":"R accent aigu minuscule","Latin capital letter r with cedilla":"R cédille majuscule","Latin small letter r with cedilla":"R cédille minuscule","Latin capital letter r with caron":"R caron majuscule","Latin small letter r with caron":"R caron minuscule","Latin capital letter s with acute":"S accent aigu majuscule","Latin small letter s with acute":"S accent aigu minuscule","Latin capital letter s with circumflex":"S circonflexe majuscule","Latin small letter s with circumflex":"S circonflexe minuscule","Latin capital letter s with cedilla":"S cédille majuscule","Latin small letter s with cedilla":"S cédille minuscule","Latin capital letter s with caron":"S caron majuscule","Latin small letter s with caron":"S caron minuscule","Latin capital letter t with cedilla":"T cédille majuscule","Latin small letter t with cedilla":"T cédille minuscule","Latin capital letter t with caron":"T caron majuscule","Latin small letter t with caron":"T caron minuscule","Latin capital letter t with stroke":"T barré majuscule","Latin small letter t with stroke":"T barré minuscule","Latin capital letter u with tilde":"U tilde majuscule","Latin small letter u with tilde":"U tilde minuscule","Latin capital letter u with macron":"U macron majuscule","Latin small letter u with macron":"U macron minuscule","Latin capital letter u with breve":"U bref majuscule","Latin small letter u with breve":"U bref minuscule","Latin capital letter u with ring above":"U rond en chef majuscule","Latin small letter u with ring above":"U rond en chef minuscule","Latin capital letter u with double acute":"U double accent aigu majuscule","Latin small letter u with double acute":"U double accent aigu minuscule","Latin capital letter u with ogonek":"U ogonek majuscule","Latin small letter u with ogonek":"U ogonek minuscule","Latin capital letter w with circumflex":"W circonflexe majuscule","Latin small letter w with circumflex":"W circonflexe minuscule","Latin capital letter y with circumflex":"Y circonflexe majuscule","Latin small letter y with circumflex":"Y circonflexe minuscule","Latin capital letter y with diaeresis":"Y tréma majuscule","Latin capital letter z with acute":"Z accent circonflexe majuscule","Latin small letter z with acute":"Z accent circonflexe minuscule","Latin capital letter z with dot above":"Z point suscrit majuscule","Latin small letter z with dot above":"Z point suscrit minuscule","Latin capital letter z with caron":"Z caron majuscule","Latin small letter z with caron":"Z caron minuscule","Latin small letter long s":"S long minuscule","Less-than sign":"Signe inférieur","Greater-than sign":"Signe supérieur","Less-than or equal to":"Signe inférieur ou égal","Greater-than or equal to":"Signe supérieur ou égal","En dash":"Tiret","Em dash":"Tiret long",Macron:"Macron",Overline:"Macron long","Degree sign":"Degré","Minus sign":"Moins","Plus-minus sign":"Plus ou moins","Division sign":"Division","Fraction slash":"Fraction","Multiplication sign":"Multiplication","Latin small letter f with hook":"Fonction",Integral:"Intégrale","N-ary summation":"Somme",Infinity:"Infini","Square root":"Racine carrée","Tilde operator":"Tilde","Approximately equal to":"Environ égal à","Almost equal to":"Presque égal à","Not equal to":"Différent de","Identical to":"Identique à","Element of":"Appartient à","Not an element of":"N'appartient pas à","Contains as member":"Contient","N-ary product":"Produit","Logical and":"Et logique","Logical or":"Ou logique","Not sign":"Négation logique",Intersection:"Intersection",Union:"Union","Partial differential":"Partiellement différent","For all":"Pour tout","There exists":"Existe","Empty set":"Élément vide",Nabla:"Nabla","Asterisk operator":"Astérisque","Proportional to":"Proportionnel à",Angle:"Angle","Vulgar fraction one quarter":"Un quart","Vulgar fraction one half":"Un demi","Vulgar fraction three quarters":"Trois quarts","Single left-pointing angle quotation mark":"Guillemet simple vers la gauche","Single right-pointing angle quotation mark":"Guillemet simple vers la droite","Left-pointing double angle quotation mark":"Guillemet double vers la gauche","Right-pointing double angle quotation mark":"Guillemet double vers la droite","Left single quotation mark":"Guillemet-apostrophe culbuté","Right single quotation mark":"Guillemet-apostrophe","Left double quotation mark":"Guillemet-apostrophe double culbuté","Right double quotation mark":"Guillemet-apostrophe double","Single low-9 quotation mark":"Guillemet-virgule inférieur","Double low-9 quotation mark":"Guillemet-virgule double inférieur","Inverted exclamation mark":"Point d'exclamation inversé","Inverted question mark":"Point d'interrogation inversé","Two dot leader":"Deux points","Horizontal ellipsis":"Trois points","Double dagger":"Croix de Lorraine","Per mille sign":"Pour mille","Per ten thousand sign":"Pour dix milles","Double exclamation mark":"Double point d'exclamation","Question exclamation mark":"Point d'interrogation et exclamation","Exclamation question mark":"Point exclamation et question","Double question mark":"Double point d'interrogation","Copyright sign":"Copyright","Registered sign":"Registered","Trade mark sign":"Marque déposée","Section sign":"Paragraphe","Paragraph sign":"Fin de paragraphe","Reversed paragraph sign":"Fin de paragraphe inversé","Show source":"Afficher la source","Show blocks":"Afficher les blocs","Select all":"Sélectionner tout","Disable editing":"Désactiver l'édition","Enable editing":"Activer l'édition","Previous editable region":"Région éditable précédente","Next editable region":"Région éditable suivante","Navigate editable regions":"Naviguer vers","Remove Format":"Enlever le format","Page break":"Séparation de page","media widget":"Widget média","Media URL":"URL de média","Paste the media URL in the input.":"Coller l'URL du média","Tip: Paste the URL into the content to embed faster.":"Astuce : Copier l'URL du média dans le contenu pour l'insérer plus rapidement","The URL must not be empty.":"L'URL ne doit pas être vide.","This media URL is not supported.":"Cette URL de média n'est pas supportée.","Insert media":"Insérer un média",Media:"Média","Media toolbar":"Barre d'outils des médias","Open media in new tab":"Ouvrir le média dans un nouvel onglet","Media embed":"Intégration de médias","Numbered List":"Liste numérotée","Bulleted List":"Liste à puces","To-do List":"Liste de tâches","Bulleted list styles toolbar":"Barre d'outils des styles de liste à puce","Numbered list styles toolbar":"Barre d'outils des styles de liste numérotée","Toggle the disc list style":'Activer / désactiver le style de liste "disque"',"Toggle the circle list style":'Activer / désactiver le style de liste "cercle"',"Toggle the square list style":'Activer / désactiver le style de liste "carré"',"Toggle the decimal list style":'Activer / désactiver le style de liste "chiffres"',"Toggle the decimal with leading zero list style":'Activer / désactiver le style de liste "chiffres de mêmes longueurs"',"Toggle the lower–roman list style":'Activer / désactiver le style de liste "chiffres romains en minuscules"',"Toggle the upper–roman list style":'Activer / désactiver le style de liste "chiffres romains en majuscules"',"Toggle the lower–latin list style":'Activer / désactiver le style de liste "lettres minuscules"',"Toggle the upper–latin list style":'Activer / désactiver le style de liste "lettres majuscules"',Disc:"Disque",Circle:"Cercle",Square:"Carré",Decimal:"Chiffres","Decimal with leading zero":"Chiffres avec des zéros supplémentaire","Lower–roman":"Chiffres romains en minuscules","Upper-roman":"Chiffres romains en majuscules","Lower-latin":"Lettres minuscules","Upper-latin":"Lettres majuscules","List properties":"Liste des propriétés","Start at":"Commencer à","Invalid start index value.":"Valeur d'index de départ invalide.","Start index must be greater than 0.":"L'indice de départ doit être supérieur à 0.","Reversed order":"Ordre inversé","Keystrokes that can be used in a list":"Frappes de touches pouvant être utilisées dans une liste","Increase list item indent":"Augmenter le retrait des éléments de liste","Decrease list item indent":"Diminuer le retrait des éléments de liste","Entering a to-do list":"Saisie d'une liste de tâches","Leaving a to-do list":"Laisser une liste de tâches",Unlink:"Supprimer le lien",Link:"Lien","Link URL":"URL du lien","Link URL must not be empty.":"L'URL du lien ne doit pas être vide.","Link image":"Lien d'image","Edit link":"Modifier le lien","Open link in new tab":"Ouvrir le lien dans un nouvel onglet","Open in a new tab":"Ouvrir dans un nouvel onglet",Downloadable:"Fichier téléchargeable","Create link":"Créer un lien","Move out of a link":"Sortir d'un lien","Link properties":"Propriétés du lien","Displayed text":"Texte affiché","No links available":"Aucun lien disponible",Language:"Langue","Choose language":"Choisir la langue","Remove language":"Supprimer la langue","Increase indent":"Augmenter le retrait","Decrease indent":"Diminuer le retrait","image widget":"Objet image","Wrap text":"Retour à la ligne","Break text":"Saut de ligne","In line":"Aligné","Side image":"Image latérale","Full size image":"Image taille réelle","Left aligned image":"Image alignée à gauche","Centered image":"Image centrée","Right aligned image":"Image alignée à droite","Change image text alternative":"Changer le texte alternatif à l’image","Text alternative":"Texte alternatif","Enter image caption":"Saisir la légende de l’image","Insert image":"Insérer une image","Replace image":"Remplacer l'image","Upload from computer":"Télécharger depuis l'ordinateur","Replace from computer":"Remplacer depuis l'ordinateur","Upload image from computer":"Télécharger une image depuis l'ordinateur","Image from computer":"Image provenant d'un ordinateur","From computer":"Depuis l'ordinateur","Replace image from computer":"Remplacer l'image depuis l'ordinateur","Upload failed":"Échec de l'envoi","You have no image upload permissions.":"Vous n'êtes pas autorisé à télécharger des images.","Image toolbar":"Barre d'outils des images","Resize image":"Redimensionner l'image","Resize image to %0":"Redimensionner à %0","Resize image to the original size":"Appliquer les dimensions d'origine","Resize image (in %0)":"Redimensionner l'image (en %0)",Original:"Taille originale","Custom image size":"Taille d'image personnalisée",Custom:"Personnalisé","Image resize list":"Liste des tailles d'images","Insert image via URL":"Insérer une image à partir d'une URL","Insert via URL":"Insérer par URL","Image via URL":"Image par URL","Via URL":"Par URL","Update image URL":"Modifier l'URL de l'image","Caption for the image":"Légende de l'image","Caption for image: %0":"Légende de l'image : %0","The value must not be empty.":"La valeur ne doit pas être vide.","The value should be a plain number.":"La valeur doit être un nombre simple.","Uploading image":"Téléchargement de l'image","Image upload complete":"Téléchargement de l'image terminé","Error during image upload":"Une erreur s'est produite lors du téléchargement de l'image.",Image:"Image","Image Resize":"Redimensionnement de l'image","Text Alternative":"Alternative textuelle","HTML object":"Objet HTML","Insert HTML":"Insérer du code HTML","HTML snippet":"Code HTML","Paste raw HTML here...":"Collez le code HTML brut ici...","Edit source":"Modifier la source","Save changes":"Enregistrer les changements","No preview available":"Aucun aperçu disponible","Empty snippet content":"Aucun contenu pour ce fragment de code","Horizontal line":"Ligne horizontale","Yellow marker":"Marqueur jaune","Green marker":"Marqueur vert","Pink marker":"Marqueur rose","Blue marker":"Marqueur bleu","Red pen":"Crayon rouge","Green pen":"Crayon vert","Remove highlight":"Enlever le surlignage",Highlight:"Surlignage","Text highlight toolbar":"Barre d'outils du surlignage",Heading:"En-tête","Choose heading":"Choisir l'en-tête","Heading 1":"Titre 1","Heading 2":"Titre 2","Heading 3":"Titre 3","Heading 4":"Titre 4","Heading 5":"Titre 5","Heading 6":"Titre 6","Type your title":"Rentrer votre titre","Type or paste your content here.":"Noter ou coller votre contenu ici","Enter fullscreen mode":"Accéder au mode plein écran","Leave fullscreen mode":"Quitter le mode plein écran","Fullscreen mode":"Mode plein écran","Toggle fullscreen mode":"Activer/désactiver le mode plein écran","Document outline":"Plan du document","Connected users":"Utilisateurs connectés","Font Size":"Taille de police",Tiny:"Minuscule",Small:"Petit",Big:"Grand",Huge:"Enorme","Font Family":"Police",Default:"Par défaut","Font Color":"Couleur de police","Font Background Color":"Couleur d'arrière-plan","Document colors":"Couleurs du document","Find and replace":"Rechercher et remplacer","Find in text…":"Rechercher dans le texte...",Find:"Rechercher","Previous result":"Résultat précédent","Next result":"Résultat suivant",Replace:"Remplacer","Replace all":"Remplacer tout","Match case":"Sensible à la casse","Whole words only":"Mots entiers uniquement","Replace with…":"Remplacer par ...","Text to find must not be empty.":"L'expression à rechercher ne doit pas être vide","Tip: Find some text first in order to replace it.":"Astuce : rechercher une expression afin de la remplacer","Advanced options":"Options avancées","Find in the document":"Rechercher dans le document","Insert a soft break (a <code><br></code> element)":"Insérer un saut progressif (un élément <code> <br> </code> )","Insert a hard break (a new paragraph)":"Insérer une pause (un nouveau paragraphe)",Emoji:"Émoji","Show all emoji...":"Afficher tous les émojis...","Find an emoji (min. 2 characters)":"Trouver un émoji (min. deux caractères)",'No emojis were found matching "%0".':"Aucun émoji correspondant à « %0 » n'a été trouvé.","Keep on typing to see the emoji.":"Continuez à taper pour voir l'émoji.","The query must contain at least two characters.":"La requête doit contenir au moins deux caractères.","Smileys & Expressions":"Smileys et expressions","Gestures & People":"Gestes et personnes","Animals & Nature":"Animaux et nature","Food & Drinks":"Nourriture et boissons","Travel & Places":"Voyages et lieux",Activities:"Activités",Objects:"Objets",Symbols:"Symboles",Flags:"Drapeaux","Select skin tone":"Sélectionner la teinte de peau","Default skin tone":"Teinte de peau par défaut","Light skin tone":"Teint clair","Medium Light skin tone":"Teint moyennement clair","Medium skin tone":"Teint moyen","Medium Dark skin tone":"Teint moyennement foncé","Dark skin tone":"Teint foncé","Emoji picker":"Sélecteur d'émojis",Cancel:"Annuler",Clear:"Effacer","Remove color":"Enlever la couleur","Restore default":"Restaurer par défaut",Save:"Enregistrer","Show more items":"Montrer plus d'éléments","%0 of %1":"%0 sur %1","Cannot upload file:":"Envoi du fichier échoué :","Rich Text Editor. Editing area: %0":"Éditeur de texte enrichi. Zone d'édition : %0","Insert with file manager":"Insérer avec le gestionnaire de fichiers","Replace with file manager":"Remplacer avec le gestionnaire de fichiers","Insert image with file manager":"Insérer une image avec le gestionnaire de fichiers","Replace image with file manager":"Remplacer l'image avec le gestionnaire de fichiers",File:"Fichier","With file manager":"Avec le gestionnaire de fichiers","Toggle caption off":"Désactiver la légende","Toggle caption on":"Activer la légende","Content editing keystrokes":"Touches d'édition de contenu","These keyboard shortcuts allow for quick access to content editing features.":"Ces raccourcis clavier permettent un accès rapide aux fonctionnalités d'édition de contenu.","User interface and content navigation keystrokes":"Interface utilisateur et frappes de navigation dans le contenu","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Utilisez les touches suivantes pour une navigation plus efficace dans l'interface utilisateur de CKEditor 5.","Close contextual balloons, dropdowns, and dialogs":"Fermer les bulles contextuelles, les listes déroulantes et les boîtes de dialogue","Open the accessibility help dialog":"Ouvrir la boîte de dialogue d'aide sur l'accessibilité","Move focus between form fields (inputs, buttons, etc.)":"Déplacer le focus entre les champs du formulaire (saisies, boutons, etc.)","Move focus to the menu bar, navigate between menu bars":"Déplacer le focus sur la barre du menu, naviguer entre les barres de menu","Move focus to the toolbar, navigate between toolbars":"Déplacez le focus sur la barre d'outils, naviguez entre les barres d'outils","Navigate through the toolbar or menu bar":"Naviguer sur la barre d'outils ou la barre de menu","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Exécuter le bouton sur lequel se trouve le focus. L'exécution de boutons qui interagissent avec le contenu de l'éditeur ramène le focus sur le contenu.",Accept:"Accepter",Paragraph:"Paragraphe","Color picker":"Pipette à couleurs","Please try a different phrase or check the spelling.":"Veuillez essayer une autre phrase ou vérifier l'orthographe.",Source:"Source",Insert:"Insérer",Update:"Mettre à jour",Back:"Retour","Insert code block":"Insérer un bloc de code","Plain text":"Texte brut","Leaving %0 code snippet":"Laisser un extrait de code %0","Entering %0 code snippet":"Saisie d'un extrait de code %0","Entering code snippet":"Saisie d'un extrait de code","Leaving code snippet":"Laisser un extrait de code","Code block":"Bloc de code","Copy selected content":"Copier le contenu sélectionné","Paste content":"Coller le contenu","Paste content as plain text":"Coller le contenu sous forme de texte brut","Insert image or file":"Insérer une image ou un fichier","Could not obtain resized image URL.":"Impossible d'obtenir l'image redimensionnée","Selecting resized image failed":"La sélection de l'image redimensionnée a échoué.","Could not insert image at the current position.":"Impossible d'insérer l'image à la position courante.","Inserting image failed":"L'insertion d'image a échoué.",Bookmark:"Favori","Edit bookmark":"Modifier le favori","Remove bookmark":"Supprimer le favori","Bookmark name":"Nom du favori","Enter the bookmark name without spaces.":"Saisir un nom de favori sans espaces.","Bookmark must not be empty.":"Le favori ne doit pas être vide.","Bookmark name cannot contain space characters.":"Le nom d'un favori ne peut pas contenir d'espaces.","Bookmark name already exists.":"Le nom du favori existe déjà.","bookmark widget":"widget pour favori","Bookmark toolbar":"Barre d'outils des signets",Bookmarks:"Signets","No bookmarks available.":"Aucun signet disponible.","Scroll to bookmark":"Faire défiler jusqu'au signet","Open file manager":"Ouvrir le gestionnaire de fichiers","Cannot determine a category for the uploaded file.":"Impossible de déterminer une catégorie pour le fichier téléchargé.","Cannot access default workspace.":"Impossible d'accéder à l'espace de travail par défaut.","You have no image editing permissions.":"Vous n'êtes pas autorisé à traiter des images.","Edit image":"Modifier l'image","Processing the edited image.":"Traitement de l'image modifiée.","Server failed to process the image.":"Le serveur n'a pas réussi à traiter l'image.","Failed to determine category of edited image.":"Échec de la détermination de la catégorie de l'image modifiée.","Block quote":"Citation",Bold:"Gras",Italic:"Italique",Underline:"Souligné",Code:"Code",Strikethrough:"Barré",Subscript:"Indice",Superscript:"Exposant","Italic text":"Texte en italique","Move out of an inline code style":"Sortir d'un style de code en ligne","Bold text":"Texte en gras","Underline text":"Souligner le texte","Strikethrough text":"Texte barré","Saving changes":"Enregistrement des modifications","Revert autoformatting action":"Annuler l'action de formatage automatique","Align left":"Aligner à gauche","Align right":"Aligner à droite","Align center":"Centrer",Justify:"Justifier","Text alignment":"Alignement du texte","Text alignment toolbar":"Barre d'outils d'alignement du texte"},getPluralForm(n){return n<=-2||n>=2}}};const oB={hi:{dictionary:{"Words: %0":"Words: %0","Characters: %0":"Characters: %0","Widget toolbar":"Widget toolbar","Insert paragraph before block":"Insert paragraph before block","Insert paragraph after block":"Insert paragraph after block","Press Enter to type after or press Shift + Enter to type before the widget":"विजेट के बाद टाइप करने के लिए एंटर दबाएं या पहले टाइप करने के लिए शिफ्ट+एंटर दबाएं","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"वे कीस्ट्रोक्स जिनका इस्तेमाल किसी विजेट के सेलेक्ट किए जाने पर किया जा सकता है (जैसे: इमेज, टेबल, आदि)","Insert a new paragraph directly after a widget":"किसी विजेट के ठीक आगे एक नया पैराग्राफ़ इंसर्ट करें","Insert a new paragraph directly before a widget":"किसी विजेट के ठीक पीछे एक नया पैराग्राफ़ इंसर्ट करें","Move the caret to allow typing directly before a widget":"किसी विजेट के ठीक पीछे टाइप करने के लिए कैरेट को मूव करें","Move the caret to allow typing directly after a widget":"किसी विजेट के ठीक आगे टाइप करने के लिए कैरेट को मूव करें","Move focus from an editable area back to the parent widget":"एक एडिटेबल एरिया से पेरेंट विजेट पर फ़ोकस वापिस लाएँ","Upload in progress":"Upload in progress",Undo:"Undo",Redo:"Redo","Rich Text Editor":"Rich Text Editor","Edit block":"Edit block","Click to edit block":"ब्लॉक एडिट करने के लिए क्लिक करें","Drag to move":"मूव करने के लिए ड्रैग करें",Next:"Next",Previous:"Previous","Editor toolbar":"Editor toolbar","Dropdown toolbar":"Dropdown toolbar","Dropdown menu":"ड्रापडाउन मेन्यू",Black:"Black","Dim grey":"Dim grey",Grey:"Grey","Light grey":"Light grey",White:"White",Red:"Red",Orange:"Orange",Yellow:"Yellow","Light green":"Light green",Green:"Green",Aquamarine:"Aquamarine",Turquoise:"Turquoise","Light blue":"Light blue",Blue:"Blue",Purple:"Purple","Editor block content toolbar":"एडीटर ब्लॉक कंटेंट टूलबार","Editor contextual toolbar":"एडीटर कॉन्टेक्स्टूअल टूलबार",HEX:"HEX","No results found":"कोई रिजल्ट नहीं","No searchable items":"कोई खोजने लायक आइटम नहीं","Editor dialog":"एडिटर डायलॉग",Close:"बंद करें","Help Contents. To close this dialog press ESC.":"हेल्प कॉन्टेंट्स. इस डायलॉग को बंद करने के लिए ESC दबाएँ.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"नीचे, आप उन कीबोर्ड शॉर्टकट्स की एक लिस्ट देख सकते हैं जिनका इस्तेमाल एडिटर में किया जा सकता है.","(may require <kbd>Fn</kbd>)":"(इसके लिए <kbd>Fn</kbd> की ज़रूरत हो सकती है)",Accessibility:"पहुँच","Accessibility help":"एक्सेसिबिलिटी हेल्प","Press %0 for help.":"हेल्प के लिए %0 दबाएँ.","Move focus in and out of an active dialog window":"एक एक्टिव डायलॉग विंडो में फ़ोकस को अंदर और बाहर मूव करें",MENU_BAR_MENU_FILE:"फाइल",MENU_BAR_MENU_EDIT:"Edit",MENU_BAR_MENU_VIEW:"दृश्य",MENU_BAR_MENU_INSERT:"Insert",MENU_BAR_MENU_FORMAT:"फॉर्मेट",MENU_BAR_MENU_TOOLS:"टूल्स",MENU_BAR_MENU_HELP:"हेल्प",MENU_BAR_MENU_TEXT:"टेक्स्ट",MENU_BAR_MENU_FONT:"फ़ॉन्ट","Editor menu bar":"एडिटर मेनू बार",'Please enter a valid color (e.g. "ff0000").':'कृपया एक वैध रंग दर्ज करें (उदाहरण के लिए "ff0000").',"Insert table":"Insert table","Header column":"Header column","Insert column left":"Insert column left","Insert column right":"Insert column right","Delete column":"Delete column","Select column":"Select column",Column:"Column","Header row":"Header row","Insert row below":"Insert row below","Insert row above":"Insert row above","Delete row":"Delete row","Select row":"Select row",Row:"Row","Merge cell up":"Merge cell up","Merge cell right":"Merge cell right","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Split cell vertically":"Split cell vertically","Split cell horizontally":"Split cell horizontally","Merge cells":"Merge cells","Table toolbar":"Table toolbar","Table properties":"Table properties","Cell properties":"Cell properties",Border:"Border",Style:"Style",Width:"Width",Height:"Height",Color:"Color",Background:"Background",Padding:"Padding",Dimensions:"Dimensions","Table cell text alignment":"Table cell text alignment",Alignment:"Alignment","Horizontal text alignment toolbar":"Horizontal text alignment toolbar","Vertical text alignment toolbar":"Vertical text alignment toolbar","Table alignment toolbar":"Table alignment toolbar",None:"None",Solid:"Solid",Dotted:"Dotted",Dashed:"Dashed",Double:"Double",Groove:"Groove",Ridge:"Ridge",Inset:"Inset",Outset:"Outset","Align cell text to the left":"Align cell text to the left","Align cell text to the center":"Align cell text to the center","Align cell text to the right":"Align cell text to the right","Justify cell text":"Justify cell text","Align cell text to the top":"Align cell text to the top","Align cell text to the middle":"Align cell text to the middle","Align cell text to the bottom":"Align cell text to the bottom","Align table to the left":"Align table to the left","Center table":"Center table","Align table to the right":"Align table to the right",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'The value is invalid. Try "10px" or "2em" or simply "2".',"Enter table caption":"टेबल कैप्शन एंटर करें","Keystrokes that can be used in a table cell":"वे कीस्ट्रोक्स जिनका इस्तेमाल एक टेबल सेल में किया जा सकता है","Move the selection to the next cell":"सेलेक्शन को अगले सेल में मूव करें","Move the selection to the previous cell":"सेलेक्शन को पिछले सेल में मूव करें","Insert a new table row (when in the last cell of a table)":"एक नई टेबल रो इंसर्ट करें (जब आप किसी टेबल के आख़िरी सेल में हों)","Navigate through the table":"टेबल में नैविगेट करें",Table:"टेबल","Insert table layout":"टेबल लेआउट सम्मिलित करें","Table layout":"टेबल लेआउट","Layout table":"लेआउट टेबल","Content table":"कंटेंट टेबल","Choose table type":"टेबल प्रकार चुनें","Table type":"टेबल प्रकार","Table type options":"टेबल प्रकार के विकल्प",Styles:"स्टाइल्स","Multiple styles":"कई स्टाइल्स","Block styles":"ब्लॉक स्टाइल्स","Text styles":"टेक्स्ट स्टाइल्स","Special characters":"Special characters",Category:"केटेगरी",All:"सभी",Arrows:"एरोज",Currency:"करेंसी",Latin:"लैटिन",Mathematical:"मैथमैटिकल",Text:"टेक्स्ट","leftwards simple arrow":"सिम्पल ऐरो बाएं तरफ","rightwards simple arrow":"सिम्पल ऐरो दाएं तरफ","upwards simple arrow":"सिम्पल ऐरो ऊपर की तरफ","downwards simple arrow":"सिम्पल ऐरो नीचे की तरफ","leftwards double arrow":"leftwards double arrow","rightwards double arrow":"rightwards double arrow","upwards double arrow":"upwards double arrow","downwards double arrow":"downwards double arrow","leftwards dashed arrow":"leftwards dashed arrow","rightwards dashed arrow":"rightwards dashed arrow","upwards dashed arrow":"upwards dashed arrow","downwards dashed arrow":"downwards dashed arrow","leftwards arrow to bar":"leftwards arrow to bar","rightwards arrow to bar":"rightwards arrow to bar","upwards arrow to bar":"upwards arrow to bar","downwards arrow to bar":"downwards arrow to bar","up down arrow with base":"up down arrow with base","back with leftwards arrow above":"back with leftwards arrow above","end with leftwards arrow above":"end with leftwards arrow above","on with exclamation mark with left right arrow above":"on with exclamation mark with left right arrow above","soon with rightwards arrow above":"soon with rightwards arrow above","top with upwards arrow above":"top with upwards arrow above","Dollar sign":"Dollar sign","Euro sign":"Euro sign","Yen sign":"Yen sign","Pound sign":"Pound sign","Cent sign":"Cent sign","Euro-currency sign":"Euro-currency sign","Colon sign":"Colon sign","Cruzeiro sign":"Cruzeiro sign","French franc sign":"French franc sign","Lira sign":"Lira sign","Currency sign":"Currency sign","Bitcoin sign":"Bitcoin sign","Mill sign":"Mill sign","Naira sign":"Naira sign","Peseta sign":"Peseta sign","Rupee sign":"Rupee sign","Won sign":"Won sign","New sheqel sign":"New sheqel sign","Dong sign":"Dong sign","Kip sign":"Kip sign","Tugrik sign":"Tugrik sign","Drachma sign":"Drachma sign","German penny sign":"German penny sign","Peso sign":"Peso sign","Guarani sign":"Guarani sign","Austral sign":"Austral sign","Hryvnia sign":"Hryvnia sign","Cedi sign":"Cedi sign","Livre tournois sign":"Livre tournois sign","Spesmilo sign":"Spesmilo sign","Tenge sign":"Tenge sign","Indian rupee sign":"Indian rupee sign","Turkish lira sign":"Turkish lira sign","Nordic mark sign":"Nordic mark sign","Manat sign":"Manat sign","Ruble sign":"Ruble sign","Latin capital letter a with macron":"Latin capital letter a with macron","Latin small letter a with macron":"Latin small letter a with macron","Latin capital letter a with breve":"Latin capital letter a with breve","Latin small letter a with breve":"Latin small letter a with breve","Latin capital letter a with ogonek":"Latin capital letter a with ogonek","Latin small letter a with ogonek":"Latin small letter a with ogonek","Latin capital letter c with acute":"Latin capital letter c with acute","Latin small letter c with acute":"Latin small letter c with acute","Latin capital letter c with circumflex":"Latin capital letter c with circumflex","Latin small letter c with circumflex":"Latin small letter c with circumflex","Latin capital letter c with dot above":"Latin capital letter c with dot above","Latin small letter c with dot above":"Latin small letter c with dot above","Latin capital letter c with caron":"Latin capital letter c with caron","Latin small letter c with caron":"Latin small letter c with caron","Latin capital letter d with caron":"Latin capital letter d with caron","Latin small letter d with caron":"Latin small letter d with caron","Latin capital letter d with stroke":"Latin capital letter d with stroke","Latin small letter d with stroke":"Latin small letter d with stroke","Latin capital letter e with macron":"Latin capital letter e with macron","Latin small letter e with macron":"Latin small letter e with macron","Latin capital letter e with breve":"Latin capital letter e with breve","Latin small letter e with breve":"Latin small letter e with breve","Latin capital letter e with dot above":"Latin capital letter e with dot above","Latin small letter e with dot above":"Latin small letter e with dot above","Latin capital letter e with ogonek":"Latin capital letter e with ogonek","Latin small letter e with ogonek":"Latin small letter e with ogonek","Latin capital letter e with caron":"Latin capital letter e with caron","Latin small letter e with caron":"Latin small letter e with caron","Latin capital letter g with circumflex":"Latin capital letter g with circumflex","Latin small letter g with circumflex":"Latin small letter g with circumflex","Latin capital letter g with breve":"Latin capital letter g with breve","Latin small letter g with breve":"Latin small letter g with breve","Latin capital letter g with dot above":"Latin capital letter g with dot above","Latin small letter g with dot above":"Latin small letter g with dot above","Latin capital letter g with cedilla":"Latin capital letter g with cedilla","Latin small letter g with cedilla":"Latin small letter g with cedilla","Latin capital letter h with circumflex":"Latin capital letter h with circumflex","Latin small letter h with circumflex":"Latin small letter h with circumflex","Latin capital letter h with stroke":"Latin capital letter h with stroke","Latin small letter h with stroke":"Latin small letter h with stroke","Latin capital letter i with tilde":"Latin capital letter i with tilde","Latin small letter i with tilde":"Latin small letter i with tilde","Latin capital letter i with macron":"Latin capital letter i with macron","Latin small letter i with macron":"Latin small letter i with macron","Latin capital letter i with breve":"Latin capital letter i with breve","Latin small letter i with breve":"Latin small letter i with breve","Latin capital letter i with ogonek":"Latin capital letter i with ogonek","Latin small letter i with ogonek":"Latin small letter i with ogonek","Latin capital letter i with dot above":"Latin capital letter i with dot above","Latin small letter dotless i":"Latin small letter dotless i","Latin capital ligature ij":"Latin capital ligature ij","Latin small ligature ij":"Latin small ligature ij","Latin capital letter j with circumflex":"Latin capital letter j with circumflex","Latin small letter j with circumflex":"Latin small letter j with circumflex","Latin capital letter k with cedilla":"Latin capital letter k with cedilla","Latin small letter k with cedilla":"Latin small letter k with cedilla","Latin small letter kra":"Latin small letter kra","Latin capital letter l with acute":"Latin capital letter l with acute","Latin small letter l with acute":"Latin small letter l with acute","Latin capital letter l with cedilla":"Latin capital letter l with cedilla","Latin small letter l with cedilla":"Latin small letter l with cedilla","Latin capital letter l with caron":"Latin capital letter l with caron","Latin small letter l with caron":"Latin small letter l with caron","Latin capital letter l with middle dot":"Latin capital letter l with middle dot","Latin small letter l with middle dot":"Latin small letter l with middle dot","Latin capital letter l with stroke":"Latin capital letter l with stroke","Latin small letter l with stroke":"Latin small letter l with stroke","Latin capital letter n with acute":"Latin capital letter n with acute","Latin small letter n with acute":"Latin small letter n with acute","Latin capital letter n with cedilla":"Latin capital letter n with cedilla","Latin small letter n with cedilla":"Latin small letter n with cedilla","Latin capital letter n with caron":"Latin capital letter n with caron","Latin small letter n with caron":"Latin small letter n with caron","Latin small letter n preceded by apostrophe":"Latin small letter n preceded by apostrophe","Latin capital letter eng":"Latin capital letter eng","Latin small letter eng":"Latin small letter eng","Latin capital letter o with macron":"Latin capital letter o with macron","Latin small letter o with macron":"Latin small letter o with macron","Latin capital letter o with breve":"Latin capital letter o with breve","Latin small letter o with breve":"Latin small letter o with breve","Latin capital letter o with double acute":"Latin capital letter o with double acute","Latin small letter o with double acute":"Latin small letter o with double acute","Latin capital ligature oe":"Latin capital ligature oe","Latin small ligature oe":"Latin small ligature oe","Latin capital letter r with acute":"Latin capital letter r with acute","Latin small letter r with acute":"Latin small letter r with acute","Latin capital letter r with cedilla":"Latin capital letter r with cedilla","Latin small letter r with cedilla":"Latin small letter r with cedilla","Latin capital letter r with caron":"Latin capital letter r with caron","Latin small letter r with caron":"Latin small letter r with caron","Latin capital letter s with acute":"Latin capital letter s with acute","Latin small letter s with acute":"Latin small letter s with acute","Latin capital letter s with circumflex":"Latin capital letter s with circumflex","Latin small letter s with circumflex":"Latin small letter s with circumflex","Latin capital letter s with cedilla":"Latin capital letter s with cedilla","Latin small letter s with cedilla":"Latin small letter s with cedilla","Latin capital letter s with caron":"Latin capital letter s with caron","Latin small letter s with caron":"Latin small letter s with caron","Latin capital letter t with cedilla":"Latin capital letter t with cedilla","Latin small letter t with cedilla":"Latin small letter t with cedilla","Latin capital letter t with caron":"Latin capital letter t with caron","Latin small letter t with caron":"Latin small letter t with caron","Latin capital letter t with stroke":"Latin capital letter t with stroke","Latin small letter t with stroke":"Latin small letter t with stroke","Latin capital letter u with tilde":"Latin capital letter u with tilde","Latin small letter u with tilde":"Latin small letter u with tilde","Latin capital letter u with macron":"Latin capital letter u with macron","Latin small letter u with macron":"Latin small letter u with macron","Latin capital letter u with breve":"Latin capital letter u with breve","Latin small letter u with breve":"Latin small letter u with breve","Latin capital letter u with ring above":"Latin capital letter u with ring above","Latin small letter u with ring above":"Latin small letter u with ring above","Latin capital letter u with double acute":"Latin capital letter u with double acute","Latin small letter u with double acute":"Latin small letter u with double acute","Latin capital letter u with ogonek":"Latin capital letter u with ogonek","Latin small letter u with ogonek":"Latin small letter u with ogonek","Latin capital letter w with circumflex":"Latin capital letter w with circumflex","Latin small letter w with circumflex":"Latin small letter w with circumflex","Latin capital letter y with circumflex":"Latin capital letter y with circumflex","Latin small letter y with circumflex":"Latin small letter y with circumflex","Latin capital letter y with diaeresis":"Latin capital letter y with diaeresis","Latin capital letter z with acute":"Latin capital letter z with acute","Latin small letter z with acute":"Latin small letter z with acute","Latin capital letter z with dot above":"Latin capital letter z with dot above","Latin small letter z with dot above":"Latin small letter z with dot above","Latin capital letter z with caron":"Latin capital letter z with caron","Latin small letter z with caron":"Latin small letter z with caron","Latin small letter long s":"Latin small letter long s","Less-than sign":"Less-than sign","Greater-than sign":"Greater-than sign","Less-than or equal to":"Less-than or equal to","Greater-than or equal to":"Greater-than or equal to","En dash":"En dash","Em dash":"Em dash",Macron:"Macron",Overline:"Overline","Degree sign":"Degree sign","Minus sign":"Minus sign","Plus-minus sign":"Plus-minus sign","Division sign":"Division sign","Fraction slash":"Fraction slash","Multiplication sign":"Multiplication sign","Latin small letter f with hook":"Latin small letter f with hook",Integral:"Integral","N-ary summation":"N-ary summation",Infinity:"Infinity","Square root":"Square root","Tilde operator":"Tilde operator","Approximately equal to":"Approximately equal to","Almost equal to":"Almost equal to","Not equal to":"Not equal to","Identical to":"Identical to","Element of":"Element of","Not an element of":"Not an element of","Contains as member":"Contains as member","N-ary product":"N-ary product","Logical and":"Logical and","Logical or":"Logical or","Not sign":"Not sign",Intersection:"Intersection",Union:"Union","Partial differential":"Partial differential","For all":"For all","There exists":"There exists","Empty set":"Empty set",Nabla:"Nabla","Asterisk operator":"Asterisk operator","Proportional to":"Proportional to",Angle:"Angle","Vulgar fraction one quarter":"Vulgar fraction one quarter","Vulgar fraction one half":"Vulgar fraction one half","Vulgar fraction three quarters":"Vulgar fraction three quarters","Single left-pointing angle quotation mark":"Single left-pointing angle quotation mark","Single right-pointing angle quotation mark":"Single right-pointing angle quotation mark","Left-pointing double angle quotation mark":"Left-pointing double angle quotation mark","Right-pointing double angle quotation mark":"Right-pointing double angle quotation mark","Left single quotation mark":"Left single quotation mark","Right single quotation mark":"Right single quotation mark","Left double quotation mark":"Left double quotation mark","Right double quotation mark":"Right double quotation mark","Single low-9 quotation mark":"Single low-9 quotation mark","Double low-9 quotation mark":"Double low-9 quotation mark","Inverted exclamation mark":"Inverted exclamation mark","Inverted question mark":"Inverted question mark","Two dot leader":"Two dot leader","Horizontal ellipsis":"Horizontal ellipsis","Double dagger":"Double dagger","Per mille sign":"Per mille sign","Per ten thousand sign":"Per ten thousand sign","Double exclamation mark":"Double exclamation mark","Question exclamation mark":"Question exclamation mark","Exclamation question mark":"Exclamation question mark","Double question mark":"Double question mark","Copyright sign":"Copyright sign","Registered sign":"Registered sign","Trade mark sign":"Trade mark sign","Section sign":"Section sign","Paragraph sign":"Paragraph sign","Reversed paragraph sign":"Reversed paragraph sign","Show source":"सोर्स दिखाएं","Show blocks":"ब्लॉक दिखाएं","Select all":"Select all","Disable editing":"Disable editing","Enable editing":"Enable editing","Previous editable region":"Previous editable region","Next editable region":"Next editable region","Navigate editable regions":"Navigate editable regions","Remove Format":"Remove Format","Page break":"Page break","media widget":"media widget","Media URL":"Media URL","Paste the media URL in the input.":"Paste the media URL in the input.","Tip: Paste the URL into the content to embed faster.":"Tip: Paste the URL into the content to embed faster.","The URL must not be empty.":"The URL must not be empty.","This media URL is not supported.":"This media URL is not supported.","Insert media":"Insert media",Media:"मीडिया","Media toolbar":"Media toolbar","Open media in new tab":"नए टैब में मीडिया खोलें","Media embed":"मीडिया एंबेड","Numbered List":"Numbered List","Bulleted List":"Bulleted List","To-do List":"To-do List","Bulleted list styles toolbar":"Bulleted list styles toolbar","Numbered list styles toolbar":"Numbered list styles toolbar","Toggle the disc list style":"Toggle the disc list style","Toggle the circle list style":"Toggle the circle list style","Toggle the square list style":"Toggle the square list style","Toggle the decimal list style":"Toggle the decimal list style","Toggle the decimal with leading zero list style":"Toggle the decimal with leading zero list style","Toggle the lower–roman list style":"Toggle the lower–roman list style","Toggle the upper–roman list style":"Toggle the upper–roman list style","Toggle the lower–latin list style":"Toggle the lower–latin list style","Toggle the upper–latin list style":"Toggle the upper–latin list style",Disc:"Disc",Circle:"Circle",Square:"Square",Decimal:"Decimal","Decimal with leading zero":"Decimal with leading zero","Lower–roman":"Lower–roman","Upper-roman":"Upper-roman","Lower-latin":"Lower-latin","Upper-latin":"Upper-latin","List properties":"प्रॉपर्टीज़ को लिस्ट करें","Start at":"शुरू करे इस पर","Invalid start index value.":"इनवैलिड स्टार्ट इंडेक्स वैल्यू.","Start index must be greater than 0.":"स्टार्ट इंडेक्स 0 से अधिक होना चाहिए.","Reversed order":"रिवर्स किया गया क्रम","Keystrokes that can be used in a list":"वे कीस्ट्रोक्स जिनका इस्तेमाल किसी लिस्ट में किया जा सकता है","Increase list item indent":"लिस्ट आइटम इंडेंट को बढ़ाएँ","Decrease list item indent":"लिस्ट आइटम इंडेंट को घटाएँ","Entering a to-do list":"एक कार्य सूची में प्रवेश कर रहे हैं","Leaving a to-do list":"एक कार्य सूची छोड़ी जा रही है",Unlink:"Unlink",Link:"Link","Link URL":"Link URL","Link URL must not be empty.":"लिंक का URL रिक्त नहीं होना चाहिए.","Link image":"Link image","Edit link":"Edit link","Open link in new tab":"Open link in new tab","Open in a new tab":"Open in a new tab",Downloadable:"Downloadable","Create link":"लिंक बनाएँ","Move out of a link":"लिंक के बाहर जाएँ","Link properties":"गुण लिंक करें","Displayed text":"प्रदर्शित टेक्स्ट","No links available":"कोई लिंक उपलब्ध नहीं है",Language:"भाषा","Choose language":"भाषा चुनें","Remove language":"भाषा हटाएं","Increase indent":"Increase indent","Decrease indent":"Decrease indent","image widget":"image widget","Wrap text":"टेक्स्ट रैप करें","Break text":"टेक्स्ट तोड़ें","In line":"इन - लाइन","Side image":"Side image","Full size image":"Full size image","Left aligned image":"Left aligned image","Centered image":"Centered image","Right aligned image":"Right aligned image","Change image text alternative":"Change image text alternative","Text alternative":"Text alternative","Enter image caption":"Enter image caption","Insert image":"Insert image","Replace image":"इमेज बदलें","Upload from computer":"कंप्यूटर से अपलोड करे","Replace from computer":"कंप्यूटर से बदलें","Upload image from computer":"कंप्यूटर से इमेज अपलोड करें","Image from computer":"कंप्यूटर से इमेज","From computer":"कंप्यूटर से","Replace image from computer":"कंप्यूटर से इमेज बदलें","Upload failed":"Upload failed","You have no image upload permissions.":"आपके पास तस्वीर को अपलोड करने की अनुमति नहीं है.","Image toolbar":"Image toolbar","Resize image":"Resize image","Resize image to %0":"Resize image to %0","Resize image to the original size":"Resize image to the original size","Resize image (in %0)":"(%0 में) तस्वीर का साइज़ बदलें",Original:"Original","Custom image size":"तस्वीर का कस्टम साइज़",Custom:"कस्टम","Image resize list":"Image resize list","Insert image via URL":"Insert image via URL","Insert via URL":"URL के माध्यम से इंसर्ट करें","Image via URL":"URL के माध्यम से इमेज","Via URL":"URL के माध्यम से","Update image URL":"Update image URL","Caption for the image":"छवि के लिए कैप्शन","Caption for image: %0":"छवि के लिए कैप्शन: %0","The value must not be empty.":"वैल्यू रिक्त नहीं होना चाहिए.","The value should be a plain number.":"वैल्यू एक प्लेन नंबर होना चाहिए.","Uploading image":"तस्वीर अपलोड की जा रही है","Image upload complete":"तस्वीर का अपलोड पूरा हुआ","Error during image upload":"तस्वीर अपलोड के दौरान त्रुटि",Image:"इमेज","Image Resize":"तस्वीर का आकर बदलें","Text Alternative":"टेक्स्ट का विकल्प","HTML object":"एचटीएमएल वस्तु","Insert HTML":"एचटीएमएल इन्सर्ट करें","HTML snippet":"एचटीएमएल स्निपेट","Paste raw HTML here...":"रॉ एचटीएमएल यहां पेस्ट करें...","Edit source":"सोर्स एडिट करें","Save changes":"चेंजेज़ को सेव करें","No preview available":"कोई प्रीव्यू उपलब्ध नहीं","Empty snippet content":"खाली स्निपेट कंटेंट","Horizontal line":"Horizontal line","Yellow marker":"Yellow marker","Green marker":"Green marker","Pink marker":"Pink marker","Blue marker":"Blue marker","Red pen":"Red pen","Green pen":"Green pen","Remove highlight":"Remove highlight",Highlight:"Highlight","Text highlight toolbar":"Text highlight toolbar",Heading:"Heading","Choose heading":"Choose heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6","Type your title":"Type your title","Type or paste your content here.":"Type or paste your content here.","Enter fullscreen mode":"फ़ुलस्क्रीन मोड में प्रवेश करें","Leave fullscreen mode":"फ़ुलस्क्रीन मोड छोड़ें","Fullscreen mode":"फ़ुलस्क्रीन मोड","Toggle fullscreen mode":"फ़ुलस्क्रीन मोड स्विच करें","Document outline":"डॉक्युमेंट की पूरी तस्वीर","Connected users":"जुड़े हुए यूज़र","Font Size":"Font Size",Tiny:"Tiny",Small:"Small",Big:"Big",Huge:"Huge","Font Family":"Font Family",Default:"Default","Font Color":"Font Color","Font Background Color":"Font Background Color","Document colors":"Document colors","Find and replace":"ढूँढें और बदलें","Find in text…":"टेक्स्ट में ढूंढें…",Find:"ढूँढें","Previous result":"पिछला रेज़ल्ट","Next result":"अगला रेज़ल्ट",Replace:"बदलें","Replace all":"सब बदल दें","Match case":"केस मैच करें","Whole words only":"केवल पूरे शब्द","Replace with…":"...के साथ बदलें","Text to find must not be empty.":"खोजने के लिए टेक्स्ट खाली नहीं होना चाहिए.","Tip: Find some text first in order to replace it.":"टिप:उसे बदलने के लिए पहले कुछ वह टेक्स्ट खोजें.","Advanced options":"एडवांस्ड विकल्प","Find in the document":"डॉक्युमेंट में खोजें","Insert a soft break (a <code><br></code> element)":"एक सॉफ़्ट ब्रेक इंसर्ट करें (एक <code><br></code> एलिमेंट)","Insert a hard break (a new paragraph)":"एक हार्ड ब्रेक इंसर्ट करें (एक नया पैराग्राफ़)",Emoji:"इमोजी","Show all emoji...":"सभी इमोजी दिखाएँ...","Find an emoji (min. 2 characters)":"एक इमोजी ढूंढें (कम से कम 2 अक्षर)",'No emojis were found matching "%0".':'"%0" से मेल खाता कोई इमोजी नहीं मिला.',"Keep on typing to see the emoji.":"इमोजी देखने के लिए टाइप करते रहें.","The query must contain at least two characters.":"क्वेरी में कम से कम दो अक्षर होने चाहिए.","Smileys & Expressions":"स्माइलीज़ और एक्सप्रेशंस","Gestures & People":"इशारे और लोग","Animals & Nature":"पशु और प्रकृति","Food & Drinks":"फ़ूड और ड्रिंक्स","Travel & Places":"ट्रैवल और स्थान",Activities:"गतिविधियाँ",Objects:"वस्तुओं",Symbols:"सिंबल",Flags:"झंडे","Select skin tone":"स्किन टोन चुनें","Default skin tone":"डिफ़ॉल्ट स्किन टोन","Light skin tone":"हल्की स्किन टोन","Medium Light skin tone":"मध्यम हल्की स्किन टोन","Medium skin tone":"मध्यम स्किन टोन","Medium Dark skin tone":"मध्यम गहरे स्किन टोन","Dark skin tone":"गहरे रंग का स्किन टोन","Emoji picker":"इमोजी पिकर",Cancel:"Cancel",Clear:"साफ़ करें","Remove color":"Remove color","Restore default":"डिफ़ॉल्ट रिस्टोर कर दें",Save:"Save","Show more items":"Show more items","%0 of %1":"%0 of %1","Cannot upload file:":"Cannot upload file:","Rich Text Editor. Editing area: %0":"रिच टेक्स्ट एडिटर। संपादन क्षेत्र: %0","Insert with file manager":"फ़ाइल मैनेजर से इन्सर्ट करें","Replace with file manager":"फ़ाइल मैनेजर से बदलें","Insert image with file manager":"फ़ाइल मैनेजर से इमेज इन्सर्ट करें","Replace image with file manager":"इमेज को फ़ाइल मैनेजर से बदलें",File:"फाइल","With file manager":"फ़ाइल मैनेजर के साथ","Toggle caption off":"कैप्शन को टॉगल बंद करें","Toggle caption on":"कैप्शन का टॉगल ऑन करें","Content editing keystrokes":"कॉन्टेंट एडिटिंग कीस्ट्रोक्स","These keyboard shortcuts allow for quick access to content editing features.":"ये कीबोर्ड शॉर्टकट्स कॉन्टेंट एडिटिंग फ़ीचर्स तक पहुँचना आसान बनाते हैं.","User interface and content navigation keystrokes":"यूज़र इंटरफ़ेस और कॉन्टेंट नैविगेशन कीस्ट्रोक्स","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"CKEditor 5 यूज़र इंटरफ़ेस में और बेहतरीन नैविगेशन के लिए इन कीस्ट्रोक्स का इस्तेमाल करें.","Close contextual balloons, dropdowns, and dialogs":"कॉन्टेक्सचुअल बलून्स, ड्रॉपडाउन्स और डायलॉग्स को बंद करें","Open the accessibility help dialog":"एक्सेसिबिलिटी हेल्प डायलॉग को खोलें","Move focus between form fields (inputs, buttons, etc.)":"फ़ॉर्म फ़ील्ड्स (इनपुट्स, बटन्स, आदि) के बीच फ़ोकस को मूव करें","Move focus to the menu bar, navigate between menu bars":"फ़ोकस को मेनू बार पर ले जाएँ, मेनू बार के बीच नेविगेट करें","Move focus to the toolbar, navigate between toolbars":"फ़ोकस को टूलबार पर ले जाएँ, टूलबार्स के बीच नैविगेट करें","Navigate through the toolbar or menu bar":"टूलबार या मेनू बार के माध्यम से नेविगेट करें","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"वर्तमान में फोकस्ड बटन दबाएँ. एडिटर के कंटेंट के साथ इंटरैक्ट करने वाले बटनों को दबाने से फोकस वापस कंटेंट पर आ जाता है.",Accept:"स्वीकार करें",Paragraph:"Paragraph","Color picker":"Color picker","Please try a different phrase or check the spelling.":"कृपया किन्हीं और शब्दों का इस्तेमाल करें या स्पेलिंग चेक करें.",Source:"सोर्स",Insert:"इंसर्ट",Update:"अपडेट",Back:"वापस जाएँ","Insert code block":"Insert code block","Plain text":"Plain text","Leaving %0 code snippet":"%0 कोड स्निपेट से बहार निकला जा रहा है","Entering %0 code snippet":"%0 कोड स्निपेट में प्रवेश किया जा रहा है","Entering code snippet":"कोड स्निपेट में प्रवेश किया जा रहा है","Leaving code snippet":"कोड स्निपेट में प्रवेश किया जा रहा है","Code block":"कोड ब्लॉक","Copy selected content":"सेलेक्ट किए गए कॉन्टेंट को कॉपी करें","Paste content":"कॉन्टेंट पेस्ट करें","Paste content as plain text":"कॉन्टेंट को प्लेन टेक्स्ट के रूप में पेस्ट करें","Insert image or file":"Insert image or file","Could not obtain resized image URL.":"Could not obtain resized image URL.","Selecting resized image failed":"Selecting resized image failed","Could not insert image at the current position.":"Could not insert image at the current position.","Inserting image failed":"Inserting image failed",Bookmark:"बुकमार्क","Edit bookmark":"बुकमार्क एडिट करें","Remove bookmark":"बुकमार्क हटाएं","Bookmark name":"बुकमार्क का नाम","Enter the bookmark name without spaces.":"बिना स्पेस के बुकमार्क का नाम लिखें.","Bookmark must not be empty.":"बुकमार्क खाली नहीं होना चाहिए.","Bookmark name cannot contain space characters.":"बुकमार्क नाम में स्पेस नहीं हो सकते.","Bookmark name already exists.":"बुकमार्क नाम पहले से मौजूद है.","bookmark widget":"बुकमार्क विजिट","Bookmark toolbar":"बुकमार्क टूलबार",Bookmarks:"बुकमार्क","No bookmarks available.":"कोई बुकमार्क उपलब्ध नहीं है.","Scroll to bookmark":"बुकमार्क करने के लिए स्क्रॉल करें","Open file manager":"फाइल मैनेजर खोलें","Cannot determine a category for the uploaded file.":"अपलोड की गई फ़ाइल के लिए एक केटेगरी डिटर्माइन नहीं कर पा रहें.","Cannot access default workspace.":"डिफ़ॉल्ट वर्कस्पेस को ऐक्सेस नहीं किया जा सकता.","You have no image editing permissions.":"आपके पास तस्वीर को एडिट करने की अनुमति नहीं है.","Edit image":"इमेज एडिट करें","Processing the edited image.":"एडिट किए गए इमेज को प्रोसेस किया जा रहा है","Server failed to process the image.":"सर्वर इमेज प्रोसेस करने में विफल रहा.","Failed to determine category of edited image.":"एडिट किए गए इमेज की श्रेणी निर्धारित करने में विफल.","Block quote":"Block quote",Bold:"Bold",Italic:"Italic",Underline:"Underline",Code:"Code",Strikethrough:"Strikethrough",Subscript:"Subscript",Superscript:"Superscript","Italic text":"इटैलिक टेक्स्ट","Move out of an inline code style":"इनलाइन कोड स्टाइल के बाहर जाएँ","Bold text":"टेक्स्ट को बोल्ड करें","Underline text":"टेक्स्ट को अंडरलाइन करें","Strikethrough text":"टेक्स्ट को स्ट्राइकथ्रू करें","Saving changes":"Saving changes","Revert autoformatting action":"ऑटोफ़ॉर्मैटिंग एक्शन को रिवर्ट करें","Align left":"Align left","Align right":"Align right","Align center":"Align center",Justify:"Justify","Text alignment":"Text alignment","Text alignment toolbar":"Text alignment toolbar"},getPluralForm(n){return n!=1}}};const aB={ko:{dictionary:{"Words: %0":"단어 수: %0","Characters: %0":"문자 수: %0","Widget toolbar":"위젯 툴바","Insert paragraph before block":"블록 앞에 단락 삽입","Insert paragraph after block":"블록 뒤에 단락 삽입","Press Enter to type after or press Shift + Enter to type before the widget":"엔터를 눌러서 위젯 뒤에 입력하거나 시프트 + 엔터를 눌러서 위젯 앞에 입력하세요","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"위젯이 선택되었을 때 사용할 수 있는 키 입력(예: 이미지, 표 등)","Insert a new paragraph directly after a widget":"위젯 바로 뒤에 새 단락 삽입","Insert a new paragraph directly before a widget":"위젯 바로 앞에 새 단락 삽입","Move the caret to allow typing directly before a widget":"위젯 바로 앞에 입력할 수 있도록 삽입 기호 이동","Move the caret to allow typing directly after a widget":"위젯 바로 뒤에 입력할 수 있도록 삽입 기호 이동","Move focus from an editable area back to the parent widget":"포커스를 편집 가능 영역에서 부모위젯으로 옮기기","Upload in progress":"업로드 진행 중",Undo:"실행 취소",Redo:"다시 실행","Rich Text Editor":"서식 있는 텍스트 편집기","Edit block":"편집 영역","Click to edit block":"클릭하여 블록 편집","Drag to move":"드래그하여 이동",Next:"다음",Previous:"이전","Editor toolbar":"편집기 툴바","Dropdown toolbar":"드롭다운 툴바","Dropdown menu":"드롭다운 메뉴",Black:"검은색","Dim grey":"진한 회색",Grey:"회색","Light grey":"밝은 회색",White:"흰색",Red:"빨간색",Orange:"주황색",Yellow:"노랑색","Light green":"연한 초록색",Green:"초록색",Aquamarine:"연한 청록색",Turquoise:"청록색","Light blue":"연한 파랑색",Blue:"파랑색",Purple:"보라색","Editor block content toolbar":"편집기 영역 내용 툴바","Editor contextual toolbar":"편집기 문맥 툴바",HEX:"HEX","No results found":"결과 찾을 수 없음","No searchable items":"검색 가능한 항목 없음","Editor dialog":"편집기 대화상자",Close:"닫기","Help Contents. To close this dialog press ESC.":"도움말 내용입니다. 이 대화 상자를 닫으려면 ESC 키를 누르세요.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"편집기에서 사용할 수 있는 키보드 단축키 목록을 아래에서 확인할 수 있습니다.","(may require <kbd>Fn</kbd>)":"(<kbd>Fn</kbd> 키가 필요할 수 있음)",Accessibility:"접근성","Accessibility help":"접근성 도움말","Press %0 for help.":"도움말을 보려면 %0 키를 누르세요.","Move focus in and out of an active dialog window":"활성화된 대화 창 안팎으로 포커스 이동",MENU_BAR_MENU_FILE:"파일",MENU_BAR_MENU_EDIT:"수정",MENU_BAR_MENU_VIEW:"보기",MENU_BAR_MENU_INSERT:"삽입",MENU_BAR_MENU_FORMAT:"서식",MENU_BAR_MENU_TOOLS:"도구",MENU_BAR_MENU_HELP:"도움말",MENU_BAR_MENU_TEXT:"텍스트",MENU_BAR_MENU_FONT:"글꼴","Editor menu bar":"편집기 메뉴 표시줄",'Please enter a valid color (e.g. "ff0000").':'유효한 색상을 입력해 주세요(예를 들어, "ff0000").',"Insert table":"테이블 삽입","Header column":"헤더 열","Insert column left":"왼쪽에 열 삽입","Insert column right":"오른쪽에 열 삽입","Delete column":"열 삭제","Select column":"열 선택",Column:"열","Header row":"헤더 행","Insert row below":"아래에 행 삽입","Insert row above":"위에 행 삽입","Delete row":"행 삭제","Select row":"행 선택",Row:"행","Merge cell up":"위 셀과 병합","Merge cell right":"오른쪽 셀과 병합","Merge cell down":"아래 셀과 병합","Merge cell left":"왼쪽 셀과 병합","Split cell vertically":"세로로 셀 분할","Split cell horizontally":"가로로 셀 분할","Merge cells":"셀 병합","Table toolbar":"표 도구 모음","Table properties":"표 속성","Cell properties":"셀 속성",Border:"테두리",Style:"스타일",Width:"가로",Height:"세로",Color:"색",Background:"배경색",Padding:"여백",Dimensions:"크기","Table cell text alignment":"표 셀 텍스트 정렬",Alignment:"정렬","Horizontal text alignment toolbar":"가로 텍스트 정렬 도구 모음","Vertical text alignment toolbar":"세로 텍스트 정렬 도구 모음","Table alignment toolbar":"표 정렬 도구 모음",None:"선 없음",Solid:"실선",Dotted:"점선",Dashed:"파선",Double:"이중선",Groove:"음각선",Ridge:"양각선",Inset:"측면 음각선",Outset:"측면 양각선","Align cell text to the left":"셀 텍스트를 왼쪽으로 정렬","Align cell text to the center":"셀 텍스트를 가로 가운데로 정렬","Align cell text to the right":"셀 텍스트를 오른쪽으로 정렬","Justify cell text":"셀 텍스트를 양쪽으로 정렬","Align cell text to the top":"셀 텍스트를 위로 정렬","Align cell text to the middle":"셀 텍스트를 세로 가운데로 정렬","Align cell text to the bottom":"셀 텍스트를 아래로 정렬","Align table to the left":"테이블을 왼쪽으로 정렬","Center table":"테이블을 가운데로 정렬","Align table to the right":"테이블을 오른쪽으로 정렬",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'유효하지 않은 색입니다. "#FF0000"이나 "rgb(255,0,0)", 또는 "red"를 입력해 보세요.','The value is invalid. Try "10px" or "2em" or simply "2".':'유효하지 않은 값입니다. "10px"나 "2em" 또는 그냥 "2"를 입력해 보세요.',"Enter table caption":"테이블 캡션 입력","Keystrokes that can be used in a table cell":"표 셀에서 사용할 수 있는 키 입력","Move the selection to the next cell":"선택 항목을 다음 셀로 이동","Move the selection to the previous cell":"선택 항목을 이전 셀로 이동","Insert a new table row (when in the last cell of a table)":"새 표 행 삽입(표의 마지막 셀에 있을 때)","Navigate through the table":"표 탐색",Table:"표","Insert table layout":"표 레이아웃 삽입","Table layout":"표 레이아웃","Layout table":"레이아웃 표","Content table":"콘텐츠 표","Choose table type":"표 유형 선택","Table type":"표 유형","Table type options":"표 유형 옵션",Styles:"스타일","Multiple styles":"다중 스타일","Block styles":"블록 스타일","Text styles":"텍스트 스타일","Special characters":"특수 문자",Category:"카테고리",All:"전체",Arrows:"화살표",Currency:"통화",Latin:"라틴",Mathematical:"수식",Text:"텍스트","leftwards simple arrow":"왼쪽 단순 화살표","rightwards simple arrow":"오른쪽 단순 화살표","upwards simple arrow":"위쪽 단순 화살표","downwards simple arrow":"아래쪽 단순 화살표","leftwards double arrow":"왼쪽 겹화살표","rightwards double arrow":"오른쪽 겹화살표","upwards double arrow":"위쪽 겹화살표","downwards double arrow":"아래쪽 겹화살표","leftwards dashed arrow":"왼쪽 대시 화살표","rightwards dashed arrow":"오른쪽 대시 화살표","upwards dashed arrow":"위쪽 대시 화살표","downwards dashed arrow":"아래쪽 대시 화살표","leftwards arrow to bar":"왼쪽 바를 향한 화살표","rightwards arrow to bar":"오른쪽 바를 향한 화살표","upwards arrow to bar":"위쪽 바를 향한 화살표","downwards arrow to bar":"아래쪽 바를 향한 화살표","up down arrow with base":"받침이 있는 위아래 화살표","back with leftwards arrow above":"BACK 위 왼쪽 화살표","end with leftwards arrow above":"END 위 왼쪽 화살표","on with exclamation mark with left right arrow above":"ON! 위 왼쪽 오른쪽 화살표","soon with rightwards arrow above":"SOON 위 오른쪽 화살표","top with upwards arrow above":"TOP 위 위쪽 화살표","Dollar sign":"달러 기호","Euro sign":"유로 기호","Yen sign":"엔 기호","Pound sign":"파운드 기호","Cent sign":"센트 기호","Euro-currency sign":"유로화 기호","Colon sign":"콜론 기호","Cruzeiro sign":"크루제이루 기호","French franc sign":"프랑스 프랑 기호","Lira sign":"리라 기호","Currency sign":"통화 기호","Bitcoin sign":"비트코인 기호","Mill sign":"밀 기호","Naira sign":"나이라 기호","Peseta sign":"페세타 기호","Rupee sign":"루피 기호","Won sign":"원 기호","New sheqel sign":"뉴 세켈 기호","Dong sign":"동 기호","Kip sign":"킵 기호","Tugrik sign":"투그리크 기호","Drachma sign":"드라크마 기호","German penny sign":"독일 페니 기호","Peso sign":"페소 기호","Guarani sign":"과라니 기호","Austral sign":"오스트랄 기호","Hryvnia sign":"흐리브냐 기호","Cedi sign":"세디 기호","Livre tournois sign":"리브르 트르누아 기호","Spesmilo sign":"스페스밀로 기호","Tenge sign":"텡게 기호","Indian rupee sign":"인도 루피 기호","Turkish lira sign":"터키 리라 기호","Nordic mark sign":"노르딕 마크 기호","Manat sign":"마나트 기호","Ruble sign":"루블 기호","Latin capital letter a with macron":"장음 부호가 있는 라틴어 대문자 A","Latin small letter a with macron":"장음 부호가 있는 라틴어 소문자 a","Latin capital letter a with breve":"반달점 부호가 있는 라틴어 대문자 A","Latin small letter a with breve":"반달점 부호가 있는 라틴어 소문자 a","Latin capital letter a with ogonek":"꼬리 부호가 있는 라틴어 대문자 A","Latin small letter a with ogonek":"꼬리 부호가 있는 라틴어 소문자 a","Latin capital letter c with acute":"양음 부호가 있는 라틴어 대문자 C","Latin small letter c with acute":"양음 부호가 있는 라틴어 소문자 c","Latin capital letter c with circumflex":"곡절 부호가 있는 라틴어 대문자 C","Latin small letter c with circumflex":"곡절 부호가 있는 라틴어 소문자 c","Latin capital letter c with dot above":"위에 점 부호가 있는 라틴어 대문자 C","Latin small letter c with dot above":"위에 점 부호가 있는 라틴어 소문자 c","Latin capital letter c with caron":"반대 곡절 부호가 있는 라틴어 대문자 C","Latin small letter c with caron":"반대 곡절 부호가 있는 라틴어 소문자 c","Latin capital letter d with caron":"반대 곡절 부호가 있는 라틴어 대문자 D","Latin small letter d with caron":"반대 곡절 부호가 있는 라틴어 소문자 d","Latin capital letter d with stroke":"획 부호가 있는 라틴어 대문자 D","Latin small letter d with stroke":"획 부호가 있는 라틴어 소문자 d","Latin capital letter e with macron":"장음 부호가 있는 라틴어 대문자 E","Latin small letter e with macron":"장음 부호가 있는 라틴어 소문자 e","Latin capital letter e with breve":"반달점 부호가 있는 라틴어 대문자 E","Latin small letter e with breve":"반달점 부호가 있는 라틴어 소문자 e","Latin capital letter e with dot above":"위에 점 부호가 있는 라틴어 대문자 E","Latin small letter e with dot above":"위에 점 부호가 있는 라틴어 소문자 e","Latin capital letter e with ogonek":"꼬리 부호가 있는 라틴어 대문자 E","Latin small letter e with ogonek":"꼬리 부호가 있는 라틴어 소문자 e","Latin capital letter e with caron":"반대 곡절 부호가 있는 라틴어 대문자 E","Latin small letter e with caron":"반대 곡절 부호가 있는 라틴어 소문자 e","Latin capital letter g with circumflex":"곡절 부호가 있는 라틴어 대문자 G","Latin small letter g with circumflex":"곡절 부호가 있는 라틴어 소문자 g","Latin capital letter g with breve":"반달점 부호가 있는 라틴어 대문자 G","Latin small letter g with breve":"반달점 부호가 있는 라틴어 소문자 g","Latin capital letter g with dot above":"위에 점 부호가 있는 라틴어 대문자 G","Latin small letter g with dot above":"위에 점 부호가 있는 라틴어 소문자 g","Latin capital letter g with cedilla":"갈고리 부호가 있는 라틴어 대문자 G","Latin small letter g with cedilla":"갈고리 부호가 있는 라틴어 소문자 g","Latin capital letter h with circumflex":"곡절 부호가 있는 라틴어 대문자 H","Latin small letter h with circumflex":"곡절 부호가 있는 라틴어 소문자 h","Latin capital letter h with stroke":"획 부호가 있는 라틴어 대문자 H","Latin small letter h with stroke":"획 부호가 있는 라틴어 소문자 h","Latin capital letter i with tilde":"물결 부호가 있는 라틴어 대문자 I","Latin small letter i with tilde":"물결 부호가 있는 라틴어 소문자 i","Latin capital letter i with macron":"장음 부호가 있는 라틴어 대문자 I","Latin small letter i with macron":"장음 부호가 있는 라틴어 소문자 i","Latin capital letter i with breve":"반달점 부호가 있는 라틴어 대문자 I","Latin small letter i with breve":"반달점 부호가 있는 라틴어 소문자 i","Latin capital letter i with ogonek":"꼬리 부호가 있는 라틴어 대문자 I","Latin small letter i with ogonek":"꼬리 부호가 있는 라틴어 소문자 i","Latin capital letter i with dot above":"위에 점 부호가 있는 라틴어 대문자 I","Latin small letter dotless i":"라틴어 소문자 점 없는 i","Latin capital ligature ij":"라틴어 대문자 합자 IJ","Latin small ligature ij":"라틴어 소문자 합자 ij","Latin capital letter j with circumflex":"곡절 부호가 있는 라틴어 대문자 J","Latin small letter j with circumflex":"곡절 부호가 있는 라틴어 소문자 j","Latin capital letter k with cedilla":"갈고리 부호가 있는 라틴어 대문자 K","Latin small letter k with cedilla":"갈고리 부호가 있는 라틴어 소문자 k","Latin small letter kra":"라틴어 소문자 크라","Latin capital letter l with acute":"양음 부호가 있는 라틴어 대문자 I","Latin small letter l with acute":"양음 부호가 있는 라틴어 소문자 i","Latin capital letter l with cedilla":"갈고리 부호가 있는 라틴어 대문자 I","Latin small letter l with cedilla":"갈고리 부호가 있는 라틴어 소문자 i","Latin capital letter l with caron":"반대 곡절 부호가 있는 라틴어 대문자 I","Latin small letter l with caron":"반대 곡절 부호가 있는 라틴어 소문자 i","Latin capital letter l with middle dot":"중간에 점 부호가 있는 라틴어 대문자 I","Latin small letter l with middle dot":"중간에 점 부호가 있는 라틴어 소문자 i","Latin capital letter l with stroke":"획 부호가 있는 라틴어 대문자 I","Latin small letter l with stroke":"획 부호가 있는 라틴어 소문자 i","Latin capital letter n with acute":"양음 부호가 있는 라틴어 대문자 N","Latin small letter n with acute":"양음 부호가 있는 라틴어 소문자 n","Latin capital letter n with cedilla":"갈고리 부호가 있는 라틴어 대문자 N","Latin small letter n with cedilla":"갈고리 부호가 있는 라틴어 소문자 n","Latin capital letter n with caron":"반대 곡절 부호가 있는 라틴어 대문자 N","Latin small letter n with caron":"반대 곡절 부호가 있는 라틴어 소문자 n","Latin small letter n preceded by apostrophe":"아포스트로피 다음에 있는 라틴어 소문자 n","Latin capital letter eng":"라틴어 대문자 엥","Latin small letter eng":"라틴어 소문자 엥","Latin capital letter o with macron":"장음 부호가 있는 라틴어 대문자 O","Latin small letter o with macron":"장음 부호가 있는 라틴어 소문자 o","Latin capital letter o with breve":"반달점 부호가 있는 라틴어 대문자 O","Latin small letter o with breve":"반달점 부호가 있는 라틴어 소문자 o","Latin capital letter o with double acute":"이중 양음 부호가 있는 라틴어 대문자 O","Latin small letter o with double acute":"이중 양음 부호가 있는 라틴어 소문자 o","Latin capital ligature oe":"라틴어 대문자 합자 OE","Latin small ligature oe":"라틴어 소문자 합자 oe","Latin capital letter r with acute":"양음 부호가 있는 라틴어 대문자 R","Latin small letter r with acute":"양음 부호가 있는 라틴어 소문자 r","Latin capital letter r with cedilla":"갈고리 부호가 있는 라틴어 대문자 R","Latin small letter r with cedilla":"갈고리 부호가 있는 라틴어 소문자 r","Latin capital letter r with caron":"반대 곡절 부호가 있는 라틴어 대문자 R","Latin small letter r with caron":"반대 곡절 부호가 있는 라틴어 소문자 r","Latin capital letter s with acute":"양음 부호가 있는 라틴어 대문자 S","Latin small letter s with acute":"양음 부호가 있는 라틴어 소문자 s","Latin capital letter s with circumflex":"곡절 부호가 있는 라틴어 대문자 S","Latin small letter s with circumflex":"곡절 부호가 있는 라틴어 소문자 s","Latin capital letter s with cedilla":"갈고리 부호가 있는 라틴어 대문자 S","Latin small letter s with cedilla":"갈고리 부호가 있는 라틴어 소문자 s","Latin capital letter s with caron":"반대 곡절 부호가 있는 라틴어 대문자 S","Latin small letter s with caron":"반대 곡절 부호가 있는 라틴어 소문자 s","Latin capital letter t with cedilla":"갈고리 부호가 있는 라틴어 대문자 T","Latin small letter t with cedilla":"갈고리 부호가 있는 라틴어 소문자 t","Latin capital letter t with caron":"반대 곡절 부호가 있는 라틴어 대문자 T","Latin small letter t with caron":"반대 곡절 부호가 있는 라틴어 소문자 t","Latin capital letter t with stroke":"획 부호가 있는 라틴어 대문자 T","Latin small letter t with stroke":"획 부호가 있는 라틴어 소문자 t","Latin capital letter u with tilde":"물결 부호가 있는 라틴어 대문자 U","Latin small letter u with tilde":"물결 부호가 있는 라틴어 소문자 u","Latin capital letter u with macron":"장음 부호가 있는 라틴어 대문자 U","Latin small letter u with macron":"장음 부호가 있는 라틴어 소문자 u","Latin capital letter u with breve":"반달점 부호가 있는 라틴어 대문자 U","Latin small letter u with breve":"반달점 부호가 있는 라틴어 소문자 u","Latin capital letter u with ring above":"위에 고리가 있는 라틴어 대문자 U","Latin small letter u with ring above":"위에 고리가 있는 라틴어 소문자 u","Latin capital letter u with double acute":"이중 양음 부호가 있는 라틴어 대문자 U","Latin small letter u with double acute":"이중 양음 부호가 있는 라틴어 소문자 u","Latin capital letter u with ogonek":"꼬리 부호가 있는 라틴어 대문자 U","Latin small letter u with ogonek":"꼬리 부호가 있는 라틴어 소문자 u","Latin capital letter w with circumflex":"곡절 부호가 있는 라틴어 대문자 W","Latin small letter w with circumflex":"곡절 부호가 있는 라틴어 소문자 w","Latin capital letter y with circumflex":"곡절 부호가 있는 라틴어 대문자 Y","Latin small letter y with circumflex":"곡절 부호가 있는 라틴어 소문자 y","Latin capital letter y with diaeresis":"분음 부호가 있는 라틴어 대문자 Y","Latin capital letter z with acute":"양음 부호가 있는 라틴어 대문자 Z","Latin small letter z with acute":"양음 부호가 있는 라틴어 소문자 z","Latin capital letter z with dot above":"위에 점 부호가 있는 라틴어 대문자 Z","Latin small letter z with dot above":"위에 점 부호가 있는 라틴어 소문자 z","Latin capital letter z with caron":"반대 곡절 부호가 있는 라틴어 대문자 Z","Latin small letter z with caron":"반대 곡절 부호가 있는 라틴어 소문자 z","Latin small letter long s":"라틴어 소문자 긴 s","Less-than sign":"더 작음 기호","Greater-than sign":"더 큼 기호","Less-than or equal to":"더 작거나 같음","Greater-than or equal to":"더 크거나 같음","En dash":"엔 대시","Em dash":"엠 대시",Macron:"장음 부호",Overline:"윗줄","Degree sign":"도 기호","Minus sign":"빼기 기호","Plus-minus sign":"더하기 빼기 기호","Division sign":"나누기 기호","Fraction slash":"분수 슬래시","Multiplication sign":"곱하기 기호","Latin small letter f with hook":"밑이 구부러진 라틴어 소문자 f",Integral:"적분","N-ary summation":"누계합",Infinity:"무한대","Square root":"제곱근","Tilde operator":"물결표 연산자","Approximately equal to":"대략 같음","Almost equal to":"거의 같음","Not equal to":"같지 않음","Identical to":"합동","Element of":"원소","Not an element of":"원소가 아님","Contains as member":"원소로 포함","N-ary product":"중복순열","Logical and":"논리곱","Logical or":"논리합","Not sign":"부정 기호",Intersection:"교집합",Union:"합집합","Partial differential":"편미분","For all":"전칭","There exists":"존재","Empty set":"공집합",Nabla:"나블라","Asterisk operator":"별표 연산자","Proportional to":"비례",Angle:"각","Vulgar fraction one quarter":"4분의 1","Vulgar fraction one half":"2분의 1","Vulgar fraction three quarters":"4분의 3","Single left-pointing angle quotation mark":"왼쪽 홑화살괄호","Single right-pointing angle quotation mark":"오른쪽 홑화살괄호","Left-pointing double angle quotation mark":"왼쪽 겹화살괄호","Right-pointing double angle quotation mark":"오른쪽 겹화살괄호","Left single quotation mark":"왼쪽 작은따옴표","Right single quotation mark":"오른쪽 작은따옴표","Left double quotation mark":"왼쪽 큰따옴표","Right double quotation mark":"오른쪽 큰따옴표","Single low-9 quotation mark":"낮은 홑따옴표","Double low-9 quotation mark":"낮은 겹따옴표","Inverted exclamation mark":"역느낌표","Inverted question mark":"역물음표","Two dot leader":"두 점 줄임표","Horizontal ellipsis":"세 점 줄임표","Double dagger":"겹칼표","Per mille sign":"퍼 마일 기호","Per ten thousand sign":"만분율 기호","Double exclamation mark":"겹느낌표","Question exclamation mark":"물음표 느낌표","Exclamation question mark":"느낌표 물음표","Double question mark":"겹물음표","Copyright sign":"저작권 기호","Registered sign":"등록 상표 기호","Trade mark sign":"상표 기호","Section sign":"구역 기호","Paragraph sign":"단락 기호","Reversed paragraph sign":"반전된 단락 기호","Show source":"소스 표시","Show blocks":"블록 표시","Select all":"전체 선택","Disable editing":"편집 비활성화","Enable editing":"편집 활성화","Previous editable region":"이전 편집 가능한 구역","Next editable region":"다음 편집 가능한 구역","Navigate editable regions":"편집 가능한 구역 탐색","Remove Format":"서식 지우기","Page break":"페이지 나누기","media widget":"미디어 위젯","Media URL":"미디어 URL","Paste the media URL in the input.":"미디어 URL을 입력해주세요.","Tip: Paste the URL into the content to embed faster.":"팁: URL을 붙여넣으면 더 빨리 삽입할 수 있습니다.","The URL must not be empty.":"URL이 비어있을 수 없습니다.","This media URL is not supported.":"이 미디어 URL은 지원되지 않습니다.","Insert media":"미디어 삽입",Media:"미디어","Media toolbar":"미디어 툴바","Open media in new tab":"새 탭에서 미디어 열기","Media embed":"미디어 ㅅ","Numbered List":"번호 목록","Bulleted List":"불릿 목록","To-do List":"확인 목록","Bulleted list styles toolbar":"글머리 기호 목록 스타일 도구 모음","Numbered list styles toolbar":"번호 목록 스타일 도구 모음","Toggle the disc list style":"흰 원형 목록 스타일 전환","Toggle the circle list style":"검은 원형 목록 스타일 전환","Toggle the square list style":"검은 사각형 목록 스타일 전환","Toggle the decimal list style":"십진수 목록 스타일 전환","Toggle the decimal with leading zero list style":"앞에 0이 붙는 십진수 목록 스타일 전환","Toggle the lower–roman list style":"소문자 로마자 목록 스타일 전환","Toggle the upper–roman list style":"대문자 로마자 목록 스타일 전환","Toggle the lower–latin list style":"소문자 알파벳 목록 스타일 전환","Toggle the upper–latin list style":"대문자 알파벳 목록 스타일 전환",Disc:"검은 원형",Circle:"흰 원형",Square:"검은 사각형",Decimal:"십진수","Decimal with leading zero":"앞에 0이 붙는 십진수","Lower–roman":"소문자 로마자","Upper-roman":"대문자 로마자","Lower-latin":"소문자 알파벳","Upper-latin":"대문자 알파벳","List properties":"목록 속성","Start at":"시작 번호","Invalid start index value.":"잘못된 시작 인덱스 값입니다.","Start index must be greater than 0.":"시작 번호는 0보다 커야 합니다.","Reversed order":"역순","Keystrokes that can be used in a list":"목록에서 사용할 수 있는 키 입력","Increase list item indent":"목록 항목 들여쓰기 늘리기","Decrease list item indent":"목록 항목 들여쓰기 줄이기","Entering a to-do list":"할 일 목록 입력하는 중","Leaving a to-do list":"할 일 목록 남기는 중",Unlink:"링크 삭제",Link:"링크","Link URL":"링크 주소","Link URL must not be empty.":"링크 URL은 비워둘 수 없습니다.","Link image":"사진 링크","Edit link":"링크 편집","Open link in new tab":"새 탭에서 링크 열기","Open in a new tab":"새 탭에서 열기",Downloadable:"다운로드 가능","Create link":"링크 생성","Move out of a link":"링크 밖으로 이동","Link properties":"링크 속성","Displayed text":"표시 텍스트","No links available":"사용 가능한 링크 없음",Language:"언어","Choose language":"언어 선택","Remove language":"언어 제거","Increase indent":"들여쓰기 늘리기","Decrease indent":"들여쓰기 줄이기","image widget":"사진 위젯","Wrap text":"텍스트 줄 바꿈","Break text":"텍스트 분리","In line":"줄 안에","Side image":"본문 옆에 배치","Full size image":"꽉 찬 크기","Left aligned image":"왼쪽 정렬","Centered image":"가운데 정렬","Right aligned image":"오른쪽 정렬","Change image text alternative":"대체 문구 변경","Text alternative":"대체 문구","Enter image caption":"사진 설명을 입력하세요","Insert image":"사진 삽입","Replace image":"이미지 교체","Upload from computer":"컴퓨터에서 업로드","Replace from computer":"컴퓨터에서 교체","Upload image from computer":"컴퓨터에서 이미지 업로드","Image from computer":"컴퓨터에서 이미지 가져오기","From computer":"컴퓨터에서","Replace image from computer":"컴퓨터에서 이미지 교체","Upload failed":"업로드 실패","You have no image upload permissions.":"이미지를 업로드할 수 있는 권한이 없습니다.","Image toolbar":"사진 툴바","Resize image":"사진 크기 조절","Resize image to %0":"사진의 크기를 %0으로 조절","Resize image to the original size":"사진을 원래 크기로 돌려놓기","Resize image (in %0)":"이미지 크기 조정하기(%0 이내)",Original:"원본","Custom image size":"사용자 지정 이미지 크기",Custom:"사용자 지정","Image resize list":"사진 크기 목록","Insert image via URL":"URL로 이미지 삽입","Insert via URL":"URL 버튼으로 이미지 삽입","Image via URL":"URL 메뉴를 통한 이미지 삽입","Via URL":"이미지 메뉴에서 URL을 통한 이미지 삽입","Update image URL":"이미지 URL 업데이트","Caption for the image":"이미지용 캡션","Caption for image: %0":"이미지용 캡션: %0","The value must not be empty.":"값은 비워둘 수 없습니다.","The value should be a plain number.":"일반 숫자로 된 값을 입력해야 합니다.","Uploading image":"이미지 업로드 중","Image upload complete":"이미지 업로드 완료","Error during image upload":"이미지 업로드 중에 오류 발생",Image:"이미지 삽입 기능으로 삽입된 위젯","Image Resize":"이미지 크기 조절","Text Alternative":"대체 텍스트","HTML object":"HTML 오브젝트","Insert HTML":"HTML 삽입","HTML snippet":"HTML 코드 조각","Paste raw HTML here...":"원시 HTML을 여기에 붙여넣으세요...","Edit source":"소스 편집","Save changes":"변경사항 저장","No preview available":"미리보기를 이용할 수 없습니다","Empty snippet content":"빈 코드 조각 내용","Horizontal line":"수평선","Yellow marker":"노란색 마커","Green marker":"초록색 마커","Pink marker":"분홍색 마커","Blue marker":"파란색 마커","Red pen":"빨간색 펜","Green pen":"초록색 펜","Remove highlight":"강조 제거",Highlight:"강조","Text highlight toolbar":"글자 강조 툴바",Heading:"제목","Choose heading":"제목 선택","Heading 1":"제목 1","Heading 2":"제목 2","Heading 3":"제목 3","Heading 4":"제목 4","Heading 5":"제목 5","Heading 6":"제목 6","Type your title":"제목을 입력해주세요","Type or paste your content here.":"여기에 내용을 입력하거나 붙여넣으세요.","Enter fullscreen mode":"전체 화면으로 보기","Leave fullscreen mode":"전체 화면 나가기","Fullscreen mode":"전체 화면 모드","Toggle fullscreen mode":"전체 화면 모드 전환","Document outline":"문서 외곽선","Connected users":"참여 사용자","Font Size":"글자 크기",Tiny:"매우 작은",Small:"작은",Big:"큰",Huge:"매우 큰","Font Family":"글꼴 집합",Default:"기본","Font Color":"글자 색깔","Font Background Color":"글자 배경 색깔","Document colors":"문서 색깔들","Find and replace":"찾기 및 바꾸기","Find in text…":"텍스트에서 찾기...",Find:"찾기","Previous result":"이전 결과","Next result":"다음 결과",Replace:"바꾸기","Replace all":"모두 바꾸기","Match case":"대/소문자 구분","Whole words only":"전체 단어만","Replace with…":"바꿀 내용...","Text to find must not be empty.":"찾을 텍스트를 입력해야 합니다.","Tip: Find some text first in order to replace it.":"팁: 바꾸려는 텍스트를 먼저 찾으세요.","Advanced options":"고급 옵션","Find in the document":"문서에서 찾기","Insert a soft break (a <code><br></code> element)":"줄 바꿈 삽입(<code><br></code> 요소)","Insert a hard break (a new paragraph)":"단락 바꿈 삽입(새 단락)",Emoji:"이모지","Show all emoji...":"모든 이모지 표시...","Find an emoji (min. 2 characters)":"이모지 찾기(최소 2자)",'No emojis were found matching "%0".':'"%0"에 대한 이모지를 찾을 수 없습니다.',"Keep on typing to see the emoji.":"이모지를 보려면 계속 입력하세요.","The query must contain at least two characters.":"쿼리에는 2자 이상이 포함되어야 합니다.","Smileys & Expressions":"스마일 및 표정","Gestures & People":"제스처 및 사람","Animals & Nature":"동물 및 자연","Food & Drinks":"음식 및 음료","Travel & Places":"여행 및 장소",Activities:"활동",Objects:"사물",Symbols:"기호",Flags:"깃발","Select skin tone":"피부색 선택","Default skin tone":"기본 피부색","Light skin tone":"밝은 피부색","Medium Light skin tone":"약간 밝은 피부색","Medium skin tone":"중간 피부색","Medium Dark skin tone":"약간 어두운 피부색","Dark skin tone":"어두운 피부색","Emoji picker":"이모지 선택",Cancel:"취소",Clear:"지우기","Remove color":"색깔 제거","Restore default":"기본값 복원",Save:"저장","Show more items":"더보기","%0 of %1":"%0 / %1","Cannot upload file:":"파일 업로드할 수 없음: ","Rich Text Editor. Editing area: %0":"리치 텍스트 편집기. 편집 영역: %0","Insert with file manager":"파일 관리자를 사용하여 삽입","Replace with file manager":"파일 관리자를 사용하여 교체","Insert image with file manager":"파일 관리자를 사용하여 이미지 삽입","Replace image with file manager":"파일 관리자를 사용하여 이미지 교체",File:"파일","With file manager":"파일 관리 버튼으로 이미지 삽입","Toggle caption off":"캡션 지우기","Toggle caption on":"캡션 넣기","Content editing keystrokes":"콘텐츠 편집 키 입력","These keyboard shortcuts allow for quick access to content editing features.":"이러한 키보드 단축키를 사용하면 콘텐츠 편집 기능을 빠르게 사용할 수 있습니다.","User interface and content navigation keystrokes":"사용자 인터페이스 및 콘텐츠 탐색 키 입력","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"다음 키 입력을 사용하여 CKEditor 5 사용자 인터페이스를 더 효율적으로 탐색하세요.","Close contextual balloons, dropdowns, and dialogs":"상황별 풍선, 드롭다운, 대화 상자 닫기","Open the accessibility help dialog":"접근성 도움말 대화 상자 열기","Move focus between form fields (inputs, buttons, etc.)":"양식 필드(입력, 버튼 등) 간에 포커스 이동","Move focus to the menu bar, navigate between menu bars":"메뉴 표시줄로 포커스 이동, 메뉴 표시줄 탐색","Move focus to the toolbar, navigate between toolbars":"도구 모음으로 포커스 이동, 도구 모음 간 탐색","Navigate through the toolbar or menu bar":"도구 모음 또는 메뉴 표시줄 탐색","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"현재 포커스가 맞춰진 버튼을 실행합니다. 편집기 콘텐츠와 상호 작용하는 버튼을 실행하면 포커스가 다시 콘텐츠로 이동합니다.",Accept:"수락",Paragraph:"문단","Color picker":"색상 선택기","Please try a different phrase or check the spelling.":"다른 문구를 사용해 보시거나 철자를 확인해 주세요.",Source:"소스",Insert:"삽입",Update:"업데이트",Back:"뒤로","Insert code block":"코드 블럭 삽입","Plain text":"평문","Leaving %0 code snippet":"%0 코드 스니펫 남기는 중","Entering %0 code snippet":"%0 코드 스니펫 입력하는 중","Entering code snippet":"코드 스니펫 입력하는 중","Leaving code snippet":"코드 스니펫 남기는 중","Code block":"코드 블록","Copy selected content":"선택된 콘텐츠 복사","Paste content":"콘텐츠 붙여넣기","Paste content as plain text":"콘텐츠를 일반 텍스트로 붙여넣기","Insert image or file":"사진이나 파일을 삽입","Could not obtain resized image URL.":"크기가 조절된 사진의 URL을 가져오지 못했습니다.","Selecting resized image failed":"크기가 조절된 이미지 선택 실패","Could not insert image at the current position.":"현재 위치에 사진을 삽입할 수 없습니다.","Inserting image failed":"사진 삽입 실패",Bookmark:"책갈피","Edit bookmark":"책갈피 편집","Remove bookmark":"책갈피 제거","Bookmark name":"책갈피 이름","Enter the bookmark name without spaces.":"공백 없이 책갈피 이름을 입력하세요.","Bookmark must not be empty.":"책갈피 이름은 비워 둘 수 없습니다.","Bookmark name cannot contain space characters.":"책갈피 이름에는 공백이 포함될 수 없습니다.","Bookmark name already exists.":"책갈피 이름이 이미 존재합니다.","bookmark widget":"책갈피 위젯","Bookmark toolbar":"북마크 도구 모음",Bookmarks:"북마크","No bookmarks available.":"사용 가능한 북마크가 없습니다.","Scroll to bookmark":"북마크로 이동","Open file manager":"파일 관리자 열기","Cannot determine a category for the uploaded file.":"업로드된 파일의 카테고리를 확인할 수 없습니다.","Cannot access default workspace.":"기본 작업 공간에 액세스할 수 없습니다.","You have no image editing permissions.":"이미지를 편집할 수 있는 권한이 없습니다.","Edit image":"이미지 편집","Processing the edited image.":"편집한 이미지를 처리 중입니다.","Server failed to process the image.":"서버가 이미지를 처리하지 못했습니다.","Failed to determine category of edited image.":"편집한 이미지의 카테고리를 결정하지 못했습니다.","Block quote":"인용 단락",Bold:"굵게",Italic:"기울임꼴",Underline:"밑줄",Code:"코드",Strikethrough:"취소선",Subscript:"아래 첨자",Superscript:"위 첨자","Italic text":"기울인 텍스트","Move out of an inline code style":"인라인 코드 스타일 밖으로 이동","Bold text":"굵은 텍스트","Underline text":"텍스트 밑줄","Strikethrough text":"텍스트 취소선","Saving changes":"변경된 내용을 저장하고 있습니다","Revert autoformatting action":"자동 서식 작업 되돌리기","Align left":"왼쪽 정렬","Align right":"오른쪽 정렬","Align center":"가운데 정렬",Justify:"양쪽 정렬","Text alignment":"텍스트 정렬","Text alignment toolbar":"텍스트 정렬 툴바"},getPluralForm(n){return 0}}};const lB={pt:{dictionary:{"Words: %0":"Palavras: %0","Characters: %0":"Caracteres: %0","Widget toolbar":"Barra de ferramentas do widget","Insert paragraph before block":"Inserir parágrafo antes do bloco","Insert paragraph after block":"Inserir parágrafo após o bloco","Press Enter to type after or press Shift + Enter to type before the widget":"Prima Enter para escrever depois ou Shift + Enter para escrever antes do widget","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Batimentos de teclas que podem ser utilizados quando um widget é selecionado (por exemplo: imagem, tabela, etc.)","Insert a new paragraph directly after a widget":"Inserir um novo parágrafo diretamente após um widget","Insert a new paragraph directly before a widget":"Inserir um novo parágrafo diretamente antes de um widget","Move the caret to allow typing directly before a widget":"Mover o ponto de inserção para permitir escrever diretamente antes de um widget","Move the caret to allow typing directly after a widget":"Mover o ponto de inserção para permitir escrever diretamente após um widget","Move focus from an editable area back to the parent widget":"Deslocar o foco de uma área editável de volta para o widget principal","Upload in progress":"Carregamento em progresso",Undo:"Desfazer",Redo:"Refazer","Rich Text Editor":"Editor de texto avançado","Edit block":"Editar bloco","Click to edit block":"Clique para editar o bloco","Drag to move":"Arraste para mover",Next:"Seguinte",Previous:"Anterior","Editor toolbar":"Barra de ferramentas do editor","Dropdown toolbar":"Barra de ferramentas do menu pendente","Dropdown menu":"Menu suspenso",Black:"Preto","Dim grey":"Cinzento-escuro",Grey:"Cinzento","Light grey":"Cinzento-claro",White:"Branco",Red:"Vermelho",Orange:"Laranja",Yellow:"Amarelo","Light green":"Verde-claro",Green:"Verde",Aquamarine:"Verde-azulado",Turquoise:"Turquesa","Light blue":"Azul-claro",Blue:"Azul",Purple:"Roxo","Editor block content toolbar":"Barra de ferramentas de edição do conteúdo de blocos","Editor contextual toolbar":"Barra de ferramentas contextual de edição",HEX:"HEX","No results found":"Nenhum resultado encontrado","No searchable items":"Nenhum item pesquisável","Editor dialog":"Diálogo do editor",Close:"Fechar","Help Contents. To close this dialog press ESC.":"Conteúdos de ajuda. Para fechar esta caixa de diálogo, prima ESC.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Abaixo, encontra-se uma lista de atalhos de teclado que podem ser utilizados no editor.","(may require <kbd>Fn</kbd>)":"(pode exigir <kbd>Fn</kbd>)",Accessibility:"Acessibilidade","Accessibility help":"Ajuda de acessibilidade","Press %0 for help.":"Para obter ajuda, pressione %0.","Move focus in and out of an active dialog window":"Mover o foco para dentro e para fora de uma janela de diálogo ativa",MENU_BAR_MENU_FILE:"Ficheiro",MENU_BAR_MENU_EDIT:"Editar",MENU_BAR_MENU_VIEW:"Visualizar",MENU_BAR_MENU_INSERT:"Inserir",MENU_BAR_MENU_FORMAT:"Formatação",MENU_BAR_MENU_TOOLS:"Ferramentas",MENU_BAR_MENU_HELP:"Ajuda",MENU_BAR_MENU_TEXT:"Texto",MENU_BAR_MENU_FONT:"Tipo de letra","Editor menu bar":"Barra de menu do editor",'Please enter a valid color (e.g. "ff0000").':'Introduza uma cor válida (por ex. "ff0000").',"Insert table":"Inserir tabela","Header column":"Coluna de cabeçalho","Insert column left":"Inserir coluna à esquerda","Insert column right":"Inserir coluna à direita","Delete column":"Eliminar coluna","Select column":"Selecionar coluna",Column:"Coluna","Header row":"Linha de cabeçalho","Insert row below":"Inserir linha abaixo","Insert row above":"Inserir linha acima","Delete row":"Eliminar linha","Select row":"Selecionar linha",Row:"Linha","Merge cell up":"Unir célula acima","Merge cell right":"Unir célula à direita","Merge cell down":"Unir célula abaixo","Merge cell left":"Unir célula à esquerda","Split cell vertically":"Dividir célula verticalmente","Split cell horizontally":"Dividir célula horizontalmente","Merge cells":"Fundir células","Table toolbar":"Barra de ferramentas da tabela","Table properties":"Propriedades da tabela","Cell properties":"Propriedades da célula",Border:"Borda",Style:"Estilo",Width:"Largura",Height:"Altura",Color:"Cor",Background:"Fundo",Padding:"Espaçamento",Dimensions:"Dimensões","Table cell text alignment":"Alinhamento de texto das células da tabela",Alignment:"Alinhamento","Horizontal text alignment toolbar":"Barra de ferramentas do alinhamento horizontal de texto","Vertical text alignment toolbar":"Barra de ferramentas do alinhamento vertical de texto","Table alignment toolbar":"Barra de ferramentas do alinhamento da tabela",None:"Nenhum",Solid:"Sólido",Dotted:"Pontilhado",Dashed:"Tracejado",Double:"Duplo",Groove:"Sulcos",Ridge:"Rebordo",Inset:"Interior",Outset:"Exterior","Align cell text to the left":"Alinhar texto da célula à esquerda","Align cell text to the center":"Alinhar texto da célula ao centro","Align cell text to the right":"Alinhar texto da célula à direita","Justify cell text":"Justificar texto da célula","Align cell text to the top":"Alinhar texto da célula no topo","Align cell text to the middle":"Alinhar texto da célula ao meio","Align cell text to the bottom":"Alinhar texto da célula no fundo","Align table to the left":"Alinhar tabela à esquerda","Center table":"Centrar tabela","Align table to the right":"Alinhar tabela à direita",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'A cor é inválida. Tente "#FF0000" ou "rgb(255,0,0)" ou "vermelho".','The value is invalid. Try "10px" or "2em" or simply "2".':'O valor é inválido. Tente "10px" ou "2em" ou simplesmente "2".',"Enter table caption":"Introduzir legenda da tabela","Keystrokes that can be used in a table cell":"Batimentos de teclas que podem ser utilizados numa célula de tabela","Move the selection to the next cell":"Mover a seleção para a célula seguinte","Move the selection to the previous cell":"Mover a seleção para a célula anterior","Insert a new table row (when in the last cell of a table)":"Inserir uma nova linha de tabela (quando o utilizador estiver na última célula de uma tabela)","Navigate through the table":"Navegar pela tabela",Table:"Tabela","Insert table layout":"Inserir esquema da tabela","Table layout":"Esquema da tabela","Layout table":"Tabela de esquemas","Content table":"Tabela de conteúdo","Choose table type":"Escolher tipo de tabela","Table type":"Tipo de tabela","Table type options":"Opções tipo de tabela",Styles:"Estilos","Multiple styles":"Vários estilos","Block styles":"Estilos de blocos","Text styles":"Estilos de texto","Special characters":"Carateres especiais",Category:"Categoria",All:"Todos",Arrows:"Setas",Currency:"Moeda",Latin:"Latinos",Mathematical:"Matemáticos",Text:"Texto","leftwards simple arrow":"seta simples para a esquerda","rightwards simple arrow":"seta simples para a direita","upwards simple arrow":"seta simples para cima","downwards simple arrow":"seta simples para baixo","leftwards double arrow":"seta dupla para a esquerda","rightwards double arrow":"seta dupla para a direita","upwards double arrow":"seta dupla para cima","downwards double arrow":"seta dupla para baixo","leftwards dashed arrow":"seta tracejada para a esquerda","rightwards dashed arrow":"seta tracejada para a direita","upwards dashed arrow":"seta tracejada para cima","downwards dashed arrow":"seta tracejada para baixo","leftwards arrow to bar":"seta para a esquerda contra uma barra","rightwards arrow to bar":"seta para a direita contra uma barra","upwards arrow to bar":"seta para cima contra uma barra","downwards arrow to bar":"seta para baixo contra uma barra","up down arrow with base":"seta bidirecional vertical com base","back with leftwards arrow above":'"back" com seta para a esquerda em cima',"end with leftwards arrow above":'"end" com seta para a esquerda em cima',"on with exclamation mark with left right arrow above":'"on" com sinal de exclamação com seta para a direita e para a esquerda em cima',"soon with rightwards arrow above":'"soon" com seta para a direita em cima',"top with upwards arrow above":'"Top" com seta para cima em cima',"Dollar sign":"Sinal de Dólar","Euro sign":"Sinal de Euro","Yen sign":"Sinal de iene","Pound sign":"Sinal de libra","Cent sign":"Sinal de cêntimo","Euro-currency sign":"Sinal monetário do euro","Colon sign":"Sinal de colombo","Cruzeiro sign":"Sinal de cruzeiro","French franc sign":"Sinal de franco francês","Lira sign":"Sinal de lira","Currency sign":"Sinal monetário","Bitcoin sign":"Sinal de bitcoin","Mill sign":"Sinal de mill","Naira sign":"Sinal de naira","Peseta sign":"Sinal de peseta","Rupee sign":"Sinal de rupia","Won sign":"Sinal de won","New sheqel sign":"Sinal de novo sheqel","Dong sign":"Sinal de dong","Kip sign":"Sinal de kip","Tugrik sign":"Sinal de tugrique","Drachma sign":"Sinal de dracma","German penny sign":"Sinal de fénigue alemão","Peso sign":"Sinal de peso","Guarani sign":"Sinal de guarani","Austral sign":"Sinal de austral","Hryvnia sign":"Sinal de grívnia","Cedi sign":"Sinal de cedi","Livre tournois sign":"Sinal de libra de tours","Spesmilo sign":"Sinal de spesmilo","Tenge sign":"Sinal de tengue","Indian rupee sign":"Sinal de rupia indiana","Turkish lira sign":"Sinal de lira turca","Nordic mark sign":"Sinal de marca nórdica","Manat sign":"Sinal de manat","Ruble sign":"Sinal de rublo","Latin capital letter a with macron":"Latim - letra maiúscula a com mácron","Latin small letter a with macron":"Latim - letra minúscula a com mácron","Latin capital letter a with breve":"Latim - letra maiúscula a com breve","Latin small letter a with breve":"Latim - letra minúscula a com breve","Latin capital letter a with ogonek":"Latim - letra maiúscula a com ogonek","Latin small letter a with ogonek":"Latim - letra minúscula a com ogonek","Latin capital letter c with acute":"Latim - letra maiúscula c com acento agudo","Latin small letter c with acute":"Latim - letra minúscula c com acento agudo","Latin capital letter c with circumflex":"Latim - letra maiúscula c com acento circunflexo","Latin small letter c with circumflex":"Latim - letra minúscula c com acento circunflexo","Latin capital letter c with dot above":"Latim - letra maiúscula c com um ponto por cima","Latin small letter c with dot above":"Latim - letra minúscula c com um ponto por cima","Latin capital letter c with caron":"Latim - letra maiúscula c com cáron","Latin small letter c with caron":"Latim - letra minúscula c com cáron","Latin capital letter d with caron":"Latim - letra maiúscula d com cáron","Latin small letter d with caron":"Latim - letra minúscula d com cáron","Latin capital letter d with stroke":"Latim - letra maiúscula d cortada por um traço","Latin small letter d with stroke":"Latim - letra minúscula d cortada por um traço","Latin capital letter e with macron":"Latim - letra maiúscula e com mácron","Latin small letter e with macron":"Latim - letra minúscula e com mácron","Latin capital letter e with breve":"Latim - letra maiúscula e com breve","Latin small letter e with breve":"Latim - letra minúscula e com breve","Latin capital letter e with dot above":"Latim - letra maiúscula e com um ponto por cima","Latin small letter e with dot above":"Latim - letra minúscula e com um ponto por cima","Latin capital letter e with ogonek":"Latim - letra maiúscula e com ogonek","Latin small letter e with ogonek":"Latim - letra minúscula e com ogonek","Latin capital letter e with caron":"Latim - letra maiúscula e com cáron","Latin small letter e with caron":"Latim - letra minúscula e com cáron","Latin capital letter g with circumflex":"Latim - letra maiúscula g com acento circunflexo","Latin small letter g with circumflex":"Latim - letra minúscula g com acento circunflexo","Latin capital letter g with breve":"Latim - letra maiúscula g com breve","Latin small letter g with breve":"Latim - letra minúscula g com breve","Latin capital letter g with dot above":"Latim - letra maiúscula g com um ponto por cima","Latin small letter g with dot above":"Latim - letra minúscula g com um ponto por cima","Latin capital letter g with cedilla":"Latim - letra maiúscula g com cedilha","Latin small letter g with cedilla":"Latim - letra minúscula g com cedilha","Latin capital letter h with circumflex":"Latim - letra maiúscula h com acento circunflexo","Latin small letter h with circumflex":"Latim - letra minúscula h com acento circunflexo","Latin capital letter h with stroke":"Latim - letra maiúscula h cortada por um traço","Latin small letter h with stroke":"Latim - letra minúscula h cortada por um traço","Latin capital letter i with tilde":"Latim - letra maiúscula i com til","Latin small letter i with tilde":"Latim - letra minúscula i com til","Latin capital letter i with macron":"Latim - letra maiúscula i com mácron","Latin small letter i with macron":"Latim - letra minúscula i com mácron","Latin capital letter i with breve":"Latim - letra maiúscula i com breve","Latin small letter i with breve":"Latim - letra minúscula i com breve","Latin capital letter i with ogonek":"Latim - letra maiúscula i com ogonek","Latin small letter i with ogonek":"Latim - letra minúscula i com ogonek","Latin capital letter i with dot above":"Latim - letra maiúscula i com um ponto por cima","Latin small letter dotless i":"Latim - letra minúscula i, sem ponto","Latin capital ligature ij":"Latim - digrama das letras maiúsculas ligadas ij","Latin small ligature ij":"Latim - digrama das letras minúsculas ligadas ij","Latin capital letter j with circumflex":"Latim - letra maiúscula j com acento circunflexo","Latin small letter j with circumflex":"Latim - letra minúscula j com acento circunflexo","Latin capital letter k with cedilla":"Latim - letra maiúscula k com cedilha","Latin small letter k with cedilla":"Latim - letra minúscula k com cedilha","Latin small letter kra":"Latim - letra minúscula kra (pequeno k)","Latin capital letter l with acute":"Latim - letra maiúscula l com acento agudo","Latin small letter l with acute":"Latim - letra minúscula l com acento agudo","Latin capital letter l with cedilla":"Latim - letra maiúscula l com cedilha","Latin small letter l with cedilla":"Latim - letra minúscula l com cedilha","Latin capital letter l with caron":"Latim - letra maiúscula l com cáron","Latin small letter l with caron":"Latim - letra minúscula l com cáron","Latin capital letter l with middle dot":"Latim - letra maiúscula l com ponto central","Latin small letter l with middle dot":"Latim - letra minúscula l com ponto central","Latin capital letter l with stroke":"Latim - letra maiúscula l cortada por um traço","Latin small letter l with stroke":"Latim - letra minúscula l cortada por um traço","Latin capital letter n with acute":"Latim - letra maiúscula n com acento agudo","Latin small letter n with acute":"Latim - letra minúscula n com acento agudo","Latin capital letter n with cedilla":"Latim - letra maiúscula n com cedilha","Latin small letter n with cedilla":"Latim - letra minúscula n com cedilha","Latin capital letter n with caron":"Latim - letra maiúscula n com cáron","Latin small letter n with caron":"Latim - letra minúscula n com cáron","Latin small letter n preceded by apostrophe":"Latim - letra minúscula n precedida por um apóstrofo","Latin capital letter eng":"Latim - letra maiúscula eng (fonema velar nasal)","Latin small letter eng":"Latim - letra minúscula eng (fonema velar nasal)","Latin capital letter o with macron":"Latim - letra maiúscula o com mácron","Latin small letter o with macron":"Latim - letra minúscula o com mácron","Latin capital letter o with breve":"Latim - letra maiúscula o com breve","Latin small letter o with breve":"Latim - letra minúscula o com breve","Latin capital letter o with double acute":"Latim - letra maiúscula o com acento agudo duplo","Latin small letter o with double acute":"Latim - letra minúscula o com acento agudo duplo","Latin capital ligature oe":"Latim - digrama das letras maiúsculas ligadas oe","Latin small ligature oe":"Latim - digrama das letras minúsculas ligadas oe","Latin capital letter r with acute":"Latim - letra maiúscula r com acento agudo","Latin small letter r with acute":"Latim - letra minúscula r com acento agudo","Latin capital letter r with cedilla":"Latim - letra maiúscula r com cedilha","Latin small letter r with cedilla":"Latim - letra minúscula r com cedilha","Latin capital letter r with caron":"Latim - letra maiúscula r com cáron","Latin small letter r with caron":"Latim - letra minúscula r com cáron","Latin capital letter s with acute":"Latim - letra maiúscula s com acento agudo","Latin small letter s with acute":"Latim - letra minúscula s com acento agudo","Latin capital letter s with circumflex":"Latim - letra maiúscula s com acento circunflexo","Latin small letter s with circumflex":"Latim - letra minúscula s com acento circunflexo","Latin capital letter s with cedilla":"Latim - letra maiúscula s com cedilha","Latin small letter s with cedilla":"Latim - letra minúscula s com cedilha","Latin capital letter s with caron":"Latim - letra maiúscula s com cáron","Latin small letter s with caron":"Latim - letra minúscula s com cáron","Latin capital letter t with cedilla":"Latim - letra maiúscula t com cedilha","Latin small letter t with cedilla":"Latim - letra minúscula t com cedilha","Latin capital letter t with caron":"Latim - letra maiúscula t com cáron","Latin small letter t with caron":"Latim - letra minúscula t com cáron","Latin capital letter t with stroke":"Latim - letra maiúscula t cortada por um traço","Latin small letter t with stroke":"Latim - letra minúscula t cortada por um traço","Latin capital letter u with tilde":"Latim - letra maiúscula u com til","Latin small letter u with tilde":"Latim - letra minúscula u com til","Latin capital letter u with macron":"Latim - letra maiúscula u com mácron","Latin small letter u with macron":"Latim - letra minúscula u com mácron","Latin capital letter u with breve":"Latim - letra maiúscula u com breve","Latin small letter u with breve":"Latim - letra minúscula u com breve","Latin capital letter u with ring above":"Latim - letra maiúscula u com círculo por cima","Latin small letter u with ring above":"Latim - letra minúscula u com círculo por cima","Latin capital letter u with double acute":"Latim - letra maiúscula u com acento agudo duplo","Latin small letter u with double acute":"Latim - letra minúscula u com acento agudo duplo","Latin capital letter u with ogonek":"Latim - letra maiúscula u com ogonek","Latin small letter u with ogonek":"Latim - letra minúscula u com ogonek","Latin capital letter w with circumflex":"Latim - letra maiúscula w com acento circunflexo","Latin small letter w with circumflex":"Latim - letra minúscula w com acento circunflexo","Latin capital letter y with circumflex":"Latim - letra maiúscula y com acento circunflexo","Latin small letter y with circumflex":"Latim - letra minúscula y com acento circunflexo","Latin capital letter y with diaeresis":"Latim - letra maiúscula y com trema","Latin capital letter z with acute":"Latim - letra maiúscula z com acento agudo","Latin small letter z with acute":"Latim - letra minúscula z com acento agudo","Latin capital letter z with dot above":"Latim - letra maiúscula z com um ponto por cima","Latin small letter z with dot above":"Latim - letra minúscula z com um ponto por cima","Latin capital letter z with caron":"Latim - letra maiúscula z com cáron","Latin small letter z with caron":"Latim - letra minúscula z com cáron","Latin small letter long s":"Latim - s prolongado (símbolo do fonema fricativo alveolar surdo)","Less-than sign":"Sinal de menor","Greater-than sign":"Sinal de maior","Less-than or equal to":"Menor que ou igual a","Greater-than or equal to":"Maior que ou igual a","En dash":"Traço","Em dash":"Travessão",Macron:"Mácron",Overline:"Linha sobreposta","Degree sign":"Sinal de grau","Minus sign":"Sinal de subtração","Plus-minus sign":"Sinal de adição-subtração","Division sign":"Sinal de divisão","Fraction slash":"Barra de fração","Multiplication sign":"Sinal de multiplicação","Latin small letter f with hook":"Latim - letra minúscula f com gancho",Integral:"Inteiro","N-ary summation":"N-ésimo somatório",Infinity:"Infinito","Square root":"Raiz quadrada","Tilde operator":"Operador de til","Approximately equal to":"Aproximadamente igual a","Almost equal to":"Quase igual a","Not equal to":"Diferente de","Identical to":"Idêntico a","Element of":"Elemento de","Not an element of":"Não é um elemento de","Contains as member":"Contém como membro","N-ary product":"N-ésimo produto","Logical and":"E lógico","Logical or":"Ou lógico","Not sign":"Sinal de negação",Intersection:"Interseção",Union:"União","Partial differential":"Diferencial parcial","For all":"Para todo","There exists":"Existe","Empty set":"Conjunto vazio",Nabla:"Nabla","Asterisk operator":"Operador asterisco","Proportional to":"Proporcional a",Angle:"Ângulo","Vulgar fraction one quarter":"Fração comum - um quarto","Vulgar fraction one half":"Fração comum - um meio","Vulgar fraction three quarters":"Fração comum - três quartos","Single left-pointing angle quotation mark":"Plica esquerda em ângulo","Single right-pointing angle quotation mark":"Plica direita em ângulo","Left-pointing double angle quotation mark":"Aspas esquerdas em ângulo","Right-pointing double angle quotation mark":"Aspas direitas em ângulo","Left single quotation mark":"Plica esquerda","Right single quotation mark":"Plica direita","Left double quotation mark":"Aspas esquerdas","Right double quotation mark":"Aspas direitas","Single low-9 quotation mark":"Plica curva inferior","Double low-9 quotation mark":"Aspas curvas inferiores","Inverted exclamation mark":"Ponto de exclamação invertido","Inverted question mark":"Ponto de interrogação invertido","Two dot leader":"Dois pontos de seguimento","Horizontal ellipsis":"Reticências horizontais","Double dagger":"Óbelo duplo","Per mille sign":"Sinal de permilagem","Per ten thousand sign":"Razão de um para dez mil","Double exclamation mark":"Ponto de exclamação duplo","Question exclamation mark":"Sinal de exclamação interrogativa","Exclamation question mark":"Sinal de interrogação exclamativa","Double question mark":"Duplo ponto de interrogação","Copyright sign":"Sinal de copyright","Registered sign":"Sinal de registado","Trade mark sign":"Sinal de marca comercial","Section sign":"Sinal de secção","Paragraph sign":"Sinal de parágrafo","Reversed paragraph sign":"Sinal de parágrafo invertido","Show source":"Mostrar fonte","Show blocks":"Mostrar blocos","Select all":"Selecionar todos","Disable editing":"Desativar edição","Enable editing":"Ativar edição","Previous editable region":"Região editável anterior","Next editable region":"Região editável seguinte","Navigate editable regions":"Navegar regiões editáveis","Remove Format":"Remover formatação","Page break":"Quebra de página","media widget":"Miniaplicação de media","Media URL":"URL de media","Paste the media URL in the input.":"Cole o URL de média no input.","Tip: Paste the URL into the content to embed faster.":"Dica: Cole o URL no conteúdo para incorporar mais rapidamente.","The URL must not be empty.":"O URL não pode ficar vazio.","This media URL is not supported.":"Este URL de media não é suportado.","Insert media":"Inserir media",Media:"Multimédia","Media toolbar":"Barra de ferramentas de media","Open media in new tab":"Abrir ficheiro multimédia em novo separador","Media embed":"Incorporar média","Numbered List":"Lista ordenada","Bulleted List":"Lista não ordenada","To-do List":"Lista de tarefas","Bulleted list styles toolbar":"Barra de ferramentas de estilos de lista de itens","Numbered list styles toolbar":"Barra de ferramentas de estilos de lista numerada","Toggle the disc list style":"Alternar para estilo de lista de discos","Toggle the circle list style":"Alternar para estilo de lista de círculos","Toggle the square list style":"Alternar para estilo de lista de quadrados","Toggle the decimal list style":"Alternar para estilo de lista decimal","Toggle the decimal with leading zero list style":"Alternar para estilo de lista decimal com zero inicial","Toggle the lower–roman list style":"Alternar para estilo de lista de números romanos minúsculos","Toggle the upper–roman list style":"Alternar para estilo de lista de números romanos maiúsculos","Toggle the lower–latin list style":"Alternar para estilo de lista de latim minúsculo","Toggle the upper–latin list style":"Alternar para estilo de lista de latim maiúsculo",Disc:"Disco",Circle:"Círculo",Square:"Quadrado",Decimal:"Decimal","Decimal with leading zero":"Decimal com zero inicial","Lower–roman":"Romano minúsculo","Upper-roman":"Romano maiúsculo","Lower-latin":"Latim minúsculo","Upper-latin":"Latim maiúsculo","List properties":"Propriedades da lista","Start at":"Começa em","Invalid start index value.":"Valor de índice inicial inválido.","Start index must be greater than 0.":"O índice inicial tem de ser superior a 0.","Reversed order":"Ordem inversa","Keystrokes that can be used in a list":"Batimentos de teclas que podem ser utilizados numa lista","Increase list item indent":"Aumentar o avanço de um item de lista","Decrease list item indent":"Diminuir o avanço de um item de lista","Entering a to-do list":"Introdução de uma lista de afazeres","Leaving a to-do list":"A sair de uma lista de afazeres",Unlink:"Desligar",Link:"Hiperligação","Link URL":"URL da ligação","Link URL must not be empty.":"O URL da ligação não pode estar em branco.","Link image":"Imagem da hiperligação","Edit link":"Editar hiperligação","Open link in new tab":"Abrir hiperligação num novo separador","Open in a new tab":"Abrir num novo separador",Downloadable:"Descarregável","Create link":"Criar ligação","Move out of a link":"Sair de uma ligação","Link properties":"Propriedades de ligação","Displayed text":"Texto exibido","No links available":"Sem ligações disponíveis",Language:"Idioma","Choose language":"Escolher idioma","Remove language":"Remover idioma","Increase indent":"Aumentar indentação","Decrease indent":"Diminuir indentação","image widget":"módulo de imagem","Wrap text":"Envolver texto","Break text":"Quebrar texto","In line":"Em linha","Side image":"Imagem lateral","Full size image":"Imagem em tamanho completo","Left aligned image":"Imagem alinhada à esquerda","Centered image":"Imagem centrada","Right aligned image":"Imagem alinhada à direita","Change image text alternative":"Alterar texto alternativo da imagem","Text alternative":"Texto alternativo","Enter image caption":"Indicar legenda da imagem","Insert image":"Inserir imagem","Replace image":"Substituir imagem","Upload from computer":"Carregar a partir do computador","Replace from computer":"Substituir a partir do computador","Upload image from computer":"Carregar imagem a partir do computador","Image from computer":"Imagem a partir do computador","From computer":"Do computador","Replace image from computer":"Substituir imagem a partir do computador","Upload failed":"Falha ao carregar","You have no image upload permissions.":"Não tem permissões para carregar imagens.","Image toolbar":"Barra de ferramentas de imagem","Resize image":"Redimensionar imagem","Resize image to %0":"Redimensionar imagem para %0","Resize image to the original size":"Redimensionar imagem para tamanho original","Resize image (in %0)":"Redimensionar imagem (em %0)",Original:"Original","Custom image size":"Personalizar o tamanho da imagem",Custom:"Personalizar","Image resize list":"Lista de redimensionamento de imagem","Insert image via URL":"Inserir imagem através de URL","Insert via URL":"Inserir através de endereço URL","Image via URL":"Imagem através de endereço URL","Via URL":"Através de endereço URL","Update image URL":"Atualizar URL da imagem","Caption for the image":"Legenda da imagem","Caption for image: %0":"Legenda da imagem: %0","The value must not be empty.":"O valor não pode estar em branco.","The value should be a plain number.":"O valor deve ser um número inteiro.","Uploading image":"A carregar imagem","Image upload complete":"Carregamento da imagem concluído","Error during image upload":"Erro durante o carregamento da imagem",Image:"Imagem","Image Resize":"Redimensionar imagem","Text Alternative":"Alternativa de texto","HTML object":"Objeto HTML","Insert HTML":"Inserir HTML","HTML snippet":"Fragmento de HTML","Paste raw HTML here...":"Colar aqui HTML em bruto...","Edit source":"Editar fonte","Save changes":"Guardar alterações","No preview available":"Pré-visualização indisponível","Empty snippet content":"Conteúdo de fragmento vazio","Horizontal line":"Linha horizontal","Yellow marker":"Marcador amarelo","Green marker":"Marcador verde","Pink marker":"Marcador rosa","Blue marker":"Marcador azul","Red pen":"Caneta vermelha","Green pen":"Caneta verde","Remove highlight":"Remover realce",Highlight:"Realçar","Text highlight toolbar":"Barra de ferramentas de realces de texto",Heading:"Cabeçalho","Choose heading":"Escolher cabeçalho","Heading 1":"Cabeçalho 1","Heading 2":"Cabeçalho 2","Heading 3":"Cabeçalho 3","Heading 4":"Cabeçalho 4","Heading 5":"Cabeçalho 5","Heading 6":"Cabeçalho 6","Type your title":"Introduza o seu título","Type or paste your content here.":"Digite ou cole o seu conteúdo aqui.","Enter fullscreen mode":"Entrar em modo de ecrã inteiro","Leave fullscreen mode":"Sair de modo de ecrã inteiro","Fullscreen mode":"Modo de ecrã inteiro","Toggle fullscreen mode":"Alternar modo de ecrã inteiro","Document outline":"Esboço do documento","Connected users":"Utilizadores ligados","Font Size":"Tamanho da fonte",Tiny:"Mínima",Small:"Pequena",Big:"Grande",Huge:"Enorme","Font Family":"Família de Fontes",Default:"Padrão","Font Color":"Cor da Fonte","Font Background Color":"Cor de Fundo da Fonte","Document colors":"Cores do documento","Find and replace":"Encontrar e substituir","Find in text…":"Encontrar no texto...",Find:"Encontrar","Previous result":"Resultado anterior","Next result":"Resultado seguinte",Replace:"Substituir","Replace all":"Substituir todos","Match case":"Corresponder maiúsculas/minúsculas","Whole words only":"Apenas palavras inteiras","Replace with…":"Substituir por...","Text to find must not be empty.":"O texto a pesquisar não pode estar vazio.","Tip: Find some text first in order to replace it.":"Dica: Encontre algum texto primeiro para poder substituí-lo.","Advanced options":"Opções avançadas","Find in the document":"Localizar no documento","Insert a soft break (a <code><br></code> element)":"Inserir uma quebra suave (um elemento <code><br></code>)","Insert a hard break (a new paragraph)":"Inserir uma quebra brusca (um novo parágrafo)",Emoji:"Emoji","Show all emoji...":"Mostrar todos os emojis...","Find an emoji (min. 2 characters)":"Encontrar um emoji (mín. 2 carateres)",'No emojis were found matching "%0".':'Não foi encontrado nenhum emoji que corresponda a "%0".',"Keep on typing to see the emoji.":"Continue a escrever para ver o emoji.","The query must contain at least two characters.":"A consulta deve conter, pelo menos, dois carateres.","Smileys & Expressions":"Smiley e expressões","Gestures & People":"Gestos e pessoas","Animals & Nature":"Animais e natureza","Food & Drinks":"Comida e bebidas","Travel & Places":"Viagens e lugares",Activities:"Atividades",Objects:"Objetos",Symbols:"Símbolos",Flags:"Bandeiras","Select skin tone":"Selecionar tom de pele","Default skin tone":"Tom de pele padrão","Light skin tone":"Tom de pele claro","Medium Light skin tone":"Tom de pele médio claro","Medium skin tone":"Tom de pele médio","Medium Dark skin tone":"Tom de pele médio escuro","Dark skin tone":"Tom de pele escuro","Emoji picker":"Seletor de emojis",Cancel:"Cancelar",Clear:"Limpar","Remove color":"Remover cor","Restore default":"Restaurar predefinição",Save:"Guardar","Show more items":"Mostrar mais itens","%0 of %1":"%0 de %1","Cannot upload file:":"Não foi possível carregar o ficheiro:","Rich Text Editor. Editing area: %0":"Editor de Texto Formatado. Área de edição: %0","Insert with file manager":"Inserir com o gestor de ficheiros","Replace with file manager":"Substituir com o gestor de ficheiros","Insert image with file manager":"Inserir imagem com o gestor de ficheiros","Replace image with file manager":"Substituir imagem com o gestor de ficheiros",File:"Ficheiro","With file manager":"Com o gestor de ficheiros","Toggle caption off":"Desativar legenda","Toggle caption on":"Ativar legenda","Content editing keystrokes":"Batimentos de teclas para editar o conteúdo","These keyboard shortcuts allow for quick access to content editing features.":"Estes atalhos de teclado permitem aceder rapidamente às funcionalidades de edição de conteúdo.","User interface and content navigation keystrokes":"Batimentos de teclas para navegar pela interface de utilizador e pelo conteúdo","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Para navegar de forma mais eficiente pela interface de utilizador do CKEditor 5, utilize os seguintes batimentos de teclas.","Close contextual balloons, dropdowns, and dialogs":"Fechar balões contextuais, menus suspensos e caixas de diálogo","Open the accessibility help dialog":"Abrir a caixa de diálogo de ajuda de acessibilidade","Move focus between form fields (inputs, buttons, etc.)":"Mover o foco entre os campos do formulário (entradas, botões, etc.)","Move focus to the menu bar, navigate between menu bars":"Mover o foco para a barra de menu, navegar entre as barras de menu","Move focus to the toolbar, navigate between toolbars":"Mover o foco para a barra de ferramentas, navegar entre barras de ferramentas","Navigate through the toolbar or menu bar":"Navegar pela barra de ferramentas ou pela barra de menu","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Executar o botão atualmente em foco. A execução de botões que interagem com o conteúdo do editor coloca novamente o foco sobre o conteúdo.",Accept:"Aceitar",Paragraph:"Parágrafo","Color picker":"Seletor de cor","Please try a different phrase or check the spelling.":"Tente uma expressão diferente ou verifique a ortografia.",Source:"Fonte",Insert:"Inserir",Update:"Atualizar",Back:"Voltar","Insert code block":"Inserir bloco de citação","Plain text":"Texto simples","Leaving %0 code snippet":"A sair do fragmento de código %0","Entering %0 code snippet":"A introduzir o fragmento de código %0","Entering code snippet":"A introduzir fragmento de código","Leaving code snippet":"A sair do fragmento de código","Code block":"Bloco de código","Copy selected content":"Copiar o conteúdo selecionado","Paste content":"Colar o conteúdo","Paste content as plain text":"Colar o conteúdo como texto sem formatação","Insert image or file":"Inserir imagem ou ficheiro","Could not obtain resized image URL.":"Não é possível obter o URL da imagem redimensionada.","Selecting resized image failed":"A seleção da imagem redimensionada falhou","Could not insert image at the current position.":"Não é possível inserir a imagem na posição atual.","Inserting image failed":"A inserção da imagem falhou",Bookmark:"Marcador","Edit bookmark":"Editar marcador","Remove bookmark":"Remover marcador","Bookmark name":"Nome do marcador","Enter the bookmark name without spaces.":"Introduza o nome do marcador sem espaços.","Bookmark must not be empty.":"O marcador não deve estar vazio.","Bookmark name cannot contain space characters.":"O nome do marcador não pode conter caracteres de espaço.","Bookmark name already exists.":"O nome do marcador já existe.","bookmark widget":"widget de marcador","Bookmark toolbar":"Barra de marcadores",Bookmarks:"Marcadores","No bookmarks available.":"Sem marcadores disponíveis.","Scroll to bookmark":"Ir para o marcador","Open file manager":"Abrir gestor de ficheiros","Cannot determine a category for the uploaded file.":"Não é possível determinar a categoria do ficheiro carregado.","Cannot access default workspace.":"Não é possível aceder ao espaço de trabalho padrão.","You have no image editing permissions.":"Não tem permissões para editar imagens.","Edit image":"Editar imagem","Processing the edited image.":"A processar a imagem editada.","Server failed to process the image.":"O servidor não conseguiu processar a imagem.","Failed to determine category of edited image.":"Não foi possível determinar a categoria da imagem editada.","Block quote":"Bloco de citação",Bold:"Negrito",Italic:"Itálico",Underline:"Sublinhado",Code:"Código",Strikethrough:"Rasurar",Subscript:"Subscrito",Superscript:"Sobrescrito","Italic text":"Texto em itálico","Move out of an inline code style":"Sair de um estilo de código inline","Bold text":"Texto em negrito","Underline text":"Sublinhar texto","Strikethrough text":"Texto rasurado","Saving changes":"A guardar alterações","Revert autoformatting action":"Reverter ação de formatação automática","Align left":"Alinhar à esquerda","Align right":"Alinhar à direita","Align center":"Alinhar ao centro",Justify:"Justificar","Text alignment":"Alinhamento de texto","Text alignment toolbar":"Barra de alinhamento de texto"},getPluralForm(n){return n!=1}}};const cB={ru:{dictionary:{"Words: %0":"Слов: %0","Characters: %0":"Символов: %0","Widget toolbar":"Панель инструментов виджета","Insert paragraph before block":"Вставить параграф перед блоком","Insert paragraph after block":"Вставить параграф после блока","Press Enter to type after or press Shift + Enter to type before the widget":"Нажмите Enter для ввода текста после виджета или нажмите Shift + Enter для ввода текста перед виджетом","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Нажатия клавиш, которые можно использовать при выборе виджета (например: изображение, таблица и т. д.)","Insert a new paragraph directly after a widget":"Вставить новый абзац непосредственно после виджета.","Insert a new paragraph directly before a widget":"Вставить новый абзац непосредственно перед виджетом.","Move the caret to allow typing directly before a widget":"Переместите курсор, чтобы можно было вводить текст непосредственно перед виджетом.","Move the caret to allow typing directly after a widget":"Переместить курсор, чтобы можно было вводить текст сразу после виджета.","Move focus from an editable area back to the parent widget":"Переместите фокус с редактируемой области обратно на родительский виджет","Upload in progress":"Идёт загрузка",Undo:"Отменить",Redo:"Повторить","Rich Text Editor":"Редактор","Edit block":"Редактировать блок","Click to edit block":"Нажмите, чтобы редактировать блок","Drag to move":"Перетащить",Next:"Следующий",Previous:"Предыдущий","Editor toolbar":"Панель инструментов редактора","Dropdown toolbar":"Выпадающая панель инструментов","Dropdown menu":"Раскрывающееся меню",Black:"Чёрный","Dim grey":"Тёмно-серый",Grey:"Серый","Light grey":"Светло-серый",White:"Белый",Red:"Красный",Orange:"Оранжевый",Yellow:"Жёлтый","Light green":"Салатовый",Green:"Зелёный",Aquamarine:"Аквамариновый",Turquoise:"Бирюзовый","Light blue":"Голубой",Blue:"Синий",Purple:"Фиолетовый","Editor block content toolbar":"Панель инструментов редактора","Editor contextual toolbar":"Контекстуальная панель инструментов редактора",HEX:"HEX","No results found":"Результаты не найдены","No searchable items":"Нет элементов для поиска","Editor dialog":"Диалоговое окно редактора",Close:"Закрыть","Help Contents. To close this dialog press ESC.":"Содержание справки. Чтобы закрыть это диалоговое окно, нажмите ESC.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Ниже вы можете найти список сочетаний клавиш, которые можно использовать в редакторе.","(may require <kbd>Fn</kbd>)":"(может требовать <kbd>Fn</kbd>)",Accessibility:"Доступность","Accessibility help":"Помощь по специальным возможностям","Press %0 for help.":"Нажмите %0 для получения помощи.","Move focus in and out of an active dialog window":"Переместить фокус в активное диалоговое окно и обратно.",MENU_BAR_MENU_FILE:"Файл",MENU_BAR_MENU_EDIT:"Редактировать",MENU_BAR_MENU_VIEW:"Посмотреть",MENU_BAR_MENU_INSERT:"Вставить",MENU_BAR_MENU_FORMAT:"Формат",MENU_BAR_MENU_TOOLS:"Инструменты",MENU_BAR_MENU_HELP:"Помощь",MENU_BAR_MENU_TEXT:"Текст",MENU_BAR_MENU_FONT:"Шрифт","Editor menu bar":"Панель меню редактора",'Please enter a valid color (e.g. "ff0000").':'Введите действительный цвет (например, "ff0000").',"Insert table":"Вставить таблицу","Header column":"Столбец заголовков","Insert column left":"Вставить столбец слева","Insert column right":"Вставить столбец справа","Delete column":"Удалить столбец","Select column":"Выбрать столбец",Column:"Столбец","Header row":"Строка заголовков","Insert row below":"Вставить строку ниже","Insert row above":"Вставить строку выше","Delete row":"Удалить строку","Select row":"Выбрать строку",Row:"Строка","Merge cell up":"Объединить с ячейкой сверху","Merge cell right":"Объединить с ячейкой справа","Merge cell down":"Объединить с ячейкой снизу","Merge cell left":"Объединить с ячейкой слева","Split cell vertically":"Разделить ячейку вертикально","Split cell horizontally":"Разделить ячейку горизонтально","Merge cells":"Объединить ячейки","Table toolbar":"Панель инструментов таблицы","Table properties":"Свойства таблицы","Cell properties":"Свойства ячейки",Border:"Граница",Style:"Стиль",Width:"Ширина",Height:"Высота",Color:"Цвет",Background:"Фон",Padding:"Отступ",Dimensions:"Размеры","Table cell text alignment":"Выравнивание текста в ячейке таблицы",Alignment:"Выравнивание","Horizontal text alignment toolbar":"Панель инструментов горизонтального выравнивания текста","Vertical text alignment toolbar":"Панель инструментов вертикального выравнивания текста","Table alignment toolbar":"Панель инструментов выравнивания таблицы",None:"Нет",Solid:"Сплошная",Dotted:"Точечная",Dashed:"Пунктирная",Double:"Двойная",Groove:"Желобчатая",Ridge:"Ребристая",Inset:"Вдавленная",Outset:"Выпуклая","Align cell text to the left":"Выровнять текст по левому краю","Align cell text to the center":"Выровнять текст по центру","Align cell text to the right":"Выровнять текст по правому краю","Justify cell text":"Выровнять текст по ширине","Align cell text to the top":"Выровнять текст ячейки по верхнему краю","Align cell text to the middle":"Выровнять текст ячейки по центру","Align cell text to the bottom":"Выровнять текст ячейки по нижнему краю","Align table to the left":"Выровнять таблицу по левому краю","Center table":"Выровнять таблицу по центру","Align table to the right":"Выровнять таблицу по правому краю",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'Неверный цвет. Попробуйте "#FF0000" или "rgb(255,0,0)" или "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'Неверное значение. Попробуйте "10px" или "2em" или просто "2".',"Enter table caption":"Подпись таблицы","Keystrokes that can be used in a table cell":"Нажатия клавиш, которые можно использовать в ячейке таблицы","Move the selection to the next cell":"Переместить выделение в следующую ячейку","Move the selection to the previous cell":"Переместить выделение на предыдущую ячейку","Insert a new table row (when in the last cell of a table)":"Вставить новую строку таблицы (в последней ячейке таблицы)","Navigate through the table":"Навигация по таблице",Table:"Таблица","Insert table layout":"Вставить табличный макет","Table layout":"Табличный макет","Layout table":"Таблица макетов","Content table":"Таблица содержимого","Choose table type":"Выберите тип таблицы","Table type":"Тип таблицы","Table type options":"Параметры типа таблицы",Styles:"Стили","Multiple styles":"Несколько стилей","Block styles":"Блочные стили","Text styles":"Стиль текста","Special characters":"Спецсимволы",Category:"Категория",All:"Все",Arrows:"Стрелки",Currency:"Валюта",Latin:"Латинские",Mathematical:"Математические",Text:"Текст","leftwards simple arrow":"простая стрелка влево","rightwards simple arrow":"простая стрелка вправо","upwards simple arrow":"простая стрелка вверх","downwards simple arrow":"простая стрелка вниз","leftwards double arrow":"Двойная стрелка влево","rightwards double arrow":"Двойная стрелка вправо","upwards double arrow":"Двойная стрелка вверх","downwards double arrow":"Двойная стрелка вниз","leftwards dashed arrow":"Пунктирная стрелка влево","rightwards dashed arrow":"Пунктирная стрелка вправо","upwards dashed arrow":"Пунктирная стрелка вверх","downwards dashed arrow":"Пунктирная стрелка вниз","leftwards arrow to bar":"Стрелка влево, упирающаяся в планку","rightwards arrow to bar":"Стрелка вправо, упирающаяся в планку","upwards arrow to bar":"Стрелка вверх, упирающаяся в планку","downwards arrow to bar":"Стрелка вниз, упирающаяся в планку","up down arrow with base":"Стрелка вверх и вниз от планки внизу","back with leftwards arrow above":"Стрелка влево над словом BACK (назад)","end with leftwards arrow above":"Стрелка влево над словом END (конец)","on with exclamation mark with left right arrow above":"Стрелка влево и вправо над словом ON! (включить)","soon with rightwards arrow above":"Стрелка вправо над словом SOON (скоро)","top with upwards arrow above":"Стрелка вверх над словом TOP (верх)","Dollar sign":"Символ доллара","Euro sign":"Символ евро","Yen sign":"Символ иены","Pound sign":"Символ фунта стерлингов","Cent sign":"Символ цента","Euro-currency sign":"Символ евровалюты","Colon sign":"Символ двоеточия","Cruzeiro sign":"Символ бразильского крузейро","French franc sign":"Символ французского франка","Lira sign":"Символ лиры","Currency sign":"Символ валюты","Bitcoin sign":"Символ биткоина","Mill sign":"Символ милль","Naira sign":"Символ найры","Peseta sign":"Символ песеты","Rupee sign":"Символ рупии","Won sign":"Символ воны","New sheqel sign":"Символ нового шекеля","Dong sign":"Символ донга","Kip sign":"Символ кипа","Tugrik sign":"Символ тугрика","Drachma sign":"Символ драхмы","German penny sign":"Символ немецкого пенни","Peso sign":"Символ песо","Guarani sign":"Символ гуарани","Austral sign":"Символ аргентинского аустраля","Hryvnia sign":"Символ гривны","Cedi sign":"Символ ганского седи","Livre tournois sign":"Символ турского ливра","Spesmilo sign":"Символ спесмило","Tenge sign":"Символ тенге","Indian rupee sign":"Символ индийской рупии","Turkish lira sign":"Символ турецкой лиры","Nordic mark sign":"Символ скандинавской марки","Manat sign":"Символ маната","Ruble sign":"Символ рубля","Latin capital letter a with macron":"Латинская заглавная буква «A» с макроном","Latin small letter a with macron":"Латинская строчная буква «a» с макроном","Latin capital letter a with breve":"Латинская заглавная буква «A» с бревисом","Latin small letter a with breve":"Латинская строчная буква «a» с бревисом","Latin capital letter a with ogonek":"Латинская заглавная буква «A» с огонеком","Latin small letter a with ogonek":"Латинская строчная буква «a» с огонеком","Latin capital letter c with acute":"Латинская заглавная буква «C» с акутом","Latin small letter c with acute":"Латинская строчная буква «c» с акутом","Latin capital letter c with circumflex":"Латинская заглавная буква «C» с циркумфлексом","Latin small letter c with circumflex":"Латинская строчная буква «c» с циркумфлексом","Latin capital letter c with dot above":"Латинская заглавная буква «C» с точкой сверху","Latin small letter c with dot above":"Латинская строчная буква «c» с точкой сверху","Latin capital letter c with caron":"Латинская заглавная буква «C» с гачеком","Latin small letter c with caron":"Латинская строчная буква «c» с гачеком","Latin capital letter d with caron":"Латинская заглавная буква «D» с гачеком","Latin small letter d with caron":"Латинская строчная буква «d» с гачеком","Latin capital letter d with stroke":"Латинская заглавная буква «D» со штрихом","Latin small letter d with stroke":"Латинская строчная буква «d» со штрихом","Latin capital letter e with macron":"Латинская заглавная буква «E» с макроном","Latin small letter e with macron":"Латинская строчная буква «e» с макроном","Latin capital letter e with breve":"Латинская заглавная буква «E» с бревисом","Latin small letter e with breve":"Латинская строчная буква «e» с бревисом","Latin capital letter e with dot above":"Латинская заглавная буква «E» с точкой сверху","Latin small letter e with dot above":"Латинская строчная буква «e» с точкой сверху","Latin capital letter e with ogonek":"Латинская заглавная буква «E» с огонеком","Latin small letter e with ogonek":"Латинская строчная буква «e» с огонеком","Latin capital letter e with caron":"Латинская заглавная буква «E» с гачеком","Latin small letter e with caron":"Латинская строчная буква «e» с гачеком","Latin capital letter g with circumflex":"Латинская заглавная буква «G» с циркумфлексом","Latin small letter g with circumflex":"Латинская строчная буква «g» с циркумфлексом","Latin capital letter g with breve":"Латинская заглавная буква «G» с бревисом","Latin small letter g with breve":"Латинская строчная буква «g» с бревисом","Latin capital letter g with dot above":"Латинская заглавная буква «G» с точкой сверху","Latin small letter g with dot above":"Латинская строчная буква «g» с точкой сверху","Latin capital letter g with cedilla":"Латинская заглавная буква «G» с седилью","Latin small letter g with cedilla":"Латинская строчная буква «g» с седилью","Latin capital letter h with circumflex":"Латинская заглавная буква «H» с циркумфлексом","Latin small letter h with circumflex":"Латинская строчная буква «h» с циркумфлексом","Latin capital letter h with stroke":"Латинская заглавная буква «H» со штрихом","Latin small letter h with stroke":"Латинская строчная буква «h» со штрихом","Latin capital letter i with tilde":"Латинская заглавная буква «I» с тильдой","Latin small letter i with tilde":"Латинская строчная буква «i» с тильдой","Latin capital letter i with macron":"Латинская заглавная буква «I» с макроном","Latin small letter i with macron":"Латинская строчная буква «i» с макроном","Latin capital letter i with breve":"Латинская заглавная буква «I» с бревисом","Latin small letter i with breve":"Латинская строчная буква «i» с бревисом","Latin capital letter i with ogonek":"Латинская заглавная буква «I» с огонеком","Latin small letter i with ogonek":"Латинская строчная буква «i» с огонеком","Latin capital letter i with dot above":"Латинская заглавная буква «I» с точкой сверху","Latin small letter dotless i":"Латинская строчная буква «i» без точки","Latin capital ligature ij":"Латинская заглавная лигатура «IJ»","Latin small ligature ij":"Латинская строчная лигатура «ij»","Latin capital letter j with circumflex":"Латинская заглавная буква «J» с циркумфлексом","Latin small letter j with circumflex":"Латинская строчная буква «j» с циркумфлексом","Latin capital letter k with cedilla":"Латинская заглавная буква «K» с седилью","Latin small letter k with cedilla":"Латинская строчная буква «k» с седилью","Latin small letter kra":"Латинская строчная буква кра","Latin capital letter l with acute":"Латинская заглавная буква «L» с акутом","Latin small letter l with acute":"Латинская строчная буква «l» с акутом","Latin capital letter l with cedilla":"Латинская заглавная буква «L» с седилью","Latin small letter l with cedilla":"Латинская строчная буква «l» с седилью","Latin capital letter l with caron":"Латинская заглавная буква «L» с гачеком","Latin small letter l with caron":"Латинская строчная буква «l» с гачеком","Latin capital letter l with middle dot":"Латинская заглавная буква «L» с внутристрочной точкой","Latin small letter l with middle dot":"Латинская строчная буква «l» с внутристрочной точкой","Latin capital letter l with stroke":"Латинская заглавная буква «L» со штрихом","Latin small letter l with stroke":"Латинская строчная буква «l» со штрихом","Latin capital letter n with acute":"Латинская заглавная буква «N» с акутом","Latin small letter n with acute":"Латинская строчная буква «n» с акутом","Latin capital letter n with cedilla":"Латинская заглавная буква «N» с седилью","Latin small letter n with cedilla":"Латинская строчная буква «n» с седилью","Latin capital letter n with caron":"Латинская заглавная буква «N» с гачеком","Latin small letter n with caron":"Латинская строчная буква «n» с гачеком","Latin small letter n preceded by apostrophe":"Латинская строчная буква «n» с предшествующим апострофом","Latin capital letter eng":"Латинская заглавная буква энг","Latin small letter eng":"Латинская строчная буква энг","Latin capital letter o with macron":"Латинская заглавная буква «O» с макроном","Latin small letter o with macron":"Латинская строчная буква «o» с макроном","Latin capital letter o with breve":"Латинская заглавная буква «O» с бревисом","Latin small letter o with breve":"Латинская строчная буква «o» с бревисом","Latin capital letter o with double acute":"Латинская заглавная буква «O» с двойным акутом","Latin small letter o with double acute":"Латинская строчная буква «o» с двойным акутом","Latin capital ligature oe":"Латинская заглавная лигатура OE","Latin small ligature oe":"Латинская строчная лигатура oe","Latin capital letter r with acute":"Латинская заглавная буква «R» с акутом","Latin small letter r with acute":"Латинская строчная буква «r» с акутом","Latin capital letter r with cedilla":"Латинская заглавная буква «R» с седилью","Latin small letter r with cedilla":"Латинская строчная буква «r» с седилью","Latin capital letter r with caron":"Латинская заглавная буква «R» с гачеком","Latin small letter r with caron":"Латинская строчная буква «r» с гачеком","Latin capital letter s with acute":"Латинская заглавная буква «S» с акутом","Latin small letter s with acute":"Латинская строчная буква «s» с акутом","Latin capital letter s with circumflex":"Латинская заглавная буква «S» с циркумфлексом","Latin small letter s with circumflex":"Латинская строчная буква «s» с циркумфлексом","Latin capital letter s with cedilla":"Латинская заглавная буква «S» с седилью","Latin small letter s with cedilla":"Латинская строчная буква «s» с седилью","Latin capital letter s with caron":"Латинская заглавная буква «S» с гачеком","Latin small letter s with caron":"Латинская строчная буква «s» с гачеком","Latin capital letter t with cedilla":"Латинская заглавная буква «T» с седилью","Latin small letter t with cedilla":"Латинская строчная буква «t» с седилью","Latin capital letter t with caron":"Латинская заглавная буква «T» с гачеком","Latin small letter t with caron":"Латинская строчная буква «t» с гачеком","Latin capital letter t with stroke":"Латинская заглавная буква «T» со штрихом","Latin small letter t with stroke":"Латинская строчная буква «t» со штрихом","Latin capital letter u with tilde":"Латинская заглавная буква «U» с тильдой","Latin small letter u with tilde":"Латинская строчная буква «u» с тильдой","Latin capital letter u with macron":"Латинская заглавная буква «U» с макроном","Latin small letter u with macron":"Латинская строчная буква «u» с макроном","Latin capital letter u with breve":"Латинская заглавная буква «U» с бревисом","Latin small letter u with breve":"Латинская строчная буква «u» с бревисом","Latin capital letter u with ring above":"Латинская заглавная буква «U» с кружком сверху","Latin small letter u with ring above":"Латинская строчная буква «u» с кружком сверху","Latin capital letter u with double acute":"Латинская заглавная буква «U» с двойным акутом","Latin small letter u with double acute":"Латинская строчная буква «u» с двойным акутом","Latin capital letter u with ogonek":"Латинская заглавная буква «U» с огонеком","Latin small letter u with ogonek":"Латинская строчная буква «u» с огонеком","Latin capital letter w with circumflex":"Латинская заглавная буква «W» с циркумфлексом","Latin small letter w with circumflex":"Латинская строчная буква «w» с циркумфлексом","Latin capital letter y with circumflex":"Латинская заглавная буква «Y» с циркумфлексом","Latin small letter y with circumflex":"Латинская строчная буква «y» с циркумфлексом","Latin capital letter y with diaeresis":"Латинская заглавная буква «Y» с диэрезисом","Latin capital letter z with acute":"Латинская заглавная буква «Z» с акутом","Latin small letter z with acute":"Латинская строчная буква «z» с акутом","Latin capital letter z with dot above":"Латинская заглавная буква «Z» с точкой сверху","Latin small letter z with dot above":"Латинская строчная буква «z» с точкой сверху","Latin capital letter z with caron":"Латинская заглавная буква «Z» с гачеком","Latin small letter z with caron":"Латинская строчная буква «z» с гачеком","Latin small letter long s":"Латинская строчная буква длинная «s»","Less-than sign":"Знак меньше","Greater-than sign":"Знак больше","Less-than or equal to":"Меньше либо равно","Greater-than or equal to":"Больше либо равно","En dash":"Среднее тире","Em dash":"Длинное тире",Macron:"Макрон",Overline:"Надчёркивание","Degree sign":"Знак градуса","Minus sign":"Знак минус","Plus-minus sign":"Знак плюс-минус","Division sign":"Знак деления","Fraction slash":"Дробная наклонная черта","Multiplication sign":"Знак умножения","Latin small letter f with hook":"Латинская строчная буква «f» с хвостиком",Integral:"Интеграл","N-ary summation":"N-арная сумма",Infinity:"Бесконечность","Square root":"Квадратный корень","Tilde operator":"Оператор тильда","Approximately equal to":"Конгруэнтность (геометрическое равенство)","Almost equal to":"Почти равный","Not equal to":"Не равно","Identical to":"Тождественно равно","Element of":"Принадлежит","Not an element of":"Не принадлежит","Contains as member":"Содержит как член","N-ary product":"N-арное произведение","Logical and":"Логическое И","Logical or":"Логическое ИЛИ","Not sign":"Знак отрицания",Intersection:"Пересечение",Union:"Объединение","Partial differential":"Частичный дифференциал","For all":"Для всех","There exists":"Существует","Empty set":"Пустое множество",Nabla:"Набла","Asterisk operator":"Оператор звездочка","Proportional to":"Пропорционально",Angle:"Угол","Vulgar fraction one quarter":"Дробь – одна четверть","Vulgar fraction one half":"Дробь – одна вторая","Vulgar fraction three quarters":"Дробь – три четверти","Single left-pointing angle quotation mark":"Одинарная открывающая (левая) французская угловая кавычка","Single right-pointing angle quotation mark":"Одинарная закрывающая (правая) французская угловая кавычка","Left-pointing double angle quotation mark":"Открывающая левая кавычка «ёлочка»","Right-pointing double angle quotation mark":"Закрывающая правая кавычка «ёлочка»","Left single quotation mark":"Открывающая одинарная кавычка","Right single quotation mark":"Закрывающая одинарная кавычка","Left double quotation mark":"Открывающая двойная кавычка","Right double quotation mark":"Закрывающая двойная кавычка","Single low-9 quotation mark":"Нижняя одинарная открывающая кавычка","Double low-9 quotation mark":"Нижняя двойная открывающая кавычка","Inverted exclamation mark":"Перевернутый восклицательный знак","Inverted question mark":"Перевернутый вопросительный знак","Two dot leader":"Двухточечный пунктир","Horizontal ellipsis":"Многоточие","Double dagger":"Двойной крестик","Per mille sign":"Знак промилле","Per ten thousand sign":"Знак на десять тысяч","Double exclamation mark":"Двойной восклицательный знак","Question exclamation mark":"Вопросительный восклицательный знак","Exclamation question mark":"Восклицательный вопросительный знак","Double question mark":"Двойной вопросительный знак","Copyright sign":"Знак авторского права","Registered sign":"Зарегистрированный товарный знак","Trade mark sign":"Знак торговой марки","Section sign":"Параграф","Paragraph sign":"Знак абзаца","Reversed paragraph sign":"Обратный знак абзаца","Show source":"Показать источник","Show blocks":"Показать блоки","Select all":"Выбрать все","Disable editing":"Отключить редактирование","Enable editing":"Разрешить редактирование","Previous editable region":"Предыдущий редактируемый регион","Next editable region":"Следующий редактируемый регион","Navigate editable regions":"Навигация по редактируемым регионам","Remove Format":"Убрать форматирование","Page break":"Разрыв страницы","media widget":"медиа-виджет","Media URL":"URL медиа","Paste the media URL in the input.":"Вставьте URL медиа в поле ввода.","Tip: Paste the URL into the content to embed faster.":"Подсказка: Вставьте URL в контент для быстрого включения.","The URL must not be empty.":"URL не должен быть пустым.","This media URL is not supported.":"Этот URL медиа не поддерживается.","Insert media":"Вставить медиа",Media:"Медиа","Media toolbar":"Панель инструментов медиа","Open media in new tab":"Откройте медиа в новой вкладке","Media embed":"Внедрение мультимедиа","Numbered List":"Нумерованный список","Bulleted List":"Маркированный список","To-do List":"Список задач","Bulleted list styles toolbar":"Стили маркированного списка","Numbered list styles toolbar":"Стили нумерованного списка","Toggle the disc list style":"Переключить на стиль списка с маркерами в виде закрашенного кружка","Toggle the circle list style":"Переключить на стиль списка с маркерами в виде незакрашенного кружка","Toggle the square list style":"Переключить на стиль списка с квадратными маркерами","Toggle the decimal list style":"Переключить на стиль списка с цифровыми маркерами","Toggle the decimal with leading zero list style":"Переключить на стиль списка с маркерами в виде цифр с нулем в начале","Toggle the lower–roman list style":"Переключить на стиль списка с маркерами в виде строчных римских цифр","Toggle the upper–roman list style":"Переключить на стиль списка с маркерами в виде заглавных римских цифр","Toggle the lower–latin list style":"Переключить на стиль списка с маркерами в виде строчных латинских букв","Toggle the upper–latin list style":"Переключить на стиль списка с маркерами в виде заглавных латинских букв",Disc:"Диск",Circle:"Окружность",Square:"Квадрат",Decimal:"Десятичный","Decimal with leading zero":"Десятичный с ведущим нулем","Lower–roman":"Малые римские","Upper-roman":"Большие римские","Lower-latin":"Малые латинские","Upper-latin":"Большие латинские","List properties":"Свойства списка","Start at":"Начать с","Invalid start index value.":"Недопустимое значение начального индекса.","Start index must be greater than 0.":"Начальный индекс должен быть больше 0.","Reversed order":"Обратный порядок","Keystrokes that can be used in a list":"Нажатия клавиш, которые можно использовать в списке","Increase list item indent":"Увеличить отступ элемента списка","Decrease list item indent":"Уменьшить отступ элемента списка","Entering a to-do list":"Ввод списка текущих дел","Leaving a to-do list":"Оставляем список текущих дел",Unlink:"Убрать ссылку",Link:"Ссылка","Link URL":"Ссылка URL","Link URL must not be empty.":"URL-адрес ссылки не должен быть пустым.","Link image":"Ссылка на изображение","Edit link":"Редактировать ссылку","Open link in new tab":"Открыть ссылку в новой вкладке","Open in a new tab":"Открыть в новой вкладке",Downloadable:"Загружаемые","Create link":"Создать ссылку","Move out of a link":"Выйти из ссылки","Link properties":"Свойства ссылки","Displayed text":"Отображаемый текст","No links available":"Нет доступных ссылок",Language:"Язык","Choose language":"Выбрать язык","Remove language":"Убрать язык","Increase indent":"Увеличить отступ","Decrease indent":"Уменьшить отступ","image widget":"Виджет изображений","Wrap text":"Обтекать текст","Break text":"Разрывать текст","In line":"В тексте","Side image":"Боковое изображение","Full size image":"Оригинальный размер изображения","Left aligned image":"Выравнивание по левому краю","Centered image":"Выравнивание по центру","Right aligned image":"Выравнивание по правому краю","Change image text alternative":"Редактировать альтернативный текст","Text alternative":"Альтернативный текст","Enter image caption":"Подпись к изображению","Insert image":"Вставить изображение","Replace image":"Заменить изображение","Upload from computer":"Загрузить с компьютера","Replace from computer":"Заменить с компьютера","Upload image from computer":"Загрузить изображение с компьютера","Image from computer":"Изображение с компьютера","From computer":"С компьютера","Replace image from computer":"Заменить изображение с компьютера","Upload failed":"Загрузка не выполнена","You have no image upload permissions.":"У вас нет разрешений на загрузку изображений в систему.","Image toolbar":"Панель инструментов изображения","Resize image":"Изменить размер изображения","Resize image to %0":"Изменить размер изображения до %0","Resize image to the original size":"Вернуть размер изображения к оригинальному","Resize image (in %0)":"Изменить размер изображения (в %0)",Original:"Оригинальный","Custom image size":"Пользовательский размер изображения",Custom:"Другое","Image resize list":"Список размеров","Insert image via URL":"Вставить изображение по URL","Insert via URL":"Вставка по URL-адресу","Image via URL":"Изображение по URL-адресу","Via URL":"Через URL-адрес","Update image URL":"Изменить URL изображения","Caption for the image":"Подпись к изображению","Caption for image: %0":"Подпись к изображению: %0","The value must not be empty.":"Значение не должно быть пустым.","The value should be a plain number.":"Значение должно быть простым числом.","Uploading image":"Загрузка изображения","Image upload complete":"Загрузка изображения завершена","Error during image upload":"Ошибка при загрузке изображения",Image:"Изображение","Image Resize":"Изменить размер изображения","Text Alternative":"Альтернативный текст","HTML object":"HTML объект","Insert HTML":"Вставить HTML","HTML snippet":"HTML сниппет","Paste raw HTML here...":"Вставьте HTML код сюда...","Edit source":"Изменить код","Save changes":"Сохранить изменения","No preview available":"Предпросмотр недоступен","Empty snippet content":"Нет контента","Horizontal line":"Горизонтальная линия","Yellow marker":"Выделение жёлтым маркером","Green marker":"Выделение зелёным маркером","Pink marker":"Выделение розовым маркером","Blue marker":"Выделение синим маркером","Red pen":"Красный цвет текста","Green pen":"Зеленый цвет текста","Remove highlight":"Убрать выделение",Highlight:"Выделить","Text highlight toolbar":"Панель инструментов выделения текста",Heading:"Стиль","Choose heading":"Выбор стиля","Heading 1":"Заголовок 1","Heading 2":"Заголовок 2","Heading 3":"Заголовок 3","Heading 4":"Заголовок 4","Heading 5":"Заголовок 5","Heading 6":"Заголовок 6","Type your title":"Введите заголовок","Type or paste your content here.":"Введите или вставьте сюда ваш текст","Enter fullscreen mode":"Войти в полноэкранный режим","Leave fullscreen mode":"Выйти из полноэкранного режима","Fullscreen mode":"Полноэкранный режим","Toggle fullscreen mode":"Переключить полноэкранный режим","Document outline":"Состав документа","Connected users":"Подключенные пользователи","Font Size":"Размер шрифта",Tiny:"Очень мелкий",Small:"Мелкий",Big:"Крупный",Huge:"Очень крупный","Font Family":"Семейство шрифтов",Default:"По умолчанию","Font Color":"Цвет шрифта","Font Background Color":"Цвет фона","Document colors":"Цвет страницы","Find and replace":"Найти и заменить","Find in text…":"Найти в тексте",Find:"Найти","Previous result":"Предыдущий результат","Next result":"Следующий результат",Replace:"Заменить","Replace all":"Заменить всё","Match case":"С учетом регистра","Whole words only":"Только слова целиком","Replace with…":"Заменить на...","Text to find must not be empty.":"Искомый текст не должен быть пустым.","Tip: Find some text first in order to replace it.":"Совет: сначала найдите текст, чтобы заменить его.","Advanced options":"Дополнительные параметры","Find in the document":"Найти в документе","Insert a soft break (a <code><br></code> element)":"Вставить мягкий разрыв (элемент <code><br></code>)","Insert a hard break (a new paragraph)":"Вставить жесткий разрыв (новый абзац)",Emoji:"Эмодзи","Show all emoji...":"Показать все эмодзи...","Find an emoji (min. 2 characters)":"Найти эмодзи (мин. 2 символа)",'No emojis were found matching "%0".':'Не найдено ни одного эмодзи, соответствующего "%0".',"Keep on typing to see the emoji.":"Продолжайте набирать текст, чтобы увидеть эмодзи.","The query must contain at least two characters.":"Запрос должен содержать не менее двух символов.","Smileys & Expressions":"Смайлы и эмоции","Gestures & People":"Жесты и люди","Animals & Nature":"Животные и природа","Food & Drinks":"Еда и напитки","Travel & Places":"Путешествия и достопримечательности",Activities:"Развлечения",Objects:"Объекты",Symbols:"Символы",Flags:"Флаги","Select skin tone":"Выберите цвет кожи","Default skin tone":"Цвет кожи по умолчанию","Light skin tone":"Светлый оттенок кожи","Medium Light skin tone":"Средне-светлый оттенок кожи","Medium skin tone":"Средний оттенок кожи","Medium Dark skin tone":"Средне-темный оттенок кожи","Dark skin tone":"Темный оттенок кожи","Emoji picker":"Выбор эмодзи",Cancel:"Отмена",Clear:"Очистить","Remove color":"Убрать цвет","Restore default":"По умолчанию",Save:"Сохранить","Show more items":"Другие инструменты","%0 of %1":"%0 из %1","Cannot upload file:":"Невозможно загрузить файл","Rich Text Editor. Editing area: %0":"Редактор форматированного текста. Область редактирования: %0","Insert with file manager":"Вставка с помощью файлового менеджера","Replace with file manager":"Заменить с помощью файлового менеджера","Insert image with file manager":"Вставить изображение с помощью файлового менеджера","Replace image with file manager":"Заменить изображение с помощью файлового менеджера",File:"Файл","With file manager":"Из менеджера файлов","Toggle caption off":"Выключить описание","Toggle caption on":"Включить описание","Content editing keystrokes":"Клавиши для редактирования контента","These keyboard shortcuts allow for quick access to content editing features.":"Эти сочетания клавиш обеспечивают быстрый доступ к функциям редактирования контента.","User interface and content navigation keystrokes":"Пользовательский интерфейс и клавиши навигации по контенту","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Использовать следующие сочетания клавиш для более эффективной навигации в пользовательском интерфейсе CKEditor 5.","Close contextual balloons, dropdowns, and dialogs":"Закрыть контекстные всплывающие окна, раскрывающиеся списки и диалоговые окна.","Open the accessibility help dialog":"Открыть диалоговое окно справки по специальным возможностям","Move focus between form fields (inputs, buttons, etc.)":"Переместить фокус между полями формы (вводы, кнопки и т. д.)","Move focus to the menu bar, navigate between menu bars":"Переместить фокус на панель меню, перемещаться между панелями меню","Move focus to the toolbar, navigate between toolbars":"Переместить фокус на панель инструментов, перемещаться между панелями инструментов","Navigate through the toolbar or menu bar":"Перемещение по панели инструментов или панели меню","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Активировать кнопку, находящуюся в фокусе. Активирование кнопок, которые взаимодействуют с содержимым редактора, перемещает фокус обратно на содержимое.",Accept:"Принять",Paragraph:"Параграф","Color picker":"Выбор цвета","Please try a different phrase or check the spelling.":"Пожалуйста, попробуйте другую фразу или проверьте правописание.",Source:"Источник",Insert:"Вставить",Update:"Обновить",Back:"Назад","Insert code block":"Вставить код","Plain text":"Простой текст","Leaving %0 code snippet":"Оставляем фрагмент кода %0","Entering %0 code snippet":"Ввод фрагмента кода %0","Entering code snippet":"Ввод фрагмента кода","Leaving code snippet":"Оставляем фрагмент кода","Code block":"Блок кодов","Copy selected content":"Копировать выбранное содержание","Paste content":"Вставить содержание","Paste content as plain text":"Вставить содержанрие в виде обычного текста","Insert image or file":"Вставьте изображение или файл","Could not obtain resized image URL.":"Не удалось получить URL с измененным размером изображения.","Selecting resized image failed":"Выбор изображения с измененным размером не удался","Could not insert image at the current position.":"Нельзя вставить изображение на текущую позицию.","Inserting image failed":"Вставка изображения не удалась",Bookmark:"Закладка","Edit bookmark":"Изменить закладку","Remove bookmark":"Удалить закладку","Bookmark name":"Имя закладки","Enter the bookmark name without spaces.":"Введите имя закладки без пробелов.","Bookmark must not be empty.":"Закладка не должна быть пустой.","Bookmark name cannot contain space characters.":"Имя закладки не может содержать пробелы.","Bookmark name already exists.":"Имя закладки уже существует.","bookmark widget":"виджет закладок","Bookmark toolbar":"Панель инструментов закладок",Bookmarks:"Закладки","No bookmarks available.":"Нет доступных закладок.","Scroll to bookmark":"Прокрутить до закладки","Open file manager":"Открыть менеджер файлов","Cannot determine a category for the uploaded file.":"Не удаётся определить категорию для загруженного файла.","Cannot access default workspace.":"Не удается получить доступ к рабочему пространству по умолчанию.","You have no image editing permissions.":"У вас нет разрешений на редактирование изображений.","Edit image":"Редактировать изображение","Processing the edited image.":"Обработка отредактированного изображения.","Server failed to process the image.":"Серверу не удалось обработать изображение.","Failed to determine category of edited image.":"Не удалось определить категорию отредактированного изображения.","Block quote":"Цитата",Bold:"Жирный",Italic:"Курсив",Underline:"Подчеркнутый",Code:"Исходный код",Strikethrough:"Зачеркнутый",Subscript:"Подстрочный",Superscript:"Надстрочный","Italic text":"Текст курсивом","Move out of an inline code style":"Выйти из встроенного стиля кода","Bold text":"Жирный текст","Underline text":"Подчеркнутый текст","Strikethrough text":"Зачеркнутый текст","Saving changes":"Сохранение изменений","Revert autoformatting action":"Отменить действие автоформатирования","Align left":"Выравнивание по левому краю","Align right":"Выравнивание по правому краю","Align center":"Выравнивание по центру",Justify:"Выравнивание по ширине","Text alignment":"Выравнивание текста","Text alignment toolbar":"Выравнивание"},getPluralForm(n){return n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2}}};const uB={vi:{dictionary:{"Words: %0":"Số chữ: %0","Characters: %0":"Số ký tự: %0","Widget toolbar":"Thanh công cụ tiện ích","Insert paragraph before block":"Chèn đoạn trước khối","Insert paragraph after block":"Chèn đoạn sau khối","Press Enter to type after or press Shift + Enter to type before the widget":"Nhấn Enter để nhập vào sau hoặc nhấn Shift + Enter để nhập vào trước tiện ích","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Tổ hợp phím mà bạn có thể dùng khi một tiện ích được chọn (ví dụ: hình ảnh, bảng, v.v.)","Insert a new paragraph directly after a widget":"Chèn đoạn văn mới ngay sau tiện ích","Insert a new paragraph directly before a widget":"Chèn đoạn văn mới ngay trước tiện ích","Move the caret to allow typing directly before a widget":"Di chuyển dấu sót để cho phép nhập ngay trước một tiện ích","Move the caret to allow typing directly after a widget":"Di chuyển dấu sót để cho phép nhập ngay sau một tiện ích","Move focus from an editable area back to the parent widget":"Di chuyển tiêu điểm từ vùng có thể chỉnh sửa trở lại tiện ích gốc","Upload in progress":"Đang tải lên",Undo:"Hoàn tác",Redo:"Tiếp tục","Rich Text Editor":"Trình soạn thảo văn bản","Edit block":"Chỉnh sửa đoạn","Click to edit block":"Nhấp để sửa khối","Drag to move":"Kéo để di chuyển",Next:"Tiếp theo",Previous:"Quay lại","Editor toolbar":"Thanh công cụ biên tập","Dropdown toolbar":"Thanh công cụ danh mục","Dropdown menu":"Trình đơn thả xuống",Black:"Đen","Dim grey":"Xám mờ",Grey:"Xám","Light grey":"Xám nhạt",White:"Trắng",Red:"Đỏ",Orange:"Cam",Yellow:"Vàng","Light green":"Xanh lá nhạt",Green:"Xanh lá",Aquamarine:"Xanh ngọc biển",Turquoise:"Xanh ngọc bích","Light blue":"Xanh dương",Blue:"Xanh biển",Purple:"Tím","Editor block content toolbar":"Thanh công cụ chỉnh sửa khối nội dung","Editor contextual toolbar":"Thanh công cụ chỉnh sửa theo ngữ cảnh",HEX:"HEX","No results found":"Không tìm thấy kết quả","No searchable items":"Không có mục nào tìm kiếm được","Editor dialog":"Hộp thoại trình biên tập",Close:"Đóng","Help Contents. To close this dialog press ESC.":"Nội dung Trợ giúp. Nhấn phím ESC để đóng hộp thoại này.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Dưới đây, bạn có thể tìm thấy danh sách các phím tắt mà bạn có thể dùng trong trình biên tập này.","(may require <kbd>Fn</kbd>)":"(có thể cần nhấn phím <kbd>Fn</kbd>)",Accessibility:"Trợ năng","Accessibility help":"Trợ giúp về khả năng truy cập","Press %0 for help.":"Nhấn %0 để được trợ giúp.","Move focus in and out of an active dialog window":"Di chuyển tiêu điểm vào và ra khỏi cửa sổ hộp thoại đang kích hoạt",MENU_BAR_MENU_FILE:"Tệp",MENU_BAR_MENU_EDIT:"Chỉnh sửa",MENU_BAR_MENU_VIEW:"Xem",MENU_BAR_MENU_INSERT:"Chèn",MENU_BAR_MENU_FORMAT:"Định dạng",MENU_BAR_MENU_TOOLS:"Công cụ",MENU_BAR_MENU_HELP:"Trợ giúp",MENU_BAR_MENU_TEXT:"Văn bản",MENU_BAR_MENU_FONT:"Phông chữ","Editor menu bar":"Thanh menu Trình soạn thảo",'Please enter a valid color (e.g. "ff0000").':'Vui lòng nhập một màu sắc hợp lệ (ví dụ: "ff0000").',"Insert table":"Tạo bảng","Header column":"Tiêu đề cột","Insert column left":"Thêm cột vào bên trái","Insert column right":"Thêm cột vào bên phải","Delete column":"Xoá cột","Select column":"Chọn cột",Column:"Cột","Header row":"Tiêu đề hàng","Insert row below":"Thêm hàng ở dưới","Insert row above":"Thêm hàng phía trên","Delete row":"Xoá hàng","Select row":"Chọn hàng",Row:"Hàng","Merge cell up":"Sát nhập ô lên trên","Merge cell right":"Sát nhập ô qua phải","Merge cell down":"Sát nhập ô xuống dưới","Merge cell left":"Sát nhập ô qua trái","Split cell vertically":"Tách ô theo chiều dọc","Split cell horizontally":"Tách ô theo chiều ngang","Merge cells":"Sát nhập ô","Table toolbar":"Thanh công cụ bảng","Table properties":"Thuộc tính của bảng","Cell properties":"Thuộc tính của ô",Border:"Viền",Style:"Kiểu",Width:"Rộng",Height:"Cao",Color:"Màu",Background:"Màu nền",Padding:"Cách lề",Dimensions:"Kích thước","Table cell text alignment":"Căn lề văn bản trong ô",Alignment:"Căn lề","Horizontal text alignment toolbar":"Thanh công cụ căn chỉnh văn bản theo chiều ngang","Vertical text alignment toolbar":"Thanh công cụ căn chỉnh văn bản theo chiều dọc","Table alignment toolbar":"Thanh công cụ căn chỉnh bảng",None:"Không có kiểu nào",Solid:"Dạng nét liền",Dotted:"Dạng chấm",Dashed:"Dạng đường đứt nét",Double:"Dạng nét đôi",Groove:"Dạng đường rãnh",Ridge:"Dạng gờ",Inset:"Dạng chìm",Outset:"Dạng nổi","Align cell text to the left":"Căn chỉnh văn bản trong ô về bên trái","Align cell text to the center":"Căn chỉnh văn bản trong ô vào chính giữa","Align cell text to the right":"Căn chỉnh văn bản trong ô về bên phải","Justify cell text":"Căn đều văn bản trong ô","Align cell text to the top":"Căn chỉnh văn bản trong ô lên trên cùng","Align cell text to the middle":"Căn chỉnh văn bản trong ô vào giữa","Align cell text to the bottom":"Căn chỉnh văn bản trong ô xuống dưới cùng","Align table to the left":"Căn chỉnh bảng về phía bên trái","Center table":"Căn chỉnh bảng vào chính giữa","Align table to the right":"Căn chỉnh bảng về phía bên phải",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'Màu này không hợp lệ. Hãy thử "#FF0000" hoặc "rgb(255,0,0)" hoặc "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'Giá trị này không hợp lệ. Hãy thử "10px" hoặc "2em" hoặc chỉ "2".',"Enter table caption":"Nhập chú thích cho bảng","Keystrokes that can be used in a table cell":"Tổ hợp phím mà bạn có thể dùng trong một ô bảng","Move the selection to the next cell":"Di chuyển vùng chọn đến ô tiếp theo","Move the selection to the previous cell":"Di chuyển vùng chọn đến ô trước đó","Insert a new table row (when in the last cell of a table)":"Chèn một hàng mới trong bảng (khi ở ô cuối cùng của bảng)","Navigate through the table":"Điều hướng qua bảng",Table:"Bảng","Insert table layout":"Chèn bố cục bảng","Table layout":"Bố cục bảng","Layout table":"Bảng bố cục","Content table":"Bảng nội dung","Choose table type":"Chọn loại bảng","Table type":"Loại bảng","Table type options":"Tùy chọn loại bảng",Styles:"Kiểu","Multiple styles":"Nhiều kiểu","Block styles":"Kiểu của khối","Text styles":"Kiểu văn bản","Special characters":"Các ký tự đặc biệt",Category:"Danh mục",All:"Tất cả",Arrows:"Mũi tên",Currency:"Tiền tệ",Latin:"Latin",Mathematical:"Toán học",Text:"Văn bản","leftwards simple arrow":"mũi tên đơn giản chỉ sang trái","rightwards simple arrow":"mũi tên đơn giản chỉ sang phải","upwards simple arrow":"mũi tên đơn giản chỉ lên trên","downwards simple arrow":"mũi tên đơn giản chỉ xuống dưới","leftwards double arrow":"mũi tên kép hướng sang trái","rightwards double arrow":"mũi tên kép hướng sang phải","upwards double arrow":"mũi tên kép hướng lên","downwards double arrow":"mũi tên kép hướng xuống","leftwards dashed arrow":"mũi tên đứt nét hướng sang trái","rightwards dashed arrow":"mũi tên đứt nét hướng sang phải","upwards dashed arrow":"mũi tên đứt nét hướng lên","downwards dashed arrow":"mũi tên đứt nét hướng xuống","leftwards arrow to bar":"mũi tên hướng sang trái về phía thanh","rightwards arrow to bar":"mũi tên hướng sang phải về phía thanh","upwards arrow to bar":"mũi tên hướng lên trên về phía thanh","downwards arrow to bar":"mũi tên hướng xuống dưới về phía thanh","up down arrow with base":"mũi tên lên xuống có đế","back with leftwards arrow above":"back với mũi tên hướng sang trái ở trên","end with leftwards arrow above":"end với mũi tên hướng sang trái ở trên","on with exclamation mark with left right arrow above":"on với dấu chấm than và mũi tên trái phải ở trên","soon with rightwards arrow above":"soon với mũi tên hướng sang phải ở trên","top with upwards arrow above":"top với mũi tên hướng lên ở trên","Dollar sign":"Ký hiệu Đô la","Euro sign":"Ký hiệu Euro","Yen sign":"Ký hiệu Yên Nhật","Pound sign":"Ký hiệu Bảng Anh","Cent sign":"Ký hiệu Cent","Euro-currency sign":"Ký hiệu tiền tệ Euro","Colon sign":"Ký hiệu Colon","Cruzeiro sign":"Ký hiệu Cruzeiro","French franc sign":"Ký hiệu franc Pháp","Lira sign":"Ký hiệu Lira","Currency sign":"Ký hiệu tiền tệ","Bitcoin sign":"Ký hiệu Bitcoin","Mill sign":"Ký hiệu Mill","Naira sign":"Ký hiệu Naira","Peseta sign":"Ký hiệu Peseta","Rupee sign":"Ký hiệu Rupee","Won sign":"Ký hiệu Won","New sheqel sign":"Ký hiệu Shekel mới","Dong sign":"Ký hiệu Đồng","Kip sign":"Ký hiệu Kip","Tugrik sign":"Ký hiệu Tögrög","Drachma sign":"Ký hiệu Drachma","German penny sign":"Ký hiệu penny Đức","Peso sign":"Ký hiệu Peso","Guarani sign":"Ký hiệu Guarani","Austral sign":"Ký hiệu Austral","Hryvnia sign":"Ký hiệu Hryvnia","Cedi sign":"Ký hiệu Cedi","Livre tournois sign":"Ký hiệu Livre tournois","Spesmilo sign":"Ký hiệu Spesmilo","Tenge sign":"Ký hiệu Tenge","Indian rupee sign":"Ký hiệu rupee Ấn Độ","Turkish lira sign":"Ký hiệu lira Thổ Nhĩ Kỳ","Nordic mark sign":"Ký hiệu Mác Bắc Âu","Manat sign":"Ký hiệu Manat","Ruble sign":"Ký hiệu Rúp","Latin capital letter a with macron":"Chữ cái Latinh a viết hoa với dấu trường âm","Latin small letter a with macron":"Chữ cái Latinh a viết thường với dấu trường âm","Latin capital letter a with breve":"Chữ cái Latinh a viết hoa với dấu trăng","Latin small letter a with breve":"Chữ cái Latinh a viết thường với dấu trăng","Latin capital letter a with ogonek":"Chữ cái Latinh a viết hoa với dấu ogonek","Latin small letter a with ogonek":"Chữ cái Latinh a viết thường với dấu ogonek","Latin capital letter c with acute":"Chữ cái Latinh c viết hoa với dấu sắc","Latin small letter c with acute":"Chữ cái Latinh c viết thường với dấu sắc","Latin capital letter c with circumflex":"Chữ cái Latinh c viết hoa với dấu mũ","Latin small letter c with circumflex":"Chữ cái Latinh c viết thường với dấu mũ","Latin capital letter c with dot above":"Chữ cái Latinh c viết hoa với dấu chấm ở trên","Latin small letter c with dot above":"Chữ cái Latinh c viết thường với dấu chấm ở trên","Latin capital letter c with caron":"Chữ cái Latinh c viết hoa với dấu mũ ngược","Latin small letter c with caron":"Chữ cái Latinh c viết thường với dấu mũ ngược","Latin capital letter d with caron":"Chữ cái Latinh d viết hoa với dấu mũ ngược","Latin small letter d with caron":"Chữ cái Latinh d viết thường với dấu mũ ngược","Latin capital letter d with stroke":"Chữ cái Latinh d viết hoa với dấu gạch ngang","Latin small letter d with stroke":"Chữ cái Latinh d viết thường với dấu gạch ngang","Latin capital letter e with macron":"Chữ cái Latinh e viết hoa với dấu trường âm","Latin small letter e with macron":"Chữ cái Latinh e viết thường với dấu trường âm","Latin capital letter e with breve":"Chữ cái Latinh e viết hoa với dấu trăng","Latin small letter e with breve":"Chữ cái Latinh e viết thường với dấu trăng","Latin capital letter e with dot above":"Chữ cái Latinh e viết hoa với dấu chấm ở trên","Latin small letter e with dot above":"Chữ cái Latinh e viết thường với dấu chấm ở trên","Latin capital letter e with ogonek":"Chữ cái Latinh e viết hoa với dấu ogonek","Latin small letter e with ogonek":"Chữ cái Latinh e viết thường với dấu ogonek","Latin capital letter e with caron":"Chữ cái Latinh e viết hoa với dấu mũ ngược","Latin small letter e with caron":"Chữ cái Latinh e viết thường với dấu mũ ngược","Latin capital letter g with circumflex":"Chữ cái Latinh g viết hoa với dấu mũ","Latin small letter g with circumflex":"Chữ cái Latinh g viết thường với dấu mũ","Latin capital letter g with breve":"Chữ cái Latinh g viết hoa với dấu trăng","Latin small letter g with breve":"Chữ cái Latinh g viết thường với dấu trăng","Latin capital letter g with dot above":"Chữ cái Latinh g viết hoa với dấu chấm ở trên","Latin small letter g with dot above":"Chữ cái Latinh g viết thường với dấu chấm ở trên","Latin capital letter g with cedilla":"Chữ cái Latinh g viết hoa với dấu móc dưới","Latin small letter g with cedilla":"Chữ cái Latinh g viết thường với dấu móc dưới","Latin capital letter h with circumflex":"Chữ cái Latinh h viết hoa với dấu mũ","Latin small letter h with circumflex":"Chữ cái Latinh h viết thường với dấu mũ","Latin capital letter h with stroke":"Chữ cái Latinh h viết hoa với dấu gạch ngang","Latin small letter h with stroke":"Chữ cái Latinh h viết thường với dấu gạch ngang","Latin capital letter i with tilde":"Chữ cái Latinh i viết hoa với dấu ngã","Latin small letter i with tilde":"Chữ cái Latinh i viết thường với dấu ngã","Latin capital letter i with macron":"Chữ cái Latinh i viết hoa với dấu trường âm","Latin small letter i with macron":"Chữ cái Latinh i viết thường với dấu trường âm","Latin capital letter i with breve":"Chữ cái Latinh i viết hoa với dấu trăng","Latin small letter i with breve":"Chữ cái Latinh i viết thường với dấu trăng","Latin capital letter i with ogonek":"Chữ cái Latinh i viết hoa với dấu ogonek","Latin small letter i with ogonek":"Chữ cái Latinh i viết thường với dấu ogonek","Latin capital letter i with dot above":"Chữ cái Latinh i viết hoa với dấu chấm ở trên","Latin small letter dotless i":"Chữ cái Latinh i viết thường không dấu chấm","Latin capital ligature ij":"Chữ ghép Latinh ij viết hoa","Latin small ligature ij":"Chữ ghép Latinh ij viết thường","Latin capital letter j with circumflex":"Chữ cái Latinh j viết hoa với dấu mũ","Latin small letter j with circumflex":"Chữ cái Latinh j viết thường với dấu mũ","Latin capital letter k with cedilla":"Chữ cái Latinh k viết hoa với dấu móc dưới","Latin small letter k with cedilla":"Chữ cái Latinh k viết hoa với dấu móc dưới","Latin small letter kra":"Chữ cái Latinh k viết thường","Latin capital letter l with acute":"Chữ cái Latinh l viết hoa với dấu sắc","Latin small letter l with acute":"Chữ cái Latinh l viết thường với dấu sắc","Latin capital letter l with cedilla":"Chữ cái Latinh l viết hoa với dấu móc dưới","Latin small letter l with cedilla":"Chữ cái Latinh l viết thường với dấu móc dưới","Latin capital letter l with caron":"Chữ cái Latinh l viết hoa với dấu mũ ngược","Latin small letter l with caron":"Chữ cái Latinh l viết thường với dấu mũ ngược","Latin capital letter l with middle dot":"Chữ cái Latinh l viết hoa với dấu chấm ở giữa","Latin small letter l with middle dot":"Chữ cái Latinh l viết thường với dấu chấm ở giữa","Latin capital letter l with stroke":"Chữ cái Latinh l viết hoa với dấu gạch ngang","Latin small letter l with stroke":"Chữ cái Latinh l viết thường với dấu gạch ngang","Latin capital letter n with acute":"Chữ cái Latinh n viết hoa với dấu sắc","Latin small letter n with acute":"Chữ cái Latinh n viết thường với dấu sắc","Latin capital letter n with cedilla":"Chữ cái Latinh n viết hoa với dấu móc dưới","Latin small letter n with cedilla":"Chữ cái Latinh n viết thường với dấu móc dưới","Latin capital letter n with caron":"Chữ cái Latinh n viết hoa với dấu mũ ngược","Latin small letter n with caron":"Chữ cái Latinh n viết thường với dấu mũ ngược","Latin small letter n preceded by apostrophe":"Chữ cái Latinh n viết thường có dấu viết lược đứng trước","Latin capital letter eng":"Chữ cái Latinh Ŋ viết hoa","Latin small letter eng":"Chữ cái Latinh ŋ viết thường","Latin capital letter o with macron":"Chữ cái Latinh o viết hoa với dấu trường âm","Latin small letter o with macron":"Chữ cái Latinh o viết thường với dấu trường âm","Latin capital letter o with breve":"Chữ cái Latinh o viết hoa với dấu trăng","Latin small letter o with breve":"Chữ cái Latinh o viết thường với dấu trăng","Latin capital letter o with double acute":"Chữ cái Latinh o viết hoa với dấu sắc kép","Latin small letter o with double acute":"Chữ cái Latinh o viết thường với dấu sắc kép","Latin capital ligature oe":"Chữ ghép Latinh oe viết hoa","Latin small ligature oe":"Chữ ghép Latinh oe viết thường","Latin capital letter r with acute":"Chữ cái Latinh r viết hoa với dấu sắc","Latin small letter r with acute":"Chữ cái Latinh r viết thường với dấu sắc","Latin capital letter r with cedilla":"Chữ cái Latinh r viết hoa với dấu móc dưới","Latin small letter r with cedilla":"Chữ cái Latinh r viết thường với dấu móc dưới","Latin capital letter r with caron":"Chữ cái Latinh r viết hoa với dấu mũ ngược","Latin small letter r with caron":"Chữ cái Latinh r viết thường với dấu mũ ngược","Latin capital letter s with acute":"Chữ cái Latinh s viết hoa với dấu sắc","Latin small letter s with acute":"Chữ cái Latinh s viết thường với dấu sắc","Latin capital letter s with circumflex":"Chữ cái Latinh s viết hoa với dấu mũ","Latin small letter s with circumflex":"Chữ cái Latinh s viết thường với dấu mũ","Latin capital letter s with cedilla":"Chữ cái Latinh s viết hoa với dấu móc dưới","Latin small letter s with cedilla":"Chữ cái Latinh s viết thường với dấu móc dưới","Latin capital letter s with caron":"Chữ cái Latinh s viết hoa với dấu mũ ngược","Latin small letter s with caron":"Chữ cái Latinh s viết thường với dấu mũ ngược","Latin capital letter t with cedilla":"Chữ cái Latinh t viết hoa với dấu móc dưới","Latin small letter t with cedilla":"Chữ cái Latinh t viết thường với dấu móc dưới","Latin capital letter t with caron":"Chữ cái Latinh t viết hoa với dấu mũ ngược","Latin small letter t with caron":"Chữ cái Latinh t viết thường với dấu mũ ngược","Latin capital letter t with stroke":"Chữ cái Latinh t viết hoa với dấu gạch ngang","Latin small letter t with stroke":"Chữ cái Latinh t viết thường với dấu gạch ngang","Latin capital letter u with tilde":"Chữ cái Latinh u viết hoa với dấu ngã","Latin small letter u with tilde":"Chữ cái Latinh u viết hoa với dấu ngã","Latin capital letter u with macron":"Chữ cái Latinh u viết hoa với dấu trường âm","Latin small letter u with macron":"Chữ cái Latinh u viết thường với dấu trường âm","Latin capital letter u with breve":"Chữ cái Latinh u viết hoa với dấu trăng","Latin small letter u with breve":"Chữ cái Latinh u viết thường với dấu trăng","Latin capital letter u with ring above":"Chữ cái Latinh u viết hoa với vòng tròn ở trên","Latin small letter u with ring above":"Chữ cái Latinh u viết thường với vòng tròn ở trên","Latin capital letter u with double acute":"Chữ cái Latinh u viết hoa với dấu sắc kép","Latin small letter u with double acute":"Chữ cái Latinh u viết thường với dấu sắc kép","Latin capital letter u with ogonek":"Chữ cái Latinh u viết hoa với dấu ogonek","Latin small letter u with ogonek":"Chữ cái Latinh u viết thường với dấu ogonek","Latin capital letter w with circumflex":"Chữ cái Latinh w viết hoa với dấu mũ","Latin small letter w with circumflex":"Chữ cái Latinh w viết thường với dấu mũ","Latin capital letter y with circumflex":"Chữ cái Latinh y viết hoa với dấu mũ","Latin small letter y with circumflex":"Chữ cái Latinh y viết thường với dấu mũ","Latin capital letter y with diaeresis":"Chữ cái Latinh y viết hoa với dấu tách đôi","Latin capital letter z with acute":"Chữ cái Latinh z viết hoa với dấu sắc","Latin small letter z with acute":"Chữ cái Latinh z viết thường với dấu sắc","Latin capital letter z with dot above":"Chữ cái Latinh z viết hoa với dấu chấm ở trên","Latin small letter z with dot above":"Chữ cái Latinh z viết thường với dấu chấm ở trên","Latin capital letter z with caron":"Chữ cái Latinh z viết hoa với dấu mũ ngược","Latin small letter z with caron":"Chữ cái Latinh z viết thường với dấu mũ ngược","Latin small letter long s":"Chữ cái Latinh s dài viết thường","Less-than sign":"Ký hiệu nhỏ hơn","Greater-than sign":"Ký hiệu lớn hơn","Less-than or equal to":"Nhỏ hơn hoặc bằng","Greater-than or equal to":"Lớn hơn hoặc bằng","En dash":"Gạch ngang ngắn","Em dash":"Gạch ngang dài",Macron:"Dấu trường âm",Overline:"Gạch trên","Degree sign":"Ký hiệu độ","Minus sign":"Ký hiệu trừ","Plus-minus sign":"Ký hiệu cộng-trừ","Division sign":"Ký hiệu chia","Fraction slash":"Dấu gạch chéo phân số","Multiplication sign":"Ký hiệu nhân","Latin small letter f with hook":"Chữ cái Latinh f viết thường với móc",Integral:"Tích phân","N-ary summation":"Phép tổng n số nguyên",Infinity:"Vô cực","Square root":"Căn bậc hai","Tilde operator":"Toán tử dấu ngã","Approximately equal to":"Xấp xỉ bằng","Almost equal to":"Gần bằng","Not equal to":"Không bằng","Identical to":"Tương đương","Element of":"Thuộc","Not an element of":"Không thuộc","Contains as member":"Chứa","N-ary product":"Tích n số nguyên","Logical and":"Và logic","Logical or":"Hoặc logic","Not sign":"Không",Intersection:"Giao",Union:"Hợp","Partial differential":"Vi phân riêng phần","For all":"Với mọi","There exists":"Tồn tại","Empty set":"Tập hợp rỗng",Nabla:"Nabla","Asterisk operator":"Toán tử dấu hoa thị","Proportional to":"Tương ứng với",Angle:"Góc","Vulgar fraction one quarter":"Phân số thường một phần tư","Vulgar fraction one half":"Phân số thường một phần hai","Vulgar fraction three quarters":"Phân số thường ba phần tư","Single left-pointing angle quotation mark":"Dấu nháy đơn dạng góc chỉ sang bên trái","Single right-pointing angle quotation mark":"Dấu nháy đơn dạng góc chỉ sang bên phải","Left-pointing double angle quotation mark":"Dấu nháy kép dạng góc chỉ sang bên trái","Right-pointing double angle quotation mark":"Dấu nháy kép dạng góc chỉ sang bên phải","Left single quotation mark":"Dấu nháy đơn bên trái","Right single quotation mark":"Dấu nháy đơn bên phải","Left double quotation mark":"Dấu nháy kép bên trái","Right double quotation mark":"Dấu nháy kép bên phải","Single low-9 quotation mark":"Dấu nháy đơn kiểu low-9","Double low-9 quotation mark":"Dấu nháy kép kiểu low-9","Inverted exclamation mark":"Dấu chấm than ngược","Inverted question mark":"Dấu hỏi ngược","Two dot leader":"Hàng hai dấu chấm","Horizontal ellipsis":"Dấu chấm lửng ngang","Double dagger":"Dấu chữ thập kép","Per mille sign":"Ký hiệu phần nghìn","Per ten thousand sign":"Ký hiệu phần vạn","Double exclamation mark":"Dấu chấm than kép","Question exclamation mark":"Dấu chấm hỏi và chấm than","Exclamation question mark":"Dấu chấm than và chấm hỏi","Double question mark":"Dấu chấm hỏi kép","Copyright sign":"Ký hiệu bản quyền","Registered sign":"Ký hiệu đăng ký thương hiệu","Trade mark sign":"Ký hiệu thương hiệu","Section sign":"Ký hiệu phân đoạn","Paragraph sign":"Ký hiệu đoạn văn","Reversed paragraph sign":"Ký hiệu đoạn văn đảo ngược","Show source":"Hiển thị nguồn","Show blocks":"Hiện các khối","Select all":"Chọn tất cả","Disable editing":"Tắt tính năng chỉnh sửa","Enable editing":"Bật tính năng chỉnh sửa","Previous editable region":"Vùng có thể chỉnh sửa trước đó","Next editable region":"Vùng có thể chỉnh sửa tiếp theo","Navigate editable regions":"Di chuyển giữa các vùng có thể chỉnh sửa","Remove Format":"Xóa định dang","Page break":"Ngắt trang","media widget":"tiện ích đa phương tiện","Media URL":"Đường dẫn đa phương tiện","Paste the media URL in the input.":"Dán đường dẫn đa phương tiện vào trường","Tip: Paste the URL into the content to embed faster.":"Mẹo: Dán đường dẫn vào nội dung để nhúng ngay","The URL must not be empty.":"Đường dẫn không được để trống","This media URL is not supported.":"Đường dẫn đa phương tiện không hỗ trợ","Insert media":"Chèn đa phương tiện",Media:"Phương tiện","Media toolbar":"Thanh công cụ đa phương tiện","Open media in new tab":"Mở nội dung nghe nhìn trong tab mới","Media embed":"Nhúng tệp đa phương tiện","Numbered List":"Danh sách đánh số","Bulleted List":"Danh sách đánh ký hiệu","To-do List":"Danh sách cần làm","Bulleted list styles toolbar":"Thanh công cụ kiểu danh sách có dấu đầu dòng","Numbered list styles toolbar":"Thanh công cụ kiểu danh sách được đánh số","Toggle the disc list style":"Bật/tắt kiểu danh sách dạng đĩa","Toggle the circle list style":"Bật/tắt kiểu danh sách dạng vòng tròn","Toggle the square list style":"Bật/tắt kiểu danh sách dạng vuông","Toggle the decimal list style":"Bật/tắt kiểu danh sách dạng thập phân","Toggle the decimal with leading zero list style":"Bật/tắt kiểu danh sách dạng thập phân bắt đầu bằng số 0","Toggle the lower–roman list style":"Bật/tắt kiểu danh sách chữ số La Mã viết thường","Toggle the upper–roman list style":"Bật/tắt kiểu danh sách chữ số La Mã viết hoa","Toggle the lower–latin list style":"Bật/tắt kiểu danh sách chữ cái Latinh viết thường","Toggle the upper–latin list style":"Bật/tắt kiểu danh sách chữ cái Latinh viết hoa",Disc:"Đĩa",Circle:"Tròn",Square:"Vuông",Decimal:"Thập phân","Decimal with leading zero":"Thập phân bắt đầu bằng số 0","Lower–roman":"Chữ số La Mã viết thường","Upper-roman":"Chữ số La Mã viết hoa","Lower-latin":"Chữ cái Latinh viết thường","Upper-latin":"Chữ cái Latinh viết hoa","List properties":"Thuộc tính danh sách","Start at":"Bắt đầu tại","Invalid start index value.":"Giá trị chỉ mục bắt đầu không hợp lệ.","Start index must be greater than 0.":"Chỉ mục bắt đầu phải lớn hơn 0.","Reversed order":"Thứ tự đảo ngược","Keystrokes that can be used in a list":"Tổ hợp phím mà bạn có thể dùng trong danh sách","Increase list item indent":"Tăng thụt lề mục danh sách","Decrease list item indent":"Giảm thụt lề mục danh sách","Entering a to-do list":"Đang nhập danh sách việc cần làm","Leaving a to-do list":"Đang rời khỏi danh sách việc cần làm",Unlink:"Bỏ liên kết",Link:"Chèn liên kết","Link URL":"Đường dẫn liên kết","Link URL must not be empty.":"Không được để trống URL đường liên kết.","Link image":"Liên kết của ảnh","Edit link":"Sửa liên kết","Open link in new tab":"Mở liên kết","Open in a new tab":"Mở trên tab mới",Downloadable:"Có thể tải về","Create link":"Tạo liên kết","Move out of a link":"Di chuyển ra khỏi một liên kết","Link properties":"Thuộc tính đường liên kết","Displayed text":"Văn bản đã hiển thị","No links available":"Không có đường liên kết khả dụng",Language:"Ngôn ngữ","Choose language":"Chọn ngôn ngữ","Remove language":"Xóa ngôn ngữ","Increase indent":"Tăng lề","Decrease indent":"Giảm lề","image widget":"tiện ích ảnh","Wrap text":"Bọc văn bản","Break text":"Ngắt văn bản","In line":"Nội dòng","Side image":"Ảnh một bên","Full size image":"Ảnh đầy đủ","Left aligned image":"Ảnh canh trái","Centered image":"Ảnh canh giữa","Right aligned image":"Ảnh canh phải","Change image text alternative":"Đổi chữ alt của ảnh","Text alternative":"Chữ alt","Enter image caption":"Nhập mô tả ảnh","Insert image":"Chèn ảnh","Replace image":"Thay thế hình ảnh","Upload from computer":"Tải lên từ máy tính","Replace from computer":"Thay thế từ máy tính","Upload image from computer":"Tải hình ảnh lên từ máy tính","Image from computer":"Hình ảnh từ máy tính","From computer":"Từ máy tính","Replace image from computer":"Thay thế hình ảnh từ máy tính","Upload failed":"Tải thất bại","You have no image upload permissions.":"Bạn không có quyền tải ảnh lên.","Image toolbar":"Thanh công cụ hình ảnh","Resize image":"Chỉnh kích cỡ ảnh","Resize image to %0":"Chỉnh kích cỡ ảnh về %0","Resize image to the original size":"Chỉnh về ảnh kích cỡ nguyên gốc","Resize image (in %0)":"Đặt lại kích thước hình ảnh (bằng %0)",Original:"Nguyên bản","Custom image size":"Tùy chỉnh kích thước hình ảnh",Custom:"Tùy chỉnh","Image resize list":"Danh sách ảnh đã chỉnh kích thước","Insert image via URL":"Chèn ảnh từ URL","Insert via URL":"Chèn bằng URL","Image via URL":"Hình ảnh bằng URL","Via URL":"Bằng URL","Update image URL":"Cập nhật ảnh từ URL","Caption for the image":"Chú thích cho hình ảnh","Caption for image: %0":"Chú thích cho hình ảnh: %0","The value must not be empty.":"Không được để trống giá trị này.","The value should be a plain number.":"Giá trị này phải là một số thường.","Uploading image":"Đang tải hình ảnh lên","Image upload complete":"Hoàn tất quá trình tải hình ảnh lên","Error during image upload":"Xảy ra lỗi trong quá trình tải hình ảnh lên",Image:"Hình ảnh","Image Resize":"Đổi kích thước hình ảnh","Text Alternative":"Văn bản thay thế","HTML object":"Đối tượng HTML","Insert HTML":"Chèn HTML","HTML snippet":"Mẫu HTML","Paste raw HTML here...":"Dán mã HTML nguyên bản tại đây...","Edit source":"Sửa nguồn","Save changes":"Lưu thay đổi","No preview available":"Không có sẵn bản xem trước","Empty snippet content":"Nội dung đoạn mã trống","Horizontal line":"Đường ngang","Yellow marker":"Bút vàng","Green marker":"Bút xanh lá","Pink marker":"Bút hồng","Blue marker":"Bút xanh dương","Red pen":"Mực đỏ","Green pen":"Mực xanh","Remove highlight":"Xóa làm nổi",Highlight:"Làm nổi","Text highlight toolbar":"Thanh công cụ làm nổi chữ",Heading:"Tiêu đề","Choose heading":"Chọn tiêu đề","Heading 1":"Tiêu đề 1","Heading 2":"Tiêu đề 2","Heading 3":"Tiêu đề 3","Heading 4":"Tiêu đề 4","Heading 5":"Tiêu đề 5","Heading 6":"Tiêu đề 6","Type your title":"Nhập tựa đề","Type or paste your content here.":"Nhập hoặc dán nội dung tại đây","Enter fullscreen mode":"Vào chế độ toàn màn hình","Leave fullscreen mode":"Thoát chế độ toàn màn hình","Fullscreen mode":"Chế độ toàn màn hình","Toggle fullscreen mode":"Chuyển đổi chế độ toàn màn hình","Document outline":"Bố cục tài liệu","Connected users":"Những người dùng đã kết nối","Font Size":"Cỡ chữ",Tiny:"Bé",Small:"Nhỏ",Big:"Lớn",Huge:"Khổng lồ","Font Family":"Họ chữ",Default:"Mặc định","Font Color":"Màu chữ","Font Background Color":"Màu nền chữ","Document colors":"Màu văn bản","Find and replace":"Tìm và thay thế","Find in text…":"Tìm trong văn bản...",Find:"Tìm","Previous result":"Kết quả trước","Next result":"Kết quả tiếp theo",Replace:"Thay thế","Replace all":"Thay thế tất cả","Match case":"Khớp chữ hoa/chữ thường","Whole words only":"Chỉ toàn bộ từ","Replace with…":"Thay thế bằng...","Text to find must not be empty.":"Không được để trống trường văn bản cần tìm.","Tip: Find some text first in order to replace it.":"Mẹo: Tìm một đoạn văn bản trước để thay thế.","Advanced options":"Tùy chọn nâng cao","Find in the document":"Tìm trong tài liệu","Insert a soft break (a <code><br></code> element)":"Chèn dấu ngắt mềm (phần tử <code><br></code>)","Insert a hard break (a new paragraph)":"Chèn dấu ngắt cứng (đoạn văn mới)",Emoji:"Biểu tượng cảm xúc","Show all emoji...":"Hiển thị tất cả biểu tượng cảm xúc...","Find an emoji (min. 2 characters)":"Tìm biểu tượng cảm xúc (tối thiểu 2 ký tự)",'No emojis were found matching "%0".':'Không tìm thấy biểu tượng cảm xúc nào khớp với "%0".',"Keep on typing to see the emoji.":"Tiếp tục nhập để xem biểu tượng cảm xúc.","The query must contain at least two characters.":"Truy vấn phải chứa ít nhất hai ký tự.","Smileys & Expressions":"Biểu tượng cảm xúc & Biểu cảm","Gestures & People":"Cử chỉ & Con người","Animals & Nature":"Động vật & Thiên nhiên","Food & Drinks":"Đồ ăn & Thức uống","Travel & Places":"Du lịch & Địa điểm",Activities:"Hoạt động",Objects:"Vật thể",Symbols:"Biểu tượng",Flags:"Cờ","Select skin tone":"Chọn tông màu da","Default skin tone":"Tông màu da mặc định","Light skin tone":"Tông màu da sáng","Medium Light skin tone":"Tông màu da sáng trung bình","Medium skin tone":"Tông màu da trung bình","Medium Dark skin tone":"Tông màu da tối trung bình","Dark skin tone":"Tông màu da tối","Emoji picker":"Bảng chọn biểu tượng cảm xúc",Cancel:"Hủy",Clear:"Xóa","Remove color":"Xóa màu","Restore default":"Khôi phục giá trị mặc định",Save:"Lưu","Show more items":"Xem thêm","%0 of %1":"%0 đến %1","Cannot upload file:":"Không thể tải file:","Rich Text Editor. Editing area: %0":"Trình chỉnh sửa Văn bản dạng RTF. Vùng chỉnh sửa: %0","Insert with file manager":"Chèn bằng trình quản lý tập tin","Replace with file manager":"Thay thế bằng trình quản lý tập tin","Insert image with file manager":"Chèn hình ảnh bằng trình quản lý tập tin","Replace image with file manager":"Thay thế hình ảnh bằng trình quản lý tập tin",File:"Tệp","With file manager":"Với trình quản lý tệp","Toggle caption off":"Ẩn chú thích","Toggle caption on":"Hiện chú thích","Content editing keystrokes":"Tổ hợp phím chỉnh sửa nội dung","These keyboard shortcuts allow for quick access to content editing features.":"Những phím tắt này giúp bạn truy cập nhanh vào các tính năng chỉnh sửa nội dung.","User interface and content navigation keystrokes":"Giao diện người dùng và tổ hợp phím điều hướng nội dung","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Sử dụng các tổ hợp phím sau đây để điều hướng hiệu quả hơn trong giao diện người dùng CKEditor 5.","Close contextual balloons, dropdowns, and dialogs":"Đóng bong bóng theo ngữ cảnh, menu thả xuống và hộp thoại","Open the accessibility help dialog":"Mở hộp thoại trợ giúp về khả năng tiếp cận","Move focus between form fields (inputs, buttons, etc.)":"Di chuyển tiêu điểm giữa các trường biểu mẫu (nội dung nhập, nút, v.v.)","Move focus to the menu bar, navigate between menu bars":"Di chuyển tiêu điểm đến thanh menu, điều hướng giữa các thanh menu","Move focus to the toolbar, navigate between toolbars":"Di chuyển tiêu điểm đến thanh công cụ, điều hướng giữa các thanh công cụ","Navigate through the toolbar or menu bar":"Điều hướng trên thanh công cụ hoặc thanh menu","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Thực thi nút hiện đang ưu tiên. Việc thực thi các nút tương tác với nội dung soạn thảo sẽ làm di chuyển tiêu điểm trở lại phần nội dung.",Accept:"Chấp nhận",Paragraph:"Đoạn văn","Color picker":"Bộ chọn màu","Please try a different phrase or check the spelling.":"Vui lòng thử một cụm từ khác hoặc kiểm tra lại cụm từ.",Source:"Nguồn",Insert:"Chèn",Update:"Cập nhật",Back:"Quay lại","Insert code block":"Chèn khối mã","Plain text":"Văn bản thuần","Leaving %0 code snippet":"Đang rời khỏi đoạn mã snippet %0","Entering %0 code snippet":"Đang nhập đoạn mã snippet %0","Entering code snippet":"Đang nhập đoạn mã snippet","Leaving code snippet":"Đang rời khỏi đoạn mã snippet","Code block":"Khối mã","Copy selected content":"Sao chép nội dung đã chọn","Paste content":"Dán nội dung","Paste content as plain text":"Dán nội dung dưới dạng văn bản thuần túy","Insert image or file":"Chèn ảnh hoặc file","Could not obtain resized image URL.":"Không thể lấy được đường dẫn ảnh đã đổi kích thước","Selecting resized image failed":"Chọn ảnh đã đổi kích thước thất bại","Could not insert image at the current position.":"Không thể chèn ảnh ở vị trí hiện tại","Inserting image failed":"Chèn ảnh thất bại",Bookmark:"Dấu trang","Edit bookmark":"Chỉnh sửa dấu trang","Remove bookmark":"Xóa dấu trang","Bookmark name":"Tên dấu trang","Enter the bookmark name without spaces.":"Nhập tên dấu trang không có khoảng trắng.","Bookmark must not be empty.":"Dấu trang không được để trống.","Bookmark name cannot contain space characters.":"Tên dấu trang không được chứa ký tự khoảng trắng.","Bookmark name already exists.":"Tên dấu trang đã tồn tại.","bookmark widget":"tiện ích đánh dấu trang","Bookmark toolbar":"Thanh công cụ Đánh dấu trang",Bookmarks:"Dấu trang","No bookmarks available.":"Không có dấu trang khả dụng.","Scroll to bookmark":"Cuộn chuột đến dấu trang","Open file manager":"Mở trình quản lý tệp","Cannot determine a category for the uploaded file.":"Không thể xác định danh mục cho tệp được tải lên.","Cannot access default workspace.":"Không thể truy cập vào không gian làm việc mặc định.","You have no image editing permissions.":"Bạn không có quyền chỉnh sửa ảnh.","Edit image":"Chỉnh sửa hình ảnh","Processing the edited image.":"Xử lý hình ảnh đã chỉnh sửa.","Server failed to process the image.":"Máy chủ không thể xử lý hình ảnh.","Failed to determine category of edited image.":"Không thể xác định danh mục hình ảnh đã chỉnh sửa.","Block quote":"Trích dẫn",Bold:"Đậm",Italic:"Nghiêng",Underline:"Gạch dưới",Code:"Code",Strikethrough:"Gạch ngang",Subscript:"Chữ nhỏ dưới",Superscript:"Chữ nhỏ trên","Italic text":"In nghiêng chữ","Move out of an inline code style":"Thoát khỏi kiểu mã nội dòng","Bold text":"In đậm chữ","Underline text":"Gạch chân chữ","Strikethrough text":"Gạch ngang chữ","Saving changes":"Đang lưu","Revert autoformatting action":"Hoàn nguyên thao tác tự động định dạng","Align left":"Canh trái","Align right":"Canh phải","Align center":"Canh giữa",Justify:"Canh đều","Text alignment":"Căn chỉnh văn bản","Text alignment toolbar":"Thanh công cụ canh chữ"},getPluralForm(n){return 0}}};const dB={en:{dictionary:{"Words: %0":"Words: %0","Characters: %0":"Characters: %0","Widget toolbar":"Widget toolbar","Insert paragraph before block":"Insert paragraph before block","Insert paragraph after block":"Insert paragraph after block","Press Enter to type after or press Shift + Enter to type before the widget":"Press Enter to type after or press Shift + Enter to type before the widget","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Keystrokes that can be used when a widget is selected (for example: image, table, etc.)","Insert a new paragraph directly after a widget":"Insert a new paragraph directly after a widget","Insert a new paragraph directly before a widget":"Insert a new paragraph directly before a widget","Move the caret to allow typing directly before a widget":"Move the caret to allow typing directly before a widget","Move the caret to allow typing directly after a widget":"Move the caret to allow typing directly after a widget","Move focus from an editable area back to the parent widget":"Move focus from an editable area back to the parent widget","Upload in progress":"Upload in progress",Undo:"Undo",Redo:"Redo","Rich Text Editor":"Rich Text Editor","Edit block":"Edit block","Click to edit block":"Click to edit block","Drag to move":"Drag to move",Next:"Next",Previous:"Previous","Editor toolbar":"Editor toolbar","Dropdown toolbar":"Dropdown toolbar","Dropdown menu":"Dropdown menu",Black:"Black","Dim grey":"Dim grey",Grey:"Grey","Light grey":"Light grey",White:"White",Red:"Red",Orange:"Orange",Yellow:"Yellow","Light green":"Light green",Green:"Green",Aquamarine:"Aquamarine",Turquoise:"Turquoise","Light blue":"Light blue",Blue:"Blue",Purple:"Purple","Editor block content toolbar":"Editor block content toolbar","Editor contextual toolbar":"Editor contextual toolbar",HEX:"HEX","No results found":"No results found","No searchable items":"No searchable items","Editor dialog":"Editor dialog",Close:"Close","Help Contents. To close this dialog press ESC.":"Help Contents. To close this dialog press ESC.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Below, you can find a list of keyboard shortcuts that can be used in the editor.","(may require <kbd>Fn</kbd>)":"(may require <kbd>Fn</kbd>)",Accessibility:"Accessibility","Accessibility help":"Accessibility help","Press %0 for help.":"Press %0 for help.","Move focus in and out of an active dialog window":"Move focus in and out of an active dialog window",MENU_BAR_MENU_FILE:"File",MENU_BAR_MENU_EDIT:"Edit",MENU_BAR_MENU_VIEW:"View",MENU_BAR_MENU_INSERT:"Insert",MENU_BAR_MENU_FORMAT:"Format",MENU_BAR_MENU_TOOLS:"Tools",MENU_BAR_MENU_HELP:"Help",MENU_BAR_MENU_TEXT:"Text",MENU_BAR_MENU_FONT:"Font","Editor menu bar":"Editor menu bar",'Please enter a valid color (e.g. "ff0000").':'Please enter a valid color (e.g. "ff0000").',"Insert table":"Insert table","Header column":"Header column","Insert column left":"Insert column left","Insert column right":"Insert column right","Delete column":"Delete column","Select column":"Select column",Column:"Column","Header row":"Header row","Insert row below":"Insert row below","Insert row above":"Insert row above","Delete row":"Delete row","Select row":"Select row",Row:"Row","Merge cell up":"Merge cell up","Merge cell right":"Merge cell right","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Split cell vertically":"Split cell vertically","Split cell horizontally":"Split cell horizontally","Merge cells":"Merge cells","Table toolbar":"Table toolbar","Table properties":"Table properties","Cell properties":"Cell properties",Border:"Border",Style:"Style",Width:"Width",Height:"Height",Color:"Color",Background:"Background",Padding:"Padding",Dimensions:"Dimensions","Table cell text alignment":"Table cell text alignment",Alignment:"Alignment","Horizontal text alignment toolbar":"Horizontal text alignment toolbar","Vertical text alignment toolbar":"Vertical text alignment toolbar","Table alignment toolbar":"Table alignment toolbar",None:"None",Solid:"Solid",Dotted:"Dotted",Dashed:"Dashed",Double:"Double",Groove:"Groove",Ridge:"Ridge",Inset:"Inset",Outset:"Outset","Align cell text to the left":"Align cell text to the left","Align cell text to the center":"Align cell text to the center","Align cell text to the right":"Align cell text to the right","Justify cell text":"Justify cell text","Align cell text to the top":"Align cell text to the top","Align cell text to the middle":"Align cell text to the middle","Align cell text to the bottom":"Align cell text to the bottom","Align table to the left":"Align table to the left","Center table":"Center table","Align table to the right":"Align table to the right",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'The value is invalid. Try "10px" or "2em" or simply "2".',"Enter table caption":"Enter table caption","Keystrokes that can be used in a table cell":"Keystrokes that can be used in a table cell","Move the selection to the next cell":"Move the selection to the next cell","Move the selection to the previous cell":"Move the selection to the previous cell","Insert a new table row (when in the last cell of a table)":"Insert a new table row (when in the last cell of a table)","Navigate through the table":"Navigate through the table",Table:"Table","Insert table layout":"Insert table layout","Table layout":"Table layout","Layout table":"Layout table","Content table":"Content table","Choose table type":"Choose table type","Table type":"Table type","Table type options":"Table type options",Styles:"Styles","Multiple styles":"Multiple styles","Block styles":"Block styles","Text styles":"Text styles","Special characters":"Special characters",Category:"Category",All:"All",Arrows:"Arrows",Currency:"Currency",Latin:"Latin",Mathematical:"Mathematical",Text:"Text","leftwards simple arrow":"leftwards simple arrow","rightwards simple arrow":"rightwards simple arrow","upwards simple arrow":"upwards simple arrow","downwards simple arrow":"downwards simple arrow","leftwards double arrow":"leftwards double arrow","rightwards double arrow":"rightwards double arrow","upwards double arrow":"upwards double arrow","downwards double arrow":"downwards double arrow","leftwards dashed arrow":"leftwards dashed arrow","rightwards dashed arrow":"rightwards dashed arrow","upwards dashed arrow":"upwards dashed arrow","downwards dashed arrow":"downwards dashed arrow","leftwards arrow to bar":"leftwards arrow to bar","rightwards arrow to bar":"rightwards arrow to bar","upwards arrow to bar":"upwards arrow to bar","downwards arrow to bar":"downwards arrow to bar","up down arrow with base":"up down arrow with base","back with leftwards arrow above":"back with leftwards arrow above","end with leftwards arrow above":"end with leftwards arrow above","on with exclamation mark with left right arrow above":"on with exclamation mark with left right arrow above","soon with rightwards arrow above":"soon with rightwards arrow above","top with upwards arrow above":"top with upwards arrow above","Dollar sign":"Dollar sign","Euro sign":"Euro sign","Yen sign":"Yen sign","Pound sign":"Pound sign","Cent sign":"Cent sign","Euro-currency sign":"Euro-currency sign","Colon sign":"Colon sign","Cruzeiro sign":"Cruzeiro sign","French franc sign":"French franc sign","Lira sign":"Lira sign","Currency sign":"Currency sign","Bitcoin sign":"Bitcoin sign","Mill sign":"Mill sign","Naira sign":"Naira sign","Peseta sign":"Peseta sign","Rupee sign":"Rupee sign","Won sign":"Won sign","New sheqel sign":"New sheqel sign","Dong sign":"Dong sign","Kip sign":"Kip sign","Tugrik sign":"Tugrik sign","Drachma sign":"Drachma sign","German penny sign":"German penny sign","Peso sign":"Peso sign","Guarani sign":"Guarani sign","Austral sign":"Austral sign","Hryvnia sign":"Hryvnia sign","Cedi sign":"Cedi sign","Livre tournois sign":"Livre tournois sign","Spesmilo sign":"Spesmilo sign","Tenge sign":"Tenge sign","Indian rupee sign":"Indian rupee sign","Turkish lira sign":"Turkish lira sign","Nordic mark sign":"Nordic mark sign","Manat sign":"Manat sign","Ruble sign":"Ruble sign","Latin capital letter a with macron":"Latin capital letter a with macron","Latin small letter a with macron":"Latin small letter a with macron","Latin capital letter a with breve":"Latin capital letter a with breve","Latin small letter a with breve":"Latin small letter a with breve","Latin capital letter a with ogonek":"Latin capital letter a with ogonek","Latin small letter a with ogonek":"Latin small letter a with ogonek","Latin capital letter c with acute":"Latin capital letter c with acute","Latin small letter c with acute":"Latin small letter c with acute","Latin capital letter c with circumflex":"Latin capital letter c with circumflex","Latin small letter c with circumflex":"Latin small letter c with circumflex","Latin capital letter c with dot above":"Latin capital letter c with dot above","Latin small letter c with dot above":"Latin small letter c with dot above","Latin capital letter c with caron":"Latin capital letter c with caron","Latin small letter c with caron":"Latin small letter c with caron","Latin capital letter d with caron":"Latin capital letter d with caron","Latin small letter d with caron":"Latin small letter d with caron","Latin capital letter d with stroke":"Latin capital letter d with stroke","Latin small letter d with stroke":"Latin small letter d with stroke","Latin capital letter e with macron":"Latin capital letter e with macron","Latin small letter e with macron":"Latin small letter e with macron","Latin capital letter e with breve":"Latin capital letter e with breve","Latin small letter e with breve":"Latin small letter e with breve","Latin capital letter e with dot above":"Latin capital letter e with dot above","Latin small letter e with dot above":"Latin small letter e with dot above","Latin capital letter e with ogonek":"Latin capital letter e with ogonek","Latin small letter e with ogonek":"Latin small letter e with ogonek","Latin capital letter e with caron":"Latin capital letter e with caron","Latin small letter e with caron":"Latin small letter e with caron","Latin capital letter g with circumflex":"Latin capital letter g with circumflex","Latin small letter g with circumflex":"Latin small letter g with circumflex","Latin capital letter g with breve":"Latin capital letter g with breve","Latin small letter g with breve":"Latin small letter g with breve","Latin capital letter g with dot above":"Latin capital letter g with dot above","Latin small letter g with dot above":"Latin small letter g with dot above","Latin capital letter g with cedilla":"Latin capital letter g with cedilla","Latin small letter g with cedilla":"Latin small letter g with cedilla","Latin capital letter h with circumflex":"Latin capital letter h with circumflex","Latin small letter h with circumflex":"Latin small letter h with circumflex","Latin capital letter h with stroke":"Latin capital letter h with stroke","Latin small letter h with stroke":"Latin small letter h with stroke","Latin capital letter i with tilde":"Latin capital letter i with tilde","Latin small letter i with tilde":"Latin small letter i with tilde","Latin capital letter i with macron":"Latin capital letter i with macron","Latin small letter i with macron":"Latin small letter i with macron","Latin capital letter i with breve":"Latin capital letter i with breve","Latin small letter i with breve":"Latin small letter i with breve","Latin capital letter i with ogonek":"Latin capital letter i with ogonek","Latin small letter i with ogonek":"Latin small letter i with ogonek","Latin capital letter i with dot above":"Latin capital letter i with dot above","Latin small letter dotless i":"Latin small letter dotless i","Latin capital ligature ij":"Latin capital ligature ij","Latin small ligature ij":"Latin small ligature ij","Latin capital letter j with circumflex":"Latin capital letter j with circumflex","Latin small letter j with circumflex":"Latin small letter j with circumflex","Latin capital letter k with cedilla":"Latin capital letter k with cedilla","Latin small letter k with cedilla":"Latin small letter k with cedilla","Latin small letter kra":"Latin small letter kra","Latin capital letter l with acute":"Latin capital letter l with acute","Latin small letter l with acute":"Latin small letter l with acute","Latin capital letter l with cedilla":"Latin capital letter l with cedilla","Latin small letter l with cedilla":"Latin small letter l with cedilla","Latin capital letter l with caron":"Latin capital letter l with caron","Latin small letter l with caron":"Latin small letter l with caron","Latin capital letter l with middle dot":"Latin capital letter l with middle dot","Latin small letter l with middle dot":"Latin small letter l with middle dot","Latin capital letter l with stroke":"Latin capital letter l with stroke","Latin small letter l with stroke":"Latin small letter l with stroke","Latin capital letter n with acute":"Latin capital letter n with acute","Latin small letter n with acute":"Latin small letter n with acute","Latin capital letter n with cedilla":"Latin capital letter n with cedilla","Latin small letter n with cedilla":"Latin small letter n with cedilla","Latin capital letter n with caron":"Latin capital letter n with caron","Latin small letter n with caron":"Latin small letter n with caron","Latin small letter n preceded by apostrophe":"Latin small letter n preceded by apostrophe","Latin capital letter eng":"Latin capital letter eng","Latin small letter eng":"Latin small letter eng","Latin capital letter o with macron":"Latin capital letter o with macron","Latin small letter o with macron":"Latin small letter o with macron","Latin capital letter o with breve":"Latin capital letter o with breve","Latin small letter o with breve":"Latin small letter o with breve","Latin capital letter o with double acute":"Latin capital letter o with double acute","Latin small letter o with double acute":"Latin small letter o with double acute","Latin capital ligature oe":"Latin capital ligature oe","Latin small ligature oe":"Latin small ligature oe","Latin capital letter r with acute":"Latin capital letter r with acute","Latin small letter r with acute":"Latin small letter r with acute","Latin capital letter r with cedilla":"Latin capital letter r with cedilla","Latin small letter r with cedilla":"Latin small letter r with cedilla","Latin capital letter r with caron":"Latin capital letter r with caron","Latin small letter r with caron":"Latin small letter r with caron","Latin capital letter s with acute":"Latin capital letter s with acute","Latin small letter s with acute":"Latin small letter s with acute","Latin capital letter s with circumflex":"Latin capital letter s with circumflex","Latin small letter s with circumflex":"Latin small letter s with circumflex","Latin capital letter s with cedilla":"Latin capital letter s with cedilla","Latin small letter s with cedilla":"Latin small letter s with cedilla","Latin capital letter s with caron":"Latin capital letter s with caron","Latin small letter s with caron":"Latin small letter s with caron","Latin capital letter t with cedilla":"Latin capital letter t with cedilla","Latin small letter t with cedilla":"Latin small letter t with cedilla","Latin capital letter t with caron":"Latin capital letter t with caron","Latin small letter t with caron":"Latin small letter t with caron","Latin capital letter t with stroke":"Latin capital letter t with stroke","Latin small letter t with stroke":"Latin small letter t with stroke","Latin capital letter u with tilde":"Latin capital letter u with tilde","Latin small letter u with tilde":"Latin small letter u with tilde","Latin capital letter u with macron":"Latin capital letter u with macron","Latin small letter u with macron":"Latin small letter u with macron","Latin capital letter u with breve":"Latin capital letter u with breve","Latin small letter u with breve":"Latin small letter u with breve","Latin capital letter u with ring above":"Latin capital letter u with ring above","Latin small letter u with ring above":"Latin small letter u with ring above","Latin capital letter u with double acute":"Latin capital letter u with double acute","Latin small letter u with double acute":"Latin small letter u with double acute","Latin capital letter u with ogonek":"Latin capital letter u with ogonek","Latin small letter u with ogonek":"Latin small letter u with ogonek","Latin capital letter w with circumflex":"Latin capital letter w with circumflex","Latin small letter w with circumflex":"Latin small letter w with circumflex","Latin capital letter y with circumflex":"Latin capital letter y with circumflex","Latin small letter y with circumflex":"Latin small letter y with circumflex","Latin capital letter y with diaeresis":"Latin capital letter y with diaeresis","Latin capital letter z with acute":"Latin capital letter z with acute","Latin small letter z with acute":"Latin small letter z with acute","Latin capital letter z with dot above":"Latin capital letter z with dot above","Latin small letter z with dot above":"Latin small letter z with dot above","Latin capital letter z with caron":"Latin capital letter z with caron","Latin small letter z with caron":"Latin small letter z with caron","Latin small letter long s":"Latin small letter long s","Less-than sign":"Less-than sign","Greater-than sign":"Greater-than sign","Less-than or equal to":"Less-than or equal to","Greater-than or equal to":"Greater-than or equal to","En dash":"En dash","Em dash":"Em dash",Macron:"Macron",Overline:"Overline","Degree sign":"Degree sign","Minus sign":"Minus sign","Plus-minus sign":"Plus-minus sign","Division sign":"Division sign","Fraction slash":"Fraction slash","Multiplication sign":"Multiplication sign","Latin small letter f with hook":"Latin small letter f with hook",Integral:"Integral","N-ary summation":"N-ary summation",Infinity:"Infinity","Square root":"Square root","Tilde operator":"Tilde operator","Approximately equal to":"Approximately equal to","Almost equal to":"Almost equal to","Not equal to":"Not equal to","Identical to":"Identical to","Element of":"Element of","Not an element of":"Not an element of","Contains as member":"Contains as member","N-ary product":"N-ary product","Logical and":"Logical and","Logical or":"Logical or","Not sign":"Not sign",Intersection:"Intersection",Union:"Union","Partial differential":"Partial differential","For all":"For all","There exists":"There exists","Empty set":"Empty set",Nabla:"Nabla","Asterisk operator":"Asterisk operator","Proportional to":"Proportional to",Angle:"Angle","Vulgar fraction one quarter":"Vulgar fraction one quarter","Vulgar fraction one half":"Vulgar fraction one half","Vulgar fraction three quarters":"Vulgar fraction three quarters","Single left-pointing angle quotation mark":"Single left-pointing angle quotation mark","Single right-pointing angle quotation mark":"Single right-pointing angle quotation mark","Left-pointing double angle quotation mark":"Left-pointing double angle quotation mark","Right-pointing double angle quotation mark":"Right-pointing double angle quotation mark","Left single quotation mark":"Left single quotation mark","Right single quotation mark":"Right single quotation mark","Left double quotation mark":"Left double quotation mark","Right double quotation mark":"Right double quotation mark","Single low-9 quotation mark":"Single low-9 quotation mark","Double low-9 quotation mark":"Double low-9 quotation mark","Inverted exclamation mark":"Inverted exclamation mark","Inverted question mark":"Inverted question mark","Two dot leader":"Two dot leader","Horizontal ellipsis":"Horizontal ellipsis","Double dagger":"Double dagger","Per mille sign":"Per mille sign","Per ten thousand sign":"Per ten thousand sign","Double exclamation mark":"Double exclamation mark","Question exclamation mark":"Question exclamation mark","Exclamation question mark":"Exclamation question mark","Double question mark":"Double question mark","Copyright sign":"Copyright sign","Registered sign":"Registered sign","Trade mark sign":"Trade mark sign","Section sign":"Section sign","Paragraph sign":"Paragraph sign","Reversed paragraph sign":"Reversed paragraph sign","Show source":"Show source","Show blocks":"Show blocks","Select all":"Select all","Disable editing":"Disable editing","Enable editing":"Enable editing","Previous editable region":"Previous editable region","Next editable region":"Next editable region","Navigate editable regions":"Navigate editable regions","Remove Format":"Remove Format","Page break":"Page break","media widget":"media widget","Media URL":"Media URL","Paste the media URL in the input.":"Paste the media URL in the input.","Tip: Paste the URL into the content to embed faster.":"Tip: Paste the URL into the content to embed faster.","The URL must not be empty.":"The URL must not be empty.","This media URL is not supported.":"This media URL is not supported.","Insert media":"Insert media",Media:"Media","Media toolbar":"Media toolbar","Open media in new tab":"Open media in new tab","Media embed":"Media embed","Numbered List":"Numbered List","Bulleted List":"Bulleted List","To-do List":"To-do List","Bulleted list styles toolbar":"Bulleted list styles toolbar","Numbered list styles toolbar":"Numbered list styles toolbar","Toggle the disc list style":"Toggle the disc list style","Toggle the circle list style":"Toggle the circle list style","Toggle the square list style":"Toggle the square list style","Toggle the decimal list style":"Toggle the decimal list style","Toggle the decimal with leading zero list style":"Toggle the decimal with leading zero list style","Toggle the lower–roman list style":"Toggle the lower–roman list style","Toggle the upper–roman list style":"Toggle the upper–roman list style","Toggle the lower–latin list style":"Toggle the lower–latin list style","Toggle the upper–latin list style":"Toggle the upper–latin list style",Disc:"Disc",Circle:"Circle",Square:"Square",Decimal:"Decimal","Decimal with leading zero":"Decimal with leading zero","Lower–roman":"Lower–roman","Upper-roman":"Upper-roman","Lower-latin":"Lower-latin","Upper-latin":"Upper-latin","List properties":"List properties","Start at":"Start at","Invalid start index value.":"Invalid start index value.","Start index must be greater than 0.":"Start index must be greater than 0.","Reversed order":"Reversed order","Keystrokes that can be used in a list":"Keystrokes that can be used in a list","Increase list item indent":"Increase list item indent","Decrease list item indent":"Decrease list item indent","Entering a to-do list":"Entering a to-do list","Leaving a to-do list":"Leaving a to-do list",Unlink:"Unlink",Link:"Link","Link URL":"Link URL","Link URL must not be empty.":"Link URL must not be empty.","Link image":"Link image","Edit link":"Edit link","Open link in new tab":"Open link in new tab","Open in a new tab":"Open in a new tab",Downloadable:"Downloadable","Create link":"Create link","Move out of a link":"Move out of a link","Link properties":"Link properties","Displayed text":"Displayed text","No links available":"No links available",Language:"Language","Choose language":"Choose language","Remove language":"Remove language","Increase indent":"Increase indent","Decrease indent":"Decrease indent","image widget":"image widget","Wrap text":"Wrap text","Break text":"Break text","In line":"In line","Side image":"Side image","Full size image":"Full size image","Left aligned image":"Left aligned image","Centered image":"Centered image","Right aligned image":"Right aligned image","Change image text alternative":"Change image text alternative","Text alternative":"Text alternative","Enter image caption":"Enter image caption","Insert image":"Insert image","Replace image":"Replace image","Upload from computer":"Upload from computer","Replace from computer":"Replace from computer","Upload image from computer":"Upload image from computer","Image from computer":"Image from computer","From computer":"From computer","Replace image from computer":"Replace image from computer","Upload failed":"Upload failed","You have no image upload permissions.":"You have no image upload permissions.","Image toolbar":"Image toolbar","Resize image":"Resize image","Resize image to %0":"Resize image to %0","Resize image to the original size":"Resize image to the original size","Resize image (in %0)":"Resize image (in %0)",Original:"Original","Custom image size":"Custom image size",Custom:"Custom","Image resize list":"Image resize list","Insert image via URL":"Insert image via URL","Insert via URL":"Insert via URL","Image via URL":"Image via URL","Via URL":"Via URL","Update image URL":"Update image URL","Caption for the image":"Caption for the image","Caption for image: %0":"Caption for image: %0","The value must not be empty.":"The value must not be empty.","The value should be a plain number.":"The value should be a plain number.","Uploading image":"Uploading image","Image upload complete":"Image upload complete","Error during image upload":"Error during image upload",Image:"Image","Image Resize":"Image Resize","Text Alternative":"Text Alternative","HTML object":"HTML object","Insert HTML":"Insert HTML","HTML snippet":"HTML snippet","Paste raw HTML here...":"Paste raw HTML here...","Edit source":"Edit source","Save changes":"Save changes","No preview available":"No preview available","Empty snippet content":"Empty snippet content","Horizontal line":"Horizontal line","Yellow marker":"Yellow marker","Green marker":"Green marker","Pink marker":"Pink marker","Blue marker":"Blue marker","Red pen":"Red pen","Green pen":"Green pen","Remove highlight":"Remove highlight",Highlight:"Highlight","Text highlight toolbar":"Text highlight toolbar",Heading:"Heading","Choose heading":"Choose heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6","Type your title":"Type your title","Type or paste your content here.":"Type or paste your content here.","Enter fullscreen mode":"Enter fullscreen mode","Leave fullscreen mode":"Leave fullscreen mode","Fullscreen mode":"Fullscreen mode","Toggle fullscreen mode":"Toggle fullscreen mode","Document outline":"Document outline","Connected users":"Connected users","Font Size":"Font Size",Tiny:"Tiny",Small:"Small",Big:"Big",Huge:"Huge","Font Family":"Font Family",Default:"Default","Font Color":"Font Color","Font Background Color":"Font Background Color","Document colors":"Document colors","Find and replace":"Find and replace","Find in text…":"Find in text…",Find:"Find","Previous result":"Previous result","Next result":"Next result",Replace:"Replace","Replace all":"Replace all","Match case":"Match case","Whole words only":"Whole words only","Replace with…":"Replace with…","Text to find must not be empty.":"Text to find must not be empty.","Tip: Find some text first in order to replace it.":"Tip: Find some text first in order to replace it.","Advanced options":"Advanced options","Find in the document":"Find in the document","Insert a soft break (a <code><br></code> element)":"Insert a soft break (a <code><br></code> element)","Insert a hard break (a new paragraph)":"Insert a hard break (a new paragraph)",Emoji:"Emoji","Show all emoji...":"Show all emoji...","Find an emoji (min. 2 characters)":"Find an emoji (min. 2 characters)",'No emojis were found matching "%0".':'No emojis were found matching "%0".',"Keep on typing to see the emoji.":"Keep on typing to see the emoji.","The query must contain at least two characters.":"The query must contain at least two characters.","Smileys & Expressions":"Smileys & Expressions","Gestures & People":"Gestures & People","Animals & Nature":"Animals & Nature","Food & Drinks":"Food & Drinks","Travel & Places":"Travel & Places",Activities:"Activities",Objects:"Objects",Symbols:"Symbols",Flags:"Flags","Select skin tone":"Select skin tone","Default skin tone":"Default skin tone","Light skin tone":"Light skin tone","Medium Light skin tone":"Medium Light skin tone","Medium skin tone":"Medium skin tone","Medium Dark skin tone":"Medium Dark skin tone","Dark skin tone":"Dark skin tone","Emoji picker":"Emoji picker",Cancel:"Cancel",Clear:"Clear","Remove color":"Remove color","Restore default":"Restore default",Save:"Save","Show more items":"Show more items","%0 of %1":"%0 of %1","Cannot upload file:":"Cannot upload file:","Rich Text Editor. Editing area: %0":"Rich Text Editor. Editing area: %0","Insert with file manager":"Insert with file manager","Replace with file manager":"Replace with file manager","Insert image with file manager":"Insert image with file manager","Replace image with file manager":"Replace image with file manager",File:"File","With file manager":"With file manager","Toggle caption off":"Toggle caption off","Toggle caption on":"Toggle caption on","Content editing keystrokes":"Content editing keystrokes","These keyboard shortcuts allow for quick access to content editing features.":"These keyboard shortcuts allow for quick access to content editing features.","User interface and content navigation keystrokes":"User interface and content navigation keystrokes","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.","Close contextual balloons, dropdowns, and dialogs":"Close contextual balloons, dropdowns, and dialogs","Open the accessibility help dialog":"Open the accessibility help dialog","Move focus between form fields (inputs, buttons, etc.)":"Move focus between form fields (inputs, buttons, etc.)","Move focus to the menu bar, navigate between menu bars":"Move focus to the menu bar, navigate between menu bars","Move focus to the toolbar, navigate between toolbars":"Move focus to the toolbar, navigate between toolbars","Navigate through the toolbar or menu bar":"Navigate through the toolbar or menu bar","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.",Accept:"Accept",Paragraph:"Paragraph","Color picker":"Color picker","Please try a different phrase or check the spelling.":"Please try a different phrase or check the spelling.",Source:"Source",Insert:"Insert",Update:"Update",Back:"Back","Insert code block":"Insert code block","Plain text":"Plain text","Leaving %0 code snippet":"Leaving %0 code snippet","Entering %0 code snippet":"Entering %0 code snippet","Entering code snippet":"Entering code snippet","Leaving code snippet":"Leaving code snippet","Code block":"Code block","Copy selected content":"Copy selected content","Paste content":"Paste content","Paste content as plain text":"Paste content as plain text","Insert image or file":"Insert image or file","Could not obtain resized image URL.":"Could not obtain resized image URL.","Selecting resized image failed":"Selecting resized image failed","Could not insert image at the current position.":"Could not insert image at the current position.","Inserting image failed":"Inserting image failed",Bookmark:"Bookmark","Edit bookmark":"Edit bookmark","Remove bookmark":"Remove bookmark","Bookmark name":"Bookmark name","Enter the bookmark name without spaces.":"Enter the bookmark name without spaces.","Bookmark must not be empty.":"Bookmark must not be empty.","Bookmark name cannot contain space characters.":"Bookmark name cannot contain space characters.","Bookmark name already exists.":"Bookmark name already exists.","bookmark widget":"bookmark widget","Bookmark toolbar":"Bookmark toolbar",Bookmarks:"Bookmarks","No bookmarks available.":"No bookmarks available.","Scroll to bookmark":"Scroll to bookmark","Open file manager":"Open file manager","Cannot determine a category for the uploaded file.":"Cannot determine a category for the uploaded file.","Cannot access default workspace.":"Cannot access default workspace.","You have no image editing permissions.":"You have no image editing permissions.","Edit image":"Edit image","Processing the edited image.":"Processing the edited image.","Server failed to process the image.":"Server failed to process the image.","Failed to determine category of edited image.":"Failed to determine category of edited image.","Block quote":"Block quote",Bold:"Bold",Italic:"Italic",Underline:"Underline",Code:"Code",Strikethrough:"Strikethrough",Subscript:"Subscript",Superscript:"Superscript","Italic text":"Italic text","Move out of an inline code style":"Move out of an inline code style","Bold text":"Bold text","Underline text":"Underline text","Strikethrough text":"Strikethrough text","Saving changes":"Saving changes","Revert autoformatting action":"Revert autoformatting action","Align left":"Align left","Align right":"Align right","Align center":"Align center",Justify:"Justify","Text alignment":"Text alignment","Text alignment toolbar":"Text alignment toolbar"},getPluralForm(n){return n!=1}}};class hB{loader;url;constructor(e,t){this.loader=e,this.url=t}async upload(){const e=new FormData;let t=await this.loader.file;e.append("name",t.name),e.append("file",t);try{let i=await Bn.post(this.url,e);return{default:{msg:i.data.msg,url:window.bindPublic?`/public${i.data.url}`:i.data.url}.url}}catch(i){throw console.error("Upload error:",i),i}}}class mB extends k{static get requires(){return["ImageUpload"]}init(){const e=this.editor,t=window.location.pathname.split("/").filter(s=>s!==""),i=t.indexOf("model"),r=i>=0?t[i+1]:void 0;e.plugins.get("FileRepository").createUploadAdapter=s=>{const o=`${window.routePrefix}/model/${r}/ckeditor5/upload`;return new hB(s,o)}}}const Ih={pl:eB,ar:tB,zn:iB,de:nB,es:rB,fr:sB,hi:oB,ko:aB,pt:lB,ru:cB,vi:uB,en:dB},gB=document.documentElement.lang,Ph=Ih[gB]||Ih.en;function fB({initialValue:n,onChange:e,options:t,disabled:i}){const r=A.useRef(null),[s,o]=A.useState(!1);A.useEffect(()=>(o(!0),()=>o(!1)),[]);const a=A.useMemo(()=>s?{translations:[Ph],toolbar:{items:t?.items??[],shouldNotGroupWhenFull:!0},plugins:[tS,vS,zS,CS,hI,yI,EI,UI,GI,jI,Sp,LP,VP,Al,NP,xp,mB,mP,ES,k2,$2,nR,Hs,aR,lR,iL,iM,QM,CM,SM,qM,nM,AS],heading:{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h1",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h2",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h3",title:"Heading 3",class:"ck-heading_heading3"},{model:"heading4",view:"h4",title:"Heading 4",class:"ck-heading_heading4"},{model:"heading5",view:"h5",title:"Heading 5",class:"ck-heading_heading5"},{model:"heading6",view:"h6",title:"Heading 6",class:"ck-heading_heading6"}]},image:{toolbar:["toggleImageCaption","imageTextAlternative","|","imageStyle:inline","imageStyle:wrapText","imageStyle:breakText","|","resizeImage"]},initialData:n,licenseKey:"GPL",link:{addTargetToExternalLinks:!0,defaultProtocol:"https://",decorators:{toggleDownloadable:{mode:"manual",label:"Downloadable",attributes:{download:"file"}}}},list:{properties:{styles:!0,startIndex:!0,reversed:!0}},placeholder:"",table:{contentToolbar:["tableColumn","tableRow","mergeTableCells","tableProperties","tableCellProperties"]}}:{},[s,t,Ph,n]),l=A.useCallback((u,d)=>{const h=d.getData();e(h)},[e]),c=A.useCallback(u=>{r.current=u},[]);return A.useEffect(()=>{r.current&&r.current.getData()!==n&&r.current.setData(n)},[n]),w.jsx("div",{className:`max-fit ${i?"pointer-events-none opacity-50 cursor-not-allowed":""}`,children:w.jsx("div",{className:"editor-container editor-container_classic-editor",children:w.jsx("div",{className:"editor-container__editor",children:w.jsx("div",{children:s&&w.jsx(qh,{editor:XA,config:a,onChange:l,onReady:c})})})})})}const pB=w.jsx("svg",{width:"10",height:"10",viewBox:"0 0 22 22",xmlns:"http://www.w3.org/2000/svg",children:w.jsx("path",{d:"M2.99998 -0.000206962C2.7441 -0.000206962 2.48794 0.0972617 2.29294 0.292762L0.292945 2.29276C-0.0980552 2.68376 -0.0980552 3.31682 0.292945 3.70682L7.58591 10.9998L0.292945 18.2928C-0.0980552 18.6838 -0.0980552 19.3168 0.292945 19.7068L2.29294 21.7068C2.68394 22.0978 3.31701 22.0978 3.70701 21.7068L11 14.4139L18.2929 21.7068C18.6829 22.0978 19.317 22.0978 19.707 21.7068L21.707 19.7068C22.098 19.3158 22.098 18.6828 21.707 18.2928L14.414 10.9998L21.707 3.70682C22.098 3.31682 22.098 2.68276 21.707 2.29276L19.707 0.292762C19.316 -0.0982383 18.6829 -0.0982383 18.2929 0.292762L11 7.58573L3.70701 0.292762C3.51151 0.0972617 3.25585 -0.000206962 2.99998 -0.000206962Z"})}),bB="_Wrapper_18nsw_1",wB="_active_18nsw_7",yB="_Page_18nsw_8",vB="_clone_18nsw_18",kB="_Remove_18nsw_29",_B="_insertBefore_18nsw_35",CB="_insertAfter_18nsw_36",LB="_vertical_18nsw_44",It={Wrapper:bB,active:wB,Page:yB,clone:vB,Remove:kB,insertBefore:_B,insertAfter:CB,vertical:LB};var TB=(n=>(n[n.Before=-1]="Before",n[n.After=1]="After",n))(TB||{}),Ab=(n=>(n.Horizontal="horizontal",n.Vertical="vertical",n.Grid="grid",n))(Ab||{});const aV=A.forwardRef(function({id:e,index:t,active:i,clone:r,insertPosition:s,layout:o,onRemove:a,style:l,url:c,mimeType:u,fileName:d,...h},m){const g=u?.startsWith("image/");return w.jsxs("li",{className:fn(It.Wrapper,i&&It.active,r&&It.clone,s===-1&&It.insertBefore,s===1&&It.insertAfter,o==="vertical"&&It.vertical),style:l,ref:m,children:[w.jsxs("button",{className:`${It.Page} after:bg-black dark:after:bg-gray-300`,"data-id":e.toString(),...h,children:[w.jsx("img",{src:c,alt:"",className:"absolute top-0 left-0 w-full h-full object-cover overflow-hidden rounded-[5px]"}),!g&&w.jsx("div",{className:"absolute inset-x-0 bottom-0 break-words text-white text-sm font-medium bg-black/75 h-[40%] rounded-b-[5px] p-2",children:d})]}),!i&&a?w.jsx("button",{className:It.Remove,onClick:a,children:pB}):null]})}),EB=A.lazy(()=>$i(()=>import("./toast-editor-DOg_gvSp.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url)),xB=A.lazy(()=>$i(()=>import("./app.js").then(n=>n.c5),__vite__mapDeps([1,2,3,4,5]),import.meta.url)),SB=A.lazy(()=>$i(()=>import("./app.js").then(n=>n.bV),__vite__mapDeps([1,2,3,4,5]),import.meta.url)),AB=A.lazy(()=>$i(()=>import("./geo-json-CzR5JBXL.js"),__vite__mapDeps([6,1,2,3,4,5]),import.meta.url)),IB=A.lazy(()=>$i(()=>import("./app.js").then(n=>n.c9),__vite__mapDeps([1,2,3,4,5]),import.meta.url)),PB=A.lazy(()=>$i(()=>import("./media-manager-WcKe1EvD.js"),__vite__mapDeps([7,1,2,3,4,5,8,9,10,11]),import.meta.url)),Hl=A.memo(({field:n,value:e,onChange:t,processing:i,notFound:r,search:s})=>{const o=HB(),a=A.useCallback(L=>{t(n.name,L.target.value)},[t,n.name]),l=A.useCallback(L=>{t(n.name,L[0])},[t,n.name]),c=A.useCallback(L=>{t(n.name,L)},[t,n.name]),u=A.useCallback(L=>{t(n.name,L)},[t,n.name]),d=A.useCallback(L=>{t(n.name,L)},[t,n.name]),h=A.useCallback(L=>{t(n.name,L)},[t,n.name]),m=A.useCallback(L=>{t(n.name,L.json)},[t,n.name]),g=A.useCallback(L=>{t(n.name,L)},[t,n.name]),f=A.useCallback(L=>{t(n.name,L)},[t,n.name]),b=A.useCallback(L=>{t(n.name,L)},[t,n.name]),y=A.useCallback(L=>{const O=L.map(U=>({id:U.id,url:U.url,mimeType:U.mimeType,filename:U.filename}));t(n.name,O)},[t,n.name]),C=A.useMemo(()=>n.type==="color"?"max-w-[40px] p-px h-[40px] border-transparent":["date","datetime-local","time","month","week"].includes(n.type)?"w-fit":"",[]);switch(n.type){case"checkbox":return w.jsx(No,{id:`${n.type}-${n.name}`,disabled:i||n.disabled,tabIndex:1,required:n.required,className:"cursor-pointer size-5 scroll-pt-30 scroll-mt-30",checked:e??!1,onCheckedChange:c});case"textarea":return w.jsx(Hb,{id:`${n.type}-${n.name}`,tabIndex:1,disabled:i||n.disabled,value:e??"",required:n.required,onChange:a,placeholder:n.label,className:"scroll-pt-30 scroll-mt-30"});case"range":return w.jsxs(w.Fragment,{children:[w.jsx("output",{children:e}),w.jsx(Ub,{defaultValue:[Number(n.value)||0],value:[Number(e)||0],max:n.options?.max?Number(n.options.max):100,min:n.options?.min?Number(n.options.min):0,step:1,id:`${n.type}-${n.name}`,onValueChange:l,disabled:i||n.disabled})]});case"select":return w.jsxs(Nb,{onValueChange:u,value:e??"",disabled:i||n.disabled,required:n.required,children:[w.jsx(Ob,{className:"w-full cursor-pointer min-h-10 scroll-pt-30 scroll-mt-30",id:n.name,children:w.jsx(Db,{placeholder:""})}),w.jsx(zb,{className:"z-[9999999]",children:(Array.isArray(n.isIn)?n.isIn.map(L=>[L,L]):Object.entries(n.isIn)).map(([L,O])=>w.jsx(Fb,{value:String(L),children:String(O)},String(L)))})]});case"association":case"association-many":case"select-many":{const O=(n.type==="association"||n.type==="association-many")&&!!n.relatedModel&&!!o,U=O?D=>o.open(n.relatedModel,D):void 0,x=O&&n.canCreateRelated?()=>o.openCreate(n.relatedModel):void 0;return w.jsx(Vb,{options:n.options,onValueChange:b,defaultValue:e??[],variant:"secondary",notFound:r,search:s,disabled:i||n.disabled,mode:n.type==="association"?"single":"multiple",maxCount:10,onOpenItem:U,onAddNew:x,className:`${i?"pointer-events-none":""} scroll-pt-30 scroll-mt-30`})}case"wysiwyg":return n.options?.name==="ckeditor"?w.jsx(fB,{initialValue:e??"",onChange:d,options:n.options?.config,disabled:i||n.disabled}):w.jsx(wi,{moduleComponent:n.options?.path,options:n.options?.config,initialValue:e??"",name:`${n.type}-${n.name}`,onChange:d,disabled:i||n.disabled});case"markdown":return n.options?.name==="toast-ui"?w.jsx(EB,{initialValue:e??"",options:n.options?.config,onChange:d,disabled:i||n.disabled}):w.jsx(wi,{moduleComponent:n.options?.path,options:n.options?.config,initialValue:e??"",name:`${n.type}-${n.name}`,onChange:d,disabled:i||n.disabled});case"table":return n.options?.name==="handsontable"?w.jsx(xB,{data:e,config:n.options?.config,onChange:h,disabled:i||n.disabled}):w.jsx(wi,{moduleComponent:n.options?.path,options:n.options?.config,initialValue:e??"",name:`${n.type}-${n.name}`,onChange:d,disabled:i||n.disabled});case"jsonEditor":return n.options?.name==="jsoneditor"?w.jsx(SB,{content:e,name:`${n.type}-${n.name}`,onChange:m,...n.options?.config,disabled:i||n.disabled}):w.jsx(wi,{moduleComponent:n.options?.path,options:n.options?.config,initialValue:e??"",name:`${n.type}-${n.name}`,onChange:m,disabled:i||n.disabled});case"codeEditor":return n.options?.name==="monaco"?w.jsx(IB,{value:e??"",onChange:g,options:n.options?.config,disabled:i||n.disabled}):w.jsx(wi,{moduleComponent:n.options?.path,options:n.options?.config,initialValue:e??"",name:`${n.type}-${n.name}`,onChange:m,disabled:i||n.disabled});case"geoJson":return n.options?.name==="leaflet"?w.jsx(AB,{mode:"all",initialFeatures:e??void 0,onFeaturesChange:f,disabled:i||n.disabled}):w.jsx(wi,{moduleComponent:n.options?.path,options:n.options?.config,initialValue:e??"",name:`${n.type}-${n.name}`,onChange:m,disabled:i||n.disabled});case"mediamanager":case"single-file":return w.jsx(PB,{layout:Ab.Grid,value:e,onChange:y,config:{...n.options},type:n.type,name:n.name});default:return w.jsx(Bb,{id:n.name,type:n.type,className:`${C} min-h-10 scroll-pt-30 scroll-mt-30`,required:n.required,tabIndex:1,value:e??"",onChange:a,disabled:i||n.disabled,placeholder:n.label})}}),lV=Object.freeze(Object.defineProperty({__proto__:null,default:Hl},Symbol.toStringTag,{value:"Module"}));var Sa=new Map,Vr=new WeakMap,Rh=0,RB=void 0;function MB(n){return n?(Vr.has(n)||(Rh+=1,Vr.set(n,Rh.toString())),Vr.get(n)):"0"}function BB(n){return Object.keys(n).sort().filter(e=>n[e]!==void 0).map(e=>`${e}_${e==="root"?MB(n.root):n[e]}`).toString()}function VB(n){const e=BB(n);let t=Sa.get(e);if(!t){const i=new Map;let r;const s=new IntersectionObserver(o=>{o.forEach(a=>{var l;const c=a.isIntersecting&&r.some(u=>a.intersectionRatio>=u);n.trackVisibility&&typeof a.isVisible>"u"&&(a.isVisible=c),(l=i.get(a.target))==null||l.forEach(u=>{u(c,a)})})},n);r=s.thresholds||(Array.isArray(n.threshold)?n.threshold:[n.threshold||0]),t={id:e,observer:s,elements:i},Sa.set(e,t)}return t}function NB(n,e,t={},i=RB){if(typeof window.IntersectionObserver>"u"&&i!==void 0){const l=n.getBoundingClientRect();return e(i,{isIntersecting:i,target:n,intersectionRatio:typeof t.threshold=="number"?t.threshold:0,time:0,boundingClientRect:l,intersectionRect:l,rootBounds:l}),()=>{}}const{id:r,observer:s,elements:o}=VB(t),a=o.get(n)||[];return o.has(n)||o.set(n,a),a.push(e),s.observe(n),function(){a.splice(a.indexOf(e),1),a.length===0&&(o.delete(n),s.unobserve(n)),o.size===0&&(s.disconnect(),Sa.delete(r))}}function OB({threshold:n,delay:e,trackVisibility:t,rootMargin:i,root:r,triggerOnce:s,skip:o,initialInView:a,fallbackInView:l,onChange:c}={}){var u;const[d,h]=A.useState(null),m=A.useRef(c),[g,f]=A.useState({inView:!!a,entry:void 0});m.current=c,A.useEffect(()=>{if(o||!d)return;let L;return L=NB(d,(O,U)=>{f({inView:O,entry:U}),m.current&&m.current(O,U),U.isIntersecting&&s&&L&&(L(),L=void 0)},{root:r,rootMargin:i,threshold:n,trackVisibility:t,delay:e},l),()=>{L&&L()}},[Array.isArray(n)?n.toString():n,d,r,i,s,o,t,l,e]);const b=(u=g.entry)==null?void 0:u.target,y=A.useRef(void 0);!d&&b&&!s&&!o&&y.current!==b&&(y.current=b,f({inView:!!a,entry:void 0}));const C=[h,g.inView,g.entry];return C.ref=C[0],C.inView=C[1],C.entry=C[2],C}const DB=({changes:n,title:e="Changes",className:t="",messages:i={}})=>{const{t:r}=Aa({page:i}),s=(l,c)=>r(l,c);if(!n||n.length===0)return w.jsx("div",{className:fn("bg-muted border border-border rounded-lg p-4",t),children:w.jsxs("div",{className:"flex items-center text-muted-foreground",children:[w.jsx(jb,{className:"w-5 h-5 mr-2"}),w.jsx("span",{children:s("Changes not found","Changes not found")})]})});const o=l=>l===null?"null":l===void 0?"—":typeof l=="boolean"?l?s("Yes","Yes"):s("No","No"):typeof l=="object"?JSON.stringify(l):String(l),a=l=>l.oldValue===void 0?"added":l.newValue===void 0?"removed":"modified";return w.jsxs("div",{className:fn("bg-card border border-border rounded-lg shadow-sm",t),children:[w.jsx("div",{className:"px-4 py-3 border-b border-border bg-muted",children:w.jsxs("h3",{className:"text-lg font-semibold text-card-foreground flex items-center",children:[w.jsx(jl,{className:"w-5 h-5 mr-2"}),e," (",n.length,")"]})}),w.jsx("div",{className:"divide-y divide-border",children:n.map((l,c)=>{const u=a(l),d=u==="added"?Wb:u==="removed"?qb:jl,h=fn("text-xs px-2 py-1 rounded-full bg-opacity-10",u==="added"&&"text-green-600 bg-green-100",u==="removed"&&"text-destructive bg-destructive/20",u==="modified"&&"text-primary bg-primary/20"),m=u==="added"?"text-green-600":u==="removed"?"text-destructive":"text-primary";return w.jsxs("div",{className:"p-4 hover:bg-muted/50 transition-colors",children:[w.jsxs("div",{className:"flex items-center justify-between mb-2",children:[w.jsxs("div",{className:"flex items-center",children:[Nt.createElement(d,{className:fn("w-4 h-4 mr-2",m)}),w.jsx("span",{className:"font-medium text-card-foreground",children:l.field})]}),w.jsx("span",{className:h,children:u==="added"?s("Added","Added"):u==="removed"?s("Removed","Removed"):s("Updated","Updated")})]}),w.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 text-sm",children:[u!=="added"&&w.jsxs("div",{className:"p-2 bg-destructive/10 border border-destructive/20 rounded",children:[w.jsxs("div",{className:"text-xs text-destructive font-medium mb-1",children:[s("Old","Old"),":"]}),w.jsx("div",{className:"text-destructive-foreground font-mono break-words",children:o(l.oldValue)})]}),u!=="removed"&&w.jsxs("div",{className:"p-2 bg-green-50 border border-green-100 rounded",children:[w.jsxs("div",{className:"text-xs text-green-600 font-medium mb-1",children:[s("New","New"),":"]}),w.jsx("div",{className:"text-green-800 font-mono break-words",children:o(l.newValue)})]})]}),u==="modified"&&w.jsxs("div",{className:"mt-2 flex items-center text-xs text-muted-foreground",children:[w.jsx($b,{className:"w-3 h-3 mr-1"}),s("changed type","changed type"),": ",l.type]})]},c)})})]})},zB=({modelName:n,modelId:e,handleWatchHistory:t})=>{const[i,r]=A.useState([]),[s,o]=A.useState(!1),[a,l]=A.useState(null),[c,u]=A.useState(!0),d="currentHistoryView",{t:h}=Aa(),m=h("Diff");A.useEffect(()=>{(async()=>{u(!0);try{const y=await Bn.post(`${window.routePrefix}/history/get-model-history`,{modelName:n,modelId:e});y.data.data&&r(y.data.data)}catch(y){console.log(y)}finally{u(!1)}})()},[n,e]);const g=async b=>{try{const y=await Bn.post(`${window.routePrefix}/history/get-model-fields`,{historyId:b});y.data.data&&(localStorage.setItem(d,b.toString()),t(y.data.data))}catch(y){console.log(y)}},f=b=>{const y=localStorage.getItem(d);return y?y===b.id.toString():b.isCurrent};return w.jsx("div",{className:"relative h-full",children:w.jsxs("div",{className:"h-full overflow-y-auto mt-5 pr-5",children:[w.jsxs(Gb,{wrapperHeight:"max-h-full",children:[w.jsx(Kb,{className:"sticky top-0 bg-background shadow",children:w.jsxs(hr,{children:[w.jsx(en,{className:"p-2 text-left",children:h("Date")}),w.jsx(en,{className:"p-2 text-left",children:h("Event")}),w.jsx(en,{className:"p-2 text-left",children:h("User")}),w.jsx(en,{className:"p-2 text-left",children:m}),w.jsx(en,{className:"p-2 text-left"})]})}),w.jsx(Zb,{children:c?w.jsx(hr,{children:w.jsx($t,{colSpan:5,className:"p-10 text-center",children:w.jsx(Jr,{className:"mx-auto size-8 animate-spin"})})}):i.length>0?i.map(b=>w.jsxs(hr,{children:[w.jsx($t,{className:"p-2 self-start pt-2.5",children:new Date(b.createdAt).toLocaleString()}),w.jsx($t,{className:"p-2 self-start pt-2.5 capitalize",children:b.action}),w.jsx($t,{className:"p-2 self-start pt-2.5 max-w-[250px] whitespace-break-spaces",children:w.jsx("div",{className:"max-w-[500px] whitespace-break-spaces font-medium text-chart-3",children:b.user.login})}),w.jsx($t,{className:"p-2 align-middle",children:w.jsx(Mt,{variant:"green",size:"sm",onClick:()=>{l(b.diff),o(!0)},children:w.jsx(Jb,{})})}),w.jsx($t,{className:"p-2 align-middle text-center",children:f(b)?w.jsx("span",{className:"font-medium",children:h("Current")}):w.jsx(Mt,{variant:"outline",size:"sm",onClick:()=>g(b.id),children:h("Watch")})})]},b.id)):w.jsx(hr,{children:w.jsx($t,{colSpan:5,className:"p-4 text-center font-medium text-muted-foreground",children:h("There is no history")})})})]}),w.jsx(Yb,{open:s,onOpenChange:b=>{o(b),b||setTimeout(()=>{document.body.removeAttribute("style")},300)},children:w.jsxs(Xb,{className:"z-[1022] sm:max-w-[60vw]",children:[w.jsx(Qb,{children:w.jsx(ew,{children:m})}),w.jsx(DB,{changes:a,className:"max-h-[80vh] overflow-auto sm:max-w-[60vw] w-full"})]})})]})})},FB=({dialogRef:n,modelId:e,modelName:t,callback:i})=>w.jsxs(Bh,{ref:n,children:[w.jsx(Vh,{}),w.jsx(Nh,{children:w.jsx(Oh,{children:w.jsx(zB,{modelId:e,modelName:t,handleWatchHistory:i})})})]}),Mh=A.memo(({field:n})=>!n||typeof n!="object"||!n.label?(console.error("Invalid field for LabelRenderer:",n),null):w.jsxs("div",{className:"flex gap-3",children:[w.jsx(Oo,{htmlFor:`${n.type}-${n.name}`,children:n.label}),n.tooltip&&w.jsx(iw,{children:w.jsxs(nw,{children:[w.jsx(rw,{onClick:e=>e.preventDefault(),children:w.jsx(Do,{iconNode:sw,className:"text-primary w-5 h-5 cursor-pointer"})}),w.jsx(ow,{align:"center",side:"top",className:"z-1002",children:w.jsx("p",{children:n.tooltip})})]})})]})),UB=A.memo(({field:n,value:e,onChange:t,processing:i,notFound:r,search:s,invalidFieldMessage:o})=>{if(!n||typeof n!="object"||!n.name||!n.type)return console.error("Invalid field for LazyField:",n),w.jsx("div",{className:"text-red-500",children:o||"Error: Invalid field data"});const[a,l]=OB({triggerOnce:!0,rootMargin:"100px 0px"});return w.jsx("div",{ref:a,className:"grid gap-4 w-full",children:l?w.jsx(Hl,{field:n,value:e,onChange:t,notFound:r,search:s,processing:i}):w.jsx(aw,{className:"w-full h-[250px] rounded-sm"})})}),Ib=({page:n,catalog:e,callback:t,openNewWindow:i,openNewWindowLabel:r,isNavigation:s,DnavVisible:o,visibleLable:a})=>{const{btnBack:l,btnHistory:c,view:u,edit:d,history:h,notFound:m,model:g,fields:f}=n.props,{t:b}=Aa(),{data:y,setData:C,post:L,processing:O,transform:U}=tw({...Object.fromEntries((f||[]).map(V=>[V.name,V.value??void 0])),jsonPopupCatalog:e}),[x,D]=A.useState(!1),[I,M]=A.useState(i??!1),[J,be]=A.useState(o??!1),Q=A.useRef(null);A.useEffect(()=>{localStorage.removeItem("currentHistoryView")},[]),A.useEffect(()=>(M(i??!1),Wl(),C({...Object.fromEntries((f||[]).map(V=>[V.name,(V.type==="mediamanager"||V.type==="single-file")&&(V.value===null||V.value===void 0)?[]:V.value])),jsonPopupCatalog:e}),()=>Wl()),[f,e,i,C]);const dr=A.useCallback((V,rt)=>{C(V,rt)},[C]);if(!Array.isArray(f))return console.error("Fields is not an array:",f),w.jsx("div",{className:"p-4 text-red-500",children:b("Error: Fields data is invalid")});if(f.length===0)return console.warn("Fields array is empty"),w.jsx("div",{className:"p-4 text-gray-500",children:b("No fields to display")});const Qi=f.filter(V=>!V||typeof V!="object"||!V.name||!V.type||!V.label);if(Qi.length>0)return console.error("Invalid fields found:",Qi),w.jsx("div",{className:"p-4 text-red-500",children:b("Error: Some fields are missing required properties (name, type, label)")});const Rb=async V=>{if(V.preventDefault(),e){D(!0);const rt=await Bn.post(n.props.postLink,y);rt.status===200&&t&&(s?t(rt.data.record,I,J):t(rt.data.record))}else{const rt=localStorage.getItem("backUrl");U(Mb=>({...Mb,redirectUrl:rt??""})),L(n.props.postLink,{onSuccess:()=>{localStorage.setItem("backUrl","")}})}};return w.jsxs(w.Fragment,{children:[w.jsx("div",{className:"w-full sticky z-[1001] top-0 bg-background shadow-md lg:hidden",children:w.jsxs("div",{className:"p-4 flex gap-4",children:[!e&&w.jsx(Mt,{className:"w-fit",asChild:!0,children:w.jsxs(ql,{href:l.link,preserveScroll:!0,children:[w.jsx(Do,{iconNode:$l}),l.title]})}),w.jsxs(Mt,{variant:"green",type:"submit",className:"w-fit lg:hidden",form:"addUserForm",disabled:x||O||n.props.view||Gl(),children:[x||O&&w.jsx(Jr,{className:"h-4 w-4 animate-spin"}),n.props.btnSave.title]}),h&&(d||u)&&w.jsx("div",{className:"flex gap-2 justify-start",children:w.jsx(Mt,{variant:"outline",className:"w-fit",onClick:V=>{V.preventDefault(),Q.current?.open()},children:c.title})})]})}),w.jsxs("div",{className:"p-4 w-full mt-6",children:[w.jsx("form",{id:"addUserForm",onSubmit:Rb,className:u?"cursor-not-allowed":"",children:w.jsxs("div",{className:"grid gap-4 max-w-286 pb-8 lg:grid-cols-[1fr_220px]",children:[w.jsx("div",{className:"flex flex-col gap-10",children:f.map(V=>w.jsx("div",{className:`grid gap-4 w-full ${u?"pointer-events-none":""}`,children:V.type==="markdown"||V.type==="table"||V.type==="jsonEditor"||V.type==="codeEditor"||V.type==="geoJson"?w.jsxs(w.Fragment,{children:[w.jsx(Mh,{field:V}),w.jsx(Zl,{message:Kl(`${V.type}-${V.name}`)}),w.jsx(UB,{field:V,value:y[V.name],onChange:dr,processing:x||O||u,notFound:m,search:n.props.search,invalidFieldMessage:b("Error: Invalid field data")})]}):w.jsxs(w.Fragment,{children:[w.jsx(Mh,{field:V}),w.jsx(Zl,{message:Kl(`${V.type}-${V.name}`)}),w.jsx(Hl,{field:V,value:y[V.name],onChange:dr,processing:x||O||u,notFound:m,search:n.props.search})]})},V.name))}),w.jsxs("div",{className:"p-4 rounded-md h-fit sticky top-[54px] hidden lg:grid gap-4 shadow",children:[w.jsxs("div",{className:"flex gap-4",children:[!e&&w.jsx(Mt,{className:"w-fit",asChild:!0,children:w.jsxs(ql,{href:l.link,preserveScroll:!0,children:[w.jsx(Do,{iconNode:$l}),l.title]})}),w.jsxs(Mt,{variant:"green",type:"submit",className:"w-fit",disabled:x||O||n.props.view||Gl(),children:[(x||O)&&w.jsx(Jr,{className:"h-4 w-4 animate-spin"}),n.props.btnSave.title]})]}),s&&w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"flex gap-4 items-center",children:[w.jsx(No,{id:"targetBlank",checked:I,onCheckedChange:V=>M(!!V),className:"cursor-pointer size-5"}),w.jsx(Oo,{htmlFor:"targetBlank",children:r})]}),w.jsxs("div",{className:"flex gap-4 items-center",children:[w.jsx(No,{id:"visible",checked:J,onCheckedChange:V=>be(!!V),className:"cursor-pointer size-5"}),w.jsx(Oo,{htmlFor:"visible",children:a})]})]}),h&&(d||u)&&w.jsx("div",{className:"flex gap-2 justify-start",children:w.jsx(Mt,{variant:"outline",className:"w-fit",onClick:V=>{V.preventDefault(),Q.current?.open()},children:c.title})})]})]})}),h&&(d||u)&&w.jsx(FB,{dialogRef:Q,modelName:g,modelId:f.find(V=>V.name==="id")?.value,callback:V=>{for(const rt of Object.keys(V))C(rt,V[rt]);Q.current?.close()}})]})]})},cV=Object.freeze(Object.defineProperty({__proto__:null,default:Ib},Symbol.toStringTag,{value:"Module"})),Pb=A.createContext(null),HB=()=>A.useContext(Pb),jB=({entry:n,onSaved:e})=>n.loading||!n.props?w.jsx("div",{className:"flex items-center justify-center h-full w-full",children:w.jsx(Jr,{className:"h-6 w-6 animate-spin"})}):n.error?w.jsx("div",{className:"p-4 text-red-500",children:n.error}):w.jsx("div",{className:"h-full",children:w.jsx(Ib,{page:{props:n.props},catalog:!0,callback:()=>e()})}),uV=({children:n})=>{const e=A.useRef(null),[t,i]=A.useState([]),r=A.useRef(0),s=A.useCallback(async(d,h,m)=>{try{const g=m===null?`${window.routePrefix}/model/${h}/add?without_layout=true`:`${window.routePrefix}/model/${h}/edit/${m}?without_layout=true`,f=await Bn.get(g),b=f.data?.props??f.data;i(y=>{const C=[...y];return C[d]&&C[d].model===h&&C[d].id===m&&(C[d]={...C[d],loading:!1,props:b}),C})}catch(g){i(f=>{const b=[...f];return b[d]&&b[d].model===h&&b[d].id===m&&(b[d]={...b[d],loading:!1,error:g?.message||"Error"}),b})}},[]),o=A.useCallback((d,h)=>{i(m=>{const g=m.length,f={model:d,id:h,props:null,loading:!0};return s(g,d,h),[...m,f]})},[s]),a=A.useCallback(d=>{i(h=>{const m=h.length,g={model:d,id:null,props:null,loading:!0};return s(m,d,null),[...h,g]})},[s]);A.useEffect(()=>{const d=r.current,h=t.length;if(h>d)if(d===0)e.current?.open();else for(let m=0;m<h-d;m++)e.current?.next();r.current=h},[t.length]);const l=A.useCallback(d=>{d||(i([]),r.current=0)},[]),c=A.useCallback(()=>{i(d=>d.length<=1?(e.current?.close(),r.current=0,[]):(e.current?.prev(),r.current=d.length-1,d.slice(0,-1)))},[]),u=A.useMemo(()=>({open:o,openCreate:a}),[o,a]);return w.jsxs(Pb.Provider,{value:u,children:[n,w.jsxs(Bh,{ref:e,onOpenChange:l,children:[w.jsx(Vh,{}),t.length>0&&w.jsx(Nh,{children:t.map((d,h)=>w.jsx(Oh,{children:w.jsx(jB,{entry:d,onSaved:c})},`${d.model}-${d.id}-${h}`))})]})]})};export{Ib as A,DB as D,aV as I,TB as P,uV as R,cV as a,lV as f,It as p};
|
|
20
|
+
`,"Latin capital letter r with cedilla":"حرف r لاتيني كبير مع علامة تشكيل السيديلة","Latin small letter r with cedilla":"حرف r لاتيني صغير مع علامة تشكيل السيديلة","Latin capital letter r with caron":"حرف r لاتيني كبير مع علامة تشكيل كارون","Latin small letter r with caron":"حرف r لاتيني صغير مع علامة تشكيل كارون","Latin capital letter s with acute":"حرف s لاتيني كبير مع علامة تشكيل النبرة الحادة","Latin small letter s with acute":"حرف s لاتيني صغير مع علامة تشكيل النبرة الحادة","Latin capital letter s with circumflex":"حرف s لاتيني كبير مع علامة تشكيل ثنية محيطة","Latin small letter s with circumflex":"حرف s لاتيني صغير مع علامة تشكيل ثنية محيطة","Latin capital letter s with cedilla":"حرف s لاتيني كبير مع علامة تشكيل السيديلة","Latin small letter s with cedilla":"حرف s لاتيني صغير مع علامة تشكيل السيديلة","Latin capital letter s with caron":"حرف s لاتيني كبير مع علامة تشكيل كارون","Latin small letter s with caron":"حرف s لاتيني صغير مع علامة تشكيل كارون","Latin capital letter t with cedilla":"حرف t لاتيني كبير مع علامة تشكيل السيديلة","Latin small letter t with cedilla":"حرف t لاتيني صغير مع علامة تشكيل السيديلة","Latin capital letter t with caron":"حرف t لاتيني كبير مع علامة تشكيل كارون","Latin small letter t with caron":"حرف t لاتيني صغير مع علامة تشكيل كارون","Latin capital letter t with stroke":"حرف t لاتيني كبير مع علامة شطب","Latin small letter t with stroke":"حرف t لاتيني صغير مع علامة شطب","Latin capital letter u with tilde":"حرف u لاتيني كبير مع علامة المد","Latin small letter u with tilde":"حرف u لاتيني صغير مع علامة المد","Latin capital letter u with macron":"حرف u لاتيني كبير مع علامة تشكيل ماكرون","Latin small letter u with macron":"حرف u لاتيني صغير مع علامة تشكيل ماكرون","Latin capital letter u with breve":"حرف u لاتيني كبير مع علامة تشكيل بريف","Latin small letter u with breve":"حرف u لاتيني صغير مع علامة تشكيل بريف","Latin capital letter u with ring above":"حرف u لاتيني كبير مع حلقة أعلاه","Latin small letter u with ring above":"حرف u لاتيني صغير مع حلقة أعلاه","Latin capital letter u with double acute":"حرف u لاتيني كبير مع علامة تشكيل النبرة الحادة المزدوجة","Latin small letter u with double acute":"حرف u لاتيني صغير مع علامة تشكيل النبرة الحادة المزدوجة","Latin capital letter u with ogonek":"حرف u لاتيني كبير مع علامة تشكيل خطاف","Latin small letter u with ogonek":"حرف u لاتيني صغير مع علامة تشكيل خطاف","Latin capital letter w with circumflex":"حرف w لاتيني كبير مع علامة تشكيل ثنية محيطة","Latin small letter w with circumflex":"حرف w لاتيني صغير مع علامة تشكيل ثنية محيطة","Latin capital letter y with circumflex":"حرف y لاتيني كبير مع علامة تشكيل ثنية محيطة","Latin small letter y with circumflex":"حرف y لاتيني صغير مع علامة تشكيل ثنية محيطة","Latin capital letter y with diaeresis":"حرف y لاتيني كبير مع نقطتين أعلاه","Latin capital letter z with acute":"حرف z لاتيني كبير مع علامة تشكيل النبرة الحادة","Latin small letter z with acute":"حرف z لاتيني صغير مع علامة تشكيل النبرة الحادة","Latin capital letter z with dot above":"حرف z لاتيني كبير مع نقطة أعلاه","Latin small letter z with dot above":"حرف z لاتيني صغير مع نقطة أعلاه","Latin capital letter z with caron":"حرف z لاتيني كبير مع علامة تشكيل كارون","Latin small letter z with caron":"حرف z لاتيني صغير مع علامة تشكيل كارون","Latin small letter long s":'حرف "s طويل" لاتيني صغير',"Less-than sign":"علامة أقل من","Greater-than sign":"علامة أكبر من","Less-than or equal to":"أقل من أو يساوي","Greater-than or equal to":"أكبر من أو يساوي","En dash":"شرطة قصيرة","Em dash":"شرطة طويلة",Macron:"علامة التشكيل ماكرون",Overline:"خط أعلى الحرف","Degree sign":"علامة الدرجة","Minus sign":"علامة الطرح","Plus-minus sign":"علامة الطرح والجمع","Division sign":"علامة القسمة","Fraction slash":"شرطة الكسر","Multiplication sign":"علامة الضرب","Latin small letter f with hook":"حرف f لاتيني صغير مع علامة الخطاف",Integral:"علامة التكامل","N-ary summation":"جمع مصفوفة N",Infinity:"علامة ما لا نهاية","Square root":"الجذر التربيعي","Tilde operator":"علامة دلتا","Approximately equal to":"يساوي تقريباً","Almost equal to":"يساوي على الأرجح","Not equal to":"لا يساوي","Identical to":"مطابق لـ","Element of":"ينتمي إلى","Not an element of":"لا ينتمي إلى","Contains as member":"يحتوي كعضو","N-ary product":"حاصل مصفوفة N","Logical and":"and المنطقية","Logical or":"or المنطقية","Not sign":"علامة Not المنطقية",Intersection:"تقاطع",Union:"اتحاد","Partial differential":"التفاضلية الجزئية","For all":"علامة للكل","There exists":"علامة يوجد بها","Empty set":"مجموعة فارغة",Nabla:"رمز نبلة","Asterisk operator":"علامة الضرب (النجمة)","Proportional to":"يتناسب مع",Angle:"علامة الزاوية","Vulgar fraction one quarter":"الكسر الاعتيادي ربع","Vulgar fraction one half":"الكسر الاعتيادي نصف","Vulgar fraction three quarters":"الكسر الاعتيادي ثلاثة أرباع","Single left-pointing angle quotation mark":"علامة تنصيص أحادية، رمز الزاوية، تشير جهة اليسار","Single right-pointing angle quotation mark":"علامة تنصيص أحادية، رمز الزاوية، تشير جهة اليمين","Left-pointing double angle quotation mark":"علامة تنصيص مزدوجة، رمز الزاوية، تشير جهة اليسار","Right-pointing double angle quotation mark":"علامة تنصيص مزدوجة، رمز الزاوية، تشير جهة اليمين","Left single quotation mark":"علامة تنصيص أحادية، تشير جهة اليسار","Right single quotation mark":"علامة تنصيص أحادية، تشير جهة اليمين","Left double quotation mark":"علامة تنصيص مزدوجة، تشير جهة اليسار","Right double quotation mark":"علامة تنصيص مزدوجة، تشير جهة اليمين","Single low-9 quotation mark":"علامة تنصيص 9 منخفضة، أحادية","Double low-9 quotation mark":"علامة تنصيص 9 منخفضة، مزدوجة","Inverted exclamation mark":"علامة تعجّب مقلوبة","Inverted question mark":"علامة استفهام مقلوبة","Two dot leader":"سابقة من نقطتان","Horizontal ellipsis":"علامة القطع الأفقي","Double dagger":"رمز الخنجر المزدوج","Per mille sign":'علامة "لكل ميل"',"Per ten thousand sign":'علامة "لكل 10 آلاف"',"Double exclamation mark":"علامة تعجّب مزدوجة","Question exclamation mark":"علامة استفهام مزدوجة","Exclamation question mark":"علامة استفهام مع علامة تعجب","Double question mark":"علامة استفهام مزدوجة","Copyright sign":'علامة "حق التأليف والنشر"',"Registered sign":'علامة "مسجل"',"Trade mark sign":"رمز العلامة التجارية","Section sign":"علامة القطاع","Paragraph sign":"علامة الفقرة","Reversed paragraph sign":"علامة الفقرة مقلوبة","Show source":"إظهار المصدر","Show blocks":"عرض الكتل","Select all":"تحديد الكل","Disable editing":"تعطيل التحرير","Enable editing":"تمكين التحرير","Previous editable region":"منطقة التحرير السابقة","Next editable region":"منطقة التحرير التالية","Navigate editable regions":"التنقل في مناطق التحرير","Remove Format":"إزالة التنسيق","Page break":"فاصل صفحات","media widget":"أداة الوسائط","Media URL":"عنوان URL الوسائط","Paste the media URL in the input.":"ألصق عنوان URL الوسائط في موضع الإدخال.","Tip: Paste the URL into the content to embed faster.":"نصيحة: ألصق عنوان URL داخل المحتوى؛ لتسريع عملية التضمين.","The URL must not be empty.":"لا يمكن ترك بيان عنوان URL فارغاً.","This media URL is not supported.":"عنوان URL الوسائط هذا غير مدعوم.","Insert media":"أدخل الوسائط",Media:"وسائط","Media toolbar":"شريط أدوات الوسائط","Open media in new tab":"فتح الوسائط في علامة تبويب جديدة","Media embed":"تضمين الوسائط","Numbered List":"قائمة رقمية","Bulleted List":"قائمة نقطية","To-do List":"قائمة المهام","Bulleted list styles toolbar":"شريط أدوات أنماط قوائم التعداد النقطي","Numbered list styles toolbar":"شريط أدوات أنماط القوائم المرقمة","Toggle the disc list style":"تبديل نمط قائمة الأقراص","Toggle the circle list style":"تبديل نمط قائمة الدوائر","Toggle the square list style":"تبديل نمط قائمة المربعات","Toggle the decimal list style":"تبديل نمط قائمة الأرقام العشرية","Toggle the decimal with leading zero list style":"تبديل الأرقام العشرية بنمط قائمة الأصفار البادئة","Toggle the lower–roman list style":"تبديل نمط قائمة الأرقام الرومانية الصغيرة","Toggle the upper–roman list style":"تبديل نمط قائمة الأرقام الرومانية الكبيرة","Toggle the lower–latin list style":"تبديل نمط قائمة الأحرف اللاتينية الصغيرة","Toggle the upper–latin list style":"تبديل نمط قائمة الأحرف اللاتينية الكبيرة",Disc:"قرص",Circle:"دائرة",Square:"مربع",Decimal:"رقم عشري","Decimal with leading zero":"رقم عشري مع البدء بصفر ","Lower–roman":"رقم روماني صغير","Upper-roman":"رقم روماني كبير","Lower-latin":"حرف لاتيني صغير","Upper-latin":"حرف لاتيني كبير","List properties":"خصائص القائمة","Start at":"البدء من","Invalid start index value.":"قيمة فهرس البداية غير صالحة.","Start index must be greater than 0.":"يجب أن تكون قيمة البداية في الفهرس أكبر من 0.","Reversed order":"عكس اتجاه الترتيب","Keystrokes that can be used in a list":"ضغطة المفاتيح التي يمكن استخدامها في القائمة","Increase list item indent":"زيادة المسافة البادئة لعنصر القائمة","Decrease list item indent":"تقليل المسافة البادئة لعنصر القائمة","Entering a to-do list":"إدخال قائمة مهام","Leaving a to-do list":"ترك قائمة المهام",Unlink:"إلغاء الرابط",Link:"رابط","Link URL":"رابط عنوان","Link URL must not be empty.":"يجب ألا يكون عنوان الرابط فارغاً.","Link image":"ربط الصورة","Edit link":"تحرير الرابط","Open link in new tab":"فتح الرابط في تبويب جديد","Open in a new tab":"فتح في تبويب جديد",Downloadable:"يمكن تنزيله","Create link":"قمْ بإنشاء رابط","Move out of a link":"ابتعدْ عن الرابط","Link properties":"خصائص الرابط","Displayed text":"النص المعروض","No links available":"لا توجد روابط متاحة",Language:"اللغة","Choose language":"اختيار اللغة","Remove language":"إزالة اللغة","Increase indent":"زيادة المسافة البادئة","Decrease indent":"تقليص المسافة البادئة","image widget":"عنصر الصورة","Wrap text":"التفاف النص","Break text":"اعتراض النص","In line":"سطري مع النص","Side image":"صورة جانبية","Full size image":"صورة بحجم كامل","Left aligned image":"صورة بمحاذاة لليسار","Centered image":"صورة بالوسط","Right aligned image":"صورة بمحاذاة لليمين","Change image text alternative":"غير النص البديل للصورة","Text alternative":"النص البديل","Enter image caption":"ادخل عنوان الصورة","Insert image":"ادراج صورة","Replace image":"استبدال الصورة","Upload from computer":"رفع الملف من الحاسوب","Replace from computer":"استبدال من الحاسوب","Upload image from computer":"تحميل الصورة من الحاسوب","Image from computer":"صورة من جهاز الكمبيوتر","From computer":"من الكمبيوتر","Replace image from computer":"استبدال الصورة من الحاسوب","Upload failed":"فشل الرفع","You have no image upload permissions.":"ليس لديك أذونات تحميل الصور.","Image toolbar":"شريط أدوات الصور","Resize image":"تغيير حجم الصورة","Resize image to %0":"تغيير حجم الصورة إلى %0","Resize image to the original size":"تغيير حجم الصورة إلى الحجم الأصلي","Resize image (in %0)":"تغيير حجم الصورة (في %0 )",Original:"الحجم الأصلي","Custom image size":"حجم مخصص للصورة",Custom:"مخصص","Image resize list":"قائمة تغيير حجم الصورة","Insert image via URL":"إدراج صورة عبر عنوان URL","Insert via URL":"إدراج عبر URL","Image via URL":"صورة عبر URL","Via URL":"عبر URL","Update image URL":"عنوان URL الخاص بتحديث الصورة","Caption for the image":"التسمية التوضيحية للصورة","Caption for image: %0":"التسمية التوضيحية للصورة: %0","The value must not be empty.":"يجب ألا تكون القيمة فارغة.","The value should be a plain number.":"يجب أن تكون القيمة رقماً عادياً.","Uploading image":"جارٍ تحميل الصورة","Image upload complete":"اكتمل تحميل الصورة","Error during image upload":"حدث خطأ أثناء رفع الصورة",Image:"صورة","Image Resize":"تغيير حجم الصورة","Text Alternative":"النص البديل","HTML object":"عنصر HTML","Insert HTML":"إدراج HTML","HTML snippet":"قصاصة برمجية بلغة HTML","Paste raw HTML here...":"ألصق رمز HTML الأولي هنا...","Edit source":"تحرير المصدر","Save changes":"حفظ التغييرات","No preview available":"المعاينة غير متاحة","Empty snippet content":"محتوى القصاصة فارغ","Horizontal line":"خط أفقي","Yellow marker":"تحديد اصفر","Green marker":"تحديد اخضر","Pink marker":"تحديد وردي","Blue marker":"تحديد ازرق","Red pen":"تحديد احمر","Green pen":"قلم اخضر","Remove highlight":"إزالة التحديد",Highlight:"تحديد","Text highlight toolbar":"شريط أدوات تمييز النص",Heading:"عنوان","Choose heading":"اختر عنوان","Heading 1":"عنوان 1","Heading 2":"عنوان 2","Heading 3":"عنوان 3","Heading 4":"عنوان 4","Heading 5":"عنوان 5","Heading 6":"عنوان 6","Type your title":"أدخل العنوان","Type or paste your content here.":"أكتب المحتوى أو ألصقه هنا.","Enter fullscreen mode":"الدخول في وضع ملء الشاشة","Leave fullscreen mode":"مغادرة وضع ملء الشاشة","Fullscreen mode":"وضع ملء الشاشة","Toggle fullscreen mode":"تبديل وضع ملء الشاشة","Document outline":"مخطط المستند","Connected users":"المستخدمون المتصلون","Font Size":"حجم الخط",Tiny:"ضئيل",Small:"صغير",Big:"كبير",Huge:"ضخم","Font Family":"نوع الخط",Default:"افتراضي","Font Color":"لون الخط","Font Background Color":"لون خلفية الخط","Document colors":"ألوان المستند","Find and replace":"البحث والاستبدال","Find in text…":"البحث في النص...",Find:"البحث","Previous result":"النتيجة السابقة","Next result":"النتيجة التالية",Replace:"استبدال","Replace all":"استبدال الكل","Match case":"مطابقة حالة الأحرف","Whole words only":"الكلمات بأكملها فقط","Replace with…":"استبدال بـ...","Text to find must not be empty.":"لا يمكن لبيان النص المطلوب البحث عنه أن يكون فارغاً.","Tip: Find some text first in order to replace it.":"نصيحة: في البداية، ابحث عن جزء من النص؛ لتتمكن من استبداله. ","Advanced options":"الخيارات المتقدمة","Find in the document":"ابحثْ في الوثيقة","Insert a soft break (a <code><br></code> element)":"قمْ بإدراج فاصل بسيط (عنصر <code><br></code>)","Insert a hard break (a new paragraph)":"قمْ بإدراج فاصل ثابت (فقرة جديدة)",Emoji:"الرموز التعبيرية","Show all emoji...":"إظهار جميع الرموز التعبيرية...","Find an emoji (min. 2 characters)":"ابحث عن رمز تعبيري (حد أدنى حرفين)",'No emojis were found matching "%0".':'لم نعثر على أي رموز تعبيرية مطابقة لـ "%0".',"Keep on typing to see the emoji.":"استمر في الكتابة لرؤية الرمز التعبيري.","The query must contain at least two characters.":"يجب أن يحتوي الاستعلام على حرفين على الأقل.","Smileys & Expressions":"الابتسامات والتعبيرات","Gestures & People":"الإيماءات والأشخاص","Animals & Nature":"الحيوانات والطبيعة","Food & Drinks":"الأطعمة والمشروبات","Travel & Places":"السفر والأماكن",Activities:"الأنشطة",Objects:"الأشياء",Symbols:"الرموز",Flags:"الأعلام","Select skin tone":"حدد لون البشرة","Default skin tone":"لون البشرة الافتراضي","Light skin tone":"لون البشرة الفاتح","Medium Light skin tone":"لون بشرة فاتح متوسط","Medium skin tone":"لون البشرة متوسط","Medium Dark skin tone":"لون البشرة داكن متوسط","Dark skin tone":"لون بشرة داكن","Emoji picker":"أداة اختيار الرموز التعبيرية",Cancel:"إلغاء",Clear:"مسح","Remove color":"إزالة اللون","Restore default":"استعادة الافتراضي",Save:"حفظ","Show more items":"عرض المزيد من العناصر","%0 of %1":"%0 من %1","Cannot upload file:":"لا يمكن رفع الملف:","Rich Text Editor. Editing area: %0":"محرر النصوص المنسّقة. منطقة التحرير: %0","Insert with file manager":"إدخال مع مدير الملفات","Replace with file manager":"استبدال بمدير الملفات","Insert image with file manager":"إدراج صورة مع مدير الملفات","Replace image with file manager":"استبدال الصورة بمدير الملفات",File:"ملف","With file manager":"باستخدام مدير الملفات","Toggle caption off":"إخفاء التسمية التوضيحية","Toggle caption on":"عرض التسمية التوضيحية","Content editing keystrokes":"ضغطة المفاتيح لتحرير المحتوى","These keyboard shortcuts allow for quick access to content editing features.":"تسمح اختصارات لوحة المفاتيح هذه بالوصول سريعاً إلى ميزات تحرير المحتوى.","User interface and content navigation keystrokes":"واجهة المستخدم وضغطة المفاتيح للتنقل في المحتوى","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"استخدمْ ضغطة المفاتيح التالية للتنقل بشكل أكثر كفاءة في واجهة مستخدم CKEditor 5.","Close contextual balloons, dropdowns, and dialogs":"أغلقْ البالونات السياقية والقوائم المنسدلة ومربعات الحوار","Open the accessibility help dialog":"افتحْ مربع الحوار بشأن تعليمات إمكانية الوصول","Move focus between form fields (inputs, buttons, etc.)":"انقلْ التركيز بين حقول النموذج (المدخلات والأزرار وما إلى ذلك)","Move focus to the menu bar, navigate between menu bars":"انقلْ التركيز إلى شريط القائمة، وتَنقّلْ بين أشرطة القوائم","Move focus to the toolbar, navigate between toolbars":"انقلْ التركيز إلى شريط الأدوات، وتنقّلْ بين أشرطة الأدوات","Navigate through the toolbar or menu bar":"تنقّلْ عبر شريط الأدوات أو شريط القوائم","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"قم بتنفيذ الزر المركَّز حالياً، حيث أن تنفيذ الأزرار المتفاعلة مع محتوى المحرِّر يؤدي إلى إعادة التركيز إلى المحتوى.",Accept:"قبول",Paragraph:"فقرة","Color picker":"أداة انتقاء الألوان","Please try a different phrase or check the spelling.":"يُرجى محاولة البحث باستخدام عبارة أخرى أو تدقيق عبارة البحث إملائياً.",Source:"المصدر",Insert:"إدراج",Update:"تحديث",Back:"الرجوع","Insert code block":"إدراج كتلة تعليمات برمجية","Plain text":"نص عادي","Leaving %0 code snippet":"ترك مقتطف الكود %0","Entering %0 code snippet":"إدخال مقتطف الكود %0","Entering code snippet":"إدخال مقتطف الكود","Leaving code snippet":"ترك مقتطف الكود","Code block":"كتلة تعليمات برمجية","Copy selected content":"انسخْ المحتوى المحدد","Paste content":"الصقْ المحتوى","Paste content as plain text":"الصقْ المحتوى كنص عادي","Insert image or file":"إدراج صورة أو ملف","Could not obtain resized image URL.":"تعذر الحصول على عنوان URL الخاص بالصورة التي غُيّرَ حجمُها","Selecting resized image failed":"فشلت عملية تحديد الصورة التي غُيّرَ حجمها","Could not insert image at the current position.":"تعذر إدراج الصورة في الموضع الحالي.","Inserting image failed":"فشلت عملية إدراج الصورة",Bookmark:"إشارة مرجعية","Edit bookmark":"تحرير الإشارة المرجعية","Remove bookmark":"إزالة الإشارة المرجعية","Bookmark name":"اسم الإشارة المرجعية","Enter the bookmark name without spaces.":"أدخل اسم الإشارة المرجعية بدون مسافات.","Bookmark must not be empty.":"لا يجب أن تكون الإشارة المرجعية فارغة.","Bookmark name cannot contain space characters.":"لا يمكن أن يحتوي اسم الإشارة المرجعية على مسافة.","Bookmark name already exists.":"اسم الإشارة المرجعية موجود بالفعل.","bookmark widget":"أداة الإشارة المرجعية","Bookmark toolbar":"شريط أدوات الإشارة المرجعية",Bookmarks:"الإشارات المرجعية","No bookmarks available.":"لا توجد إشارات مرجعية متاحة.","Scroll to bookmark":"مرر إلى الإشارة المرجعية","Open file manager":"فتح مدير الملفات","Cannot determine a category for the uploaded file.":"تعذر تحديد فئة الملف الذي تم رفعه","Cannot access default workspace.":"لا يمكن الوصول إلى مساحة العمل الافتراضية.","You have no image editing permissions.":"ليس لديك أذونات تحرير الصور.","Edit image":"تحرير الصورة","Processing the edited image.":"معالجة الصورة المعدلة.","Server failed to process the image.":"فشل الخادم في معالجة الصورة.","Failed to determine category of edited image.":"فشلت عملية تحديد فئة الصورة التي تم تحريرها.","Block quote":"اقتباس",Bold:"عريض",Italic:"مائل",Underline:"تحته خط",Code:"شفرة برمجية",Strikethrough:"يتوسطه خط",Subscript:"حرف منخفض",Superscript:"حرف مرتفع","Italic text":"نص مائل","Move out of an inline code style":"ابتعدْ عن نمط التعليمات البرمجية المضمّنة","Bold text":"نص غامق","Underline text":"تسطير النص","Strikethrough text":"توسيط الخط في النص","Saving changes":"جاري حفظ التعديلات","Revert autoformatting action":"العودة إلى إجراء التنسيق التلقائي","Align left":"محاذاة لليسار","Align right":"محاذاة لليمين","Align center":"محاذاة في المنتصف",Justify:"ضبط","Text alignment":"محاذاة النص","Text alignment toolbar":"شريط أدوات محاذاة النص"},getPluralForm(n){return n==0?0:n==1?1:n==2?2:n%100>=3&&n%100<=10?3:n%100>=11?4:5}}};const iB={zh:{dictionary:{"Words: %0":"字數: %0","Characters: %0":"字元數: %0","Widget toolbar":"小工具","Insert paragraph before block":"在這個區塊前面插入一個段落","Insert paragraph after block":"在這個區塊後面插入一個段落","Press Enter to type after or press Shift + Enter to type before the widget":"按下 Enter 在小工具後輸入,或按下 Shift + Enter 在小工具前輸入","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"小工具選取時可使用的按鍵(例如:圖片、表格等)","Insert a new paragraph directly after a widget":"在小工具後直接插入新段落","Insert a new paragraph directly before a widget":"在小工具前直接插入新段落","Move the caret to allow typing directly before a widget":"移動插入符號,以便在小工具前直接輸入","Move the caret to allow typing directly after a widget":"移動插入符號,以便在小工具後直接輸入","Move focus from an editable area back to the parent widget":"將焦點從可編輯區域移回上層小工具","Upload in progress":"正在上傳",Undo:"取消",Redo:"重做","Rich Text Editor":"富文本編輯器","Edit block":"編輯區塊","Click to edit block":"點擊來編輯區塊","Drag to move":"拖曳來移動",Next:"下一",Previous:"上一","Editor toolbar":"編輯器工具","Dropdown toolbar":"下拉選單","Dropdown menu":"下拉式選單",Black:"黑色","Dim grey":"淡灰色",Grey:"灰色","Light grey":"亮灰色",White:"白色",Red:"紅色",Orange:"橘色",Yellow:"黃色","Light green":"亮綠色",Green:"綠色",Aquamarine:"淺綠色",Turquoise:"藍綠色","Light blue":"亮藍色",Blue:"藍色",Purple:"紫色","Editor block content toolbar":"編輯器區塊內容工具列","Editor contextual toolbar":"編輯器關聯式工具列",HEX:"十六進位","No results found":"找不到結果","No searchable items":"沒有可搜尋的項目","Editor dialog":"編輯工具對話框",Close:"關閉","Help Contents. To close this dialog press ESC.":"協助內容。想關閉此對話框,請按 ESC 鍵。","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"下方是可在編輯器中使用的鍵盤快捷鍵列表。","(may require <kbd>Fn</kbd>)":"(可能需要 <kbd>Fn</kbd>)",Accessibility:"協助工具","Accessibility help":"無障礙協助","Press %0 for help.":"按下 %0 來取得協助。","Move focus in and out of an active dialog window":"將焦點移入或移出啟用中的對話視窗",MENU_BAR_MENU_FILE:"檔案",MENU_BAR_MENU_EDIT:"編輯",MENU_BAR_MENU_VIEW:"檢視",MENU_BAR_MENU_INSERT:"插入",MENU_BAR_MENU_FORMAT:"格式",MENU_BAR_MENU_TOOLS:"工具",MENU_BAR_MENU_HELP:"說明",MENU_BAR_MENU_TEXT:"文字",MENU_BAR_MENU_FONT:"字型","Editor menu bar":"編輯器選單列",'Please enter a valid color (e.g. "ff0000").':"請輸入有效的顏色(例如「ff0000」)。","Insert table":"插入表格","Header column":"標題欄","Insert column left":"插入左方欄","Insert column right":"插入右方欄","Delete column":"刪除欄","Select column":"選擇欄",Column:"欄","Header row":"標題列","Insert row below":"插入下方列","Insert row above":"插入上方列","Delete row":"刪除列","Select row":"選擇列",Row:"列","Merge cell up":"合併上方儲存格","Merge cell right":"合併右方儲存格","Merge cell down":"合併下方儲存格","Merge cell left":"合併左方儲存格","Split cell vertically":"垂直分割儲存格","Split cell horizontally":"水平分割儲存格","Merge cells":"合併儲存格","Table toolbar":"表格工具","Table properties":"表格屬性","Cell properties":"儲存格屬性",Border:"邊框",Style:"樣式",Width:"寬度",Height:"高度",Color:"文字顏色",Background:"背景顏色",Padding:"儲存格留白",Dimensions:"尺寸","Table cell text alignment":"儲存格文字對齊",Alignment:"對齊","Horizontal text alignment toolbar":"水平對齊","Vertical text alignment toolbar":"垂直對齊","Table alignment toolbar":"表格對齊",None:"無",Solid:"實線",Dotted:"點線",Dashed:"虛線",Double:"雙線",Groove:"內凹線",Ridge:"凸起線",Inset:"內邊線",Outset:"外框線","Align cell text to the left":"靠左對齊","Align cell text to the center":"置中對齊","Align cell text to the right":"靠右對齊","Justify cell text":"分散對齊","Align cell text to the top":"向上對齊","Align cell text to the middle":"置中對齊","Align cell text to the bottom":"向下對齊","Align table to the left":"靠左對齊","Center table":"置中對齊","Align table to the right":"靠右對齊",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'顏色代碼錯誤。試試看 "#FF0000" 或 "rgb(255, 0, 0)" 或 "red"。','The value is invalid. Try "10px" or "2em" or simply "2".':'尺寸代碼錯誤。試試看 "10px" 或 "2em" 或簡單寫 "2"。',"Enter table caption":"輸入表標題","Keystrokes that can be used in a table cell":"可在表格單元格中使用的按鍵","Move the selection to the next cell":"將選取範圍移動到下一個單元格","Move the selection to the previous cell":"將選取範圍移動到上一個單元格","Insert a new table row (when in the last cell of a table)":"插入新的表格橫排(當位於表格的最後一個單元格時)","Navigate through the table":"在表格中移動",Table:"表格","Insert table layout":"插入表格版面配置","Table layout":"表格版面配置","Layout table":"版面配置表格","Content table":"內容表格","Choose table type":"選擇表格類型","Table type":"表格類型","Table type options":"表格類型選項",Styles:"樣式","Multiple styles":"多重樣式","Block styles":"區塊樣式","Text styles":"文字樣式","Special characters":"特殊字元",Category:"類別",All:"所有",Arrows:"箭頭",Currency:"貨幣",Latin:"拉丁字母",Mathematical:"數學",Text:"文字","leftwards simple arrow":"向左簡單箭號","rightwards simple arrow":"向右簡單箭號","upwards simple arrow":"向上簡單箭號","downwards simple arrow":"向下簡單箭號","leftwards double arrow":"向左雙箭頭","rightwards double arrow":"向右雙箭頭","upwards double arrow":"向上雙箭頭","downwards double arrow":"向下雙箭頭","leftwards dashed arrow":"向左虛線箭頭","rightwards dashed arrow":"向右虛線箭頭","upwards dashed arrow":"向上虛線箭頭","downwards dashed arrow":"向下虛線箭頭","leftwards arrow to bar":"向左停止箭頭","rightwards arrow to bar":"向右停止箭頭","upwards arrow to bar":"向上停止箭頭","downwards arrow to bar":"向下停止箭頭","up down arrow with base":"有底線的上下箭號","back with leftwards arrow above":"Back 上方有向左箭號","end with leftwards arrow above":"End 上方有向左箭號","on with exclamation mark with left right arrow above":"帶驚嘆號的 On 上方有左右雙向箭號","soon with rightwards arrow above":"Soon 上方有向右箭號","top with upwards arrow above":"Top 上方有向上箭號","Dollar sign":"貨幣符號","Euro sign":"歐元符號","Yen sign":"日圓符號","Pound sign":"英鎊符號","Cent sign":"美分符號","Euro-currency sign":"歐元貨幣符號","Colon sign":"冒號","Cruzeiro sign":"克魯薩多符號","French franc sign":"法國法郎符號","Lira sign":"里拉符號","Currency sign":"貨幣符號","Bitcoin sign":"比特幣符號","Mill sign":"密爾符號","Naira sign":"奈及利亞奈拉符號","Peseta sign":"比塞塔符號","Rupee sign":"印度盧比符號","Won sign":"圜符號","New sheqel sign":"新謝克爾符號","Dong sign":"盾符號","Kip sign":"基普符號","Tugrik sign":"圖格里克符號","Drachma sign":"得拉克馬符號","German penny sign":"德國便士符號","Peso sign":"披索符號","Guarani sign":"瓜拉尼符號","Austral sign":"奧斯特拉爾符號","Hryvnia sign":"赫伐尼亞符號","Cedi sign":"塞地符號","Livre tournois sign":"里弗爾法鎊符號","Spesmilo sign":"Spesmilo 貨幣符號","Tenge sign":"勘察加幣符號","Indian rupee sign":"印度盧比符號","Turkish lira sign":"土耳其里拉符號","Nordic mark sign":"日耳曼馬克符號","Manat sign":"馬納特符號","Ruble sign":"盧布符號","Latin capital letter a with macron":"拉丁大寫字母 A 帶長音符號","Latin small letter a with macron":"拉丁小寫字母 a 帶長音符號","Latin capital letter a with breve":"拉丁大寫字母 A 帶短音符號","Latin small letter a with breve":"拉丁小寫字母 a 帶短音符號","Latin capital letter a with ogonek":"拉丁大寫字母 A 帶 Ogonek","Latin small letter a with ogonek":"拉丁小寫字母 a 帶 Ogonek","Latin capital letter c with acute":"拉丁大寫字母 C 帶尖音符號","Latin small letter c with acute":"拉丁小寫字母 c 帶尖音符號","Latin capital letter c with circumflex":"拉丁大寫字母 C 帶抑揚符號","Latin small letter c with circumflex":"拉丁小寫字母 c 帶抑揚符號","Latin capital letter c with dot above":"上有一點的拉丁大寫字母 C","Latin small letter c with dot above":"上有一點的拉丁小寫字母 c","Latin capital letter c with caron":"拉丁大寫字母 C 帶上勾符號","Latin small letter c with caron":"拉丁小寫字母 c 帶上勾符號","Latin capital letter d with caron":"拉丁大寫字母 D 帶上勾符號","Latin small letter d with caron":"拉丁小寫字母 d 帶上勾符號","Latin capital letter d with stroke":"拉丁大寫字母 D 帶粗線符號","Latin small letter d with stroke":"拉丁小寫字母 d 帶粗線符號","Latin capital letter e with macron":"拉丁大寫字母 E 帶長音符號","Latin small letter e with macron":"拉丁小寫字母 e 帶長音符號","Latin capital letter e with breve":"拉丁大寫字母 E 帶短音符號","Latin small letter e with breve":"拉丁小寫字母 e 帶短音符號","Latin capital letter e with dot above":"上有一點的拉丁大寫字母 E","Latin small letter e with dot above":"上有一點的拉丁小寫字母 e","Latin capital letter e with ogonek":"拉丁大寫字母 E 帶 Ogonek","Latin small letter e with ogonek":"拉丁小寫字母 e 帶 Ogonek","Latin capital letter e with caron":"拉丁大寫字母 E 帶上勾符號","Latin small letter e with caron":"拉丁小寫字母 e 帶上勾符號","Latin capital letter g with circumflex":"拉丁大寫字母 G 帶抑揚符號","Latin small letter g with circumflex":"拉丁小寫字母 g 帶抑揚符號","Latin capital letter g with breve":"拉丁大寫字母 G 帶短音符號","Latin small letter g with breve":"拉丁小寫字母 g 帶短音符號","Latin capital letter g with dot above":"上有一點的拉丁大寫字母 G","Latin small letter g with dot above":"上有一點的拉丁小寫字母 g","Latin capital letter g with cedilla":"拉丁大寫字母 G 帶下尾符號","Latin small letter g with cedilla":"拉丁小寫字母 g 帶下尾符號","Latin capital letter h with circumflex":"拉丁大寫字母 H 帶抑揚符號","Latin small letter h with circumflex":"拉丁小寫字母 h 帶抑揚符號","Latin capital letter h with stroke":"拉丁大寫字母 H 帶粗線符號","Latin small letter h with stroke":"拉丁小寫字母 h 帶粗線符號","Latin capital letter i with tilde":"拉丁大寫字母 I 帶波狀符號","Latin small letter i with tilde":"拉丁小寫字母 i 帶波狀符號","Latin capital letter i with macron":"拉丁大寫字母 I 帶長音符號","Latin small letter i with macron":"拉丁小寫字母 i 帶長音符號","Latin capital letter i with breve":"拉丁大寫字母 I 帶短音符號","Latin small letter i with breve":"拉丁小寫字母 i 帶短音符號","Latin capital letter i with ogonek":"拉丁大寫字母 I 帶 Ogonek","Latin small letter i with ogonek":"拉丁小寫字母 i 帶 Ogonek","Latin capital letter i with dot above":"上有一點的拉丁大寫字母 I","Latin small letter dotless i":"拉丁小寫字母無點 I","Latin capital ligature ij":"拉丁大寫連字 IJ","Latin small ligature ij":"拉丁小寫連字 ij","Latin capital letter j with circumflex":"拉丁大寫字母 J 帶抑揚符號","Latin small letter j with circumflex":"拉丁小寫字母 j 帶抑揚符號","Latin capital letter k with cedilla":"拉丁大寫字母 K 帶下尾符號","Latin small letter k with cedilla":"拉丁小寫字母 k 帶下尾符號","Latin small letter kra":"拉丁小寫字母 kra","Latin capital letter l with acute":"拉丁大寫字母 L 帶尖音符號","Latin small letter l with acute":"拉丁小寫字母 l 帶尖音符號","Latin capital letter l with cedilla":"拉丁大寫字母 L 帶下尾符號","Latin small letter l with cedilla":"拉丁小寫字母 l 帶下尾符號","Latin capital letter l with caron":"拉丁大寫字母 L 帶上勾符號","Latin small letter l with caron":"拉丁小寫字母 l 帶上勾符號","Latin capital letter l with middle dot":"中間一點的拉丁大寫字母 L","Latin small letter l with middle dot":"中間一點的拉丁小寫字母 l","Latin capital letter l with stroke":"拉丁大寫字母 L 帶粗線符號","Latin small letter l with stroke":"拉丁小寫字母 l 帶粗線符號","Latin capital letter n with acute":"拉丁大寫字母 N 帶尖音符號","Latin small letter n with acute":"拉丁小寫字母 n 帶尖音符號","Latin capital letter n with cedilla":"拉丁大寫字母 N 帶下尾符號","Latin small letter n with cedilla":"拉丁小寫字母 n 帶下尾符號","Latin capital letter n with caron":"拉丁大寫字母 N 帶上勾符號","Latin small letter n with caron":"拉丁小寫字母 n 帶上勾符號","Latin small letter n preceded by apostrophe":"前有撇號的拉丁小寫字母 n","Latin capital letter eng":"拉丁大寫字母 Eng","Latin small letter eng":"拉丁小寫字母 Eng","Latin capital letter o with macron":"拉丁大寫字母 O 帶長音符號","Latin small letter o with macron":"拉丁小寫字母 o 帶長音符號","Latin capital letter o with breve":"拉丁大寫字母 O 帶短音符號","Latin small letter o with breve":"拉丁小寫字母 o 帶短音符號","Latin capital letter o with double acute":"拉丁大寫字母 O 帶雙尖音符號","Latin small letter o with double acute":"拉丁小寫字母 o 帶雙尖音符號","Latin capital ligature oe":"拉丁大寫連字 OE","Latin small ligature oe":"拉丁小寫連字 oe","Latin capital letter r with acute":"拉丁大寫字母 R 帶尖音符號","Latin small letter r with acute":"拉丁小寫字母 r 帶尖音符號","Latin capital letter r with cedilla":"拉丁大寫字母 R 帶下尾符號","Latin small letter r with cedilla":"拉丁小寫字母 r 帶下尾符號","Latin capital letter r with caron":"拉丁大寫字母 R 帶上勾符號","Latin small letter r with caron":"拉丁小寫字母 r 帶上勾符號","Latin capital letter s with acute":"拉丁大寫字母 S 帶尖音符號","Latin small letter s with acute":"拉丁小寫字母 s 帶尖音符號","Latin capital letter s with circumflex":"拉丁大寫字母 S 帶抑揚符號","Latin small letter s with circumflex":"拉丁小寫字母 s 帶抑揚符號","Latin capital letter s with cedilla":"拉丁大寫字母 S 帶下尾符號","Latin small letter s with cedilla":"拉丁小寫字母 s 帶下尾符號","Latin capital letter s with caron":"拉丁大寫字母 S 帶上勾符號","Latin small letter s with caron":"拉丁小寫字母 s 帶上勾符號","Latin capital letter t with cedilla":"拉丁大寫字母 T 帶下尾符號","Latin small letter t with cedilla":"拉丁小寫字母 t 帶下尾符號","Latin capital letter t with caron":"拉丁大寫字母 T 帶上勾符號","Latin small letter t with caron":"拉丁小寫字母 t 帶上勾符號","Latin capital letter t with stroke":"拉丁大寫字母 T 帶粗線符號","Latin small letter t with stroke":"拉丁小寫字母 t 帶粗線符號","Latin capital letter u with tilde":"拉丁大寫字母 U 帶波狀符號","Latin small letter u with tilde":"拉丁小寫字母 u 帶波狀符號","Latin capital letter u with macron":"拉丁大寫字母 U 帶長音符號","Latin small letter u with macron":"拉丁小寫字母 u 帶長音符號","Latin capital letter u with breve":"拉丁大寫字母 U 帶短音符號","Latin small letter u with breve":"拉丁小寫字母 u 帶短音符號","Latin capital letter u with ring above":"拉丁大寫字母 U 帶上圓圈","Latin small letter u with ring above":"拉丁小寫字母 u 帶上圓圈","Latin capital letter u with double acute":"拉丁大寫字母 U 帶雙尖音符號","Latin small letter u with double acute":"拉丁小寫字母 u 帶雙尖音符號","Latin capital letter u with ogonek":"拉丁大寫字母 U 帶 Ogonek","Latin small letter u with ogonek":"拉丁小寫字母 u 帶 Ogonek","Latin capital letter w with circumflex":"拉丁大寫字母 W 帶抑揚符號","Latin small letter w with circumflex":"拉丁小寫字母 w 帶抑揚符號","Latin capital letter y with circumflex":"拉丁大寫字母 Y 帶抑揚符號","Latin small letter y with circumflex":"拉丁小寫字母 y 帶抑揚符號","Latin capital letter y with diaeresis":"拉丁大寫字母 Y 帶分音符號","Latin capital letter z with acute":"拉丁大寫字母 Z 帶尖音符號","Latin small letter z with acute":"拉丁小寫字母 z 帶尖音符號","Latin capital letter z with dot above":"上有一點的拉丁大寫字母 Z","Latin small letter z with dot above":"上有一點的拉丁小寫字母 z","Latin capital letter z with caron":"拉丁大寫字母 Z 帶上勾符號","Latin small letter z with caron":"拉丁小寫字母 z 帶上勾符號","Latin small letter long s":"拉丁小寫字母長 s","Less-than sign":"小於符號","Greater-than sign":"大於符號","Less-than or equal to":"小於或等於","Greater-than or equal to":"大於或等於","En dash":"短破折號","Em dash":"長破折號",Macron:"長音符號",Overline:"頂線","Degree sign":"度符號","Minus sign":"減號","Plus-minus sign":"加減符號","Division sign":"除號","Fraction slash":"分數斜線","Multiplication sign":"乘號","Latin small letter f with hook":"帶鉤的拉丁小寫字母 f",Integral:"積分","N-ary summation":"N 元總合",Infinity:"無限","Square root":"平方根","Tilde operator":"波狀符號運算子","Approximately equal to":"約等於","Almost equal to":"幾乎等於","Not equal to":"不等於","Identical to":"恆等於","Element of":"屬於","Not an element of":"不屬於","Contains as member":"包含","N-ary product":"N 元乘積","Logical and":"邏輯 And","Logical or":"邏輯 Or","Not sign":"Not 符號",Intersection:"交集",Union:"聯集","Partial differential":"偏微分","For all":"對於所有","There exists":"存在","Empty set":"空集合",Nabla:"倒三角算子","Asterisk operator":"星號運算子","Proportional to":"正比於",Angle:"角度","Vulgar fraction one quarter":"普通分數四分之一","Vulgar fraction one half":"普通分數二分之一","Vulgar fraction three quarters":"普通分數四分之三","Single left-pointing angle quotation mark":"單左尖角括號","Single right-pointing angle quotation mark":"單右尖角括號","Left-pointing double angle quotation mark":"左尖雙角括號","Right-pointing double angle quotation mark":"右尖雙角括號","Left single quotation mark":"左單引號","Right single quotation mark":"右單引號","Left double quotation mark":"左雙引號","Right double quotation mark":"右雙引號","Single low-9 quotation mark":"單下 9 形引號","Double low-9 quotation mark":"雙下 9 形引號","Inverted exclamation mark":"倒驚嘆號","Inverted question mark":"倒問號","Two dot leader":"兩點前置字元","Horizontal ellipsis":"水平省略符號","Double dagger":"雙劍註釋符號","Per mille sign":"千分號","Per ten thousand sign":"萬分號","Double exclamation mark":"雙驚嘆號","Question exclamation mark":"疑問驚嘆號","Exclamation question mark":"驚嘆疑問號","Double question mark":"雙問號","Copyright sign":"版權符號","Registered sign":"註冊商標符號","Trade mark sign":"商標符號","Section sign":"章節符號","Paragraph sign":"段落符號","Reversed paragraph sign":"反段落符號","Show source":"顯示來源","Show blocks":"顯示區塊","Select all":"選取全部","Disable editing":"停用編輯","Enable editing":"啟用編輯","Previous editable region":"上一個可編輯區域","Next editable region":"下一個可編輯區域","Navigate editable regions":"編輯區域導航","Remove Format":"移除格式","Page break":"換頁","media widget":"影音小工具","Media URL":"影音網址","Paste the media URL in the input.":"在輸入框貼上影音網址。","Tip: Paste the URL into the content to embed faster.":"提示:在內容貼上網址更快崁入。","The URL must not be empty.":"網址不能空白。","This media URL is not supported.":"不支援此影音網址。","Insert media":"插入影音",Media:"媒體","Media toolbar":"影音工具","Open media in new tab":"在新分頁打開媒體","Media embed":"媒體嵌入","Numbered List":"有序清單","Bulleted List":"符號清單","To-do List":"代辦清單","Bulleted list styles toolbar":"無序清單工具列","Numbered list styles toolbar":"有序清單工具列","Toggle the disc list style":"切換為實心圓點標示","Toggle the circle list style":"切換為空心圓點標示","Toggle the square list style":"切換為方形標示","Toggle the decimal list style":"切換為數字標示","Toggle the decimal with leading zero list style":"切換為0開頭的數字標示","Toggle the lower–roman list style":"切換為小寫羅馬數字標示","Toggle the upper–roman list style":"切換為大寫羅馬數字標示","Toggle the lower–latin list style":"切換為小寫拉丁文字標示","Toggle the upper–latin list style":"切換為大寫拉丁文字標示",Disc:"實心圓點",Circle:"空心圓點",Square:"方形",Decimal:"數字","Decimal with leading zero":"0開頭的數字","Lower–roman":"小寫羅馬數字","Upper-roman":"大寫羅馬數字","Lower-latin":"小寫拉丁字母","Upper-latin":"大寫拉丁字母","List properties":"清單屬性","Start at":"起始於","Invalid start index value.":"無效的起始索引值。","Start index must be greater than 0.":"起始索引須大於 0。","Reversed order":"反轉順序","Keystrokes that can be used in a list":"可在列表中使用的按鍵","Increase list item indent":"增加列表項目縮排","Decrease list item indent":"減少列表項目縮排","Entering a to-do list":"進入待辦事項清單","Leaving a to-do list":"離開待辦事項清單",Unlink:"移除連結",Link:"連結","Link URL":"連結˙ URL","Link URL must not be empty.":"連結 URL 不得為空白。","Link image":"圖片連結","Edit link":"編輯連結","Open link in new tab":"在新視窗開啟連結","Open in a new tab":"在新視窗開啟",Downloadable:"可下載","Create link":"建立連結","Move out of a link":"移出連結","Link properties":"連結屬性","Displayed text":"顯示的文字","No links available":"無可用連結",Language:"語言","Choose language":"選擇語言","Remove language":"移除語言","Increase indent":"增加縮排","Decrease indent":"減少縮排","image widget":"圖片小工具","Wrap text":"文繞圖","Break text":"上及下","In line":"行中","Side image":"側邊圖片","Full size image":"完整尺寸圖片","Left aligned image":"向左對齊圖片","Centered image":"置中圖片","Right aligned image":"向右對齊圖片","Change image text alternative":"修改圖片的替代文字","Text alternative":"替代文字","Enter image caption":"輸入圖片說明","Insert image":"插入圖片","Replace image":"替換圖片","Upload from computer":"從電腦上傳","Replace from computer":"從電腦替換","Upload image from computer":"從電腦上傳圖片","Image from computer":"來自電腦的圖片","From computer":"從電腦","Replace image from computer":"從電腦替換圖片","Upload failed":"上傳失敗","You have no image upload permissions.":"您沒有圖片上傳權限。","Image toolbar":"圖片工具","Resize image":"縮放圖片","Resize image to %0":"縮放圖片到 %0","Resize image to the original size":"縮放圖片到原始尺寸","Resize image (in %0)":"調整圖片大小(單位為 %0)",Original:"原始圖片","Custom image size":"自訂圖片大小",Custom:"自訂","Image resize list":"圖片縮放清單","Insert image via URL":"使用連結插入圖片","Insert via URL":"透過網址插入","Image via URL":"透過網址插入圖片","Via URL":"透過網址","Update image URL":"更新圖片連結","Caption for the image":"影像的標題","Caption for image: %0":"影像標題:%0","The value must not be empty.":"數值不得為空白。","The value should be a plain number.":"數值應為純數字。","Uploading image":"正在上傳圖片","Image upload complete":"圖片上傳完成","Error during image upload":"圖片上傳期間發生錯誤",Image:"圖片","Image Resize":"圖片調整大小","Text Alternative":"文字替代","HTML object":"HTML 物件","Insert HTML":"輸入HTML","HTML snippet":"HTML標籤","Paste raw HTML here...":"在此貼上純HTML","Edit source":"編輯HTML","Save changes":"儲存變更","No preview available":"無法顯示預覽","Empty snippet content":"HTML標籤中無內容","Horizontal line":"水平線","Yellow marker":"黃色標記","Green marker":"綠色標記","Pink marker":"粉色標記","Blue marker":"藍色標記","Red pen":"紅色筆","Green pen":"綠色筆","Remove highlight":"清除高亮",Highlight:"高亮","Text highlight toolbar":"高亮",Heading:"標題","Choose heading":"選取標題","Heading 1":"標題 1","Heading 2":"標題 2","Heading 3":"標題 3","Heading 4":"標題 4","Heading 5":"標題 5","Heading 6":"標題 6","Type your title":"輸入你的標題","Type or paste your content here.":"在此輸入或貼上你的內容。","Enter fullscreen mode":"進入全螢幕模式","Leave fullscreen mode":"退出全螢幕模式","Fullscreen mode":"全螢幕模式","Toggle fullscreen mode":"切換全螢幕模式","Document outline":"文件大綱","Connected users":"已連線使用者","Font Size":"字體大小",Tiny:"特小",Small:"小",Big:"大",Huge:"特大","Font Family":"字型",Default:"預設","Font Color":"字體顏色","Font Background Color":"前景顏色","Document colors":"文件顏色","Find and replace":"尋找和取代","Find in text…":"在文本中尋找",Find:"尋找","Previous result":"前一個結果","Next result":"後一個結果",Replace:"取代","Replace all":"全部取代","Match case":"大小寫需相符","Whole words only":"僅全字拼寫","Replace with…":"以…替代","Text to find must not be empty.":"不能查找空字串","Tip: Find some text first in order to replace it.":"提示:先查找字串再取代","Advanced options":"進階選項","Find in the document":"在文件中尋找","Insert a soft break (a <code><br></code> element)":"插入非強制斷行(<code><br></code> 元件)","Insert a hard break (a new paragraph)":"插入強制斷行(新段落)",Emoji:"表情符號","Show all emoji...":"顯示所有表情符號…","Find an emoji (min. 2 characters)":"尋找表情符號(最少 2 個字元)",'No emojis were found matching "%0".':"找不到與「%0」相符的表情符號。","Keep on typing to see the emoji.":"繼續輸入以查看表情符號。","The query must contain at least two characters.":"查詢條件至少須包含兩個字元。","Smileys & Expressions":"笑臉與表情","Gestures & People":"手勢與人物","Animals & Nature":"動物與自然","Food & Drinks":"飲食","Travel & Places":"旅遊與景點",Activities:"活動",Objects:"物件",Symbols:"符號",Flags:"旗幟","Select skin tone":"選取膚色","Default skin tone":"預設膚色","Light skin tone":"淺調膚色","Medium Light skin tone":"中淺調膚色","Medium skin tone":"中調膚色","Medium Dark skin tone":"中深調膚色","Dark skin tone":"深調膚色","Emoji picker":"表情符號選擇器",Cancel:"取消",Clear:"清除","Remove color":"移除顏色","Restore default":"重設至預設值",Save:"儲存","Show more items":"顯示更多","%0 of %1":"%0/%1","Cannot upload file:":"無法上傳檔案:","Rich Text Editor. Editing area: %0":"RTF 編輯器。編輯區:%0","Insert with file manager":"使用檔案管理員插入","Replace with file manager":"使用檔案管理員替換","Insert image with file manager":"使用檔案管理員插入圖片","Replace image with file manager":"使用檔案管理員替換圖片",File:"檔案","With file manager":"使用檔案管理員","Toggle caption off":"關閉表標題","Toggle caption on":"開啟表標題","Content editing keystrokes":"內容編輯按鍵","These keyboard shortcuts allow for quick access to content editing features.":"運用這些鍵盤快捷鍵可快速使用內容編輯功能。","User interface and content navigation keystrokes":"使用者介面和內容瀏覽按鍵","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"使用以下按鍵可更有效率地在 CKEditor 5 使用者介面中移動。","Close contextual balloons, dropdowns, and dialogs":"關閉選單提示、下拉式選單和對話框","Open the accessibility help dialog":"開啟無障礙協助對話框","Move focus between form fields (inputs, buttons, etc.)":"在表單欄位(輸入、按鈕等)之間移動焦點","Move focus to the menu bar, navigate between menu bars":"將焦點移至選單列,瀏覽不同的選單列","Move focus to the toolbar, navigate between toolbars":"將焦點移動至工具列,在工具列間移動","Navigate through the toolbar or menu bar":"瀏覽工具列或選單列","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"執行目前所聚焦的按鈕。執行與編輯器內容互動的按鈕後,系統會將焦點移回內容。",Accept:"接受",Paragraph:"段落","Color picker":"顏色選擇","Please try a different phrase or check the spelling.":"請嘗試其他詞彙或確認拼寫是否正確。",Source:"原始碼",Insert:"插入",Update:"更新",Back:"返回","Insert code block":"插入程式碼區塊","Plain text":"純文字","Leaving %0 code snippet":"離開 %0 程式碼片段","Entering %0 code snippet":"進入 %0 程式碼片段","Entering code snippet":"進入程式碼片段","Leaving code snippet":"離開程式碼片段","Code block":"程式碼區塊","Copy selected content":"複製所選內容","Paste content":"貼上內容","Paste content as plain text":"將內容貼上為純文字","Insert image or file":"插入圖片或檔案","Could not obtain resized image URL.":"無法取得重設大小的圖片URL","Selecting resized image failed":"選擇重設大小的圖片失敗","Could not insert image at the current position.":"無法在這位置插入圖片","Inserting image failed":"插入圖片失敗",Bookmark:"書籤","Edit bookmark":"編輯書籤","Remove bookmark":"移除書籤","Bookmark name":"書籤名稱","Enter the bookmark name without spaces.":"輸入書籤名稱,請勿包含空格。","Bookmark must not be empty.":"書籤名稱不得為空。","Bookmark name cannot contain space characters.":"書籤名稱不可包含空格字元。","Bookmark name already exists.":"書籤名稱已存在。","bookmark widget":"書籤小工具","Bookmark toolbar":"書籤工具列",Bookmarks:"書籤","No bookmarks available.":"無可用書籤。","Scroll to bookmark":"捲動至書籤","Open file manager":"開啟檔案管理程式","Cannot determine a category for the uploaded file.":"無法確定上傳檔案的分類。","Cannot access default workspace.":"無法存取預設工作區。","You have no image editing permissions.":"您沒有圖片編輯權限。","Edit image":"編輯圖片","Processing the edited image.":"正在處理已編輯的圖片。","Server failed to process the image.":"伺服器無法處理該圖片。","Failed to determine category of edited image.":"無法判斷已編輯圖片的類別。","Block quote":"段落引用",Bold:"粗體",Italic:"斜體",Underline:"底線",Code:"代碼",Strikethrough:"刪除線",Subscript:"下標",Superscript:"上標","Italic text":"斜體文字","Move out of an inline code style":"移出行內程式碼樣式","Bold text":"粗體文字","Underline text":"底線文字","Strikethrough text":"刪除線文字","Saving changes":"正在儲存變更","Revert autoformatting action":"復原自動格式化操作","Align left":"靠左對齊","Align right":"靠右對齊","Align center":"置中對齊",Justify:"左右對齊","Text alignment":"文字對齊","Text alignment toolbar":"文字對齊"},getPluralForm(n){return 0}}};const nB={de:{dictionary:{"Words: %0":"Wörter: %0 ","Characters: %0":"Zeichen: %0 ","Widget toolbar":"Widget Werkzeugleiste","Insert paragraph before block":"Absatz vor Block einfügen","Insert paragraph after block":"Absatz nach Block einfügen","Press Enter to type after or press Shift + Enter to type before the widget":"Drücken Sie die Eingabetaste, um nach dem Widget zu tippen oder Shift + Eingabetaste, um vor dem Widget zu tippen.","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Tastatureingaben, die verwendet werden können, wenn ein Widget ausgewählt wurde (zum Beispiel: Bilder, Tabellen etc.)","Insert a new paragraph directly after a widget":"Einen neuen Abschnitt direkt nach einem Widget einfügen","Insert a new paragraph directly before a widget":"Einen neuen Abschnitt direkt vor einem Widget einfügen","Move the caret to allow typing directly before a widget":"Verschieben Sie den Textcursor, um die Eingabe direkt nach dem Widget zu erlauben","Move the caret to allow typing directly after a widget":"Verschieben Sie den Textcursor, um die direkte Eingabe nach dem Widget zu erlauben","Move focus from an editable area back to the parent widget":"Bewegen Sie den Fokus von einem bearbeitbaren Bereich zurück zum übergeordneten Widget","Upload in progress":"Upload läuft",Undo:"Rückgängig",Redo:"Wiederherstellen","Rich Text Editor":"Rich Text Editor","Edit block":"Absatz bearbeiten","Click to edit block":"Zum Bearbeiten des Blocks klicken","Drag to move":"Zum Verschieben ziehen",Next:"Nächste",Previous:"vorherige","Editor toolbar":"Editor Werkzeugleiste","Dropdown toolbar":"Dropdown-Liste Werkzeugleiste","Dropdown menu":"Dropdown-Menü",Black:"Schwarz","Dim grey":"Dunkelgrau",Grey:"Grau","Light grey":"Hellgrau",White:"Weiß",Red:"Rot",Orange:"Orange",Yellow:"Gelb","Light green":"Hellgrün",Green:"Grün",Aquamarine:"Aquamarinblau",Turquoise:"Türkis","Light blue":"Hellblau",Blue:"Blau",Purple:"Violett","Editor block content toolbar":"Editor Blockinhalt-Toolbar","Editor contextual toolbar":"Editor kontextuelle Toolbar",HEX:"HEX","No results found":"Keine Ergebnisse gefunden","No searchable items":"Keine durchsuchbaren Elemente","Editor dialog":"Editor-Dialog",Close:"Schließen","Help Contents. To close this dialog press ESC.":"Hilfe zum Inhalt. Drücken Sie die Esc-Taste, um dieses Dialogfenster zu schließen.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Unten finden Sie eine Liste mit Tastenkombinationen, die im Editor benutzt werden können.","(may require <kbd>Fn</kbd>)":"(erfordert gegebenenfalls <kbd>Fn</kbd>)",Accessibility:"Bedienungshilfen","Accessibility help":"Hilfe zur Eingabe","Press %0 for help.":"Drücken Sie %0 für Hilfe.","Move focus in and out of an active dialog window":"Fokus auf ein aktives Dialogfenster richten oder aufheben",MENU_BAR_MENU_FILE:"Datei",MENU_BAR_MENU_EDIT:"Bearbeiten",MENU_BAR_MENU_VIEW:"Anzeigen",MENU_BAR_MENU_INSERT:"Einfügen",MENU_BAR_MENU_FORMAT:"Format",MENU_BAR_MENU_TOOLS:"Werkzeuge",MENU_BAR_MENU_HELP:"Hilfe",MENU_BAR_MENU_TEXT:"Text",MENU_BAR_MENU_FONT:"Schriftart","Editor menu bar":"Menüleiste des Editors",'Please enter a valid color (e.g. "ff0000").':"Bitte geben Sie eine gültige Farbe ein (z. B. „ff0000“).","Insert table":"Tabelle einfügen","Header column":"Kopfspalte","Insert column left":"Spalte links einfügen","Insert column right":"Spalte rechts einfügen","Delete column":"Spalte löschen","Select column":"Spalte auswählen",Column:"Spalte","Header row":"Kopfzeile","Insert row below":"Zeile unten einfügen","Insert row above":"Zeile oben einfügen","Delete row":"Zeile löschen","Select row":"Zeile auswählen",Row:"Zeile","Merge cell up":"Zelle verbinden","Merge cell right":"Zelle rechts verbinden","Merge cell down":"Zelle unten verbinden","Merge cell left":"Zelle links verbinden","Split cell vertically":"Zelle vertikal teilen","Split cell horizontally":"Zelle horizontal teilen","Merge cells":"Zellen verbinden","Table toolbar":"Tabelle Werkzeugleiste","Table properties":"Tabelleneigenschaften","Cell properties":"Zelleneigenschaften",Border:"Rahmen",Style:"Rahmenart",Width:"Breite",Height:"Höhe",Color:"Farbe",Background:"Hintergrund",Padding:"Innenabstand",Dimensions:"Größe","Table cell text alignment":"Ausrichtung des Zellentextes",Alignment:"Ausrichtung","Horizontal text alignment toolbar":"Werkzeugleiste für die horizontale Zellentext-Ausrichtung","Vertical text alignment toolbar":"Werkzeugleiste für die vertikale Zellentext-Ausrichtung","Table alignment toolbar":"Werkzeugleiste für die Tabellen-Ausrichtung",None:"Kein Rahmen",Solid:"Durchgezogen",Dotted:"Gepunktet",Dashed:"Gestrichelt",Double:"Doppelt",Groove:"Eingeritzt",Ridge:"Hervorgehoben",Inset:"Eingelassen",Outset:"Geprägt","Align cell text to the left":"Zellentext linksbündig ausrichten","Align cell text to the center":"Zellentext zentriert ausrichten","Align cell text to the right":"Zellentext rechtsbündig ausrichten","Justify cell text":"Zellentext als Blocksatz ausrichten","Align cell text to the top":"Zellentext oben ausrichten","Align cell text to the middle":"Zellentext mittig ausrichten","Align cell text to the bottom":"Zellentext unten ausrichten","Align table to the left":"Tabelle links ausrichten","Center table":"Tabelle zentrieren","Align table to the right":"Tabelle rechts ausrichten",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':"Die Farbe ist ungültig. Probieren Sie „#FF0000“ oder „rgb(255,0,0)“ oder „red“.",'The value is invalid. Try "10px" or "2em" or simply "2".':"Der Wert ist ungültig. Probieren Sie „10px“ oder „2em“ oder „2“.","Enter table caption":"Tabellenüberschrift eingeben","Keystrokes that can be used in a table cell":"Tastatureingaben, die in einer Tabelle benutz werden können.","Move the selection to the next cell":"Auswahl in die nächste Zelle verschieben","Move the selection to the previous cell":"Auswahl in die vorherige Zelle verschieben","Insert a new table row (when in the last cell of a table)":"Eine neue Tabellenspalte einfügen (wenn in der letzten Tabellenzelle)","Navigate through the table":"Tabellennavigation",Table:"Tabelle","Insert table layout":"Tabellenlayout einfügen","Table layout":"Tabellenlayout","Layout table":"Layouttabelle","Content table":"Inhaltstabelle","Choose table type":"Tabellentyp auswählen","Table type":"Tabellentyp","Table type options":"Tabellentyp-Optionen",Styles:"Stile","Multiple styles":"Mehrere Stile","Block styles":"Block-Stile","Text styles":"Text-Stile","Special characters":"Sonderzeichen",Category:"Kategorie",All:"Alle",Arrows:"Pfeile",Currency:"Währung",Latin:"Lateinisch",Mathematical:"Mathematisch",Text:"Text","leftwards simple arrow":"einfacher Linkspfeil","rightwards simple arrow":"einfacher Rechtspfeil","upwards simple arrow":"einfacher Aufwärtspfeil","downwards simple arrow":"einfacher Abwärtspfeil","leftwards double arrow":"Doppelpfeil nach links","rightwards double arrow":"Doppelpfeil nach rechts","upwards double arrow":"Doppelpfeil nach oben","downwards double arrow":"Doppelpfeil nach unten","leftwards dashed arrow":"Gestrichelter Pfeil nach links","rightwards dashed arrow":"Gestrichelter Pfeil nach rechts","upwards dashed arrow":"Gestrichelter Pfeil nach oben","downwards dashed arrow":"Gestrichelter Pfeil nach unten","leftwards arrow to bar":"Pfeil nach links zum Querstrich","rightwards arrow to bar":"Pfeil nach rechts zum Querstrich","upwards arrow to bar":"Pfeil nach oben zum Querstrich","downwards arrow to bar":"Pfeil nach unten zum Querstrich","up down arrow with base":"Unterstrichener Pfeil nach oben und unten","back with leftwards arrow above":"„Back“ darüber Pfeil nach links","end with leftwards arrow above":"„End“ darüber Pfeil nach links","on with exclamation mark with left right arrow above":"„On“ mit Ausrufezeichen darüber Pfeil nach links und rechts","soon with rightwards arrow above":"„Soon“ darüber Pfeil nach rechts","top with upwards arrow above":"„Top“ darüber Pfeil nach oben","Dollar sign":"Dollar-Zeichen","Euro sign":"Euro-Zeichen","Yen sign":"Yen-Zeichen","Pound sign":"Pfund-Zeichen","Cent sign":"Cent-Zeichen","Euro-currency sign":"Euro-Währungszeichen","Colon sign":"Colón-Zeichen","Cruzeiro sign":"Cruzeiro-Zeichen","French franc sign":"Französischer Franc-Zeichen","Lira sign":"Lira-Zeichen","Currency sign":"Währungssymbol","Bitcoin sign":"Bitcoin-Zeichen","Mill sign":"Mill-Zeichen","Naira sign":"Naira-Zeichen","Peseta sign":"Peseta-Zeichen","Rupee sign":"Rupie-Zeichen","Won sign":"Won-Zeichen","New sheqel sign":"Schekel-Zeichen","Dong sign":"Đồng-Zeichen","Kip sign":"Kip-Zeichen","Tugrik sign":"Tugrik-Zeichen","Drachma sign":"Drachme-Zeichen","German penny sign":"Pfennig-Zeichen","Peso sign":"Philippinischer Peso-Zeichen","Guarani sign":"Guaraní-Zeichen","Austral sign":"Austral-Zeichen","Hryvnia sign":"Hrywnja-Zeichen","Cedi sign":"Cedi-Zeichen","Livre tournois sign":"Livre tournois-Zeichen","Spesmilo sign":"Spesmilo-Zeichen","Tenge sign":"Tenge-Zeichen","Indian rupee sign":"Indische Rupie-Zeichen","Turkish lira sign":"Türkische Lira-Zeichen","Nordic mark sign":"Nordische Mark-Zeichen","Manat sign":"Manat-Zeichen","Ruble sign":"Rubel-Zeichen","Latin capital letter a with macron":"Lateinischer Großbuchstabe a mit Makron","Latin small letter a with macron":"Lateinischer Kleinbuchstabe a mit Makron","Latin capital letter a with breve":"Lateinischer Großbuchstabe a mit Breve","Latin small letter a with breve":"Lateinischer Kleinbuchstabe a mit Breve","Latin capital letter a with ogonek":"Lateinischer Großbuchstabe a mit Ogonek","Latin small letter a with ogonek":"Lateinischer Kleinbuchstabe a mit Ogonek","Latin capital letter c with acute":"Lateinischer Großbuchstabe c mit Akut","Latin small letter c with acute":"Lateinischer Kleinbuchstabe c mit Akut","Latin capital letter c with circumflex":"Lateinischer Großbuchstabe c mit Zirkumflex","Latin small letter c with circumflex":"Lateinischer Kleinbuchstabe c mit Zirkumflex","Latin capital letter c with dot above":"Lateinischer Großbuchstabe c mit Punkt darüber","Latin small letter c with dot above":"Lateinischer Kleinbuchstabe c mit Punkt darüber","Latin capital letter c with caron":"Lateinischer Großbuchstabe c mit Hatschek","Latin small letter c with caron":"Lateinischer Kleinbuchstabe c mit Hatschek","Latin capital letter d with caron":"Lateinischer Großbuchstabe d mit Hatschek","Latin small letter d with caron":"Lateinischer Kleinbuchstabe d mit Hatschek","Latin capital letter d with stroke":"Lateinischer Großbuchstabe d mit Querstrich","Latin small letter d with stroke":"Lateinischer Kleinbuchstabe d mit Querstrich","Latin capital letter e with macron":"Lateinischer Großbuchstabe e mit Makron","Latin small letter e with macron":"Lateinischer Kleinbuchstabe e mit Makron","Latin capital letter e with breve":"Lateinischer Großbuchstabe e mit Breve","Latin small letter e with breve":"Lateinischer Kleinbuchstabe e mit Breve","Latin capital letter e with dot above":"Lateinischer Großbuchstabe e mit Punkt darüber","Latin small letter e with dot above":"Lateinischer Kleinbuchstabe e mit Punkt darüber","Latin capital letter e with ogonek":"Lateinischer Großbuchstabe e mit Ogonek","Latin small letter e with ogonek":"Lateinischer Kleinbuchstabe e mit Ogonek","Latin capital letter e with caron":"Lateinischer Großbuchstabe e mit Hatschek","Latin small letter e with caron":"Lateinischer Kleinbuchstabe e mit Hatschek","Latin capital letter g with circumflex":"Lateinischer Großbuchstabe g mit Zirkumflex","Latin small letter g with circumflex":"Lateinischer Kleinbuchstabe g mit Zirkumflex","Latin capital letter g with breve":"Lateinischer Großbuchstabe g mit Breve","Latin small letter g with breve":"Lateinischer Kleinbuchstabe g mit Breve","Latin capital letter g with dot above":"Lateinischer Großbuchstabe g mit Punkt darüber","Latin small letter g with dot above":"Lateinischer Kleinbuchstabe g mit Punkt darüber","Latin capital letter g with cedilla":"Lateinischer Großbuchstabe g mit Cedille","Latin small letter g with cedilla":"Lateinischer Kleinbuchstabe g mit Cedille","Latin capital letter h with circumflex":"Lateinischer Großbuchstabe h mit Zirkumflex","Latin small letter h with circumflex":"Lateinischer Kleinbuchstabe h mit Zirkumflex","Latin capital letter h with stroke":"Lateinischer Großbuchstabe h mit Querstrich","Latin small letter h with stroke":"Lateinischer Kleinbuchstabe h mit Querstrich","Latin capital letter i with tilde":"Lateinischer Großbuchstabe i mit Tilde","Latin small letter i with tilde":"Lateinischer Kleinbuchstabe i mit Tilde","Latin capital letter i with macron":"Lateinischer Großbuchstabe i mit Makron","Latin small letter i with macron":"Lateinischer Kleinbuchstabe i mit Makron","Latin capital letter i with breve":"Lateinischer Großbuchstabe i mit Breve","Latin small letter i with breve":"Lateinischer Kleinbuchstabe i mit Breve","Latin capital letter i with ogonek":"Lateinischer Großbuchstabe i mit Ogonek","Latin small letter i with ogonek":"Lateinischer Kleinbuchstabe i mit Ogonek","Latin capital letter i with dot above":"Lateinischer Großbuchstabe i mit Punkt darüber","Latin small letter dotless i":"Lateinischer Kleinbuchstabe i ohne Punkt","Latin capital ligature ij":"Große lateinische Ligatur ij","Latin small ligature ij":"Kleine lateinische Ligatur ij","Latin capital letter j with circumflex":"Lateinischer Großbuchstabe j mit Zirkumflex","Latin small letter j with circumflex":"Lateinischer Kleinbuchstabe j mit Zirkumflex","Latin capital letter k with cedilla":"Lateinischer Großbuchstabe k mit Cedille","Latin small letter k with cedilla":"Lateinischer Kleinbuchstabe k mit Cedille","Latin small letter kra":"Lateinischer Kleinbuchstabe Kra","Latin capital letter l with acute":"Lateinischer Großbuchstabe l mit Akut","Latin small letter l with acute":"Lateinischer Kleinbuchstabe l mit Akut","Latin capital letter l with cedilla":"Lateinischer Großbuchstabe l mit Cedille","Latin small letter l with cedilla":"Lateinischer Kleinbuchstabe l mit Cedille","Latin capital letter l with caron":"Lateinischer Großbuchstabe l mit Hatschek","Latin small letter l with caron":"Lateinischer Kleinbuchstabe l mit Hatschek","Latin capital letter l with middle dot":"Lateinischer Großbuchstabe l mit Mittelpunkt","Latin small letter l with middle dot":"Lateinischer Kleinbuchstabe l mit Mittelpunkt","Latin capital letter l with stroke":"Lateinischer Großbuchstabe l mit Querstrich","Latin small letter l with stroke":"Lateinischer Kleinbuchstabe l mit Querstrich","Latin capital letter n with acute":"Lateinischer Großbuchstabe n mit Akut","Latin small letter n with acute":"Lateinischer Kleinbuchstabe n mit Akut","Latin capital letter n with cedilla":"Lateinischer Großbuchstabe n mit Cedille","Latin small letter n with cedilla":"Lateinischer Kleinbuchstabe n mit Cedille","Latin capital letter n with caron":"Lateinischer Großbuchstabe n mit Hatschek","Latin small letter n with caron":"Lateinischer Kleinbuchstabe n mit Hatschek","Latin small letter n preceded by apostrophe":"Lateinischer Kleinbuchstabe n mit vorangestelltem Apostroph","Latin capital letter eng":"Lateinischer Großbuchstabe Eng","Latin small letter eng":"Lateinischer Kleinbuchstabe Eng","Latin capital letter o with macron":"Lateinischer Großbuchstabe o mit Makron","Latin small letter o with macron":"Lateinischer Kleinbuchstabe o mit Makron","Latin capital letter o with breve":"Lateinischer Großbuchstabe o mit Breve","Latin small letter o with breve":"Lateinischer Kleinbuchstabe o mit Breve","Latin capital letter o with double acute":"Lateinischer Großbuchstabe o mit doppeltem Akut","Latin small letter o with double acute":"Lateinischer Kleinbuchstabe o mit doppeltem Akut","Latin capital ligature oe":"Große lateinische Ligatur oe","Latin small ligature oe":"Kleine lateinische Ligatur oe","Latin capital letter r with acute":"Lateinischer Großbuchstabe r mit Akut","Latin small letter r with acute":"Lateinischer Kleinbuchstabe r mit Akut","Latin capital letter r with cedilla":"Lateinischer Großbuchstabe r mit Cedille","Latin small letter r with cedilla":"Lateinischer Kleinbuchstabe r mit Cedille","Latin capital letter r with caron":"Lateinischer Großbuchstabe r mit Hatschek","Latin small letter r with caron":"Lateinischer Kleinbuchstabe r mit Hatschek","Latin capital letter s with acute":"Lateinischer Großbuchstabe s mit Akut","Latin small letter s with acute":"Lateinischer Kleinbuchstabe s mit Akut","Latin capital letter s with circumflex":"Lateinischer Großbuchstabe s mit Zirkumflex","Latin small letter s with circumflex":"Lateinischer Kleinbuchstabe s mit Zirkumflex","Latin capital letter s with cedilla":"Lateinischer Großbuchstabe s mit Cedille","Latin small letter s with cedilla":"Lateinischer Kleinbuchstabe s mit Cedille","Latin capital letter s with caron":"Lateinischer Großbuchstabe s mit Hatschek","Latin small letter s with caron":"Lateinischer Kleinbuchstabe s mit Hatschek","Latin capital letter t with cedilla":"Lateinischer Großbuchstabe t mit Cedille","Latin small letter t with cedilla":"Lateinischer Kleinbuchstabe t mit Cedille","Latin capital letter t with caron":"Lateinischer Großbuchstabe t mit Hatschek","Latin small letter t with caron":"Lateinischer Kleinbuchstabe t mit Hatschek","Latin capital letter t with stroke":"Lateinischer Großbuchstabe t mit Querstrich","Latin small letter t with stroke":"Lateinischer Kleinbuchstabe t mit Querstrich","Latin capital letter u with tilde":"Lateinischer Großbuchstabe u mit Tilde","Latin small letter u with tilde":"Lateinischer Kleinbuchstabe u mit Tilde","Latin capital letter u with macron":"Lateinischer Großbuchstabe u mit Makron","Latin small letter u with macron":"Lateinischer Kleinbuchstabe u mit Makron","Latin capital letter u with breve":"Lateinischer Großbuchstabe u mit Breve","Latin small letter u with breve":"Lateinischer Kleinbuchstabe u mit Breve","Latin capital letter u with ring above":"Lateinischer Großbuchstabe u mit Kroužek darüber","Latin small letter u with ring above":"Lateinischer Kleinbuchstabe u mit Kroužek darüber","Latin capital letter u with double acute":"Lateinischer Großbuchstabe u mit doppeltem Akut","Latin small letter u with double acute":"Lateinischer Kleinbuchstabe u mit doppeltem Akut","Latin capital letter u with ogonek":"Lateinischer Großbuchstabe u mit Ogonek","Latin small letter u with ogonek":"Lateinischer Kleinbuchstabe u mit Ogonek","Latin capital letter w with circumflex":"Lateinischer Großbuchstabe w mit Zirkumflex","Latin small letter w with circumflex":"Lateinischer Kleinbuchstabe w mit Zirkumflex","Latin capital letter y with circumflex":"Lateinischer Großbuchstabe y mit Zirkumflex","Latin small letter y with circumflex":"Lateinischer Kleinbuchstabe y mit Zirkumflex","Latin capital letter y with diaeresis":"Lateinischer Großbuchstabe y mit Trema","Latin capital letter z with acute":"Lateinischer Großbuchstabe z mit Akut","Latin small letter z with acute":"Lateinischer Kleinbuchstabe z mit Akut","Latin capital letter z with dot above":"Lateinischer Großbuchstabe z mit Punkt darüber","Latin small letter z with dot above":"Lateinischer Kleinbuchstabe z mit Punkt darüber","Latin capital letter z with caron":"Lateinischer Großbuchstabe z mit Hatschek","Latin small letter z with caron":"Lateinischer Kleinbuchstabe z mit Hatschek","Latin small letter long s":"Lateinischer Kleinbuchstabe langes s","Less-than sign":"Kleiner-als-Zeichen","Greater-than sign":"Größer-als-Zeichen","Less-than or equal to":"Kleiner als oder gleich","Greater-than or equal to":"Größer als oder gleich","En dash":"Halbgeviertstrich","Em dash":"Geviertstrich",Macron:"Makron",Overline:"Überstrich","Degree sign":"Grad-Zeichen","Minus sign":"Minus-Zeichen","Plus-minus sign":"Plus-Minus-Zeichen","Division sign":"Geteilt-Zeichen","Fraction slash":"Schrägstrich","Multiplication sign":"Mal-Zeichen","Latin small letter f with hook":"Lateinischer Kleinbuchstabe f mit Haken",Integral:"Integral-Zeichen","N-ary summation":"Summen-Zeichen",Infinity:"Unendlich-Zeichen","Square root":"Wurzel-Zeichen","Tilde operator":"Tilde-Operator","Approximately equal to":"Ungefähr gleich","Almost equal to":"Gerundet","Not equal to":"Ungleich","Identical to":"Identisch mit","Element of":"Element von","Not an element of":"Kein Element von","Contains as member":"Enthält als Element","N-ary product":"Produkt-Zeichen","Logical and":"Logisches und","Logical or":"Logisches oder","Not sign":"Negations-Zeichen",Intersection:"Schnitt",Union:"Vereinigung","Partial differential":"Partielle Ableitung","For all":"Allquantor","There exists":"Existenzquantor","Empty set":"Leere Menge",Nabla:"Nabla","Asterisk operator":"Hodge-Stern-Operator","Proportional to":"Proportional zu",Angle:"Winkel-Zeichen","Vulgar fraction one quarter":"Gemeiner Bruch ein Viertel","Vulgar fraction one half":"Gemeiner Bruch ein Halb","Vulgar fraction three quarters":"Gemeiner Bruch drei Viertel","Single left-pointing angle quotation mark":"Einfache Guillemets nach links","Single right-pointing angle quotation mark":"Einfache Guillemets nach rechts","Left-pointing double angle quotation mark":"Doppelte Guillemets nach links","Right-pointing double angle quotation mark":"Doppelte Guillemets nach rechts","Left single quotation mark":"Einfache Anführungszeichen links","Right single quotation mark":"Einfache Anführungszeichen rechts","Left double quotation mark":"Doppelte Anführungszeichen links","Right double quotation mark":"Doppelte Anführungszeichen rechts","Single low-9 quotation mark":"Einfache Anführungszeichen links unten","Double low-9 quotation mark":"Doppelte Anführungszeichen links unten","Inverted exclamation mark":"Umgekehrtes Ausrufezeichen","Inverted question mark":"Umgekehrtes Fragezeichen","Two dot leader":"Doppel-Punktlinie","Horizontal ellipsis":"Auslassungspunkte","Double dagger":"Zweibalkenkreuz","Per mille sign":"Promille-Zeichen","Per ten thousand sign":"Pro-Zehntausend-Zeichen","Double exclamation mark":"Doppeltes Ausrufezeichen","Question exclamation mark":"Frage-Ruf-Zeichen","Exclamation question mark":"Ruf-Frage-Zeichen","Double question mark":"Doppeltes Fragezeichen","Copyright sign":"Copyright-Zeichen","Registered sign":"Registered-Trade-Mark-Zeichen","Trade mark sign":"Unregistered-Trade-Mark-Zeichen","Section sign":"Paragraphen-Zeichen","Paragraph sign":"Absatz-Zeichen","Reversed paragraph sign":"Umgedrehtes Absatz-Zeichen","Show source":"Quelle anzeigen","Show blocks":"Blöcke anzeigen","Select all":"Alles auswählen","Disable editing":"Bearbeitung deaktivieren","Enable editing":"Bearbeitung zulassen","Previous editable region":"Vorheriger bearbeitbarer Bereich","Next editable region":"Nächster bearbeitbarer Bereich","Navigate editable regions":"Durch bearbeitbare Bereiche navigieren","Remove Format":"Formatierung entfernen","Page break":"Seitenumbruch","media widget":"Medien-Widget","Media URL":"Medien-URL","Paste the media URL in the input.":"Medien-URL in das Eingabefeld einfügen.","Tip: Paste the URL into the content to embed faster.":"Tipp: Zum schnelleren Einbetten können Sie die Medien-URL in den Inhalt einfügen.","The URL must not be empty.":"Die URL darf nicht leer sein.","This media URL is not supported.":"Diese Medien-URL wird nicht unterstützt.","Insert media":"Medium einfügen",Media:"Medien","Media toolbar":"Medien Werkzeugleiste","Open media in new tab":"Medien in neuem Tab öffnen","Media embed":"Medieneinbettung","Numbered List":"Nummerierte Liste","Bulleted List":"Aufzählungsliste","To-do List":"Aufgabenliste","Bulleted list styles toolbar":"Darstellung der ungeordneten Liste","Numbered list styles toolbar":"Darstellung der geordneten Liste","Toggle the disc list style":"Gefüllten Kreis einstellen","Toggle the circle list style":"Leeren Kreis einstellen","Toggle the square list style":"Quadrat einstellen","Toggle the decimal list style":"Dezimalzahlen einstellen","Toggle the decimal with leading zero list style":"Dezimalzahlen mit vorangestellten Nullen einstellen","Toggle the lower–roman list style":"Kleingeschriebene römische Zahlen einstellen","Toggle the upper–roman list style":"Großgeschriebene römische Zahlen einstellen","Toggle the lower–latin list style":"Kleingeschriebene lateinische Buchstaben einstellen","Toggle the upper–latin list style":"Großgeschriebene lateinische Buchstaben einstellen",Disc:"Gefüllter Kreis",Circle:"Leerer Kreis",Square:"Quadrat",Decimal:"Dezimalzahlen","Decimal with leading zero":"Dezimalzahlen mit vorangestellten Nullen","Lower–roman":"Kleingeschriebene römische Zahlen","Upper-roman":"Großgeschriebene römische Zahlen","Lower-latin":"Kleingeschriebene lateinische Buchstaben","Upper-latin":"Großgeschriebene lateinische Buchstaben","List properties":"Listeneigenschaften","Start at":"Beginnen mit","Invalid start index value.":"Ungültiger Anfangsindexwert.","Start index must be greater than 0.":"Der Startwert muss größer als 0 sein.","Reversed order":"Umgekehrte Reihenfolge","Keystrokes that can be used in a list":"Tastatureingaben, die in einer Liste verwendet werden können.","Increase list item indent":"Listeneinzug vergrößern","Decrease list item indent":"Listeneinzug verkleinern","Entering a to-do list":"Eingabe einer Aufgabenliste","Leaving a to-do list":"Verlassen einer Aufgabenliste",Unlink:"Link entfernen",Link:"Link","Link URL":"Linkadresse","Link URL must not be empty.":"Die Link-URL darf nicht leer sein.","Link image":"Bild verlinken","Edit link":"Link bearbeiten","Open link in new tab":"Link im neuen Tab öffnen","Open in a new tab":"In neuem Tab öffnen",Downloadable:"Herunterladbar","Create link":"Link erstellen","Move out of a link":"Linkauswahl aufheben","Link properties":"Linkeigenschaften","Displayed text":"Angezeigter Text","No links available":"Keine Links verfügbar",Language:"Sprache","Choose language":"Sprache auswählen","Remove language":"Sprache entfernen","Increase indent":"Einzug vergrößern","Decrease indent":"Einzug verkleinern","image widget":"Bild-Steuerelement","Wrap text":"Text umfließt Bild","Break text":"Bild teilt Text","In line":"Text in Zeile","Side image":"Seitenbild","Full size image":"Bild in voller Größe","Left aligned image":"Linksbündiges Bild","Centered image":"Zentriertes Bild","Right aligned image":"Rechtsbündiges Bild","Change image text alternative":"Alternativtext ändern","Text alternative":"Alternativtext","Enter image caption":"Bildunterschrift eingeben","Insert image":"Bild einfügen","Replace image":"Bild ersetzen","Upload from computer":"Vom Computer hochladen","Replace from computer":"Vom Computer ersetzen","Upload image from computer":"Bild vom Computer hochladen","Image from computer":"Bild vom Computer","From computer":"Vom Computer","Replace image from computer":"Bild vom Computer ersetzen","Upload failed":"Hochladen fehlgeschlagen","You have no image upload permissions.":"Sie haben keine Berechtigung zum Hochladen von Bildern.","Image toolbar":"Bild Werkzeugleiste","Resize image":"Bildgröße ändern","Resize image to %0":"Bildgröße ändern in %0","Resize image to the original size":"Bild in Originalgröße ändern","Resize image (in %0)":"Bildgröße ändern (in %0)",Original:"Original","Custom image size":"Benutzerdefinierte Bildgröße",Custom:"Benutzerdefiniert","Image resize list":"Bildgrößen-Liste","Insert image via URL":"Bild von URL einfügen","Insert via URL":"Per URL einfügen","Image via URL":"Bild per URL","Via URL":"Per URL","Update image URL":"Bild-URL aktualisieren","Caption for the image":"Bildunterschrift","Caption for image: %0":"Bildunterschrift: %0","The value must not be empty.":"Der Wert darf nicht leer sein.","The value should be a plain number.":"Der Wert sollte eine einfache Zahl sein.","Uploading image":"Bild hochladen","Image upload complete":"Bild erfolgreich hochgeladen","Error during image upload":"Fehler beim Hochladen des Bildes",Image:"Bild","Image Resize":"Bildgrößenänderung","Text Alternative":"Textalternative","HTML object":"HTML-Objekt","Insert HTML":"HTML einfügen","HTML snippet":"HTML-Snippet","Paste raw HTML here...":"Rohes HTML hier einfügen …","Edit source":"Quelle bearbeiten","Save changes":"Änderungen speichern","No preview available":"Keine Vorschau verfügbar","Empty snippet content":"Leerer Snippet-Inhalt","Horizontal line":"Horizontale Linie","Yellow marker":"Gelber Marker","Green marker":"Grüner Marker","Pink marker":"Pinker Marker","Blue marker":"Blauer Marker","Red pen":"Rote Schriftfarbe","Green pen":"Grüne Schriftfarbe","Remove highlight":"Texthervorhebung entfernen",Highlight:"Texthervorhebung","Text highlight toolbar":"Text hervorheben Werkzeugleiste",Heading:"Überschrift","Choose heading":"Überschrift auswählen","Heading 1":"Überschrift 1","Heading 2":"Überschrift 2","Heading 3":"Überschrift 3","Heading 4":"Überschrift 4","Heading 5":"Überschrift 5","Heading 6":"Überschrift 6","Type your title":"Titel eingeben","Type or paste your content here.":"Hier Inhalt einfügen.","Enter fullscreen mode":"Vollbildmodus aktivieren","Leave fullscreen mode":"Vollbildmodus deaktivieren","Fullscreen mode":"Vollbildmodus","Toggle fullscreen mode":"Vollbildmodus umschalten","Document outline":"Dokumentgliederung","Connected users":"Verbundene Nutzer","Font Size":"Schriftgröße",Tiny:"Sehr klein",Small:"Klein",Big:"Groß",Huge:"Sehr groß","Font Family":"Schriftart",Default:"Standard","Font Color":"Schriftfarbe","Font Background Color":"Hintergrundfarbe","Document colors":"Dokumentfarben","Find and replace":"Suchen und ersetzen","Find in text…":"In Text suchen…",Find:"Suchen","Previous result":"Vorheriges Ergebnis","Next result":"Nächstes Ergebnis",Replace:"Ersetzen","Replace all":"Alle ersetzen","Match case":"Groß-/Kleinschreibung beachten","Whole words only":"Nur ganze Wörter","Replace with…":"Ersetzen durch…","Text to find must not be empty.":"Der Suchtext darf nicht leer sein.","Tip: Find some text first in order to replace it.":"Tipp: Zuerst nach Text suchen um diesen zu ersetzen.","Advanced options":"Erweiterte Optionen","Find in the document":"Dokument durchsuchen","Insert a soft break (a <code><br></code> element)":"Einen weichen Zeilenumbruch einfügen (ein <code><br></code>-Element)","Insert a hard break (a new paragraph)":"Zeilenumbruch einfügen (einen neuen Abschnitt)",Emoji:"Emojis","Show all emoji...":"Alle Emojis anzeigen ...","Find an emoji (min. 2 characters)":"Emoji finden (min. 2 Zeichen)",'No emojis were found matching "%0".':"Es wurden keine Emojis gefunden, die zu „%0“ passen.","Keep on typing to see the emoji.":"Weiteren Text eingeben, damit Emojis angezeigt werden.","The query must contain at least two characters.":"Die Anfrage muss aus mindestens zwei Zeichen bestehen.","Smileys & Expressions":"Smileys und Emotionen","Gestures & People":"Gesten und Personen","Animals & Nature":"Tiere und Natur","Food & Drinks":"Speisen und Getränke","Travel & Places":"Reisen und Orte",Activities:"Aktivitäten",Objects:"Objekte",Symbols:"Symbole",Flags:"Flaggen","Select skin tone":"Hautfarbe wählen","Default skin tone":"Standardhautfarbe","Light skin tone":"Helle Hautfarbe","Medium Light skin tone":"Mittelhelle Hautfarbe","Medium skin tone":"Mittlere Hautfarbe","Medium Dark skin tone":"Mitteldunkle Hautfarbe","Dark skin tone":"Dunkle Hautfarbe","Emoji picker":"Emoji-Auswahl",Cancel:"Abbrechen",Clear:"Löschen","Remove color":"Farbe entfernen","Restore default":"Standard wiederherstellen",Save:"Speichern","Show more items":"Mehr anzeigen","%0 of %1":"%0 von %1","Cannot upload file:":"Die Datei kann nicht hochgeladen werden:","Rich Text Editor. Editing area: %0":"Rich Text Editor. Bearbeitungsbereich: %0","Insert with file manager":"Mit Dateimanager einfügen","Replace with file manager":"Mittels Dateimanager ersetzen","Insert image with file manager":"Bild mit dem Dateimanager einfügen","Replace image with file manager":"Bild mittels Dateimanager ersetzen",File:"Datei","With file manager":"Mit dem Dateimanager","Toggle caption off":"Tabellenüberschrift deaktivieren","Toggle caption on":"Tabellenüberschrift aktivieren","Content editing keystrokes":"Tastatureingaben zur Inhaltsverarbeitung","These keyboard shortcuts allow for quick access to content editing features.":"Diese Tastenkombinationen ermöglichen einen schnellen Zugang zu den Inhaltsverarbeitungsfunktionen.","User interface and content navigation keystrokes":"Benutzeroberfläche und Inhaltsnavigationstasten","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Verwenden Sie die folgenden Tastatureingaben für eine effizientere Navigation auf der CKEditor-5-Benutzeroberfläche.","Close contextual balloons, dropdowns, and dialogs":"Kontextsprechblasen, Dropdown-Menü und Dialoge schließen","Open the accessibility help dialog":"Den Dialog zur Eingabehilfe öffnen","Move focus between form fields (inputs, buttons, etc.)":"Fokus zwischen Formularfeldern verschieben (Eingaben, Tastenfelder etc.)","Move focus to the menu bar, navigate between menu bars":"Fokus auf die Menüleiste richten, zwischen Menüleisten navigieren","Move focus to the toolbar, navigate between toolbars":"Fokus auf die Symbolleiste verschieben, zwischen den Symbolleisten navigieren","Navigate through the toolbar or menu bar":"Durch die Werkzeugleiste oder Menüleiste navigieren","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Ausführen der aktuell fokussierten Schaltfläche. Das Ausführen von Schaltflächen, die mit dem Inhalt des Editors interagieren, richtet den Fokus zurück auf den Inhalt.",Accept:"Akzeptieren",Paragraph:"Absatz","Color picker":"Farbwähler","Please try a different phrase or check the spelling.":"Bitte versuchen Sie einen anderen Ausdruck oder überprüfen Sie die Schreibweise.",Source:"Quelle",Insert:"Einfügen",Update:"Aktualisieren",Back:"Zurück","Insert code block":"Code-Block einfügen","Plain text":"Nur Text","Leaving %0 code snippet":"%0 Code-Ausschnitt verlassen","Entering %0 code snippet":"%0 Code-Ausschnitt eingeben","Entering code snippet":"Code-Ausschnit eingeben","Leaving code snippet":"Code-Ausschnit verlassen","Code block":"Codeblock","Copy selected content":"Markierten Inhalt kopieren","Paste content":"Inhalt einfügen","Paste content as plain text":"Inhalt als Klartext einfügen","Insert image or file":"Bild oder Datei einfügen","Could not obtain resized image URL.":"Die URL des angepassten Bildes konnte nicht abgerufen werden.","Selecting resized image failed":"Das angepasste Bild konnte nicht ausgewählt werden.","Could not insert image at the current position.":"Das Bild konnte an der aktuellen Position nicht eingefügt werden.","Inserting image failed":"Einfügen des Bildes fehlgeschlagen",Bookmark:"Lesezeichen","Edit bookmark":"Lesezeichen bearbeiten","Remove bookmark":"Lesezeichen entfernen","Bookmark name":"Name des Lesezeichens","Enter the bookmark name without spaces.":"Geben Sie den Namen des Lesezeichens ohne Leerzeichen ein.","Bookmark must not be empty.":"Das Lesezeichen darf nicht leer sein.","Bookmark name cannot contain space characters.":"Der Name des Lesezeichens darf keine Leerzeichen enthalten.","Bookmark name already exists.":"Der Lesezeichenname existiert bereits.","bookmark widget":"Lesezeichen-Widget","Bookmark toolbar":"Lesezeichen-Werkzeugleiste",Bookmarks:"Lesezeichen","No bookmarks available.":"Keine Lesezeichen verfügbar.","Scroll to bookmark":"Zu Lesezeichen scrollen","Open file manager":"Dateimanager öffnen","Cannot determine a category for the uploaded file.":"Die Kategorie für die hochgeladene Datei konnte nicht bestimmt werden.","Cannot access default workspace.":"Zugriff auf Standardarbeitsbereich nicht möglich.","You have no image editing permissions.":"Sie haben keine Berechtigung zum Bearbeiten von Bildern.","Edit image":"Bild bearbeiten","Processing the edited image.":"Das bearbeitete Bild wird verarbeitet.","Server failed to process the image.":"Der Server konnte das Bild nicht verarbeiten.","Failed to determine category of edited image.":"Es konnte für das bearbeitete Bild keine Kategorie ermittelt werden.","Block quote":"Blockzitat",Bold:"Fett",Italic:"Kursiv",Underline:"Unterstrichen",Code:"Code",Strikethrough:"Durchgestrichen",Subscript:"Tiefgestellt",Superscript:"Hochgestellt","Italic text":"Kursivschrift","Move out of an inline code style":"Inline Code Style verlassen","Bold text":"Fettschrift","Underline text":"Text hervorheben","Strikethrough text":"Durchgestrichener Text","Saving changes":"Änderungen werden gespeichert","Revert autoformatting action":"Automatischen Formatierungsvorgang rückgängig machen","Align left":"Linksbündig","Align right":"Rechtsbündig","Align center":"Zentriert",Justify:"Blocksatz","Text alignment":"Textausrichtung","Text alignment toolbar":"Text-Ausrichtung Toolbar"},getPluralForm(n){return n!=1}}};const rB={es:{dictionary:{"Words: %0":"Palabras: %0","Characters: %0":"Caracteres: %0","Widget toolbar":"Barra de herramientas del widget","Insert paragraph before block":"Insertar párrafo antes del bloque","Insert paragraph after block":"Insertar párrafo después del bloque","Press Enter to type after or press Shift + Enter to type before the widget":"Pulse Intro para escribir después o pulse Mayús + Intro para escribir antes del «widget».","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Teclas que se pueden utilizar cuando se selecciona un módulo interactivo (por ejemplo: imagen, tabla, etc.)","Insert a new paragraph directly after a widget":"Inserta un nuevo párrafo directamente después de un módulo interactivo","Insert a new paragraph directly before a widget":"Inserta un nuevo párrafo directamente antes de un módulo interactivo","Move the caret to allow typing directly before a widget":"Mueve el cursor para permitir escribir directamente antes de un módulo interactivo","Move the caret to allow typing directly after a widget":"Mueve el cursor para permitir escribir directamente después de un módulo interactivo","Move focus from an editable area back to the parent widget":"Cambiar el foco de un área editable al widget principal","Upload in progress":"Subida en progreso",Undo:"Deshacer",Redo:"Rehacer","Rich Text Editor":"Editor de Texto Enriquecido","Edit block":"Cuadro de edición","Click to edit block":"Haz clic para editar el bloque","Drag to move":"Arrastra para mover",Next:"Siguiente",Previous:"Anterior","Editor toolbar":"Barra de herramientas de edición","Dropdown toolbar":"Barra de herramientas desplegable","Dropdown menu":"Menú desplegable",Black:"Negro","Dim grey":"Gris oscuro",Grey:"Gris","Light grey":"Gris claro",White:"Blanco",Red:"Rojo",Orange:"Naranja",Yellow:"Amarillo","Light green":"Verde claro",Green:"Verde",Aquamarine:"Aguamarina",Turquoise:"Turquesa","Light blue":"Azul claro",Blue:"Azul",Purple:"Morado","Editor block content toolbar":"Barra de herramientas de contenido del bloque del editor","Editor contextual toolbar":"Barra de herramientas contextual del editor",HEX:"HEX","No results found":"No se han encontrado resultados","No searchable items":"No hay elementos que buscar","Editor dialog":"Diálogo del editor",Close:"Cerrar","Help Contents. To close this dialog press ESC.":"Contenidos de ayuda. Presione ESC para cerrar este cuadro de diálogo.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"A continuación, encontrará una lista de atajos de teclado que se pueden utilizar en el editor.","(may require <kbd>Fn</kbd>)":"(puede requerir <kbd>Fn</kbd>)",Accessibility:"Accesibilidad","Accessibility help":"Ayuda de accesibilidad","Press %0 for help.":"Presione %0 para obtener ayuda.","Move focus in and out of an active dialog window":"Mueve el foco dentro y fuera de una ventana de diálogo activa",MENU_BAR_MENU_FILE:"Archivo",MENU_BAR_MENU_EDIT:"Editar",MENU_BAR_MENU_VIEW:"Ver",MENU_BAR_MENU_INSERT:"Insertar",MENU_BAR_MENU_FORMAT:"Formato",MENU_BAR_MENU_TOOLS:"Herramientas",MENU_BAR_MENU_HELP:"Ayuda",MENU_BAR_MENU_TEXT:"Texto",MENU_BAR_MENU_FONT:"Fuente","Editor menu bar":"Barra de menú del editor",'Please enter a valid color (e.g. "ff0000").':'Introduzca un color válido (p. ej., "ff0000").',"Insert table":"Insertar tabla","Header column":"Columna de encabezado","Insert column left":"Insertar columna izquierda","Insert column right":"Insertar columna derecha","Delete column":"Eliminar columna","Select column":"Seleccionar columna",Column:"Columna","Header row":"Fila de encabezado","Insert row below":"Insertar fila debajo","Insert row above":"Insertar fila encima","Delete row":"Eliminar fila","Select row":"Seleccionar fila",Row:"Fila","Merge cell up":"Combinar celda superior","Merge cell right":"Combinar celda derecha","Merge cell down":"Combinar celda inferior","Merge cell left":"Combinar celda izquierda","Split cell vertically":"Dividir celdas verticalmente","Split cell horizontally":"Dividir celdas horizontalmente","Merge cells":"Combinar celdas","Table toolbar":"Barra de herramientas de tabla","Table properties":"Propiedades de tabla","Cell properties":"Propiedades de celda",Border:"Borde",Style:"Estilo",Width:"Ancho",Height:"Altura",Color:"Color",Background:"Fondo",Padding:"Márgenes",Dimensions:"Dimensiones","Table cell text alignment":"Alineación texto de celda",Alignment:"Alineación","Horizontal text alignment toolbar":"Alineación horizontal de texto","Vertical text alignment toolbar":"Alineación vertical de texto","Table alignment toolbar":"Alineación de tabla",None:"Ninguno",Solid:"Sólido",Dotted:"Línea de puntos",Dashed:"Línea discontinua",Double:"Doble línea",Groove:"Bisel",Ridge:"Marco",Inset:"Incrustación",Outset:"Relieve","Align cell text to the left":"Alinear texto de celda a la izquierda","Align cell text to the center":"Centrar texto de celda","Align cell text to the right":"Alinear texto de celda a la derecha","Justify cell text":"Justificar texto de celda","Align cell text to the top":"Alinear texto de celda hacia arriba","Align cell text to the middle":"Alinear texto de celda al medio","Align cell text to the bottom":"Alinear texto de celda hacia abajo","Align table to the left":"Alinear tabla a la izquierda","Center table":"Centrar tabla","Align table to the right":"Alinear tabla a la derecha",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'El color es inválido. Intente con "#FF0000", "rgb(255,0,0)" o "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'El valor es inválido. Intente con "10px", "2em" o simplemente "2".',"Enter table caption":"Ingresar título de tabla","Keystrokes that can be used in a table cell":"Teclas que se pueden utilizar en una celda de tabla","Move the selection to the next cell":"Mueve la selección a la siguiente celda","Move the selection to the previous cell":"Mueve la selección a la celda anterior","Insert a new table row (when in the last cell of a table)":"Inserta una nueva fila de la tabla (cuando esté en la última celda de una tabla)","Navigate through the table":"Navega por la tabla",Table:"Tabla","Insert table layout":"Insertar diseño de tabla","Table layout":"Diseño de tabla","Layout table":"Tabla de diseño","Content table":"Tabla de contenido","Choose table type":"Elegir tipo de tabla","Table type":"Tipo de tabla","Table type options":"Opciones del tipo de tabla",Styles:"Estilos","Multiple styles":"Múltiples estilos","Block styles":"Estilos de bloque","Text styles":"Estilos de texto","Special characters":"Caracteres especiales",Category:"Categoría",All:"Todos",Arrows:"Flechas",Currency:"Monedas",Latin:"Latín",Mathematical:"Matemáticas",Text:"Texto","leftwards simple arrow":"flecha simple hacia la izquierda","rightwards simple arrow":"flecha simple hacia la derecha","upwards simple arrow":"flecha simple hacia arriba","downwards simple arrow":"flecha simple hacia abajo","leftwards double arrow":"flecha doble hacia la izquierda","rightwards double arrow":"flecha doble hacia la derecha","upwards double arrow":"flecha doble hacia arriba","downwards double arrow":"flecha doble hacia abajo","leftwards dashed arrow":"flecha punteada hacia la izquierda","rightwards dashed arrow":"flecha punteada hacia la derecha","upwards dashed arrow":"flecha punteada hacia arriba","downwards dashed arrow":"flecha punteada hacia abajo","leftwards arrow to bar":"flecha hacia la izquierda hasta una barra","rightwards arrow to bar":"flecha hacia la derecha hasta una barra","upwards arrow to bar":"flecha hacia arriba hasta una barra","downwards arrow to bar":"flecha hacia abajo hasta una barra","up down arrow with base":"flecha hacia arriba y abajo con una base","back with leftwards arrow above":"«back» con una flecha hacia la izquierda arriba","end with leftwards arrow above":"«end» con una flecha hacia la izquierda arriba","on with exclamation mark with left right arrow above":"«on» seguido de un signo de exclamación y con una flecha hacia la izquierda y derecha arriba","soon with rightwards arrow above":"«soon» con una flecha hacia la derecha arriba","top with upwards arrow above":"«top» con una flecha hacia arriba arriba","Dollar sign":"Signo del dólar","Euro sign":"Signo del euro","Yen sign":"Signo del yen","Pound sign":"Signo de la libra","Cent sign":"Signo del centavo","Euro-currency sign":"Signo de la moneda euro","Colon sign":"Signo del colón","Cruzeiro sign":"Signo del cruceiro","French franc sign":"Signo del franco francés","Lira sign":"Signo de la lira","Currency sign":"Signo monetario","Bitcoin sign":"Signo del bitcóin","Mill sign":"Signo de milésima","Naira sign":"Signo de naira","Peseta sign":"Signo de la peseta","Rupee sign":"Signo de la rupia","Won sign":"Signo del won","New sheqel sign":"Signo del nuevo séquel","Dong sign":"Signo de dong","Kip sign":"Signo de kip","Tugrik sign":"Signo de tugrik","Drachma sign":"Signo de dracma","German penny sign":"Signo de centavo alemán","Peso sign":"Signo del peso","Guarani sign":"Signo del guaraní","Austral sign":"Signo de austral","Hryvnia sign":"Signo de grivna","Cedi sign":"Signo de cedi","Livre tournois sign":"Signo de libra tornesa","Spesmilo sign":"Signo de spesmilo","Tenge sign":"Signo de tenge","Indian rupee sign":"Signo de rupia india","Turkish lira sign":"Signo de lira turca","Nordic mark sign":"Signo de marco nórdico","Manat sign":"Signo de manat","Ruble sign":"Signo del rublo","Latin capital letter a with macron":"Letra latina mayúscula «A» con macrón","Latin small letter a with macron":"Letra latina minúscula «a» con macrón","Latin capital letter a with breve":"Letra latina mayúscula «A» con acento breve","Latin small letter a with breve":"Letra latina minúscula «a» con acento breve","Latin capital letter a with ogonek":"Letra latina mayúscula «A» con ogonek","Latin small letter a with ogonek":"Letra latina minúscula «a» con ogonek","Latin capital letter c with acute":"Letra latina mayúscula «C» con acento agudo","Latin small letter c with acute":"Letra latina minúscula «c» con acento agudo","Latin capital letter c with circumflex":"Letra latina mayúscula «C» con acento circunflejo","Latin small letter c with circumflex":"Letra latina minúscula «c» con acento circunflejo","Latin capital letter c with dot above":"Letra latina mayúscula «C» con punto superior","Latin small letter c with dot above":"Letra latina minúscula «c» con punto superior","Latin capital letter c with caron":"Letra latina mayúscula «C» con acento anticircunflejo","Latin small letter c with caron":"Letra latina minúscula «c» con acento anticircunflejo","Latin capital letter d with caron":"Letra latina mayúscula «D» con acento anticircunflejo","Latin small letter d with caron":"Letra latina minúscula «d» con acento anticircunflejo","Latin capital letter d with stroke":"Letra latina mayúscula «D» con barra horizontal","Latin small letter d with stroke":"Letra latina minúscula «d» con barra horizontal","Latin capital letter e with macron":"Letra latina mayúscula «E» con macrón","Latin small letter e with macron":"Letra latina minúscula «e» con macrón","Latin capital letter e with breve":"Letra latina mayúscula «e» con acento breve","Latin small letter e with breve":"Letra latina minúscula «e» con acento breve","Latin capital letter e with dot above":"Letra latina mayúscula «E» con punto superior","Latin small letter e with dot above":"Letra latina minúscula «e» con punto superior","Latin capital letter e with ogonek":"Letra latina mayúscula «E» con ogonek","Latin small letter e with ogonek":"Letra latina minúscula «e» con ogonek","Latin capital letter e with caron":"Letra latina mayúscula «E» con acento anticircunflejo","Latin small letter e with caron":"Letra latina minúscula «e» con acento anticircunflejo","Latin capital letter g with circumflex":"Letra latina mayúscula «G» con acento circunflejo","Latin small letter g with circumflex":"Letra latina minúscula «g» con acento circunflejo","Latin capital letter g with breve":"Letra latina mayúscula «G» con acento breve","Latin small letter g with breve":"Letra latina minúscula «g» con acento breve","Latin capital letter g with dot above":"Letra latina mayúscula «G» con punto superior","Latin small letter g with dot above":"Letra latina minúscula «g» con punto superior","Latin capital letter g with cedilla":"Letra latina mayúscula «G» con cedilla","Latin small letter g with cedilla":"Letra latina minúscula «g» con cedilla","Latin capital letter h with circumflex":"Letra latina mayúscula «H» con acento circunflejo","Latin small letter h with circumflex":"Letra latina minúscula «h» con acento circunflejo","Latin capital letter h with stroke":"Letra latina mayúscula «H» con barra horizontal","Latin small letter h with stroke":"Letra latina minúscula «h» con barra horizontal","Latin capital letter i with tilde":"Letra latina mayúscula «I» con tilde","Latin small letter i with tilde":"Letra latina minúscula «i» con tilde","Latin capital letter i with macron":"Letra latina mayúscula «I» con macrón","Latin small letter i with macron":"Letra latina minúscula «i» con macrón","Latin capital letter i with breve":"Letra latina mayúscula «I» con acento breve","Latin small letter i with breve":"Letra latina minúscula «i» con acento breve","Latin capital letter i with ogonek":"Letra latina mayúscula «I» con ogonek","Latin small letter i with ogonek":"Letra latina minúscula «i» con ogonek","Latin capital letter i with dot above":"Letra latina mayúscula «I» con punto superior","Latin small letter dotless i":"Letra latina minúscula «i» sin punto","Latin capital ligature ij":"Ligadura latina mayúscula «IJ»","Latin small ligature ij":"Ligadura latina minúscula «ij»","Latin capital letter j with circumflex":"Letra latina mayúscula «J» con acento circunflejo","Latin small letter j with circumflex":"Letra latina minúscula «j» con acento circunflejo","Latin capital letter k with cedilla":"Letra latina mayúscula «K» con cedilla","Latin small letter k with cedilla":"Letra latina minúscula «k» con cedilla","Latin small letter kra":"Letra latina minúscula «kra»","Latin capital letter l with acute":"Letra latina mayúscula «L» con acento agudo","Latin small letter l with acute":"Letra latina minúscula «l» con acento agudo","Latin capital letter l with cedilla":"Letra latina mayúscula «I» con cedilla","Latin small letter l with cedilla":"Letra latina minúscula «l» con cedilla","Latin capital letter l with caron":"Letra latina mayúscula «I» con acento anticircunflejo","Latin small letter l with caron":"Letra latina minúscula «i» con acento anticircunflejo","Latin capital letter l with middle dot":"Letra latina mayúscula «L» con punto medio","Latin small letter l with middle dot":"Letra latina minúscula «l» con punto medio","Latin capital letter l with stroke":"Letra latina mayúscula «L» con barra diagonal","Latin small letter l with stroke":"Letra latina minúscula «l» con barra diagonal","Latin capital letter n with acute":"Letra latina mayúscula «N» con acento agudo","Latin small letter n with acute":"Letra latina minúscula «n» con acento agudo","Latin capital letter n with cedilla":"Letra latina mayúscula «N» con cedilla","Latin small letter n with cedilla":"Letra latina minúscula «n» con cedilla","Latin capital letter n with caron":"Letra latina mayúscula «n» con acento anticircunflejo","Latin small letter n with caron":"Letra latina minúscula «n» con acento anticircunflejo","Latin small letter n preceded by apostrophe":"Letra latina minúscula «n» precedida de apóstrofo","Latin capital letter eng":"Letra latina mayúscula «Eng»","Latin small letter eng":"Letra latina minúscula «eng»","Latin capital letter o with macron":"Letra latina mayúscula «O» con macrón","Latin small letter o with macron":"Letra latina minúscula «o» con macrón","Latin capital letter o with breve":"Letra latina mayúscula «O» con acento breve","Latin small letter o with breve":"Letra latina minúscula «o» con acento breve","Latin capital letter o with double acute":"Letra latina mayúscula «O» con doble acento agudo","Latin small letter o with double acute":"Letra latina minúscula «o» con doble acento agudo","Latin capital ligature oe":"Ligadura latina mayúscula «OE»","Latin small ligature oe":"Ligadura latina minúscula «oe»","Latin capital letter r with acute":"Letra latina mayúscula «R» con acento agudo","Latin small letter r with acute":"Letra latina minúscula «r» con acento agudo","Latin capital letter r with cedilla":"Letra latina mayúscula «R» con cedilla","Latin small letter r with cedilla":"Letra latina minúscula «r» con cedilla","Latin capital letter r with caron":"Letra latina mayúscula «R» con acento anticircunflejo","Latin small letter r with caron":"Letra latina minúscula «r» con acento anticircunflejo","Latin capital letter s with acute":"Letra latina mayúscula «S» con acento agudo","Latin small letter s with acute":"Letra latina minúscula «s» con acento agudo","Latin capital letter s with circumflex":"Letra latina mayúscula «S» con acento circunflejo","Latin small letter s with circumflex":"Letra latina minúscula «s» con acento circunflejo","Latin capital letter s with cedilla":"Letra latina mayúscula «S» con cedilla","Latin small letter s with cedilla":"Letra latina minúscula «s» con cedilla","Latin capital letter s with caron":"Letra latina mayúscula «S» con acento anticircunflejo","Latin small letter s with caron":"Letra latina minúscula «s» con acento anticircunflejo","Latin capital letter t with cedilla":"Letra latina mayúscula «T» con cedilla","Latin small letter t with cedilla":"Letra latina minúscula «t» con cedilla","Latin capital letter t with caron":"Letra latina mayúscula «T» con acento anticircunflejo","Latin small letter t with caron":"Letra latina minúscula «t» con acento anticircunflejo","Latin capital letter t with stroke":"Letra latina mayúscula «T» con barra horizontal","Latin small letter t with stroke":"Letra latina minúscula «t» con barra horizontal","Latin capital letter u with tilde":"Letra latina mayúscula «U» con tilde","Latin small letter u with tilde":"Letra latina minúscula «u» con tilde","Latin capital letter u with macron":"Letra latina mayúscula «U» con macrón","Latin small letter u with macron":"Letra latina minúscula «u» con macrón","Latin capital letter u with breve":"Letra latina mayúscula «U» con acento breve","Latin small letter u with breve":"Letra latina minúscula «u» con acento breve","Latin capital letter u with ring above":"Letra latina mayúscula «U» con anillo superior","Latin small letter u with ring above":"Letra latina minúscula «u» con anillo superior","Latin capital letter u with double acute":"Letra latina mayúscula «U» con doble acento agudo","Latin small letter u with double acute":"Letra latina minúscula «u» con doble acento agudo","Latin capital letter u with ogonek":"Letra latina mayúscula «U» con ogonek","Latin small letter u with ogonek":"Letra latina minúscula «u» con ogonek","Latin capital letter w with circumflex":"Letra latina mayúscula «W» con acento circunflejo","Latin small letter w with circumflex":"Letra latina minúscula «w» con acento circunflejo","Latin capital letter y with circumflex":"Letra latina mayúscula «Y» con acento circunflejo","Latin small letter y with circumflex":"Letra latina minúscula «y» con acento circunflejo","Latin capital letter y with diaeresis":"Letra latina mayúscula «Y» con diéresis","Latin capital letter z with acute":"Letra latina mayúscula «Z» con acento agudo","Latin small letter z with acute":"Letra latina minúscula «z» con acento agudo","Latin capital letter z with dot above":"Letra latina mayúscula «Z» con punto superior","Latin small letter z with dot above":"Letra latina minúscula «z» con punto superior","Latin capital letter z with caron":"Letra latina mayúscula «Z» con acento anticircunflejo","Latin small letter z with caron":"Letra latina minúscula «z» con acento anticircunflejo","Latin small letter long s":"Letra latina minúscula «s» larga","Less-than sign":"Signo de menor que","Greater-than sign":"Signo de mayor que","Less-than or equal to":"Menor que o igual a","Greater-than or equal to":"Mayor que o igual a","En dash":"Semirraya","Em dash":"Raya",Macron:"Macrón",Overline:"Línea alta","Degree sign":"Signo de grado","Minus sign":"Signo de resta","Plus-minus sign":"Signo más-menos","Division sign":"Signo de división","Fraction slash":"Barra fraccionaria","Multiplication sign":"Signo de multiplicación","Latin small letter f with hook":"Letra latina minúscula «f» con gancho",Integral:"Integral","N-ary summation":"Sumatoria",Infinity:"Infinito","Square root":"Raíz cuadrada","Tilde operator":"Operador de tilde","Approximately equal to":"Aproximadamente igual a","Almost equal to":"Casi igual a","Not equal to":"No igual a","Identical to":"Idéntico a","Element of":"Elemento de","Not an element of":"No es un elemento de","Contains as member":"Contiene como miembro","N-ary product":"Productorio","Logical and":"Y lógico","Logical or":"O lógico","Not sign":"Signo de negación",Intersection:"Intersección",Union:"Unión","Partial differential":"Diferencial parcial","For all":"Para todo","There exists":"Existe","Empty set":"Conjunto vacío",Nabla:"Nabla","Asterisk operator":"Operador asterisco","Proportional to":"Proporcional a",Angle:"Ángulo","Vulgar fraction one quarter":"Fracción ordinaria de un cuarto","Vulgar fraction one half":"Fracción ordinaria de un medio","Vulgar fraction three quarters":"Fracción ordinaria de tres cuartos","Single left-pointing angle quotation mark":"Comilla tipográfica simple angular de apertura","Single right-pointing angle quotation mark":"Comilla tipográfica simple angular de cierre","Left-pointing double angle quotation mark":"Comilla tipográfica doble angular de apertura","Right-pointing double angle quotation mark":"Comilla tipográfica dobe angular de cierre","Left single quotation mark":"Comilla tipográfica de apertura","Right single quotation mark":"Comilla tipográfica de cierre","Left double quotation mark":"Comilla tipográfica doble de apertura","Right double quotation mark":"Comilla tipográfica de cierre","Single low-9 quotation mark":"Comilla tipográfica en forma de 9 simple y baja","Double low-9 quotation mark":"Comilla tipográfica en forma de 9 doble y baja","Inverted exclamation mark":"Signo de exclamación de apertura","Inverted question mark":"Signo de interrogación de apertura","Two dot leader":"Punto de inicio doble","Horizontal ellipsis":"Puntos suspensivos horizontales","Double dagger":"Cruz doble","Per mille sign":"Signo de por mil","Per ten thousand sign":"Signo de por diez mil","Double exclamation mark":"Signo de exclamación doble","Question exclamation mark":"Signo de exclamación interrogativa","Exclamation question mark":"Signo de interrogación exclamativa","Double question mark":"Signo de interrogación doble","Copyright sign":"Signo de derechos de autor","Registered sign":"Signo de marca registrada","Trade mark sign":"Signo de marca comercial","Section sign":"Signo de sección","Paragraph sign":"Signo de párrafo","Reversed paragraph sign":"Signo de antígrafo invertido","Show source":"Mostrar fuente","Show blocks":"Mostrar bloques","Select all":"Seleccionar todo","Disable editing":"Inhabilitar edición","Enable editing":"Habilitar edición","Previous editable region":"Anterior zona editable","Next editable region":"Siguiente zona editable","Navigate editable regions":"Navegar por las zonas editables","Remove Format":"Quitar Formato","Page break":"Salto de página","media widget":"Widget de contenido multimedia","Media URL":"URL del contenido multimedia","Paste the media URL in the input.":"Pega la URL del contenido multimedia","Tip: Paste the URL into the content to embed faster.":"Tip: pega la URL dentro del contenido para embeber más rápido","The URL must not be empty.":"La URL no debe estar vacía","This media URL is not supported.":"La URL de este contenido multimedia no está soportada","Insert media":"Insertar contenido multimedia",Media:"Multimedia","Media toolbar":"Barra de herramientas de contenido multimedia","Open media in new tab":"Abrir medio en una pestaña nueva","Media embed":"Inserción de medios","Numbered List":"Lista numerada","Bulleted List":"Lista con viñetas","To-do List":"Lista de tareas","Bulleted list styles toolbar":"Estilos de lista con viñetas","Numbered list styles toolbar":"Estilos de lista numerada","Toggle the disc list style":"Cambiar estilo de viñeta a disco","Toggle the circle list style":"Cambiar estilo de viñeta a círculo","Toggle the square list style":"Cambiar estilo de viñeta a cuadrado","Toggle the decimal list style":"Cambiar estilo de lista a decimal","Toggle the decimal with leading zero list style":"Cambiar estilo de lista decimal empezando con cero","Toggle the lower–roman list style":"Cambiar estilo de lista a números romanos en minúsculas","Toggle the upper–roman list style":"Cambiar estilo de lista a números roanos en mayúsculas","Toggle the lower–latin list style":"Cambiar estilo de lista a números latinos en minúsculas","Toggle the upper–latin list style":"Cambiar estilo de lista a números latinos en mayúsculas",Disc:"Disco",Circle:"Círculo",Square:"Cuadrado",Decimal:"Decimal","Decimal with leading zero":"Decimal con cero","Lower–roman":"Romanos minúsculas","Upper-roman":"Romanos mayúscula","Lower-latin":"Latinos minúsculas","Upper-latin":"Latinos minúsculas","List properties":"Propiedades de la lista","Start at":"Empezar en","Invalid start index value.":"Valor de índice de inicio no válido.","Start index must be greater than 0.":"El número de inicio debe ser mayor que 0.","Reversed order":"Orden inverso","Keystrokes that can be used in a list":"Teclas que se pueden utilizar en una lista","Increase list item indent":"Aumenta la sangría de los elementos de la lista","Decrease list item indent":"Reduce la sangría de los elementos de la lista","Entering a to-do list":"Ingresando lista de tareas pendientes","Leaving a to-do list":"Abandonando lista de tareas pendientes",Unlink:"Quitar enlace",Link:"Enlace","Link URL":"URL del enlace","Link URL must not be empty.":"La URL del enlace no puede estar vacía.","Link image":"URL de la imagen","Edit link":"Editar enlace","Open link in new tab":"Abrir enlace en una pestaña nueva","Open in a new tab":"Abrir en una pestaña nueva ",Downloadable:"Descargable","Create link":"Crea un enlace","Move out of a link":"Sale de un enlace","Link properties":"Propiedades del enlace","Displayed text":"Texto mostrado","No links available":"No hay enlaces disponibles",Language:"Idioma","Choose language":"Elija el idioma","Remove language":"Quitar idioma","Increase indent":"Aumentar sangría","Decrease indent":"Disminuir sangría","image widget":"Widget de imagen","Wrap text":"Mantener texto unido","Break text":"Permitir quebrar texto","In line":"En línea","Side image":"Imagen lateral","Full size image":"Imagen a tamaño completo","Left aligned image":"Imagen alineada a la izquierda","Centered image":"Imagen centrada","Right aligned image":"Imagen alineada a la derecha","Change image text alternative":"Cambiar el texto alternativo de la imagen","Text alternative":"Texto alternativo","Enter image caption":"Introducir título de la imagen","Insert image":"Insertar imagen","Replace image":"Reemplazar imagen","Upload from computer":"Subir desde el ordenador","Replace from computer":"Reemplazar desde el ordenador","Upload image from computer":"Subir imagen desde el ordenador","Image from computer":"Imagen del ordenador","From computer":"Desde el ordenador","Replace image from computer":"Reemplazar imagen del ordenador","Upload failed":"Fallo en la subida","You have no image upload permissions.":"No tienes permiso para subir imágenes.","Image toolbar":"Barra de herramientas de imagen","Resize image":"Redimensionar imagen","Resize image to %0":"Redimensionar imagen al %0","Resize image to the original size":"Redimensionar imagen al tamaño original","Resize image (in %0)":"Cambiar tamaño de la imagen (en un %0)",Original:"Original","Custom image size":"Personalizar tamaño de imagen",Custom:"Personalizar","Image resize list":"Listado para redimensionar imagen","Insert image via URL":"Insertar imagen vía URL","Insert via URL":"Insertar mediante URL","Image via URL":"Imagen mediante URL","Via URL":"Mediante URL","Update image URL":"Actualizar imagen vía URL","Caption for the image":"Descripción de la imagen","Caption for image: %0":"Título de la imagen: %0","The value must not be empty.":"El valor no puede estar vacío.","The value should be a plain number.":"El valor debe ser un número simple.","Uploading image":"Cargando imagen","Image upload complete":"Carga de imagen completa","Error during image upload":"Error durante la carga de la imagen",Image:"Imagen","Image Resize":"Cambiar tamaño de la imagen","Text Alternative":"Texto alternativo","HTML object":"Objeto HTML","Insert HTML":"Insertar HTML","HTML snippet":"Fragmento HTML","Paste raw HTML here...":"Pegue el código HTML aquí…","Edit source":"Editar fuente","Save changes":"Guardar cambios","No preview available":"No hay ninguna previsualización","Empty snippet content":"Fragmento vacío","Horizontal line":"Línea horizontal","Yellow marker":"Marcador amarillo","Green marker":"Marcador verde","Pink marker":"Marcador rosa","Blue marker":"Marcador azul","Red pen":"Texto rojo","Green pen":"Texto verde","Remove highlight":"Quitar resaltado",Highlight:"Resaltar","Text highlight toolbar":"Barra de herramientas de resaltado de texto",Heading:"Encabezado","Choose heading":"Elegir Encabezado","Heading 1":"Encabezado 1","Heading 2":"Encabezado 2","Heading 3":"Encabezado 3","Heading 4":"Encabezado 4","Heading 5":"Encabezado 5","Heading 6":"Encabezado 6","Type your title":"Introduce tu título","Type or paste your content here.":"Introduce o pega tu contenido aquí","Enter fullscreen mode":"Entrar al modo de pantalla completa","Leave fullscreen mode":"Salir del modo de pantalla completa","Fullscreen mode":"Modo de pantalla completa","Toggle fullscreen mode":"Alternar modo de pantalla completa","Document outline":"Boceto del documento","Connected users":"Usuarios conectados","Font Size":"Tamaño de fuente",Tiny:"Minúsculo",Small:"Pequeño",Big:"Grande",Huge:"Enorme","Font Family":"Fuente",Default:"Por defecto","Font Color":"Color de Fuente","Font Background Color":"Color de Fondo","Document colors":"Colores del documento","Find and replace":"Buscar y reemplazar","Find in text…":"Buscar en el texto...",Find:"Buscar","Previous result":"Resultado anterior","Next result":"Siguiente resultado",Replace:"Reemplazar","Replace all":"Reemplazar todo","Match case":"Respetar mayúsculas y minúsculas","Whole words only":"Solo palabras completas","Replace with…":"Reemplazar con...","Text to find must not be empty.":"El texto a buscar no debe estar vacío.","Tip: Find some text first in order to replace it.":"Consejo: Primero busque algún texto para reemplazar.","Advanced options":"Opciones avanzadas","Find in the document":"Busca en el documento","Insert a soft break (a <code><br></code> element)":"Inserta un salto de línea (un elemento <code><br></code>)","Insert a hard break (a new paragraph)":"Inserta un salto de párrafo (un nuevo párrafo)",Emoji:"Emoji","Show all emoji...":"Mostrar todos los emojis...","Find an emoji (min. 2 characters)":"Busca un emoji (2 caracteres como mínimo)",'No emojis were found matching "%0".':"No se han encontrado emojis que coincidan con «%0».","Keep on typing to see the emoji.":"Sigue escribiendo para ver el emoji.","The query must contain at least two characters.":"La solicitud debe contener al menos dos caracteres.","Smileys & Expressions":"Emoticonos y expresiones","Gestures & People":"Gestos y personas","Animals & Nature":"Animales y naturaleza","Food & Drinks":"Comidas y bebidas","Travel & Places":"Viajes y lugares",Activities:"Actividades",Objects:"Objetos",Symbols:"Símbolos",Flags:"Banderas","Select skin tone":"Seleccionar tono de piel","Default skin tone":"Tono de piel predeterminado","Light skin tone":"Tono de piel claro","Medium Light skin tone":"Tono de piel medio claro","Medium skin tone":"Tono de piel medio","Medium Dark skin tone":"Tono de piel medio oscuro","Dark skin tone":"Tono de piel oscuro","Emoji picker":"Selector de emojis",Cancel:"Cancelar",Clear:"Borrar","Remove color":"Quitar color","Restore default":"Restaurar valores predeterminados",Save:"Guardar","Show more items":"Mostrar más elementos","%0 of %1":"%0 de %1","Cannot upload file:":"No se pudo cargar el archivo:","Rich Text Editor. Editing area: %0":"Editor de texto enriquecido. Área de edición: %0","Insert with file manager":"Insertar con administrador de archivos","Replace with file manager":"Reemplazar con administrador de archivos","Insert image with file manager":"Insertar imagen con administrador de archivos","Replace image with file manager":"Reemplazar imagen con administrador de archivos",File:"Archivo","With file manager":"Con el administrador de archivos","Toggle caption off":"Desactivar título","Toggle caption on":"Activar título","Content editing keystrokes":"Teclas de edición de contenido","These keyboard shortcuts allow for quick access to content editing features.":"Estos atajos de teclado permiten acceder rápidamente a las funciones de edición de contenido.","User interface and content navigation keystrokes":"Teclas de navegación de contenido e interfaz de usuario","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Utilice las siguientes combinaciones de teclas para una navegación más eficiente en la interfaz de usuario de CKEditor 5.","Close contextual balloons, dropdowns, and dialogs":"Cierra globos contextuales, menús desplegables y cuadros de diálogo","Open the accessibility help dialog":"Abre el cuadro de diálogo de ayuda de accesibilidad","Move focus between form fields (inputs, buttons, etc.)":"Mueve el foco entre campos de formulario (entradas, botones, etc.)","Move focus to the menu bar, navigate between menu bars":"Mover el foco a la barra de menú, navegar entre las barras de menú","Move focus to the toolbar, navigate between toolbars":"Mueve el foco a la barra de herramientas y navega entre barras de herramientas","Navigate through the toolbar or menu bar":"Navegar por la barra de herramientas o la barra de menú","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Ejecutar el botón actualmente enfocado. Al ejecutar botones que interactúan con el contenido del editor, el foco vuelve al contenido.",Accept:"Aceptar",Paragraph:"Párrafo","Color picker":"Selector de color","Please try a different phrase or check the spelling.":"Intente con una frase diferente o revise la ortografía.",Source:"Fuente",Insert:"Insertar",Update:"Actualizar",Back:"Volver","Insert code block":"Insertar bloque de código","Plain text":"Texto plano","Leaving %0 code snippet":"Abandonando fragmento de código %0","Entering %0 code snippet":"Ingresando fragmento de código %0","Entering code snippet":"Ingresando fragmento de código","Leaving code snippet":"Abandonando fragmento de código","Code block":"Bloque de código","Copy selected content":"Copia el contenido seleccionado","Paste content":"Pega el contenido","Paste content as plain text":"Pega el contenido como texto sin formato","Insert image or file":"Insertar imagen o archivo","Could not obtain resized image URL.":"No se pudo obtener el URL de la imagen redimensionada.","Selecting resized image failed":"No se pudo seleccionar la imagen redimensionada","Could not insert image at the current position.":"No se pudo insertar la imagen en la posición actual.","Inserting image failed":"Error al insertar la imagen",Bookmark:"Marcador","Edit bookmark":"Editar marcador","Remove bookmark":"Eliminar marcador","Bookmark name":"Nombre del marcador","Enter the bookmark name without spaces.":"Introduzca el nombre del marcador sin espacios.","Bookmark must not be empty.":"El marcador no debe estar vacío.","Bookmark name cannot contain space characters.":"El nombre del marcador no puede contener espacios.","Bookmark name already exists.":"Ya existe el nombre del marcador.","bookmark widget":"Módulo interactivo del marcador","Bookmark toolbar":"Barra de marcadores",Bookmarks:"Marcadores","No bookmarks available.":"No hay marcadores disponibles.","Scroll to bookmark":"Desplazarse hasta el marcador","Open file manager":"Abrir gestor de archivos","Cannot determine a category for the uploaded file.":"No se puede determinar una categoría para el archivo subido.","Cannot access default workspace.":"No se puede acceder al espacio de trabajo predeterminado.","You have no image editing permissions.":"No tienes permiso para editar imágenes.","Edit image":"Editar imagen","Processing the edited image.":"Procesando la imagen editada.","Server failed to process the image.":"El servidor no pudo procesar la imagen.","Failed to determine category of edited image.":"No se pudo determinar la categoría de la imagen editada.","Block quote":"Bloque de cita",Bold:"Negrita",Italic:"Cursiva",Underline:"Subrayado",Code:"Código",Strikethrough:"Tachado",Subscript:"Subíndice",Superscript:"Superíndice","Italic text":"Texto en cursiva","Move out of an inline code style":"Sale de un estilo de código en línea","Bold text":"Texto en negrita","Underline text":"Subraya el texto","Strikethrough text":"Tacha el texto","Saving changes":"Guardando cambios","Revert autoformatting action":"Revierte la acción de formato automático","Align left":"Alinear a la izquierda","Align right":"Alinear a la derecha","Align center":"Centrar",Justify:"Justificar","Text alignment":"Alineación del texto","Text alignment toolbar":"Barra de herramientas de alineación del texto"},getPluralForm(n){return n!=1}}};const sB={fr:{dictionary:{"Words: %0":"Mots : %0","Characters: %0":"Caractères : %0","Widget toolbar":"Barre d'outils du widget","Insert paragraph before block":"Insérer du texte avant ce bloc","Insert paragraph after block":"Insérer du texte après ce bloc","Press Enter to type after or press Shift + Enter to type before the widget":"Appuyez sur la touche Entrée pour taper après ou sur Maj + Entrée pour taper avant le widget.","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Frappes de touches pouvant être utilisées lorsqu'un widget est sélectionné (par exemple : image, tableau, etc.)","Insert a new paragraph directly after a widget":"Insérer un nouveau paragraphe directement après un widget","Insert a new paragraph directly before a widget":"Insérer un nouveau paragraphe directement avant un widget","Move the caret to allow typing directly before a widget":"Déplacez le curseur pour permettre la saisie directement avant un widget","Move the caret to allow typing directly after a widget":"Déplacez le curseur pour permettre de taper directement après un widget","Move focus from an editable area back to the parent widget":"Déplacer le focus d'une zone modifiable vers le widget parent","Upload in progress":"Téléchargement en cours",Undo:"Annuler",Redo:"Restaurer","Rich Text Editor":"Éditeur de texte enrichi","Edit block":"Modifier le bloc","Click to edit block":"Cliquer pour modifier le bloc","Drag to move":"Faire glisser pour déplacer",Next:"Suivant",Previous:"Précedent","Editor toolbar":"Barre d'outils de l'éditeur","Dropdown toolbar":"Barre d'outils dans un menu déroulant","Dropdown menu":"Menu déroulant",Black:"Noir","Dim grey":"Gris pâle",Grey:"Gris","Light grey":"Gris clair",White:"Blanc",Red:"Rouge",Orange:"Orange",Yellow:"Jaune","Light green":"Vert clair",Green:"Vert",Aquamarine:"Bleu vert",Turquoise:"Turquoise","Light blue":"Bleu clair",Blue:"Bleu",Purple:"Violet","Editor block content toolbar":"Barre d'outils du contenu du bloc éditeur","Editor contextual toolbar":"Barre d'outils contextuelle de l'éditeur",HEX:"HEX","No results found":"Aucun résultat trouvé","No searchable items":"Aucun élément consultable","Editor dialog":"Boîte de dialogue de l'éditeur",Close:"Fermer","Help Contents. To close this dialog press ESC.":"Contenu de l'aide. Pour fermer cette boîte de dialogue, appuyez sur ESC.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Ci-dessous, vous trouverez une liste de raccourcis clavier pouvant être utilisés dans l’éditeur.","(may require <kbd>Fn</kbd>)":"(peut nécessiter <kbd> Fn </kbd> )",Accessibility:"Accessibilité","Accessibility help":"Aide à l'accessibilité","Press %0 for help.":"Appuyez sur %0 pour obtenir de l'aide.","Move focus in and out of an active dialog window":"Déplacer le focus vers et hors d'une fenêtre de dialogue active",MENU_BAR_MENU_FILE:"Fichier",MENU_BAR_MENU_EDIT:"Éditer",MENU_BAR_MENU_VIEW:"Afficher",MENU_BAR_MENU_INSERT:"Insérer",MENU_BAR_MENU_FORMAT:"Format",MENU_BAR_MENU_TOOLS:"Outils",MENU_BAR_MENU_HELP:"Aide",MENU_BAR_MENU_TEXT:"Texte",MENU_BAR_MENU_FONT:"Police de caractère","Editor menu bar":"Barre de menu de l'éditeur",'Please enter a valid color (e.g. "ff0000").':"Veuillez saisir une couleur valide (par exemple « ff0000 »).","Insert table":"Insérer un tableau","Header column":"Colonne d'entête","Insert column left":"Insérer une colonne à gauche","Insert column right":"Insérer une colonne à droite","Delete column":"Supprimer la colonne","Select column":"Sélectionner la colonne",Column:"Colonne","Header row":"Ligne d'entête","Insert row below":"Insérer une ligne en-dessous","Insert row above":"Insérer une ligne au-dessus","Delete row":"Supprimer la ligne","Select row":"Sélectionner la ligne",Row:"Ligne","Merge cell up":"Fusionner la cellule au-dessus","Merge cell right":"Fusionner la cellule à droite","Merge cell down":"Fusionner la cellule en-dessous","Merge cell left":"Fusionner la cellule à gauche","Split cell vertically":"Scinder la cellule verticalement","Split cell horizontally":"Scinder la cellule horizontalement","Merge cells":"Fusionner les cellules","Table toolbar":"Barre d'outils des tableaux","Table properties":"Propriétés du tableau","Cell properties":"Propriétés de la cellule",Border:"Bordure",Style:"Style",Width:"Largeur",Height:"Hauteur",Color:"Couleur",Background:"Fond",Padding:"Remplissage pour aérer le texte",Dimensions:"Dimensions","Table cell text alignment":"Alignement du texte de la cellule",Alignment:"Alignement","Horizontal text alignment toolbar":"Barre d'outils pour modifier l'alignement horizontal du texte","Vertical text alignment toolbar":"Barre d'outils pour modifier l'alignement vertical du texte","Table alignment toolbar":"Barre d'outils pour modifier l'alignement du tableau",None:"Aucun",Solid:"Continu",Dotted:"Pointillés",Dashed:"Tirets",Double:"Double",Groove:"Rainuré",Ridge:"Relief",Inset:"Relief intérieur",Outset:"Relief extérieur","Align cell text to the left":"Aligner la cellule à gauche","Align cell text to the center":"Aligner la cellule au centre","Align cell text to the right":"Aligner la cellule à droite","Justify cell text":"Justifier le contenu de la cellule","Align cell text to the top":"Aligner le texte en haut","Align cell text to the middle":"Aligner le texte au milieu","Align cell text to the bottom":"Aligner le texte en bas","Align table to the left":"Aligner le tableau à gauche","Center table":"Centrer le tableau ","Align table to the right":"Aligner le tableau à droite",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'La couleur est invalide. Essayez "#FF0000" ou "rgb(255,0,0)" ou "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'La valeur est invalide. Essayez "10px" ou "2em" ou simplement "2".',"Enter table caption":"Saisir la légende du tableau","Keystrokes that can be used in a table cell":"Frappes de touches pouvant être utilisées dans une cellule de tableau","Move the selection to the next cell":"Déplacer la sélection vers la cellule suivante","Move the selection to the previous cell":"Déplacer la sélection vers la cellule précédente","Insert a new table row (when in the last cell of a table)":"Insérer une nouvelle ligne de tableau (dans la dernière cellule d'un tableau)","Navigate through the table":"Naviguer dans le tableau",Table:"Tableau","Insert table layout":"Insérer une mise en page de tableau","Table layout":"Mise en page de tableau","Layout table":"Tableau de mise en page","Content table":"Tableau de contenu","Choose table type":"Choisir le type de tableau","Table type":"Type de tableau","Table type options":"Options de type de tableau",Styles:"Styles","Multiple styles":"Styles multiples","Block styles":"Styles de bloc","Text styles":"Styles de texte","Special characters":"Caractères spéciaux",Category:"Catégorie",All:"Tous",Arrows:"Flèches",Currency:"Devise",Latin:"Latin",Mathematical:"Mathématique",Text:"Texte","leftwards simple arrow":"flèche simple vers la gauche","rightwards simple arrow":"flèche simple vers la droite","upwards simple arrow":"flèche simple vers le haut","downwards simple arrow":"flèche simple vers le bas","leftwards double arrow":"Double flèche vers la gauche","rightwards double arrow":"Double flèche vers la droite","upwards double arrow":"Double flèche vers le haut","downwards double arrow":"Double flèche vers le bas","leftwards dashed arrow":"Flèche en pointillés vers la gauche","rightwards dashed arrow":"Flèche en pointillés vers la droite","upwards dashed arrow":"Flèche en pointillés vers le haut","downwards dashed arrow":"Flèche en pointillés vers le bas","leftwards arrow to bar":"Flèche vers la gauche avec barre de fin","rightwards arrow to bar":"Flèche vers la droite avec barre de fin","upwards arrow to bar":"Flèche vers le haut avec barre de fin","downwards arrow to bar":"Flèche vers le bas avec barre de fin","up down arrow with base":"Flèche haut et bas avec barre de fin","back with leftwards arrow above":"Précédent avec flèche vers la gauche","end with leftwards arrow above":"Fin avec flèche vers la gauche","on with exclamation mark with left right arrow above":"Allumé avec flèches vers la gauche et la droite","soon with rightwards arrow above":"Bientôt avec flèche vers la droite","top with upwards arrow above":"Haut avec flèche vers le haut","Dollar sign":"Dollar","Euro sign":"Euro","Yen sign":"Yen","Pound sign":"Livre sterling","Cent sign":"Centime","Euro-currency sign":"Symbole monétaire de l'euro","Colon sign":"Deux points","Cruzeiro sign":"Cruzeiro","French franc sign":"Franc français","Lira sign":"Lire","Currency sign":"Symbole monétaire","Bitcoin sign":"Bitcoin","Mill sign":"Moulin","Naira sign":"Naira","Peseta sign":"Peseta","Rupee sign":"Roupie","Won sign":"Won","New sheqel sign":"Shekel","Dong sign":"Dong","Kip sign":"Kip","Tugrik sign":"Tugrik","Drachma sign":"Drachme","German penny sign":"Pfennig","Peso sign":"Peso","Guarani sign":"Guarani","Austral sign":"Austral","Hryvnia sign":"Hryvnia","Cedi sign":"Cédi","Livre tournois sign":"Livre tournois","Spesmilo sign":"Spesmilo","Tenge sign":"Tenge","Indian rupee sign":"Roupie indienne","Turkish lira sign":"Lire turque","Nordic mark sign":"Mark nordique","Manat sign":"Manat","Ruble sign":"Rouble","Latin capital letter a with macron":"A barre majuscule","Latin small letter a with macron":"A barre minuscule","Latin capital letter a with breve":"A bref majuscule","Latin small letter a with breve":"A bref minuscule","Latin capital letter a with ogonek":"A ogonek majuscule","Latin small letter a with ogonek":"A ogonek minuscule","Latin capital letter c with acute":"C accent aigu majuscule","Latin small letter c with acute":"C accent aigu minuscule","Latin capital letter c with circumflex":"C circonflexe majuscule","Latin small letter c with circumflex":"C circonflexe minuscule","Latin capital letter c with dot above":"C point suscrit majuscule","Latin small letter c with dot above":"C point suscrit minuscule","Latin capital letter c with caron":"C caron majuscule","Latin small letter c with caron":"C caron minuscule","Latin capital letter d with caron":"D caron majuscule","Latin small letter d with caron":"C caron minuscule","Latin capital letter d with stroke":"D barré majuscule","Latin small letter d with stroke":"D barré minuscule","Latin capital letter e with macron":"E macron majuscule","Latin small letter e with macron":"E macron minuscule","Latin capital letter e with breve":"E bref majuscule","Latin small letter e with breve":"E bref minuscule","Latin capital letter e with dot above":"E point suscrit majuscule","Latin small letter e with dot above":"E point suscrit minuscule","Latin capital letter e with ogonek":"E ogonek majuscule","Latin small letter e with ogonek":"E ogonek minuscule","Latin capital letter e with caron":"E caron majuscule","Latin small letter e with caron":"E caron minuscule","Latin capital letter g with circumflex":"G accent circonflexe majuscule","Latin small letter g with circumflex":"G accent circonflexe minuscule","Latin capital letter g with breve":"G bref majuscule","Latin small letter g with breve":"G bref minuscule","Latin capital letter g with dot above":"G point suscrit majuscule","Latin small letter g with dot above":"G point suscrit minuscule","Latin capital letter g with cedilla":"G cédille majuscule","Latin small letter g with cedilla":"G cédille minuscule","Latin capital letter h with circumflex":"H accent circonflexe majuscule","Latin small letter h with circumflex":"H accent circonflexe minuscule","Latin capital letter h with stroke":"H barré majuscule","Latin small letter h with stroke":"H barré minuscule","Latin capital letter i with tilde":"I tilde majuscule","Latin small letter i with tilde":"I tilde minuscule","Latin capital letter i with macron":"I macron majuscule","Latin small letter i with macron":"I macron minuscule","Latin capital letter i with breve":"I bref majuscule","Latin small letter i with breve":"I bref minuscule","Latin capital letter i with ogonek":"I ogonek majuscule","Latin small letter i with ogonek":"I ogonek minuscule","Latin capital letter i with dot above":"I point suscrit majuscule","Latin small letter dotless i":"I sans point minuscule","Latin capital ligature ij":"Digramme soudé IJ majuscule","Latin small ligature ij":"Digramme soudé IJ minuscule","Latin capital letter j with circumflex":"J accent circonflexe majuscule","Latin small letter j with circumflex":"J accent circonflexe minuscule","Latin capital letter k with cedilla":"K cédille majuscule","Latin small letter k with cedilla":"K cédille minuscule","Latin small letter kra":"Kra minuscule","Latin capital letter l with acute":"L accent aigu majuscule","Latin small letter l with acute":"L accent aigu minuscule","Latin capital letter l with cedilla":"L cédille majuscule","Latin small letter l with cedilla":"L cédille minuscule","Latin capital letter l with caron":"L caron majuscule","Latin small letter l with caron":"L caron minuscule","Latin capital letter l with middle dot":"L point médian majuscule","Latin small letter l with middle dot":"L point médian minuscule","Latin capital letter l with stroke":"L barré majuscule","Latin small letter l with stroke":"L barré minuscule","Latin capital letter n with acute":"N accent aigu majuscule","Latin small letter n with acute":"N accent aigu minuscule","Latin capital letter n with cedilla":"N cédille majuscule","Latin small letter n with cedilla":"N cédille minuscule","Latin capital letter n with caron":"N caron majuscule","Latin small letter n with caron":"N caron minuscule","Latin small letter n preceded by apostrophe":"Apostrophe N minuscule","Latin capital letter eng":"Eng majuscule","Latin small letter eng":"Eng minuscule","Latin capital letter o with macron":"O macron majuscule","Latin small letter o with macron":"O macron minuscule","Latin capital letter o with breve":"O bref majuscule","Latin small letter o with breve":"O bref minuscule","Latin capital letter o with double acute":"O double accent aigu majuscule","Latin small letter o with double acute":"O double accent aigu minuscule","Latin capital ligature oe":"O-E entrelacé majuscule","Latin small ligature oe":"O-E entrelacé minuscule","Latin capital letter r with acute":"R accent aigu majuscule","Latin small letter r with acute":"R accent aigu minuscule","Latin capital letter r with cedilla":"R cédille majuscule","Latin small letter r with cedilla":"R cédille minuscule","Latin capital letter r with caron":"R caron majuscule","Latin small letter r with caron":"R caron minuscule","Latin capital letter s with acute":"S accent aigu majuscule","Latin small letter s with acute":"S accent aigu minuscule","Latin capital letter s with circumflex":"S circonflexe majuscule","Latin small letter s with circumflex":"S circonflexe minuscule","Latin capital letter s with cedilla":"S cédille majuscule","Latin small letter s with cedilla":"S cédille minuscule","Latin capital letter s with caron":"S caron majuscule","Latin small letter s with caron":"S caron minuscule","Latin capital letter t with cedilla":"T cédille majuscule","Latin small letter t with cedilla":"T cédille minuscule","Latin capital letter t with caron":"T caron majuscule","Latin small letter t with caron":"T caron minuscule","Latin capital letter t with stroke":"T barré majuscule","Latin small letter t with stroke":"T barré minuscule","Latin capital letter u with tilde":"U tilde majuscule","Latin small letter u with tilde":"U tilde minuscule","Latin capital letter u with macron":"U macron majuscule","Latin small letter u with macron":"U macron minuscule","Latin capital letter u with breve":"U bref majuscule","Latin small letter u with breve":"U bref minuscule","Latin capital letter u with ring above":"U rond en chef majuscule","Latin small letter u with ring above":"U rond en chef minuscule","Latin capital letter u with double acute":"U double accent aigu majuscule","Latin small letter u with double acute":"U double accent aigu minuscule","Latin capital letter u with ogonek":"U ogonek majuscule","Latin small letter u with ogonek":"U ogonek minuscule","Latin capital letter w with circumflex":"W circonflexe majuscule","Latin small letter w with circumflex":"W circonflexe minuscule","Latin capital letter y with circumflex":"Y circonflexe majuscule","Latin small letter y with circumflex":"Y circonflexe minuscule","Latin capital letter y with diaeresis":"Y tréma majuscule","Latin capital letter z with acute":"Z accent circonflexe majuscule","Latin small letter z with acute":"Z accent circonflexe minuscule","Latin capital letter z with dot above":"Z point suscrit majuscule","Latin small letter z with dot above":"Z point suscrit minuscule","Latin capital letter z with caron":"Z caron majuscule","Latin small letter z with caron":"Z caron minuscule","Latin small letter long s":"S long minuscule","Less-than sign":"Signe inférieur","Greater-than sign":"Signe supérieur","Less-than or equal to":"Signe inférieur ou égal","Greater-than or equal to":"Signe supérieur ou égal","En dash":"Tiret","Em dash":"Tiret long",Macron:"Macron",Overline:"Macron long","Degree sign":"Degré","Minus sign":"Moins","Plus-minus sign":"Plus ou moins","Division sign":"Division","Fraction slash":"Fraction","Multiplication sign":"Multiplication","Latin small letter f with hook":"Fonction",Integral:"Intégrale","N-ary summation":"Somme",Infinity:"Infini","Square root":"Racine carrée","Tilde operator":"Tilde","Approximately equal to":"Environ égal à","Almost equal to":"Presque égal à","Not equal to":"Différent de","Identical to":"Identique à","Element of":"Appartient à","Not an element of":"N'appartient pas à","Contains as member":"Contient","N-ary product":"Produit","Logical and":"Et logique","Logical or":"Ou logique","Not sign":"Négation logique",Intersection:"Intersection",Union:"Union","Partial differential":"Partiellement différent","For all":"Pour tout","There exists":"Existe","Empty set":"Élément vide",Nabla:"Nabla","Asterisk operator":"Astérisque","Proportional to":"Proportionnel à",Angle:"Angle","Vulgar fraction one quarter":"Un quart","Vulgar fraction one half":"Un demi","Vulgar fraction three quarters":"Trois quarts","Single left-pointing angle quotation mark":"Guillemet simple vers la gauche","Single right-pointing angle quotation mark":"Guillemet simple vers la droite","Left-pointing double angle quotation mark":"Guillemet double vers la gauche","Right-pointing double angle quotation mark":"Guillemet double vers la droite","Left single quotation mark":"Guillemet-apostrophe culbuté","Right single quotation mark":"Guillemet-apostrophe","Left double quotation mark":"Guillemet-apostrophe double culbuté","Right double quotation mark":"Guillemet-apostrophe double","Single low-9 quotation mark":"Guillemet-virgule inférieur","Double low-9 quotation mark":"Guillemet-virgule double inférieur","Inverted exclamation mark":"Point d'exclamation inversé","Inverted question mark":"Point d'interrogation inversé","Two dot leader":"Deux points","Horizontal ellipsis":"Trois points","Double dagger":"Croix de Lorraine","Per mille sign":"Pour mille","Per ten thousand sign":"Pour dix milles","Double exclamation mark":"Double point d'exclamation","Question exclamation mark":"Point d'interrogation et exclamation","Exclamation question mark":"Point exclamation et question","Double question mark":"Double point d'interrogation","Copyright sign":"Copyright","Registered sign":"Registered","Trade mark sign":"Marque déposée","Section sign":"Paragraphe","Paragraph sign":"Fin de paragraphe","Reversed paragraph sign":"Fin de paragraphe inversé","Show source":"Afficher la source","Show blocks":"Afficher les blocs","Select all":"Sélectionner tout","Disable editing":"Désactiver l'édition","Enable editing":"Activer l'édition","Previous editable region":"Région éditable précédente","Next editable region":"Région éditable suivante","Navigate editable regions":"Naviguer vers","Remove Format":"Enlever le format","Page break":"Séparation de page","media widget":"Widget média","Media URL":"URL de média","Paste the media URL in the input.":"Coller l'URL du média","Tip: Paste the URL into the content to embed faster.":"Astuce : Copier l'URL du média dans le contenu pour l'insérer plus rapidement","The URL must not be empty.":"L'URL ne doit pas être vide.","This media URL is not supported.":"Cette URL de média n'est pas supportée.","Insert media":"Insérer un média",Media:"Média","Media toolbar":"Barre d'outils des médias","Open media in new tab":"Ouvrir le média dans un nouvel onglet","Media embed":"Intégration de médias","Numbered List":"Liste numérotée","Bulleted List":"Liste à puces","To-do List":"Liste de tâches","Bulleted list styles toolbar":"Barre d'outils des styles de liste à puce","Numbered list styles toolbar":"Barre d'outils des styles de liste numérotée","Toggle the disc list style":'Activer / désactiver le style de liste "disque"',"Toggle the circle list style":'Activer / désactiver le style de liste "cercle"',"Toggle the square list style":'Activer / désactiver le style de liste "carré"',"Toggle the decimal list style":'Activer / désactiver le style de liste "chiffres"',"Toggle the decimal with leading zero list style":'Activer / désactiver le style de liste "chiffres de mêmes longueurs"',"Toggle the lower–roman list style":'Activer / désactiver le style de liste "chiffres romains en minuscules"',"Toggle the upper–roman list style":'Activer / désactiver le style de liste "chiffres romains en majuscules"',"Toggle the lower–latin list style":'Activer / désactiver le style de liste "lettres minuscules"',"Toggle the upper–latin list style":'Activer / désactiver le style de liste "lettres majuscules"',Disc:"Disque",Circle:"Cercle",Square:"Carré",Decimal:"Chiffres","Decimal with leading zero":"Chiffres avec des zéros supplémentaire","Lower–roman":"Chiffres romains en minuscules","Upper-roman":"Chiffres romains en majuscules","Lower-latin":"Lettres minuscules","Upper-latin":"Lettres majuscules","List properties":"Liste des propriétés","Start at":"Commencer à","Invalid start index value.":"Valeur d'index de départ invalide.","Start index must be greater than 0.":"L'indice de départ doit être supérieur à 0.","Reversed order":"Ordre inversé","Keystrokes that can be used in a list":"Frappes de touches pouvant être utilisées dans une liste","Increase list item indent":"Augmenter le retrait des éléments de liste","Decrease list item indent":"Diminuer le retrait des éléments de liste","Entering a to-do list":"Saisie d'une liste de tâches","Leaving a to-do list":"Laisser une liste de tâches",Unlink:"Supprimer le lien",Link:"Lien","Link URL":"URL du lien","Link URL must not be empty.":"L'URL du lien ne doit pas être vide.","Link image":"Lien d'image","Edit link":"Modifier le lien","Open link in new tab":"Ouvrir le lien dans un nouvel onglet","Open in a new tab":"Ouvrir dans un nouvel onglet",Downloadable:"Fichier téléchargeable","Create link":"Créer un lien","Move out of a link":"Sortir d'un lien","Link properties":"Propriétés du lien","Displayed text":"Texte affiché","No links available":"Aucun lien disponible",Language:"Langue","Choose language":"Choisir la langue","Remove language":"Supprimer la langue","Increase indent":"Augmenter le retrait","Decrease indent":"Diminuer le retrait","image widget":"Objet image","Wrap text":"Retour à la ligne","Break text":"Saut de ligne","In line":"Aligné","Side image":"Image latérale","Full size image":"Image taille réelle","Left aligned image":"Image alignée à gauche","Centered image":"Image centrée","Right aligned image":"Image alignée à droite","Change image text alternative":"Changer le texte alternatif à l’image","Text alternative":"Texte alternatif","Enter image caption":"Saisir la légende de l’image","Insert image":"Insérer une image","Replace image":"Remplacer l'image","Upload from computer":"Télécharger depuis l'ordinateur","Replace from computer":"Remplacer depuis l'ordinateur","Upload image from computer":"Télécharger une image depuis l'ordinateur","Image from computer":"Image provenant d'un ordinateur","From computer":"Depuis l'ordinateur","Replace image from computer":"Remplacer l'image depuis l'ordinateur","Upload failed":"Échec de l'envoi","You have no image upload permissions.":"Vous n'êtes pas autorisé à télécharger des images.","Image toolbar":"Barre d'outils des images","Resize image":"Redimensionner l'image","Resize image to %0":"Redimensionner à %0","Resize image to the original size":"Appliquer les dimensions d'origine","Resize image (in %0)":"Redimensionner l'image (en %0)",Original:"Taille originale","Custom image size":"Taille d'image personnalisée",Custom:"Personnalisé","Image resize list":"Liste des tailles d'images","Insert image via URL":"Insérer une image à partir d'une URL","Insert via URL":"Insérer par URL","Image via URL":"Image par URL","Via URL":"Par URL","Update image URL":"Modifier l'URL de l'image","Caption for the image":"Légende de l'image","Caption for image: %0":"Légende de l'image : %0","The value must not be empty.":"La valeur ne doit pas être vide.","The value should be a plain number.":"La valeur doit être un nombre simple.","Uploading image":"Téléchargement de l'image","Image upload complete":"Téléchargement de l'image terminé","Error during image upload":"Une erreur s'est produite lors du téléchargement de l'image.",Image:"Image","Image Resize":"Redimensionnement de l'image","Text Alternative":"Alternative textuelle","HTML object":"Objet HTML","Insert HTML":"Insérer du code HTML","HTML snippet":"Code HTML","Paste raw HTML here...":"Collez le code HTML brut ici...","Edit source":"Modifier la source","Save changes":"Enregistrer les changements","No preview available":"Aucun aperçu disponible","Empty snippet content":"Aucun contenu pour ce fragment de code","Horizontal line":"Ligne horizontale","Yellow marker":"Marqueur jaune","Green marker":"Marqueur vert","Pink marker":"Marqueur rose","Blue marker":"Marqueur bleu","Red pen":"Crayon rouge","Green pen":"Crayon vert","Remove highlight":"Enlever le surlignage",Highlight:"Surlignage","Text highlight toolbar":"Barre d'outils du surlignage",Heading:"En-tête","Choose heading":"Choisir l'en-tête","Heading 1":"Titre 1","Heading 2":"Titre 2","Heading 3":"Titre 3","Heading 4":"Titre 4","Heading 5":"Titre 5","Heading 6":"Titre 6","Type your title":"Rentrer votre titre","Type or paste your content here.":"Noter ou coller votre contenu ici","Enter fullscreen mode":"Accéder au mode plein écran","Leave fullscreen mode":"Quitter le mode plein écran","Fullscreen mode":"Mode plein écran","Toggle fullscreen mode":"Activer/désactiver le mode plein écran","Document outline":"Plan du document","Connected users":"Utilisateurs connectés","Font Size":"Taille de police",Tiny:"Minuscule",Small:"Petit",Big:"Grand",Huge:"Enorme","Font Family":"Police",Default:"Par défaut","Font Color":"Couleur de police","Font Background Color":"Couleur d'arrière-plan","Document colors":"Couleurs du document","Find and replace":"Rechercher et remplacer","Find in text…":"Rechercher dans le texte...",Find:"Rechercher","Previous result":"Résultat précédent","Next result":"Résultat suivant",Replace:"Remplacer","Replace all":"Remplacer tout","Match case":"Sensible à la casse","Whole words only":"Mots entiers uniquement","Replace with…":"Remplacer par ...","Text to find must not be empty.":"L'expression à rechercher ne doit pas être vide","Tip: Find some text first in order to replace it.":"Astuce : rechercher une expression afin de la remplacer","Advanced options":"Options avancées","Find in the document":"Rechercher dans le document","Insert a soft break (a <code><br></code> element)":"Insérer un saut progressif (un élément <code> <br> </code> )","Insert a hard break (a new paragraph)":"Insérer une pause (un nouveau paragraphe)",Emoji:"Émoji","Show all emoji...":"Afficher tous les émojis...","Find an emoji (min. 2 characters)":"Trouver un émoji (min. deux caractères)",'No emojis were found matching "%0".':"Aucun émoji correspondant à « %0 » n'a été trouvé.","Keep on typing to see the emoji.":"Continuez à taper pour voir l'émoji.","The query must contain at least two characters.":"La requête doit contenir au moins deux caractères.","Smileys & Expressions":"Smileys et expressions","Gestures & People":"Gestes et personnes","Animals & Nature":"Animaux et nature","Food & Drinks":"Nourriture et boissons","Travel & Places":"Voyages et lieux",Activities:"Activités",Objects:"Objets",Symbols:"Symboles",Flags:"Drapeaux","Select skin tone":"Sélectionner la teinte de peau","Default skin tone":"Teinte de peau par défaut","Light skin tone":"Teint clair","Medium Light skin tone":"Teint moyennement clair","Medium skin tone":"Teint moyen","Medium Dark skin tone":"Teint moyennement foncé","Dark skin tone":"Teint foncé","Emoji picker":"Sélecteur d'émojis",Cancel:"Annuler",Clear:"Effacer","Remove color":"Enlever la couleur","Restore default":"Restaurer par défaut",Save:"Enregistrer","Show more items":"Montrer plus d'éléments","%0 of %1":"%0 sur %1","Cannot upload file:":"Envoi du fichier échoué :","Rich Text Editor. Editing area: %0":"Éditeur de texte enrichi. Zone d'édition : %0","Insert with file manager":"Insérer avec le gestionnaire de fichiers","Replace with file manager":"Remplacer avec le gestionnaire de fichiers","Insert image with file manager":"Insérer une image avec le gestionnaire de fichiers","Replace image with file manager":"Remplacer l'image avec le gestionnaire de fichiers",File:"Fichier","With file manager":"Avec le gestionnaire de fichiers","Toggle caption off":"Désactiver la légende","Toggle caption on":"Activer la légende","Content editing keystrokes":"Touches d'édition de contenu","These keyboard shortcuts allow for quick access to content editing features.":"Ces raccourcis clavier permettent un accès rapide aux fonctionnalités d'édition de contenu.","User interface and content navigation keystrokes":"Interface utilisateur et frappes de navigation dans le contenu","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Utilisez les touches suivantes pour une navigation plus efficace dans l'interface utilisateur de CKEditor 5.","Close contextual balloons, dropdowns, and dialogs":"Fermer les bulles contextuelles, les listes déroulantes et les boîtes de dialogue","Open the accessibility help dialog":"Ouvrir la boîte de dialogue d'aide sur l'accessibilité","Move focus between form fields (inputs, buttons, etc.)":"Déplacer le focus entre les champs du formulaire (saisies, boutons, etc.)","Move focus to the menu bar, navigate between menu bars":"Déplacer le focus sur la barre du menu, naviguer entre les barres de menu","Move focus to the toolbar, navigate between toolbars":"Déplacez le focus sur la barre d'outils, naviguez entre les barres d'outils","Navigate through the toolbar or menu bar":"Naviguer sur la barre d'outils ou la barre de menu","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Exécuter le bouton sur lequel se trouve le focus. L'exécution de boutons qui interagissent avec le contenu de l'éditeur ramène le focus sur le contenu.",Accept:"Accepter",Paragraph:"Paragraphe","Color picker":"Pipette à couleurs","Please try a different phrase or check the spelling.":"Veuillez essayer une autre phrase ou vérifier l'orthographe.",Source:"Source",Insert:"Insérer",Update:"Mettre à jour",Back:"Retour","Insert code block":"Insérer un bloc de code","Plain text":"Texte brut","Leaving %0 code snippet":"Laisser un extrait de code %0","Entering %0 code snippet":"Saisie d'un extrait de code %0","Entering code snippet":"Saisie d'un extrait de code","Leaving code snippet":"Laisser un extrait de code","Code block":"Bloc de code","Copy selected content":"Copier le contenu sélectionné","Paste content":"Coller le contenu","Paste content as plain text":"Coller le contenu sous forme de texte brut","Insert image or file":"Insérer une image ou un fichier","Could not obtain resized image URL.":"Impossible d'obtenir l'image redimensionnée","Selecting resized image failed":"La sélection de l'image redimensionnée a échoué.","Could not insert image at the current position.":"Impossible d'insérer l'image à la position courante.","Inserting image failed":"L'insertion d'image a échoué.",Bookmark:"Favori","Edit bookmark":"Modifier le favori","Remove bookmark":"Supprimer le favori","Bookmark name":"Nom du favori","Enter the bookmark name without spaces.":"Saisir un nom de favori sans espaces.","Bookmark must not be empty.":"Le favori ne doit pas être vide.","Bookmark name cannot contain space characters.":"Le nom d'un favori ne peut pas contenir d'espaces.","Bookmark name already exists.":"Le nom du favori existe déjà.","bookmark widget":"widget pour favori","Bookmark toolbar":"Barre d'outils des signets",Bookmarks:"Signets","No bookmarks available.":"Aucun signet disponible.","Scroll to bookmark":"Faire défiler jusqu'au signet","Open file manager":"Ouvrir le gestionnaire de fichiers","Cannot determine a category for the uploaded file.":"Impossible de déterminer une catégorie pour le fichier téléchargé.","Cannot access default workspace.":"Impossible d'accéder à l'espace de travail par défaut.","You have no image editing permissions.":"Vous n'êtes pas autorisé à traiter des images.","Edit image":"Modifier l'image","Processing the edited image.":"Traitement de l'image modifiée.","Server failed to process the image.":"Le serveur n'a pas réussi à traiter l'image.","Failed to determine category of edited image.":"Échec de la détermination de la catégorie de l'image modifiée.","Block quote":"Citation",Bold:"Gras",Italic:"Italique",Underline:"Souligné",Code:"Code",Strikethrough:"Barré",Subscript:"Indice",Superscript:"Exposant","Italic text":"Texte en italique","Move out of an inline code style":"Sortir d'un style de code en ligne","Bold text":"Texte en gras","Underline text":"Souligner le texte","Strikethrough text":"Texte barré","Saving changes":"Enregistrement des modifications","Revert autoformatting action":"Annuler l'action de formatage automatique","Align left":"Aligner à gauche","Align right":"Aligner à droite","Align center":"Centrer",Justify:"Justifier","Text alignment":"Alignement du texte","Text alignment toolbar":"Barre d'outils d'alignement du texte"},getPluralForm(n){return n<=-2||n>=2}}};const oB={hi:{dictionary:{"Words: %0":"Words: %0","Characters: %0":"Characters: %0","Widget toolbar":"Widget toolbar","Insert paragraph before block":"Insert paragraph before block","Insert paragraph after block":"Insert paragraph after block","Press Enter to type after or press Shift + Enter to type before the widget":"विजेट के बाद टाइप करने के लिए एंटर दबाएं या पहले टाइप करने के लिए शिफ्ट+एंटर दबाएं","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"वे कीस्ट्रोक्स जिनका इस्तेमाल किसी विजेट के सेलेक्ट किए जाने पर किया जा सकता है (जैसे: इमेज, टेबल, आदि)","Insert a new paragraph directly after a widget":"किसी विजेट के ठीक आगे एक नया पैराग्राफ़ इंसर्ट करें","Insert a new paragraph directly before a widget":"किसी विजेट के ठीक पीछे एक नया पैराग्राफ़ इंसर्ट करें","Move the caret to allow typing directly before a widget":"किसी विजेट के ठीक पीछे टाइप करने के लिए कैरेट को मूव करें","Move the caret to allow typing directly after a widget":"किसी विजेट के ठीक आगे टाइप करने के लिए कैरेट को मूव करें","Move focus from an editable area back to the parent widget":"एक एडिटेबल एरिया से पेरेंट विजेट पर फ़ोकस वापिस लाएँ","Upload in progress":"Upload in progress",Undo:"Undo",Redo:"Redo","Rich Text Editor":"Rich Text Editor","Edit block":"Edit block","Click to edit block":"ब्लॉक एडिट करने के लिए क्लिक करें","Drag to move":"मूव करने के लिए ड्रैग करें",Next:"Next",Previous:"Previous","Editor toolbar":"Editor toolbar","Dropdown toolbar":"Dropdown toolbar","Dropdown menu":"ड्रापडाउन मेन्यू",Black:"Black","Dim grey":"Dim grey",Grey:"Grey","Light grey":"Light grey",White:"White",Red:"Red",Orange:"Orange",Yellow:"Yellow","Light green":"Light green",Green:"Green",Aquamarine:"Aquamarine",Turquoise:"Turquoise","Light blue":"Light blue",Blue:"Blue",Purple:"Purple","Editor block content toolbar":"एडीटर ब्लॉक कंटेंट टूलबार","Editor contextual toolbar":"एडीटर कॉन्टेक्स्टूअल टूलबार",HEX:"HEX","No results found":"कोई रिजल्ट नहीं","No searchable items":"कोई खोजने लायक आइटम नहीं","Editor dialog":"एडिटर डायलॉग",Close:"बंद करें","Help Contents. To close this dialog press ESC.":"हेल्प कॉन्टेंट्स. इस डायलॉग को बंद करने के लिए ESC दबाएँ.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"नीचे, आप उन कीबोर्ड शॉर्टकट्स की एक लिस्ट देख सकते हैं जिनका इस्तेमाल एडिटर में किया जा सकता है.","(may require <kbd>Fn</kbd>)":"(इसके लिए <kbd>Fn</kbd> की ज़रूरत हो सकती है)",Accessibility:"पहुँच","Accessibility help":"एक्सेसिबिलिटी हेल्प","Press %0 for help.":"हेल्प के लिए %0 दबाएँ.","Move focus in and out of an active dialog window":"एक एक्टिव डायलॉग विंडो में फ़ोकस को अंदर और बाहर मूव करें",MENU_BAR_MENU_FILE:"फाइल",MENU_BAR_MENU_EDIT:"Edit",MENU_BAR_MENU_VIEW:"दृश्य",MENU_BAR_MENU_INSERT:"Insert",MENU_BAR_MENU_FORMAT:"फॉर्मेट",MENU_BAR_MENU_TOOLS:"टूल्स",MENU_BAR_MENU_HELP:"हेल्प",MENU_BAR_MENU_TEXT:"टेक्स्ट",MENU_BAR_MENU_FONT:"फ़ॉन्ट","Editor menu bar":"एडिटर मेनू बार",'Please enter a valid color (e.g. "ff0000").':'कृपया एक वैध रंग दर्ज करें (उदाहरण के लिए "ff0000").',"Insert table":"Insert table","Header column":"Header column","Insert column left":"Insert column left","Insert column right":"Insert column right","Delete column":"Delete column","Select column":"Select column",Column:"Column","Header row":"Header row","Insert row below":"Insert row below","Insert row above":"Insert row above","Delete row":"Delete row","Select row":"Select row",Row:"Row","Merge cell up":"Merge cell up","Merge cell right":"Merge cell right","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Split cell vertically":"Split cell vertically","Split cell horizontally":"Split cell horizontally","Merge cells":"Merge cells","Table toolbar":"Table toolbar","Table properties":"Table properties","Cell properties":"Cell properties",Border:"Border",Style:"Style",Width:"Width",Height:"Height",Color:"Color",Background:"Background",Padding:"Padding",Dimensions:"Dimensions","Table cell text alignment":"Table cell text alignment",Alignment:"Alignment","Horizontal text alignment toolbar":"Horizontal text alignment toolbar","Vertical text alignment toolbar":"Vertical text alignment toolbar","Table alignment toolbar":"Table alignment toolbar",None:"None",Solid:"Solid",Dotted:"Dotted",Dashed:"Dashed",Double:"Double",Groove:"Groove",Ridge:"Ridge",Inset:"Inset",Outset:"Outset","Align cell text to the left":"Align cell text to the left","Align cell text to the center":"Align cell text to the center","Align cell text to the right":"Align cell text to the right","Justify cell text":"Justify cell text","Align cell text to the top":"Align cell text to the top","Align cell text to the middle":"Align cell text to the middle","Align cell text to the bottom":"Align cell text to the bottom","Align table to the left":"Align table to the left","Center table":"Center table","Align table to the right":"Align table to the right",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'The value is invalid. Try "10px" or "2em" or simply "2".',"Enter table caption":"टेबल कैप्शन एंटर करें","Keystrokes that can be used in a table cell":"वे कीस्ट्रोक्स जिनका इस्तेमाल एक टेबल सेल में किया जा सकता है","Move the selection to the next cell":"सेलेक्शन को अगले सेल में मूव करें","Move the selection to the previous cell":"सेलेक्शन को पिछले सेल में मूव करें","Insert a new table row (when in the last cell of a table)":"एक नई टेबल रो इंसर्ट करें (जब आप किसी टेबल के आख़िरी सेल में हों)","Navigate through the table":"टेबल में नैविगेट करें",Table:"टेबल","Insert table layout":"टेबल लेआउट सम्मिलित करें","Table layout":"टेबल लेआउट","Layout table":"लेआउट टेबल","Content table":"कंटेंट टेबल","Choose table type":"टेबल प्रकार चुनें","Table type":"टेबल प्रकार","Table type options":"टेबल प्रकार के विकल्प",Styles:"स्टाइल्स","Multiple styles":"कई स्टाइल्स","Block styles":"ब्लॉक स्टाइल्स","Text styles":"टेक्स्ट स्टाइल्स","Special characters":"Special characters",Category:"केटेगरी",All:"सभी",Arrows:"एरोज",Currency:"करेंसी",Latin:"लैटिन",Mathematical:"मैथमैटिकल",Text:"टेक्स्ट","leftwards simple arrow":"सिम्पल ऐरो बाएं तरफ","rightwards simple arrow":"सिम्पल ऐरो दाएं तरफ","upwards simple arrow":"सिम्पल ऐरो ऊपर की तरफ","downwards simple arrow":"सिम्पल ऐरो नीचे की तरफ","leftwards double arrow":"leftwards double arrow","rightwards double arrow":"rightwards double arrow","upwards double arrow":"upwards double arrow","downwards double arrow":"downwards double arrow","leftwards dashed arrow":"leftwards dashed arrow","rightwards dashed arrow":"rightwards dashed arrow","upwards dashed arrow":"upwards dashed arrow","downwards dashed arrow":"downwards dashed arrow","leftwards arrow to bar":"leftwards arrow to bar","rightwards arrow to bar":"rightwards arrow to bar","upwards arrow to bar":"upwards arrow to bar","downwards arrow to bar":"downwards arrow to bar","up down arrow with base":"up down arrow with base","back with leftwards arrow above":"back with leftwards arrow above","end with leftwards arrow above":"end with leftwards arrow above","on with exclamation mark with left right arrow above":"on with exclamation mark with left right arrow above","soon with rightwards arrow above":"soon with rightwards arrow above","top with upwards arrow above":"top with upwards arrow above","Dollar sign":"Dollar sign","Euro sign":"Euro sign","Yen sign":"Yen sign","Pound sign":"Pound sign","Cent sign":"Cent sign","Euro-currency sign":"Euro-currency sign","Colon sign":"Colon sign","Cruzeiro sign":"Cruzeiro sign","French franc sign":"French franc sign","Lira sign":"Lira sign","Currency sign":"Currency sign","Bitcoin sign":"Bitcoin sign","Mill sign":"Mill sign","Naira sign":"Naira sign","Peseta sign":"Peseta sign","Rupee sign":"Rupee sign","Won sign":"Won sign","New sheqel sign":"New sheqel sign","Dong sign":"Dong sign","Kip sign":"Kip sign","Tugrik sign":"Tugrik sign","Drachma sign":"Drachma sign","German penny sign":"German penny sign","Peso sign":"Peso sign","Guarani sign":"Guarani sign","Austral sign":"Austral sign","Hryvnia sign":"Hryvnia sign","Cedi sign":"Cedi sign","Livre tournois sign":"Livre tournois sign","Spesmilo sign":"Spesmilo sign","Tenge sign":"Tenge sign","Indian rupee sign":"Indian rupee sign","Turkish lira sign":"Turkish lira sign","Nordic mark sign":"Nordic mark sign","Manat sign":"Manat sign","Ruble sign":"Ruble sign","Latin capital letter a with macron":"Latin capital letter a with macron","Latin small letter a with macron":"Latin small letter a with macron","Latin capital letter a with breve":"Latin capital letter a with breve","Latin small letter a with breve":"Latin small letter a with breve","Latin capital letter a with ogonek":"Latin capital letter a with ogonek","Latin small letter a with ogonek":"Latin small letter a with ogonek","Latin capital letter c with acute":"Latin capital letter c with acute","Latin small letter c with acute":"Latin small letter c with acute","Latin capital letter c with circumflex":"Latin capital letter c with circumflex","Latin small letter c with circumflex":"Latin small letter c with circumflex","Latin capital letter c with dot above":"Latin capital letter c with dot above","Latin small letter c with dot above":"Latin small letter c with dot above","Latin capital letter c with caron":"Latin capital letter c with caron","Latin small letter c with caron":"Latin small letter c with caron","Latin capital letter d with caron":"Latin capital letter d with caron","Latin small letter d with caron":"Latin small letter d with caron","Latin capital letter d with stroke":"Latin capital letter d with stroke","Latin small letter d with stroke":"Latin small letter d with stroke","Latin capital letter e with macron":"Latin capital letter e with macron","Latin small letter e with macron":"Latin small letter e with macron","Latin capital letter e with breve":"Latin capital letter e with breve","Latin small letter e with breve":"Latin small letter e with breve","Latin capital letter e with dot above":"Latin capital letter e with dot above","Latin small letter e with dot above":"Latin small letter e with dot above","Latin capital letter e with ogonek":"Latin capital letter e with ogonek","Latin small letter e with ogonek":"Latin small letter e with ogonek","Latin capital letter e with caron":"Latin capital letter e with caron","Latin small letter e with caron":"Latin small letter e with caron","Latin capital letter g with circumflex":"Latin capital letter g with circumflex","Latin small letter g with circumflex":"Latin small letter g with circumflex","Latin capital letter g with breve":"Latin capital letter g with breve","Latin small letter g with breve":"Latin small letter g with breve","Latin capital letter g with dot above":"Latin capital letter g with dot above","Latin small letter g with dot above":"Latin small letter g with dot above","Latin capital letter g with cedilla":"Latin capital letter g with cedilla","Latin small letter g with cedilla":"Latin small letter g with cedilla","Latin capital letter h with circumflex":"Latin capital letter h with circumflex","Latin small letter h with circumflex":"Latin small letter h with circumflex","Latin capital letter h with stroke":"Latin capital letter h with stroke","Latin small letter h with stroke":"Latin small letter h with stroke","Latin capital letter i with tilde":"Latin capital letter i with tilde","Latin small letter i with tilde":"Latin small letter i with tilde","Latin capital letter i with macron":"Latin capital letter i with macron","Latin small letter i with macron":"Latin small letter i with macron","Latin capital letter i with breve":"Latin capital letter i with breve","Latin small letter i with breve":"Latin small letter i with breve","Latin capital letter i with ogonek":"Latin capital letter i with ogonek","Latin small letter i with ogonek":"Latin small letter i with ogonek","Latin capital letter i with dot above":"Latin capital letter i with dot above","Latin small letter dotless i":"Latin small letter dotless i","Latin capital ligature ij":"Latin capital ligature ij","Latin small ligature ij":"Latin small ligature ij","Latin capital letter j with circumflex":"Latin capital letter j with circumflex","Latin small letter j with circumflex":"Latin small letter j with circumflex","Latin capital letter k with cedilla":"Latin capital letter k with cedilla","Latin small letter k with cedilla":"Latin small letter k with cedilla","Latin small letter kra":"Latin small letter kra","Latin capital letter l with acute":"Latin capital letter l with acute","Latin small letter l with acute":"Latin small letter l with acute","Latin capital letter l with cedilla":"Latin capital letter l with cedilla","Latin small letter l with cedilla":"Latin small letter l with cedilla","Latin capital letter l with caron":"Latin capital letter l with caron","Latin small letter l with caron":"Latin small letter l with caron","Latin capital letter l with middle dot":"Latin capital letter l with middle dot","Latin small letter l with middle dot":"Latin small letter l with middle dot","Latin capital letter l with stroke":"Latin capital letter l with stroke","Latin small letter l with stroke":"Latin small letter l with stroke","Latin capital letter n with acute":"Latin capital letter n with acute","Latin small letter n with acute":"Latin small letter n with acute","Latin capital letter n with cedilla":"Latin capital letter n with cedilla","Latin small letter n with cedilla":"Latin small letter n with cedilla","Latin capital letter n with caron":"Latin capital letter n with caron","Latin small letter n with caron":"Latin small letter n with caron","Latin small letter n preceded by apostrophe":"Latin small letter n preceded by apostrophe","Latin capital letter eng":"Latin capital letter eng","Latin small letter eng":"Latin small letter eng","Latin capital letter o with macron":"Latin capital letter o with macron","Latin small letter o with macron":"Latin small letter o with macron","Latin capital letter o with breve":"Latin capital letter o with breve","Latin small letter o with breve":"Latin small letter o with breve","Latin capital letter o with double acute":"Latin capital letter o with double acute","Latin small letter o with double acute":"Latin small letter o with double acute","Latin capital ligature oe":"Latin capital ligature oe","Latin small ligature oe":"Latin small ligature oe","Latin capital letter r with acute":"Latin capital letter r with acute","Latin small letter r with acute":"Latin small letter r with acute","Latin capital letter r with cedilla":"Latin capital letter r with cedilla","Latin small letter r with cedilla":"Latin small letter r with cedilla","Latin capital letter r with caron":"Latin capital letter r with caron","Latin small letter r with caron":"Latin small letter r with caron","Latin capital letter s with acute":"Latin capital letter s with acute","Latin small letter s with acute":"Latin small letter s with acute","Latin capital letter s with circumflex":"Latin capital letter s with circumflex","Latin small letter s with circumflex":"Latin small letter s with circumflex","Latin capital letter s with cedilla":"Latin capital letter s with cedilla","Latin small letter s with cedilla":"Latin small letter s with cedilla","Latin capital letter s with caron":"Latin capital letter s with caron","Latin small letter s with caron":"Latin small letter s with caron","Latin capital letter t with cedilla":"Latin capital letter t with cedilla","Latin small letter t with cedilla":"Latin small letter t with cedilla","Latin capital letter t with caron":"Latin capital letter t with caron","Latin small letter t with caron":"Latin small letter t with caron","Latin capital letter t with stroke":"Latin capital letter t with stroke","Latin small letter t with stroke":"Latin small letter t with stroke","Latin capital letter u with tilde":"Latin capital letter u with tilde","Latin small letter u with tilde":"Latin small letter u with tilde","Latin capital letter u with macron":"Latin capital letter u with macron","Latin small letter u with macron":"Latin small letter u with macron","Latin capital letter u with breve":"Latin capital letter u with breve","Latin small letter u with breve":"Latin small letter u with breve","Latin capital letter u with ring above":"Latin capital letter u with ring above","Latin small letter u with ring above":"Latin small letter u with ring above","Latin capital letter u with double acute":"Latin capital letter u with double acute","Latin small letter u with double acute":"Latin small letter u with double acute","Latin capital letter u with ogonek":"Latin capital letter u with ogonek","Latin small letter u with ogonek":"Latin small letter u with ogonek","Latin capital letter w with circumflex":"Latin capital letter w with circumflex","Latin small letter w with circumflex":"Latin small letter w with circumflex","Latin capital letter y with circumflex":"Latin capital letter y with circumflex","Latin small letter y with circumflex":"Latin small letter y with circumflex","Latin capital letter y with diaeresis":"Latin capital letter y with diaeresis","Latin capital letter z with acute":"Latin capital letter z with acute","Latin small letter z with acute":"Latin small letter z with acute","Latin capital letter z with dot above":"Latin capital letter z with dot above","Latin small letter z with dot above":"Latin small letter z with dot above","Latin capital letter z with caron":"Latin capital letter z with caron","Latin small letter z with caron":"Latin small letter z with caron","Latin small letter long s":"Latin small letter long s","Less-than sign":"Less-than sign","Greater-than sign":"Greater-than sign","Less-than or equal to":"Less-than or equal to","Greater-than or equal to":"Greater-than or equal to","En dash":"En dash","Em dash":"Em dash",Macron:"Macron",Overline:"Overline","Degree sign":"Degree sign","Minus sign":"Minus sign","Plus-minus sign":"Plus-minus sign","Division sign":"Division sign","Fraction slash":"Fraction slash","Multiplication sign":"Multiplication sign","Latin small letter f with hook":"Latin small letter f with hook",Integral:"Integral","N-ary summation":"N-ary summation",Infinity:"Infinity","Square root":"Square root","Tilde operator":"Tilde operator","Approximately equal to":"Approximately equal to","Almost equal to":"Almost equal to","Not equal to":"Not equal to","Identical to":"Identical to","Element of":"Element of","Not an element of":"Not an element of","Contains as member":"Contains as member","N-ary product":"N-ary product","Logical and":"Logical and","Logical or":"Logical or","Not sign":"Not sign",Intersection:"Intersection",Union:"Union","Partial differential":"Partial differential","For all":"For all","There exists":"There exists","Empty set":"Empty set",Nabla:"Nabla","Asterisk operator":"Asterisk operator","Proportional to":"Proportional to",Angle:"Angle","Vulgar fraction one quarter":"Vulgar fraction one quarter","Vulgar fraction one half":"Vulgar fraction one half","Vulgar fraction three quarters":"Vulgar fraction three quarters","Single left-pointing angle quotation mark":"Single left-pointing angle quotation mark","Single right-pointing angle quotation mark":"Single right-pointing angle quotation mark","Left-pointing double angle quotation mark":"Left-pointing double angle quotation mark","Right-pointing double angle quotation mark":"Right-pointing double angle quotation mark","Left single quotation mark":"Left single quotation mark","Right single quotation mark":"Right single quotation mark","Left double quotation mark":"Left double quotation mark","Right double quotation mark":"Right double quotation mark","Single low-9 quotation mark":"Single low-9 quotation mark","Double low-9 quotation mark":"Double low-9 quotation mark","Inverted exclamation mark":"Inverted exclamation mark","Inverted question mark":"Inverted question mark","Two dot leader":"Two dot leader","Horizontal ellipsis":"Horizontal ellipsis","Double dagger":"Double dagger","Per mille sign":"Per mille sign","Per ten thousand sign":"Per ten thousand sign","Double exclamation mark":"Double exclamation mark","Question exclamation mark":"Question exclamation mark","Exclamation question mark":"Exclamation question mark","Double question mark":"Double question mark","Copyright sign":"Copyright sign","Registered sign":"Registered sign","Trade mark sign":"Trade mark sign","Section sign":"Section sign","Paragraph sign":"Paragraph sign","Reversed paragraph sign":"Reversed paragraph sign","Show source":"सोर्स दिखाएं","Show blocks":"ब्लॉक दिखाएं","Select all":"Select all","Disable editing":"Disable editing","Enable editing":"Enable editing","Previous editable region":"Previous editable region","Next editable region":"Next editable region","Navigate editable regions":"Navigate editable regions","Remove Format":"Remove Format","Page break":"Page break","media widget":"media widget","Media URL":"Media URL","Paste the media URL in the input.":"Paste the media URL in the input.","Tip: Paste the URL into the content to embed faster.":"Tip: Paste the URL into the content to embed faster.","The URL must not be empty.":"The URL must not be empty.","This media URL is not supported.":"This media URL is not supported.","Insert media":"Insert media",Media:"मीडिया","Media toolbar":"Media toolbar","Open media in new tab":"नए टैब में मीडिया खोलें","Media embed":"मीडिया एंबेड","Numbered List":"Numbered List","Bulleted List":"Bulleted List","To-do List":"To-do List","Bulleted list styles toolbar":"Bulleted list styles toolbar","Numbered list styles toolbar":"Numbered list styles toolbar","Toggle the disc list style":"Toggle the disc list style","Toggle the circle list style":"Toggle the circle list style","Toggle the square list style":"Toggle the square list style","Toggle the decimal list style":"Toggle the decimal list style","Toggle the decimal with leading zero list style":"Toggle the decimal with leading zero list style","Toggle the lower–roman list style":"Toggle the lower–roman list style","Toggle the upper–roman list style":"Toggle the upper–roman list style","Toggle the lower–latin list style":"Toggle the lower–latin list style","Toggle the upper–latin list style":"Toggle the upper–latin list style",Disc:"Disc",Circle:"Circle",Square:"Square",Decimal:"Decimal","Decimal with leading zero":"Decimal with leading zero","Lower–roman":"Lower–roman","Upper-roman":"Upper-roman","Lower-latin":"Lower-latin","Upper-latin":"Upper-latin","List properties":"प्रॉपर्टीज़ को लिस्ट करें","Start at":"शुरू करे इस पर","Invalid start index value.":"इनवैलिड स्टार्ट इंडेक्स वैल्यू.","Start index must be greater than 0.":"स्टार्ट इंडेक्स 0 से अधिक होना चाहिए.","Reversed order":"रिवर्स किया गया क्रम","Keystrokes that can be used in a list":"वे कीस्ट्रोक्स जिनका इस्तेमाल किसी लिस्ट में किया जा सकता है","Increase list item indent":"लिस्ट आइटम इंडेंट को बढ़ाएँ","Decrease list item indent":"लिस्ट आइटम इंडेंट को घटाएँ","Entering a to-do list":"एक कार्य सूची में प्रवेश कर रहे हैं","Leaving a to-do list":"एक कार्य सूची छोड़ी जा रही है",Unlink:"Unlink",Link:"Link","Link URL":"Link URL","Link URL must not be empty.":"लिंक का URL रिक्त नहीं होना चाहिए.","Link image":"Link image","Edit link":"Edit link","Open link in new tab":"Open link in new tab","Open in a new tab":"Open in a new tab",Downloadable:"Downloadable","Create link":"लिंक बनाएँ","Move out of a link":"लिंक के बाहर जाएँ","Link properties":"गुण लिंक करें","Displayed text":"प्रदर्शित टेक्स्ट","No links available":"कोई लिंक उपलब्ध नहीं है",Language:"भाषा","Choose language":"भाषा चुनें","Remove language":"भाषा हटाएं","Increase indent":"Increase indent","Decrease indent":"Decrease indent","image widget":"image widget","Wrap text":"टेक्स्ट रैप करें","Break text":"टेक्स्ट तोड़ें","In line":"इन - लाइन","Side image":"Side image","Full size image":"Full size image","Left aligned image":"Left aligned image","Centered image":"Centered image","Right aligned image":"Right aligned image","Change image text alternative":"Change image text alternative","Text alternative":"Text alternative","Enter image caption":"Enter image caption","Insert image":"Insert image","Replace image":"इमेज बदलें","Upload from computer":"कंप्यूटर से अपलोड करे","Replace from computer":"कंप्यूटर से बदलें","Upload image from computer":"कंप्यूटर से इमेज अपलोड करें","Image from computer":"कंप्यूटर से इमेज","From computer":"कंप्यूटर से","Replace image from computer":"कंप्यूटर से इमेज बदलें","Upload failed":"Upload failed","You have no image upload permissions.":"आपके पास तस्वीर को अपलोड करने की अनुमति नहीं है.","Image toolbar":"Image toolbar","Resize image":"Resize image","Resize image to %0":"Resize image to %0","Resize image to the original size":"Resize image to the original size","Resize image (in %0)":"(%0 में) तस्वीर का साइज़ बदलें",Original:"Original","Custom image size":"तस्वीर का कस्टम साइज़",Custom:"कस्टम","Image resize list":"Image resize list","Insert image via URL":"Insert image via URL","Insert via URL":"URL के माध्यम से इंसर्ट करें","Image via URL":"URL के माध्यम से इमेज","Via URL":"URL के माध्यम से","Update image URL":"Update image URL","Caption for the image":"छवि के लिए कैप्शन","Caption for image: %0":"छवि के लिए कैप्शन: %0","The value must not be empty.":"वैल्यू रिक्त नहीं होना चाहिए.","The value should be a plain number.":"वैल्यू एक प्लेन नंबर होना चाहिए.","Uploading image":"तस्वीर अपलोड की जा रही है","Image upload complete":"तस्वीर का अपलोड पूरा हुआ","Error during image upload":"तस्वीर अपलोड के दौरान त्रुटि",Image:"इमेज","Image Resize":"तस्वीर का आकर बदलें","Text Alternative":"टेक्स्ट का विकल्प","HTML object":"एचटीएमएल वस्तु","Insert HTML":"एचटीएमएल इन्सर्ट करें","HTML snippet":"एचटीएमएल स्निपेट","Paste raw HTML here...":"रॉ एचटीएमएल यहां पेस्ट करें...","Edit source":"सोर्स एडिट करें","Save changes":"चेंजेज़ को सेव करें","No preview available":"कोई प्रीव्यू उपलब्ध नहीं","Empty snippet content":"खाली स्निपेट कंटेंट","Horizontal line":"Horizontal line","Yellow marker":"Yellow marker","Green marker":"Green marker","Pink marker":"Pink marker","Blue marker":"Blue marker","Red pen":"Red pen","Green pen":"Green pen","Remove highlight":"Remove highlight",Highlight:"Highlight","Text highlight toolbar":"Text highlight toolbar",Heading:"Heading","Choose heading":"Choose heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6","Type your title":"Type your title","Type or paste your content here.":"Type or paste your content here.","Enter fullscreen mode":"फ़ुलस्क्रीन मोड में प्रवेश करें","Leave fullscreen mode":"फ़ुलस्क्रीन मोड छोड़ें","Fullscreen mode":"फ़ुलस्क्रीन मोड","Toggle fullscreen mode":"फ़ुलस्क्रीन मोड स्विच करें","Document outline":"डॉक्युमेंट की पूरी तस्वीर","Connected users":"जुड़े हुए यूज़र","Font Size":"Font Size",Tiny:"Tiny",Small:"Small",Big:"Big",Huge:"Huge","Font Family":"Font Family",Default:"Default","Font Color":"Font Color","Font Background Color":"Font Background Color","Document colors":"Document colors","Find and replace":"ढूँढें और बदलें","Find in text…":"टेक्स्ट में ढूंढें…",Find:"ढूँढें","Previous result":"पिछला रेज़ल्ट","Next result":"अगला रेज़ल्ट",Replace:"बदलें","Replace all":"सब बदल दें","Match case":"केस मैच करें","Whole words only":"केवल पूरे शब्द","Replace with…":"...के साथ बदलें","Text to find must not be empty.":"खोजने के लिए टेक्स्ट खाली नहीं होना चाहिए.","Tip: Find some text first in order to replace it.":"टिप:उसे बदलने के लिए पहले कुछ वह टेक्स्ट खोजें.","Advanced options":"एडवांस्ड विकल्प","Find in the document":"डॉक्युमेंट में खोजें","Insert a soft break (a <code><br></code> element)":"एक सॉफ़्ट ब्रेक इंसर्ट करें (एक <code><br></code> एलिमेंट)","Insert a hard break (a new paragraph)":"एक हार्ड ब्रेक इंसर्ट करें (एक नया पैराग्राफ़)",Emoji:"इमोजी","Show all emoji...":"सभी इमोजी दिखाएँ...","Find an emoji (min. 2 characters)":"एक इमोजी ढूंढें (कम से कम 2 अक्षर)",'No emojis were found matching "%0".':'"%0" से मेल खाता कोई इमोजी नहीं मिला.',"Keep on typing to see the emoji.":"इमोजी देखने के लिए टाइप करते रहें.","The query must contain at least two characters.":"क्वेरी में कम से कम दो अक्षर होने चाहिए.","Smileys & Expressions":"स्माइलीज़ और एक्सप्रेशंस","Gestures & People":"इशारे और लोग","Animals & Nature":"पशु और प्रकृति","Food & Drinks":"फ़ूड और ड्रिंक्स","Travel & Places":"ट्रैवल और स्थान",Activities:"गतिविधियाँ",Objects:"वस्तुओं",Symbols:"सिंबल",Flags:"झंडे","Select skin tone":"स्किन टोन चुनें","Default skin tone":"डिफ़ॉल्ट स्किन टोन","Light skin tone":"हल्की स्किन टोन","Medium Light skin tone":"मध्यम हल्की स्किन टोन","Medium skin tone":"मध्यम स्किन टोन","Medium Dark skin tone":"मध्यम गहरे स्किन टोन","Dark skin tone":"गहरे रंग का स्किन टोन","Emoji picker":"इमोजी पिकर",Cancel:"Cancel",Clear:"साफ़ करें","Remove color":"Remove color","Restore default":"डिफ़ॉल्ट रिस्टोर कर दें",Save:"Save","Show more items":"Show more items","%0 of %1":"%0 of %1","Cannot upload file:":"Cannot upload file:","Rich Text Editor. Editing area: %0":"रिच टेक्स्ट एडिटर। संपादन क्षेत्र: %0","Insert with file manager":"फ़ाइल मैनेजर से इन्सर्ट करें","Replace with file manager":"फ़ाइल मैनेजर से बदलें","Insert image with file manager":"फ़ाइल मैनेजर से इमेज इन्सर्ट करें","Replace image with file manager":"इमेज को फ़ाइल मैनेजर से बदलें",File:"फाइल","With file manager":"फ़ाइल मैनेजर के साथ","Toggle caption off":"कैप्शन को टॉगल बंद करें","Toggle caption on":"कैप्शन का टॉगल ऑन करें","Content editing keystrokes":"कॉन्टेंट एडिटिंग कीस्ट्रोक्स","These keyboard shortcuts allow for quick access to content editing features.":"ये कीबोर्ड शॉर्टकट्स कॉन्टेंट एडिटिंग फ़ीचर्स तक पहुँचना आसान बनाते हैं.","User interface and content navigation keystrokes":"यूज़र इंटरफ़ेस और कॉन्टेंट नैविगेशन कीस्ट्रोक्स","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"CKEditor 5 यूज़र इंटरफ़ेस में और बेहतरीन नैविगेशन के लिए इन कीस्ट्रोक्स का इस्तेमाल करें.","Close contextual balloons, dropdowns, and dialogs":"कॉन्टेक्सचुअल बलून्स, ड्रॉपडाउन्स और डायलॉग्स को बंद करें","Open the accessibility help dialog":"एक्सेसिबिलिटी हेल्प डायलॉग को खोलें","Move focus between form fields (inputs, buttons, etc.)":"फ़ॉर्म फ़ील्ड्स (इनपुट्स, बटन्स, आदि) के बीच फ़ोकस को मूव करें","Move focus to the menu bar, navigate between menu bars":"फ़ोकस को मेनू बार पर ले जाएँ, मेनू बार के बीच नेविगेट करें","Move focus to the toolbar, navigate between toolbars":"फ़ोकस को टूलबार पर ले जाएँ, टूलबार्स के बीच नैविगेट करें","Navigate through the toolbar or menu bar":"टूलबार या मेनू बार के माध्यम से नेविगेट करें","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"वर्तमान में फोकस्ड बटन दबाएँ. एडिटर के कंटेंट के साथ इंटरैक्ट करने वाले बटनों को दबाने से फोकस वापस कंटेंट पर आ जाता है.",Accept:"स्वीकार करें",Paragraph:"Paragraph","Color picker":"Color picker","Please try a different phrase or check the spelling.":"कृपया किन्हीं और शब्दों का इस्तेमाल करें या स्पेलिंग चेक करें.",Source:"सोर्स",Insert:"इंसर्ट",Update:"अपडेट",Back:"वापस जाएँ","Insert code block":"Insert code block","Plain text":"Plain text","Leaving %0 code snippet":"%0 कोड स्निपेट से बहार निकला जा रहा है","Entering %0 code snippet":"%0 कोड स्निपेट में प्रवेश किया जा रहा है","Entering code snippet":"कोड स्निपेट में प्रवेश किया जा रहा है","Leaving code snippet":"कोड स्निपेट में प्रवेश किया जा रहा है","Code block":"कोड ब्लॉक","Copy selected content":"सेलेक्ट किए गए कॉन्टेंट को कॉपी करें","Paste content":"कॉन्टेंट पेस्ट करें","Paste content as plain text":"कॉन्टेंट को प्लेन टेक्स्ट के रूप में पेस्ट करें","Insert image or file":"Insert image or file","Could not obtain resized image URL.":"Could not obtain resized image URL.","Selecting resized image failed":"Selecting resized image failed","Could not insert image at the current position.":"Could not insert image at the current position.","Inserting image failed":"Inserting image failed",Bookmark:"बुकमार्क","Edit bookmark":"बुकमार्क एडिट करें","Remove bookmark":"बुकमार्क हटाएं","Bookmark name":"बुकमार्क का नाम","Enter the bookmark name without spaces.":"बिना स्पेस के बुकमार्क का नाम लिखें.","Bookmark must not be empty.":"बुकमार्क खाली नहीं होना चाहिए.","Bookmark name cannot contain space characters.":"बुकमार्क नाम में स्पेस नहीं हो सकते.","Bookmark name already exists.":"बुकमार्क नाम पहले से मौजूद है.","bookmark widget":"बुकमार्क विजिट","Bookmark toolbar":"बुकमार्क टूलबार",Bookmarks:"बुकमार्क","No bookmarks available.":"कोई बुकमार्क उपलब्ध नहीं है.","Scroll to bookmark":"बुकमार्क करने के लिए स्क्रॉल करें","Open file manager":"फाइल मैनेजर खोलें","Cannot determine a category for the uploaded file.":"अपलोड की गई फ़ाइल के लिए एक केटेगरी डिटर्माइन नहीं कर पा रहें.","Cannot access default workspace.":"डिफ़ॉल्ट वर्कस्पेस को ऐक्सेस नहीं किया जा सकता.","You have no image editing permissions.":"आपके पास तस्वीर को एडिट करने की अनुमति नहीं है.","Edit image":"इमेज एडिट करें","Processing the edited image.":"एडिट किए गए इमेज को प्रोसेस किया जा रहा है","Server failed to process the image.":"सर्वर इमेज प्रोसेस करने में विफल रहा.","Failed to determine category of edited image.":"एडिट किए गए इमेज की श्रेणी निर्धारित करने में विफल.","Block quote":"Block quote",Bold:"Bold",Italic:"Italic",Underline:"Underline",Code:"Code",Strikethrough:"Strikethrough",Subscript:"Subscript",Superscript:"Superscript","Italic text":"इटैलिक टेक्स्ट","Move out of an inline code style":"इनलाइन कोड स्टाइल के बाहर जाएँ","Bold text":"टेक्स्ट को बोल्ड करें","Underline text":"टेक्स्ट को अंडरलाइन करें","Strikethrough text":"टेक्स्ट को स्ट्राइकथ्रू करें","Saving changes":"Saving changes","Revert autoformatting action":"ऑटोफ़ॉर्मैटिंग एक्शन को रिवर्ट करें","Align left":"Align left","Align right":"Align right","Align center":"Align center",Justify:"Justify","Text alignment":"Text alignment","Text alignment toolbar":"Text alignment toolbar"},getPluralForm(n){return n!=1}}};const aB={ko:{dictionary:{"Words: %0":"단어 수: %0","Characters: %0":"문자 수: %0","Widget toolbar":"위젯 툴바","Insert paragraph before block":"블록 앞에 단락 삽입","Insert paragraph after block":"블록 뒤에 단락 삽입","Press Enter to type after or press Shift + Enter to type before the widget":"엔터를 눌러서 위젯 뒤에 입력하거나 시프트 + 엔터를 눌러서 위젯 앞에 입력하세요","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"위젯이 선택되었을 때 사용할 수 있는 키 입력(예: 이미지, 표 등)","Insert a new paragraph directly after a widget":"위젯 바로 뒤에 새 단락 삽입","Insert a new paragraph directly before a widget":"위젯 바로 앞에 새 단락 삽입","Move the caret to allow typing directly before a widget":"위젯 바로 앞에 입력할 수 있도록 삽입 기호 이동","Move the caret to allow typing directly after a widget":"위젯 바로 뒤에 입력할 수 있도록 삽입 기호 이동","Move focus from an editable area back to the parent widget":"포커스를 편집 가능 영역에서 부모위젯으로 옮기기","Upload in progress":"업로드 진행 중",Undo:"실행 취소",Redo:"다시 실행","Rich Text Editor":"서식 있는 텍스트 편집기","Edit block":"편집 영역","Click to edit block":"클릭하여 블록 편집","Drag to move":"드래그하여 이동",Next:"다음",Previous:"이전","Editor toolbar":"편집기 툴바","Dropdown toolbar":"드롭다운 툴바","Dropdown menu":"드롭다운 메뉴",Black:"검은색","Dim grey":"진한 회색",Grey:"회색","Light grey":"밝은 회색",White:"흰색",Red:"빨간색",Orange:"주황색",Yellow:"노랑색","Light green":"연한 초록색",Green:"초록색",Aquamarine:"연한 청록색",Turquoise:"청록색","Light blue":"연한 파랑색",Blue:"파랑색",Purple:"보라색","Editor block content toolbar":"편집기 영역 내용 툴바","Editor contextual toolbar":"편집기 문맥 툴바",HEX:"HEX","No results found":"결과 찾을 수 없음","No searchable items":"검색 가능한 항목 없음","Editor dialog":"편집기 대화상자",Close:"닫기","Help Contents. To close this dialog press ESC.":"도움말 내용입니다. 이 대화 상자를 닫으려면 ESC 키를 누르세요.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"편집기에서 사용할 수 있는 키보드 단축키 목록을 아래에서 확인할 수 있습니다.","(may require <kbd>Fn</kbd>)":"(<kbd>Fn</kbd> 키가 필요할 수 있음)",Accessibility:"접근성","Accessibility help":"접근성 도움말","Press %0 for help.":"도움말을 보려면 %0 키를 누르세요.","Move focus in and out of an active dialog window":"활성화된 대화 창 안팎으로 포커스 이동",MENU_BAR_MENU_FILE:"파일",MENU_BAR_MENU_EDIT:"수정",MENU_BAR_MENU_VIEW:"보기",MENU_BAR_MENU_INSERT:"삽입",MENU_BAR_MENU_FORMAT:"서식",MENU_BAR_MENU_TOOLS:"도구",MENU_BAR_MENU_HELP:"도움말",MENU_BAR_MENU_TEXT:"텍스트",MENU_BAR_MENU_FONT:"글꼴","Editor menu bar":"편집기 메뉴 표시줄",'Please enter a valid color (e.g. "ff0000").':'유효한 색상을 입력해 주세요(예를 들어, "ff0000").',"Insert table":"테이블 삽입","Header column":"헤더 열","Insert column left":"왼쪽에 열 삽입","Insert column right":"오른쪽에 열 삽입","Delete column":"열 삭제","Select column":"열 선택",Column:"열","Header row":"헤더 행","Insert row below":"아래에 행 삽입","Insert row above":"위에 행 삽입","Delete row":"행 삭제","Select row":"행 선택",Row:"행","Merge cell up":"위 셀과 병합","Merge cell right":"오른쪽 셀과 병합","Merge cell down":"아래 셀과 병합","Merge cell left":"왼쪽 셀과 병합","Split cell vertically":"세로로 셀 분할","Split cell horizontally":"가로로 셀 분할","Merge cells":"셀 병합","Table toolbar":"표 도구 모음","Table properties":"표 속성","Cell properties":"셀 속성",Border:"테두리",Style:"스타일",Width:"가로",Height:"세로",Color:"색",Background:"배경색",Padding:"여백",Dimensions:"크기","Table cell text alignment":"표 셀 텍스트 정렬",Alignment:"정렬","Horizontal text alignment toolbar":"가로 텍스트 정렬 도구 모음","Vertical text alignment toolbar":"세로 텍스트 정렬 도구 모음","Table alignment toolbar":"표 정렬 도구 모음",None:"선 없음",Solid:"실선",Dotted:"점선",Dashed:"파선",Double:"이중선",Groove:"음각선",Ridge:"양각선",Inset:"측면 음각선",Outset:"측면 양각선","Align cell text to the left":"셀 텍스트를 왼쪽으로 정렬","Align cell text to the center":"셀 텍스트를 가로 가운데로 정렬","Align cell text to the right":"셀 텍스트를 오른쪽으로 정렬","Justify cell text":"셀 텍스트를 양쪽으로 정렬","Align cell text to the top":"셀 텍스트를 위로 정렬","Align cell text to the middle":"셀 텍스트를 세로 가운데로 정렬","Align cell text to the bottom":"셀 텍스트를 아래로 정렬","Align table to the left":"테이블을 왼쪽으로 정렬","Center table":"테이블을 가운데로 정렬","Align table to the right":"테이블을 오른쪽으로 정렬",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'유효하지 않은 색입니다. "#FF0000"이나 "rgb(255,0,0)", 또는 "red"를 입력해 보세요.','The value is invalid. Try "10px" or "2em" or simply "2".':'유효하지 않은 값입니다. "10px"나 "2em" 또는 그냥 "2"를 입력해 보세요.',"Enter table caption":"테이블 캡션 입력","Keystrokes that can be used in a table cell":"표 셀에서 사용할 수 있는 키 입력","Move the selection to the next cell":"선택 항목을 다음 셀로 이동","Move the selection to the previous cell":"선택 항목을 이전 셀로 이동","Insert a new table row (when in the last cell of a table)":"새 표 행 삽입(표의 마지막 셀에 있을 때)","Navigate through the table":"표 탐색",Table:"표","Insert table layout":"표 레이아웃 삽입","Table layout":"표 레이아웃","Layout table":"레이아웃 표","Content table":"콘텐츠 표","Choose table type":"표 유형 선택","Table type":"표 유형","Table type options":"표 유형 옵션",Styles:"스타일","Multiple styles":"다중 스타일","Block styles":"블록 스타일","Text styles":"텍스트 스타일","Special characters":"특수 문자",Category:"카테고리",All:"전체",Arrows:"화살표",Currency:"통화",Latin:"라틴",Mathematical:"수식",Text:"텍스트","leftwards simple arrow":"왼쪽 단순 화살표","rightwards simple arrow":"오른쪽 단순 화살표","upwards simple arrow":"위쪽 단순 화살표","downwards simple arrow":"아래쪽 단순 화살표","leftwards double arrow":"왼쪽 겹화살표","rightwards double arrow":"오른쪽 겹화살표","upwards double arrow":"위쪽 겹화살표","downwards double arrow":"아래쪽 겹화살표","leftwards dashed arrow":"왼쪽 대시 화살표","rightwards dashed arrow":"오른쪽 대시 화살표","upwards dashed arrow":"위쪽 대시 화살표","downwards dashed arrow":"아래쪽 대시 화살표","leftwards arrow to bar":"왼쪽 바를 향한 화살표","rightwards arrow to bar":"오른쪽 바를 향한 화살표","upwards arrow to bar":"위쪽 바를 향한 화살표","downwards arrow to bar":"아래쪽 바를 향한 화살표","up down arrow with base":"받침이 있는 위아래 화살표","back with leftwards arrow above":"BACK 위 왼쪽 화살표","end with leftwards arrow above":"END 위 왼쪽 화살표","on with exclamation mark with left right arrow above":"ON! 위 왼쪽 오른쪽 화살표","soon with rightwards arrow above":"SOON 위 오른쪽 화살표","top with upwards arrow above":"TOP 위 위쪽 화살표","Dollar sign":"달러 기호","Euro sign":"유로 기호","Yen sign":"엔 기호","Pound sign":"파운드 기호","Cent sign":"센트 기호","Euro-currency sign":"유로화 기호","Colon sign":"콜론 기호","Cruzeiro sign":"크루제이루 기호","French franc sign":"프랑스 프랑 기호","Lira sign":"리라 기호","Currency sign":"통화 기호","Bitcoin sign":"비트코인 기호","Mill sign":"밀 기호","Naira sign":"나이라 기호","Peseta sign":"페세타 기호","Rupee sign":"루피 기호","Won sign":"원 기호","New sheqel sign":"뉴 세켈 기호","Dong sign":"동 기호","Kip sign":"킵 기호","Tugrik sign":"투그리크 기호","Drachma sign":"드라크마 기호","German penny sign":"독일 페니 기호","Peso sign":"페소 기호","Guarani sign":"과라니 기호","Austral sign":"오스트랄 기호","Hryvnia sign":"흐리브냐 기호","Cedi sign":"세디 기호","Livre tournois sign":"리브르 트르누아 기호","Spesmilo sign":"스페스밀로 기호","Tenge sign":"텡게 기호","Indian rupee sign":"인도 루피 기호","Turkish lira sign":"터키 리라 기호","Nordic mark sign":"노르딕 마크 기호","Manat sign":"마나트 기호","Ruble sign":"루블 기호","Latin capital letter a with macron":"장음 부호가 있는 라틴어 대문자 A","Latin small letter a with macron":"장음 부호가 있는 라틴어 소문자 a","Latin capital letter a with breve":"반달점 부호가 있는 라틴어 대문자 A","Latin small letter a with breve":"반달점 부호가 있는 라틴어 소문자 a","Latin capital letter a with ogonek":"꼬리 부호가 있는 라틴어 대문자 A","Latin small letter a with ogonek":"꼬리 부호가 있는 라틴어 소문자 a","Latin capital letter c with acute":"양음 부호가 있는 라틴어 대문자 C","Latin small letter c with acute":"양음 부호가 있는 라틴어 소문자 c","Latin capital letter c with circumflex":"곡절 부호가 있는 라틴어 대문자 C","Latin small letter c with circumflex":"곡절 부호가 있는 라틴어 소문자 c","Latin capital letter c with dot above":"위에 점 부호가 있는 라틴어 대문자 C","Latin small letter c with dot above":"위에 점 부호가 있는 라틴어 소문자 c","Latin capital letter c with caron":"반대 곡절 부호가 있는 라틴어 대문자 C","Latin small letter c with caron":"반대 곡절 부호가 있는 라틴어 소문자 c","Latin capital letter d with caron":"반대 곡절 부호가 있는 라틴어 대문자 D","Latin small letter d with caron":"반대 곡절 부호가 있는 라틴어 소문자 d","Latin capital letter d with stroke":"획 부호가 있는 라틴어 대문자 D","Latin small letter d with stroke":"획 부호가 있는 라틴어 소문자 d","Latin capital letter e with macron":"장음 부호가 있는 라틴어 대문자 E","Latin small letter e with macron":"장음 부호가 있는 라틴어 소문자 e","Latin capital letter e with breve":"반달점 부호가 있는 라틴어 대문자 E","Latin small letter e with breve":"반달점 부호가 있는 라틴어 소문자 e","Latin capital letter e with dot above":"위에 점 부호가 있는 라틴어 대문자 E","Latin small letter e with dot above":"위에 점 부호가 있는 라틴어 소문자 e","Latin capital letter e with ogonek":"꼬리 부호가 있는 라틴어 대문자 E","Latin small letter e with ogonek":"꼬리 부호가 있는 라틴어 소문자 e","Latin capital letter e with caron":"반대 곡절 부호가 있는 라틴어 대문자 E","Latin small letter e with caron":"반대 곡절 부호가 있는 라틴어 소문자 e","Latin capital letter g with circumflex":"곡절 부호가 있는 라틴어 대문자 G","Latin small letter g with circumflex":"곡절 부호가 있는 라틴어 소문자 g","Latin capital letter g with breve":"반달점 부호가 있는 라틴어 대문자 G","Latin small letter g with breve":"반달점 부호가 있는 라틴어 소문자 g","Latin capital letter g with dot above":"위에 점 부호가 있는 라틴어 대문자 G","Latin small letter g with dot above":"위에 점 부호가 있는 라틴어 소문자 g","Latin capital letter g with cedilla":"갈고리 부호가 있는 라틴어 대문자 G","Latin small letter g with cedilla":"갈고리 부호가 있는 라틴어 소문자 g","Latin capital letter h with circumflex":"곡절 부호가 있는 라틴어 대문자 H","Latin small letter h with circumflex":"곡절 부호가 있는 라틴어 소문자 h","Latin capital letter h with stroke":"획 부호가 있는 라틴어 대문자 H","Latin small letter h with stroke":"획 부호가 있는 라틴어 소문자 h","Latin capital letter i with tilde":"물결 부호가 있는 라틴어 대문자 I","Latin small letter i with tilde":"물결 부호가 있는 라틴어 소문자 i","Latin capital letter i with macron":"장음 부호가 있는 라틴어 대문자 I","Latin small letter i with macron":"장음 부호가 있는 라틴어 소문자 i","Latin capital letter i with breve":"반달점 부호가 있는 라틴어 대문자 I","Latin small letter i with breve":"반달점 부호가 있는 라틴어 소문자 i","Latin capital letter i with ogonek":"꼬리 부호가 있는 라틴어 대문자 I","Latin small letter i with ogonek":"꼬리 부호가 있는 라틴어 소문자 i","Latin capital letter i with dot above":"위에 점 부호가 있는 라틴어 대문자 I","Latin small letter dotless i":"라틴어 소문자 점 없는 i","Latin capital ligature ij":"라틴어 대문자 합자 IJ","Latin small ligature ij":"라틴어 소문자 합자 ij","Latin capital letter j with circumflex":"곡절 부호가 있는 라틴어 대문자 J","Latin small letter j with circumflex":"곡절 부호가 있는 라틴어 소문자 j","Latin capital letter k with cedilla":"갈고리 부호가 있는 라틴어 대문자 K","Latin small letter k with cedilla":"갈고리 부호가 있는 라틴어 소문자 k","Latin small letter kra":"라틴어 소문자 크라","Latin capital letter l with acute":"양음 부호가 있는 라틴어 대문자 I","Latin small letter l with acute":"양음 부호가 있는 라틴어 소문자 i","Latin capital letter l with cedilla":"갈고리 부호가 있는 라틴어 대문자 I","Latin small letter l with cedilla":"갈고리 부호가 있는 라틴어 소문자 i","Latin capital letter l with caron":"반대 곡절 부호가 있는 라틴어 대문자 I","Latin small letter l with caron":"반대 곡절 부호가 있는 라틴어 소문자 i","Latin capital letter l with middle dot":"중간에 점 부호가 있는 라틴어 대문자 I","Latin small letter l with middle dot":"중간에 점 부호가 있는 라틴어 소문자 i","Latin capital letter l with stroke":"획 부호가 있는 라틴어 대문자 I","Latin small letter l with stroke":"획 부호가 있는 라틴어 소문자 i","Latin capital letter n with acute":"양음 부호가 있는 라틴어 대문자 N","Latin small letter n with acute":"양음 부호가 있는 라틴어 소문자 n","Latin capital letter n with cedilla":"갈고리 부호가 있는 라틴어 대문자 N","Latin small letter n with cedilla":"갈고리 부호가 있는 라틴어 소문자 n","Latin capital letter n with caron":"반대 곡절 부호가 있는 라틴어 대문자 N","Latin small letter n with caron":"반대 곡절 부호가 있는 라틴어 소문자 n","Latin small letter n preceded by apostrophe":"아포스트로피 다음에 있는 라틴어 소문자 n","Latin capital letter eng":"라틴어 대문자 엥","Latin small letter eng":"라틴어 소문자 엥","Latin capital letter o with macron":"장음 부호가 있는 라틴어 대문자 O","Latin small letter o with macron":"장음 부호가 있는 라틴어 소문자 o","Latin capital letter o with breve":"반달점 부호가 있는 라틴어 대문자 O","Latin small letter o with breve":"반달점 부호가 있는 라틴어 소문자 o","Latin capital letter o with double acute":"이중 양음 부호가 있는 라틴어 대문자 O","Latin small letter o with double acute":"이중 양음 부호가 있는 라틴어 소문자 o","Latin capital ligature oe":"라틴어 대문자 합자 OE","Latin small ligature oe":"라틴어 소문자 합자 oe","Latin capital letter r with acute":"양음 부호가 있는 라틴어 대문자 R","Latin small letter r with acute":"양음 부호가 있는 라틴어 소문자 r","Latin capital letter r with cedilla":"갈고리 부호가 있는 라틴어 대문자 R","Latin small letter r with cedilla":"갈고리 부호가 있는 라틴어 소문자 r","Latin capital letter r with caron":"반대 곡절 부호가 있는 라틴어 대문자 R","Latin small letter r with caron":"반대 곡절 부호가 있는 라틴어 소문자 r","Latin capital letter s with acute":"양음 부호가 있는 라틴어 대문자 S","Latin small letter s with acute":"양음 부호가 있는 라틴어 소문자 s","Latin capital letter s with circumflex":"곡절 부호가 있는 라틴어 대문자 S","Latin small letter s with circumflex":"곡절 부호가 있는 라틴어 소문자 s","Latin capital letter s with cedilla":"갈고리 부호가 있는 라틴어 대문자 S","Latin small letter s with cedilla":"갈고리 부호가 있는 라틴어 소문자 s","Latin capital letter s with caron":"반대 곡절 부호가 있는 라틴어 대문자 S","Latin small letter s with caron":"반대 곡절 부호가 있는 라틴어 소문자 s","Latin capital letter t with cedilla":"갈고리 부호가 있는 라틴어 대문자 T","Latin small letter t with cedilla":"갈고리 부호가 있는 라틴어 소문자 t","Latin capital letter t with caron":"반대 곡절 부호가 있는 라틴어 대문자 T","Latin small letter t with caron":"반대 곡절 부호가 있는 라틴어 소문자 t","Latin capital letter t with stroke":"획 부호가 있는 라틴어 대문자 T","Latin small letter t with stroke":"획 부호가 있는 라틴어 소문자 t","Latin capital letter u with tilde":"물결 부호가 있는 라틴어 대문자 U","Latin small letter u with tilde":"물결 부호가 있는 라틴어 소문자 u","Latin capital letter u with macron":"장음 부호가 있는 라틴어 대문자 U","Latin small letter u with macron":"장음 부호가 있는 라틴어 소문자 u","Latin capital letter u with breve":"반달점 부호가 있는 라틴어 대문자 U","Latin small letter u with breve":"반달점 부호가 있는 라틴어 소문자 u","Latin capital letter u with ring above":"위에 고리가 있는 라틴어 대문자 U","Latin small letter u with ring above":"위에 고리가 있는 라틴어 소문자 u","Latin capital letter u with double acute":"이중 양음 부호가 있는 라틴어 대문자 U","Latin small letter u with double acute":"이중 양음 부호가 있는 라틴어 소문자 u","Latin capital letter u with ogonek":"꼬리 부호가 있는 라틴어 대문자 U","Latin small letter u with ogonek":"꼬리 부호가 있는 라틴어 소문자 u","Latin capital letter w with circumflex":"곡절 부호가 있는 라틴어 대문자 W","Latin small letter w with circumflex":"곡절 부호가 있는 라틴어 소문자 w","Latin capital letter y with circumflex":"곡절 부호가 있는 라틴어 대문자 Y","Latin small letter y with circumflex":"곡절 부호가 있는 라틴어 소문자 y","Latin capital letter y with diaeresis":"분음 부호가 있는 라틴어 대문자 Y","Latin capital letter z with acute":"양음 부호가 있는 라틴어 대문자 Z","Latin small letter z with acute":"양음 부호가 있는 라틴어 소문자 z","Latin capital letter z with dot above":"위에 점 부호가 있는 라틴어 대문자 Z","Latin small letter z with dot above":"위에 점 부호가 있는 라틴어 소문자 z","Latin capital letter z with caron":"반대 곡절 부호가 있는 라틴어 대문자 Z","Latin small letter z with caron":"반대 곡절 부호가 있는 라틴어 소문자 z","Latin small letter long s":"라틴어 소문자 긴 s","Less-than sign":"더 작음 기호","Greater-than sign":"더 큼 기호","Less-than or equal to":"더 작거나 같음","Greater-than or equal to":"더 크거나 같음","En dash":"엔 대시","Em dash":"엠 대시",Macron:"장음 부호",Overline:"윗줄","Degree sign":"도 기호","Minus sign":"빼기 기호","Plus-minus sign":"더하기 빼기 기호","Division sign":"나누기 기호","Fraction slash":"분수 슬래시","Multiplication sign":"곱하기 기호","Latin small letter f with hook":"밑이 구부러진 라틴어 소문자 f",Integral:"적분","N-ary summation":"누계합",Infinity:"무한대","Square root":"제곱근","Tilde operator":"물결표 연산자","Approximately equal to":"대략 같음","Almost equal to":"거의 같음","Not equal to":"같지 않음","Identical to":"합동","Element of":"원소","Not an element of":"원소가 아님","Contains as member":"원소로 포함","N-ary product":"중복순열","Logical and":"논리곱","Logical or":"논리합","Not sign":"부정 기호",Intersection:"교집합",Union:"합집합","Partial differential":"편미분","For all":"전칭","There exists":"존재","Empty set":"공집합",Nabla:"나블라","Asterisk operator":"별표 연산자","Proportional to":"비례",Angle:"각","Vulgar fraction one quarter":"4분의 1","Vulgar fraction one half":"2분의 1","Vulgar fraction three quarters":"4분의 3","Single left-pointing angle quotation mark":"왼쪽 홑화살괄호","Single right-pointing angle quotation mark":"오른쪽 홑화살괄호","Left-pointing double angle quotation mark":"왼쪽 겹화살괄호","Right-pointing double angle quotation mark":"오른쪽 겹화살괄호","Left single quotation mark":"왼쪽 작은따옴표","Right single quotation mark":"오른쪽 작은따옴표","Left double quotation mark":"왼쪽 큰따옴표","Right double quotation mark":"오른쪽 큰따옴표","Single low-9 quotation mark":"낮은 홑따옴표","Double low-9 quotation mark":"낮은 겹따옴표","Inverted exclamation mark":"역느낌표","Inverted question mark":"역물음표","Two dot leader":"두 점 줄임표","Horizontal ellipsis":"세 점 줄임표","Double dagger":"겹칼표","Per mille sign":"퍼 마일 기호","Per ten thousand sign":"만분율 기호","Double exclamation mark":"겹느낌표","Question exclamation mark":"물음표 느낌표","Exclamation question mark":"느낌표 물음표","Double question mark":"겹물음표","Copyright sign":"저작권 기호","Registered sign":"등록 상표 기호","Trade mark sign":"상표 기호","Section sign":"구역 기호","Paragraph sign":"단락 기호","Reversed paragraph sign":"반전된 단락 기호","Show source":"소스 표시","Show blocks":"블록 표시","Select all":"전체 선택","Disable editing":"편집 비활성화","Enable editing":"편집 활성화","Previous editable region":"이전 편집 가능한 구역","Next editable region":"다음 편집 가능한 구역","Navigate editable regions":"편집 가능한 구역 탐색","Remove Format":"서식 지우기","Page break":"페이지 나누기","media widget":"미디어 위젯","Media URL":"미디어 URL","Paste the media URL in the input.":"미디어 URL을 입력해주세요.","Tip: Paste the URL into the content to embed faster.":"팁: URL을 붙여넣으면 더 빨리 삽입할 수 있습니다.","The URL must not be empty.":"URL이 비어있을 수 없습니다.","This media URL is not supported.":"이 미디어 URL은 지원되지 않습니다.","Insert media":"미디어 삽입",Media:"미디어","Media toolbar":"미디어 툴바","Open media in new tab":"새 탭에서 미디어 열기","Media embed":"미디어 ㅅ","Numbered List":"번호 목록","Bulleted List":"불릿 목록","To-do List":"확인 목록","Bulleted list styles toolbar":"글머리 기호 목록 스타일 도구 모음","Numbered list styles toolbar":"번호 목록 스타일 도구 모음","Toggle the disc list style":"흰 원형 목록 스타일 전환","Toggle the circle list style":"검은 원형 목록 스타일 전환","Toggle the square list style":"검은 사각형 목록 스타일 전환","Toggle the decimal list style":"십진수 목록 스타일 전환","Toggle the decimal with leading zero list style":"앞에 0이 붙는 십진수 목록 스타일 전환","Toggle the lower–roman list style":"소문자 로마자 목록 스타일 전환","Toggle the upper–roman list style":"대문자 로마자 목록 스타일 전환","Toggle the lower–latin list style":"소문자 알파벳 목록 스타일 전환","Toggle the upper–latin list style":"대문자 알파벳 목록 스타일 전환",Disc:"검은 원형",Circle:"흰 원형",Square:"검은 사각형",Decimal:"십진수","Decimal with leading zero":"앞에 0이 붙는 십진수","Lower–roman":"소문자 로마자","Upper-roman":"대문자 로마자","Lower-latin":"소문자 알파벳","Upper-latin":"대문자 알파벳","List properties":"목록 속성","Start at":"시작 번호","Invalid start index value.":"잘못된 시작 인덱스 값입니다.","Start index must be greater than 0.":"시작 번호는 0보다 커야 합니다.","Reversed order":"역순","Keystrokes that can be used in a list":"목록에서 사용할 수 있는 키 입력","Increase list item indent":"목록 항목 들여쓰기 늘리기","Decrease list item indent":"목록 항목 들여쓰기 줄이기","Entering a to-do list":"할 일 목록 입력하는 중","Leaving a to-do list":"할 일 목록 남기는 중",Unlink:"링크 삭제",Link:"링크","Link URL":"링크 주소","Link URL must not be empty.":"링크 URL은 비워둘 수 없습니다.","Link image":"사진 링크","Edit link":"링크 편집","Open link in new tab":"새 탭에서 링크 열기","Open in a new tab":"새 탭에서 열기",Downloadable:"다운로드 가능","Create link":"링크 생성","Move out of a link":"링크 밖으로 이동","Link properties":"링크 속성","Displayed text":"표시 텍스트","No links available":"사용 가능한 링크 없음",Language:"언어","Choose language":"언어 선택","Remove language":"언어 제거","Increase indent":"들여쓰기 늘리기","Decrease indent":"들여쓰기 줄이기","image widget":"사진 위젯","Wrap text":"텍스트 줄 바꿈","Break text":"텍스트 분리","In line":"줄 안에","Side image":"본문 옆에 배치","Full size image":"꽉 찬 크기","Left aligned image":"왼쪽 정렬","Centered image":"가운데 정렬","Right aligned image":"오른쪽 정렬","Change image text alternative":"대체 문구 변경","Text alternative":"대체 문구","Enter image caption":"사진 설명을 입력하세요","Insert image":"사진 삽입","Replace image":"이미지 교체","Upload from computer":"컴퓨터에서 업로드","Replace from computer":"컴퓨터에서 교체","Upload image from computer":"컴퓨터에서 이미지 업로드","Image from computer":"컴퓨터에서 이미지 가져오기","From computer":"컴퓨터에서","Replace image from computer":"컴퓨터에서 이미지 교체","Upload failed":"업로드 실패","You have no image upload permissions.":"이미지를 업로드할 수 있는 권한이 없습니다.","Image toolbar":"사진 툴바","Resize image":"사진 크기 조절","Resize image to %0":"사진의 크기를 %0으로 조절","Resize image to the original size":"사진을 원래 크기로 돌려놓기","Resize image (in %0)":"이미지 크기 조정하기(%0 이내)",Original:"원본","Custom image size":"사용자 지정 이미지 크기",Custom:"사용자 지정","Image resize list":"사진 크기 목록","Insert image via URL":"URL로 이미지 삽입","Insert via URL":"URL 버튼으로 이미지 삽입","Image via URL":"URL 메뉴를 통한 이미지 삽입","Via URL":"이미지 메뉴에서 URL을 통한 이미지 삽입","Update image URL":"이미지 URL 업데이트","Caption for the image":"이미지용 캡션","Caption for image: %0":"이미지용 캡션: %0","The value must not be empty.":"값은 비워둘 수 없습니다.","The value should be a plain number.":"일반 숫자로 된 값을 입력해야 합니다.","Uploading image":"이미지 업로드 중","Image upload complete":"이미지 업로드 완료","Error during image upload":"이미지 업로드 중에 오류 발생",Image:"이미지 삽입 기능으로 삽입된 위젯","Image Resize":"이미지 크기 조절","Text Alternative":"대체 텍스트","HTML object":"HTML 오브젝트","Insert HTML":"HTML 삽입","HTML snippet":"HTML 코드 조각","Paste raw HTML here...":"원시 HTML을 여기에 붙여넣으세요...","Edit source":"소스 편집","Save changes":"변경사항 저장","No preview available":"미리보기를 이용할 수 없습니다","Empty snippet content":"빈 코드 조각 내용","Horizontal line":"수평선","Yellow marker":"노란색 마커","Green marker":"초록색 마커","Pink marker":"분홍색 마커","Blue marker":"파란색 마커","Red pen":"빨간색 펜","Green pen":"초록색 펜","Remove highlight":"강조 제거",Highlight:"강조","Text highlight toolbar":"글자 강조 툴바",Heading:"제목","Choose heading":"제목 선택","Heading 1":"제목 1","Heading 2":"제목 2","Heading 3":"제목 3","Heading 4":"제목 4","Heading 5":"제목 5","Heading 6":"제목 6","Type your title":"제목을 입력해주세요","Type or paste your content here.":"여기에 내용을 입력하거나 붙여넣으세요.","Enter fullscreen mode":"전체 화면으로 보기","Leave fullscreen mode":"전체 화면 나가기","Fullscreen mode":"전체 화면 모드","Toggle fullscreen mode":"전체 화면 모드 전환","Document outline":"문서 외곽선","Connected users":"참여 사용자","Font Size":"글자 크기",Tiny:"매우 작은",Small:"작은",Big:"큰",Huge:"매우 큰","Font Family":"글꼴 집합",Default:"기본","Font Color":"글자 색깔","Font Background Color":"글자 배경 색깔","Document colors":"문서 색깔들","Find and replace":"찾기 및 바꾸기","Find in text…":"텍스트에서 찾기...",Find:"찾기","Previous result":"이전 결과","Next result":"다음 결과",Replace:"바꾸기","Replace all":"모두 바꾸기","Match case":"대/소문자 구분","Whole words only":"전체 단어만","Replace with…":"바꿀 내용...","Text to find must not be empty.":"찾을 텍스트를 입력해야 합니다.","Tip: Find some text first in order to replace it.":"팁: 바꾸려는 텍스트를 먼저 찾으세요.","Advanced options":"고급 옵션","Find in the document":"문서에서 찾기","Insert a soft break (a <code><br></code> element)":"줄 바꿈 삽입(<code><br></code> 요소)","Insert a hard break (a new paragraph)":"단락 바꿈 삽입(새 단락)",Emoji:"이모지","Show all emoji...":"모든 이모지 표시...","Find an emoji (min. 2 characters)":"이모지 찾기(최소 2자)",'No emojis were found matching "%0".':'"%0"에 대한 이모지를 찾을 수 없습니다.',"Keep on typing to see the emoji.":"이모지를 보려면 계속 입력하세요.","The query must contain at least two characters.":"쿼리에는 2자 이상이 포함되어야 합니다.","Smileys & Expressions":"스마일 및 표정","Gestures & People":"제스처 및 사람","Animals & Nature":"동물 및 자연","Food & Drinks":"음식 및 음료","Travel & Places":"여행 및 장소",Activities:"활동",Objects:"사물",Symbols:"기호",Flags:"깃발","Select skin tone":"피부색 선택","Default skin tone":"기본 피부색","Light skin tone":"밝은 피부색","Medium Light skin tone":"약간 밝은 피부색","Medium skin tone":"중간 피부색","Medium Dark skin tone":"약간 어두운 피부색","Dark skin tone":"어두운 피부색","Emoji picker":"이모지 선택",Cancel:"취소",Clear:"지우기","Remove color":"색깔 제거","Restore default":"기본값 복원",Save:"저장","Show more items":"더보기","%0 of %1":"%0 / %1","Cannot upload file:":"파일 업로드할 수 없음: ","Rich Text Editor. Editing area: %0":"리치 텍스트 편집기. 편집 영역: %0","Insert with file manager":"파일 관리자를 사용하여 삽입","Replace with file manager":"파일 관리자를 사용하여 교체","Insert image with file manager":"파일 관리자를 사용하여 이미지 삽입","Replace image with file manager":"파일 관리자를 사용하여 이미지 교체",File:"파일","With file manager":"파일 관리 버튼으로 이미지 삽입","Toggle caption off":"캡션 지우기","Toggle caption on":"캡션 넣기","Content editing keystrokes":"콘텐츠 편집 키 입력","These keyboard shortcuts allow for quick access to content editing features.":"이러한 키보드 단축키를 사용하면 콘텐츠 편집 기능을 빠르게 사용할 수 있습니다.","User interface and content navigation keystrokes":"사용자 인터페이스 및 콘텐츠 탐색 키 입력","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"다음 키 입력을 사용하여 CKEditor 5 사용자 인터페이스를 더 효율적으로 탐색하세요.","Close contextual balloons, dropdowns, and dialogs":"상황별 풍선, 드롭다운, 대화 상자 닫기","Open the accessibility help dialog":"접근성 도움말 대화 상자 열기","Move focus between form fields (inputs, buttons, etc.)":"양식 필드(입력, 버튼 등) 간에 포커스 이동","Move focus to the menu bar, navigate between menu bars":"메뉴 표시줄로 포커스 이동, 메뉴 표시줄 탐색","Move focus to the toolbar, navigate between toolbars":"도구 모음으로 포커스 이동, 도구 모음 간 탐색","Navigate through the toolbar or menu bar":"도구 모음 또는 메뉴 표시줄 탐색","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"현재 포커스가 맞춰진 버튼을 실행합니다. 편집기 콘텐츠와 상호 작용하는 버튼을 실행하면 포커스가 다시 콘텐츠로 이동합니다.",Accept:"수락",Paragraph:"문단","Color picker":"색상 선택기","Please try a different phrase or check the spelling.":"다른 문구를 사용해 보시거나 철자를 확인해 주세요.",Source:"소스",Insert:"삽입",Update:"업데이트",Back:"뒤로","Insert code block":"코드 블럭 삽입","Plain text":"평문","Leaving %0 code snippet":"%0 코드 스니펫 남기는 중","Entering %0 code snippet":"%0 코드 스니펫 입력하는 중","Entering code snippet":"코드 스니펫 입력하는 중","Leaving code snippet":"코드 스니펫 남기는 중","Code block":"코드 블록","Copy selected content":"선택된 콘텐츠 복사","Paste content":"콘텐츠 붙여넣기","Paste content as plain text":"콘텐츠를 일반 텍스트로 붙여넣기","Insert image or file":"사진이나 파일을 삽입","Could not obtain resized image URL.":"크기가 조절된 사진의 URL을 가져오지 못했습니다.","Selecting resized image failed":"크기가 조절된 이미지 선택 실패","Could not insert image at the current position.":"현재 위치에 사진을 삽입할 수 없습니다.","Inserting image failed":"사진 삽입 실패",Bookmark:"책갈피","Edit bookmark":"책갈피 편집","Remove bookmark":"책갈피 제거","Bookmark name":"책갈피 이름","Enter the bookmark name without spaces.":"공백 없이 책갈피 이름을 입력하세요.","Bookmark must not be empty.":"책갈피 이름은 비워 둘 수 없습니다.","Bookmark name cannot contain space characters.":"책갈피 이름에는 공백이 포함될 수 없습니다.","Bookmark name already exists.":"책갈피 이름이 이미 존재합니다.","bookmark widget":"책갈피 위젯","Bookmark toolbar":"북마크 도구 모음",Bookmarks:"북마크","No bookmarks available.":"사용 가능한 북마크가 없습니다.","Scroll to bookmark":"북마크로 이동","Open file manager":"파일 관리자 열기","Cannot determine a category for the uploaded file.":"업로드된 파일의 카테고리를 확인할 수 없습니다.","Cannot access default workspace.":"기본 작업 공간에 액세스할 수 없습니다.","You have no image editing permissions.":"이미지를 편집할 수 있는 권한이 없습니다.","Edit image":"이미지 편집","Processing the edited image.":"편집한 이미지를 처리 중입니다.","Server failed to process the image.":"서버가 이미지를 처리하지 못했습니다.","Failed to determine category of edited image.":"편집한 이미지의 카테고리를 결정하지 못했습니다.","Block quote":"인용 단락",Bold:"굵게",Italic:"기울임꼴",Underline:"밑줄",Code:"코드",Strikethrough:"취소선",Subscript:"아래 첨자",Superscript:"위 첨자","Italic text":"기울인 텍스트","Move out of an inline code style":"인라인 코드 스타일 밖으로 이동","Bold text":"굵은 텍스트","Underline text":"텍스트 밑줄","Strikethrough text":"텍스트 취소선","Saving changes":"변경된 내용을 저장하고 있습니다","Revert autoformatting action":"자동 서식 작업 되돌리기","Align left":"왼쪽 정렬","Align right":"오른쪽 정렬","Align center":"가운데 정렬",Justify:"양쪽 정렬","Text alignment":"텍스트 정렬","Text alignment toolbar":"텍스트 정렬 툴바"},getPluralForm(n){return 0}}};const lB={pt:{dictionary:{"Words: %0":"Palavras: %0","Characters: %0":"Caracteres: %0","Widget toolbar":"Barra de ferramentas do widget","Insert paragraph before block":"Inserir parágrafo antes do bloco","Insert paragraph after block":"Inserir parágrafo após o bloco","Press Enter to type after or press Shift + Enter to type before the widget":"Prima Enter para escrever depois ou Shift + Enter para escrever antes do widget","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Batimentos de teclas que podem ser utilizados quando um widget é selecionado (por exemplo: imagem, tabela, etc.)","Insert a new paragraph directly after a widget":"Inserir um novo parágrafo diretamente após um widget","Insert a new paragraph directly before a widget":"Inserir um novo parágrafo diretamente antes de um widget","Move the caret to allow typing directly before a widget":"Mover o ponto de inserção para permitir escrever diretamente antes de um widget","Move the caret to allow typing directly after a widget":"Mover o ponto de inserção para permitir escrever diretamente após um widget","Move focus from an editable area back to the parent widget":"Deslocar o foco de uma área editável de volta para o widget principal","Upload in progress":"Carregamento em progresso",Undo:"Desfazer",Redo:"Refazer","Rich Text Editor":"Editor de texto avançado","Edit block":"Editar bloco","Click to edit block":"Clique para editar o bloco","Drag to move":"Arraste para mover",Next:"Seguinte",Previous:"Anterior","Editor toolbar":"Barra de ferramentas do editor","Dropdown toolbar":"Barra de ferramentas do menu pendente","Dropdown menu":"Menu suspenso",Black:"Preto","Dim grey":"Cinzento-escuro",Grey:"Cinzento","Light grey":"Cinzento-claro",White:"Branco",Red:"Vermelho",Orange:"Laranja",Yellow:"Amarelo","Light green":"Verde-claro",Green:"Verde",Aquamarine:"Verde-azulado",Turquoise:"Turquesa","Light blue":"Azul-claro",Blue:"Azul",Purple:"Roxo","Editor block content toolbar":"Barra de ferramentas de edição do conteúdo de blocos","Editor contextual toolbar":"Barra de ferramentas contextual de edição",HEX:"HEX","No results found":"Nenhum resultado encontrado","No searchable items":"Nenhum item pesquisável","Editor dialog":"Diálogo do editor",Close:"Fechar","Help Contents. To close this dialog press ESC.":"Conteúdos de ajuda. Para fechar esta caixa de diálogo, prima ESC.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Abaixo, encontra-se uma lista de atalhos de teclado que podem ser utilizados no editor.","(may require <kbd>Fn</kbd>)":"(pode exigir <kbd>Fn</kbd>)",Accessibility:"Acessibilidade","Accessibility help":"Ajuda de acessibilidade","Press %0 for help.":"Para obter ajuda, pressione %0.","Move focus in and out of an active dialog window":"Mover o foco para dentro e para fora de uma janela de diálogo ativa",MENU_BAR_MENU_FILE:"Ficheiro",MENU_BAR_MENU_EDIT:"Editar",MENU_BAR_MENU_VIEW:"Visualizar",MENU_BAR_MENU_INSERT:"Inserir",MENU_BAR_MENU_FORMAT:"Formatação",MENU_BAR_MENU_TOOLS:"Ferramentas",MENU_BAR_MENU_HELP:"Ajuda",MENU_BAR_MENU_TEXT:"Texto",MENU_BAR_MENU_FONT:"Tipo de letra","Editor menu bar":"Barra de menu do editor",'Please enter a valid color (e.g. "ff0000").':'Introduza uma cor válida (por ex. "ff0000").',"Insert table":"Inserir tabela","Header column":"Coluna de cabeçalho","Insert column left":"Inserir coluna à esquerda","Insert column right":"Inserir coluna à direita","Delete column":"Eliminar coluna","Select column":"Selecionar coluna",Column:"Coluna","Header row":"Linha de cabeçalho","Insert row below":"Inserir linha abaixo","Insert row above":"Inserir linha acima","Delete row":"Eliminar linha","Select row":"Selecionar linha",Row:"Linha","Merge cell up":"Unir célula acima","Merge cell right":"Unir célula à direita","Merge cell down":"Unir célula abaixo","Merge cell left":"Unir célula à esquerda","Split cell vertically":"Dividir célula verticalmente","Split cell horizontally":"Dividir célula horizontalmente","Merge cells":"Fundir células","Table toolbar":"Barra de ferramentas da tabela","Table properties":"Propriedades da tabela","Cell properties":"Propriedades da célula",Border:"Borda",Style:"Estilo",Width:"Largura",Height:"Altura",Color:"Cor",Background:"Fundo",Padding:"Espaçamento",Dimensions:"Dimensões","Table cell text alignment":"Alinhamento de texto das células da tabela",Alignment:"Alinhamento","Horizontal text alignment toolbar":"Barra de ferramentas do alinhamento horizontal de texto","Vertical text alignment toolbar":"Barra de ferramentas do alinhamento vertical de texto","Table alignment toolbar":"Barra de ferramentas do alinhamento da tabela",None:"Nenhum",Solid:"Sólido",Dotted:"Pontilhado",Dashed:"Tracejado",Double:"Duplo",Groove:"Sulcos",Ridge:"Rebordo",Inset:"Interior",Outset:"Exterior","Align cell text to the left":"Alinhar texto da célula à esquerda","Align cell text to the center":"Alinhar texto da célula ao centro","Align cell text to the right":"Alinhar texto da célula à direita","Justify cell text":"Justificar texto da célula","Align cell text to the top":"Alinhar texto da célula no topo","Align cell text to the middle":"Alinhar texto da célula ao meio","Align cell text to the bottom":"Alinhar texto da célula no fundo","Align table to the left":"Alinhar tabela à esquerda","Center table":"Centrar tabela","Align table to the right":"Alinhar tabela à direita",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'A cor é inválida. Tente "#FF0000" ou "rgb(255,0,0)" ou "vermelho".','The value is invalid. Try "10px" or "2em" or simply "2".':'O valor é inválido. Tente "10px" ou "2em" ou simplesmente "2".',"Enter table caption":"Introduzir legenda da tabela","Keystrokes that can be used in a table cell":"Batimentos de teclas que podem ser utilizados numa célula de tabela","Move the selection to the next cell":"Mover a seleção para a célula seguinte","Move the selection to the previous cell":"Mover a seleção para a célula anterior","Insert a new table row (when in the last cell of a table)":"Inserir uma nova linha de tabela (quando o utilizador estiver na última célula de uma tabela)","Navigate through the table":"Navegar pela tabela",Table:"Tabela","Insert table layout":"Inserir esquema da tabela","Table layout":"Esquema da tabela","Layout table":"Tabela de esquemas","Content table":"Tabela de conteúdo","Choose table type":"Escolher tipo de tabela","Table type":"Tipo de tabela","Table type options":"Opções tipo de tabela",Styles:"Estilos","Multiple styles":"Vários estilos","Block styles":"Estilos de blocos","Text styles":"Estilos de texto","Special characters":"Carateres especiais",Category:"Categoria",All:"Todos",Arrows:"Setas",Currency:"Moeda",Latin:"Latinos",Mathematical:"Matemáticos",Text:"Texto","leftwards simple arrow":"seta simples para a esquerda","rightwards simple arrow":"seta simples para a direita","upwards simple arrow":"seta simples para cima","downwards simple arrow":"seta simples para baixo","leftwards double arrow":"seta dupla para a esquerda","rightwards double arrow":"seta dupla para a direita","upwards double arrow":"seta dupla para cima","downwards double arrow":"seta dupla para baixo","leftwards dashed arrow":"seta tracejada para a esquerda","rightwards dashed arrow":"seta tracejada para a direita","upwards dashed arrow":"seta tracejada para cima","downwards dashed arrow":"seta tracejada para baixo","leftwards arrow to bar":"seta para a esquerda contra uma barra","rightwards arrow to bar":"seta para a direita contra uma barra","upwards arrow to bar":"seta para cima contra uma barra","downwards arrow to bar":"seta para baixo contra uma barra","up down arrow with base":"seta bidirecional vertical com base","back with leftwards arrow above":'"back" com seta para a esquerda em cima',"end with leftwards arrow above":'"end" com seta para a esquerda em cima',"on with exclamation mark with left right arrow above":'"on" com sinal de exclamação com seta para a direita e para a esquerda em cima',"soon with rightwards arrow above":'"soon" com seta para a direita em cima',"top with upwards arrow above":'"Top" com seta para cima em cima',"Dollar sign":"Sinal de Dólar","Euro sign":"Sinal de Euro","Yen sign":"Sinal de iene","Pound sign":"Sinal de libra","Cent sign":"Sinal de cêntimo","Euro-currency sign":"Sinal monetário do euro","Colon sign":"Sinal de colombo","Cruzeiro sign":"Sinal de cruzeiro","French franc sign":"Sinal de franco francês","Lira sign":"Sinal de lira","Currency sign":"Sinal monetário","Bitcoin sign":"Sinal de bitcoin","Mill sign":"Sinal de mill","Naira sign":"Sinal de naira","Peseta sign":"Sinal de peseta","Rupee sign":"Sinal de rupia","Won sign":"Sinal de won","New sheqel sign":"Sinal de novo sheqel","Dong sign":"Sinal de dong","Kip sign":"Sinal de kip","Tugrik sign":"Sinal de tugrique","Drachma sign":"Sinal de dracma","German penny sign":"Sinal de fénigue alemão","Peso sign":"Sinal de peso","Guarani sign":"Sinal de guarani","Austral sign":"Sinal de austral","Hryvnia sign":"Sinal de grívnia","Cedi sign":"Sinal de cedi","Livre tournois sign":"Sinal de libra de tours","Spesmilo sign":"Sinal de spesmilo","Tenge sign":"Sinal de tengue","Indian rupee sign":"Sinal de rupia indiana","Turkish lira sign":"Sinal de lira turca","Nordic mark sign":"Sinal de marca nórdica","Manat sign":"Sinal de manat","Ruble sign":"Sinal de rublo","Latin capital letter a with macron":"Latim - letra maiúscula a com mácron","Latin small letter a with macron":"Latim - letra minúscula a com mácron","Latin capital letter a with breve":"Latim - letra maiúscula a com breve","Latin small letter a with breve":"Latim - letra minúscula a com breve","Latin capital letter a with ogonek":"Latim - letra maiúscula a com ogonek","Latin small letter a with ogonek":"Latim - letra minúscula a com ogonek","Latin capital letter c with acute":"Latim - letra maiúscula c com acento agudo","Latin small letter c with acute":"Latim - letra minúscula c com acento agudo","Latin capital letter c with circumflex":"Latim - letra maiúscula c com acento circunflexo","Latin small letter c with circumflex":"Latim - letra minúscula c com acento circunflexo","Latin capital letter c with dot above":"Latim - letra maiúscula c com um ponto por cima","Latin small letter c with dot above":"Latim - letra minúscula c com um ponto por cima","Latin capital letter c with caron":"Latim - letra maiúscula c com cáron","Latin small letter c with caron":"Latim - letra minúscula c com cáron","Latin capital letter d with caron":"Latim - letra maiúscula d com cáron","Latin small letter d with caron":"Latim - letra minúscula d com cáron","Latin capital letter d with stroke":"Latim - letra maiúscula d cortada por um traço","Latin small letter d with stroke":"Latim - letra minúscula d cortada por um traço","Latin capital letter e with macron":"Latim - letra maiúscula e com mácron","Latin small letter e with macron":"Latim - letra minúscula e com mácron","Latin capital letter e with breve":"Latim - letra maiúscula e com breve","Latin small letter e with breve":"Latim - letra minúscula e com breve","Latin capital letter e with dot above":"Latim - letra maiúscula e com um ponto por cima","Latin small letter e with dot above":"Latim - letra minúscula e com um ponto por cima","Latin capital letter e with ogonek":"Latim - letra maiúscula e com ogonek","Latin small letter e with ogonek":"Latim - letra minúscula e com ogonek","Latin capital letter e with caron":"Latim - letra maiúscula e com cáron","Latin small letter e with caron":"Latim - letra minúscula e com cáron","Latin capital letter g with circumflex":"Latim - letra maiúscula g com acento circunflexo","Latin small letter g with circumflex":"Latim - letra minúscula g com acento circunflexo","Latin capital letter g with breve":"Latim - letra maiúscula g com breve","Latin small letter g with breve":"Latim - letra minúscula g com breve","Latin capital letter g with dot above":"Latim - letra maiúscula g com um ponto por cima","Latin small letter g with dot above":"Latim - letra minúscula g com um ponto por cima","Latin capital letter g with cedilla":"Latim - letra maiúscula g com cedilha","Latin small letter g with cedilla":"Latim - letra minúscula g com cedilha","Latin capital letter h with circumflex":"Latim - letra maiúscula h com acento circunflexo","Latin small letter h with circumflex":"Latim - letra minúscula h com acento circunflexo","Latin capital letter h with stroke":"Latim - letra maiúscula h cortada por um traço","Latin small letter h with stroke":"Latim - letra minúscula h cortada por um traço","Latin capital letter i with tilde":"Latim - letra maiúscula i com til","Latin small letter i with tilde":"Latim - letra minúscula i com til","Latin capital letter i with macron":"Latim - letra maiúscula i com mácron","Latin small letter i with macron":"Latim - letra minúscula i com mácron","Latin capital letter i with breve":"Latim - letra maiúscula i com breve","Latin small letter i with breve":"Latim - letra minúscula i com breve","Latin capital letter i with ogonek":"Latim - letra maiúscula i com ogonek","Latin small letter i with ogonek":"Latim - letra minúscula i com ogonek","Latin capital letter i with dot above":"Latim - letra maiúscula i com um ponto por cima","Latin small letter dotless i":"Latim - letra minúscula i, sem ponto","Latin capital ligature ij":"Latim - digrama das letras maiúsculas ligadas ij","Latin small ligature ij":"Latim - digrama das letras minúsculas ligadas ij","Latin capital letter j with circumflex":"Latim - letra maiúscula j com acento circunflexo","Latin small letter j with circumflex":"Latim - letra minúscula j com acento circunflexo","Latin capital letter k with cedilla":"Latim - letra maiúscula k com cedilha","Latin small letter k with cedilla":"Latim - letra minúscula k com cedilha","Latin small letter kra":"Latim - letra minúscula kra (pequeno k)","Latin capital letter l with acute":"Latim - letra maiúscula l com acento agudo","Latin small letter l with acute":"Latim - letra minúscula l com acento agudo","Latin capital letter l with cedilla":"Latim - letra maiúscula l com cedilha","Latin small letter l with cedilla":"Latim - letra minúscula l com cedilha","Latin capital letter l with caron":"Latim - letra maiúscula l com cáron","Latin small letter l with caron":"Latim - letra minúscula l com cáron","Latin capital letter l with middle dot":"Latim - letra maiúscula l com ponto central","Latin small letter l with middle dot":"Latim - letra minúscula l com ponto central","Latin capital letter l with stroke":"Latim - letra maiúscula l cortada por um traço","Latin small letter l with stroke":"Latim - letra minúscula l cortada por um traço","Latin capital letter n with acute":"Latim - letra maiúscula n com acento agudo","Latin small letter n with acute":"Latim - letra minúscula n com acento agudo","Latin capital letter n with cedilla":"Latim - letra maiúscula n com cedilha","Latin small letter n with cedilla":"Latim - letra minúscula n com cedilha","Latin capital letter n with caron":"Latim - letra maiúscula n com cáron","Latin small letter n with caron":"Latim - letra minúscula n com cáron","Latin small letter n preceded by apostrophe":"Latim - letra minúscula n precedida por um apóstrofo","Latin capital letter eng":"Latim - letra maiúscula eng (fonema velar nasal)","Latin small letter eng":"Latim - letra minúscula eng (fonema velar nasal)","Latin capital letter o with macron":"Latim - letra maiúscula o com mácron","Latin small letter o with macron":"Latim - letra minúscula o com mácron","Latin capital letter o with breve":"Latim - letra maiúscula o com breve","Latin small letter o with breve":"Latim - letra minúscula o com breve","Latin capital letter o with double acute":"Latim - letra maiúscula o com acento agudo duplo","Latin small letter o with double acute":"Latim - letra minúscula o com acento agudo duplo","Latin capital ligature oe":"Latim - digrama das letras maiúsculas ligadas oe","Latin small ligature oe":"Latim - digrama das letras minúsculas ligadas oe","Latin capital letter r with acute":"Latim - letra maiúscula r com acento agudo","Latin small letter r with acute":"Latim - letra minúscula r com acento agudo","Latin capital letter r with cedilla":"Latim - letra maiúscula r com cedilha","Latin small letter r with cedilla":"Latim - letra minúscula r com cedilha","Latin capital letter r with caron":"Latim - letra maiúscula r com cáron","Latin small letter r with caron":"Latim - letra minúscula r com cáron","Latin capital letter s with acute":"Latim - letra maiúscula s com acento agudo","Latin small letter s with acute":"Latim - letra minúscula s com acento agudo","Latin capital letter s with circumflex":"Latim - letra maiúscula s com acento circunflexo","Latin small letter s with circumflex":"Latim - letra minúscula s com acento circunflexo","Latin capital letter s with cedilla":"Latim - letra maiúscula s com cedilha","Latin small letter s with cedilla":"Latim - letra minúscula s com cedilha","Latin capital letter s with caron":"Latim - letra maiúscula s com cáron","Latin small letter s with caron":"Latim - letra minúscula s com cáron","Latin capital letter t with cedilla":"Latim - letra maiúscula t com cedilha","Latin small letter t with cedilla":"Latim - letra minúscula t com cedilha","Latin capital letter t with caron":"Latim - letra maiúscula t com cáron","Latin small letter t with caron":"Latim - letra minúscula t com cáron","Latin capital letter t with stroke":"Latim - letra maiúscula t cortada por um traço","Latin small letter t with stroke":"Latim - letra minúscula t cortada por um traço","Latin capital letter u with tilde":"Latim - letra maiúscula u com til","Latin small letter u with tilde":"Latim - letra minúscula u com til","Latin capital letter u with macron":"Latim - letra maiúscula u com mácron","Latin small letter u with macron":"Latim - letra minúscula u com mácron","Latin capital letter u with breve":"Latim - letra maiúscula u com breve","Latin small letter u with breve":"Latim - letra minúscula u com breve","Latin capital letter u with ring above":"Latim - letra maiúscula u com círculo por cima","Latin small letter u with ring above":"Latim - letra minúscula u com círculo por cima","Latin capital letter u with double acute":"Latim - letra maiúscula u com acento agudo duplo","Latin small letter u with double acute":"Latim - letra minúscula u com acento agudo duplo","Latin capital letter u with ogonek":"Latim - letra maiúscula u com ogonek","Latin small letter u with ogonek":"Latim - letra minúscula u com ogonek","Latin capital letter w with circumflex":"Latim - letra maiúscula w com acento circunflexo","Latin small letter w with circumflex":"Latim - letra minúscula w com acento circunflexo","Latin capital letter y with circumflex":"Latim - letra maiúscula y com acento circunflexo","Latin small letter y with circumflex":"Latim - letra minúscula y com acento circunflexo","Latin capital letter y with diaeresis":"Latim - letra maiúscula y com trema","Latin capital letter z with acute":"Latim - letra maiúscula z com acento agudo","Latin small letter z with acute":"Latim - letra minúscula z com acento agudo","Latin capital letter z with dot above":"Latim - letra maiúscula z com um ponto por cima","Latin small letter z with dot above":"Latim - letra minúscula z com um ponto por cima","Latin capital letter z with caron":"Latim - letra maiúscula z com cáron","Latin small letter z with caron":"Latim - letra minúscula z com cáron","Latin small letter long s":"Latim - s prolongado (símbolo do fonema fricativo alveolar surdo)","Less-than sign":"Sinal de menor","Greater-than sign":"Sinal de maior","Less-than or equal to":"Menor que ou igual a","Greater-than or equal to":"Maior que ou igual a","En dash":"Traço","Em dash":"Travessão",Macron:"Mácron",Overline:"Linha sobreposta","Degree sign":"Sinal de grau","Minus sign":"Sinal de subtração","Plus-minus sign":"Sinal de adição-subtração","Division sign":"Sinal de divisão","Fraction slash":"Barra de fração","Multiplication sign":"Sinal de multiplicação","Latin small letter f with hook":"Latim - letra minúscula f com gancho",Integral:"Inteiro","N-ary summation":"N-ésimo somatório",Infinity:"Infinito","Square root":"Raiz quadrada","Tilde operator":"Operador de til","Approximately equal to":"Aproximadamente igual a","Almost equal to":"Quase igual a","Not equal to":"Diferente de","Identical to":"Idêntico a","Element of":"Elemento de","Not an element of":"Não é um elemento de","Contains as member":"Contém como membro","N-ary product":"N-ésimo produto","Logical and":"E lógico","Logical or":"Ou lógico","Not sign":"Sinal de negação",Intersection:"Interseção",Union:"União","Partial differential":"Diferencial parcial","For all":"Para todo","There exists":"Existe","Empty set":"Conjunto vazio",Nabla:"Nabla","Asterisk operator":"Operador asterisco","Proportional to":"Proporcional a",Angle:"Ângulo","Vulgar fraction one quarter":"Fração comum - um quarto","Vulgar fraction one half":"Fração comum - um meio","Vulgar fraction three quarters":"Fração comum - três quartos","Single left-pointing angle quotation mark":"Plica esquerda em ângulo","Single right-pointing angle quotation mark":"Plica direita em ângulo","Left-pointing double angle quotation mark":"Aspas esquerdas em ângulo","Right-pointing double angle quotation mark":"Aspas direitas em ângulo","Left single quotation mark":"Plica esquerda","Right single quotation mark":"Plica direita","Left double quotation mark":"Aspas esquerdas","Right double quotation mark":"Aspas direitas","Single low-9 quotation mark":"Plica curva inferior","Double low-9 quotation mark":"Aspas curvas inferiores","Inverted exclamation mark":"Ponto de exclamação invertido","Inverted question mark":"Ponto de interrogação invertido","Two dot leader":"Dois pontos de seguimento","Horizontal ellipsis":"Reticências horizontais","Double dagger":"Óbelo duplo","Per mille sign":"Sinal de permilagem","Per ten thousand sign":"Razão de um para dez mil","Double exclamation mark":"Ponto de exclamação duplo","Question exclamation mark":"Sinal de exclamação interrogativa","Exclamation question mark":"Sinal de interrogação exclamativa","Double question mark":"Duplo ponto de interrogação","Copyright sign":"Sinal de copyright","Registered sign":"Sinal de registado","Trade mark sign":"Sinal de marca comercial","Section sign":"Sinal de secção","Paragraph sign":"Sinal de parágrafo","Reversed paragraph sign":"Sinal de parágrafo invertido","Show source":"Mostrar fonte","Show blocks":"Mostrar blocos","Select all":"Selecionar todos","Disable editing":"Desativar edição","Enable editing":"Ativar edição","Previous editable region":"Região editável anterior","Next editable region":"Região editável seguinte","Navigate editable regions":"Navegar regiões editáveis","Remove Format":"Remover formatação","Page break":"Quebra de página","media widget":"Miniaplicação de media","Media URL":"URL de media","Paste the media URL in the input.":"Cole o URL de média no input.","Tip: Paste the URL into the content to embed faster.":"Dica: Cole o URL no conteúdo para incorporar mais rapidamente.","The URL must not be empty.":"O URL não pode ficar vazio.","This media URL is not supported.":"Este URL de media não é suportado.","Insert media":"Inserir media",Media:"Multimédia","Media toolbar":"Barra de ferramentas de media","Open media in new tab":"Abrir ficheiro multimédia em novo separador","Media embed":"Incorporar média","Numbered List":"Lista ordenada","Bulleted List":"Lista não ordenada","To-do List":"Lista de tarefas","Bulleted list styles toolbar":"Barra de ferramentas de estilos de lista de itens","Numbered list styles toolbar":"Barra de ferramentas de estilos de lista numerada","Toggle the disc list style":"Alternar para estilo de lista de discos","Toggle the circle list style":"Alternar para estilo de lista de círculos","Toggle the square list style":"Alternar para estilo de lista de quadrados","Toggle the decimal list style":"Alternar para estilo de lista decimal","Toggle the decimal with leading zero list style":"Alternar para estilo de lista decimal com zero inicial","Toggle the lower–roman list style":"Alternar para estilo de lista de números romanos minúsculos","Toggle the upper–roman list style":"Alternar para estilo de lista de números romanos maiúsculos","Toggle the lower–latin list style":"Alternar para estilo de lista de latim minúsculo","Toggle the upper–latin list style":"Alternar para estilo de lista de latim maiúsculo",Disc:"Disco",Circle:"Círculo",Square:"Quadrado",Decimal:"Decimal","Decimal with leading zero":"Decimal com zero inicial","Lower–roman":"Romano minúsculo","Upper-roman":"Romano maiúsculo","Lower-latin":"Latim minúsculo","Upper-latin":"Latim maiúsculo","List properties":"Propriedades da lista","Start at":"Começa em","Invalid start index value.":"Valor de índice inicial inválido.","Start index must be greater than 0.":"O índice inicial tem de ser superior a 0.","Reversed order":"Ordem inversa","Keystrokes that can be used in a list":"Batimentos de teclas que podem ser utilizados numa lista","Increase list item indent":"Aumentar o avanço de um item de lista","Decrease list item indent":"Diminuir o avanço de um item de lista","Entering a to-do list":"Introdução de uma lista de afazeres","Leaving a to-do list":"A sair de uma lista de afazeres",Unlink:"Desligar",Link:"Hiperligação","Link URL":"URL da ligação","Link URL must not be empty.":"O URL da ligação não pode estar em branco.","Link image":"Imagem da hiperligação","Edit link":"Editar hiperligação","Open link in new tab":"Abrir hiperligação num novo separador","Open in a new tab":"Abrir num novo separador",Downloadable:"Descarregável","Create link":"Criar ligação","Move out of a link":"Sair de uma ligação","Link properties":"Propriedades de ligação","Displayed text":"Texto exibido","No links available":"Sem ligações disponíveis",Language:"Idioma","Choose language":"Escolher idioma","Remove language":"Remover idioma","Increase indent":"Aumentar indentação","Decrease indent":"Diminuir indentação","image widget":"módulo de imagem","Wrap text":"Envolver texto","Break text":"Quebrar texto","In line":"Em linha","Side image":"Imagem lateral","Full size image":"Imagem em tamanho completo","Left aligned image":"Imagem alinhada à esquerda","Centered image":"Imagem centrada","Right aligned image":"Imagem alinhada à direita","Change image text alternative":"Alterar texto alternativo da imagem","Text alternative":"Texto alternativo","Enter image caption":"Indicar legenda da imagem","Insert image":"Inserir imagem","Replace image":"Substituir imagem","Upload from computer":"Carregar a partir do computador","Replace from computer":"Substituir a partir do computador","Upload image from computer":"Carregar imagem a partir do computador","Image from computer":"Imagem a partir do computador","From computer":"Do computador","Replace image from computer":"Substituir imagem a partir do computador","Upload failed":"Falha ao carregar","You have no image upload permissions.":"Não tem permissões para carregar imagens.","Image toolbar":"Barra de ferramentas de imagem","Resize image":"Redimensionar imagem","Resize image to %0":"Redimensionar imagem para %0","Resize image to the original size":"Redimensionar imagem para tamanho original","Resize image (in %0)":"Redimensionar imagem (em %0)",Original:"Original","Custom image size":"Personalizar o tamanho da imagem",Custom:"Personalizar","Image resize list":"Lista de redimensionamento de imagem","Insert image via URL":"Inserir imagem através de URL","Insert via URL":"Inserir através de endereço URL","Image via URL":"Imagem através de endereço URL","Via URL":"Através de endereço URL","Update image URL":"Atualizar URL da imagem","Caption for the image":"Legenda da imagem","Caption for image: %0":"Legenda da imagem: %0","The value must not be empty.":"O valor não pode estar em branco.","The value should be a plain number.":"O valor deve ser um número inteiro.","Uploading image":"A carregar imagem","Image upload complete":"Carregamento da imagem concluído","Error during image upload":"Erro durante o carregamento da imagem",Image:"Imagem","Image Resize":"Redimensionar imagem","Text Alternative":"Alternativa de texto","HTML object":"Objeto HTML","Insert HTML":"Inserir HTML","HTML snippet":"Fragmento de HTML","Paste raw HTML here...":"Colar aqui HTML em bruto...","Edit source":"Editar fonte","Save changes":"Guardar alterações","No preview available":"Pré-visualização indisponível","Empty snippet content":"Conteúdo de fragmento vazio","Horizontal line":"Linha horizontal","Yellow marker":"Marcador amarelo","Green marker":"Marcador verde","Pink marker":"Marcador rosa","Blue marker":"Marcador azul","Red pen":"Caneta vermelha","Green pen":"Caneta verde","Remove highlight":"Remover realce",Highlight:"Realçar","Text highlight toolbar":"Barra de ferramentas de realces de texto",Heading:"Cabeçalho","Choose heading":"Escolher cabeçalho","Heading 1":"Cabeçalho 1","Heading 2":"Cabeçalho 2","Heading 3":"Cabeçalho 3","Heading 4":"Cabeçalho 4","Heading 5":"Cabeçalho 5","Heading 6":"Cabeçalho 6","Type your title":"Introduza o seu título","Type or paste your content here.":"Digite ou cole o seu conteúdo aqui.","Enter fullscreen mode":"Entrar em modo de ecrã inteiro","Leave fullscreen mode":"Sair de modo de ecrã inteiro","Fullscreen mode":"Modo de ecrã inteiro","Toggle fullscreen mode":"Alternar modo de ecrã inteiro","Document outline":"Esboço do documento","Connected users":"Utilizadores ligados","Font Size":"Tamanho da fonte",Tiny:"Mínima",Small:"Pequena",Big:"Grande",Huge:"Enorme","Font Family":"Família de Fontes",Default:"Padrão","Font Color":"Cor da Fonte","Font Background Color":"Cor de Fundo da Fonte","Document colors":"Cores do documento","Find and replace":"Encontrar e substituir","Find in text…":"Encontrar no texto...",Find:"Encontrar","Previous result":"Resultado anterior","Next result":"Resultado seguinte",Replace:"Substituir","Replace all":"Substituir todos","Match case":"Corresponder maiúsculas/minúsculas","Whole words only":"Apenas palavras inteiras","Replace with…":"Substituir por...","Text to find must not be empty.":"O texto a pesquisar não pode estar vazio.","Tip: Find some text first in order to replace it.":"Dica: Encontre algum texto primeiro para poder substituí-lo.","Advanced options":"Opções avançadas","Find in the document":"Localizar no documento","Insert a soft break (a <code><br></code> element)":"Inserir uma quebra suave (um elemento <code><br></code>)","Insert a hard break (a new paragraph)":"Inserir uma quebra brusca (um novo parágrafo)",Emoji:"Emoji","Show all emoji...":"Mostrar todos os emojis...","Find an emoji (min. 2 characters)":"Encontrar um emoji (mín. 2 carateres)",'No emojis were found matching "%0".':'Não foi encontrado nenhum emoji que corresponda a "%0".',"Keep on typing to see the emoji.":"Continue a escrever para ver o emoji.","The query must contain at least two characters.":"A consulta deve conter, pelo menos, dois carateres.","Smileys & Expressions":"Smiley e expressões","Gestures & People":"Gestos e pessoas","Animals & Nature":"Animais e natureza","Food & Drinks":"Comida e bebidas","Travel & Places":"Viagens e lugares",Activities:"Atividades",Objects:"Objetos",Symbols:"Símbolos",Flags:"Bandeiras","Select skin tone":"Selecionar tom de pele","Default skin tone":"Tom de pele padrão","Light skin tone":"Tom de pele claro","Medium Light skin tone":"Tom de pele médio claro","Medium skin tone":"Tom de pele médio","Medium Dark skin tone":"Tom de pele médio escuro","Dark skin tone":"Tom de pele escuro","Emoji picker":"Seletor de emojis",Cancel:"Cancelar",Clear:"Limpar","Remove color":"Remover cor","Restore default":"Restaurar predefinição",Save:"Guardar","Show more items":"Mostrar mais itens","%0 of %1":"%0 de %1","Cannot upload file:":"Não foi possível carregar o ficheiro:","Rich Text Editor. Editing area: %0":"Editor de Texto Formatado. Área de edição: %0","Insert with file manager":"Inserir com o gestor de ficheiros","Replace with file manager":"Substituir com o gestor de ficheiros","Insert image with file manager":"Inserir imagem com o gestor de ficheiros","Replace image with file manager":"Substituir imagem com o gestor de ficheiros",File:"Ficheiro","With file manager":"Com o gestor de ficheiros","Toggle caption off":"Desativar legenda","Toggle caption on":"Ativar legenda","Content editing keystrokes":"Batimentos de teclas para editar o conteúdo","These keyboard shortcuts allow for quick access to content editing features.":"Estes atalhos de teclado permitem aceder rapidamente às funcionalidades de edição de conteúdo.","User interface and content navigation keystrokes":"Batimentos de teclas para navegar pela interface de utilizador e pelo conteúdo","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Para navegar de forma mais eficiente pela interface de utilizador do CKEditor 5, utilize os seguintes batimentos de teclas.","Close contextual balloons, dropdowns, and dialogs":"Fechar balões contextuais, menus suspensos e caixas de diálogo","Open the accessibility help dialog":"Abrir a caixa de diálogo de ajuda de acessibilidade","Move focus between form fields (inputs, buttons, etc.)":"Mover o foco entre os campos do formulário (entradas, botões, etc.)","Move focus to the menu bar, navigate between menu bars":"Mover o foco para a barra de menu, navegar entre as barras de menu","Move focus to the toolbar, navigate between toolbars":"Mover o foco para a barra de ferramentas, navegar entre barras de ferramentas","Navigate through the toolbar or menu bar":"Navegar pela barra de ferramentas ou pela barra de menu","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Executar o botão atualmente em foco. A execução de botões que interagem com o conteúdo do editor coloca novamente o foco sobre o conteúdo.",Accept:"Aceitar",Paragraph:"Parágrafo","Color picker":"Seletor de cor","Please try a different phrase or check the spelling.":"Tente uma expressão diferente ou verifique a ortografia.",Source:"Fonte",Insert:"Inserir",Update:"Atualizar",Back:"Voltar","Insert code block":"Inserir bloco de citação","Plain text":"Texto simples","Leaving %0 code snippet":"A sair do fragmento de código %0","Entering %0 code snippet":"A introduzir o fragmento de código %0","Entering code snippet":"A introduzir fragmento de código","Leaving code snippet":"A sair do fragmento de código","Code block":"Bloco de código","Copy selected content":"Copiar o conteúdo selecionado","Paste content":"Colar o conteúdo","Paste content as plain text":"Colar o conteúdo como texto sem formatação","Insert image or file":"Inserir imagem ou ficheiro","Could not obtain resized image URL.":"Não é possível obter o URL da imagem redimensionada.","Selecting resized image failed":"A seleção da imagem redimensionada falhou","Could not insert image at the current position.":"Não é possível inserir a imagem na posição atual.","Inserting image failed":"A inserção da imagem falhou",Bookmark:"Marcador","Edit bookmark":"Editar marcador","Remove bookmark":"Remover marcador","Bookmark name":"Nome do marcador","Enter the bookmark name without spaces.":"Introduza o nome do marcador sem espaços.","Bookmark must not be empty.":"O marcador não deve estar vazio.","Bookmark name cannot contain space characters.":"O nome do marcador não pode conter caracteres de espaço.","Bookmark name already exists.":"O nome do marcador já existe.","bookmark widget":"widget de marcador","Bookmark toolbar":"Barra de marcadores",Bookmarks:"Marcadores","No bookmarks available.":"Sem marcadores disponíveis.","Scroll to bookmark":"Ir para o marcador","Open file manager":"Abrir gestor de ficheiros","Cannot determine a category for the uploaded file.":"Não é possível determinar a categoria do ficheiro carregado.","Cannot access default workspace.":"Não é possível aceder ao espaço de trabalho padrão.","You have no image editing permissions.":"Não tem permissões para editar imagens.","Edit image":"Editar imagem","Processing the edited image.":"A processar a imagem editada.","Server failed to process the image.":"O servidor não conseguiu processar a imagem.","Failed to determine category of edited image.":"Não foi possível determinar a categoria da imagem editada.","Block quote":"Bloco de citação",Bold:"Negrito",Italic:"Itálico",Underline:"Sublinhado",Code:"Código",Strikethrough:"Rasurar",Subscript:"Subscrito",Superscript:"Sobrescrito","Italic text":"Texto em itálico","Move out of an inline code style":"Sair de um estilo de código inline","Bold text":"Texto em negrito","Underline text":"Sublinhar texto","Strikethrough text":"Texto rasurado","Saving changes":"A guardar alterações","Revert autoformatting action":"Reverter ação de formatação automática","Align left":"Alinhar à esquerda","Align right":"Alinhar à direita","Align center":"Alinhar ao centro",Justify:"Justificar","Text alignment":"Alinhamento de texto","Text alignment toolbar":"Barra de alinhamento de texto"},getPluralForm(n){return n!=1}}};const cB={ru:{dictionary:{"Words: %0":"Слов: %0","Characters: %0":"Символов: %0","Widget toolbar":"Панель инструментов виджета","Insert paragraph before block":"Вставить параграф перед блоком","Insert paragraph after block":"Вставить параграф после блока","Press Enter to type after or press Shift + Enter to type before the widget":"Нажмите Enter для ввода текста после виджета или нажмите Shift + Enter для ввода текста перед виджетом","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Нажатия клавиш, которые можно использовать при выборе виджета (например: изображение, таблица и т. д.)","Insert a new paragraph directly after a widget":"Вставить новый абзац непосредственно после виджета.","Insert a new paragraph directly before a widget":"Вставить новый абзац непосредственно перед виджетом.","Move the caret to allow typing directly before a widget":"Переместите курсор, чтобы можно было вводить текст непосредственно перед виджетом.","Move the caret to allow typing directly after a widget":"Переместить курсор, чтобы можно было вводить текст сразу после виджета.","Move focus from an editable area back to the parent widget":"Переместите фокус с редактируемой области обратно на родительский виджет","Upload in progress":"Идёт загрузка",Undo:"Отменить",Redo:"Повторить","Rich Text Editor":"Редактор","Edit block":"Редактировать блок","Click to edit block":"Нажмите, чтобы редактировать блок","Drag to move":"Перетащить",Next:"Следующий",Previous:"Предыдущий","Editor toolbar":"Панель инструментов редактора","Dropdown toolbar":"Выпадающая панель инструментов","Dropdown menu":"Раскрывающееся меню",Black:"Чёрный","Dim grey":"Тёмно-серый",Grey:"Серый","Light grey":"Светло-серый",White:"Белый",Red:"Красный",Orange:"Оранжевый",Yellow:"Жёлтый","Light green":"Салатовый",Green:"Зелёный",Aquamarine:"Аквамариновый",Turquoise:"Бирюзовый","Light blue":"Голубой",Blue:"Синий",Purple:"Фиолетовый","Editor block content toolbar":"Панель инструментов редактора","Editor contextual toolbar":"Контекстуальная панель инструментов редактора",HEX:"HEX","No results found":"Результаты не найдены","No searchable items":"Нет элементов для поиска","Editor dialog":"Диалоговое окно редактора",Close:"Закрыть","Help Contents. To close this dialog press ESC.":"Содержание справки. Чтобы закрыть это диалоговое окно, нажмите ESC.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Ниже вы можете найти список сочетаний клавиш, которые можно использовать в редакторе.","(may require <kbd>Fn</kbd>)":"(может требовать <kbd>Fn</kbd>)",Accessibility:"Доступность","Accessibility help":"Помощь по специальным возможностям","Press %0 for help.":"Нажмите %0 для получения помощи.","Move focus in and out of an active dialog window":"Переместить фокус в активное диалоговое окно и обратно.",MENU_BAR_MENU_FILE:"Файл",MENU_BAR_MENU_EDIT:"Редактировать",MENU_BAR_MENU_VIEW:"Посмотреть",MENU_BAR_MENU_INSERT:"Вставить",MENU_BAR_MENU_FORMAT:"Формат",MENU_BAR_MENU_TOOLS:"Инструменты",MENU_BAR_MENU_HELP:"Помощь",MENU_BAR_MENU_TEXT:"Текст",MENU_BAR_MENU_FONT:"Шрифт","Editor menu bar":"Панель меню редактора",'Please enter a valid color (e.g. "ff0000").':'Введите действительный цвет (например, "ff0000").',"Insert table":"Вставить таблицу","Header column":"Столбец заголовков","Insert column left":"Вставить столбец слева","Insert column right":"Вставить столбец справа","Delete column":"Удалить столбец","Select column":"Выбрать столбец",Column:"Столбец","Header row":"Строка заголовков","Insert row below":"Вставить строку ниже","Insert row above":"Вставить строку выше","Delete row":"Удалить строку","Select row":"Выбрать строку",Row:"Строка","Merge cell up":"Объединить с ячейкой сверху","Merge cell right":"Объединить с ячейкой справа","Merge cell down":"Объединить с ячейкой снизу","Merge cell left":"Объединить с ячейкой слева","Split cell vertically":"Разделить ячейку вертикально","Split cell horizontally":"Разделить ячейку горизонтально","Merge cells":"Объединить ячейки","Table toolbar":"Панель инструментов таблицы","Table properties":"Свойства таблицы","Cell properties":"Свойства ячейки",Border:"Граница",Style:"Стиль",Width:"Ширина",Height:"Высота",Color:"Цвет",Background:"Фон",Padding:"Отступ",Dimensions:"Размеры","Table cell text alignment":"Выравнивание текста в ячейке таблицы",Alignment:"Выравнивание","Horizontal text alignment toolbar":"Панель инструментов горизонтального выравнивания текста","Vertical text alignment toolbar":"Панель инструментов вертикального выравнивания текста","Table alignment toolbar":"Панель инструментов выравнивания таблицы",None:"Нет",Solid:"Сплошная",Dotted:"Точечная",Dashed:"Пунктирная",Double:"Двойная",Groove:"Желобчатая",Ridge:"Ребристая",Inset:"Вдавленная",Outset:"Выпуклая","Align cell text to the left":"Выровнять текст по левому краю","Align cell text to the center":"Выровнять текст по центру","Align cell text to the right":"Выровнять текст по правому краю","Justify cell text":"Выровнять текст по ширине","Align cell text to the top":"Выровнять текст ячейки по верхнему краю","Align cell text to the middle":"Выровнять текст ячейки по центру","Align cell text to the bottom":"Выровнять текст ячейки по нижнему краю","Align table to the left":"Выровнять таблицу по левому краю","Center table":"Выровнять таблицу по центру","Align table to the right":"Выровнять таблицу по правому краю",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'Неверный цвет. Попробуйте "#FF0000" или "rgb(255,0,0)" или "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'Неверное значение. Попробуйте "10px" или "2em" или просто "2".',"Enter table caption":"Подпись таблицы","Keystrokes that can be used in a table cell":"Нажатия клавиш, которые можно использовать в ячейке таблицы","Move the selection to the next cell":"Переместить выделение в следующую ячейку","Move the selection to the previous cell":"Переместить выделение на предыдущую ячейку","Insert a new table row (when in the last cell of a table)":"Вставить новую строку таблицы (в последней ячейке таблицы)","Navigate through the table":"Навигация по таблице",Table:"Таблица","Insert table layout":"Вставить табличный макет","Table layout":"Табличный макет","Layout table":"Таблица макетов","Content table":"Таблица содержимого","Choose table type":"Выберите тип таблицы","Table type":"Тип таблицы","Table type options":"Параметры типа таблицы",Styles:"Стили","Multiple styles":"Несколько стилей","Block styles":"Блочные стили","Text styles":"Стиль текста","Special characters":"Спецсимволы",Category:"Категория",All:"Все",Arrows:"Стрелки",Currency:"Валюта",Latin:"Латинские",Mathematical:"Математические",Text:"Текст","leftwards simple arrow":"простая стрелка влево","rightwards simple arrow":"простая стрелка вправо","upwards simple arrow":"простая стрелка вверх","downwards simple arrow":"простая стрелка вниз","leftwards double arrow":"Двойная стрелка влево","rightwards double arrow":"Двойная стрелка вправо","upwards double arrow":"Двойная стрелка вверх","downwards double arrow":"Двойная стрелка вниз","leftwards dashed arrow":"Пунктирная стрелка влево","rightwards dashed arrow":"Пунктирная стрелка вправо","upwards dashed arrow":"Пунктирная стрелка вверх","downwards dashed arrow":"Пунктирная стрелка вниз","leftwards arrow to bar":"Стрелка влево, упирающаяся в планку","rightwards arrow to bar":"Стрелка вправо, упирающаяся в планку","upwards arrow to bar":"Стрелка вверх, упирающаяся в планку","downwards arrow to bar":"Стрелка вниз, упирающаяся в планку","up down arrow with base":"Стрелка вверх и вниз от планки внизу","back with leftwards arrow above":"Стрелка влево над словом BACK (назад)","end with leftwards arrow above":"Стрелка влево над словом END (конец)","on with exclamation mark with left right arrow above":"Стрелка влево и вправо над словом ON! (включить)","soon with rightwards arrow above":"Стрелка вправо над словом SOON (скоро)","top with upwards arrow above":"Стрелка вверх над словом TOP (верх)","Dollar sign":"Символ доллара","Euro sign":"Символ евро","Yen sign":"Символ иены","Pound sign":"Символ фунта стерлингов","Cent sign":"Символ цента","Euro-currency sign":"Символ евровалюты","Colon sign":"Символ двоеточия","Cruzeiro sign":"Символ бразильского крузейро","French franc sign":"Символ французского франка","Lira sign":"Символ лиры","Currency sign":"Символ валюты","Bitcoin sign":"Символ биткоина","Mill sign":"Символ милль","Naira sign":"Символ найры","Peseta sign":"Символ песеты","Rupee sign":"Символ рупии","Won sign":"Символ воны","New sheqel sign":"Символ нового шекеля","Dong sign":"Символ донга","Kip sign":"Символ кипа","Tugrik sign":"Символ тугрика","Drachma sign":"Символ драхмы","German penny sign":"Символ немецкого пенни","Peso sign":"Символ песо","Guarani sign":"Символ гуарани","Austral sign":"Символ аргентинского аустраля","Hryvnia sign":"Символ гривны","Cedi sign":"Символ ганского седи","Livre tournois sign":"Символ турского ливра","Spesmilo sign":"Символ спесмило","Tenge sign":"Символ тенге","Indian rupee sign":"Символ индийской рупии","Turkish lira sign":"Символ турецкой лиры","Nordic mark sign":"Символ скандинавской марки","Manat sign":"Символ маната","Ruble sign":"Символ рубля","Latin capital letter a with macron":"Латинская заглавная буква «A» с макроном","Latin small letter a with macron":"Латинская строчная буква «a» с макроном","Latin capital letter a with breve":"Латинская заглавная буква «A» с бревисом","Latin small letter a with breve":"Латинская строчная буква «a» с бревисом","Latin capital letter a with ogonek":"Латинская заглавная буква «A» с огонеком","Latin small letter a with ogonek":"Латинская строчная буква «a» с огонеком","Latin capital letter c with acute":"Латинская заглавная буква «C» с акутом","Latin small letter c with acute":"Латинская строчная буква «c» с акутом","Latin capital letter c with circumflex":"Латинская заглавная буква «C» с циркумфлексом","Latin small letter c with circumflex":"Латинская строчная буква «c» с циркумфлексом","Latin capital letter c with dot above":"Латинская заглавная буква «C» с точкой сверху","Latin small letter c with dot above":"Латинская строчная буква «c» с точкой сверху","Latin capital letter c with caron":"Латинская заглавная буква «C» с гачеком","Latin small letter c with caron":"Латинская строчная буква «c» с гачеком","Latin capital letter d with caron":"Латинская заглавная буква «D» с гачеком","Latin small letter d with caron":"Латинская строчная буква «d» с гачеком","Latin capital letter d with stroke":"Латинская заглавная буква «D» со штрихом","Latin small letter d with stroke":"Латинская строчная буква «d» со штрихом","Latin capital letter e with macron":"Латинская заглавная буква «E» с макроном","Latin small letter e with macron":"Латинская строчная буква «e» с макроном","Latin capital letter e with breve":"Латинская заглавная буква «E» с бревисом","Latin small letter e with breve":"Латинская строчная буква «e» с бревисом","Latin capital letter e with dot above":"Латинская заглавная буква «E» с точкой сверху","Latin small letter e with dot above":"Латинская строчная буква «e» с точкой сверху","Latin capital letter e with ogonek":"Латинская заглавная буква «E» с огонеком","Latin small letter e with ogonek":"Латинская строчная буква «e» с огонеком","Latin capital letter e with caron":"Латинская заглавная буква «E» с гачеком","Latin small letter e with caron":"Латинская строчная буква «e» с гачеком","Latin capital letter g with circumflex":"Латинская заглавная буква «G» с циркумфлексом","Latin small letter g with circumflex":"Латинская строчная буква «g» с циркумфлексом","Latin capital letter g with breve":"Латинская заглавная буква «G» с бревисом","Latin small letter g with breve":"Латинская строчная буква «g» с бревисом","Latin capital letter g with dot above":"Латинская заглавная буква «G» с точкой сверху","Latin small letter g with dot above":"Латинская строчная буква «g» с точкой сверху","Latin capital letter g with cedilla":"Латинская заглавная буква «G» с седилью","Latin small letter g with cedilla":"Латинская строчная буква «g» с седилью","Latin capital letter h with circumflex":"Латинская заглавная буква «H» с циркумфлексом","Latin small letter h with circumflex":"Латинская строчная буква «h» с циркумфлексом","Latin capital letter h with stroke":"Латинская заглавная буква «H» со штрихом","Latin small letter h with stroke":"Латинская строчная буква «h» со штрихом","Latin capital letter i with tilde":"Латинская заглавная буква «I» с тильдой","Latin small letter i with tilde":"Латинская строчная буква «i» с тильдой","Latin capital letter i with macron":"Латинская заглавная буква «I» с макроном","Latin small letter i with macron":"Латинская строчная буква «i» с макроном","Latin capital letter i with breve":"Латинская заглавная буква «I» с бревисом","Latin small letter i with breve":"Латинская строчная буква «i» с бревисом","Latin capital letter i with ogonek":"Латинская заглавная буква «I» с огонеком","Latin small letter i with ogonek":"Латинская строчная буква «i» с огонеком","Latin capital letter i with dot above":"Латинская заглавная буква «I» с точкой сверху","Latin small letter dotless i":"Латинская строчная буква «i» без точки","Latin capital ligature ij":"Латинская заглавная лигатура «IJ»","Latin small ligature ij":"Латинская строчная лигатура «ij»","Latin capital letter j with circumflex":"Латинская заглавная буква «J» с циркумфлексом","Latin small letter j with circumflex":"Латинская строчная буква «j» с циркумфлексом","Latin capital letter k with cedilla":"Латинская заглавная буква «K» с седилью","Latin small letter k with cedilla":"Латинская строчная буква «k» с седилью","Latin small letter kra":"Латинская строчная буква кра","Latin capital letter l with acute":"Латинская заглавная буква «L» с акутом","Latin small letter l with acute":"Латинская строчная буква «l» с акутом","Latin capital letter l with cedilla":"Латинская заглавная буква «L» с седилью","Latin small letter l with cedilla":"Латинская строчная буква «l» с седилью","Latin capital letter l with caron":"Латинская заглавная буква «L» с гачеком","Latin small letter l with caron":"Латинская строчная буква «l» с гачеком","Latin capital letter l with middle dot":"Латинская заглавная буква «L» с внутристрочной точкой","Latin small letter l with middle dot":"Латинская строчная буква «l» с внутристрочной точкой","Latin capital letter l with stroke":"Латинская заглавная буква «L» со штрихом","Latin small letter l with stroke":"Латинская строчная буква «l» со штрихом","Latin capital letter n with acute":"Латинская заглавная буква «N» с акутом","Latin small letter n with acute":"Латинская строчная буква «n» с акутом","Latin capital letter n with cedilla":"Латинская заглавная буква «N» с седилью","Latin small letter n with cedilla":"Латинская строчная буква «n» с седилью","Latin capital letter n with caron":"Латинская заглавная буква «N» с гачеком","Latin small letter n with caron":"Латинская строчная буква «n» с гачеком","Latin small letter n preceded by apostrophe":"Латинская строчная буква «n» с предшествующим апострофом","Latin capital letter eng":"Латинская заглавная буква энг","Latin small letter eng":"Латинская строчная буква энг","Latin capital letter o with macron":"Латинская заглавная буква «O» с макроном","Latin small letter o with macron":"Латинская строчная буква «o» с макроном","Latin capital letter o with breve":"Латинская заглавная буква «O» с бревисом","Latin small letter o with breve":"Латинская строчная буква «o» с бревисом","Latin capital letter o with double acute":"Латинская заглавная буква «O» с двойным акутом","Latin small letter o with double acute":"Латинская строчная буква «o» с двойным акутом","Latin capital ligature oe":"Латинская заглавная лигатура OE","Latin small ligature oe":"Латинская строчная лигатура oe","Latin capital letter r with acute":"Латинская заглавная буква «R» с акутом","Latin small letter r with acute":"Латинская строчная буква «r» с акутом","Latin capital letter r with cedilla":"Латинская заглавная буква «R» с седилью","Latin small letter r with cedilla":"Латинская строчная буква «r» с седилью","Latin capital letter r with caron":"Латинская заглавная буква «R» с гачеком","Latin small letter r with caron":"Латинская строчная буква «r» с гачеком","Latin capital letter s with acute":"Латинская заглавная буква «S» с акутом","Latin small letter s with acute":"Латинская строчная буква «s» с акутом","Latin capital letter s with circumflex":"Латинская заглавная буква «S» с циркумфлексом","Latin small letter s with circumflex":"Латинская строчная буква «s» с циркумфлексом","Latin capital letter s with cedilla":"Латинская заглавная буква «S» с седилью","Latin small letter s with cedilla":"Латинская строчная буква «s» с седилью","Latin capital letter s with caron":"Латинская заглавная буква «S» с гачеком","Latin small letter s with caron":"Латинская строчная буква «s» с гачеком","Latin capital letter t with cedilla":"Латинская заглавная буква «T» с седилью","Latin small letter t with cedilla":"Латинская строчная буква «t» с седилью","Latin capital letter t with caron":"Латинская заглавная буква «T» с гачеком","Latin small letter t with caron":"Латинская строчная буква «t» с гачеком","Latin capital letter t with stroke":"Латинская заглавная буква «T» со штрихом","Latin small letter t with stroke":"Латинская строчная буква «t» со штрихом","Latin capital letter u with tilde":"Латинская заглавная буква «U» с тильдой","Latin small letter u with tilde":"Латинская строчная буква «u» с тильдой","Latin capital letter u with macron":"Латинская заглавная буква «U» с макроном","Latin small letter u with macron":"Латинская строчная буква «u» с макроном","Latin capital letter u with breve":"Латинская заглавная буква «U» с бревисом","Latin small letter u with breve":"Латинская строчная буква «u» с бревисом","Latin capital letter u with ring above":"Латинская заглавная буква «U» с кружком сверху","Latin small letter u with ring above":"Латинская строчная буква «u» с кружком сверху","Latin capital letter u with double acute":"Латинская заглавная буква «U» с двойным акутом","Latin small letter u with double acute":"Латинская строчная буква «u» с двойным акутом","Latin capital letter u with ogonek":"Латинская заглавная буква «U» с огонеком","Latin small letter u with ogonek":"Латинская строчная буква «u» с огонеком","Latin capital letter w with circumflex":"Латинская заглавная буква «W» с циркумфлексом","Latin small letter w with circumflex":"Латинская строчная буква «w» с циркумфлексом","Latin capital letter y with circumflex":"Латинская заглавная буква «Y» с циркумфлексом","Latin small letter y with circumflex":"Латинская строчная буква «y» с циркумфлексом","Latin capital letter y with diaeresis":"Латинская заглавная буква «Y» с диэрезисом","Latin capital letter z with acute":"Латинская заглавная буква «Z» с акутом","Latin small letter z with acute":"Латинская строчная буква «z» с акутом","Latin capital letter z with dot above":"Латинская заглавная буква «Z» с точкой сверху","Latin small letter z with dot above":"Латинская строчная буква «z» с точкой сверху","Latin capital letter z with caron":"Латинская заглавная буква «Z» с гачеком","Latin small letter z with caron":"Латинская строчная буква «z» с гачеком","Latin small letter long s":"Латинская строчная буква длинная «s»","Less-than sign":"Знак меньше","Greater-than sign":"Знак больше","Less-than or equal to":"Меньше либо равно","Greater-than or equal to":"Больше либо равно","En dash":"Среднее тире","Em dash":"Длинное тире",Macron:"Макрон",Overline:"Надчёркивание","Degree sign":"Знак градуса","Minus sign":"Знак минус","Plus-minus sign":"Знак плюс-минус","Division sign":"Знак деления","Fraction slash":"Дробная наклонная черта","Multiplication sign":"Знак умножения","Latin small letter f with hook":"Латинская строчная буква «f» с хвостиком",Integral:"Интеграл","N-ary summation":"N-арная сумма",Infinity:"Бесконечность","Square root":"Квадратный корень","Tilde operator":"Оператор тильда","Approximately equal to":"Конгруэнтность (геометрическое равенство)","Almost equal to":"Почти равный","Not equal to":"Не равно","Identical to":"Тождественно равно","Element of":"Принадлежит","Not an element of":"Не принадлежит","Contains as member":"Содержит как член","N-ary product":"N-арное произведение","Logical and":"Логическое И","Logical or":"Логическое ИЛИ","Not sign":"Знак отрицания",Intersection:"Пересечение",Union:"Объединение","Partial differential":"Частичный дифференциал","For all":"Для всех","There exists":"Существует","Empty set":"Пустое множество",Nabla:"Набла","Asterisk operator":"Оператор звездочка","Proportional to":"Пропорционально",Angle:"Угол","Vulgar fraction one quarter":"Дробь – одна четверть","Vulgar fraction one half":"Дробь – одна вторая","Vulgar fraction three quarters":"Дробь – три четверти","Single left-pointing angle quotation mark":"Одинарная открывающая (левая) французская угловая кавычка","Single right-pointing angle quotation mark":"Одинарная закрывающая (правая) французская угловая кавычка","Left-pointing double angle quotation mark":"Открывающая левая кавычка «ёлочка»","Right-pointing double angle quotation mark":"Закрывающая правая кавычка «ёлочка»","Left single quotation mark":"Открывающая одинарная кавычка","Right single quotation mark":"Закрывающая одинарная кавычка","Left double quotation mark":"Открывающая двойная кавычка","Right double quotation mark":"Закрывающая двойная кавычка","Single low-9 quotation mark":"Нижняя одинарная открывающая кавычка","Double low-9 quotation mark":"Нижняя двойная открывающая кавычка","Inverted exclamation mark":"Перевернутый восклицательный знак","Inverted question mark":"Перевернутый вопросительный знак","Two dot leader":"Двухточечный пунктир","Horizontal ellipsis":"Многоточие","Double dagger":"Двойной крестик","Per mille sign":"Знак промилле","Per ten thousand sign":"Знак на десять тысяч","Double exclamation mark":"Двойной восклицательный знак","Question exclamation mark":"Вопросительный восклицательный знак","Exclamation question mark":"Восклицательный вопросительный знак","Double question mark":"Двойной вопросительный знак","Copyright sign":"Знак авторского права","Registered sign":"Зарегистрированный товарный знак","Trade mark sign":"Знак торговой марки","Section sign":"Параграф","Paragraph sign":"Знак абзаца","Reversed paragraph sign":"Обратный знак абзаца","Show source":"Показать источник","Show blocks":"Показать блоки","Select all":"Выбрать все","Disable editing":"Отключить редактирование","Enable editing":"Разрешить редактирование","Previous editable region":"Предыдущий редактируемый регион","Next editable region":"Следующий редактируемый регион","Navigate editable regions":"Навигация по редактируемым регионам","Remove Format":"Убрать форматирование","Page break":"Разрыв страницы","media widget":"медиа-виджет","Media URL":"URL медиа","Paste the media URL in the input.":"Вставьте URL медиа в поле ввода.","Tip: Paste the URL into the content to embed faster.":"Подсказка: Вставьте URL в контент для быстрого включения.","The URL must not be empty.":"URL не должен быть пустым.","This media URL is not supported.":"Этот URL медиа не поддерживается.","Insert media":"Вставить медиа",Media:"Медиа","Media toolbar":"Панель инструментов медиа","Open media in new tab":"Откройте медиа в новой вкладке","Media embed":"Внедрение мультимедиа","Numbered List":"Нумерованный список","Bulleted List":"Маркированный список","To-do List":"Список задач","Bulleted list styles toolbar":"Стили маркированного списка","Numbered list styles toolbar":"Стили нумерованного списка","Toggle the disc list style":"Переключить на стиль списка с маркерами в виде закрашенного кружка","Toggle the circle list style":"Переключить на стиль списка с маркерами в виде незакрашенного кружка","Toggle the square list style":"Переключить на стиль списка с квадратными маркерами","Toggle the decimal list style":"Переключить на стиль списка с цифровыми маркерами","Toggle the decimal with leading zero list style":"Переключить на стиль списка с маркерами в виде цифр с нулем в начале","Toggle the lower–roman list style":"Переключить на стиль списка с маркерами в виде строчных римских цифр","Toggle the upper–roman list style":"Переключить на стиль списка с маркерами в виде заглавных римских цифр","Toggle the lower–latin list style":"Переключить на стиль списка с маркерами в виде строчных латинских букв","Toggle the upper–latin list style":"Переключить на стиль списка с маркерами в виде заглавных латинских букв",Disc:"Диск",Circle:"Окружность",Square:"Квадрат",Decimal:"Десятичный","Decimal with leading zero":"Десятичный с ведущим нулем","Lower–roman":"Малые римские","Upper-roman":"Большие римские","Lower-latin":"Малые латинские","Upper-latin":"Большие латинские","List properties":"Свойства списка","Start at":"Начать с","Invalid start index value.":"Недопустимое значение начального индекса.","Start index must be greater than 0.":"Начальный индекс должен быть больше 0.","Reversed order":"Обратный порядок","Keystrokes that can be used in a list":"Нажатия клавиш, которые можно использовать в списке","Increase list item indent":"Увеличить отступ элемента списка","Decrease list item indent":"Уменьшить отступ элемента списка","Entering a to-do list":"Ввод списка текущих дел","Leaving a to-do list":"Оставляем список текущих дел",Unlink:"Убрать ссылку",Link:"Ссылка","Link URL":"Ссылка URL","Link URL must not be empty.":"URL-адрес ссылки не должен быть пустым.","Link image":"Ссылка на изображение","Edit link":"Редактировать ссылку","Open link in new tab":"Открыть ссылку в новой вкладке","Open in a new tab":"Открыть в новой вкладке",Downloadable:"Загружаемые","Create link":"Создать ссылку","Move out of a link":"Выйти из ссылки","Link properties":"Свойства ссылки","Displayed text":"Отображаемый текст","No links available":"Нет доступных ссылок",Language:"Язык","Choose language":"Выбрать язык","Remove language":"Убрать язык","Increase indent":"Увеличить отступ","Decrease indent":"Уменьшить отступ","image widget":"Виджет изображений","Wrap text":"Обтекать текст","Break text":"Разрывать текст","In line":"В тексте","Side image":"Боковое изображение","Full size image":"Оригинальный размер изображения","Left aligned image":"Выравнивание по левому краю","Centered image":"Выравнивание по центру","Right aligned image":"Выравнивание по правому краю","Change image text alternative":"Редактировать альтернативный текст","Text alternative":"Альтернативный текст","Enter image caption":"Подпись к изображению","Insert image":"Вставить изображение","Replace image":"Заменить изображение","Upload from computer":"Загрузить с компьютера","Replace from computer":"Заменить с компьютера","Upload image from computer":"Загрузить изображение с компьютера","Image from computer":"Изображение с компьютера","From computer":"С компьютера","Replace image from computer":"Заменить изображение с компьютера","Upload failed":"Загрузка не выполнена","You have no image upload permissions.":"У вас нет разрешений на загрузку изображений в систему.","Image toolbar":"Панель инструментов изображения","Resize image":"Изменить размер изображения","Resize image to %0":"Изменить размер изображения до %0","Resize image to the original size":"Вернуть размер изображения к оригинальному","Resize image (in %0)":"Изменить размер изображения (в %0)",Original:"Оригинальный","Custom image size":"Пользовательский размер изображения",Custom:"Другое","Image resize list":"Список размеров","Insert image via URL":"Вставить изображение по URL","Insert via URL":"Вставка по URL-адресу","Image via URL":"Изображение по URL-адресу","Via URL":"Через URL-адрес","Update image URL":"Изменить URL изображения","Caption for the image":"Подпись к изображению","Caption for image: %0":"Подпись к изображению: %0","The value must not be empty.":"Значение не должно быть пустым.","The value should be a plain number.":"Значение должно быть простым числом.","Uploading image":"Загрузка изображения","Image upload complete":"Загрузка изображения завершена","Error during image upload":"Ошибка при загрузке изображения",Image:"Изображение","Image Resize":"Изменить размер изображения","Text Alternative":"Альтернативный текст","HTML object":"HTML объект","Insert HTML":"Вставить HTML","HTML snippet":"HTML сниппет","Paste raw HTML here...":"Вставьте HTML код сюда...","Edit source":"Изменить код","Save changes":"Сохранить изменения","No preview available":"Предпросмотр недоступен","Empty snippet content":"Нет контента","Horizontal line":"Горизонтальная линия","Yellow marker":"Выделение жёлтым маркером","Green marker":"Выделение зелёным маркером","Pink marker":"Выделение розовым маркером","Blue marker":"Выделение синим маркером","Red pen":"Красный цвет текста","Green pen":"Зеленый цвет текста","Remove highlight":"Убрать выделение",Highlight:"Выделить","Text highlight toolbar":"Панель инструментов выделения текста",Heading:"Стиль","Choose heading":"Выбор стиля","Heading 1":"Заголовок 1","Heading 2":"Заголовок 2","Heading 3":"Заголовок 3","Heading 4":"Заголовок 4","Heading 5":"Заголовок 5","Heading 6":"Заголовок 6","Type your title":"Введите заголовок","Type or paste your content here.":"Введите или вставьте сюда ваш текст","Enter fullscreen mode":"Войти в полноэкранный режим","Leave fullscreen mode":"Выйти из полноэкранного режима","Fullscreen mode":"Полноэкранный режим","Toggle fullscreen mode":"Переключить полноэкранный режим","Document outline":"Состав документа","Connected users":"Подключенные пользователи","Font Size":"Размер шрифта",Tiny:"Очень мелкий",Small:"Мелкий",Big:"Крупный",Huge:"Очень крупный","Font Family":"Семейство шрифтов",Default:"По умолчанию","Font Color":"Цвет шрифта","Font Background Color":"Цвет фона","Document colors":"Цвет страницы","Find and replace":"Найти и заменить","Find in text…":"Найти в тексте",Find:"Найти","Previous result":"Предыдущий результат","Next result":"Следующий результат",Replace:"Заменить","Replace all":"Заменить всё","Match case":"С учетом регистра","Whole words only":"Только слова целиком","Replace with…":"Заменить на...","Text to find must not be empty.":"Искомый текст не должен быть пустым.","Tip: Find some text first in order to replace it.":"Совет: сначала найдите текст, чтобы заменить его.","Advanced options":"Дополнительные параметры","Find in the document":"Найти в документе","Insert a soft break (a <code><br></code> element)":"Вставить мягкий разрыв (элемент <code><br></code>)","Insert a hard break (a new paragraph)":"Вставить жесткий разрыв (новый абзац)",Emoji:"Эмодзи","Show all emoji...":"Показать все эмодзи...","Find an emoji (min. 2 characters)":"Найти эмодзи (мин. 2 символа)",'No emojis were found matching "%0".':'Не найдено ни одного эмодзи, соответствующего "%0".',"Keep on typing to see the emoji.":"Продолжайте набирать текст, чтобы увидеть эмодзи.","The query must contain at least two characters.":"Запрос должен содержать не менее двух символов.","Smileys & Expressions":"Смайлы и эмоции","Gestures & People":"Жесты и люди","Animals & Nature":"Животные и природа","Food & Drinks":"Еда и напитки","Travel & Places":"Путешествия и достопримечательности",Activities:"Развлечения",Objects:"Объекты",Symbols:"Символы",Flags:"Флаги","Select skin tone":"Выберите цвет кожи","Default skin tone":"Цвет кожи по умолчанию","Light skin tone":"Светлый оттенок кожи","Medium Light skin tone":"Средне-светлый оттенок кожи","Medium skin tone":"Средний оттенок кожи","Medium Dark skin tone":"Средне-темный оттенок кожи","Dark skin tone":"Темный оттенок кожи","Emoji picker":"Выбор эмодзи",Cancel:"Отмена",Clear:"Очистить","Remove color":"Убрать цвет","Restore default":"По умолчанию",Save:"Сохранить","Show more items":"Другие инструменты","%0 of %1":"%0 из %1","Cannot upload file:":"Невозможно загрузить файл","Rich Text Editor. Editing area: %0":"Редактор форматированного текста. Область редактирования: %0","Insert with file manager":"Вставка с помощью файлового менеджера","Replace with file manager":"Заменить с помощью файлового менеджера","Insert image with file manager":"Вставить изображение с помощью файлового менеджера","Replace image with file manager":"Заменить изображение с помощью файлового менеджера",File:"Файл","With file manager":"Из менеджера файлов","Toggle caption off":"Выключить описание","Toggle caption on":"Включить описание","Content editing keystrokes":"Клавиши для редактирования контента","These keyboard shortcuts allow for quick access to content editing features.":"Эти сочетания клавиш обеспечивают быстрый доступ к функциям редактирования контента.","User interface and content navigation keystrokes":"Пользовательский интерфейс и клавиши навигации по контенту","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Использовать следующие сочетания клавиш для более эффективной навигации в пользовательском интерфейсе CKEditor 5.","Close contextual balloons, dropdowns, and dialogs":"Закрыть контекстные всплывающие окна, раскрывающиеся списки и диалоговые окна.","Open the accessibility help dialog":"Открыть диалоговое окно справки по специальным возможностям","Move focus between form fields (inputs, buttons, etc.)":"Переместить фокус между полями формы (вводы, кнопки и т. д.)","Move focus to the menu bar, navigate between menu bars":"Переместить фокус на панель меню, перемещаться между панелями меню","Move focus to the toolbar, navigate between toolbars":"Переместить фокус на панель инструментов, перемещаться между панелями инструментов","Navigate through the toolbar or menu bar":"Перемещение по панели инструментов или панели меню","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Активировать кнопку, находящуюся в фокусе. Активирование кнопок, которые взаимодействуют с содержимым редактора, перемещает фокус обратно на содержимое.",Accept:"Принять",Paragraph:"Параграф","Color picker":"Выбор цвета","Please try a different phrase or check the spelling.":"Пожалуйста, попробуйте другую фразу или проверьте правописание.",Source:"Источник",Insert:"Вставить",Update:"Обновить",Back:"Назад","Insert code block":"Вставить код","Plain text":"Простой текст","Leaving %0 code snippet":"Оставляем фрагмент кода %0","Entering %0 code snippet":"Ввод фрагмента кода %0","Entering code snippet":"Ввод фрагмента кода","Leaving code snippet":"Оставляем фрагмент кода","Code block":"Блок кодов","Copy selected content":"Копировать выбранное содержание","Paste content":"Вставить содержание","Paste content as plain text":"Вставить содержанрие в виде обычного текста","Insert image or file":"Вставьте изображение или файл","Could not obtain resized image URL.":"Не удалось получить URL с измененным размером изображения.","Selecting resized image failed":"Выбор изображения с измененным размером не удался","Could not insert image at the current position.":"Нельзя вставить изображение на текущую позицию.","Inserting image failed":"Вставка изображения не удалась",Bookmark:"Закладка","Edit bookmark":"Изменить закладку","Remove bookmark":"Удалить закладку","Bookmark name":"Имя закладки","Enter the bookmark name without spaces.":"Введите имя закладки без пробелов.","Bookmark must not be empty.":"Закладка не должна быть пустой.","Bookmark name cannot contain space characters.":"Имя закладки не может содержать пробелы.","Bookmark name already exists.":"Имя закладки уже существует.","bookmark widget":"виджет закладок","Bookmark toolbar":"Панель инструментов закладок",Bookmarks:"Закладки","No bookmarks available.":"Нет доступных закладок.","Scroll to bookmark":"Прокрутить до закладки","Open file manager":"Открыть менеджер файлов","Cannot determine a category for the uploaded file.":"Не удаётся определить категорию для загруженного файла.","Cannot access default workspace.":"Не удается получить доступ к рабочему пространству по умолчанию.","You have no image editing permissions.":"У вас нет разрешений на редактирование изображений.","Edit image":"Редактировать изображение","Processing the edited image.":"Обработка отредактированного изображения.","Server failed to process the image.":"Серверу не удалось обработать изображение.","Failed to determine category of edited image.":"Не удалось определить категорию отредактированного изображения.","Block quote":"Цитата",Bold:"Жирный",Italic:"Курсив",Underline:"Подчеркнутый",Code:"Исходный код",Strikethrough:"Зачеркнутый",Subscript:"Подстрочный",Superscript:"Надстрочный","Italic text":"Текст курсивом","Move out of an inline code style":"Выйти из встроенного стиля кода","Bold text":"Жирный текст","Underline text":"Подчеркнутый текст","Strikethrough text":"Зачеркнутый текст","Saving changes":"Сохранение изменений","Revert autoformatting action":"Отменить действие автоформатирования","Align left":"Выравнивание по левому краю","Align right":"Выравнивание по правому краю","Align center":"Выравнивание по центру",Justify:"Выравнивание по ширине","Text alignment":"Выравнивание текста","Text alignment toolbar":"Выравнивание"},getPluralForm(n){return n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2}}};const uB={vi:{dictionary:{"Words: %0":"Số chữ: %0","Characters: %0":"Số ký tự: %0","Widget toolbar":"Thanh công cụ tiện ích","Insert paragraph before block":"Chèn đoạn trước khối","Insert paragraph after block":"Chèn đoạn sau khối","Press Enter to type after or press Shift + Enter to type before the widget":"Nhấn Enter để nhập vào sau hoặc nhấn Shift + Enter để nhập vào trước tiện ích","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Tổ hợp phím mà bạn có thể dùng khi một tiện ích được chọn (ví dụ: hình ảnh, bảng, v.v.)","Insert a new paragraph directly after a widget":"Chèn đoạn văn mới ngay sau tiện ích","Insert a new paragraph directly before a widget":"Chèn đoạn văn mới ngay trước tiện ích","Move the caret to allow typing directly before a widget":"Di chuyển dấu sót để cho phép nhập ngay trước một tiện ích","Move the caret to allow typing directly after a widget":"Di chuyển dấu sót để cho phép nhập ngay sau một tiện ích","Move focus from an editable area back to the parent widget":"Di chuyển tiêu điểm từ vùng có thể chỉnh sửa trở lại tiện ích gốc","Upload in progress":"Đang tải lên",Undo:"Hoàn tác",Redo:"Tiếp tục","Rich Text Editor":"Trình soạn thảo văn bản","Edit block":"Chỉnh sửa đoạn","Click to edit block":"Nhấp để sửa khối","Drag to move":"Kéo để di chuyển",Next:"Tiếp theo",Previous:"Quay lại","Editor toolbar":"Thanh công cụ biên tập","Dropdown toolbar":"Thanh công cụ danh mục","Dropdown menu":"Trình đơn thả xuống",Black:"Đen","Dim grey":"Xám mờ",Grey:"Xám","Light grey":"Xám nhạt",White:"Trắng",Red:"Đỏ",Orange:"Cam",Yellow:"Vàng","Light green":"Xanh lá nhạt",Green:"Xanh lá",Aquamarine:"Xanh ngọc biển",Turquoise:"Xanh ngọc bích","Light blue":"Xanh dương",Blue:"Xanh biển",Purple:"Tím","Editor block content toolbar":"Thanh công cụ chỉnh sửa khối nội dung","Editor contextual toolbar":"Thanh công cụ chỉnh sửa theo ngữ cảnh",HEX:"HEX","No results found":"Không tìm thấy kết quả","No searchable items":"Không có mục nào tìm kiếm được","Editor dialog":"Hộp thoại trình biên tập",Close:"Đóng","Help Contents. To close this dialog press ESC.":"Nội dung Trợ giúp. Nhấn phím ESC để đóng hộp thoại này.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Dưới đây, bạn có thể tìm thấy danh sách các phím tắt mà bạn có thể dùng trong trình biên tập này.","(may require <kbd>Fn</kbd>)":"(có thể cần nhấn phím <kbd>Fn</kbd>)",Accessibility:"Trợ năng","Accessibility help":"Trợ giúp về khả năng truy cập","Press %0 for help.":"Nhấn %0 để được trợ giúp.","Move focus in and out of an active dialog window":"Di chuyển tiêu điểm vào và ra khỏi cửa sổ hộp thoại đang kích hoạt",MENU_BAR_MENU_FILE:"Tệp",MENU_BAR_MENU_EDIT:"Chỉnh sửa",MENU_BAR_MENU_VIEW:"Xem",MENU_BAR_MENU_INSERT:"Chèn",MENU_BAR_MENU_FORMAT:"Định dạng",MENU_BAR_MENU_TOOLS:"Công cụ",MENU_BAR_MENU_HELP:"Trợ giúp",MENU_BAR_MENU_TEXT:"Văn bản",MENU_BAR_MENU_FONT:"Phông chữ","Editor menu bar":"Thanh menu Trình soạn thảo",'Please enter a valid color (e.g. "ff0000").':'Vui lòng nhập một màu sắc hợp lệ (ví dụ: "ff0000").',"Insert table":"Tạo bảng","Header column":"Tiêu đề cột","Insert column left":"Thêm cột vào bên trái","Insert column right":"Thêm cột vào bên phải","Delete column":"Xoá cột","Select column":"Chọn cột",Column:"Cột","Header row":"Tiêu đề hàng","Insert row below":"Thêm hàng ở dưới","Insert row above":"Thêm hàng phía trên","Delete row":"Xoá hàng","Select row":"Chọn hàng",Row:"Hàng","Merge cell up":"Sát nhập ô lên trên","Merge cell right":"Sát nhập ô qua phải","Merge cell down":"Sát nhập ô xuống dưới","Merge cell left":"Sát nhập ô qua trái","Split cell vertically":"Tách ô theo chiều dọc","Split cell horizontally":"Tách ô theo chiều ngang","Merge cells":"Sát nhập ô","Table toolbar":"Thanh công cụ bảng","Table properties":"Thuộc tính của bảng","Cell properties":"Thuộc tính của ô",Border:"Viền",Style:"Kiểu",Width:"Rộng",Height:"Cao",Color:"Màu",Background:"Màu nền",Padding:"Cách lề",Dimensions:"Kích thước","Table cell text alignment":"Căn lề văn bản trong ô",Alignment:"Căn lề","Horizontal text alignment toolbar":"Thanh công cụ căn chỉnh văn bản theo chiều ngang","Vertical text alignment toolbar":"Thanh công cụ căn chỉnh văn bản theo chiều dọc","Table alignment toolbar":"Thanh công cụ căn chỉnh bảng",None:"Không có kiểu nào",Solid:"Dạng nét liền",Dotted:"Dạng chấm",Dashed:"Dạng đường đứt nét",Double:"Dạng nét đôi",Groove:"Dạng đường rãnh",Ridge:"Dạng gờ",Inset:"Dạng chìm",Outset:"Dạng nổi","Align cell text to the left":"Căn chỉnh văn bản trong ô về bên trái","Align cell text to the center":"Căn chỉnh văn bản trong ô vào chính giữa","Align cell text to the right":"Căn chỉnh văn bản trong ô về bên phải","Justify cell text":"Căn đều văn bản trong ô","Align cell text to the top":"Căn chỉnh văn bản trong ô lên trên cùng","Align cell text to the middle":"Căn chỉnh văn bản trong ô vào giữa","Align cell text to the bottom":"Căn chỉnh văn bản trong ô xuống dưới cùng","Align table to the left":"Căn chỉnh bảng về phía bên trái","Center table":"Căn chỉnh bảng vào chính giữa","Align table to the right":"Căn chỉnh bảng về phía bên phải",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'Màu này không hợp lệ. Hãy thử "#FF0000" hoặc "rgb(255,0,0)" hoặc "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'Giá trị này không hợp lệ. Hãy thử "10px" hoặc "2em" hoặc chỉ "2".',"Enter table caption":"Nhập chú thích cho bảng","Keystrokes that can be used in a table cell":"Tổ hợp phím mà bạn có thể dùng trong một ô bảng","Move the selection to the next cell":"Di chuyển vùng chọn đến ô tiếp theo","Move the selection to the previous cell":"Di chuyển vùng chọn đến ô trước đó","Insert a new table row (when in the last cell of a table)":"Chèn một hàng mới trong bảng (khi ở ô cuối cùng của bảng)","Navigate through the table":"Điều hướng qua bảng",Table:"Bảng","Insert table layout":"Chèn bố cục bảng","Table layout":"Bố cục bảng","Layout table":"Bảng bố cục","Content table":"Bảng nội dung","Choose table type":"Chọn loại bảng","Table type":"Loại bảng","Table type options":"Tùy chọn loại bảng",Styles:"Kiểu","Multiple styles":"Nhiều kiểu","Block styles":"Kiểu của khối","Text styles":"Kiểu văn bản","Special characters":"Các ký tự đặc biệt",Category:"Danh mục",All:"Tất cả",Arrows:"Mũi tên",Currency:"Tiền tệ",Latin:"Latin",Mathematical:"Toán học",Text:"Văn bản","leftwards simple arrow":"mũi tên đơn giản chỉ sang trái","rightwards simple arrow":"mũi tên đơn giản chỉ sang phải","upwards simple arrow":"mũi tên đơn giản chỉ lên trên","downwards simple arrow":"mũi tên đơn giản chỉ xuống dưới","leftwards double arrow":"mũi tên kép hướng sang trái","rightwards double arrow":"mũi tên kép hướng sang phải","upwards double arrow":"mũi tên kép hướng lên","downwards double arrow":"mũi tên kép hướng xuống","leftwards dashed arrow":"mũi tên đứt nét hướng sang trái","rightwards dashed arrow":"mũi tên đứt nét hướng sang phải","upwards dashed arrow":"mũi tên đứt nét hướng lên","downwards dashed arrow":"mũi tên đứt nét hướng xuống","leftwards arrow to bar":"mũi tên hướng sang trái về phía thanh","rightwards arrow to bar":"mũi tên hướng sang phải về phía thanh","upwards arrow to bar":"mũi tên hướng lên trên về phía thanh","downwards arrow to bar":"mũi tên hướng xuống dưới về phía thanh","up down arrow with base":"mũi tên lên xuống có đế","back with leftwards arrow above":"back với mũi tên hướng sang trái ở trên","end with leftwards arrow above":"end với mũi tên hướng sang trái ở trên","on with exclamation mark with left right arrow above":"on với dấu chấm than và mũi tên trái phải ở trên","soon with rightwards arrow above":"soon với mũi tên hướng sang phải ở trên","top with upwards arrow above":"top với mũi tên hướng lên ở trên","Dollar sign":"Ký hiệu Đô la","Euro sign":"Ký hiệu Euro","Yen sign":"Ký hiệu Yên Nhật","Pound sign":"Ký hiệu Bảng Anh","Cent sign":"Ký hiệu Cent","Euro-currency sign":"Ký hiệu tiền tệ Euro","Colon sign":"Ký hiệu Colon","Cruzeiro sign":"Ký hiệu Cruzeiro","French franc sign":"Ký hiệu franc Pháp","Lira sign":"Ký hiệu Lira","Currency sign":"Ký hiệu tiền tệ","Bitcoin sign":"Ký hiệu Bitcoin","Mill sign":"Ký hiệu Mill","Naira sign":"Ký hiệu Naira","Peseta sign":"Ký hiệu Peseta","Rupee sign":"Ký hiệu Rupee","Won sign":"Ký hiệu Won","New sheqel sign":"Ký hiệu Shekel mới","Dong sign":"Ký hiệu Đồng","Kip sign":"Ký hiệu Kip","Tugrik sign":"Ký hiệu Tögrög","Drachma sign":"Ký hiệu Drachma","German penny sign":"Ký hiệu penny Đức","Peso sign":"Ký hiệu Peso","Guarani sign":"Ký hiệu Guarani","Austral sign":"Ký hiệu Austral","Hryvnia sign":"Ký hiệu Hryvnia","Cedi sign":"Ký hiệu Cedi","Livre tournois sign":"Ký hiệu Livre tournois","Spesmilo sign":"Ký hiệu Spesmilo","Tenge sign":"Ký hiệu Tenge","Indian rupee sign":"Ký hiệu rupee Ấn Độ","Turkish lira sign":"Ký hiệu lira Thổ Nhĩ Kỳ","Nordic mark sign":"Ký hiệu Mác Bắc Âu","Manat sign":"Ký hiệu Manat","Ruble sign":"Ký hiệu Rúp","Latin capital letter a with macron":"Chữ cái Latinh a viết hoa với dấu trường âm","Latin small letter a with macron":"Chữ cái Latinh a viết thường với dấu trường âm","Latin capital letter a with breve":"Chữ cái Latinh a viết hoa với dấu trăng","Latin small letter a with breve":"Chữ cái Latinh a viết thường với dấu trăng","Latin capital letter a with ogonek":"Chữ cái Latinh a viết hoa với dấu ogonek","Latin small letter a with ogonek":"Chữ cái Latinh a viết thường với dấu ogonek","Latin capital letter c with acute":"Chữ cái Latinh c viết hoa với dấu sắc","Latin small letter c with acute":"Chữ cái Latinh c viết thường với dấu sắc","Latin capital letter c with circumflex":"Chữ cái Latinh c viết hoa với dấu mũ","Latin small letter c with circumflex":"Chữ cái Latinh c viết thường với dấu mũ","Latin capital letter c with dot above":"Chữ cái Latinh c viết hoa với dấu chấm ở trên","Latin small letter c with dot above":"Chữ cái Latinh c viết thường với dấu chấm ở trên","Latin capital letter c with caron":"Chữ cái Latinh c viết hoa với dấu mũ ngược","Latin small letter c with caron":"Chữ cái Latinh c viết thường với dấu mũ ngược","Latin capital letter d with caron":"Chữ cái Latinh d viết hoa với dấu mũ ngược","Latin small letter d with caron":"Chữ cái Latinh d viết thường với dấu mũ ngược","Latin capital letter d with stroke":"Chữ cái Latinh d viết hoa với dấu gạch ngang","Latin small letter d with stroke":"Chữ cái Latinh d viết thường với dấu gạch ngang","Latin capital letter e with macron":"Chữ cái Latinh e viết hoa với dấu trường âm","Latin small letter e with macron":"Chữ cái Latinh e viết thường với dấu trường âm","Latin capital letter e with breve":"Chữ cái Latinh e viết hoa với dấu trăng","Latin small letter e with breve":"Chữ cái Latinh e viết thường với dấu trăng","Latin capital letter e with dot above":"Chữ cái Latinh e viết hoa với dấu chấm ở trên","Latin small letter e with dot above":"Chữ cái Latinh e viết thường với dấu chấm ở trên","Latin capital letter e with ogonek":"Chữ cái Latinh e viết hoa với dấu ogonek","Latin small letter e with ogonek":"Chữ cái Latinh e viết thường với dấu ogonek","Latin capital letter e with caron":"Chữ cái Latinh e viết hoa với dấu mũ ngược","Latin small letter e with caron":"Chữ cái Latinh e viết thường với dấu mũ ngược","Latin capital letter g with circumflex":"Chữ cái Latinh g viết hoa với dấu mũ","Latin small letter g with circumflex":"Chữ cái Latinh g viết thường với dấu mũ","Latin capital letter g with breve":"Chữ cái Latinh g viết hoa với dấu trăng","Latin small letter g with breve":"Chữ cái Latinh g viết thường với dấu trăng","Latin capital letter g with dot above":"Chữ cái Latinh g viết hoa với dấu chấm ở trên","Latin small letter g with dot above":"Chữ cái Latinh g viết thường với dấu chấm ở trên","Latin capital letter g with cedilla":"Chữ cái Latinh g viết hoa với dấu móc dưới","Latin small letter g with cedilla":"Chữ cái Latinh g viết thường với dấu móc dưới","Latin capital letter h with circumflex":"Chữ cái Latinh h viết hoa với dấu mũ","Latin small letter h with circumflex":"Chữ cái Latinh h viết thường với dấu mũ","Latin capital letter h with stroke":"Chữ cái Latinh h viết hoa với dấu gạch ngang","Latin small letter h with stroke":"Chữ cái Latinh h viết thường với dấu gạch ngang","Latin capital letter i with tilde":"Chữ cái Latinh i viết hoa với dấu ngã","Latin small letter i with tilde":"Chữ cái Latinh i viết thường với dấu ngã","Latin capital letter i with macron":"Chữ cái Latinh i viết hoa với dấu trường âm","Latin small letter i with macron":"Chữ cái Latinh i viết thường với dấu trường âm","Latin capital letter i with breve":"Chữ cái Latinh i viết hoa với dấu trăng","Latin small letter i with breve":"Chữ cái Latinh i viết thường với dấu trăng","Latin capital letter i with ogonek":"Chữ cái Latinh i viết hoa với dấu ogonek","Latin small letter i with ogonek":"Chữ cái Latinh i viết thường với dấu ogonek","Latin capital letter i with dot above":"Chữ cái Latinh i viết hoa với dấu chấm ở trên","Latin small letter dotless i":"Chữ cái Latinh i viết thường không dấu chấm","Latin capital ligature ij":"Chữ ghép Latinh ij viết hoa","Latin small ligature ij":"Chữ ghép Latinh ij viết thường","Latin capital letter j with circumflex":"Chữ cái Latinh j viết hoa với dấu mũ","Latin small letter j with circumflex":"Chữ cái Latinh j viết thường với dấu mũ","Latin capital letter k with cedilla":"Chữ cái Latinh k viết hoa với dấu móc dưới","Latin small letter k with cedilla":"Chữ cái Latinh k viết hoa với dấu móc dưới","Latin small letter kra":"Chữ cái Latinh k viết thường","Latin capital letter l with acute":"Chữ cái Latinh l viết hoa với dấu sắc","Latin small letter l with acute":"Chữ cái Latinh l viết thường với dấu sắc","Latin capital letter l with cedilla":"Chữ cái Latinh l viết hoa với dấu móc dưới","Latin small letter l with cedilla":"Chữ cái Latinh l viết thường với dấu móc dưới","Latin capital letter l with caron":"Chữ cái Latinh l viết hoa với dấu mũ ngược","Latin small letter l with caron":"Chữ cái Latinh l viết thường với dấu mũ ngược","Latin capital letter l with middle dot":"Chữ cái Latinh l viết hoa với dấu chấm ở giữa","Latin small letter l with middle dot":"Chữ cái Latinh l viết thường với dấu chấm ở giữa","Latin capital letter l with stroke":"Chữ cái Latinh l viết hoa với dấu gạch ngang","Latin small letter l with stroke":"Chữ cái Latinh l viết thường với dấu gạch ngang","Latin capital letter n with acute":"Chữ cái Latinh n viết hoa với dấu sắc","Latin small letter n with acute":"Chữ cái Latinh n viết thường với dấu sắc","Latin capital letter n with cedilla":"Chữ cái Latinh n viết hoa với dấu móc dưới","Latin small letter n with cedilla":"Chữ cái Latinh n viết thường với dấu móc dưới","Latin capital letter n with caron":"Chữ cái Latinh n viết hoa với dấu mũ ngược","Latin small letter n with caron":"Chữ cái Latinh n viết thường với dấu mũ ngược","Latin small letter n preceded by apostrophe":"Chữ cái Latinh n viết thường có dấu viết lược đứng trước","Latin capital letter eng":"Chữ cái Latinh Ŋ viết hoa","Latin small letter eng":"Chữ cái Latinh ŋ viết thường","Latin capital letter o with macron":"Chữ cái Latinh o viết hoa với dấu trường âm","Latin small letter o with macron":"Chữ cái Latinh o viết thường với dấu trường âm","Latin capital letter o with breve":"Chữ cái Latinh o viết hoa với dấu trăng","Latin small letter o with breve":"Chữ cái Latinh o viết thường với dấu trăng","Latin capital letter o with double acute":"Chữ cái Latinh o viết hoa với dấu sắc kép","Latin small letter o with double acute":"Chữ cái Latinh o viết thường với dấu sắc kép","Latin capital ligature oe":"Chữ ghép Latinh oe viết hoa","Latin small ligature oe":"Chữ ghép Latinh oe viết thường","Latin capital letter r with acute":"Chữ cái Latinh r viết hoa với dấu sắc","Latin small letter r with acute":"Chữ cái Latinh r viết thường với dấu sắc","Latin capital letter r with cedilla":"Chữ cái Latinh r viết hoa với dấu móc dưới","Latin small letter r with cedilla":"Chữ cái Latinh r viết thường với dấu móc dưới","Latin capital letter r with caron":"Chữ cái Latinh r viết hoa với dấu mũ ngược","Latin small letter r with caron":"Chữ cái Latinh r viết thường với dấu mũ ngược","Latin capital letter s with acute":"Chữ cái Latinh s viết hoa với dấu sắc","Latin small letter s with acute":"Chữ cái Latinh s viết thường với dấu sắc","Latin capital letter s with circumflex":"Chữ cái Latinh s viết hoa với dấu mũ","Latin small letter s with circumflex":"Chữ cái Latinh s viết thường với dấu mũ","Latin capital letter s with cedilla":"Chữ cái Latinh s viết hoa với dấu móc dưới","Latin small letter s with cedilla":"Chữ cái Latinh s viết thường với dấu móc dưới","Latin capital letter s with caron":"Chữ cái Latinh s viết hoa với dấu mũ ngược","Latin small letter s with caron":"Chữ cái Latinh s viết thường với dấu mũ ngược","Latin capital letter t with cedilla":"Chữ cái Latinh t viết hoa với dấu móc dưới","Latin small letter t with cedilla":"Chữ cái Latinh t viết thường với dấu móc dưới","Latin capital letter t with caron":"Chữ cái Latinh t viết hoa với dấu mũ ngược","Latin small letter t with caron":"Chữ cái Latinh t viết thường với dấu mũ ngược","Latin capital letter t with stroke":"Chữ cái Latinh t viết hoa với dấu gạch ngang","Latin small letter t with stroke":"Chữ cái Latinh t viết thường với dấu gạch ngang","Latin capital letter u with tilde":"Chữ cái Latinh u viết hoa với dấu ngã","Latin small letter u with tilde":"Chữ cái Latinh u viết hoa với dấu ngã","Latin capital letter u with macron":"Chữ cái Latinh u viết hoa với dấu trường âm","Latin small letter u with macron":"Chữ cái Latinh u viết thường với dấu trường âm","Latin capital letter u with breve":"Chữ cái Latinh u viết hoa với dấu trăng","Latin small letter u with breve":"Chữ cái Latinh u viết thường với dấu trăng","Latin capital letter u with ring above":"Chữ cái Latinh u viết hoa với vòng tròn ở trên","Latin small letter u with ring above":"Chữ cái Latinh u viết thường với vòng tròn ở trên","Latin capital letter u with double acute":"Chữ cái Latinh u viết hoa với dấu sắc kép","Latin small letter u with double acute":"Chữ cái Latinh u viết thường với dấu sắc kép","Latin capital letter u with ogonek":"Chữ cái Latinh u viết hoa với dấu ogonek","Latin small letter u with ogonek":"Chữ cái Latinh u viết thường với dấu ogonek","Latin capital letter w with circumflex":"Chữ cái Latinh w viết hoa với dấu mũ","Latin small letter w with circumflex":"Chữ cái Latinh w viết thường với dấu mũ","Latin capital letter y with circumflex":"Chữ cái Latinh y viết hoa với dấu mũ","Latin small letter y with circumflex":"Chữ cái Latinh y viết thường với dấu mũ","Latin capital letter y with diaeresis":"Chữ cái Latinh y viết hoa với dấu tách đôi","Latin capital letter z with acute":"Chữ cái Latinh z viết hoa với dấu sắc","Latin small letter z with acute":"Chữ cái Latinh z viết thường với dấu sắc","Latin capital letter z with dot above":"Chữ cái Latinh z viết hoa với dấu chấm ở trên","Latin small letter z with dot above":"Chữ cái Latinh z viết thường với dấu chấm ở trên","Latin capital letter z with caron":"Chữ cái Latinh z viết hoa với dấu mũ ngược","Latin small letter z with caron":"Chữ cái Latinh z viết thường với dấu mũ ngược","Latin small letter long s":"Chữ cái Latinh s dài viết thường","Less-than sign":"Ký hiệu nhỏ hơn","Greater-than sign":"Ký hiệu lớn hơn","Less-than or equal to":"Nhỏ hơn hoặc bằng","Greater-than or equal to":"Lớn hơn hoặc bằng","En dash":"Gạch ngang ngắn","Em dash":"Gạch ngang dài",Macron:"Dấu trường âm",Overline:"Gạch trên","Degree sign":"Ký hiệu độ","Minus sign":"Ký hiệu trừ","Plus-minus sign":"Ký hiệu cộng-trừ","Division sign":"Ký hiệu chia","Fraction slash":"Dấu gạch chéo phân số","Multiplication sign":"Ký hiệu nhân","Latin small letter f with hook":"Chữ cái Latinh f viết thường với móc",Integral:"Tích phân","N-ary summation":"Phép tổng n số nguyên",Infinity:"Vô cực","Square root":"Căn bậc hai","Tilde operator":"Toán tử dấu ngã","Approximately equal to":"Xấp xỉ bằng","Almost equal to":"Gần bằng","Not equal to":"Không bằng","Identical to":"Tương đương","Element of":"Thuộc","Not an element of":"Không thuộc","Contains as member":"Chứa","N-ary product":"Tích n số nguyên","Logical and":"Và logic","Logical or":"Hoặc logic","Not sign":"Không",Intersection:"Giao",Union:"Hợp","Partial differential":"Vi phân riêng phần","For all":"Với mọi","There exists":"Tồn tại","Empty set":"Tập hợp rỗng",Nabla:"Nabla","Asterisk operator":"Toán tử dấu hoa thị","Proportional to":"Tương ứng với",Angle:"Góc","Vulgar fraction one quarter":"Phân số thường một phần tư","Vulgar fraction one half":"Phân số thường một phần hai","Vulgar fraction three quarters":"Phân số thường ba phần tư","Single left-pointing angle quotation mark":"Dấu nháy đơn dạng góc chỉ sang bên trái","Single right-pointing angle quotation mark":"Dấu nháy đơn dạng góc chỉ sang bên phải","Left-pointing double angle quotation mark":"Dấu nháy kép dạng góc chỉ sang bên trái","Right-pointing double angle quotation mark":"Dấu nháy kép dạng góc chỉ sang bên phải","Left single quotation mark":"Dấu nháy đơn bên trái","Right single quotation mark":"Dấu nháy đơn bên phải","Left double quotation mark":"Dấu nháy kép bên trái","Right double quotation mark":"Dấu nháy kép bên phải","Single low-9 quotation mark":"Dấu nháy đơn kiểu low-9","Double low-9 quotation mark":"Dấu nháy kép kiểu low-9","Inverted exclamation mark":"Dấu chấm than ngược","Inverted question mark":"Dấu hỏi ngược","Two dot leader":"Hàng hai dấu chấm","Horizontal ellipsis":"Dấu chấm lửng ngang","Double dagger":"Dấu chữ thập kép","Per mille sign":"Ký hiệu phần nghìn","Per ten thousand sign":"Ký hiệu phần vạn","Double exclamation mark":"Dấu chấm than kép","Question exclamation mark":"Dấu chấm hỏi và chấm than","Exclamation question mark":"Dấu chấm than và chấm hỏi","Double question mark":"Dấu chấm hỏi kép","Copyright sign":"Ký hiệu bản quyền","Registered sign":"Ký hiệu đăng ký thương hiệu","Trade mark sign":"Ký hiệu thương hiệu","Section sign":"Ký hiệu phân đoạn","Paragraph sign":"Ký hiệu đoạn văn","Reversed paragraph sign":"Ký hiệu đoạn văn đảo ngược","Show source":"Hiển thị nguồn","Show blocks":"Hiện các khối","Select all":"Chọn tất cả","Disable editing":"Tắt tính năng chỉnh sửa","Enable editing":"Bật tính năng chỉnh sửa","Previous editable region":"Vùng có thể chỉnh sửa trước đó","Next editable region":"Vùng có thể chỉnh sửa tiếp theo","Navigate editable regions":"Di chuyển giữa các vùng có thể chỉnh sửa","Remove Format":"Xóa định dang","Page break":"Ngắt trang","media widget":"tiện ích đa phương tiện","Media URL":"Đường dẫn đa phương tiện","Paste the media URL in the input.":"Dán đường dẫn đa phương tiện vào trường","Tip: Paste the URL into the content to embed faster.":"Mẹo: Dán đường dẫn vào nội dung để nhúng ngay","The URL must not be empty.":"Đường dẫn không được để trống","This media URL is not supported.":"Đường dẫn đa phương tiện không hỗ trợ","Insert media":"Chèn đa phương tiện",Media:"Phương tiện","Media toolbar":"Thanh công cụ đa phương tiện","Open media in new tab":"Mở nội dung nghe nhìn trong tab mới","Media embed":"Nhúng tệp đa phương tiện","Numbered List":"Danh sách đánh số","Bulleted List":"Danh sách đánh ký hiệu","To-do List":"Danh sách cần làm","Bulleted list styles toolbar":"Thanh công cụ kiểu danh sách có dấu đầu dòng","Numbered list styles toolbar":"Thanh công cụ kiểu danh sách được đánh số","Toggle the disc list style":"Bật/tắt kiểu danh sách dạng đĩa","Toggle the circle list style":"Bật/tắt kiểu danh sách dạng vòng tròn","Toggle the square list style":"Bật/tắt kiểu danh sách dạng vuông","Toggle the decimal list style":"Bật/tắt kiểu danh sách dạng thập phân","Toggle the decimal with leading zero list style":"Bật/tắt kiểu danh sách dạng thập phân bắt đầu bằng số 0","Toggle the lower–roman list style":"Bật/tắt kiểu danh sách chữ số La Mã viết thường","Toggle the upper–roman list style":"Bật/tắt kiểu danh sách chữ số La Mã viết hoa","Toggle the lower–latin list style":"Bật/tắt kiểu danh sách chữ cái Latinh viết thường","Toggle the upper–latin list style":"Bật/tắt kiểu danh sách chữ cái Latinh viết hoa",Disc:"Đĩa",Circle:"Tròn",Square:"Vuông",Decimal:"Thập phân","Decimal with leading zero":"Thập phân bắt đầu bằng số 0","Lower–roman":"Chữ số La Mã viết thường","Upper-roman":"Chữ số La Mã viết hoa","Lower-latin":"Chữ cái Latinh viết thường","Upper-latin":"Chữ cái Latinh viết hoa","List properties":"Thuộc tính danh sách","Start at":"Bắt đầu tại","Invalid start index value.":"Giá trị chỉ mục bắt đầu không hợp lệ.","Start index must be greater than 0.":"Chỉ mục bắt đầu phải lớn hơn 0.","Reversed order":"Thứ tự đảo ngược","Keystrokes that can be used in a list":"Tổ hợp phím mà bạn có thể dùng trong danh sách","Increase list item indent":"Tăng thụt lề mục danh sách","Decrease list item indent":"Giảm thụt lề mục danh sách","Entering a to-do list":"Đang nhập danh sách việc cần làm","Leaving a to-do list":"Đang rời khỏi danh sách việc cần làm",Unlink:"Bỏ liên kết",Link:"Chèn liên kết","Link URL":"Đường dẫn liên kết","Link URL must not be empty.":"Không được để trống URL đường liên kết.","Link image":"Liên kết của ảnh","Edit link":"Sửa liên kết","Open link in new tab":"Mở liên kết","Open in a new tab":"Mở trên tab mới",Downloadable:"Có thể tải về","Create link":"Tạo liên kết","Move out of a link":"Di chuyển ra khỏi một liên kết","Link properties":"Thuộc tính đường liên kết","Displayed text":"Văn bản đã hiển thị","No links available":"Không có đường liên kết khả dụng",Language:"Ngôn ngữ","Choose language":"Chọn ngôn ngữ","Remove language":"Xóa ngôn ngữ","Increase indent":"Tăng lề","Decrease indent":"Giảm lề","image widget":"tiện ích ảnh","Wrap text":"Bọc văn bản","Break text":"Ngắt văn bản","In line":"Nội dòng","Side image":"Ảnh một bên","Full size image":"Ảnh đầy đủ","Left aligned image":"Ảnh canh trái","Centered image":"Ảnh canh giữa","Right aligned image":"Ảnh canh phải","Change image text alternative":"Đổi chữ alt của ảnh","Text alternative":"Chữ alt","Enter image caption":"Nhập mô tả ảnh","Insert image":"Chèn ảnh","Replace image":"Thay thế hình ảnh","Upload from computer":"Tải lên từ máy tính","Replace from computer":"Thay thế từ máy tính","Upload image from computer":"Tải hình ảnh lên từ máy tính","Image from computer":"Hình ảnh từ máy tính","From computer":"Từ máy tính","Replace image from computer":"Thay thế hình ảnh từ máy tính","Upload failed":"Tải thất bại","You have no image upload permissions.":"Bạn không có quyền tải ảnh lên.","Image toolbar":"Thanh công cụ hình ảnh","Resize image":"Chỉnh kích cỡ ảnh","Resize image to %0":"Chỉnh kích cỡ ảnh về %0","Resize image to the original size":"Chỉnh về ảnh kích cỡ nguyên gốc","Resize image (in %0)":"Đặt lại kích thước hình ảnh (bằng %0)",Original:"Nguyên bản","Custom image size":"Tùy chỉnh kích thước hình ảnh",Custom:"Tùy chỉnh","Image resize list":"Danh sách ảnh đã chỉnh kích thước","Insert image via URL":"Chèn ảnh từ URL","Insert via URL":"Chèn bằng URL","Image via URL":"Hình ảnh bằng URL","Via URL":"Bằng URL","Update image URL":"Cập nhật ảnh từ URL","Caption for the image":"Chú thích cho hình ảnh","Caption for image: %0":"Chú thích cho hình ảnh: %0","The value must not be empty.":"Không được để trống giá trị này.","The value should be a plain number.":"Giá trị này phải là một số thường.","Uploading image":"Đang tải hình ảnh lên","Image upload complete":"Hoàn tất quá trình tải hình ảnh lên","Error during image upload":"Xảy ra lỗi trong quá trình tải hình ảnh lên",Image:"Hình ảnh","Image Resize":"Đổi kích thước hình ảnh","Text Alternative":"Văn bản thay thế","HTML object":"Đối tượng HTML","Insert HTML":"Chèn HTML","HTML snippet":"Mẫu HTML","Paste raw HTML here...":"Dán mã HTML nguyên bản tại đây...","Edit source":"Sửa nguồn","Save changes":"Lưu thay đổi","No preview available":"Không có sẵn bản xem trước","Empty snippet content":"Nội dung đoạn mã trống","Horizontal line":"Đường ngang","Yellow marker":"Bút vàng","Green marker":"Bút xanh lá","Pink marker":"Bút hồng","Blue marker":"Bút xanh dương","Red pen":"Mực đỏ","Green pen":"Mực xanh","Remove highlight":"Xóa làm nổi",Highlight:"Làm nổi","Text highlight toolbar":"Thanh công cụ làm nổi chữ",Heading:"Tiêu đề","Choose heading":"Chọn tiêu đề","Heading 1":"Tiêu đề 1","Heading 2":"Tiêu đề 2","Heading 3":"Tiêu đề 3","Heading 4":"Tiêu đề 4","Heading 5":"Tiêu đề 5","Heading 6":"Tiêu đề 6","Type your title":"Nhập tựa đề","Type or paste your content here.":"Nhập hoặc dán nội dung tại đây","Enter fullscreen mode":"Vào chế độ toàn màn hình","Leave fullscreen mode":"Thoát chế độ toàn màn hình","Fullscreen mode":"Chế độ toàn màn hình","Toggle fullscreen mode":"Chuyển đổi chế độ toàn màn hình","Document outline":"Bố cục tài liệu","Connected users":"Những người dùng đã kết nối","Font Size":"Cỡ chữ",Tiny:"Bé",Small:"Nhỏ",Big:"Lớn",Huge:"Khổng lồ","Font Family":"Họ chữ",Default:"Mặc định","Font Color":"Màu chữ","Font Background Color":"Màu nền chữ","Document colors":"Màu văn bản","Find and replace":"Tìm và thay thế","Find in text…":"Tìm trong văn bản...",Find:"Tìm","Previous result":"Kết quả trước","Next result":"Kết quả tiếp theo",Replace:"Thay thế","Replace all":"Thay thế tất cả","Match case":"Khớp chữ hoa/chữ thường","Whole words only":"Chỉ toàn bộ từ","Replace with…":"Thay thế bằng...","Text to find must not be empty.":"Không được để trống trường văn bản cần tìm.","Tip: Find some text first in order to replace it.":"Mẹo: Tìm một đoạn văn bản trước để thay thế.","Advanced options":"Tùy chọn nâng cao","Find in the document":"Tìm trong tài liệu","Insert a soft break (a <code><br></code> element)":"Chèn dấu ngắt mềm (phần tử <code><br></code>)","Insert a hard break (a new paragraph)":"Chèn dấu ngắt cứng (đoạn văn mới)",Emoji:"Biểu tượng cảm xúc","Show all emoji...":"Hiển thị tất cả biểu tượng cảm xúc...","Find an emoji (min. 2 characters)":"Tìm biểu tượng cảm xúc (tối thiểu 2 ký tự)",'No emojis were found matching "%0".':'Không tìm thấy biểu tượng cảm xúc nào khớp với "%0".',"Keep on typing to see the emoji.":"Tiếp tục nhập để xem biểu tượng cảm xúc.","The query must contain at least two characters.":"Truy vấn phải chứa ít nhất hai ký tự.","Smileys & Expressions":"Biểu tượng cảm xúc & Biểu cảm","Gestures & People":"Cử chỉ & Con người","Animals & Nature":"Động vật & Thiên nhiên","Food & Drinks":"Đồ ăn & Thức uống","Travel & Places":"Du lịch & Địa điểm",Activities:"Hoạt động",Objects:"Vật thể",Symbols:"Biểu tượng",Flags:"Cờ","Select skin tone":"Chọn tông màu da","Default skin tone":"Tông màu da mặc định","Light skin tone":"Tông màu da sáng","Medium Light skin tone":"Tông màu da sáng trung bình","Medium skin tone":"Tông màu da trung bình","Medium Dark skin tone":"Tông màu da tối trung bình","Dark skin tone":"Tông màu da tối","Emoji picker":"Bảng chọn biểu tượng cảm xúc",Cancel:"Hủy",Clear:"Xóa","Remove color":"Xóa màu","Restore default":"Khôi phục giá trị mặc định",Save:"Lưu","Show more items":"Xem thêm","%0 of %1":"%0 đến %1","Cannot upload file:":"Không thể tải file:","Rich Text Editor. Editing area: %0":"Trình chỉnh sửa Văn bản dạng RTF. Vùng chỉnh sửa: %0","Insert with file manager":"Chèn bằng trình quản lý tập tin","Replace with file manager":"Thay thế bằng trình quản lý tập tin","Insert image with file manager":"Chèn hình ảnh bằng trình quản lý tập tin","Replace image with file manager":"Thay thế hình ảnh bằng trình quản lý tập tin",File:"Tệp","With file manager":"Với trình quản lý tệp","Toggle caption off":"Ẩn chú thích","Toggle caption on":"Hiện chú thích","Content editing keystrokes":"Tổ hợp phím chỉnh sửa nội dung","These keyboard shortcuts allow for quick access to content editing features.":"Những phím tắt này giúp bạn truy cập nhanh vào các tính năng chỉnh sửa nội dung.","User interface and content navigation keystrokes":"Giao diện người dùng và tổ hợp phím điều hướng nội dung","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Sử dụng các tổ hợp phím sau đây để điều hướng hiệu quả hơn trong giao diện người dùng CKEditor 5.","Close contextual balloons, dropdowns, and dialogs":"Đóng bong bóng theo ngữ cảnh, menu thả xuống và hộp thoại","Open the accessibility help dialog":"Mở hộp thoại trợ giúp về khả năng tiếp cận","Move focus between form fields (inputs, buttons, etc.)":"Di chuyển tiêu điểm giữa các trường biểu mẫu (nội dung nhập, nút, v.v.)","Move focus to the menu bar, navigate between menu bars":"Di chuyển tiêu điểm đến thanh menu, điều hướng giữa các thanh menu","Move focus to the toolbar, navigate between toolbars":"Di chuyển tiêu điểm đến thanh công cụ, điều hướng giữa các thanh công cụ","Navigate through the toolbar or menu bar":"Điều hướng trên thanh công cụ hoặc thanh menu","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Thực thi nút hiện đang ưu tiên. Việc thực thi các nút tương tác với nội dung soạn thảo sẽ làm di chuyển tiêu điểm trở lại phần nội dung.",Accept:"Chấp nhận",Paragraph:"Đoạn văn","Color picker":"Bộ chọn màu","Please try a different phrase or check the spelling.":"Vui lòng thử một cụm từ khác hoặc kiểm tra lại cụm từ.",Source:"Nguồn",Insert:"Chèn",Update:"Cập nhật",Back:"Quay lại","Insert code block":"Chèn khối mã","Plain text":"Văn bản thuần","Leaving %0 code snippet":"Đang rời khỏi đoạn mã snippet %0","Entering %0 code snippet":"Đang nhập đoạn mã snippet %0","Entering code snippet":"Đang nhập đoạn mã snippet","Leaving code snippet":"Đang rời khỏi đoạn mã snippet","Code block":"Khối mã","Copy selected content":"Sao chép nội dung đã chọn","Paste content":"Dán nội dung","Paste content as plain text":"Dán nội dung dưới dạng văn bản thuần túy","Insert image or file":"Chèn ảnh hoặc file","Could not obtain resized image URL.":"Không thể lấy được đường dẫn ảnh đã đổi kích thước","Selecting resized image failed":"Chọn ảnh đã đổi kích thước thất bại","Could not insert image at the current position.":"Không thể chèn ảnh ở vị trí hiện tại","Inserting image failed":"Chèn ảnh thất bại",Bookmark:"Dấu trang","Edit bookmark":"Chỉnh sửa dấu trang","Remove bookmark":"Xóa dấu trang","Bookmark name":"Tên dấu trang","Enter the bookmark name without spaces.":"Nhập tên dấu trang không có khoảng trắng.","Bookmark must not be empty.":"Dấu trang không được để trống.","Bookmark name cannot contain space characters.":"Tên dấu trang không được chứa ký tự khoảng trắng.","Bookmark name already exists.":"Tên dấu trang đã tồn tại.","bookmark widget":"tiện ích đánh dấu trang","Bookmark toolbar":"Thanh công cụ Đánh dấu trang",Bookmarks:"Dấu trang","No bookmarks available.":"Không có dấu trang khả dụng.","Scroll to bookmark":"Cuộn chuột đến dấu trang","Open file manager":"Mở trình quản lý tệp","Cannot determine a category for the uploaded file.":"Không thể xác định danh mục cho tệp được tải lên.","Cannot access default workspace.":"Không thể truy cập vào không gian làm việc mặc định.","You have no image editing permissions.":"Bạn không có quyền chỉnh sửa ảnh.","Edit image":"Chỉnh sửa hình ảnh","Processing the edited image.":"Xử lý hình ảnh đã chỉnh sửa.","Server failed to process the image.":"Máy chủ không thể xử lý hình ảnh.","Failed to determine category of edited image.":"Không thể xác định danh mục hình ảnh đã chỉnh sửa.","Block quote":"Trích dẫn",Bold:"Đậm",Italic:"Nghiêng",Underline:"Gạch dưới",Code:"Code",Strikethrough:"Gạch ngang",Subscript:"Chữ nhỏ dưới",Superscript:"Chữ nhỏ trên","Italic text":"In nghiêng chữ","Move out of an inline code style":"Thoát khỏi kiểu mã nội dòng","Bold text":"In đậm chữ","Underline text":"Gạch chân chữ","Strikethrough text":"Gạch ngang chữ","Saving changes":"Đang lưu","Revert autoformatting action":"Hoàn nguyên thao tác tự động định dạng","Align left":"Canh trái","Align right":"Canh phải","Align center":"Canh giữa",Justify:"Canh đều","Text alignment":"Căn chỉnh văn bản","Text alignment toolbar":"Thanh công cụ canh chữ"},getPluralForm(n){return 0}}};const dB={en:{dictionary:{"Words: %0":"Words: %0","Characters: %0":"Characters: %0","Widget toolbar":"Widget toolbar","Insert paragraph before block":"Insert paragraph before block","Insert paragraph after block":"Insert paragraph after block","Press Enter to type after or press Shift + Enter to type before the widget":"Press Enter to type after or press Shift + Enter to type before the widget","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Keystrokes that can be used when a widget is selected (for example: image, table, etc.)","Insert a new paragraph directly after a widget":"Insert a new paragraph directly after a widget","Insert a new paragraph directly before a widget":"Insert a new paragraph directly before a widget","Move the caret to allow typing directly before a widget":"Move the caret to allow typing directly before a widget","Move the caret to allow typing directly after a widget":"Move the caret to allow typing directly after a widget","Move focus from an editable area back to the parent widget":"Move focus from an editable area back to the parent widget","Upload in progress":"Upload in progress",Undo:"Undo",Redo:"Redo","Rich Text Editor":"Rich Text Editor","Edit block":"Edit block","Click to edit block":"Click to edit block","Drag to move":"Drag to move",Next:"Next",Previous:"Previous","Editor toolbar":"Editor toolbar","Dropdown toolbar":"Dropdown toolbar","Dropdown menu":"Dropdown menu",Black:"Black","Dim grey":"Dim grey",Grey:"Grey","Light grey":"Light grey",White:"White",Red:"Red",Orange:"Orange",Yellow:"Yellow","Light green":"Light green",Green:"Green",Aquamarine:"Aquamarine",Turquoise:"Turquoise","Light blue":"Light blue",Blue:"Blue",Purple:"Purple","Editor block content toolbar":"Editor block content toolbar","Editor contextual toolbar":"Editor contextual toolbar",HEX:"HEX","No results found":"No results found","No searchable items":"No searchable items","Editor dialog":"Editor dialog",Close:"Close","Help Contents. To close this dialog press ESC.":"Help Contents. To close this dialog press ESC.","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Below, you can find a list of keyboard shortcuts that can be used in the editor.","(may require <kbd>Fn</kbd>)":"(may require <kbd>Fn</kbd>)",Accessibility:"Accessibility","Accessibility help":"Accessibility help","Press %0 for help.":"Press %0 for help.","Move focus in and out of an active dialog window":"Move focus in and out of an active dialog window",MENU_BAR_MENU_FILE:"File",MENU_BAR_MENU_EDIT:"Edit",MENU_BAR_MENU_VIEW:"View",MENU_BAR_MENU_INSERT:"Insert",MENU_BAR_MENU_FORMAT:"Format",MENU_BAR_MENU_TOOLS:"Tools",MENU_BAR_MENU_HELP:"Help",MENU_BAR_MENU_TEXT:"Text",MENU_BAR_MENU_FONT:"Font","Editor menu bar":"Editor menu bar",'Please enter a valid color (e.g. "ff0000").':'Please enter a valid color (e.g. "ff0000").',"Insert table":"Insert table","Header column":"Header column","Insert column left":"Insert column left","Insert column right":"Insert column right","Delete column":"Delete column","Select column":"Select column",Column:"Column","Header row":"Header row","Insert row below":"Insert row below","Insert row above":"Insert row above","Delete row":"Delete row","Select row":"Select row",Row:"Row","Merge cell up":"Merge cell up","Merge cell right":"Merge cell right","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Split cell vertically":"Split cell vertically","Split cell horizontally":"Split cell horizontally","Merge cells":"Merge cells","Table toolbar":"Table toolbar","Table properties":"Table properties","Cell properties":"Cell properties",Border:"Border",Style:"Style",Width:"Width",Height:"Height",Color:"Color",Background:"Background",Padding:"Padding",Dimensions:"Dimensions","Table cell text alignment":"Table cell text alignment",Alignment:"Alignment","Horizontal text alignment toolbar":"Horizontal text alignment toolbar","Vertical text alignment toolbar":"Vertical text alignment toolbar","Table alignment toolbar":"Table alignment toolbar",None:"None",Solid:"Solid",Dotted:"Dotted",Dashed:"Dashed",Double:"Double",Groove:"Groove",Ridge:"Ridge",Inset:"Inset",Outset:"Outset","Align cell text to the left":"Align cell text to the left","Align cell text to the center":"Align cell text to the center","Align cell text to the right":"Align cell text to the right","Justify cell text":"Justify cell text","Align cell text to the top":"Align cell text to the top","Align cell text to the middle":"Align cell text to the middle","Align cell text to the bottom":"Align cell text to the bottom","Align table to the left":"Align table to the left","Center table":"Center table","Align table to the right":"Align table to the right",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'The value is invalid. Try "10px" or "2em" or simply "2".',"Enter table caption":"Enter table caption","Keystrokes that can be used in a table cell":"Keystrokes that can be used in a table cell","Move the selection to the next cell":"Move the selection to the next cell","Move the selection to the previous cell":"Move the selection to the previous cell","Insert a new table row (when in the last cell of a table)":"Insert a new table row (when in the last cell of a table)","Navigate through the table":"Navigate through the table",Table:"Table","Insert table layout":"Insert table layout","Table layout":"Table layout","Layout table":"Layout table","Content table":"Content table","Choose table type":"Choose table type","Table type":"Table type","Table type options":"Table type options",Styles:"Styles","Multiple styles":"Multiple styles","Block styles":"Block styles","Text styles":"Text styles","Special characters":"Special characters",Category:"Category",All:"All",Arrows:"Arrows",Currency:"Currency",Latin:"Latin",Mathematical:"Mathematical",Text:"Text","leftwards simple arrow":"leftwards simple arrow","rightwards simple arrow":"rightwards simple arrow","upwards simple arrow":"upwards simple arrow","downwards simple arrow":"downwards simple arrow","leftwards double arrow":"leftwards double arrow","rightwards double arrow":"rightwards double arrow","upwards double arrow":"upwards double arrow","downwards double arrow":"downwards double arrow","leftwards dashed arrow":"leftwards dashed arrow","rightwards dashed arrow":"rightwards dashed arrow","upwards dashed arrow":"upwards dashed arrow","downwards dashed arrow":"downwards dashed arrow","leftwards arrow to bar":"leftwards arrow to bar","rightwards arrow to bar":"rightwards arrow to bar","upwards arrow to bar":"upwards arrow to bar","downwards arrow to bar":"downwards arrow to bar","up down arrow with base":"up down arrow with base","back with leftwards arrow above":"back with leftwards arrow above","end with leftwards arrow above":"end with leftwards arrow above","on with exclamation mark with left right arrow above":"on with exclamation mark with left right arrow above","soon with rightwards arrow above":"soon with rightwards arrow above","top with upwards arrow above":"top with upwards arrow above","Dollar sign":"Dollar sign","Euro sign":"Euro sign","Yen sign":"Yen sign","Pound sign":"Pound sign","Cent sign":"Cent sign","Euro-currency sign":"Euro-currency sign","Colon sign":"Colon sign","Cruzeiro sign":"Cruzeiro sign","French franc sign":"French franc sign","Lira sign":"Lira sign","Currency sign":"Currency sign","Bitcoin sign":"Bitcoin sign","Mill sign":"Mill sign","Naira sign":"Naira sign","Peseta sign":"Peseta sign","Rupee sign":"Rupee sign","Won sign":"Won sign","New sheqel sign":"New sheqel sign","Dong sign":"Dong sign","Kip sign":"Kip sign","Tugrik sign":"Tugrik sign","Drachma sign":"Drachma sign","German penny sign":"German penny sign","Peso sign":"Peso sign","Guarani sign":"Guarani sign","Austral sign":"Austral sign","Hryvnia sign":"Hryvnia sign","Cedi sign":"Cedi sign","Livre tournois sign":"Livre tournois sign","Spesmilo sign":"Spesmilo sign","Tenge sign":"Tenge sign","Indian rupee sign":"Indian rupee sign","Turkish lira sign":"Turkish lira sign","Nordic mark sign":"Nordic mark sign","Manat sign":"Manat sign","Ruble sign":"Ruble sign","Latin capital letter a with macron":"Latin capital letter a with macron","Latin small letter a with macron":"Latin small letter a with macron","Latin capital letter a with breve":"Latin capital letter a with breve","Latin small letter a with breve":"Latin small letter a with breve","Latin capital letter a with ogonek":"Latin capital letter a with ogonek","Latin small letter a with ogonek":"Latin small letter a with ogonek","Latin capital letter c with acute":"Latin capital letter c with acute","Latin small letter c with acute":"Latin small letter c with acute","Latin capital letter c with circumflex":"Latin capital letter c with circumflex","Latin small letter c with circumflex":"Latin small letter c with circumflex","Latin capital letter c with dot above":"Latin capital letter c with dot above","Latin small letter c with dot above":"Latin small letter c with dot above","Latin capital letter c with caron":"Latin capital letter c with caron","Latin small letter c with caron":"Latin small letter c with caron","Latin capital letter d with caron":"Latin capital letter d with caron","Latin small letter d with caron":"Latin small letter d with caron","Latin capital letter d with stroke":"Latin capital letter d with stroke","Latin small letter d with stroke":"Latin small letter d with stroke","Latin capital letter e with macron":"Latin capital letter e with macron","Latin small letter e with macron":"Latin small letter e with macron","Latin capital letter e with breve":"Latin capital letter e with breve","Latin small letter e with breve":"Latin small letter e with breve","Latin capital letter e with dot above":"Latin capital letter e with dot above","Latin small letter e with dot above":"Latin small letter e with dot above","Latin capital letter e with ogonek":"Latin capital letter e with ogonek","Latin small letter e with ogonek":"Latin small letter e with ogonek","Latin capital letter e with caron":"Latin capital letter e with caron","Latin small letter e with caron":"Latin small letter e with caron","Latin capital letter g with circumflex":"Latin capital letter g with circumflex","Latin small letter g with circumflex":"Latin small letter g with circumflex","Latin capital letter g with breve":"Latin capital letter g with breve","Latin small letter g with breve":"Latin small letter g with breve","Latin capital letter g with dot above":"Latin capital letter g with dot above","Latin small letter g with dot above":"Latin small letter g with dot above","Latin capital letter g with cedilla":"Latin capital letter g with cedilla","Latin small letter g with cedilla":"Latin small letter g with cedilla","Latin capital letter h with circumflex":"Latin capital letter h with circumflex","Latin small letter h with circumflex":"Latin small letter h with circumflex","Latin capital letter h with stroke":"Latin capital letter h with stroke","Latin small letter h with stroke":"Latin small letter h with stroke","Latin capital letter i with tilde":"Latin capital letter i with tilde","Latin small letter i with tilde":"Latin small letter i with tilde","Latin capital letter i with macron":"Latin capital letter i with macron","Latin small letter i with macron":"Latin small letter i with macron","Latin capital letter i with breve":"Latin capital letter i with breve","Latin small letter i with breve":"Latin small letter i with breve","Latin capital letter i with ogonek":"Latin capital letter i with ogonek","Latin small letter i with ogonek":"Latin small letter i with ogonek","Latin capital letter i with dot above":"Latin capital letter i with dot above","Latin small letter dotless i":"Latin small letter dotless i","Latin capital ligature ij":"Latin capital ligature ij","Latin small ligature ij":"Latin small ligature ij","Latin capital letter j with circumflex":"Latin capital letter j with circumflex","Latin small letter j with circumflex":"Latin small letter j with circumflex","Latin capital letter k with cedilla":"Latin capital letter k with cedilla","Latin small letter k with cedilla":"Latin small letter k with cedilla","Latin small letter kra":"Latin small letter kra","Latin capital letter l with acute":"Latin capital letter l with acute","Latin small letter l with acute":"Latin small letter l with acute","Latin capital letter l with cedilla":"Latin capital letter l with cedilla","Latin small letter l with cedilla":"Latin small letter l with cedilla","Latin capital letter l with caron":"Latin capital letter l with caron","Latin small letter l with caron":"Latin small letter l with caron","Latin capital letter l with middle dot":"Latin capital letter l with middle dot","Latin small letter l with middle dot":"Latin small letter l with middle dot","Latin capital letter l with stroke":"Latin capital letter l with stroke","Latin small letter l with stroke":"Latin small letter l with stroke","Latin capital letter n with acute":"Latin capital letter n with acute","Latin small letter n with acute":"Latin small letter n with acute","Latin capital letter n with cedilla":"Latin capital letter n with cedilla","Latin small letter n with cedilla":"Latin small letter n with cedilla","Latin capital letter n with caron":"Latin capital letter n with caron","Latin small letter n with caron":"Latin small letter n with caron","Latin small letter n preceded by apostrophe":"Latin small letter n preceded by apostrophe","Latin capital letter eng":"Latin capital letter eng","Latin small letter eng":"Latin small letter eng","Latin capital letter o with macron":"Latin capital letter o with macron","Latin small letter o with macron":"Latin small letter o with macron","Latin capital letter o with breve":"Latin capital letter o with breve","Latin small letter o with breve":"Latin small letter o with breve","Latin capital letter o with double acute":"Latin capital letter o with double acute","Latin small letter o with double acute":"Latin small letter o with double acute","Latin capital ligature oe":"Latin capital ligature oe","Latin small ligature oe":"Latin small ligature oe","Latin capital letter r with acute":"Latin capital letter r with acute","Latin small letter r with acute":"Latin small letter r with acute","Latin capital letter r with cedilla":"Latin capital letter r with cedilla","Latin small letter r with cedilla":"Latin small letter r with cedilla","Latin capital letter r with caron":"Latin capital letter r with caron","Latin small letter r with caron":"Latin small letter r with caron","Latin capital letter s with acute":"Latin capital letter s with acute","Latin small letter s with acute":"Latin small letter s with acute","Latin capital letter s with circumflex":"Latin capital letter s with circumflex","Latin small letter s with circumflex":"Latin small letter s with circumflex","Latin capital letter s with cedilla":"Latin capital letter s with cedilla","Latin small letter s with cedilla":"Latin small letter s with cedilla","Latin capital letter s with caron":"Latin capital letter s with caron","Latin small letter s with caron":"Latin small letter s with caron","Latin capital letter t with cedilla":"Latin capital letter t with cedilla","Latin small letter t with cedilla":"Latin small letter t with cedilla","Latin capital letter t with caron":"Latin capital letter t with caron","Latin small letter t with caron":"Latin small letter t with caron","Latin capital letter t with stroke":"Latin capital letter t with stroke","Latin small letter t with stroke":"Latin small letter t with stroke","Latin capital letter u with tilde":"Latin capital letter u with tilde","Latin small letter u with tilde":"Latin small letter u with tilde","Latin capital letter u with macron":"Latin capital letter u with macron","Latin small letter u with macron":"Latin small letter u with macron","Latin capital letter u with breve":"Latin capital letter u with breve","Latin small letter u with breve":"Latin small letter u with breve","Latin capital letter u with ring above":"Latin capital letter u with ring above","Latin small letter u with ring above":"Latin small letter u with ring above","Latin capital letter u with double acute":"Latin capital letter u with double acute","Latin small letter u with double acute":"Latin small letter u with double acute","Latin capital letter u with ogonek":"Latin capital letter u with ogonek","Latin small letter u with ogonek":"Latin small letter u with ogonek","Latin capital letter w with circumflex":"Latin capital letter w with circumflex","Latin small letter w with circumflex":"Latin small letter w with circumflex","Latin capital letter y with circumflex":"Latin capital letter y with circumflex","Latin small letter y with circumflex":"Latin small letter y with circumflex","Latin capital letter y with diaeresis":"Latin capital letter y with diaeresis","Latin capital letter z with acute":"Latin capital letter z with acute","Latin small letter z with acute":"Latin small letter z with acute","Latin capital letter z with dot above":"Latin capital letter z with dot above","Latin small letter z with dot above":"Latin small letter z with dot above","Latin capital letter z with caron":"Latin capital letter z with caron","Latin small letter z with caron":"Latin small letter z with caron","Latin small letter long s":"Latin small letter long s","Less-than sign":"Less-than sign","Greater-than sign":"Greater-than sign","Less-than or equal to":"Less-than or equal to","Greater-than or equal to":"Greater-than or equal to","En dash":"En dash","Em dash":"Em dash",Macron:"Macron",Overline:"Overline","Degree sign":"Degree sign","Minus sign":"Minus sign","Plus-minus sign":"Plus-minus sign","Division sign":"Division sign","Fraction slash":"Fraction slash","Multiplication sign":"Multiplication sign","Latin small letter f with hook":"Latin small letter f with hook",Integral:"Integral","N-ary summation":"N-ary summation",Infinity:"Infinity","Square root":"Square root","Tilde operator":"Tilde operator","Approximately equal to":"Approximately equal to","Almost equal to":"Almost equal to","Not equal to":"Not equal to","Identical to":"Identical to","Element of":"Element of","Not an element of":"Not an element of","Contains as member":"Contains as member","N-ary product":"N-ary product","Logical and":"Logical and","Logical or":"Logical or","Not sign":"Not sign",Intersection:"Intersection",Union:"Union","Partial differential":"Partial differential","For all":"For all","There exists":"There exists","Empty set":"Empty set",Nabla:"Nabla","Asterisk operator":"Asterisk operator","Proportional to":"Proportional to",Angle:"Angle","Vulgar fraction one quarter":"Vulgar fraction one quarter","Vulgar fraction one half":"Vulgar fraction one half","Vulgar fraction three quarters":"Vulgar fraction three quarters","Single left-pointing angle quotation mark":"Single left-pointing angle quotation mark","Single right-pointing angle quotation mark":"Single right-pointing angle quotation mark","Left-pointing double angle quotation mark":"Left-pointing double angle quotation mark","Right-pointing double angle quotation mark":"Right-pointing double angle quotation mark","Left single quotation mark":"Left single quotation mark","Right single quotation mark":"Right single quotation mark","Left double quotation mark":"Left double quotation mark","Right double quotation mark":"Right double quotation mark","Single low-9 quotation mark":"Single low-9 quotation mark","Double low-9 quotation mark":"Double low-9 quotation mark","Inverted exclamation mark":"Inverted exclamation mark","Inverted question mark":"Inverted question mark","Two dot leader":"Two dot leader","Horizontal ellipsis":"Horizontal ellipsis","Double dagger":"Double dagger","Per mille sign":"Per mille sign","Per ten thousand sign":"Per ten thousand sign","Double exclamation mark":"Double exclamation mark","Question exclamation mark":"Question exclamation mark","Exclamation question mark":"Exclamation question mark","Double question mark":"Double question mark","Copyright sign":"Copyright sign","Registered sign":"Registered sign","Trade mark sign":"Trade mark sign","Section sign":"Section sign","Paragraph sign":"Paragraph sign","Reversed paragraph sign":"Reversed paragraph sign","Show source":"Show source","Show blocks":"Show blocks","Select all":"Select all","Disable editing":"Disable editing","Enable editing":"Enable editing","Previous editable region":"Previous editable region","Next editable region":"Next editable region","Navigate editable regions":"Navigate editable regions","Remove Format":"Remove Format","Page break":"Page break","media widget":"media widget","Media URL":"Media URL","Paste the media URL in the input.":"Paste the media URL in the input.","Tip: Paste the URL into the content to embed faster.":"Tip: Paste the URL into the content to embed faster.","The URL must not be empty.":"The URL must not be empty.","This media URL is not supported.":"This media URL is not supported.","Insert media":"Insert media",Media:"Media","Media toolbar":"Media toolbar","Open media in new tab":"Open media in new tab","Media embed":"Media embed","Numbered List":"Numbered List","Bulleted List":"Bulleted List","To-do List":"To-do List","Bulleted list styles toolbar":"Bulleted list styles toolbar","Numbered list styles toolbar":"Numbered list styles toolbar","Toggle the disc list style":"Toggle the disc list style","Toggle the circle list style":"Toggle the circle list style","Toggle the square list style":"Toggle the square list style","Toggle the decimal list style":"Toggle the decimal list style","Toggle the decimal with leading zero list style":"Toggle the decimal with leading zero list style","Toggle the lower–roman list style":"Toggle the lower–roman list style","Toggle the upper–roman list style":"Toggle the upper–roman list style","Toggle the lower–latin list style":"Toggle the lower–latin list style","Toggle the upper–latin list style":"Toggle the upper–latin list style",Disc:"Disc",Circle:"Circle",Square:"Square",Decimal:"Decimal","Decimal with leading zero":"Decimal with leading zero","Lower–roman":"Lower–roman","Upper-roman":"Upper-roman","Lower-latin":"Lower-latin","Upper-latin":"Upper-latin","List properties":"List properties","Start at":"Start at","Invalid start index value.":"Invalid start index value.","Start index must be greater than 0.":"Start index must be greater than 0.","Reversed order":"Reversed order","Keystrokes that can be used in a list":"Keystrokes that can be used in a list","Increase list item indent":"Increase list item indent","Decrease list item indent":"Decrease list item indent","Entering a to-do list":"Entering a to-do list","Leaving a to-do list":"Leaving a to-do list",Unlink:"Unlink",Link:"Link","Link URL":"Link URL","Link URL must not be empty.":"Link URL must not be empty.","Link image":"Link image","Edit link":"Edit link","Open link in new tab":"Open link in new tab","Open in a new tab":"Open in a new tab",Downloadable:"Downloadable","Create link":"Create link","Move out of a link":"Move out of a link","Link properties":"Link properties","Displayed text":"Displayed text","No links available":"No links available",Language:"Language","Choose language":"Choose language","Remove language":"Remove language","Increase indent":"Increase indent","Decrease indent":"Decrease indent","image widget":"image widget","Wrap text":"Wrap text","Break text":"Break text","In line":"In line","Side image":"Side image","Full size image":"Full size image","Left aligned image":"Left aligned image","Centered image":"Centered image","Right aligned image":"Right aligned image","Change image text alternative":"Change image text alternative","Text alternative":"Text alternative","Enter image caption":"Enter image caption","Insert image":"Insert image","Replace image":"Replace image","Upload from computer":"Upload from computer","Replace from computer":"Replace from computer","Upload image from computer":"Upload image from computer","Image from computer":"Image from computer","From computer":"From computer","Replace image from computer":"Replace image from computer","Upload failed":"Upload failed","You have no image upload permissions.":"You have no image upload permissions.","Image toolbar":"Image toolbar","Resize image":"Resize image","Resize image to %0":"Resize image to %0","Resize image to the original size":"Resize image to the original size","Resize image (in %0)":"Resize image (in %0)",Original:"Original","Custom image size":"Custom image size",Custom:"Custom","Image resize list":"Image resize list","Insert image via URL":"Insert image via URL","Insert via URL":"Insert via URL","Image via URL":"Image via URL","Via URL":"Via URL","Update image URL":"Update image URL","Caption for the image":"Caption for the image","Caption for image: %0":"Caption for image: %0","The value must not be empty.":"The value must not be empty.","The value should be a plain number.":"The value should be a plain number.","Uploading image":"Uploading image","Image upload complete":"Image upload complete","Error during image upload":"Error during image upload",Image:"Image","Image Resize":"Image Resize","Text Alternative":"Text Alternative","HTML object":"HTML object","Insert HTML":"Insert HTML","HTML snippet":"HTML snippet","Paste raw HTML here...":"Paste raw HTML here...","Edit source":"Edit source","Save changes":"Save changes","No preview available":"No preview available","Empty snippet content":"Empty snippet content","Horizontal line":"Horizontal line","Yellow marker":"Yellow marker","Green marker":"Green marker","Pink marker":"Pink marker","Blue marker":"Blue marker","Red pen":"Red pen","Green pen":"Green pen","Remove highlight":"Remove highlight",Highlight:"Highlight","Text highlight toolbar":"Text highlight toolbar",Heading:"Heading","Choose heading":"Choose heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6","Type your title":"Type your title","Type or paste your content here.":"Type or paste your content here.","Enter fullscreen mode":"Enter fullscreen mode","Leave fullscreen mode":"Leave fullscreen mode","Fullscreen mode":"Fullscreen mode","Toggle fullscreen mode":"Toggle fullscreen mode","Document outline":"Document outline","Connected users":"Connected users","Font Size":"Font Size",Tiny:"Tiny",Small:"Small",Big:"Big",Huge:"Huge","Font Family":"Font Family",Default:"Default","Font Color":"Font Color","Font Background Color":"Font Background Color","Document colors":"Document colors","Find and replace":"Find and replace","Find in text…":"Find in text…",Find:"Find","Previous result":"Previous result","Next result":"Next result",Replace:"Replace","Replace all":"Replace all","Match case":"Match case","Whole words only":"Whole words only","Replace with…":"Replace with…","Text to find must not be empty.":"Text to find must not be empty.","Tip: Find some text first in order to replace it.":"Tip: Find some text first in order to replace it.","Advanced options":"Advanced options","Find in the document":"Find in the document","Insert a soft break (a <code><br></code> element)":"Insert a soft break (a <code><br></code> element)","Insert a hard break (a new paragraph)":"Insert a hard break (a new paragraph)",Emoji:"Emoji","Show all emoji...":"Show all emoji...","Find an emoji (min. 2 characters)":"Find an emoji (min. 2 characters)",'No emojis were found matching "%0".':'No emojis were found matching "%0".',"Keep on typing to see the emoji.":"Keep on typing to see the emoji.","The query must contain at least two characters.":"The query must contain at least two characters.","Smileys & Expressions":"Smileys & Expressions","Gestures & People":"Gestures & People","Animals & Nature":"Animals & Nature","Food & Drinks":"Food & Drinks","Travel & Places":"Travel & Places",Activities:"Activities",Objects:"Objects",Symbols:"Symbols",Flags:"Flags","Select skin tone":"Select skin tone","Default skin tone":"Default skin tone","Light skin tone":"Light skin tone","Medium Light skin tone":"Medium Light skin tone","Medium skin tone":"Medium skin tone","Medium Dark skin tone":"Medium Dark skin tone","Dark skin tone":"Dark skin tone","Emoji picker":"Emoji picker",Cancel:"Cancel",Clear:"Clear","Remove color":"Remove color","Restore default":"Restore default",Save:"Save","Show more items":"Show more items","%0 of %1":"%0 of %1","Cannot upload file:":"Cannot upload file:","Rich Text Editor. Editing area: %0":"Rich Text Editor. Editing area: %0","Insert with file manager":"Insert with file manager","Replace with file manager":"Replace with file manager","Insert image with file manager":"Insert image with file manager","Replace image with file manager":"Replace image with file manager",File:"File","With file manager":"With file manager","Toggle caption off":"Toggle caption off","Toggle caption on":"Toggle caption on","Content editing keystrokes":"Content editing keystrokes","These keyboard shortcuts allow for quick access to content editing features.":"These keyboard shortcuts allow for quick access to content editing features.","User interface and content navigation keystrokes":"User interface and content navigation keystrokes","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.","Close contextual balloons, dropdowns, and dialogs":"Close contextual balloons, dropdowns, and dialogs","Open the accessibility help dialog":"Open the accessibility help dialog","Move focus between form fields (inputs, buttons, etc.)":"Move focus between form fields (inputs, buttons, etc.)","Move focus to the menu bar, navigate between menu bars":"Move focus to the menu bar, navigate between menu bars","Move focus to the toolbar, navigate between toolbars":"Move focus to the toolbar, navigate between toolbars","Navigate through the toolbar or menu bar":"Navigate through the toolbar or menu bar","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.",Accept:"Accept",Paragraph:"Paragraph","Color picker":"Color picker","Please try a different phrase or check the spelling.":"Please try a different phrase or check the spelling.",Source:"Source",Insert:"Insert",Update:"Update",Back:"Back","Insert code block":"Insert code block","Plain text":"Plain text","Leaving %0 code snippet":"Leaving %0 code snippet","Entering %0 code snippet":"Entering %0 code snippet","Entering code snippet":"Entering code snippet","Leaving code snippet":"Leaving code snippet","Code block":"Code block","Copy selected content":"Copy selected content","Paste content":"Paste content","Paste content as plain text":"Paste content as plain text","Insert image or file":"Insert image or file","Could not obtain resized image URL.":"Could not obtain resized image URL.","Selecting resized image failed":"Selecting resized image failed","Could not insert image at the current position.":"Could not insert image at the current position.","Inserting image failed":"Inserting image failed",Bookmark:"Bookmark","Edit bookmark":"Edit bookmark","Remove bookmark":"Remove bookmark","Bookmark name":"Bookmark name","Enter the bookmark name without spaces.":"Enter the bookmark name without spaces.","Bookmark must not be empty.":"Bookmark must not be empty.","Bookmark name cannot contain space characters.":"Bookmark name cannot contain space characters.","Bookmark name already exists.":"Bookmark name already exists.","bookmark widget":"bookmark widget","Bookmark toolbar":"Bookmark toolbar",Bookmarks:"Bookmarks","No bookmarks available.":"No bookmarks available.","Scroll to bookmark":"Scroll to bookmark","Open file manager":"Open file manager","Cannot determine a category for the uploaded file.":"Cannot determine a category for the uploaded file.","Cannot access default workspace.":"Cannot access default workspace.","You have no image editing permissions.":"You have no image editing permissions.","Edit image":"Edit image","Processing the edited image.":"Processing the edited image.","Server failed to process the image.":"Server failed to process the image.","Failed to determine category of edited image.":"Failed to determine category of edited image.","Block quote":"Block quote",Bold:"Bold",Italic:"Italic",Underline:"Underline",Code:"Code",Strikethrough:"Strikethrough",Subscript:"Subscript",Superscript:"Superscript","Italic text":"Italic text","Move out of an inline code style":"Move out of an inline code style","Bold text":"Bold text","Underline text":"Underline text","Strikethrough text":"Strikethrough text","Saving changes":"Saving changes","Revert autoformatting action":"Revert autoformatting action","Align left":"Align left","Align right":"Align right","Align center":"Align center",Justify:"Justify","Text alignment":"Text alignment","Text alignment toolbar":"Text alignment toolbar"},getPluralForm(n){return n!=1}}};class hB{loader;url;constructor(e,t){this.loader=e,this.url=t}async upload(){const e=new FormData;let t=await this.loader.file;e.append("name",t.name),e.append("file",t);try{let i=await Bn.post(this.url,e);return{default:{msg:i.data.msg,url:window.bindPublic?`/public${i.data.url}`:i.data.url}.url}}catch(i){throw console.error("Upload error:",i),i}}}class mB extends k{static get requires(){return["ImageUpload"]}init(){const e=this.editor,t=window.location.pathname.split("/").filter(s=>s!==""),i=t.indexOf("model"),r=i>=0?t[i+1]:void 0;e.plugins.get("FileRepository").createUploadAdapter=s=>{const o=`${window.routePrefix}/model/${r}/ckeditor5/upload`;return new hB(s,o)}}}const Ih={pl:eB,ar:tB,zn:iB,de:nB,es:rB,fr:sB,hi:oB,ko:aB,pt:lB,ru:cB,vi:uB,en:dB},gB=document.documentElement.lang,Ph=Ih[gB]||Ih.en;function fB({initialValue:n,onChange:e,options:t,disabled:i}){const r=A.useRef(null),[s,o]=A.useState(!1);A.useEffect(()=>(o(!0),()=>o(!1)),[]);const a=A.useMemo(()=>s?{translations:[Ph],toolbar:{items:t?.items??[],shouldNotGroupWhenFull:!0},plugins:[tS,vS,zS,CS,hI,yI,EI,UI,GI,jI,Sp,LP,VP,Al,NP,xp,mB,mP,ES,k2,$2,nR,Hs,aR,lR,iL,iM,QM,CM,SM,qM,nM,AS],heading:{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h1",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h2",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h3",title:"Heading 3",class:"ck-heading_heading3"},{model:"heading4",view:"h4",title:"Heading 4",class:"ck-heading_heading4"},{model:"heading5",view:"h5",title:"Heading 5",class:"ck-heading_heading5"},{model:"heading6",view:"h6",title:"Heading 6",class:"ck-heading_heading6"}]},image:{toolbar:["toggleImageCaption","imageTextAlternative","|","imageStyle:inline","imageStyle:wrapText","imageStyle:breakText","|","resizeImage"]},initialData:n,licenseKey:"GPL",link:{addTargetToExternalLinks:!0,defaultProtocol:"https://",decorators:{toggleDownloadable:{mode:"manual",label:"Downloadable",attributes:{download:"file"}}}},list:{properties:{styles:!0,startIndex:!0,reversed:!0}},placeholder:"",table:{contentToolbar:["tableColumn","tableRow","mergeTableCells","tableProperties","tableCellProperties"]}}:{},[s,t,Ph,n]),l=A.useCallback((u,d)=>{const h=d.getData();e(h)},[e]),c=A.useCallback(u=>{r.current=u},[]);return A.useEffect(()=>{r.current&&r.current.getData()!==n&&r.current.setData(n)},[n]),w.jsx("div",{className:`max-fit ${i?"pointer-events-none opacity-50 cursor-not-allowed":""}`,children:w.jsx("div",{className:"editor-container editor-container_classic-editor",children:w.jsx("div",{className:"editor-container__editor",children:w.jsx("div",{children:s&&w.jsx(qh,{editor:XA,config:a,onChange:l,onReady:c})})})})})}const pB=w.jsx("svg",{width:"10",height:"10",viewBox:"0 0 22 22",xmlns:"http://www.w3.org/2000/svg",children:w.jsx("path",{d:"M2.99998 -0.000206962C2.7441 -0.000206962 2.48794 0.0972617 2.29294 0.292762L0.292945 2.29276C-0.0980552 2.68376 -0.0980552 3.31682 0.292945 3.70682L7.58591 10.9998L0.292945 18.2928C-0.0980552 18.6838 -0.0980552 19.3168 0.292945 19.7068L2.29294 21.7068C2.68394 22.0978 3.31701 22.0978 3.70701 21.7068L11 14.4139L18.2929 21.7068C18.6829 22.0978 19.317 22.0978 19.707 21.7068L21.707 19.7068C22.098 19.3158 22.098 18.6828 21.707 18.2928L14.414 10.9998L21.707 3.70682C22.098 3.31682 22.098 2.68276 21.707 2.29276L19.707 0.292762C19.316 -0.0982383 18.6829 -0.0982383 18.2929 0.292762L11 7.58573L3.70701 0.292762C3.51151 0.0972617 3.25585 -0.000206962 2.99998 -0.000206962Z"})}),bB="_Wrapper_18nsw_1",wB="_active_18nsw_7",yB="_Page_18nsw_8",vB="_clone_18nsw_18",kB="_Remove_18nsw_29",_B="_insertBefore_18nsw_35",CB="_insertAfter_18nsw_36",LB="_vertical_18nsw_44",It={Wrapper:bB,active:wB,Page:yB,clone:vB,Remove:kB,insertBefore:_B,insertAfter:CB,vertical:LB};var TB=(n=>(n[n.Before=-1]="Before",n[n.After=1]="After",n))(TB||{}),Ab=(n=>(n.Horizontal="horizontal",n.Vertical="vertical",n.Grid="grid",n))(Ab||{});const aV=A.forwardRef(function({id:e,index:t,active:i,clone:r,insertPosition:s,layout:o,onRemove:a,style:l,url:c,mimeType:u,fileName:d,...h},m){const g=u?.startsWith("image/");return w.jsxs("li",{className:fn(It.Wrapper,i&&It.active,r&&It.clone,s===-1&&It.insertBefore,s===1&&It.insertAfter,o==="vertical"&&It.vertical),style:l,ref:m,children:[w.jsxs("button",{className:`${It.Page} after:bg-black dark:after:bg-gray-300`,"data-id":e.toString(),...h,children:[w.jsx("img",{src:c,alt:"",className:"absolute top-0 left-0 w-full h-full object-cover overflow-hidden rounded-[5px]"}),!g&&w.jsx("div",{className:"absolute inset-x-0 bottom-0 break-words text-white text-sm font-medium bg-black/75 h-[40%] rounded-b-[5px] p-2",children:d})]}),!i&&a?w.jsx("button",{className:It.Remove,onClick:a,children:pB}):null]})}),EB=A.lazy(()=>$i(()=>import("./toast-editor-ofn75pVw.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url)),xB=A.lazy(()=>$i(()=>import("./app.js").then(n=>n.ck),__vite__mapDeps([1,2,3,4,5]),import.meta.url)),SB=A.lazy(()=>$i(()=>import("./app.js").then(n=>n.cj),__vite__mapDeps([1,2,3,4,5]),import.meta.url)),AB=A.lazy(()=>$i(()=>import("./geo-json-DqtGUsLr.js"),__vite__mapDeps([6,1,2,3,4,5]),import.meta.url)),IB=A.lazy(()=>$i(()=>import("./app.js").then(n=>n.cl),__vite__mapDeps([1,2,3,4,5]),import.meta.url)),PB=A.lazy(()=>$i(()=>import("./media-manager-CFw0tBCd.js"),__vite__mapDeps([7,1,2,3,4,5,8,9,10,11]),import.meta.url)),Hl=A.memo(({field:n,value:e,onChange:t,processing:i,notFound:r,search:s})=>{const o=HB(),a=A.useCallback(L=>{t(n.name,L.target.value)},[t,n.name]),l=A.useCallback(L=>{t(n.name,L[0])},[t,n.name]),c=A.useCallback(L=>{t(n.name,L)},[t,n.name]),u=A.useCallback(L=>{t(n.name,L)},[t,n.name]),d=A.useCallback(L=>{t(n.name,L)},[t,n.name]),h=A.useCallback(L=>{t(n.name,L)},[t,n.name]),m=A.useCallback(L=>{t(n.name,L.json)},[t,n.name]),g=A.useCallback(L=>{t(n.name,L)},[t,n.name]),f=A.useCallback(L=>{t(n.name,L)},[t,n.name]),b=A.useCallback(L=>{t(n.name,L)},[t,n.name]),y=A.useCallback(L=>{const O=L.map(U=>({id:U.id,url:U.url,mimeType:U.mimeType,filename:U.filename}));t(n.name,O)},[t,n.name]),C=A.useMemo(()=>n.type==="color"?"max-w-[40px] p-px h-[40px] border-transparent":["date","datetime-local","time","month","week"].includes(n.type)?"w-fit":"",[]);switch(n.type){case"checkbox":return w.jsx(No,{id:`${n.type}-${n.name}`,disabled:i||n.disabled,tabIndex:1,required:n.required,className:"cursor-pointer size-5 scroll-pt-30 scroll-mt-30",checked:e??!1,onCheckedChange:c});case"textarea":return w.jsx(Hb,{id:`${n.type}-${n.name}`,tabIndex:1,disabled:i||n.disabled,value:e??"",required:n.required,onChange:a,placeholder:n.label,className:"scroll-pt-30 scroll-mt-30"});case"range":return w.jsxs(w.Fragment,{children:[w.jsx("output",{children:e}),w.jsx(Ub,{defaultValue:[Number(n.value)||0],value:[Number(e)||0],max:n.options?.max?Number(n.options.max):100,min:n.options?.min?Number(n.options.min):0,step:1,id:`${n.type}-${n.name}`,onValueChange:l,disabled:i||n.disabled})]});case"select":return w.jsxs(Nb,{onValueChange:u,value:e??"",disabled:i||n.disabled,required:n.required,children:[w.jsx(Ob,{className:"w-full cursor-pointer min-h-10 scroll-pt-30 scroll-mt-30",id:n.name,children:w.jsx(Db,{placeholder:""})}),w.jsx(zb,{className:"z-[9999999]",children:(Array.isArray(n.isIn)?n.isIn.map(L=>[L,L]):Object.entries(n.isIn)).map(([L,O])=>w.jsx(Fb,{value:String(L),children:String(O)},String(L)))})]});case"association":case"association-many":case"select-many":{const O=(n.type==="association"||n.type==="association-many")&&!!n.relatedModel&&!!o,U=O?D=>o.open(n.relatedModel,D):void 0,x=O&&n.canCreateRelated?()=>o.openCreate(n.relatedModel):void 0;return w.jsx(Vb,{options:n.options,onValueChange:b,defaultValue:e??[],variant:"secondary",notFound:r,search:s,disabled:i||n.disabled,mode:n.type==="association"?"single":"multiple",maxCount:10,onOpenItem:U,onAddNew:x,className:`${i?"pointer-events-none":""} scroll-pt-30 scroll-mt-30`})}case"wysiwyg":return n.options?.name==="ckeditor"?w.jsx(fB,{initialValue:e??"",onChange:d,options:n.options?.config,disabled:i||n.disabled}):w.jsx(wi,{moduleComponent:n.options?.path,options:n.options?.config,initialValue:e??"",name:`${n.type}-${n.name}`,onChange:d,disabled:i||n.disabled});case"markdown":return n.options?.name==="toast-ui"?w.jsx(EB,{initialValue:e??"",options:n.options?.config,onChange:d,disabled:i||n.disabled}):w.jsx(wi,{moduleComponent:n.options?.path,options:n.options?.config,initialValue:e??"",name:`${n.type}-${n.name}`,onChange:d,disabled:i||n.disabled});case"table":return n.options?.name==="handsontable"?w.jsx(xB,{data:e,config:n.options?.config,onChange:h,disabled:i||n.disabled}):w.jsx(wi,{moduleComponent:n.options?.path,options:n.options?.config,initialValue:e??"",name:`${n.type}-${n.name}`,onChange:d,disabled:i||n.disabled});case"jsonEditor":return n.options?.name==="jsoneditor"?w.jsx(SB,{content:e,name:`${n.type}-${n.name}`,onChange:m,...n.options?.config,disabled:i||n.disabled}):w.jsx(wi,{moduleComponent:n.options?.path,options:n.options?.config,initialValue:e??"",name:`${n.type}-${n.name}`,onChange:m,disabled:i||n.disabled});case"codeEditor":return n.options?.name==="monaco"?w.jsx(IB,{value:e??"",onChange:g,options:n.options?.config,disabled:i||n.disabled}):w.jsx(wi,{moduleComponent:n.options?.path,options:n.options?.config,initialValue:e??"",name:`${n.type}-${n.name}`,onChange:m,disabled:i||n.disabled});case"geoJson":return n.options?.name==="leaflet"?w.jsx(AB,{mode:"all",initialFeatures:e??void 0,onFeaturesChange:f,disabled:i||n.disabled}):w.jsx(wi,{moduleComponent:n.options?.path,options:n.options?.config,initialValue:e??"",name:`${n.type}-${n.name}`,onChange:m,disabled:i||n.disabled});case"mediamanager":case"single-file":return w.jsx(PB,{layout:Ab.Grid,value:e,onChange:y,config:{...n.options},type:n.type,name:n.name});default:return w.jsx(Bb,{id:n.name,type:n.type,className:`${C} min-h-10 scroll-pt-30 scroll-mt-30`,required:n.required,tabIndex:1,value:e??"",onChange:a,disabled:i||n.disabled,placeholder:n.label})}}),lV=Object.freeze(Object.defineProperty({__proto__:null,default:Hl},Symbol.toStringTag,{value:"Module"}));var Sa=new Map,Vr=new WeakMap,Rh=0,RB=void 0;function MB(n){return n?(Vr.has(n)||(Rh+=1,Vr.set(n,Rh.toString())),Vr.get(n)):"0"}function BB(n){return Object.keys(n).sort().filter(e=>n[e]!==void 0).map(e=>`${e}_${e==="root"?MB(n.root):n[e]}`).toString()}function VB(n){const e=BB(n);let t=Sa.get(e);if(!t){const i=new Map;let r;const s=new IntersectionObserver(o=>{o.forEach(a=>{var l;const c=a.isIntersecting&&r.some(u=>a.intersectionRatio>=u);n.trackVisibility&&typeof a.isVisible>"u"&&(a.isVisible=c),(l=i.get(a.target))==null||l.forEach(u=>{u(c,a)})})},n);r=s.thresholds||(Array.isArray(n.threshold)?n.threshold:[n.threshold||0]),t={id:e,observer:s,elements:i},Sa.set(e,t)}return t}function NB(n,e,t={},i=RB){if(typeof window.IntersectionObserver>"u"&&i!==void 0){const l=n.getBoundingClientRect();return e(i,{isIntersecting:i,target:n,intersectionRatio:typeof t.threshold=="number"?t.threshold:0,time:0,boundingClientRect:l,intersectionRect:l,rootBounds:l}),()=>{}}const{id:r,observer:s,elements:o}=VB(t),a=o.get(n)||[];return o.has(n)||o.set(n,a),a.push(e),s.observe(n),function(){a.splice(a.indexOf(e),1),a.length===0&&(o.delete(n),s.unobserve(n)),o.size===0&&(s.disconnect(),Sa.delete(r))}}function OB({threshold:n,delay:e,trackVisibility:t,rootMargin:i,root:r,triggerOnce:s,skip:o,initialInView:a,fallbackInView:l,onChange:c}={}){var u;const[d,h]=A.useState(null),m=A.useRef(c),[g,f]=A.useState({inView:!!a,entry:void 0});m.current=c,A.useEffect(()=>{if(o||!d)return;let L;return L=NB(d,(O,U)=>{f({inView:O,entry:U}),m.current&&m.current(O,U),U.isIntersecting&&s&&L&&(L(),L=void 0)},{root:r,rootMargin:i,threshold:n,trackVisibility:t,delay:e},l),()=>{L&&L()}},[Array.isArray(n)?n.toString():n,d,r,i,s,o,t,l,e]);const b=(u=g.entry)==null?void 0:u.target,y=A.useRef(void 0);!d&&b&&!s&&!o&&y.current!==b&&(y.current=b,f({inView:!!a,entry:void 0}));const C=[h,g.inView,g.entry];return C.ref=C[0],C.inView=C[1],C.entry=C[2],C}const DB=({changes:n,title:e="Changes",className:t="",messages:i={}})=>{const{t:r}=Aa({page:i}),s=(l,c)=>r(l,c);if(!n||n.length===0)return w.jsx("div",{className:fn("bg-muted border border-border rounded-lg p-4",t),children:w.jsxs("div",{className:"flex items-center text-muted-foreground",children:[w.jsx(jb,{className:"w-5 h-5 mr-2"}),w.jsx("span",{children:s("Changes not found","Changes not found")})]})});const o=l=>l===null?"null":l===void 0?"—":typeof l=="boolean"?l?s("Yes","Yes"):s("No","No"):typeof l=="object"?JSON.stringify(l):String(l),a=l=>l.oldValue===void 0?"added":l.newValue===void 0?"removed":"modified";return w.jsxs("div",{className:fn("bg-card border border-border rounded-lg shadow-sm",t),children:[w.jsx("div",{className:"px-4 py-3 border-b border-border bg-muted",children:w.jsxs("h3",{className:"text-lg font-semibold text-card-foreground flex items-center",children:[w.jsx(jl,{className:"w-5 h-5 mr-2"}),e," (",n.length,")"]})}),w.jsx("div",{className:"divide-y divide-border",children:n.map((l,c)=>{const u=a(l),d=u==="added"?Wb:u==="removed"?qb:jl,h=fn("text-xs px-2 py-1 rounded-full bg-opacity-10",u==="added"&&"text-green-600 bg-green-100",u==="removed"&&"text-destructive bg-destructive/20",u==="modified"&&"text-primary bg-primary/20"),m=u==="added"?"text-green-600":u==="removed"?"text-destructive":"text-primary";return w.jsxs("div",{className:"p-4 hover:bg-muted/50 transition-colors",children:[w.jsxs("div",{className:"flex items-center justify-between mb-2",children:[w.jsxs("div",{className:"flex items-center",children:[Nt.createElement(d,{className:fn("w-4 h-4 mr-2",m)}),w.jsx("span",{className:"font-medium text-card-foreground",children:l.field})]}),w.jsx("span",{className:h,children:u==="added"?s("Added","Added"):u==="removed"?s("Removed","Removed"):s("Updated","Updated")})]}),w.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 text-sm",children:[u!=="added"&&w.jsxs("div",{className:"p-2 bg-destructive/10 border border-destructive/20 rounded",children:[w.jsxs("div",{className:"text-xs text-destructive font-medium mb-1",children:[s("Old","Old"),":"]}),w.jsx("div",{className:"text-destructive-foreground font-mono break-words",children:o(l.oldValue)})]}),u!=="removed"&&w.jsxs("div",{className:"p-2 bg-green-50 border border-green-100 rounded",children:[w.jsxs("div",{className:"text-xs text-green-600 font-medium mb-1",children:[s("New","New"),":"]}),w.jsx("div",{className:"text-green-800 font-mono break-words",children:o(l.newValue)})]})]}),u==="modified"&&w.jsxs("div",{className:"mt-2 flex items-center text-xs text-muted-foreground",children:[w.jsx($b,{className:"w-3 h-3 mr-1"}),s("changed type","changed type"),": ",l.type]})]},c)})})]})},zB=({modelName:n,modelId:e,handleWatchHistory:t})=>{const[i,r]=A.useState([]),[s,o]=A.useState(!1),[a,l]=A.useState(null),[c,u]=A.useState(!0),d="currentHistoryView",{t:h}=Aa(),m=h("Diff");A.useEffect(()=>{(async()=>{u(!0);try{const y=await Bn.post(`${window.routePrefix}/history/get-model-history`,{modelName:n,modelId:e});y.data.data&&r(y.data.data)}catch(y){console.log(y)}finally{u(!1)}})()},[n,e]);const g=async b=>{try{const y=await Bn.post(`${window.routePrefix}/history/get-model-fields`,{historyId:b});y.data.data&&(localStorage.setItem(d,b.toString()),t(y.data.data))}catch(y){console.log(y)}},f=b=>{const y=localStorage.getItem(d);return y?y===b.id.toString():b.isCurrent};return w.jsx("div",{className:"relative h-full",children:w.jsxs("div",{className:"h-full overflow-y-auto mt-5 pr-5",children:[w.jsxs(Gb,{wrapperHeight:"max-h-full",children:[w.jsx(Kb,{className:"sticky top-0 bg-background shadow",children:w.jsxs(hr,{children:[w.jsx(en,{className:"p-2 text-left",children:h("Date")}),w.jsx(en,{className:"p-2 text-left",children:h("Event")}),w.jsx(en,{className:"p-2 text-left",children:h("User")}),w.jsx(en,{className:"p-2 text-left",children:m}),w.jsx(en,{className:"p-2 text-left"})]})}),w.jsx(Zb,{children:c?w.jsx(hr,{children:w.jsx($t,{colSpan:5,className:"p-10 text-center",children:w.jsx(Jr,{className:"mx-auto size-8 animate-spin"})})}):i.length>0?i.map(b=>w.jsxs(hr,{children:[w.jsx($t,{className:"p-2 self-start pt-2.5",children:new Date(b.createdAt).toLocaleString()}),w.jsx($t,{className:"p-2 self-start pt-2.5 capitalize",children:b.action}),w.jsx($t,{className:"p-2 self-start pt-2.5 max-w-[250px] whitespace-break-spaces",children:w.jsx("div",{className:"max-w-[500px] whitespace-break-spaces font-medium text-chart-3",children:b.user.login})}),w.jsx($t,{className:"p-2 align-middle",children:w.jsx(Mt,{variant:"green",size:"sm",onClick:()=>{l(b.diff),o(!0)},children:w.jsx(Jb,{})})}),w.jsx($t,{className:"p-2 align-middle text-center",children:f(b)?w.jsx("span",{className:"font-medium",children:h("Current")}):w.jsx(Mt,{variant:"outline",size:"sm",onClick:()=>g(b.id),children:h("Watch")})})]},b.id)):w.jsx(hr,{children:w.jsx($t,{colSpan:5,className:"p-4 text-center font-medium text-muted-foreground",children:h("There is no history")})})})]}),w.jsx(Yb,{open:s,onOpenChange:b=>{o(b),b||setTimeout(()=>{document.body.removeAttribute("style")},300)},children:w.jsxs(Xb,{className:"z-[1022] sm:max-w-[60vw]",children:[w.jsx(Qb,{children:w.jsx(ew,{children:m})}),w.jsx(DB,{changes:a,className:"max-h-[80vh] overflow-auto sm:max-w-[60vw] w-full"})]})})]})})},FB=({dialogRef:n,modelId:e,modelName:t,callback:i})=>w.jsxs(Bh,{ref:n,children:[w.jsx(Vh,{}),w.jsx(Nh,{children:w.jsx(Oh,{children:w.jsx(zB,{modelId:e,modelName:t,handleWatchHistory:i})})})]}),Mh=A.memo(({field:n})=>!n||typeof n!="object"||!n.label?(console.error("Invalid field for LabelRenderer:",n),null):w.jsxs("div",{className:"flex gap-3",children:[w.jsx(Oo,{htmlFor:`${n.type}-${n.name}`,children:n.label}),n.tooltip&&w.jsx(iw,{children:w.jsxs(nw,{children:[w.jsx(rw,{onClick:e=>e.preventDefault(),children:w.jsx(Do,{iconNode:sw,className:"text-primary w-5 h-5 cursor-pointer"})}),w.jsx(ow,{align:"center",side:"top",className:"z-1002",children:w.jsx("p",{children:n.tooltip})})]})})]})),UB=A.memo(({field:n,value:e,onChange:t,processing:i,notFound:r,search:s,invalidFieldMessage:o})=>{if(!n||typeof n!="object"||!n.name||!n.type)return console.error("Invalid field for LazyField:",n),w.jsx("div",{className:"text-red-500",children:o||"Error: Invalid field data"});const[a,l]=OB({triggerOnce:!0,rootMargin:"100px 0px"});return w.jsx("div",{ref:a,className:"grid gap-4 w-full",children:l?w.jsx(Hl,{field:n,value:e,onChange:t,notFound:r,search:s,processing:i}):w.jsx(aw,{className:"w-full h-[250px] rounded-sm"})})}),Ib=({page:n,catalog:e,callback:t,openNewWindow:i,openNewWindowLabel:r,isNavigation:s,DnavVisible:o,visibleLable:a})=>{const{btnBack:l,btnHistory:c,view:u,edit:d,history:h,notFound:m,model:g,fields:f}=n.props,{t:b}=Aa(),{data:y,setData:C,post:L,processing:O,transform:U}=tw({...Object.fromEntries((f||[]).map(V=>[V.name,V.value??void 0])),jsonPopupCatalog:e}),[x,D]=A.useState(!1),[I,M]=A.useState(i??!1),[J,be]=A.useState(o??!1),Q=A.useRef(null);A.useEffect(()=>{localStorage.removeItem("currentHistoryView")},[]),A.useEffect(()=>(M(i??!1),Wl(),C({...Object.fromEntries((f||[]).map(V=>[V.name,(V.type==="mediamanager"||V.type==="single-file")&&(V.value===null||V.value===void 0)?[]:V.value])),jsonPopupCatalog:e}),()=>Wl()),[f,e,i,C]);const dr=A.useCallback((V,rt)=>{C(V,rt)},[C]);if(!Array.isArray(f))return console.error("Fields is not an array:",f),w.jsx("div",{className:"p-4 text-red-500",children:b("Error: Fields data is invalid")});if(f.length===0)return console.warn("Fields array is empty"),w.jsx("div",{className:"p-4 text-gray-500",children:b("No fields to display")});const Qi=f.filter(V=>!V||typeof V!="object"||!V.name||!V.type||!V.label);if(Qi.length>0)return console.error("Invalid fields found:",Qi),w.jsx("div",{className:"p-4 text-red-500",children:b("Error: Some fields are missing required properties (name, type, label)")});const Rb=async V=>{if(V.preventDefault(),e){D(!0);const rt=await Bn.post(n.props.postLink,y);rt.status===200&&t&&(s?t(rt.data.record,I,J):t(rt.data.record))}else{const rt=localStorage.getItem("backUrl");U(Mb=>({...Mb,redirectUrl:rt??""})),L(n.props.postLink,{onSuccess:()=>{localStorage.setItem("backUrl","")}})}};return w.jsxs(w.Fragment,{children:[w.jsx("div",{className:"w-full sticky z-[1001] top-0 bg-background shadow-md lg:hidden",children:w.jsxs("div",{className:"p-4 flex gap-4",children:[!e&&w.jsx(Mt,{className:"w-fit",asChild:!0,children:w.jsxs(ql,{href:l.link,preserveScroll:!0,children:[w.jsx(Do,{iconNode:$l}),l.title]})}),w.jsxs(Mt,{variant:"green",type:"submit",className:"w-fit lg:hidden",form:"addUserForm",disabled:x||O||n.props.view||Gl(),children:[x||O&&w.jsx(Jr,{className:"h-4 w-4 animate-spin"}),n.props.btnSave.title]}),h&&(d||u)&&w.jsx("div",{className:"flex gap-2 justify-start",children:w.jsx(Mt,{variant:"outline",className:"w-fit",onClick:V=>{V.preventDefault(),Q.current?.open()},children:c.title})})]})}),w.jsxs("div",{className:"p-4 w-full mt-6",children:[w.jsx("form",{id:"addUserForm",onSubmit:Rb,className:u?"cursor-not-allowed":"",children:w.jsxs("div",{className:"grid gap-4 max-w-286 pb-8 lg:grid-cols-[1fr_220px]",children:[w.jsx("div",{className:"flex flex-col gap-10",children:f.map(V=>w.jsx("div",{className:`grid gap-4 w-full ${u?"pointer-events-none":""}`,children:V.type==="markdown"||V.type==="table"||V.type==="jsonEditor"||V.type==="codeEditor"||V.type==="geoJson"?w.jsxs(w.Fragment,{children:[w.jsx(Mh,{field:V}),w.jsx(Zl,{message:Kl(`${V.type}-${V.name}`)}),w.jsx(UB,{field:V,value:y[V.name],onChange:dr,processing:x||O||u,notFound:m,search:n.props.search,invalidFieldMessage:b("Error: Invalid field data")})]}):w.jsxs(w.Fragment,{children:[w.jsx(Mh,{field:V}),w.jsx(Zl,{message:Kl(`${V.type}-${V.name}`)}),w.jsx(Hl,{field:V,value:y[V.name],onChange:dr,processing:x||O||u,notFound:m,search:n.props.search})]})},V.name))}),w.jsxs("div",{className:"p-4 rounded-md h-fit sticky top-[54px] hidden lg:grid gap-4 shadow",children:[w.jsxs("div",{className:"flex gap-4",children:[!e&&w.jsx(Mt,{className:"w-fit",asChild:!0,children:w.jsxs(ql,{href:l.link,preserveScroll:!0,children:[w.jsx(Do,{iconNode:$l}),l.title]})}),w.jsxs(Mt,{variant:"green",type:"submit",className:"w-fit",disabled:x||O||n.props.view||Gl(),children:[(x||O)&&w.jsx(Jr,{className:"h-4 w-4 animate-spin"}),n.props.btnSave.title]})]}),s&&w.jsxs(w.Fragment,{children:[w.jsxs("div",{className:"flex gap-4 items-center",children:[w.jsx(No,{id:"targetBlank",checked:I,onCheckedChange:V=>M(!!V),className:"cursor-pointer size-5"}),w.jsx(Oo,{htmlFor:"targetBlank",children:r})]}),w.jsxs("div",{className:"flex gap-4 items-center",children:[w.jsx(No,{id:"visible",checked:J,onCheckedChange:V=>be(!!V),className:"cursor-pointer size-5"}),w.jsx(Oo,{htmlFor:"visible",children:a})]})]}),h&&(d||u)&&w.jsx("div",{className:"flex gap-2 justify-start",children:w.jsx(Mt,{variant:"outline",className:"w-fit",onClick:V=>{V.preventDefault(),Q.current?.open()},children:c.title})})]})]})}),h&&(d||u)&&w.jsx(FB,{dialogRef:Q,modelName:g,modelId:f.find(V=>V.name==="id")?.value,callback:V=>{for(const rt of Object.keys(V))C(rt,V[rt]);Q.current?.close()}})]})]})},cV=Object.freeze(Object.defineProperty({__proto__:null,default:Ib},Symbol.toStringTag,{value:"Module"})),Pb=A.createContext(null),HB=()=>A.useContext(Pb),jB=({entry:n,onSaved:e})=>n.loading||!n.props?w.jsx("div",{className:"flex items-center justify-center h-full w-full",children:w.jsx(Jr,{className:"h-6 w-6 animate-spin"})}):n.error?w.jsx("div",{className:"p-4 text-red-500",children:n.error}):w.jsx("div",{className:"h-full",children:w.jsx(Ib,{page:{props:n.props},catalog:!0,callback:()=>e()})}),uV=({children:n})=>{const e=A.useRef(null),[t,i]=A.useState([]),r=A.useRef(0),s=A.useCallback(async(d,h,m)=>{try{const g=m===null?`${window.routePrefix}/model/${h}/add?without_layout=true`:`${window.routePrefix}/model/${h}/edit/${m}?without_layout=true`,f=await Bn.get(g),b=f.data?.props??f.data;i(y=>{const C=[...y];return C[d]&&C[d].model===h&&C[d].id===m&&(C[d]={...C[d],loading:!1,props:b}),C})}catch(g){i(f=>{const b=[...f];return b[d]&&b[d].model===h&&b[d].id===m&&(b[d]={...b[d],loading:!1,error:g?.message||"Error"}),b})}},[]),o=A.useCallback((d,h)=>{i(m=>{const g=m.length,f={model:d,id:h,props:null,loading:!0};return s(g,d,h),[...m,f]})},[s]),a=A.useCallback(d=>{i(h=>{const m=h.length,g={model:d,id:null,props:null,loading:!0};return s(m,d,null),[...h,g]})},[s]);A.useEffect(()=>{const d=r.current,h=t.length;if(h>d)if(d===0)e.current?.open();else for(let m=0;m<h-d;m++)e.current?.next();r.current=h},[t.length]);const l=A.useCallback(d=>{d||(i([]),r.current=0)},[]),c=A.useCallback(()=>{i(d=>d.length<=1?(e.current?.close(),r.current=0,[]):(e.current?.prev(),r.current=d.length-1,d.slice(0,-1)))},[]),u=A.useMemo(()=>({open:o,openCreate:a}),[o,a]);return w.jsxs(Pb.Provider,{value:u,children:[n,w.jsxs(Bh,{ref:e,onOpenChange:l,children:[w.jsx(Vh,{}),t.length>0&&w.jsx(Nh,{children:t.map((d,h)=>w.jsx(Oh,{children:w.jsx(jB,{entry:d,onSaved:c})},`${d.model}-${d.id}-${h}`))})]})]})};export{Ib as A,DB as D,aV as I,TB as P,uV as R,cV as a,lV as f,It as p};
|