1import{Accessibility as S,Command as L,CommandCollection as v,Context as F,ContextPlugin as O,EditingKeystrokeHandler as k,Editor as R,ElementApiMixin as H,MultiCommand as N,PendingActions as U,Plugin as m,_DEFAULT_ACCESSIBILITY_GROUP_ID as K,_getEditorUsageData as z,attachToForm as W,secureSourceElement as G}from"../../../frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-core$dist$index.js.js";import{CKEditorError as q,Collection as x,Config as Q,DOCUMENTATION_URL as Y,DomEmitterMixin as J,ElementReplacer as X,EmitterMixin as Z,EventInfo as ee,FocusTracker as te,KeystrokeHandler as ie,Locale as oe,ObservableMixin as ne,Rect as ae,ResizeObserver as re,_clearTranslations as se,_getEmitterId as le,_getEmitterListenedTo as ue,_getUserAgent as de,_isAndroid as ge,_isBlink as ce,_isGecko as me,_isMac as we,_isMediaForcedColors as Ve,_isMotionReduced as pe,_isRegExpUnicodePropertySupported as be,_isSafari as fe,_isWindows as Ce,_isiOS as Le,_setEmitterId as xe,_translate as Me,_unifyTranslations as he,abortableDebounce as Te,add as Be,areConnectedThroughProperties as De,collectStylesheets as Ae,compareArrays as Ie,count as _e,crc32 as ye,createElement as Ee,delay as Pe,diff as Se,diffToChanges as ve,env as Fe,exponentialDelay as Oe,fastDiff as ke,findClosestScrollableAncestor as Re,first as He,formatHtml as Ne,getAncestors as Ue,getBorderWidths as Ke,getCode as ze,getCommonAncestor as We,getDataFromElement as Ge,getEnvKeystrokeText as $e,getLanguageDirection as M,getLocalizedArrowKeyCodeDirection as je,getOptimalPosition as qe,getPositionedAncestor as Qe,getRangeFromMouseEvent as Ye,getVisualViewportOffset as Je,global as Xe,indexOf as Ze,insertAt as et,insertToPriorityArray as tt,isArrowKeyCode as it,isCombiningMark as ot,isComment as nt,isForwardArrowKeyCode as at,isHighSurrogateHalf as rt,isInsideCombinedSymbol as st,isInsideEmojiSequence as lt,isInsideSurrogatePair as ut,isIterable as dt,isLowSurrogateHalf as gt,isNode as ct,isRange as mt,isText as wt,isValidAttributeName as Vt,isViewWithFocusTracker as pt,isVisible as bt,isWindow as ft,keyCodes as Ct,logError as Lt,logWarning as xt,mapsEqual as Mt,nth as ht,objectToMap as Tt,parseBase64EncodedObject as Bt,parseKeystroke as Dt,priorities as At,releaseDate as It,remove as _t,retry as yt,scrollAncestorsToShowTarget as Et,scrollViewportToShowTarget as Pt,setDataInElement as St,spliceArray as vt,spy as Ft,toArray as Ot,toMap as kt,toUnit as Rt,uid as Ht,version as Nt,wait as Ut}from"../../../frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-utils$dist$index.js.js";import{AccessibilityHelp as Wt,AccessibilityHelpContentView as Gt,AriaLiveAnnouncer as $t,AriaLiveAnnouncerPoliteness as jt,AriaLiveAnnouncerRegionView as qt,AriaLiveAnnouncerView as Qt,AutocompleteView as Yt,Badge as Jt,BalloonPanelView as Xt,BalloonToolbar as Zt,BlockButtonView as ei,BlockToolbar as ti,BodyCollection as ii,BoxedEditorUIView as oi,ButtonLabelView as ni,ButtonLabelWithHighlightView as ai,ButtonView as ri,CollapsibleView as si,ColorGridView as li,ColorGridsFragmentView as ui,ColorPickerFragmentView as di,ColorPickerInputRowView as gi,ColorPickerView as ci,ColorSelectorView as mi,ColorTileView as wi,ComponentFactory as Vi,ContextualBalloon as pi,CssTransitionDisablerMixin as bi,DefaultMenuBarItems as fi,Dialog as Ci,DialogActionsView as Li,DialogContentView as xi,DialogView as Mi,DialogViewPosition as hi,DocumentColorCollection as Ti,DraggableViewMixin as Bi,DropdownButtonView as Di,DropdownMenuButtonView as Ai,DropdownMenuListItemButtonView as Ii,DropdownMenuListItemView as _i,DropdownMenuListView as yi,DropdownMenuNestedMenuPanelView as Ei,DropdownMenuNestedMenuView as Pi,DropdownMenuPanelPositioningFunctions as Si,DropdownMenuRootListView as vi,DropdownPanelView as Fi,DropdownView as Oi,EditableUIView as ki,EditorUI as Ri,EditorUIView as Hi,EvaluationBadge as Ni,FileDialogButtonView as Ui,FileDialogListItemButtonView as Ki,FileDialogViewMixin as zi,FocusCycler as Wi,FormHeaderView as Gi,FormRowView as $i,HighlightedTextView as ji,IconView as qi,IframeView as Qi,InlineEditableUIView as Yi,InputBase as Ji,InputNumberView as Xi,InputTextView as Zi,InputView as eo,ItemsView as to,LabelView as io,LabelWithHighlightView as oo,LabeledFieldView as no,LabeledInputVie
1w as ao,ListItemButtonView as ro,ListItemGroupView as so,ListItemView as lo,ListSeparatorView as h,ListView as uo,MenuBarMenuButtonView as go,MenuBarMenuListItemButtonView as T,MenuBarMenuListItemFileDialogButtonView as co,MenuBarMenuListItemView as B,MenuBarMenuListView as D,MenuBarMenuPanelView as mo,MenuBarMenuView as A,MenuBarView as wo,NESTED_TOOLBAR_ICONS as Vo,Notification as po,PoweredBy as bo,SearchInfoView as fo,SearchResultsView as Co,SearchTextView as Lo,SliderView as xo,SpinnerView as Mo,SplitButtonView as ho,StickyPanelView as To,SwitchButtonView as Bo,Template as Do,TextareaView as Ao,ToolbarLineBreakView as Io,ToolbarSeparatorView as _o,ToolbarView as yo,TooltipManager as Eo,UIModel as f,View as Po,ViewCollection as So,ViewModel as vo,_CheckIconHolderView as Fo,_CollapsibleView as Oo,_ContextualBalloonRotatorView as ko,_DropdownMenuBehaviors as Ro,_DropdownRootMenuBehaviors as Ho,_MenuBarBehaviors as No,_MenuBarMenuBehaviors as Uo,_MenuBarMenuViewPanelPositioningFunctions as Ko,_SearchInfoView as zo,_SearchTextQueryView as Wo,_TemplateBinding as Go,_TemplateIfBinding as $o,_TemplateToBinding as jo,_convertColor as qo,_convertColorToHex as Qo,_preventUiViewDefault as Yo,_processMenuBarConfig as Jo,_registerCustomElement as Xo,_tryNormalizeHexColor as Zo,addKeyboardHandlingForGrid as en,addListToDropdown as I,addMenuToDropdown as tn,addToolbarToDropdown as on,clickOutsideHandler as nn,createDropdown as _,createLabeledDropdown as an,createLabeledInputNumber as rn,createLabeledInputText as sn,createLabeledTextarea as ln,filterGroupAndItemNames as un,focusChildOnDropdownOpen as dn,getLocalizedColorOptions as gn,isFocusable as cn,isViewWithFocusCycler as mn,normalizeColorOptions as wn,normalizeMenuBarConfig as Vn,normalizeSingleColorDefinition as pn,normalizeToolbarConfig as bn,submitHandler as fn}from"../../../frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-ui$dist$index.js.js";function b(d,e){return e=e||M(d),`${d}:${e}`}function y(d){let[e,t]=d.split(":");return{languageCode:e,textDirection:t}}var w=class extends L{refresh(){let e=this.editor.model,t=e.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=e.schema.checkAttributeInSelection(t.selection,"language")}execute({languageCode:e,textDirection:t}={}){let r=this.editor.model,a=r.document.selection,l=e?b(e,t):!1;r.change(u=>{if(a.isCollapsed)l?u.setSelectionAttribute("language",l):u.removeSelectionAttribute("language");else{let i=r.schema.getValidRanges(a.getRanges(),"language");for(let o of i)l?u.setAttribute("language",l,o):u.removeAttribute("language",o)}})}_getValueFromFirstAllowedNode(){let e=this.editor.model,t=e.schema,r=e.document.selection;if(r.isCollapsed)return r.getAttribute("language")||!1;for(let s of r.getRanges())for(let a of s.getItems())if(t.checkAttribute(a,"language"))return a.getAttribute("language")||!1;return!1}},V=class extends m{static get pluginName(){return"TextPartLanguageEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("language",{textPartLanguage:[{title:"Arabic",languageCode:"ar"},{title:"French",languageCode:"fr"},{title:"Spanish",languageCode:"es"}]})}init(){let e=this.editor;e.model.schema.extend("$text",{allowAttributes:"language"}),e.model.schema.setAttributeProperties("language",{copyOnEnter:!0}),this._defineConverters(),e.commands.add("textPartLanguage",new w(e))}_defineConverters(){let e=this.editor.conversion;e.for("upcast").elementToAttribute({model:{key:"language",value:t=>{let r=t.getAttribute("lang"),s=t.getAttribute("dir");return b(r,s)}},view:{name:"span",attributes:{lang:/[\s\S]+/}}}),e.for("downcast").attributeToElement({model:"language",view:(t,{writer:r},s)=>{if(!t||!s.item.is("$textProxy")&&!s.item.is("documentSelection"))return;let{languageCode:a,textDirection:l}=y(t);return r.createAttributeElement("span",{lang:a,dir:l})}})}},p=class extends m{static get pluginName(){return"TextPartLanguageUI"}static get isOfficialPlugin(){return!0}init(){let e=this.editor,t=e.t,r=t("Choose language"),s=t("Language");e.ui.componentFactory.add("textPartLanguage",a=>{let{definitions:l,titles:u}=this._getItemMetadata(),i=e.commands.get("textPartLanguage"),o=_(a);return I(o,l,{ariaLabel:s,role:"menu"}),o.buttonView.set({ariaLabel:s,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:s}
1),o.extendTemplate({attributes:{class:["ck-text-fragment-language-dropdown"]}}),o.bind("isEnabled").to(i,"isEnabled"),o.buttonView.bind("label").to(i,"value",n=>n&&u[n]||r),o.buttonView.bind("ariaLabel").to(i,"value",n=>{let g=n&&u[n];return g?`${g}, ${s}`:s}),this.listenTo(o,"execute",n=>{i.execute({languageCode:n.source.languageCode,textDirection:n.source.textDirection}),e.editing.view.focus()}),o}),e.ui.componentFactory.add("menuBar:textPartLanguage",a=>{let{definitions:l}=this._getItemMetadata(),u=e.commands.get("textPartLanguage"),i=new A(a);i.buttonView.set({label:s});let o=new D(a);o.set({ariaLabel:t("Language"),role:"menu"});for(let n of l){if(n.type!="button"){o.items.add(new h(a));continue}let g=new B(a,i),c=new T(a);c.set({role:"menuitemradio",isToggleable:!0}),c.bind(...Object.keys(n.model)).to(n.model),c.delegate("execute").to(i),g.children.add(c),o.items.add(g)}return i.bind("isEnabled").to(u,"isEnabled"),i.panelView.children.add(o),i.on("execute",n=>{u.execute({languageCode:n.source.languageCode,textDirection:n.source.textDirection}),e.editing.view.focus()}),i})}_getItemMetadata(){let e=this.editor,t=new x,r={},s=e.commands.get("textPartLanguage"),a=e.config.get("language.textPartLanguage"),l=e.locale.t,u=l("Remove language");t.add({type:"button",model:new f({label:u,languageCode:!1,withText:!0})}),t.add({type:"separator"});for(let i of a){let o={type:"button",model:new f({label:i.title,languageCode:i.languageCode,role:"menuitemradio",textDirection:i.textDirection,withText:!0})},n=b(i.languageCode,i.textDirection);o.model.bind("isOn").to(s,"value",g=>g===n),t.add(o),r[n]=i.title}return{definitions:t,titles:r}}},C=class extends m{static get requires(){return[V,p]}static get pluginName(){return"TextPartLanguage"}static get isOfficialPlugin(){return!0}};export{C as TextPartLanguage,w as TextPartLanguageCommand,V as TextPartLanguageEditing,p as TextPartLanguageUI,y as _parseLanguageAttribute,b as _stringifyLanguageAttribute}; 2/*! Bundled license information: 3 4@ckeditor/ckeditor5-language/dist/index.js: 5 (** 6 * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved. 7 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options 8 *) 9*/ 10//# sourceMappingURL=@ckeditor$ckeditor5-language$dist$index.js.(PUNQJISM).js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.