{"version":3,"sources":["webpack://AlloyEditor/webpack/bootstrap","webpack://AlloyEditor/external {\"amd\":\"react\",\"commonjs\":\"react\",\"commonjs2\":\"react\",\"root\":\"React\",\"umd\":\"react\"}","webpack://AlloyEditor/./src/components/buttons/button-icon.jsx","webpack://AlloyEditor/./src/adapter/editor-context.js","webpack://AlloyEditor/./src/components/base/button-command.js","webpack://AlloyEditor/./src/components/base/button-state-classes.js","webpack://AlloyEditor/./src/oop/lang.js","webpack://AlloyEditor/external {\"amd\":\"react-dom\",\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"root\":\"ReactDOM\",\"umd\":\"react-dom\"}","webpack://AlloyEditor/./src/components/base/button-style.js","webpack://AlloyEditor/./node_modules/prop-types/index.js","webpack://AlloyEditor/./src/components/base/button-command-active.js","webpack://AlloyEditor/./src/components/base/widget-focus-manager.js","webpack://AlloyEditor/./src/components/base/button-keystroke.js","webpack://AlloyEditor/./src/components/buttons/button-dropdown.jsx","webpack://AlloyEditor/./src/components/buttons/button-commands-list.jsx","webpack://AlloyEditor/./src/components/base/button-action-style.js","webpack://AlloyEditor/./src/components/buttons/button-styles-list.jsx","webpack://AlloyEditor/./src/components/base/widget-dropdown.js","webpack://AlloyEditor/./src/components/base/widget-exclusive.js","webpack://AlloyEditor/./src/components/buttons/button-link-edit.jsx","webpack://AlloyEditor/./src/components/base/button-props.js","webpack://AlloyEditor/./src/components/base/toolbar-buttons.js","webpack://AlloyEditor/./src/oop/oop.js","webpack://AlloyEditor/./src/selections/selection-test.js","webpack://AlloyEditor/./src/components/buttons/button-styles-list-header.jsx","webpack://AlloyEditor/./src/components/buttons/button-styles-list-item-remove.jsx","webpack://AlloyEditor/./src/components/buttons/button-styles-list-item.jsx","webpack://AlloyEditor/./src/components/buttons/button-camera-image.jsx","webpack://AlloyEditor/./src/components/buttons/button-command-list-item.jsx","webpack://AlloyEditor/./src/components/buttons/button-embed-edit.jsx","webpack://AlloyEditor/./src/components/buttons/button-embed-video-edit.jsx","webpack://AlloyEditor/./src/components/buttons/button-link-autocomplete-list.jsx","webpack://AlloyEditor/./src/components/buttons/button-link-edit-browse.jsx","webpack://AlloyEditor/./src/components/buttons/button-link-target-edit.jsx","webpack://AlloyEditor/./src/components/buttons/button-target-list.jsx","webpack://AlloyEditor/./src/components/buttons/button-link.jsx","webpack://AlloyEditor/./src/components/buttons/button-table-edit.jsx","webpack://AlloyEditor/./src/components/compat/widget-interaction-point.js","webpack://AlloyEditor/./src/oop/attribute.js","webpack://AlloyEditor/./src/selections/selection-arrowbox.js","webpack://AlloyEditor/./src/selections/selection-position.js","webpack://AlloyEditor/./src/selections/selections.js","webpack://AlloyEditor/./src/plugins/index.js","webpack://AlloyEditor/./src/adapter/main.js","webpack://AlloyEditor/./src/components/base/index.js","webpack://AlloyEditor/./src/components/buttons/index.js","webpack://AlloyEditor/./src/components/buttons/button-accessibility-image-alt.jsx","webpack://AlloyEditor/./src/components/buttons/button-background-color.jsx","webpack://AlloyEditor/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://AlloyEditor/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://AlloyEditor/./src/components/buttons/button-bold.jsx","webpack://AlloyEditor/./src/components/buttons/button-camera.jsx","webpack://AlloyEditor/./src/components/buttons/button-code.jsx","webpack://AlloyEditor/./src/components/buttons/button-color.jsx","webpack://AlloyEditor/./src/components/buttons/button-embed-video.jsx","webpack://AlloyEditor/./src/components/buttons/button-embed.jsx","webpack://AlloyEditor/./src/components/buttons/button-h1.jsx","webpack://AlloyEditor/./src/components/buttons/button-h2.jsx","webpack://AlloyEditor/./src/components/buttons/button-hline.jsx","webpack://AlloyEditor/./src/components/buttons/button-image-align-center.jsx","webpack://AlloyEditor/./src/components/buttons/button-image-align-left.jsx","webpack://AlloyEditor/./src/components/buttons/button-image-align-right.jsx","webpack://AlloyEditor/./src/components/buttons/button-image.jsx","webpack://AlloyEditor/./src/components/buttons/button-indent-block.jsx","webpack://AlloyEditor/./src/components/buttons/button-italic.jsx","webpack://AlloyEditor/./src/components/buttons/button-item-selector-audio.jsx","webpack://AlloyEditor/./src/components/buttons/button-item-selector-image.jsx","webpack://AlloyEditor/./src/components/buttons/button-item-selector-video.jsx","webpack://AlloyEditor/./src/components/buttons/button-link-browse.jsx","webpack://AlloyEditor/./src/components/buttons/button-ol.jsx","webpack://AlloyEditor/./src/components/buttons/button-outdent-block.jsx","webpack://AlloyEditor/./src/components/buttons/button-paragraph-align-left.jsx","webpack://AlloyEditor/./src/components/buttons/button-paragraph-align-right.jsx","webpack://AlloyEditor/./src/components/buttons/button-paragraph-align.jsx","webpack://AlloyEditor/./src/components/buttons/button-paragraph-center.jsx","webpack://AlloyEditor/./src/components/buttons/button-paragraph-justify.jsx","webpack://AlloyEditor/./src/components/buttons/button-quote.jsx","webpack://AlloyEditor/./src/components/buttons/button-remove-format.jsx","webpack://AlloyEditor/./src/components/buttons/button-remove-image.jsx","webpack://AlloyEditor/./src/components/buttons/button-separator.jsx","webpack://AlloyEditor/./src/components/buttons/button-spacing.jsx","webpack://AlloyEditor/./src/components/buttons/button-strike.jsx","webpack://AlloyEditor/./src/components/buttons/button-styles.jsx","webpack://AlloyEditor/./src/components/buttons/button-subscript.jsx","webpack://AlloyEditor/./src/components/buttons/button-superscript.jsx","webpack://AlloyEditor/./src/components/buttons/button-table-cell.jsx","webpack://AlloyEditor/./src/components/buttons/button-table-column.jsx","webpack://AlloyEditor/./src/components/buttons/button-table-heading.jsx","webpack://AlloyEditor/./src/components/buttons/button-table-remove.jsx","webpack://AlloyEditor/./src/components/buttons/button-table-row.jsx","webpack://AlloyEditor/./src/components/buttons/button-table.jsx","webpack://AlloyEditor/./src/components/buttons/button-twitter.jsx","webpack://AlloyEditor/./src/components/buttons/button-ul.jsx","webpack://AlloyEditor/./src/components/buttons/button-underline.jsx","webpack://AlloyEditor/./src/components/compat/index.js","webpack://AlloyEditor/./src/components/compat/button-action-style.js","webpack://AlloyEditor/./src/components/compat/button-command-active.js","webpack://AlloyEditor/./src/components/compat/button-command.js","webpack://AlloyEditor/./src/components/compat/button-keystroke.js","webpack://AlloyEditor/./src/components/compat/button-props.js","webpack://AlloyEditor/./src/components/compat/button-state-classes.js","webpack://AlloyEditor/./src/components/compat/button-style.js","webpack://AlloyEditor/./src/components/compat/toolbar-buttons.js","webpack://AlloyEditor/./src/components/compat/widget-arrow-box.js","webpack://AlloyEditor/./src/components/compat/widget-dropdown.js","webpack://AlloyEditor/./src/components/compat/widget-exclusive.js","webpack://AlloyEditor/./src/components/compat/widget-focus-manager.js","webpack://AlloyEditor/./src/components/compat/widget-position.js","webpack://AlloyEditor/./src/components/toolbars/index.js","webpack://AlloyEditor/./src/components/toolbars/toolbar-add.jsx","webpack://AlloyEditor/./src/components/toolbars/toolbar-styles.jsx","webpack://AlloyEditor/./src/adapter/core.js","webpack://AlloyEditor/./src/core/index.js","webpack://AlloyEditor/./src/core/debounce.js","webpack://AlloyEditor/./src/core/link.js","webpack://AlloyEditor/./src/core/plugins.js","webpack://AlloyEditor/./src/core/selection-region.js","webpack://AlloyEditor/./src/core/table.js","webpack://AlloyEditor/./src/core/tools.js","webpack://AlloyEditor/./src/core/uicore.js","webpack://AlloyEditor/./src/plugins/addimages.js","webpack://AlloyEditor/./src/plugins/autolink.js","webpack://AlloyEditor/./src/plugins/autolist.js","webpack://AlloyEditor/./src/plugins/dragresize.js","webpack://AlloyEditor/./src/plugins/dragresize_ie11.js","webpack://AlloyEditor/./src/plugins/embed.js","webpack://AlloyEditor/./src/plugins/priorities.js","webpack://AlloyEditor/./src/plugins/embedurl.js","webpack://AlloyEditor/./src/plugins/Resizer.es.js","webpack://AlloyEditor/./src/plugins/DragEvent.es.js","webpack://AlloyEditor/./src/plugins/imagealignment.js","webpack://AlloyEditor/./src/plugins/pasteimages.js","webpack://AlloyEditor/./src/plugins/placeholder.js","webpack://AlloyEditor/./src/plugins/selectionkeystrokes.js","webpack://AlloyEditor/./src/plugins/tableresize.js","webpack://AlloyEditor/./src/plugins/tabletools.js","webpack://AlloyEditor/./src/components/uibridge/index.js","webpack://AlloyEditor/./src/components/uibridge/button.jsx","webpack://AlloyEditor/./src/components/uibridge/menu-button.jsx","webpack://AlloyEditor/./src/components/uibridge/menu.jsx","webpack://AlloyEditor/./src/components/uibridge/panel-menu-button.jsx","webpack://AlloyEditor/./src/components/uibridge/richcombo.jsx","webpack://AlloyEditor/./src/components/uibridge/uibridge.js","webpack://AlloyEditor/./src/commands/index.js","webpack://AlloyEditor/./src/commands/remove-image.js","webpack://AlloyEditor/./src/components/main.jsx","webpack://AlloyEditor/./src/oop/base.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","window","undefined","ButtonIcon","_react","_editorContext","_ref","_ref$className","className","symbol","_react2","default","createElement","_editorContext2","Consumer","_ref2","editor","nativeEditor","spritemap","config","path","classNamePrefix","combinedClassName","height","width","href","EditorContext","React","createContext","toProps","Component","forwardingComponent","forwardRef","props","ref","context","_extends","WrappedComponent","_class","_temp2","_WrappedComponent","ButtonCommand","_temp","_this","_ret","_classCallCheck","this","_len","arguments","length","args","Array","_key","_possibleConstructorReturn","__proto__","getPrototypeOf","apply","concat","execCommand","data","command","fire","_inherits","contextType","_lang","ButtonStateClasses","_createClass","stateClasses","Lang","isFunction","isActive","isArray","toString","isBoolean","isNull","isNumber","isFinite","isObject","valueType","_typeof","isString","mix","receiver","supplier","toInt","parseInt","ButtonStyle","_get","style","parts","split","currentMember","shift","_style","CKEDITOR","elementPath","getStyle","checkActive","ButtonCommandActive","getCommand","state","TRISTATE_ON","_reactDom","DIRECTION_NONE","DIRECTION_NEXT","DIRECTION_PREV","ACTION_NONE","ACTION_MOVE_FOCUS","ACTION_DISMISS_FOCUS","WidgetFocusManager","focus","event","_isValidTarget","target","_descendants","activeDescendantEl","_activeDescendant","document","activeElement","focusFirstChild","indexOf","stopPropagation","preventDefault","handleKey","action","_getFocusAction","type","_moveFocus","direction","onDismiss","_refresh","keys","_getFocusMoveDirection","dismissAction","_getFocusDismissAction","dismiss","focusMoveDirection","_isValidKey","keyCode","dismissNext","dismissPrev","circular","next","prev","shifKey","element","tagName","toLowerCase","numDescendants","descendant","setAttribute","Math","max","min","_this2","domNode","ReactDOM","findDOMNode","descendants","querySelectorAll","priorityDescendants","slice","forEach","item","dataTabIndex","getAttribute","push","sort","a","b","some","index","ButtonKeystroke","keystroke","commandName","exec","keystrokeFn","fn","addCommand","_defaultKeystrokeCommand","keystrokeHandler","keystrokes","setKeystroke","_widgetFocusManager","ButtonDropdown","onFocus","onKeyDown","tabIndex","role","children","defaultProps","_widgetFocusManager2","_buttonCommandListItem","ButtonCommandsList","createRef","current","id","listId","_renderActions","commands","items","map","_buttonCommandListItem2","description","label","icon","ButtonActionStyle","applyStyle","getSelection","lock","removeStyle","unlock","_buttonDropdown","_buttonStylesListHeader","_buttonStylesListItemRemove","_buttonStylesListItem","ButtonStylesList","blockStyles","inlineStyles","objectStyles","styles","STYLE_BLOCK","STYLE_INLINE","STYLE_OBJECT","_blockStyles","_inlineStyles","_objectStyles","removeStylesItem","showRemoveStylesItem","_buttonStylesListItemRemove2","toggleDropdown","_buttonDropdown2","_buttonStylesListHeader2","AlloyEditor","Strings","_renderStylesItems","_buttonStylesListItem2","activeStyle","styleFn","WidgetDropdown","mergeDropdownProps","obj","itemKey","tools","merge","expanded","itemDropdown","dropdownTrigger","toggleDirection","setState","moveFocus","nextProps","WidgetExclusive","requestExclusive","itemExclusive","filter","cancelExclusive","renderExclusive","_widgetDropdown","_buttonIcon","_buttonLinkAutocompleteList","_buttonLinkTargetEdit","ButtonLinkEdit","_clearLink","linkHref","_focusLinkInput","_handleKeyDown","_updateLink","autocompleteSelected","Link","advanceSelection","_handleLinkHrefChange","_handleLinkTargetChange","linkTarget","_removeLink","linkUtils","selection","bookmarks","createBookmarks","remove","advance","selectBookmarks","appendProtocol","linkAttrs","modifySelection","update","linkInput","_getInitialState","manualSelection","targetSelector","allowedTargets","handleLinkTargetChange","selectedTarget","linkTargetDefault","ButtonLinkTargetEdit","autocompleteDropdown","dataFn","autocompleteDropdownProps","handleLinkAutocompleteClick","_handleLinkAutocompleteClick","setAutocompleteState","_setAutocompleteState","term","ButtonLinkAutocompleteList","_buttonLinkAutocompleteList2","buttonClearLink","aria-label","clearInput","onClick","title","clear","_buttonIcon2","placeholderProp","env","ie","placeholder","editLink","removeLink","disabled","showTargetSelector","_buttonLinkTargetEdit2","onChange","confirm","_isValidState","defaultLinkTarget","link","getFromSelection","initialLink","instance","focusLinkEl","requestAnimationFrame","setTimeout","validState","selected","autocompleteUrl","customIndexStart","_widgetDropdown2","ButtonProps","buttonCfg","ToolbarButtons","_animationFrameId","cancelAnimationFrame","arrowBoxClasses","getInteractionPoint","SELECTION_TOP_TO_BOTTOM","attrs","viewPaneSize","dom","getViewPaneSize","x","left","y","top","eventPayload","editorEvent","selectionData","nativeEvent","pos","pageX","region","endRect","startRect","SELECTION_BOTTOM_TO_TOP","_getXPoint","_getYPoint","eventX","right","leftDist","abs","rightDist","elementTarget","$","offsetTop","offsetHeight","bottom","gutter","offsetWidth","SELECTION_LEFT_TO_RIGHT","SELECTION_RIGHT_TO_LEFT","domElement","hasClass","startPoint","endPoint","setStyles","opacity","pointerEvents","removeClass","addClass","uiNode","scrollTop","isVisible","interactionPoint","finalX","finalY","initialX","initialY","parseFloat","constrainToViewport","res","getConstrainedPosition","moveToPoint","body","uiNodeStyle","getComputedStyle","uiNodeMarginLeft","getPropertyValue","uiNodeMarginRight","totalWidth","clientWidth","xy","getWidgetXYPoint","buttons","additionalProps","reduce","list","button","getToolbarButtons","buttonProps","toolbarButtons","filterExclusive","Buttons","cfg","mergeExclusiveProps","tabKey","trigger","extend","protoProps","staticProps","Error","supplierProto","receiverProto","constructor","superclass","_isRangeAtElementEnd","range","getText","endOffset","equals","startContainer","endContainer","startOffset","embedSelectionTest","payload","embedUrlSelectionTest","headingTextSelectionTest","headings","selectionEmpty","isSelectionEmpty","getCommonAncestor","isReadOnly","contains","linkSelectionTest","getRanges","elementIsNotImage","getName","imageSelectionTest","hasImage","findOne","isImage","textSelectionTest","tableSelectionTest","table","Table","isEditable","SelectionTest","embed","embedUrl","header","image","text","ButtonsStylesListHeader","ButtonStylesListItemRemove","_removeStyles","removeBlocks","blockItem","blockStyle","normal","_buttonActionStyle","_buttonStyle","ButtonStylesListItem","_onClick","styleCfg","margin","_preview","buildPreview","dangerouslySetInnerHTML","__html","_buttonActionStyle2","_buttonStyle2","ButtonCameraImage","takePhoto","videoEl","_videoContainerRef","canvasEl","_canvasContainerRef","getContext","_videoHeight","videoWidth","drawImage","imgURL","toDataURL","el","createFromHtml","insertElement","_handleStreamError","error","alert","_handleStreamSuccess","stream","addEventListener","videoHeight","isNaN","_stream","navigator","mozGetUserMedia","mozSrcObject","srcObject","play","_buttonTakePhotoRef","stop","getVideoTracks","track","getUserMedia","webkitGetUserMedia","msGetUserMedia","video","audio","_buttonCommand","ButtonCommandListItem","_getClassName","_buttonCommand2","KEY_ENTER","KEY_ESC","ButtonEmbedEdit","_embedLink","url","_removeEmbed","embedWrapper","getAscendant","getInitialState","selectedElement","getSelectedElement","clearLinkStyle","deleteEmbed","data-type","ButtonEmbedVideoEdit","_embedVideoURL","videoURL","_focusVideoUrlInput","refs","_handleVideoURLChange","newState","all","new","old","initialEmbed","inputPlaceholder","pasteVideoLink","clearVideoURLStyle","clearTimeout","_timeout","_updateItems","delay","_renderAutocompleteItems","nextState","data-value","_this3","promise","Promise","resolve","then","_buttonLinkEdit","ButtonLinkEditBrowse","_browseClick","documentBrowseLinkUrl","browseLinkCallback","documentBrowseLinkCallback","linkEditButtonRef","changeLinkCallback","selectedItem","linkTitle","plugins","creole","location","origin","_buttonLinkEdit2","_buttonTargetList","allowedLinkTargets","aria-expanded","_buttonTargetList2","ButtonTargetList","listTargets","_renderListTargets","linkTargetSelf","linkTargetBlank","linkTargetParent","linkTargetTop","targets","_getAllowedTargetItems","_buttonKeystroke","_buttonProps","_buttonStateClasses","ButtonLink","_requestExclusive","cssClass","getStateClasses","mergeButtonCfgProps","CTRL","_buttonProps2","_buttonKeystroke2","_buttonStateClasses2","INPUT_NAMES","COLS","ROWS","MINIMUM_GRID_VALUE","ButtonTableEdit","_createTable","tableUtils","_this$state","cols","rows","tableAttributes","_handleChange","inputName","_defineProperty","rowsRef","colsRef","time","Date","now","rowsId","colsId","htmlFor","columns","border","cellPadding","cellSpacing","_propTypes","WidgetInteractionPoint","propTypes","PropTypes","Attribute","__config__","__ATTRS__","attr","currentAttr","ATTRS","_isInitialized","_init","curValue","_callStringOrFunction","set","readOnly","writeOnce","validator","setter","stringOrFunction","result","_toConsumableArray","hasDefaultValue","hasPassedValueViaConfig","valueFn","tableSelectionGetArrowBoxClasses","SelectionGetArrowBoxClasses","DEFAULT_GUTTER","centerToolbar","toolbar","rect","toolbarNode","halfNodeWidth","scrollPosition","getScrollPosition","widgetXY","caretPosition","ranges","nodeType","Node","ELEMENT_NODE","getParent","startContainerClientRect","getClientRect","endPosition","imageSelectionSetPosition","tableSelectionSetPosition","SelectionSetPosition","_selectionArrowbox","_selectionPosition","_selectionTest","Selections","test","setPosition","full","simple","getArrowBoxClasses","_embedurl","embedurl","_base","Base","_buttons","_compat","Compat","_toolbars","_attribute","_oop","_selections","_core","BRIDGE_BUTTONS","editable","node","srcNode","implementEventTarget","Core","getBasePath","ALLOYEDITOR_BASEPATH","scripts","getElementsByTagName","match","src","regexBasePath","loadLanguageResources","callback","once","_langResourceRequested","languages","userLanguage","language","lang","locale","scriptLoader","load","getUrl","loaded","resource","basePath","timestamp","charAt","on","implementOn","getButtons","acc","val","registerBridgeButton","buttonName","pluginName","OOP","Toolbars","_buttonAccessibilityImageAlt","_buttonBackgroundColor","_buttonBold","_buttonCameraImage","_buttonCamera","_buttonCode","_buttonColor","_buttonCommandsList","_buttonEmbedEdit","_buttonEmbedVideoEdit","_buttonEmbedVideo","_buttonEmbed","_buttonH","_buttonH3","_buttonHline","_buttonImageAlignCenter","_buttonImageAlignLeft","_buttonImageAlignRight","_buttonImage","_buttonIndentBlock","_buttonItalic","_buttonItemSelectorAudio","_buttonItemSelectorImage","_buttonItemSelectorVideo","_buttonLinkBrowse","_buttonLinkEditBrowse","_buttonLink","_buttonOl","_buttonOutdentBlock","_buttonParagraphAlignLeft","_buttonParagraphAlignRight","_buttonParagraphAlign","_buttonParagraphCenter","_buttonParagraphJustify","_buttonQuote","_buttonRemoveFormat","_buttonRemoveImage","_buttonSeparator","_buttonSpacing","_buttonStrike","_buttonStylesList","_buttonStyles","_buttonSubscript","_buttonSuperscript","_buttonTableCell","_buttonTableColumn","_buttonTableEdit","_buttonTableHeading","_buttonTableRemove","_buttonTableRow","_buttonTable","_buttonTwitter","_buttonUl","_buttonUnderline","ButtonAccessibilityImageAlt","ButtonBackgroundColor","ButtonBold","ButtonCamera","ButtonCode","ButtonColor","ButtonEmbed","ButtonEmbedVideo","ButtonH1","ButtonH2","ButtonHline","ButtonImageAlignCenter","ButtonImageAlignLeft","ButtonImageAlignRight","ButtonImage","ButtonIndentBlock","ButtonItalic","ButtonItemSelectorAudio","ButtonItemSelectorImage","ButtonItemSelectorVideo","ButtonLinkBrowse","ButtonOl","ButtonOutdentBlock","ButtonParagraphAlign","ButtonParagraphAlignLeft","ButtonParagraphAlignRight","ButtonParagraphCenter","ButtonParagraphJustify","ButtonQuote","ButtonRemoveFormat","ButtonRemoveImage","ButtonSeparator","ButtonSpacing","ButtonStrike","ButtonStylesListHeader","ButtonStyles","ButtonSubscript","ButtonSuperscript","ButtonTableCell","ButtonTableColumn","ButtonTableHeading","ButtonTableRemove","ButtonTableRow","ButtonTable","ButtonTwitter","ButtonUl","ButtonUnderline","_initialiseProps","getStartElement","_element","imageElement","imageAlt","_handleAltChange","_updateImageAlt","focusAltEl","refAltInput","_focusAltInput","activeColor","activeColorClass","colors","_getColors","itemStyle","attributes","class","styleClass","_checkActive","_props","buttonStylesProps","_buttonStylesList2","styleConfig","_applyStyle","primary","success","danger","warning","info","bool","string","arrayOf","number","func","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","err","getShim","isRequired","ReactPropTypes","array","any","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","bold","aria-pressed","_buttonCameraImage2","protocol","cameraDisabled","camera","code","dark","darkGray","secondary","light","lighter","white","_buttonEmbedVideoEdit2","_buttonEmbedEdit2","SHIFT","h1","h2","horizontalrule","_buttonCommandActive","alignCenter","_buttonCommandActive2","alignLeft","alignRight","handleClick","fileInput","click","_onInputChange","inputEl","files","reader","FileReader","file","onload","imageFiles","imageData","readAsDataURL","inputSyle","display","accept","indent","italic","_handleClick","_buttonLinkEditBrowse2","_buttonLink2","ButtonOrderedList","numberedlist","outdent","buttonCommandsList","buttonCommandsListId","_buttonCommandsList2","_getCommands","inlineIcons","activeCommand","alignment","pop","iconClassName","aria-owns","row","alignJustify","quote","removeformat","removeImage","activeSpacing","spacings","_getSpacings","active","lastElement","strike","_getStyles","buttonStylesList","formatted","cite","subscript","superscript","cell","cellInsertBefore","cellInsertAfter","cellDelete","cellMerge","cellMergeDown","cellMergeRight","cellSplitHorizontal","cellSplitVertical","column","columnInsertBefore","columnInsertAfter","columnDelete","activeHeading","getHeading","activeHeadingIntro","headers","activeHeadingLabel","headersNone","headersRow","headersColumn","headersBoth","_removeTable","deleteTable","rowInsertBefore","rowInsertAfter","rowDelete","_buttonTableEdit2","MAX_TWEET_LENGTH","_getHref","twitter","selectedText","getSelectedText","substring","via","twitterHref","ButtonUnorderedlist","bulletedlist","underline","modifiesSelection","selectionChange","componentWillMount","random","componentWillUnmount","isDisabled","getToolbarButtonGroups","WidgetArrowBox","componentWillReceiveProps","_nextProps","componentDidMount","componentDidUpdate","_widgetInteractionPoint","WidgetPosition","mixins","getDefaultProps","cancelAnimation","halfWidth","_animate","show","updatePosition","_toolbarAdd","_toolbarStyles","ToolbarAdd","ToolbarStyles","_toolbarButtons","_widgetExclusive","POSITION_LEFT","POSITION_RIGHT","_updatePosition","_prevProps","_prevState","isContentEditable","_getButtons","_getToolbarClassName","add","data-tabindex","clientRect","offsetLeft","position","gutterExclusive","floor","_widgetExclusive2","_toolbarButtons2","currentSelection","_getCurrentSelection","getArrowBoxClassesFn","_getSelectionFunction","cssClasses","buttonsGroup","selectionType","hasGroups","selectionFn","selectionFunction","selections","testFn","setPositionFn","_commands","_main","EMBED_VIDEO_WIDTH","EMBED_VIDEO_HEIGHT","_oop2","initializer","inline","allowedContent","toolbars","removePlugins","extraPlugins","embedProviders","placeholderClass","pasteFromWordRemoveStyles","pasteFromWordRemoveFontStyles","selectionKeystrokes","edge","plugin","replace","_addReadOnlyLinkClickListener","extraCommands","extraCommandKeys","_editor","_renderUI","destructor","_destroyed","_editorUIElement","unmountComponentAtNode","parentNode","removeChild","_clearSelections","destroy","isMSSelection","empty","getWindow","removeAllRanges","_defaultReadOnlyClickFn","mouseEvent","hasCtrlKey","ctrlKey","metaKey","shouldOpen","listenerData","ckElement","getTarget","_redirectLink","_getNativeEditor","open","editorUIElement","appendChild","callbackRef","_mainUI","render","Provider","_main2","eventsDelay","_toElement","getElementById","_validateAllowedContent","_validateToolbars","tpl","urlSchemes","enableContentEditable","removeImageCommand","_debounce","debounce","timeout","debounceHandle","callFn","callArgs","callContext","detach","REGEX_BOOKMARK_SCHEME","REGEX_EMAIL_SCHEME","REGEX_URI_SCHEME","moveToElementEditEnd","nextNode","getNextEditableNode","whitespace","offset","setStart","setEnd","selectRanges","URI","collapsed","insertNode","selectNodeContents","_getCompleteURI","data-cke-saved-href","applyToRange","select","is","getChildren","count","getItem","shrink","SHRINK_TEXT","alwaysRemoveElement","selectElement","uri","setAttributes","removeAttrs","setAttrs","removeAttributes","wrapPluginLifecycle","methods","methodName","override","originalPluginMethod","phase","__processingPlugin__","filterUnwantedDependencies","requires","require","pluginsLoad","names","scope","SelectionRegion","createSelectionFromPoint","createSelectionFromRange","startX","startY","endX","endY","end","start","caretPositionFromPoint","offsetNode","createRange","caretRangeFromPoint","createTextRange","endRange","duplicate","setEndPoint","getCaretRegion","bookmarkNodeEl","startNode","scrollPos","getSelectionData","getNative","getSelectionRegion","getClientRectsRegion","getSelectionDirection","getType","SELECTION_NONE","nativeSelection","defaultRect","clientRects","Infinity","getClientRects","rangeCount","getRangeAt","anchorNode","compareDocumentPosition","focusNode","anchorOffset","focusOffset","DOCUMENT_POSITION_PRECEDING","init","IE_NON_DIRECTLY_EDITABLE_ELEMENT","col","colgroup","tbody","td","tfoot","th","thead","tr","HEADING_BOTH","HEADING_COL","HEADING_NONE","HEADING_ROW","_createElement","append","j","appendBogus","setHeading","heading","firstCell","cells","moveToPosition","POSITION_AFTER_START","webkit","NODE_ELEMENT","hasAttribute","rowHeadingSettings","tHead","colHeadingSettings","nodeName","headingSettings","parent","getChildCount","POSITION_BEFORE_START","newCell","tableHead","tableBody","getElementsByTag","tableHeading","hadColHeading","needColHeading","needRowHeading","tableFirstRow","tableFirstRowChildCount","getChild","renameNode","createTHead","previousFirstRow","getFirst","newFirstRow","newFirstRowChildCount","removeAttribute","insertBefore","hasColHeading","headingCommands","jsonp","urlTemplate","urlParams","errorCallback","callbackKey","getNextNumber","_","jsonpCallbacks","response","cleanUp","scriptElement","output","getBody","cancel","simulate","eventInstance","createEvent","initEvent","dispatchEvent","ariaState","ariaElement","_createAriaElement","uiTasksTimeout","uicore","handleUI","allowEsc","handleAria","_event","innerHTML","join","handleMouseLeave","aeUINodes","found","relatedTarget","message","focusHandler","attachListener","removeListener","statusElement","isIE","_onDragEnter","_onDragOver","_onDragDrop","_onPaste","_handleFiles","_processFile","transferFiles","dataTransfer","clientX","clientY","_preventEvent","clipboardData","pastedData","imageFile","getAsFile","bin","userAgent","KEY_BACK","KEY_COMMA","KEY_SEMICOLON","KEY_SPACE","DELIMITERS","REGEX_LAST_WORD","REGEX_URL","REGEX_EMAIL","_onKeyUp","method","dataValue","RegExp","_isValidURL","_isValidEmail","_getLastWord","previousText","_currentKeyCode","previousNode","getPrevious","lastChild","getLast","_startContainer","_offset","lastWord","email","_onKeyDown","_ckLink","_replaceContentByLink","content","ckLink","linkNode","_subscribeToKeyEvent","nextEditableNode","enclosedNode","getEnclosedNode","caretOffset","getNext","newRange","setEndAfter","DEFAULT_CONFIG","regex","_checkForBackspaceAndUndo","insertHtml","bullet","_getListConfig","configRegex","autolist","textContainer","regexLen","autolistCfg","regexItem","_createList","listConfig","setText","IMAGE_HANDLES","both","scale","POSITION_ELEMENT_FN","bl","handle","box","positionElement","bm","round","br","lm","tl","_box","tm","rm","IMAGE_SNAP_TO_SIZE","isFirefox","documentElement","isWebKit","enablePlugin","snapToSize","imageScaleResize","resizer","Resizer","mouseDownListener","e","isHandle","initDrag","hide","html","self","resizeElement","removeEventListener","resizeTimeout","DragEvent","events","mousemove","keydown","mouseup","toArray","len","arr","ctx","String","getBoundingBox","getBoundingClientRect","pageXOffset","pageYOffset","addCss","onLoad","_evt","container","preview","handles","handleName","createHandle","classList","otherImages","splice","showHandles","elements","getElementsByClassName","hideHandles","drag","onStart","showPreview","isDragging","onDrag","calculateSize","updatePreview","previewBox","updateHandles","onRelease","hidePreview","onComplete","resizeComplete","backgroundImage","delta","ratio","others","other","startPos","currentPos","shiftKey","ctrl","alt","altKey","which","release","template","templateBlock","alignmentsObj","center","regexPercent","widgetDef","widgets","widgetElement","afterInit","align","block","integrate","alignCommandIntegrator","ae_dragresize_ie11","stateShifter","doc","alignClasses","ae_dragresize_ie11_alignClasses","captionedClass","ae_dragresize_ie11_captionedClass","shiftables","stateActions","oldValue","newValue","changed","marginLeft","marginRight","newData","hasCaption","deflate","wrapInCentering","unwrapFromCentering","setStyle","imageOrLink","img","figure","captionPlaceholder","replaceSafely","needsDeflate","newEl","wrapInLink","getLinkAttributesGetter","isEmpty","removed","unwrapFromLink","attribsAndStyles","text-align","activeEnterMode","ENTER_P","move","linkData","replacing","replaced","insertElementIntoRange","oldData","inflate","checkHasNaturalRatio","natural","getNatural","clientHeight","dimensions","naturalWidth","naturalHeight","Image","getLinkAttributes","getLinkAttributesParser","parseLinkAttributes","removeWidgetAlignment","widget","imageAlignment","wrapper","deflated","focused","initOn","setWrapperAlign","getWidgetAllowedContent","requiredContent","features","getWidgetFeatures","styleableElements","contentTransformations","editables","caption","selector","checkFeature","shiftState","data-cke-saved-src","classes","dimension","setDimensions","helpers","ready","alignElement","advanced","advCSSClasses","trim","setData","ae_dragresize_ie11_disableResizer","setupResizer","dragHandlerStyle","dragHandlerContainer","evt","TRISTATE_OFF","unlink","getStyleableElement","getClasses","classRegex","repository","parseElementClasses","upcast","upcastWidgetElement","downcast","downcastWidgetElement","getLabel","pathName","querySelector","imageStyles","heightStyles","widthStyles","isCenterWrapper","centerWrapperChecker","replaceWith","isLinkedOrStandaloneImage","attrsHolder","resizeWrapper","parseCssText","wrapWith","htmlParser","writeCssText","validChildren","div","child","enterMode","resizerNE","resizerNW","resizerSE","resizerSW","oldResizeWrapper","screenX","screenY","startWidth","startHeight","listeners","factorX","factorY","moveDiffX","moveDiffY","nativeEvt","newHeight","newWidth","updateData","cursorClass","attachToDocuments","collection","globalDoc","adjustToX","adjustToY","onMouseMove","onMouseUp","execCallbacks","enabled","refresh","getFocusedWidget","allowed","registered","TRISTATE_DISABLED","rules","figcaption","_priorities","REGEX_HTTP","REGEX_DEFAULT_LINK","DEFAULT_AE_EMBED_URL_TPL","DEFAULT_AE_EMBED_WIDGET_TPL","DEFAULT_AE_EMBED_DEFAULT_LINK_TPL","AE_EMBED_URL_TPL","embedUrlTemplate","AE_EMBED_WIDGET_TPL","embedWidgetTpl","AE_EMBED_DEFAULT_LINK_TPL","embedLinkDefaultTpl","defaultEmbedWidgetUpcastFn","mask","encodeURIComponent","createATag","setHtml","_msg","aTagHtml","embedWidgetUpcastFn","HIGH_PRIORITY","addElementCallback","FILTER_SKIP_TREE","DEFAULT_PRIORITY","_Resizer","DEFAULT_LFR_EMBED_WIDGET_TPL","EMBED_ALIGNMENT","CENTER","LEFT","RIGHT","ALIGN_VALUES","CENTERED_EMBED_STYLE","getEmbedAlignment","embedAlignment","centeredEmbed","every","styleCheck","vendorPrefixes","vendorPrefix","removeEmbedAlignment","setEmbedAlignment","wrapperElement","parentElement","pwidth","JSON","parse","stringify","iframeElement","selectWidget","root","find","elementList","currentAlignment","currentElement","LFR_EMBED_WIDGET_TPL","providers","provider","scheme","generateEmbedContent","helpMessage","videoPlaybackDisabled","helpMessageIcon","Liferay","Util","getLexiconIconTpl","upcastWidget","iframe","embedContent","getOuterHtml","widgetFragment","fragment","fromHtml","showError","errorMsg","validProvider","embedId","_selectEmbedWidget","platformNotSupported","enterValidUrl","draggable","stylesJSON","_error","bounds","alignValue","selectedEmbed","sender","_DragEvent","editorBounds","_IMAGE_STYLE_ALIGNMEN","IMAGE_ALIGNMENT","IMAGE_STYLE_ALIGNMENT","getImageAlignment","centeredImage","imageContainer","textAlign","removeImageAlignment","setImageAlignment","refreshCommands","brFiller","needsBrFiller","enterModeEmptyValue","1","2","3","_checkEmptyData","_removePlaceholderClass","editableNode","innerHtml","editorNode","selectionKeystroke","pxUnit","cssLength","getWidth","getBorderWidth","side","computed","borderMap","thin","medium","thick","getMasterPillarRow","$rows","maxCells","cellsCount","$elected","$tr","buildTableColumnPillars","pillars","pillarIndex","rtl","tBodies","tbodyPosition","getDocumentPosition","nextTd","colSpan","pillarLeft","pillarRight","pillarWidth","getPillarAtPosition","positionX","pillar","ColumnResizer","currentShift","leftShiftBoundary","leftSideCells","resizing","rightShiftBoundary","rightSideCells","isResizing","posX","resizerNewPosition","onMouseDown","resizeStart","columnIndex","buildTableMap","leftColumnCells","rightColumnCells","leftMinSize","Number","MAX_VALUE","rightMinSize","leftCell","rightCell","setOpacity","resizeEnd","resizeColumn","removeCustomData","_loop","leftOldWidth","rightOldWidth","tableWidth","sizeShift","getPageOffset","getDocumentElement","clearPillarsCache","dest","toElement","isInline","getCustomData","setCustomData","cellNodeRegex","getSelectedCells","retval","database","moveOutOfCellGuard","setMarker","nearestCell","walker","guard","dtd","clearAllMarkers","getFocusElementAfterDelCells","cellsToDelete","last","focusedCell","insertRow","getDocument","startRow","startRowIndex","rowIndex","lastCell","endRowIndex","rowSpan","endRow","cloneRow","nextRow","newRow","clone","insertAfter","cellIndex","deleteRows","selectionOrRow","rowsToDelete","mapRow","cellRowIndex","nextMapRow","cursorPosition","getCellColIndex","isStart","rowCells","colIndex","mapCell","getColumnsIndices","insertColumn","startCol","lastCol","cloneCol","nextCol","nextCell","insertedCells","deleteColumns","selectionOrCell","startColIndex","endColIndex","firstRowCells","insertCell","startElement","deleteCells","cellToFocus","placeCursorInCell","trimCell","bogus","getBogus","placeAtEnd","docInner","docOuter","version","collapse","cellInRow","tableMap","oRow","cellInCol","oCol","mergeCells","mergeDirection","isDetect","commonAncestor","mapHeight","mapWidth","startColumn","targetCell","rowspan","colspan","er","lastRowIndex","totalRowSpan","totalColSpan","frag","documentFragment","cellFirstChild","isBlockBoundary","whitespaces","moveChildren","trs","nodeList","tailTr","verticalSplitCell","newRowSpan","newCellRowSpan","newRowIndex","ceil","newCellTr","newCellRow","candidateCell","cellsInSameRow","horizontalSplitCell","newColSpan","newCellColSpan","cellsInSameCol","createDef","def","contextSensitive","addCmd","cmd","addFeature","aRows","aMap","oCell","iColSpan","iRowSpan","rs","cs","BUTTON_DEFS","generateButtonBridge","buttonDefinition","ButtonBridge","buttonCommand","buttonOnClick","_React$Component","buttonClassName","buttonDisplayName","buttonLabel","buttonType","iconStyle","cssStyle","skin","getIconStyle","cssStyleParts","backgroundPosition","backgroundSize","displayName","UI_BUTTON","beforeInit","ui","addButton","addHandler","MENUBUTTON_DEFS","generateMenuButtonBridge","menuButtonName","menuButtonDefinition","MenuButtonBridge","panelMenuButtonDisplayName","_getMenuItems","onMenu","menuItems","menuItem","getMenuItem","menuItemDefinition","definition","menuItemState","UI_MENU_BUTTON","addMenuButton","UI_MENUBUTTON","groups","groupsOrder","menuGroups","addMenuGroup","order","addMenuItem","group","addMenuItems","definitions","itemName","removeMenuItem","PANEL_MENU_DEFS","generatePanelMenuButtonBridge","panelMenuButtonName","panelMenuButtonDefinition","PanelMenuButtonBridge","panel","_getPanel","panelMenuButtonOnBlock","onBlock","blockElement","getHtml","UI_PANELBUTTON","addPanelMenuButton","RICH_COMBO_DEFS","generateRichComboBridge","richComboName","richComboDefinition","RichComboBridge","currentValue","editorCombo","currentTarget","_items","setValue","_setValue","onRender","_cacheValue","richComboLabel","_getItems","richCombo","UI_RICHCOMBO","addRichCombo","originalUIAddFn","typeHandler","handlers","_removeImage","nextRange","native","UI","_onDismissToolbarFocus","hidden","_onEditorInteraction","_onActionPerformed","_onEditorKey","_mousedownListener","_setUIHidden","_keyDownListener","prevProps","prevState","_getAvailableToolbarsMessage","ariaUpdate","_ariaUpdateTemplates","_getAriaUpdates","ariaUpdates","noToolbar","ariaUpdateNoToolbar","oneToolbar","ariaUpdateOneToolbar","manyToolbars","ariaUpdateManyToolbars","toolbarsNodeList","toolbarNames","_getAriaUpdateTemplate","domEvent","targetNode","_callChain","wat","ctor","reverse"],"mappings":"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","file":"alloy-editor-core-min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 42);\n","(function() { module.exports = window[undefined]; }());","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\nimport EditorContext from '../../adapter/editor-context';\n\nexport default function ButtonIcon({className = '', symbol}) {\n\treturn (\n\t\t\n\t\t\t{({editor}) => {\n\t\t\t\tconst nativeEditor = editor.get('nativeEditor');\n\t\t\t\tconst spritemap = nativeEditor.config.spritemap || '';\n\t\t\t\tconst path = `${spritemap}#${symbol}`;\n\t\t\t\tconst classNamePrefix = className ? ` ${className}` : '';\n\t\t\t\tconst combinedClassName = `ae-svg-icon${classNamePrefix}`;\n\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t}}\n\t\t\n\t);\n}\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\n/**\n * React context to avoid explicitly passing the editor instance all\n * through the component hierarchy via props.\n */\nconst EditorContext = React.createContext({});\n\n/**\n * Helper that passes the editor context in via a prop.\n *\n * Context can only be accessed in `render()` and in lifecycle methods\n * (`componentDidMount()` etc). If a component needs to access context\n * elsewhere, such as in a constructor, the context needs to be passed\n * in via a prop.\n */\nEditorContext.toProps = Component => {\n\tconst forwardingComponent = React.forwardRef((props, ref) => (\n\t\t\n\t\t\t{context => }\n\t\t\n\t));\n\tforwardingComponent.key = Component.key;\n\n\treturn forwardingComponent;\n};\n\nexport default EditorContext;\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport EditorContext from '../../adapter/editor-context';\n\n/**\n * ButtonCommand is a mixin that executes a command via CKEDITOR's API.\n *\n * @class ButtonCommand\n */\nexport default WrappedComponent =>\n\tclass ButtonCommand extends WrappedComponent {\n\t\tstatic contextType = EditorContext;\n\n\t\t/**\n\t\t * Executes a CKEditor command and fires `actionPerformed` event.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ButtonCommand\n\t\t * @param {Object=} data Optional data to be passed to CKEDITOR's `execCommand` method.\n\t\t * @method execCommand\n\t\t */\n\t\texecCommand = data => {\n\t\t\tconst editor = this.context.editor.get('nativeEditor');\n\n\t\t\teditor.execCommand(this.props.command, data);\n\n\t\t\teditor.fire('actionPerformed', this);\n\t\t};\n\t};\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport Lang from '../../oop/lang';\n\n/**\n * ButtonStateClasses is a mixin that decorates the domElement of a component\n * with different CSS classes based on the current state of the element.\n *\n * To check for state, the component can expose the following methods:\n * - `Function` **isActive** to check the active state\n *\n * @class ButtonStateClasses\n */\nexport default WrappedComponent =>\n\tclass ButtonStateClasses extends WrappedComponent {\n\t\t/**\n\t\t * Returns the list of state classes associated to the current element's state, according\n\t\t * to the results of the isActive method.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ButtonStateClasses\n\t\t * @method getStateClasses\n\t\t * @return {String} A string with the state CSS classes.\n\t\t */\n\t\tgetStateClasses() {\n\t\t\tlet stateClasses = '';\n\n\t\t\t// Check for active state\n\n\t\t\tif (Lang.isFunction(this.isActive) && this.isActive()) {\n\t\t\t\tstateClasses += 'ae-button-pressed';\n\t\t\t}\n\n\t\t\treturn stateClasses;\n\t\t}\n\t};\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\n/**\n * Provides core language utilities.\n *\n * @class Lang\n */\nconst Lang = {\n\t/**\n\t * Check if the passed value is an array.\n\t *\n\t * @memberof Lang\n\t * @method isArray\n\t * @param {Any} value The value which have to be checked.\n\t * @return {Boolean} True if the passed value is an array, false otherwise.\n\t * @static\n\t */\n\tisArray(value) {\n\t\treturn Object.prototype.toString.call(value) === '[object Array]';\n\t},\n\n\t/**\n\t * Check if the passed value is boolean.\n\t *\n\t * @memberof Lang\n\t * @method isBoolean\n\t * @param {Any} value The value which have to be checked.\n\t * @return {Boolean} True if the passed value is boolean, false otherwise.\n\t * @static\n\t */\n\tisBoolean(value) {\n\t\treturn typeof value === 'boolean';\n\t},\n\n\t/**\n\t * Check if the passed value is a function.\n\t *\n\t * @memberof Lang\n\t * @method isFunction\n\t * @param {Any} value The value which have to be checked.\n\t * @return {Boolean} True if the passed value is a function, false otherwise.\n\t * @static\n\t */\n\tisFunction(value) {\n\t\treturn typeof value === 'function';\n\t},\n\n\t/**\n\t * Check if the passed value is NULL.\n\t *\n\t * @memberof Lang\n\t * @method isNull\n\t * @param {Any} value The value which have to be checked.\n\t * @return {Boolean} True if the passed value is NULL, false otherwise.\n\t * @static\n\t */\n\tisNull(value) {\n\t\treturn value === null;\n\t},\n\n\t/**\n\t * Check if the passed value is number.\n\t *\n\t * @memberof Lang\n\t * @method isNumber\n\t * @param {Any} value The value which have to be checked.\n\t * @return {Boolean} True if the passed value is number, false otherwise.\n\t * @static\n\t */\n\tisNumber(value) {\n\t\treturn typeof value === 'number' && isFinite(value);\n\t},\n\n\t/**\n\t * Check if the passed value is an object\n\t *\n\t * @memberof Lang\n\t * @method isObject\n\t * @param {Any} value The value which have to be checked.\n\t * @return {Boolean} True if the passed value is an object, false otherwise.\n\t * @static\n\t */\n\tisObject(value) {\n\t\tconst valueType = typeof value;\n\n\t\treturn value && (valueType === 'object' || Lang.isFunction(value));\n\t},\n\n\t/**\n\t * Check if the passed value is a string.\n\t *\n\t * @memberof Lang\n\t * @method isString\n\t * @param {Any} value The value which have to be checked.\n\t * @return {Boolean} True if the passed value is a string, false otherwise.\n\t * @static\n\t */\n\tisString(value) {\n\t\treturn typeof value === 'string';\n\t},\n\n\t/**\n\t * Adds all properties from the supplier to the receiver.\n\t * The function will add all properties, not only these owned by the supplier.\n\t *\n\t * @memberof Lang\n\t * @method mix\n\t * @param {Object} receiver The object which will receive properties.\n\t * @param {Object} supplier The object which provides properties.\n\t * @return {Object} The modified receiver.\n\t * @static\n\t */\n\tmix(receiver, supplier) {\n\t\tconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n\t\tfor (const key in supplier) {\n\t\t\tif (hasOwnProperty.call(supplier, key)) {\n\t\t\t\treceiver[key] = supplier[key];\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Converts value to Integer.\n\t *\n\t * @memberof Lang\n\t * @method toInt\n\t * @param {Any} value The value which have to be converted to Integer.\n\t * @return {Integer} The converted value.\n\t * @static\n\t */\n\ttoInt(value) {\n\t\treturn parseInt(value, 10);\n\t},\n};\n\nexport default Lang;\n","(function() { module.exports = window[undefined]; }());","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport EditorContext from '../../adapter/editor-context';\nimport Lang from '../../oop/lang';\n\n/**\n * ButtonStyle is a mixin that provides a style prop and some methods to apply the resulting\n * style and checking if it is present in a given path or selection.\n *\n * @class ButtonStyle\n */\nexport default WrappedComponent =>\n\tclass ButtonStyle extends WrappedComponent {\n\t\tstatic contextType = EditorContext;\n\n\t\t/**\n\t\t * Lifecycle. Invoked once, both on the client and server, immediately before the initial rendering occurs.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ButtonStyle\n\t\t * @method componentWillMount\n\t\t */\n\t\tcomponentWillMount() {\n\t\t\tif (Lang.isFunction(super.componentWillMount)) {\n\t\t\t\tsuper.componentWillMount();\n\t\t\t}\n\n\t\t\tlet style = this.props.style;\n\n\t\t\tif (Lang.isString(style)) {\n\t\t\t\tconst parts = style.split('.');\n\t\t\t\tlet currentMember = this.context.editor.get('nativeEditor')\n\t\t\t\t\t.config;\n\t\t\t\tlet property = parts.shift();\n\n\t\t\t\twhile (\n\t\t\t\t\tproperty &&\n\t\t\t\t\tLang.isObject(currentMember) &&\n\t\t\t\t\tLang.isObject(currentMember[property])\n\t\t\t\t) {\n\t\t\t\t\tcurrentMember = currentMember[property];\n\t\t\t\t\tproperty = parts.shift();\n\t\t\t\t}\n\n\t\t\t\tif (Lang.isObject(currentMember)) {\n\t\t\t\t\tstyle = currentMember;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._style = new CKEDITOR.style(style);\n\t\t}\n\n\t\t/**\n\t\t * Lifecycle. Invoked immediately before a component is unmounted from the DOM.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ButtonStyle\n\t\t * @method componentWillUnmount\n\t\t */\n\t\tcomponentWillUnmount() {\n\t\t\tif (Lang.isFunction(super.componentWillUnmount)) {\n\t\t\t\tsuper.componentWillUnmount();\n\t\t\t}\n\n\t\t\tthis._style = null;\n\t\t}\n\n\t\t/**\n\t\t * Returns instance of CKEDITOR.style which represents the current button style.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ButtonStyle\n\t\t * @method getStyle\n\t\t * @return {CKEDITOR.style} The current style representation.\n\t\t */\n\t\tgetStyle() {\n\t\t\treturn this._style;\n\t\t}\n\n\t\t/**\n\t\t * Checks if style is active in the current selection.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ButtonStyle\n\t\t * @method isActive\n\t\t * @return {Boolean} True if style is active, false otherwise.\n\t\t */\n\t\tisActive() {\n\t\t\tconst editor = this.context.editor.get('nativeEditor');\n\t\t\tconst elementPath = editor.elementPath();\n\n\t\t\treturn this.getStyle().checkActive(elementPath, editor);\n\t\t}\n\t};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport EditorContext from '../../adapter/editor-context';\n\n/**\n * ButtonCommandActive is a mixin that provides an `isActive` method to determine if\n * a context-aware command is currently in an active state.\n *\n * @class ButtonCommandActive\n */\nexport default WrappedComponent =>\n\tclass ButtonCommandActive extends WrappedComponent {\n\t\tstatic contextType = EditorContext;\n\n\t\t/**\n\t\t * Checks if the command is active in the current selection.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ButtonCommandActive\n\t\t * @method isActive\n\t\t * @return {Boolean} True if the command is active, false otherwise.\n\t\t */\n\t\tisActive() {\n\t\t\tconst editor = this.context.editor.get('nativeEditor');\n\n\t\t\tconst command = editor.getCommand(this.props.command);\n\n\t\t\treturn command ? command.state === CKEDITOR.TRISTATE_ON : false;\n\t\t}\n\t};\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport ReactDOM from 'react-dom';\n\nimport Lang from '../../oop/lang';\n\nconst DIRECTION_NONE = 0;\nconst DIRECTION_NEXT = 1;\nconst DIRECTION_PREV = -1;\n\nconst ACTION_NONE = 0;\nconst ACTION_MOVE_FOCUS = 1;\nconst ACTION_DISMISS_FOCUS = 2;\n\n/**\n * WidgetFocusManager is a mixin that provides keyboard navigation inside a widget. To do this,\n * it exposes the following props and methods:\n *\n * @class WidgetFocusManager\n */\nexport default WrappedComponent =>\n\tclass WidgetFocusManager extends WrappedComponent {\n\t\t/**\n\t\t * Lifecycle. Invoked once, only on the client, immediately after the initial rendering occurs.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetFocusManager\n\t\t * @method componentDidMount\n\t\t */\n\t\tcomponentDidMount() {\n\t\t\tif (Lang.isFunction(super.componentDidMount)) {\n\t\t\t\tsuper.componentDidMount();\n\t\t\t}\n\n\t\t\tthis._refresh();\n\t\t}\n\n\t\t/**\n\t\t * Lifecycle. Invoked immediately after the component's updates are flushed to the DOM.\n\t\t * Refreshes the descendants list.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetFocusManager\n\t\t * @method componentDidUpdate\n\t\t */\n\t\tcomponentDidUpdate() {\n\t\t\tif (Lang.isFunction(super.componentDidUpdate)) {\n\t\t\t\tsuper.componentDidUpdate();\n\t\t\t}\n\n\t\t\tthis._refresh();\n\t\t}\n\n\t\t/**\n\t\t * Focuses the current active descendant.\n\t\t *\n\t\t * Several Widgets can be nested in a component hierarchy by attaching this focus method to\n\t\t * the widget DOM node, transferring the DOM focus control to the inner FocusManager.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetFocusManager\n\t\t * @method focus\n\t\t */\n\t\tfocus = event => {\n\t\t\tif (!event || this._isValidTarget(event.target)) {\n\t\t\t\tif (this._descendants && this._descendants.length) {\n\t\t\t\t\tconst activeDescendantEl = this._descendants[\n\t\t\t\t\t\tthis._activeDescendant\n\t\t\t\t\t];\n\n\t\t\t\t\t// When user clicks with the mouse, the activeElement is already set and there\n\t\t\t\t\t// is no need to focus it. Focusing of the active descendant (usually some button) is required\n\t\t\t\t\t// in case of keyboard navigation, because the focused element might be not the first button,\n\t\t\t\t\t// but the div element, which contains the button.\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tdocument.activeElement !== activeDescendantEl &&\n\t\t\t\t\t\t!this.props.focusFirstChild\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tthis._descendants.indexOf(\n\t\t\t\t\t\t\t\tdocument.activeElement\n\t\t\t\t\t\t\t) === -1\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tactiveDescendantEl.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (event) {\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Handles the key events on a DOM node to execute the appropriate navigation when needed.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetFocusManager\n\t\t * @param {Object} event The Keyboard event that was detected on the widget DOM node.\n\t\t * @method handleKey\n\t\t */\n\t\thandleKey = event => {\n\t\t\tif (this._isValidTarget(event.target) && this._descendants) {\n\t\t\t\tconst action = this._getFocusAction(event);\n\n\t\t\t\tif (action.type) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tif (action.type === ACTION_MOVE_FOCUS) {\n\t\t\t\t\t\tthis._moveFocus(action.direction);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (action.type === ACTION_DISMISS_FOCUS) {\n\t\t\t\t\t\tthis.props.onDismiss(action.direction);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Moves the focus among descendants in the especified direction.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetFocusManager\n\t\t * @method moveFocus\n\t\t * @param {number} direction The direction (1 or -1) of the focus movement among descendants.\n\t\t */\n\t\tmoveFocus(direction) {\n\t\t\tdirection = Lang.isNumber(direction) ? direction : 0;\n\n\t\t\tthis._moveFocus(direction);\n\t\t}\n\n\t\t/**\n\t\t * Returns the action, if any, that a keyboard event in the current focus manager state\n\t\t * should produce.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetFocusManager\n\t\t * @method _getFocusAction\n\t\t * @param {object} event The Keyboard event.\n\t\t * @protected\n\t\t * @return {Object} An action object with type and direction properties.\n\t\t */\n\t\t_getFocusAction(event) {\n\t\t\tconst action = {\n\t\t\t\ttype: ACTION_NONE,\n\t\t\t};\n\n\t\t\tif (this.props.keys) {\n\t\t\t\tconst direction = this._getFocusMoveDirection(event);\n\n\t\t\t\tif (direction) {\n\t\t\t\t\taction.direction = direction;\n\t\t\t\t\taction.type = ACTION_MOVE_FOCUS;\n\t\t\t\t}\n\n\t\t\t\tconst dismissAction = this._getFocusDismissAction(\n\t\t\t\t\tevent,\n\t\t\t\t\tdirection\n\t\t\t\t);\n\n\t\t\t\tif (dismissAction.dismiss) {\n\t\t\t\t\taction.direction = dismissAction.direction;\n\t\t\t\t\taction.type = ACTION_DISMISS_FOCUS;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn action;\n\t\t}\n\n\t\t/**\n\t\t * Returns the dismiss action, if any, the focus manager should execute to yield the focus. This\n\t\t * will happen in any of these scenarios if a dismiss callback has been specified:\n\t\t * - A dismiss key has been pressed\n\t\t * - In a non-circular focus manager, when:\n\t\t * - The active descendant is the first one and a prev key has been pressed.\n\t\t * - The active descendant is the last one and a next key has been pressed.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetFocusManager\n\t\t * @method _getFocusDismissAction\n\t\t * @param {Number} focusMoveDirection The focus movement direction (if any).\n\t\t * @param {Object} event The Keyboard event.\n\t\t * @protected\n\t\t * @return {Object} A dismiss action with dismiss and direction properties.\n\t\t */\n\t\t_getFocusDismissAction(event, focusMoveDirection) {\n\t\t\tconst dismissAction = {\n\t\t\t\tdirection: focusMoveDirection,\n\t\t\t\tdismiss: false,\n\t\t\t};\n\n\t\t\tif (this.props.onDismiss) {\n\t\t\t\tif (this._isValidKey(event.keyCode, this.props.keys.dismiss)) {\n\t\t\t\t\tdismissAction.dismiss = true;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tthis._isValidKey(event.keyCode, this.props.keys.dismissNext)\n\t\t\t\t) {\n\t\t\t\t\tdismissAction.dismiss = true;\n\t\t\t\t\tdismissAction.direction = DIRECTION_NEXT;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tthis._isValidKey(event.keyCode, this.props.keys.dismissPrev)\n\t\t\t\t) {\n\t\t\t\t\tdismissAction.dismiss = true;\n\t\t\t\t\tdismissAction.direction = DIRECTION_PREV;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!dismissAction.dismiss &&\n\t\t\t\t\t!this.props.circular &&\n\t\t\t\t\tfocusMoveDirection\n\t\t\t\t) {\n\t\t\t\t\tdismissAction.dismiss =\n\t\t\t\t\t\t(focusMoveDirection === DIRECTION_PREV &&\n\t\t\t\t\t\t\tthis._activeDescendant === 0) ||\n\t\t\t\t\t\t(focusMoveDirection === DIRECTION_NEXT &&\n\t\t\t\t\t\t\tthis._activeDescendant ===\n\t\t\t\t\t\t\t\tthis._descendants.length - 1);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn dismissAction;\n\t\t}\n\n\t\t/**\n\t\t * Returns the direction, if any, in which the focus should be moved. In presence of the\n\t\t * shift key modifier, the direction of the movement is inverted.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetFocusManager\n\t\t * @method _getFocusMoveDirection\n\t\t * @param {Object} event The Keyboard event.\n\t\t * @protected\n\t\t * @return {Number} The computed direction of the expected focus movement.\n\t\t */\n\t\t_getFocusMoveDirection(event) {\n\t\t\tlet direction = DIRECTION_NONE;\n\n\t\t\tif (this._isValidKey(event.keyCode, this.props.keys.next)) {\n\t\t\t\tdirection = DIRECTION_NEXT;\n\t\t\t}\n\t\t\tif (this._isValidKey(event.keyCode, this.props.keys.prev)) {\n\t\t\t\tdirection = DIRECTION_PREV;\n\t\t\t}\n\n\t\t\tif (event.shifKey) {\n\t\t\t\tdirection *= -1;\n\t\t\t}\n\n\t\t\treturn direction;\n\t\t}\n\n\t\t/**\n\t\t * Indicates if a given keyCode is valid for the given set of keys.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetFocusManager\n\t\t * @method _isValidKey\n\t\t * @param {Array|Number} keys A key set. Can be a number an array of numbers representing the allowed keyCodes.\n\t\t * @param {Number} keyCode An event keyCode.\n\t\t * @protected\n\t\t * @return {Boolean} A boolean value indicating if the key is valid.\n\t\t */\n\t\t_isValidKey(keyCode, keys) {\n\t\t\treturn Lang.isArray(keys)\n\t\t\t\t? keys.indexOf(keyCode) !== -1\n\t\t\t\t: keyCode === keys;\n\t\t}\n\n\t\t/**\n\t\t * Indicates if a given element is valid for focus management. User input elements such as\n\t\t * input, select or textarea are excluded.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetFocusManager\n\t\t * @method _isValidKey\n\t\t * @param {DOMNode} element A DOM element.\n\t\t * @protected\n\t\t * @return {Boolean} A boolean value indicating if the element is valid.\n\t\t */\n\t\t_isValidTarget(element) {\n\t\t\tconst tagName = element.tagName.toLowerCase();\n\n\t\t\treturn (\n\t\t\t\ttagName !== 'input' &&\n\t\t\t\ttagName !== 'select' &&\n\t\t\t\ttagName !== 'textarea'\n\t\t\t);\n\t\t}\n\n\t\t/**\n\t\t * Moves the focus among descendants in the especified direction.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetFocusManager\n\t\t * @method _moveFocus\n\t\t * @param {number} direction The direction (1 or -1) of the focus movement among descendants.\n\t\t * @protected\n\t\t */\n\t\t_moveFocus(direction) {\n\t\t\tconst numDescendants = this._descendants.length;\n\n\t\t\tlet descendant = this._descendants[this._activeDescendant];\n\n\t\t\tdescendant.setAttribute('tabIndex', -1);\n\n\t\t\tthis._activeDescendant += direction;\n\n\t\t\tif (this.props.circular) {\n\t\t\t\t// Calculate proper modulo result since remainder operator doesn't behave in the\n\t\t\t\t// same way for negative numbers\n\n\t\t\t\tthis._activeDescendant =\n\t\t\t\t\t((this._activeDescendant % numDescendants) +\n\t\t\t\t\t\tnumDescendants) %\n\t\t\t\t\tnumDescendants;\n\t\t\t} else {\n\t\t\t\tthis._activeDescendant = Math.max(\n\t\t\t\t\tMath.min(this._activeDescendant, numDescendants - 1),\n\t\t\t\t\t0\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tdescendant = this._descendants[this._activeDescendant];\n\n\t\t\tdescendant.setAttribute('tabIndex', 0);\n\t\t\tdescendant.focus();\n\t\t}\n\n\t\t/**\n\t\t * Refreshes the descendants list by executing the CSS selector again and resets the descendants tabIndex.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetFocusManager\n\t\t * @method _refresh\n\t\t * @protected\n\t\t */\n\t\t_refresh() {\n\t\t\tconst domNode = ReactDOM.findDOMNode(this);\n\n\t\t\tif (domNode) {\n\t\t\t\tconst descendants = domNode.querySelectorAll(\n\t\t\t\t\tthis.props.descendants\n\t\t\t\t);\n\n\t\t\t\tlet priorityDescendants = [];\n\n\t\t\t\tthis._descendants = [];\n\n\t\t\t\tArray.prototype.slice.call(descendants).forEach(item => {\n\t\t\t\t\tconst dataTabIndex = item.getAttribute('data-tabindex');\n\n\t\t\t\t\tif (dataTabIndex) {\n\t\t\t\t\t\tpriorityDescendants.push(item);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._descendants.push(item);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tpriorityDescendants = priorityDescendants.sort((a, b) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tLang.toInt(a.getAttribute('data-tabindex')) >\n\t\t\t\t\t\tLang.toInt(b.getAttribute('data-tabindex'))\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\tthis._descendants = priorityDescendants.concat(\n\t\t\t\t\tthis._descendants\n\t\t\t\t);\n\n\t\t\t\tthis._activeDescendant = 0;\n\n\t\t\t\tthis._descendants.some((item, index) => {\n\t\t\t\t\tif (item.getAttribute('tabindex') === '0') {\n\t\t\t\t\t\tthis._activeDescendant = index;\n\t\t\t\t\t\tthis.focus();\n\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport EditorContext from '../../adapter/editor-context';\nimport Lang from '../../oop/lang';\n\n/**\n * ButtonKeystroke is a mixin that provides a `keystroke` prop that allows configuring\n * a function of the instance to be invoked upon the keystroke activation.\n *\n * @class ButtonKeystroke\n */\nexport default WrappedComponent =>\n\tclass ButtonKeystroke extends WrappedComponent {\n\t\tstatic contextType = EditorContext;\n\n\t\t/**\n\t\t * Lifecycle. Invoked once, both on the client and server, immediately before the initial rendering occurs.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ButtonKeystroke\n\t\t * @method componentWillMount\n\t\t */\n\t\tcomponentWillMount() {\n\t\t\tif (Lang.isFunction(super.componentWillMount)) {\n\t\t\t\tsuper.componentWillMount();\n\t\t\t}\n\n\t\t\tconst nativeEditor = this.context.editor.get('nativeEditor');\n\t\t\tconst keystroke = this.props.keystroke;\n\n\t\t\tconst commandName = `keystroke:${keystroke.name}`;\n\n\t\t\tlet command = nativeEditor.getCommand(commandName);\n\n\t\t\tif (!command) {\n\t\t\t\tcommand = new CKEDITOR.command(nativeEditor, {\n\t\t\t\t\texec: function(editor) {\n\t\t\t\t\t\tconst keystrokeFn = keystroke.fn;\n\n\t\t\t\t\t\tif (Lang.isString(keystrokeFn)) {\n\t\t\t\t\t\t\tthis[keystrokeFn].call(this, editor);\n\t\t\t\t\t\t} else if (Lang.isFunction(keystrokeFn)) {\n\t\t\t\t\t\t\tkeystrokeFn.call(this, editor);\n\t\t\t\t\t\t}\n\t\t\t\t\t}.bind(this),\n\t\t\t\t});\n\n\t\t\t\tnativeEditor.addCommand(commandName, command);\n\t\t\t}\n\n\t\t\tthis._defaultKeystrokeCommand =\n\t\t\t\tnativeEditor.keystrokeHandler.keystrokes[keystroke.keys];\n\n\t\t\tnativeEditor.setKeystroke(keystroke.keys, commandName);\n\t\t}\n\n\t\t/**\n\t\t * Lifecycle. Invoked immediately before a component is unmounted from the DOM.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ButtonKeystroke\n\t\t * @method componentWillUnmount\n\t\t */\n\t\tcomponentWillUnmount() {\n\t\t\tif (Lang.isFunction(super.componentWillUnmount)) {\n\t\t\t\tsuper.componentWillUnmount();\n\t\t\t}\n\n\t\t\tthis.context.editor\n\t\t\t\t.get('nativeEditor')\n\t\t\t\t.setKeystroke(\n\t\t\t\t\tthis.props.keystroke.keys,\n\t\t\t\t\tthis._defaultKeystrokeCommand\n\t\t\t\t);\n\t\t}\n\t};\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\nimport WidgetFocusManager from '../base/widget-focus-manager';\n\n/**\n * The ButtonDropdown class provides markup and keyboard navigation behaviour to a dropdown\n * opened from a button.\n *\n * @class ButtonDropdown\n */\nclass ButtonDropdown extends React.Component {\n\t/**\n\t * Lifecycle. Returns the default values of the properties used in the widget.\n\t *\n\t * @instance\n\t * @memberof ButtonDropdown\n\t * @method getDefaultProps\n\t */\n\tstatic defaultProps = {\n\t\tcircular: false,\n\t\tdescendants: '.ae-toolbar-element',\n\t\tkeys: {\n\t\t\tdismiss: [27],\n\t\t\tdismissNext: [39],\n\t\t\tdismissPrev: [37],\n\t\t\tnext: [40],\n\t\t\tprev: [38],\n\t\t},\n\t};\n\n\t/**\n\t * The name which will be used as an alias of the dropdown in the configuration.\n\t *\n\t * @default dropdown\n\t * @memberof ButtonDropdown\n\t * @property {String} key\n\t * @static\n\t */\n\tstatic key = 'dropdown';\n\n\t/**\n\t * Lifecycle. Renders the UI of the button.\n\t *\n\t * @instance\n\t * @memberof ButtonDropdown\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t{this.props.children}\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t}\n}\n\nexport default WidgetFocusManager(ButtonDropdown);\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\nimport WidgetFocusManager from '../base/widget-focus-manager';\nimport ButtonCommandListItem from './button-command-list-item.jsx';\n\n/**\n * The ButtonCommandsList class provides functionality for showing a list of commands that can be\n * executed to the current selection..\n *\n * @class ButtonCommandsList\n * @uses WidgetFocusManager\n */\nclass ButtonCommandsList extends React.Component {\n\t/**\n\t * Lifecycle. Returns the default values of the properties used in the widget.\n\t *\n\t * @instance\n\t * @memberof ButtonCommandsList\n\t * @method getDefaultProps\n\t * @return {Object} The default properties.\n\t */\n\tstatic defaultProps = {\n\t\tcircular: false,\n\t\tdescendants: '.ae-toolbar-element',\n\t\tkeys: {\n\t\t\tdismiss: [27],\n\t\t\tdismissNext: [39],\n\t\t\tdismissPrev: [37],\n\t\t\tnext: [40],\n\t\t\tprev: [38],\n\t\t},\n\t};\n\n\t/**\n\t * The name which will be used as an alias of the button in the configuration.\n\t *\n\t * @default buttonCommandsList\n\t * @memberof ButtonCommandsList\n\t * @property {String} key\n\t * @static\n\t */\n\tstatic key = 'buttonCommandsList';\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis._ref = React.createRef();\n\t}\n\n\t/**\n\t * Lifecycle. Invoked once, only on the client, immediately after the initial rendering occurs.\n\t *\n\t * Focuses on the list node to allow keyboard interaction.\n\t *\n\t * @instance\n\t * @memberof ButtonCommandsList\n\t * @method componentDidMount\n\t */\n\tcomponentDidMount() {\n\t\tthis._ref.current.focus();\n\t}\n\n\t/**\n\t * Lifecycle. Renders the UI of the list.\n\t *\n\t * @instance\n\t * @memberof ButtonCommandsList\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{this._renderActions(this.props.commands)}\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\t/**\n\t * Renders instances of ButtonCommandListItem with the description of the row action that will be executed.\n\t *\n\t * @instance\n\t * @memberof ButtonCommandsList\n\t * @method _renderActions\n\t * @protected\n\t * @return {Array} Rendered instances of ButtonCommandListItem class\n\t */\n\t_renderActions(commands) {\n\t\tlet items;\n\n\t\tif (commands && commands.length) {\n\t\t\titems = commands.map(item => {\n\t\t\t\treturn (\n\t\t\t\t\t
  • \n\t\t\t\t\t\t\n\t\t\t\t\t
  • \n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\treturn items;\n\t}\n}\n\nexport default WidgetFocusManager(ButtonCommandsList);\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport EditorContext from '../../adapter/editor-context';\nimport Lang from '../../oop/lang';\n\n/**\n * ButtonActionStyle is a mixin that provides applying style implementation for a\n * button based on the `applyStyle` and `removeStyle` API of CKEDITOR.\n *\n * To execute properly, the component has to expose the following methods which can be obtained\n * out of the box using the {{#crossLink \"ButtonStyle\"}}{{/crossLink}} mixin:\n * - `Function` {{#crossLink \"ButtonStyle/isActive\"}}{{/crossLink}} to check the active state\n * - `Function` {{#crossLink \"ButtonStyle/getStyle\"}}{{/crossLink}} to return the style that should be applied\n *\n * @class ButtonActionStyle\n */\nexport default WrappedComponent =>\n\tclass ButtonActionStyle extends WrappedComponent {\n\t\tstatic contextType = EditorContext;\n\n\t\t/**\n\t\t * Removes or applies the component style to the current selection.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ButtonActionStyle\n\t\t * @method applyStyle\n\t\t */\n\t\tapplyStyle = () => {\n\t\t\tif (\n\t\t\t\tLang.isFunction(this.isActive) &&\n\t\t\t\tLang.isFunction(this.getStyle)\n\t\t\t) {\n\t\t\t\tconst editor = this.context.editor.get('nativeEditor');\n\n\t\t\t\teditor.getSelection().lock();\n\n\t\t\t\tif (this.isActive()) {\n\t\t\t\t\teditor.removeStyle(this.getStyle());\n\t\t\t\t} else {\n\t\t\t\t\teditor.applyStyle(this.getStyle());\n\t\t\t\t}\n\n\t\t\t\teditor.getSelection().unlock();\n\n\t\t\t\teditor.fire('actionPerformed', this);\n\t\t\t}\n\t\t};\n\t};\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport WidgetFocusManager from '../base/widget-focus-manager';\nimport ButtonDropdown from './button-dropdown.jsx';\nimport ButtonsStylesListHeader from './button-styles-list-header.jsx';\nimport ButtonStylesListItemRemove from './button-styles-list-item-remove.jsx';\nimport ButtonStylesListItem from './button-styles-list-item.jsx';\n\n/**\n * The ButtonStylesList class provides functionality for showing a list of styles that can be\n * applied to the current selection..\n *\n * @class ButtonStylesList\n * @uses WidgetFocusManager\n */\nclass ButtonStylesList extends React.Component {\n\t/**\n\t * Lifecycle. Returns the default values of the properties used in the widget.\n\t *\n\t * @instance\n\t * @memberof ButtonStylesList\n\t * @method getDefaultProps\n\t * @return {Object} The default properties.\n\t */\n\tstatic defaultProps = {\n\t\tcircular: false,\n\t\tdescendants: '.ae-toolbar-element',\n\t\tkeys: {\n\t\t\tdismiss: [27],\n\t\t\tdismissNext: [39],\n\t\t\tdismissPrev: [37],\n\t\t\tnext: [40],\n\t\t\tprev: [38],\n\t\t},\n\t\tshowRemoveStylesItem: true,\n\t};\n\n\t/**\n\t * The name which will be used as an alias of the button in the configuration.\n\t *\n\t * @memberof ButtonStylesList\n\t * @static\n\t * @property {String} key\n\t * @default buttonStylesList\n\t */\n\tstatic key = 'buttonStylesList';\n\n\t/**\n\t * Lifecycle. Invoked once, only on the client, immediately after the initial rendering occurs.\n\t *\n\t * Focuses on the list node to allow keyboard interaction.\n\t *\n\t * @instance\n\t * @memberof ButtonStylesList\n\t * @method componentDidMount\n\t */\n\tcomponentDidMount() {\n\t\tReactDOM.findDOMNode(this).focus();\n\t}\n\n\t/**\n\t * Lifecycle. Invoked once, both on the client and server, immediately before the initial rendering occurs.\n\t *\n\t * @instance\n\t * @memberof ButtonStylesList\n\t * @method componentWillMount\n\t */\n\tcomponentWillMount() {\n\t\tconst blockStyles = [];\n\t\tconst inlineStyles = [];\n\t\tconst objectStyles = [];\n\n\t\tthis.props.styles.forEach(item => {\n\t\t\tconst style = new CKEDITOR.style(item.style);\n\n\t\t\tif (style.type === CKEDITOR.STYLE_BLOCK) {\n\t\t\t\tblockStyles.push(item);\n\t\t\t} else if (style.type === CKEDITOR.STYLE_INLINE) {\n\t\t\t\tinlineStyles.push(item);\n\t\t\t} else if (style.type === CKEDITOR.STYLE_OBJECT) {\n\t\t\t\tobjectStyles.push(item);\n\t\t\t}\n\t\t});\n\n\t\tthis._blockStyles = blockStyles;\n\t\tthis._inlineStyles = inlineStyles;\n\t\tthis._objectStyles = objectStyles;\n\t}\n\n\t/**\n\t * Lifecycle. Renders the UI of the list.\n\t *\n\t * @instance\n\t * @memberof ButtonStylesList\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\tlet removeStylesItem;\n\n\t\tif (this.props.showRemoveStylesItem) {\n\t\t\tremoveStylesItem = (\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{removeStylesItem}\n\n\t\t\t\t\n\t\t\t\t{this._renderStylesItems(this._blockStyles)}\n\n\t\t\t\t\n\t\t\t\t{this._renderStylesItems(this._inlineStyles)}\n\n\t\t\t\t\n\t\t\t\t{this._renderStylesItems(this._objectStyles)}\n\t\t\t\n\t\t);\n\t}\n\n\t/**\n\t * Renders instances of ButtonStylesListItem with the preview of the correspondent block, inline or object styles.\n\t *\n\t * @instance\n\t * @memberof ButtonStylesList\n\t * @method _renderStylesItems\n\t * @param {Array} styles List of styles for which preview should be rendered.\n\t * @protected\n\t * @return {Array} Rendered instances of ButtonStylesListItem class\n\t */\n\t_renderStylesItems(styles) {\n\t\tlet items;\n\n\t\tif (styles && styles.length) {\n\t\t\titems = styles.map(item => {\n\t\t\t\treturn (\n\t\t\t\t\t
  • \n\t\t\t\t\t\t\n\t\t\t\t\t
  • \n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\treturn items;\n\t}\n}\n\nexport default WidgetFocusManager(ButtonStylesList);\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport ReactDOM from 'react-dom';\n\nimport Lang from '../../oop/lang';\n\n/**\n * Provides functionality for managing different dropdowns inside a widget.\n *\n * @class WidgetDropdown\n */\nexport default WrappedComponent =>\n\tclass WidgetDropdown extends WrappedComponent {\n\t\tconstructor(props) {\n\t\t\tsuper(props);\n\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\tdropdownTrigger: null,\n\t\t\t\titemDropdown: null,\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Lifecycle. Invoked when a component is receiving new props.\n\t\t * This method is not called for the initial render.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetDropdown\n\t\t * @method componentWillReceiveProps\n\t\t */\n\t\tcomponentWillReceiveProps(nextProps) {\n\t\t\tif (Lang.isFunction(super.componentWillReceiveProps)) {\n\t\t\t\tsuper.componentWillReceiveProps(nextProps);\n\t\t\t}\n\n\t\t\tthis.setState({\n\t\t\t\tdropdownTrigger: null,\n\t\t\t\titemDropdown: null,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Merges the provided object with two more properties:\n\t\t * - expanded - boolean flag which indicates if an widget should be rendered exclusively.\n\t\t * - toggleDropdown - function, which can be used by an widget in order to obtain exclusive state.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetDropdown\n\t\t * @method mergeDropdownProps\n\t\t * @param {Object} obj The properties container which should be merged with the properties, related\n\t\t * to dropdown state.\n\t\t * @param {Object} itemKey They key of an React Widget which contains the dropdown.\n\t\t * @return {Object} The merged object.\n\t\t */\n\t\tmergeDropdownProps = (obj, itemKey) => {\n\t\t\treturn CKEDITOR.tools.merge(obj, {\n\t\t\t\texpanded: this.state.itemDropdown === itemKey ? true : false,\n\t\t\t\ttabIndex: this.state.dropdownTrigger === itemKey ? 0 : -1,\n\t\t\t\ttoggleDropdown: this.toggleDropdown.bind(this, itemKey),\n\t\t\t});\n\t\t};\n\n\t\t/**\n\t\t * Sets the active dropdown of the widget or discards the toggled item from the state.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetDropdown\n\t\t * @method toggleDropdown\n\t\t * @param {Object} itemDropdown The widget which requests to toggle its dropdown.\n\t\t * @param {Number} toggleDirection User movement direction when toggled via keyboard.\n\t\t */\n\t\ttoggleDropdown = (itemDropdown, toggleDirection) => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdropdownTrigger: itemDropdown,\n\t\t\t\t\titemDropdown:\n\t\t\t\t\t\titemDropdown !== this.state.itemDropdown\n\t\t\t\t\t\t\t? itemDropdown\n\t\t\t\t\t\t\t: null,\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tif (!this.state.itemDropdown) {\n\t\t\t\t\t\tif (this.moveFocus) {\n\t\t\t\t\t\t\tthis.moveFocus(toggleDirection);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tReactDOM.findDOMNode(this).focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t};\n\t};\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport Lang from '../../oop/lang';\n\n/**\n * Provides functionality for managing exclusive state of an widget.\n * The exclusive state means that a button may request to be the only rendered\n * widget in its parent container. WidgetExclusive will manage this state by\n * filtering and suppressing the other sibling widgets from displaying.\n *\n * @class WidgetExclusive\n */\nexport default WrappedComponent =>\n\tclass WidgetExclusive extends WrappedComponent {\n\t\t/**\n\t\t * Cancels the exclusive state of an widget.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetExclusive\n\t\t * @method cancelExclusive\n\t\t * @param {Object} itemExclusive The widget which exclusive state should be canceled.\n\t\t */\n\t\tcancelExclusive(itemExclusive) {\n\t\t\tif (this.state.itemExclusive === itemExclusive) {\n\t\t\t\tthis.setState({\n\t\t\t\t\titemExclusive: null,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Lifecycle. Invoked when a component is receiving new props.\n\t\t * This method is not called for the initial render.\n\t\t * Calling this.setState() within this function will not trigger an additional render.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetExclusive\n\t\t * @method componentWillReceiveProps\n\t\t * @param {Object} nextProps Object containing the current set of properties.\n\t\t */\n\t\tcomponentWillReceiveProps(nextProps) {\n\t\t\tif (Lang.isFunction(super.componentWillReceiveProps)) {\n\t\t\t\tsuper.componentWillReceiveProps(nextProps);\n\t\t\t}\n\n\t\t\t// Receiving properties means that the component is being re-rendered.\n\t\t\t// Re-rendering is triggered by editorInteraction, so we have to\n\t\t\t// reset the exclusive state and render the UI according to the new selection.\n\n\t\t\tthis.setState({\n\t\t\t\titemExclusive: null,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Filters the items and returns only those with exclusive state.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetExclusive\n\t\t * @method filterExclusive\n\t\t * @param {Array} items The widgets to be filtered.\n\t\t * @return {Array|Object} The item with executive state.\n\t\t */\n\t\tfilterExclusive(items) {\n\t\t\treturn items.filter(item => {\n\t\t\t\tif (this.state.itemExclusive) {\n\t\t\t\t\tif (this.state.itemExclusive === item.key) {\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn item;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Merges the provided object with three more properties:\n\t\t * - cancelExclusive - function, which can be used by a widget in order to cancel executive state.\n\t\t * - renderExclusive - boolean flag which indicates if an widget should be rendered exclusively.\n\t\t * - requestExclusive - function, which can be used by a widget in order to obtain exclusive state.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetExclusive\n\t\t * @method mergeExclusiveProps\n\t\t * @param {Object} obj The properties container which should be merged with the properties, related\n\t\t * to exclusive state.\n\t\t * @param {Object} itemKey They key of an React Widget which should be rendered exclusively.\n\t\t * @return {Object} The merged object.\n\t\t */\n\t\tmergeExclusiveProps(obj, itemKey) {\n\t\t\treturn CKEDITOR.tools.merge(obj, {\n\t\t\t\tcancelExclusive: this.cancelExclusive.bind(this, itemKey),\n\t\t\t\trenderExclusive: this.state.itemExclusive === itemKey,\n\t\t\t\trequestExclusive: this.requestExclusive.bind(this, itemKey),\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Requests and sets exclusive state of an widget.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetExclusive\n\t\t * @method requestExclusive\n\t\t * @param {Object} itemExclusive The widget which requests exclusive state.\n\t\t */\n\t\trequestExclusive = itemExclusive => {\n\t\t\tthis.setState({\n\t\t\t\titemExclusive,\n\t\t\t});\n\t\t};\n\t};\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\nimport EditorContext from '../../adapter/editor-context';\nimport Lang from '../../oop/lang';\nimport WidgetDropdown from '../base/widget-dropdown';\nimport WidgetFocusManager from '../base/widget-focus-manager';\nimport ButtonIcon from './button-icon.jsx';\nimport ButtonLinkAutocompleteList from './button-link-autocomplete-list.jsx';\nimport ButtonLinkTargetEdit from './button-link-target-edit.jsx';\n\n/**\n * The ButtonLinkEdit class provides functionality for creating and editing a link in a document.\n * Provides UI for creating, editing and removing a link.\n *\n * @class ButtonLinkEdit\n * @uses WidgetDropdown\n * @uses WidgetFocusManager\n */\nclass ButtonLinkEdit extends React.Component {\n\tstatic contextType = EditorContext;\n\n\t/**\n\t * Lifecycle. Returns the default values of the properties used in the widget.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkEdit\n\t * @method getDefaultProps\n\t * @return {Object} The default properties.\n\t */\n\tstatic defaultProps = {\n\t\tappendProtocol: true,\n\t\tautocompleteUrl: '',\n\t\tcircular: true,\n\t\tcustomIndexStart: true,\n\t\tdefaultLinkTarget: '',\n\t\tdescendants: '.ae-toolbar-element',\n\t\tkeys: {\n\t\t\tdismiss: [27],\n\t\t\tdismissNext: [39],\n\t\t\tdismissPrev: [37],\n\t\t\tnext: [40],\n\t\t\tprev: [38],\n\t\t},\n\t\tshowTargetSelector: true,\n\t};\n\n\t/**\n\t * The name which will be used as an alias of the button in the configuration.\n\t *\n\t * @default linkEdit\n\t * @memberof ButtonLinkEdit\n\t * @property {String} key\n\t * @static\n\t */\n\tstatic key = 'linkEdit';\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.linkInput = React.createRef();\n\t\tthis.state = this._getInitialState();\n\t}\n\n\t/**\n\t * Lifecycle. Invoked once, only on the client, immediately after the initial rendering occurs.\n\t *\n\t * Focuses on the link input to immediately allow editing. This should only happen if the component\n\t * is rendered in exclusive mode to prevent aggressive focus stealing.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkEdit\n\t * @method componentDidMount\n\t */\n\tcomponentDidMount() {\n\t\tif (this.props.renderExclusive || this.props.manualSelection) {\n\t\t\t// We need to wait for the next rendering cycle before focusing to avoid undesired\n\t\t\t// scrolls on the page\n\n\t\t\tthis._focusLinkInput();\n\t\t}\n\t}\n\n\t/**\n\t * Lifecycle. Invoked when a component is receiving new props.\n\t * This method is not called for the initial render.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkEdit\n\t * @method componentWillReceiveProps\n\t */\n\tcomponentWillReceiveProps() {\n\t\tthis.setState(this._getInitialState());\n\t}\n\n\t/**\n\t * Lifecycle. Renders the UI of the button.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkEdit\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\tlet targetSelector = {\n\t\t\tallowedTargets: this.props.allowedTargets,\n\t\t\teditor: this.context.editor,\n\t\t\thandleLinkTargetChange: this._handleLinkTargetChange,\n\t\t\tselectedTarget:\n\t\t\t\tthis.state.linkTarget || AlloyEditor.Strings.linkTargetDefault,\n\t\t};\n\n\t\ttargetSelector = this.mergeDropdownProps(\n\t\t\ttargetSelector,\n\t\t\tButtonLinkTargetEdit.key\n\t\t);\n\n\t\tlet autocompleteDropdown;\n\n\t\tif (this.props.data) {\n\t\t\tlet dataFn = this.props.data;\n\n\t\t\tif (!Lang.isFunction(dataFn)) {\n\t\t\t\tconst items = this.props.data;\n\n\t\t\t\tdataFn = () => items;\n\t\t\t}\n\n\t\t\tlet autocompleteDropdownProps = {\n\t\t\t\tautocompleteSelected: this.state.autocompleteSelected,\n\t\t\t\tdata: dataFn,\n\t\t\t\teditor: this.context.editor,\n\t\t\t\thandleLinkAutocompleteClick: this._handleLinkAutocompleteClick,\n\t\t\t\tonDismiss: this.props.toggleDropdown,\n\t\t\t\tsetAutocompleteState: this._setAutocompleteState,\n\t\t\t\tterm: this.state.linkHref,\n\t\t\t};\n\n\t\t\tautocompleteDropdownProps = this.mergeDropdownProps(\n\t\t\t\tautocompleteDropdownProps,\n\t\t\t\tButtonLinkAutocompleteList.key\n\t\t\t);\n\n\t\t\tautocompleteDropdown = (\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\tlet buttonClearLink;\n\n\t\tif (this.state.linkHref) {\n\t\t\tbuttonClearLink = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\tconst placeholderProp = {};\n\n\t\tif (!CKEDITOR.env.ie && AlloyEditor.Strings) {\n\t\t\tplaceholderProp.placeholder = AlloyEditor.Strings.editLink;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t{this.props.showTargetSelector && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t{autocompleteDropdown}\n\t\t\t\t\t
    \n\t\t\t\t\t{buttonClearLink}\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n\n\t/**\n\t * The return value will be used as the initial value of this.state.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkEdit\n\t * @method _getInitialState\n\t * @protected\n\t * @return {Object}\n\t */\n\t_getInitialState() {\n\t\t// Can't access context from contructor, so get editor from props.\n\n\t\tconst {editor} = this.props.context;\n\t\tconst {defaultLinkTarget} = this.props;\n\n\t\tconst link = new CKEDITOR.Link(\n\t\t\teditor.get('nativeEditor')\n\t\t).getFromSelection();\n\t\tconst href = (link && link.getAttribute('href')) || '';\n\t\tconst target =\n\t\t\t(link && link.getAttribute('target')) || defaultLinkTarget;\n\n\t\treturn {\n\t\t\tautocompleteSelected: false,\n\t\t\telement: link,\n\t\t\tinitialLink: {\n\t\t\t\thref,\n\t\t\t\ttarget,\n\t\t\t},\n\t\t\tlinkHref: href,\n\t\t\tlinkTarget: target,\n\t\t};\n\t}\n\n\t/**\n\t * Clears the link input. This only changes the component internal state, but does not\n\t * affect the link element of the editor. Only the _removeLink and _updateLink methods\n\t * are translated to the editor element.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkEdit\n\t * @method _clearLink\n\t * @protected\n\t */\n\t_clearLink = () => {\n\t\tthis.setState({\n\t\t\tlinkHref: '',\n\t\t});\n\n\t\tthis._focusLinkInput();\n\t};\n\n\t/**\n\t * Focuses the user cursor on the widget's input.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkEdit\n\t * @method _focusLinkInput\n\t * @protected\n\t */\n\t_focusLinkInput() {\n\t\tconst instance = this;\n\n\t\tconst focusLinkEl = function() {\n\t\t\tinstance.linkInput.current.focus();\n\t\t};\n\n\t\tif (window.requestAnimationFrame) {\n\t\t\twindow.requestAnimationFrame(focusLinkEl);\n\t\t} else {\n\t\t\tsetTimeout(focusLinkEl, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Monitors key interaction inside the input element to respond to the keys:\n\t * - Enter: Creates/updates the link.\n\t * - Escape: Discards the changes.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkEdit\n\t * @method _handleKeyDown\n\t * @param {SyntheticEvent} event The keyboard event.\n\t * @protected\n\t */\n\t_handleKeyDown = event => {\n\t\tif (event.keyCode === 13 || event.keyCode === 27) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tif (event.keyCode === 13) {\n\t\t\tthis._updateLink();\n\t\t} else if (event.keyCode === 40) {\n\t\t\tthis.setState({\n\t\t\t\tautocompleteSelected: true,\n\t\t\t});\n\t\t} else if (event.keyCode === 27) {\n\t\t\tconst editor = this.context.editor.get('nativeEditor');\n\n\t\t\tnew CKEDITOR.Link(editor).advanceSelection();\n\n\t\t\tthis.context.editor\n\t\t\t\t.get('nativeEditor')\n\t\t\t\t.fire('actionPerformed', this);\n\t\t}\n\t};\n\n\t/**\n\t * Updates the component state when the link input changes on user interaction.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkEdit\n\t * @method _handleLinkHrefChange\n\t * @param {SyntheticEvent} event The change event.\n\t * @protected\n\t */\n\t_handleLinkHrefChange = event => {\n\t\tthis.setState({\n\t\t\tlinkHref: event.target.value,\n\t\t});\n\n\t\tthis._focusLinkInput();\n\t};\n\n\t/**\n\t * Updates the component state when the link target changes on user interaction.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkEdit\n\t * @method _handleLinkTargetChange\n\t * @param {SyntheticEvent} event The click event.\n\t * @protected\n\t */\n\t_handleLinkTargetChange = event => {\n\t\tthis.setState({\n\t\t\titemDropdown: null,\n\t\t\tlinkTarget: event.target.getAttribute('data-value'),\n\t\t});\n\n\t\tthis._focusLinkInput();\n\t};\n\n\t/**\n\t * Updates the component state when an autocomplete link result is selected by user interaction.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkEdit\n\t * @method _handleLinkAutocompleteClick\n\t * @param {SyntheticEvent} event The click event.\n\t * @protected\n\t */\n\t_handleLinkAutocompleteClick(event) {\n\t\tthis.setState({\n\t\t\titemDropdown: null,\n\t\t\tlinkHref: event.target.getAttribute('data-value'),\n\t\t});\n\n\t\tthis._focusLinkInput();\n\t}\n\n\t/**\n\t * Verifies that the current link state is valid so the user can save the link. A valid state\n\t * means that we have a non-empty href and that either that or the link target are different\n\t * from the original link.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkEdit\n\t * @method _isValidState\n\t * @protected\n\t * @return {Boolean} [description]\n\t */\n\t_isValidState() {\n\t\tconst validState =\n\t\t\tthis.state.linkHref &&\n\t\t\t(this.state.linkHref !== this.state.initialLink.href ||\n\t\t\t\tthis.state.linkTarget !== this.state.initialLink.target);\n\n\t\treturn validState;\n\t}\n\n\t/**\n\t * Removes the link in the editor element.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkEdit\n\t * @method _removeLink\n\t * @protected\n\t */\n\t_removeLink = () => {\n\t\tconst editor = this.context.editor.get('nativeEditor');\n\t\tconst linkUtils = new CKEDITOR.Link(editor);\n\t\tconst selection = editor.getSelection();\n\t\tconst bookmarks = selection.createBookmarks();\n\n\t\tlinkUtils.remove(this.state.element, {advance: false});\n\n\t\tselection.selectBookmarks(bookmarks);\n\n\t\t// We need to cancelExclusive with the bound parameters in case the button is used\n\t\t// inside another in exclusive mode (such is the case of the link button)\n\n\t\tthis.props.cancelExclusive();\n\n\t\teditor.fire('actionPerformed', this);\n\t};\n\n\t/**\n\t * Update autocompleteSelected state to focus and select autocomplete´s dropdown\n\t *\n\t * @instance\n\t * @memberof ButtonLinkEdit\n\t * @method _setAutocompleteState\n\t * @protected\n\t */\n\t_setAutocompleteState(state) {\n\t\tthis.setState({\n\t\t\tautocompleteSelected: state.selected,\n\t\t});\n\t}\n\n\t/**\n\t * Updates the link in the editor element. If the element didn't exist previously, it will\n\t * create a new element with the href specified in the link input.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkEdit\n\t * @method _updateLink\n\t * @protected\n\t */\n\t_updateLink = () => {\n\t\tconst editor = this.context.editor.get('nativeEditor');\n\t\tconst linkUtils = new CKEDITOR.Link(editor, {\n\t\t\tappendProtocol: this.props.appendProtocol,\n\t\t});\n\t\tlet linkAttrs = {\n\t\t\ttarget: this.state.linkTarget || null,\n\t\t};\n\t\tconst modifySelection = {advance: false};\n\n\t\tif (this.state.linkHref) {\n\t\t\tif (this.state.element) {\n\t\t\t\tlinkAttrs.href = this.state.linkHref;\n\n\t\t\t\tlinkUtils.update(\n\t\t\t\t\tlinkAttrs,\n\t\t\t\t\tthis.state.element,\n\t\t\t\t\tmodifySelection\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tif (!this.state.linkTarget) {\n\t\t\t\t\tlinkAttrs = {};\n\t\t\t\t}\n\n\t\t\t\tlinkUtils.create(\n\t\t\t\t\tthis.state.linkHref,\n\t\t\t\t\tlinkAttrs,\n\t\t\t\t\tmodifySelection\n\t\t\t\t);\n\t\t\t}\n\n\t\t\teditor.fire('actionPerformed', this);\n\t\t}\n\n\t\t// We need to cancelExclusive with the bound parameters in case the button is used\n\t\t// inside another in exclusive mode (such is the case of the link button)\n\n\t\tthis.props.cancelExclusive();\n\t};\n}\n\nexport default EditorContext.toProps(\n\tWidgetDropdown(WidgetFocusManager(ButtonLinkEdit))\n);\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport EditorContext from '../../adapter/editor-context';\n\n/**\n * ButtonCfgProps is a class that provides a mergeButtonCfgProps method for\n * merging React props and the native CKEDITOR's buttonCfg.\n *\n * @class ButtonProps\n */\nexport default WrappedComponent =>\n\tclass ButtonProps extends WrappedComponent {\n\t\tstatic contextType = EditorContext;\n\n\t\t/**\n\t\t * Merges the properties, passed to the current component with user's configuration\n\t\t * via `buttonCfg` property.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ButtonProps\n\t\t * @method mergeButtonCfgProps\n\t\t * @param {Object} props The properties to be merged with the provided configuration for this\n\t\t * button. If not passed, the user configuration will be merged with `this.props`\n\t\t * @return {Object} The merged properties\n\t\t */\n\t\tmergeButtonCfgProps(props = this.props) {\n\t\t\tconst nativeEditor = this.context.editor.get('nativeEditor');\n\t\t\tconst buttonCfg = nativeEditor.config.buttonCfg || {};\n\n\t\t\treturn CKEDITOR.tools.merge(props, buttonCfg['linkEdit']);\n\t\t}\n\t};\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport EditorContext from '../../adapter/editor-context';\nimport Lang from '../../oop/lang';\n\n/**\n * ToolbarButtons provides a list of buttons which have to be displayed\n * on the current toolbar depending on user preferences and given state.\n *\n * @class ToolbarButtons\n */\nexport default WrappedComponent =>\n\tclass ToolbarButtons extends WrappedComponent {\n\t\tstatic contextType = EditorContext;\n\n\t\t/**\n\t\t * Lifecycle. Returns the default values of the properties used in the\n\t\t * toolbar.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ToolbarButtons\n\t\t * @method getDefaultProps\n\t\t */\n\t\tstatic defaultProps = {\n\t\t\t...WrappedComponent.defaultProps,\n\t\t\tgutter: {\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 10,\n\t\t\t},\n\t\t\tconstrainToViewport: true,\n\t\t};\n\n\t\t/**\n\t\t * Cancels an scheduled animation frame.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ToolbarButtons\n\t\t * @method cancelAnimation\n\t\t */\n\t\tcancelAnimation() {\n\t\t\tif (this._animationFrameId) {\n\t\t\t\twindow.cancelAnimationFrame(this._animationFrameId);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Provides functionality for displaying toolbar Arrow box on top or on bottom of the toolbar\n\t\t * depending on the point of user interaction with the editor.\n\t\t * Returns the list of arrow box classes associated to the current element's state. It relies\n\t\t * on the getInteractionPoint method to calculate the selection direction.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ToolbarButtons\n\t\t * @method getArrowBoxClasses\n\t\t * @return {String} A string with the arrow box CSS classes.\n\t\t */\n\t\tgetArrowBoxClasses() {\n\t\t\tlet arrowBoxClasses = 'ae-arrow-box';\n\n\t\t\tif (\n\t\t\t\tthis.getInteractionPoint().direction ===\n\t\t\t\tCKEDITOR.SELECTION_TOP_TO_BOTTOM\n\t\t\t) {\n\t\t\t\tarrowBoxClasses += ' ae-arrow-box-top';\n\t\t\t} else {\n\t\t\t\tarrowBoxClasses += ' ae-arrow-box-bottom';\n\t\t\t}\n\n\t\t\treturn arrowBoxClasses;\n\t\t}\n\n\t\t/**\n\t\t * Returns an object which contains the position of the element in page coordinates,\n\t\t * restricted to fit to given viewport.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ToolbarButtons\n\t\t * @method getConstrainedPosition\n\t\t * @param {Object} attrs The following properties, provided as numbers:\n\t\t * - height\n\t\t * - left\n\t\t * - top\n\t\t * - width\n\t\t * @param {Object} viewPaneSize Optional. If not provided, the current viewport will be used. Should contain at least these properties:\n\t\t * - width\n\t\t * @return {Object} An object with `x` and `y` properties, which represent the constrained position of the\n\t\t * element.\n\t\t */\n\t\tgetConstrainedPosition(attrs, viewPaneSize) {\n\t\t\tviewPaneSize =\n\t\t\t\tviewPaneSize ||\n\t\t\t\tnew CKEDITOR.dom.window(window).getViewPaneSize();\n\n\t\t\tlet x = attrs.left;\n\t\t\tlet y = attrs.top;\n\n\t\t\tif (attrs.left + attrs.width > viewPaneSize.width) {\n\t\t\t\tx -= attrs.left + attrs.width - viewPaneSize.width;\n\t\t\t}\n\n\t\t\tif (y < 0) {\n\t\t\t\ty = 0;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tx,\n\t\t\t\ty,\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Returns the position, in page coordinates, according to which a toolbar should appear.\n\t\t * Depending on the direction of the selection, the wdiget may appear above of or on bottom of the selection.\n\t\t *\n\t\t * It depends on the props editorEvent to analyze the following user-interaction parameters:\n\t\t * - {Object} selectionData The data about the selection in the editor as returned from\n\t\t * {{#crossLink \"CKEDITOR.plugins.ae_selectionregion/getSelectionData:method\"}}{{/crossLink}}\n\t\t * - {Number} pos Contains the coordinates of the position, considered as most appropriate.\n\t\t * This may be the point where the user released the mouse, or just the beginning or the end of\n\t\t * the selection.\n\t\t *\n\t\t * @instance\n\t\t * @method getInteractionPoint\n\t\t * @return {Object} An Object which contains the following properties:\n\t\t * direction, x, y, where x and y are in page coordinates and direction can be one of these:\n\t\t * CKEDITOR.SELECTION_BOTTOM_TO_TOP or CKEDITOR.SELECTION_TOP_TO_BOTTOM\n\t\t */\n\t\tgetInteractionPoint() {\n\t\t\tconst eventPayload = this.props.editorEvent\n\t\t\t\t? this.props.editorEvent.data\n\t\t\t\t: null;\n\n\t\t\tif (!eventPayload) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectionData = eventPayload.selectionData;\n\n\t\t\tconst nativeEvent = eventPayload.nativeEvent;\n\n\t\t\tconst pos = {\n\t\t\t\tx: eventPayload.nativeEvent.pageX,\n\t\t\t\ty: selectionData.region.top,\n\t\t\t};\n\n\t\t\tlet direction = selectionData.region.direction;\n\n\t\t\tconst endRect = selectionData.region.endRect;\n\n\t\t\tconst startRect = selectionData.region.startRect;\n\n\t\t\tif (endRect && startRect && startRect.top === endRect.top) {\n\t\t\t\tdirection = CKEDITOR.SELECTION_BOTTOM_TO_TOP;\n\t\t\t}\n\n\t\t\tlet x;\n\t\t\tlet y;\n\n\t\t\t// If we have the point where user released the mouse, show Toolbar at this point\n\t\t\t// otherwise show it on the middle of the selection.\n\n\t\t\tif (pos.x && pos.y) {\n\t\t\t\tx = this._getXPoint(selectionData, pos.x);\n\n\t\t\t\tif (direction === CKEDITOR.SELECTION_BOTTOM_TO_TOP) {\n\t\t\t\t\ty = Math.min(pos.y, selectionData.region.top);\n\t\t\t\t} else {\n\t\t\t\t\ty = Math.max(\n\t\t\t\t\t\tpos.y,\n\t\t\t\t\t\tthis._getYPoint(selectionData, nativeEvent)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tx = selectionData.region.left + selectionData.region.width / 2;\n\n\t\t\t\tif (direction === CKEDITOR.SELECTION_TOP_TO_BOTTOM) {\n\t\t\t\t\ty = this._getYPoint(selectionData, nativeEvent);\n\t\t\t\t} else {\n\t\t\t\t\ty = selectionData.region.top;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tdirection,\n\t\t\t\tx,\n\t\t\t\ty,\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Returns the position of the toolbar.\n\t\t *\n\t\t * @instance\n\t\t * @method _getXPoint\n\t\t * @param {Object} eventX The X coordinate received from the native event (mouseup).\n\t\t * @param {Object} selectionData The data about the selection in the editor as returned from {{#crossLink \"CKEDITOR.plugins.ae_selectionregion/getSelectionData:method\"}}{{/crossLink}}\n\t\t * @protected\n\t\t * @return {Number} The calculated X point in page coordinates.\n\t\t */\n\t\t_getXPoint(selectionData, eventX) {\n\t\t\tconst region = selectionData.region;\n\n\t\t\tconst left = region.startRect ? region.startRect.left : region.left;\n\t\t\tconst right = region.endRect ? region.endRect.right : region.right;\n\n\t\t\tlet x;\n\n\t\t\tif (left < eventX && right > eventX) {\n\t\t\t\tx = eventX;\n\t\t\t} else {\n\t\t\t\tconst leftDist = Math.abs(left - eventX);\n\t\t\t\tconst rightDist = Math.abs(right - eventX);\n\n\t\t\t\tif (leftDist < rightDist) {\n\t\t\t\t\t// user raised the mouse on left on the selection\n\n\t\t\t\t\tx = left;\n\t\t\t\t} else {\n\t\t\t\t\tx = right;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn x;\n\t\t}\n\n\t\t/**\n\t\t * Returns the position of the toolbar.\n\t\t *\n\t\t * @instance\n\t\t * @method _getYPoint\n\t\t * @param {Object} nativeEvent The data about event is fired\n\t\t * @param {Object} selectionData The data about the selection in the editor as returned from {{#crossLink \"CKEDITOR.plugins.ae_selectionregion/getSelectionData:method\"}}{{/crossLink}}\n\t\t * @protected\n\t\t * @return {Number} The calculated Y point in page coordinates.\n\t\t */\n\t\t_getYPoint(selectionData, nativeEvent) {\n\t\t\tlet y = 0;\n\n\t\t\tif (selectionData && nativeEvent) {\n\t\t\t\tconst elementTarget = new CKEDITOR.dom.element(\n\t\t\t\t\tnativeEvent.target\n\t\t\t\t);\n\n\t\t\t\tif (\n\t\t\t\t\telementTarget.$ &&\n\t\t\t\t\telementTarget.getStyle('overflow') === 'auto'\n\t\t\t\t) {\n\t\t\t\t\ty =\n\t\t\t\t\t\tnativeEvent.target.offsetTop +\n\t\t\t\t\t\tnativeEvent.target.offsetHeight;\n\t\t\t\t} else {\n\t\t\t\t\ty = selectionData.region.bottom;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn y;\n\t\t}\n\n\t\t/**\n\t\t * Returns the position of the toolbar taking in consideration the\n\t\t * {{#crossLink \"ToolbarButtons/gutter:attribute\"}}{{/crossLink}} attribute.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ToolbarButtons\n\t\t * @protected\n\t\t * @method getWidgetXYPoint\n\t\t * @param {Number} left The left offset in page coordinates where Toolbar should be shown.\n\t\t * @param {Number} top The top offset in page coordinates where Toolbar should be shown.\n\t\t * @param {Number} direction The direction of the selection. May be one of the following:\n\t\t * CKEDITOR.SELECTION_BOTTOM_TO_TOP or CKEDITOR.SELECTION_TOP_TO_BOTTOM\n\t\t * @return {Array} An Array with left and top offsets in page coordinates.\n\t\t */\n\t\tgetWidgetXYPoint(left, top, direction) {\n\t\t\tconst domNode = ReactDOM.findDOMNode(this);\n\n\t\t\tconst gutter = this.props.gutter;\n\n\t\t\tif (\n\t\t\t\tdirection === CKEDITOR.SELECTION_TOP_TO_BOTTOM ||\n\t\t\t\tdirection === CKEDITOR.SELECTION_BOTTOM_TO_TOP\n\t\t\t) {\n\t\t\t\tleft = left - gutter.left - domNode.offsetWidth / 2;\n\n\t\t\t\ttop =\n\t\t\t\t\tdirection === CKEDITOR.SELECTION_TOP_TO_BOTTOM\n\t\t\t\t\t\t? top + gutter.top\n\t\t\t\t\t\t: top - domNode.offsetHeight - gutter.top;\n\t\t\t} else if (\n\t\t\t\tdirection === CKEDITOR.SELECTION_LEFT_TO_RIGHT ||\n\t\t\t\tdirection === CKEDITOR.SELECTION_RIGHT_TO_LEFT\n\t\t\t) {\n\t\t\t\tleft =\n\t\t\t\t\tdirection === CKEDITOR.SELECTION_LEFT_TO_RIGHT\n\t\t\t\t\t\t? left + gutter.left + domNode.offsetHeight / 2\n\t\t\t\t\t\t: left - (3 * domNode.offsetHeight) / 2 - gutter.left;\n\n\t\t\t\ttop = top - gutter.top - domNode.offsetHeight / 2;\n\t\t\t}\n\n\t\t\tif (left < 0) {\n\t\t\t\tleft = 0;\n\t\t\t}\n\n\t\t\tif (top < 0) {\n\t\t\t\ttop = 0;\n\t\t\t}\n\n\t\t\treturn [left, top];\n\t\t}\n\n\t\t/**\n\t\t * Returns true if the toolbar is visible, false otherwise\n\t\t *\n\t\t * @instance\n\t\t * @memberof ToolbarButtons\n\t\t * @method isVisible\n\t\t * @return {Boolean} True if the toolbar is visible, false otherwise\n\t\t */\n\t\tisVisible() {\n\t\t\tconst domNode = ReactDOM.findDOMNode(this);\n\n\t\t\tif (domNode) {\n\t\t\t\tconst domElement = new CKEDITOR.dom.element(domNode);\n\n\t\t\t\treturn domElement.hasClass('alloy-editor-visible');\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\t/**\n\t\t * Moves a toolbar from a starting point to a destination point.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ToolbarButtons\n\t\t * @method moveToPoint\n\t\t * @param {Object} startPoint The starting point for the movement.\n\t\t * @param {Object} endPoint The destination point for the movement.\n\t\t */\n\t\tmoveToPoint(startPoint, endPoint) {\n\t\t\tconst domElement = new CKEDITOR.dom.element(\n\t\t\t\tReactDOM.findDOMNode(this)\n\t\t\t);\n\n\t\t\tdomElement.setStyles({\n\t\t\t\tleft: startPoint[0] + 'px',\n\t\t\t\ttop: startPoint[1] + 'px',\n\t\t\t\topacity: 0,\n\t\t\t\tpointerEvents: 'none',\n\t\t\t});\n\n\t\t\tdomElement.removeClass('alloy-editor-invisible');\n\n\t\t\tthis._animationFrameId = window.requestAnimationFrame(() => {\n\t\t\t\tdomElement.addClass('ae-toolbar-transition');\n\t\t\t\tdomElement.addClass('alloy-editor-visible');\n\t\t\t\tdomElement.setStyles({\n\t\t\t\t\tleft: endPoint[0] + 'px',\n\t\t\t\t\ttop: endPoint[1] + 'px',\n\t\t\t\t\topacity: 1,\n\t\t\t\t});\n\n\t\t\t\t// 150ms to match transition-duration for .ae-toolbar-transition:\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tdomElement.setStyles({\n\t\t\t\t\t\tpointerEvents: '',\n\t\t\t\t\t});\n\t\t\t\t}, 150);\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Shows the toolbar with the default animation transition.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ToolbarButtons\n\t\t * @method show\n\t\t */\n\t\tshow() {\n\t\t\tconst domNode = ReactDOM.findDOMNode(this);\n\t\t\tconst uiNode = this.context.editor.get('uiNode');\n\n\t\t\tconst scrollTop = uiNode ? uiNode.scrollTop : 0;\n\n\t\t\tif (!this.isVisible() && domNode) {\n\t\t\t\tconst interactionPoint = this.getInteractionPoint();\n\n\t\t\t\tif (interactionPoint) {\n\t\t\t\t\tconst domElement = new CKEDITOR.dom.element(domNode);\n\n\t\t\t\t\tlet finalX;\n\t\t\t\t\tlet finalY;\n\t\t\t\t\tlet initialX;\n\t\t\t\t\tlet initialY;\n\n\t\t\t\t\tfinalX = initialX = parseFloat(domElement.getStyle('left'));\n\t\t\t\t\tfinalY = initialY = parseFloat(domElement.getStyle('top'));\n\n\t\t\t\t\tif (this.props.constrainToViewport) {\n\t\t\t\t\t\tconst res = this.getConstrainedPosition({\n\t\t\t\t\t\t\theight: parseFloat(domNode.offsetHeight),\n\t\t\t\t\t\t\tleft: finalX,\n\t\t\t\t\t\t\ttop: finalY,\n\t\t\t\t\t\t\twidth: parseFloat(domNode.offsetWidth),\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tfinalX = res.x;\n\t\t\t\t\t\tfinalY = res.y;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tinteractionPoint.direction ===\n\t\t\t\t\t\tCKEDITOR.SELECTION_TOP_TO_BOTTOM\n\t\t\t\t\t) {\n\t\t\t\t\t\tinitialY =\n\t\t\t\t\t\t\tthis.props.selectionData.region.bottom + scrollTop;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tinitialY =\n\t\t\t\t\t\t\tthis.props.selectionData.region.top + scrollTop;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.moveToPoint([initialX, initialY], [finalX, finalY]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Updates the toolbar position based on the current interaction point.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ToolbarButtons\n\t\t * @method updatePosition\n\t\t */\n\t\tupdatePosition() {\n\t\t\tconst interactionPoint = this.getInteractionPoint();\n\n\t\t\tconst domNode = ReactDOM.findDOMNode(this);\n\n\t\t\tif (interactionPoint && domNode) {\n\t\t\t\tconst uiNode =\n\t\t\t\t\tthis.context.editor.get('uiNode') || document.body;\n\t\t\t\tconst uiNodeStyle = getComputedStyle(uiNode);\n\t\t\t\tconst uiNodeMarginLeft = parseInt(\n\t\t\t\t\tuiNodeStyle.getPropertyValue('margin-left'),\n\t\t\t\t\t10\n\t\t\t\t);\n\t\t\t\tconst uiNodeMarginRight = parseInt(\n\t\t\t\t\tuiNodeStyle.getPropertyValue('margin-right'),\n\t\t\t\t\t10\n\t\t\t\t);\n\t\t\t\tconst totalWidth =\n\t\t\t\t\tuiNodeMarginLeft +\n\t\t\t\t\tdocument.body.clientWidth +\n\t\t\t\t\tuiNodeMarginRight;\n\n\t\t\t\tconst scrollTop =\n\t\t\t\t\tuiNode.tagName !== 'BODY' ? uiNode.scrollTop : 0;\n\n\t\t\t\tconst xy = this.getWidgetXYPoint(\n\t\t\t\t\tinteractionPoint.x,\n\t\t\t\t\tinteractionPoint.y,\n\t\t\t\t\tinteractionPoint.direction\n\t\t\t\t);\n\t\t\t\txy[1] += scrollTop;\n\n\t\t\t\tif (xy[0] < 0) {\n\t\t\t\t\txy[0] = 0;\n\t\t\t\t}\n\t\t\t\tif (xy[0] > totalWidth - domNode.offsetWidth) {\n\t\t\t\t\txy[0] = totalWidth - domNode.offsetWidth;\n\t\t\t\t}\n\n\t\t\t\tnew CKEDITOR.dom.element(domNode).setStyles({\n\t\t\t\t\tleft: xy[0] + 'px',\n\t\t\t\t\ttop: xy[1] + 'px',\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Analyses the current selection and returns the buttons or button groups to be rendered.\n\t\t *\n\t\t * @instance\n\t\t * @method getToolbarButtonGroups\n\t\t * @param {Array} buttons The buttons could be shown, prior to the state filtering.\n\t\t * @param {Object} additionalProps Additional props that should be passed down to the buttons.\n\t\t * @return {Array} An Array which contains the buttons or button groups that should be rendered.\n\t\t */\n\t\tgetToolbarButtonGroups(buttons, additionalProps) {\n\t\t\tif (Lang.isFunction(buttons)) {\n\t\t\t\tbuttons = buttons.call(this) || [];\n\t\t\t}\n\n\t\t\treturn buttons.reduce((list, button) => {\n\t\t\t\tif (Array.isArray(button)) {\n\t\t\t\t\tlist.push(this.getToolbarButtons(button, additionalProps));\n\n\t\t\t\t\treturn list;\n\t\t\t\t} else {\n\t\t\t\t\treturn this.getToolbarButtons(buttons, additionalProps);\n\t\t\t\t}\n\t\t\t}, []);\n\t\t}\n\n\t\t/**\n\t\t * Analyzes the current selection and the buttons exclusive mode value to figure out which\n\t\t * buttons should be present in a given state.\n\t\t *\n\t\t * @instance\n\t\t * @memberof ToolbarButtons\n\t\t * @method getToolbarButtons\n\t\t * @param {Array} buttons The buttons could be shown, prior to the state filtering.\n\t\t * @param {Object} additionalProps Additional props that should be passed down to the buttons.\n\t\t * @return {Array} An Array which contains the buttons that should be rendered.\n\t\t */\n\t\tgetToolbarButtons(buttons, additionalProps) {\n\t\t\tconst buttonProps = {};\n\n\t\t\tconst nativeEditor = this.context.editor.get('nativeEditor');\n\t\t\tconst buttonCfg = nativeEditor.config.buttonCfg || {};\n\n\t\t\tif (Lang.isFunction(buttons)) {\n\t\t\t\tbuttons = buttons.call(this) || [];\n\t\t\t}\n\n\t\t\tconst toolbarButtons = this.filterExclusive(\n\t\t\t\tbuttons\n\t\t\t\t\t.filter(button => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tbutton &&\n\t\t\t\t\t\t\t(AlloyEditor.Buttons[button] ||\n\t\t\t\t\t\t\t\tAlloyEditor.Buttons[button.name])\n\t\t\t\t\t\t);\n\t\t\t\t\t})\n\t\t\t\t\t.map(button => {\n\t\t\t\t\t\tif (Lang.isString(button)) {\n\t\t\t\t\t\t\tbuttonProps[button] = buttonCfg[button];\n\t\t\t\t\t\t\tbutton = AlloyEditor.Buttons[button];\n\t\t\t\t\t\t} else if (Lang.isString(button.name)) {\n\t\t\t\t\t\t\tbuttonProps[\n\t\t\t\t\t\t\t\tAlloyEditor.Buttons[button.name].key\n\t\t\t\t\t\t\t] = CKEDITOR.tools.merge(\n\t\t\t\t\t\t\t\tbuttonCfg[button],\n\t\t\t\t\t\t\t\tbutton.cfg\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tbutton = AlloyEditor.Buttons[button.name];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn button;\n\t\t\t\t\t})\n\t\t\t).map(function(button, index) {\n\t\t\t\tlet props = this.mergeExclusiveProps(\n\t\t\t\t\t{\n\t\t\t\t\t\teditor: this.context.editor,\n\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\tbutton.key !== 'separator'\n\t\t\t\t\t\t\t\t? button.key\n\t\t\t\t\t\t\t\t: `${button.key}-${index}`,\n\t\t\t\t\t\ttabKey: button.key,\n\t\t\t\t\t\ttabIndex:\n\t\t\t\t\t\t\tthis.props.trigger &&\n\t\t\t\t\t\t\tthis.props.trigger.props.tabKey === button.key\n\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t: -1,\n\t\t\t\t\t\ttrigger: this.props.trigger,\n\t\t\t\t\t},\n\t\t\t\t\tbutton.key\n\t\t\t\t);\n\n\t\t\t\tprops = this.mergeDropdownProps(props, button.key);\n\n\t\t\t\tif (additionalProps) {\n\t\t\t\t\tprops = CKEDITOR.tools.merge(props, additionalProps);\n\t\t\t\t}\n\n\t\t\t\tprops = CKEDITOR.tools.merge(props, buttonProps[button.key]);\n\n\t\t\t\treturn React.createElement(button, props);\n\t\t\t}, this);\n\n\t\t\treturn toolbarButtons;\n\t\t}\n\t};\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport Lang from './lang';\n\n/**\n * Sets the prototype, constructor and superclass properties to support an inheritance strategy\n * that can chain constructors and methods. Static members will not be inherited.\n *\n * @memberof OOP\n * @method extend\n * @param {Function} receiver The class which will extend another class.\n * @param {Function} supplier The class which will provide the properties the child class.\n * @param {Object} protoProps Prototype properties to add/override.\n * @param {Object} staticProps Static properties to add/overwrite.\n * @return {Function} The extended class.\n * @static\n */\nconst extend = function(receiver, supplier, protoProps, staticProps) {\n\tif (!supplier || !receiver) {\n\t\tthrow new Error('extend failed, verify dependencies');\n\t}\n\n\tconst supplierProto = supplier.prototype;\n\n\tconst receiverProto = Object.create(supplierProto);\n\treceiver.prototype = receiverProto;\n\n\treceiverProto.constructor = receiver;\n\treceiver.superclass = supplierProto;\n\n\t// assign constructor property\n\n\tif (\n\t\tsupplier !== Object &&\n\t\tsupplierProto.constructor === Object.prototype.constructor\n\t) {\n\t\tsupplierProto.constructor = supplier;\n\t}\n\n\t// add prototype overrides\n\n\tif (protoProps) {\n\t\tLang.mix(receiverProto, protoProps);\n\t}\n\n\t// add object overrides\n\n\tif (staticProps) {\n\t\tLang.mix(receiver, staticProps);\n\t}\n\n\treturn receiver;\n};\n\nexport default extend;\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nconst _isRangeAtElementEnd = function(range, element) {\n\t// Finding if a range is at the end of an element is somewhat tricky\n\t// due to how CKEditor handles ranges. It might depend on whether a\n\t// source node inside the element is selected or not. For now, we\n\t// need to cover the following cases:\n\t//\n\t// - The text length of the element is the same as the endOffset of\n\t// the range.\n\t// - Both start and end containers match the element and the start\n\t// and end offsets are 1.\n\n\treturn (\n\t\telement.getText().length === range.endOffset ||\n\t\t(element.equals(range.startContainer) &&\n\t\t\telement.equals(range.endContainer) &&\n\t\t\trange.startOffset === range.endOffset &&\n\t\t\trange.endOffset === 1)\n\t);\n};\n\nconst embedSelectionTest = function(payload) {\n\tconst selectionData = payload.data.selectionData;\n\n\treturn !!(\n\t\tselectionData.element &&\n\t\tselectionData.element.getAttribute('data-widget') === 'ae_embed'\n\t);\n};\n\nconst embedUrlSelectionTest = function(payload) {\n\tconst selectionData = payload.data.selectionData;\n\n\treturn !!(\n\t\tselectionData.element &&\n\t\tselectionData.element.getAttribute('data-widget') === 'embedurl'\n\t);\n};\n\nconst headingTextSelectionTest = function(payload) {\n\tconst headings = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n\tconst nativeEditor = payload.editor.get('nativeEditor');\n\tconst selectionData = payload.data.selectionData;\n\tconst selectionEmpty = nativeEditor.isSelectionEmpty();\n\n\treturn !!(\n\t\t!selectionData.element &&\n\t\tselectionData.region &&\n\t\t!selectionEmpty &&\n\t\t!nativeEditor\n\t\t\t.getSelection()\n\t\t\t.getCommonAncestor()\n\t\t\t.isReadOnly() &&\n\t\tnativeEditor.elementPath().contains(headings)\n\t);\n};\n\nconst linkSelectionTest = function(payload) {\n\tconst nativeEditor = payload.editor.get('nativeEditor');\n\tconst range = nativeEditor.getSelection().getRanges()[0];\n\tconst selectionData = payload.data.selectionData;\n\n\tconst element = new CKEDITOR.Link(nativeEditor).getFromSelection();\n\tconst isSelectionEmpty = nativeEditor.isSelectionEmpty();\n\tconst elementIsNotImage = selectionData.element\n\t\t? selectionData.element.getName() !== 'img'\n\t\t: true;\n\n\treturn !!(\n\t\tisSelectionEmpty &&\n\t\telementIsNotImage &&\n\t\telement &&\n\t\telement.getText().length !== range.endOffset &&\n\t\telement &&\n\t\t!element.isReadOnly() &&\n\t\t!_isRangeAtElementEnd(range, element)\n\t);\n};\n\nconst imageSelectionTest = function(payload) {\n\tconst selectionData = payload.data.selectionData;\n\tconst element = selectionData.element;\n\tconst hasImage = !!element && !!element.findOne('img');\n\tconst isImage = !!element && element.getName() === 'img';\n\n\treturn !!(element && (hasImage || isImage));\n};\n\nconst textSelectionTest = function(payload) {\n\tconst nativeEditor = payload.editor.get('nativeEditor');\n\n\tconst selectionEmpty = nativeEditor.isSelectionEmpty();\n\n\tconst selectionData = payload.data.selectionData;\n\n\treturn !!(\n\t\t!selectionData.element &&\n\t\tselectionData.region &&\n\t\t!selectionEmpty &&\n\t\t!nativeEditor\n\t\t\t.getSelection()\n\t\t\t.getCommonAncestor()\n\t\t\t.isReadOnly()\n\t);\n};\n\nconst tableSelectionTest = function(payload) {\n\tconst nativeEditor = payload.editor.get('nativeEditor');\n\n\tconst table = new CKEDITOR.Table(nativeEditor);\n\tconst element = table.getFromSelection();\n\n\treturn !!(element && table.isEditable(element));\n};\n\nconst SelectionTest = {\n\tembed: embedSelectionTest,\n\tembedUrl: embedUrlSelectionTest,\n\theader: headingTextSelectionTest,\n\timage: imageSelectionTest,\n\tlink: linkSelectionTest,\n\ttable: tableSelectionTest,\n\ttext: textSelectionTest,\n};\n\nexport default SelectionTest;\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\n/**\n * The ButtonsStylesListHeader class provides the header of an list of style items.\n *\n * @class ButtonsStylesListHeader\n */\nclass ButtonsStylesListHeader extends React.Component {\n\tstatic key = 'buttonStylesListHeader';\n\n\t/**\n\t * Lifecycle. Renders the UI of the button.\n\t *\n\t * @instance\n\t * @memberof ButtonsStylesListHeader\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\tif (this.props.styles && this.props.styles.length) {\n\t\t\treturn {this.props.name};\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n}\n\nexport default ButtonsStylesListHeader;\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\nimport EditorContext from '../../adapter/editor-context';\n\n/**\n * The ButtonStylesListItemRemove class provides functionality for previewing a style definition\n * inside a list and applying it to the current editor selection.\n *\n * @class ButtonStylesListItemRemove\n */\nclass ButtonStylesListItemRemove extends React.Component {\n\tstatic contextType = EditorContext;\n\n\t/**\n\t * Lifecycle. Returns the default values of the properties used in the widget.\n\t *\n\t * @instance\n\t * @memberof ButtonStylesListItemRemove\n\t * @method getDefaultProps\n\t * @return {Object} The default properties.\n\t */\n\tstatic defaultProps = {\n\t\tremoveBlocks: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'pre'],\n\t};\n\n\t/**\n\t * The name which will be used as an alias of the button in the configuration.\n\t *\n\t * @default buttonStylesListItemRemove\n\t * @memberof ButtonStylesListItemRemove\n\t * @property {String} key\n\t * @static\n\t */\n\tstatic key = 'buttonStylesListItemRemove';\n\n\t/**\n\t * Lifecycle. Renders the UI of the button.\n\t *\n\t * @instance\n\t * @memberof ButtonStylesListItemRemove\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\treturn (\n\t\t\t
  • \n\t\t\t\t\n\t\t\t\t\t{AlloyEditor.Strings.normal}\n\t\t\t\t\n\t\t\t
  • \n\t\t);\n\t}\n\n\t/**\n\t * Removes all inline styles and configured block elements applied to the current selection.\n\t *\n\t * @instance\n\t * @memberof ButtonStylesListItemRemove\n\t * @method _removeStyles\n\t * @protected\n\t */\n\t_removeStyles = () => {\n\t\tconst editor = this.context.editor.get('nativeEditor');\n\n\t\teditor.execCommand('removeFormat');\n\n\t\tthis.props.removeBlocks.forEach(blockItem => {\n\t\t\tconst blockStyle = new CKEDITOR.style({element: blockItem});\n\n\t\t\teditor.removeStyle(blockStyle);\n\t\t});\n\n\t\teditor.fire('actionPerformed', this);\n\t};\n}\n\nexport default ButtonStylesListItemRemove;\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\nimport EditorContext from '../../adapter/editor-context';\nimport ButtonActionStyle from '../base/button-action-style';\nimport ButtonStyle from '../base/button-style';\n\n/**\n * The ButtonStylesListItem class provides functionality for previewing a style definition\n * inside a list and applying it to the current editor selection.\n *\n * @class ButtonStylesListItem\n * @uses ButtonActionStyle\n * @uses ButtonStyle\n */\nclass ButtonStylesListItem extends React.Component {\n\tstatic contextType = EditorContext;\n\n\t/**\n\t * The name which will be used as an alias of the button in the configuration.\n\t *\n\t * @default buttonStylesListItem\n\t * @memberof ButtonStylesListItem\n\t * @property {String} key\n\t * @static\n\t */\n\tstatic key = 'buttonStylesListItem';\n\n\t/**\n\t * Lifecycle. Invoked once, both on the client and server, immediately before the initial rendering occurs.\n\t *\n\t * @instance\n\t * @memberof ButtonStylesListItem\n\t * @method componentWillMount\n\t */\n\tcomponentWillMount() {\n\t\t// Styles with wildcard element (*) generate an empty tag in their preview < class=\"custom-class\" />.\n\t\t// We default to element span and remove the margins to obtain a more consistent set of previews.\n\n\t\tlet styleCfg = {\n\t\t\telement: 'span',\n\t\t\tstyles: {\n\t\t\t\tmargin: 0,\n\t\t\t},\n\t\t};\n\n\t\tstyleCfg = CKEDITOR.tools.merge(styleCfg, this.props.style);\n\n\t\tthis._preview = new CKEDITOR.style(styleCfg).buildPreview(\n\t\t\tthis.props.name\n\t\t);\n\t}\n\n\t/**\n\t * Lifecycle. Renders the UI of the button.\n\t *\n\t * @instance\n\t * @memberof ButtonStylesListItem\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\t// We need to use dangerouselySetInnterHTML since we're not in control of the style\n\t\t// preview that is generated by CKEditor.\n\n\t\tconst className =\n\t\t\tthis.props.name === this.props.activeStyle\n\t\t\t\t? 'ae-toolbar-element active'\n\t\t\t\t: 'ae-toolbar-element';\n\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n\n\t/**\n\t * Applies the item style to the editor selection.\n\t *\n\t * @instance\n\t * @memberof ButtonStylesListItem\n\t * @method _onClick\n\t * @protected\n\t */\n\t_onClick = () => {\n\t\tif (this.props.styleFn) {\n\t\t\tthis.props.styleFn();\n\t\t} else {\n\t\t\t// Typically, we want the style to be the only one applied to the current selection, so\n\t\t\t// we execute the 'removeFormat' command first. Note that block styles won't be cleaned.\n\t\t\t// However, this is consistent with other editors implementations of this feature.\n\n\t\t\tthis.context.editor.get('nativeEditor').execCommand('removeFormat');\n\n\t\t\tthis.applyStyle();\n\t\t}\n\t};\n}\n\nexport default ButtonActionStyle(ButtonStyle(ButtonStylesListItem));\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\nimport EditorContext from '../../adapter/editor-context';\n\n/**\n * The ButtonCameraImage class takes photo from camera and inserts it to the content.\n *\n * @class ButtonCameraImage\n */\nclass ButtonCameraImage extends React.Component {\n\tstatic contextType = EditorContext;\n\n\t/**\n\t * Lifecycle. Returns the default values of the properties used in the widget.\n\t *\n\t * @instance\n\t * @memberof ButtonCameraImage\n\t */\n\tstatic defaultProps = {\n\t\tvideoWidth: 320,\n\t};\n\n\t/**\n\t * The name which will be used as an alias of the button in the configuration.\n\t *\n\t * @default cameraImage\n\t * @memberof ButtonCameraImage\n\t * @property {String} key\n\t * @static\n\t */\n\tstatic key = 'cameraImage';\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis._buttonTakePhotoRef = React.createRef();\n\t\tthis._canvasContainerRef = React.createRef();\n\t\tthis._videoContainerRef = React.createRef();\n\t}\n\n\t/**\n\t * Lifecycle. Invoked once, only on the client, immediately after the initial rendering occurs.\n\t *\n\t * Focuses the take photo button.\n\t *\n\t * @instance\n\t * @memberof ButtonCameraImage\n\t * @method componentDidMount\n\t */\n\tcomponentDidMount() {\n\t\tthis._buttonTakePhotoRef.current.focus();\n\t}\n\n\t/**\n\t * Lifecycle. Invoked immediately before a component is unmounted from the DOM.\n\t *\n\t * @instance\n\t * @memberof ButtonCameraImage\n\t * @method componentWillUnmount\n\t */\n\tcomponentWillUnmount() {\n\t\tif (this._stream) {\n\t\t\tif (this._stream.stop) {\n\t\t\t\tthis._stream.stop();\n\t\t\t} else if (this._stream.getVideoTracks) {\n\t\t\t\tthis._stream.getVideoTracks().forEach(track => {\n\t\t\t\t\ttrack.stop();\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis._stream = null;\n\t\t}\n\t}\n\n\t/**\n\t * Lifecycle. Renders the UI of the button.\n\t *\n\t * @instance\n\t * @memberof ButtonCameraImage\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\tconst getUserMedia =\n\t\t\tnavigator.getUserMedia ||\n\t\t\tnavigator.webkitGetUserMedia ||\n\t\t\tnavigator.mozGetUserMedia ||\n\t\t\tnavigator.msGetUserMedia;\n\n\t\tgetUserMedia.call(\n\t\t\tnavigator,\n\t\t\t{\n\t\t\t\tvideo: true,\n\t\t\t\taudio: false,\n\t\t\t},\n\t\t\tthis._handleStreamSuccess,\n\t\t\tthis._handleStreamError\n\t\t);\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tTake photo\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n\n\t/**\n\t * Takes photo from the video stream and inserts in into editor's content.\n\t *\n\t * @fires ButtonCameraImage#imageCameraAdd\n\t * @instance\n\t * @memberof ButtonCameraImage\n\t * @method takePhoto\n\t */\n\ttakePhoto = () => {\n\t\tconst videoEl = this._videoContainerRef.current;\n\t\tconst canvasEl = this._canvasContainerRef.current;\n\n\t\tconst context = canvasEl.getContext('2d');\n\n\t\tconst height = this._videoHeight;\n\t\tconst width = this.props.videoWidth;\n\n\t\tif (width && height) {\n\t\t\tcanvasEl.width = width;\n\t\t\tcanvasEl.height = height;\n\n\t\t\tcontext.drawImage(videoEl, 0, 0, width, height);\n\n\t\t\tconst imgURL = canvasEl.toDataURL('image/png');\n\n\t\t\tconst el = CKEDITOR.dom.element.createFromHtml(\n\t\t\t\t''\n\t\t\t);\n\n\t\t\tconst editor = this.context.editor.get('nativeEditor');\n\n\t\t\teditor.insertElement(el);\n\n\t\t\tthis.props.cancelExclusive();\n\n\t\t\teditor.fire('actionPerformed', this);\n\n\t\t\teditor.fire('imageCameraAdd', el);\n\t\t}\n\t};\n\n\t/**\n\t * Displays error message in case of video stream capturing failure.\n\t *\n\t * @instance\n\t * @memberof ButtonCameraImage\n\t * @method _handleStreamError\n\t * @param {Event} error The fired event in case of error.\n\t * @protected\n\t */\n\t_handleStreamError = error => {\n\t\twindow.alert('An error occurred! ' + error);\n\t};\n\n\t/**\n\t * Starts streaming video in the video element and sets width/height to the video\n\t * and canvas elements.\n\t *\n\t * @instance\n\t * @memberof ButtonCameraImage\n\t * @method _handleStreamSuccess\n\t * @param {Object} stream The video stream\n\t * @protected\n\t */\n\t_handleStreamSuccess = stream => {\n\t\tconst videoEl = this._videoContainerRef.current;\n\t\tconst canvasEl = this._canvasContainerRef.current;\n\n\t\tvideoEl.addEventListener(\n\t\t\t'canplay',\n\t\t\t() => {\n\t\t\t\tlet height =\n\t\t\t\t\tvideoEl.videoHeight /\n\t\t\t\t\t(videoEl.videoWidth / this.props.videoWidth);\n\n\t\t\t\tif (isNaN(height)) {\n\t\t\t\t\theight = this.props.videoWidth / (4 / 3);\n\t\t\t\t}\n\n\t\t\t\tvideoEl.setAttribute('width', this.props.videoWidth);\n\t\t\t\tvideoEl.setAttribute('height', height);\n\t\t\t\tcanvasEl.setAttribute('width', this.props.videoWidth);\n\t\t\t\tcanvasEl.setAttribute('height', height);\n\n\t\t\t\tthis._videoHeight = height;\n\t\t\t},\n\t\t\tfalse\n\t\t);\n\n\t\tthis._stream = stream;\n\n\t\tif (navigator.mozGetUserMedia) {\n\t\t\tvideoEl.mozSrcObject = stream;\n\t\t} else {\n\t\t\tvideoEl.srcObject = stream;\n\t\t}\n\n\t\tvideoEl.play();\n\n\t\tthis._buttonTakePhotoRef.current.disabled = false;\n\t};\n\n\t/**\n\t * Fired when an image is being taken from the camera and added as an element to the editor.\n\t *\n\t * @event ButtonCameraImage#imageCameraAdd\n\t * @memberof ButtonCameraImage\n\t * @param {CKEDITOR.dom.element} el The created img element in editor.\n\t */\n}\n\nexport default ButtonCameraImage;\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\nimport ButtonCommand from '../base/button-command';\n\n/**\n * The ButtonCommandListItem class is a UI class that renders a ButtonCommand that can be used inside\n * a list as an item, with a string representation of its behaviour.\n *\n * @class ButtonCommandListItem\n * @uses ButtonCommand\n */\nclass ButtonCommandListItem extends React.Component {\n\t/**\n\t * The name which will be used as an alias of the button in the configuration.\n\t *\n\t * @default buttonCommandListItem\n\t * @memberof ButtonCommandListItem\n\t * @property {String} key\n\t * @static\n\t */\n\tstatic key = 'buttonCommandListItem';\n\n\t/**\n\t * Lifecycle. Renders the UI of the button.\n\t *\n\t * @instance\n\t * @memberof ButtonCommandListItem\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t{this.props.description}\n\t\t\t\n\t\t);\n\t}\n\n\t/**\n\t * Returns the class name of Widget.\n\t *\n\t * @instance\n\t * @memberof ButtonCommandListItem\n\t * @method _getClassName\n\t * @protected\n\t * @return {String} The class name of the Widget.\n\t */\n\t_getClassName() {\n\t\tconst className = 'ae-container ae-toolbar-element';\n\n\t\treturn className;\n\t}\n}\n\nexport default ButtonCommand(ButtonCommandListItem);\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\nimport EditorContext from '../../adapter/editor-context';\nimport ButtonIcon from './button-icon.jsx';\n\nconst KEY_ENTER = 13;\nconst KEY_ESC = 27;\n\n/**\n * The ButtonEmbedEdit class provides functionality for creating and editing an embed link in a document.\n * Provides UI for creating and editing an embed link.\n *\n * @class ButtonEmbedEdit\n */\nclass ButtonEmbedEdit extends React.Component {\n\tstatic contextType = EditorContext;\n\n\t/**\n\t * The name which will be used as an alias of the button in the configuration.\n\t *\n\t * @default embedEdit\n\t * @memberof ButtonEmbedEdit\n\t * @property {String} key\n\t * @static\n\t */\n\tstatic key = 'embedEdit';\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.linkInput = React.createRef();\n\t\tthis.state = this.getInitialState();\n\t}\n\n\t/**\n\t * Lifecycle. Invoked once, only on the client, immediately after the initial rendering occurs.\n\t *\n\t * Focuses on the link input to immediately allow editing. This should only happen if the component\n\t * is rendered in exclusive mode to prevent aggressive focus stealing.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedEdit\n\t * @method componentDidMount\n\t */\n\tcomponentDidMount() {\n\t\tif (this.props.renderExclusive || this.props.manualSelection) {\n\t\t\t// We need to wait for the next rendering cycle before focusing to avoid undesired\n\t\t\t// scrolls on the page\n\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(this._focusLinkInput);\n\t\t\t} else {\n\t\t\t\tsetTimeout(this._focusLinkInput, 0);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Lifecycle. Invoked when a component is receiving new props.\n\t * This method is not called for the initial render.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedEdit\n\t * @method componentWillReceiveProps\n\t */\n\tcomponentWillReceiveProps() {\n\t\tthis.setState(this.getInitialState());\n\t}\n\n\t/**\n\t * Lifecycle. Invoked once before the component is mounted.\n\t * The return value will be used as the initial value of this.state.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedEdit\n\t * @method getInitialState\n\t */\n\tgetInitialState() {\n\t\t// Can't access context from constructor, so get editor from props.\n\n\t\tconst editor = this.props.context.editor.get('nativeEditor');\n\t\tlet embed;\n\n\t\tconst selection = editor.getSelection();\n\n\t\tif (selection) {\n\t\t\tconst selectedElement = selection.getSelectedElement();\n\n\t\t\tif (selectedElement) {\n\t\t\t\tembed = selectedElement.findOne('[data-widget=\"ae_embed\"]');\n\t\t\t}\n\t\t}\n\n\t\tconst href = embed ? embed.getAttribute('data-ae-embed-url') : '';\n\n\t\treturn {\n\t\t\telement: embed,\n\t\t\tinitialLink: {\n\t\t\t\thref,\n\t\t\t},\n\t\t\tlinkHref: href,\n\t\t};\n\t}\n\n\t/**\n\t * Lifecycle. Renders the UI of the button.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedEdit\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\tconst clearLinkStyle = {\n\t\t\topacity: this.state.linkHref ? 1 : 0,\n\t\t};\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n\n\t/**\n\t * Clears the link input. This only changes the component internal state, but does not\n\t * affect the link element of the editor. Only the _removeLink and _updateLink methods\n\t * are translated to the editor element.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedEdit\n\t * @method _clearLink\n\t * @protected\n\t */\n\t_clearLink = () => {\n\t\tthis.setState({\n\t\t\tlinkHref: '',\n\t\t});\n\t};\n\n\t/**\n\t * Triggers the embedUrl command to transform the link into an embed media object\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedEdit\n\t * @method _embedLink\n\t * @protected\n\t */\n\t_embedLink = () => {\n\t\tconst nativeEditor = this.context.editor.get('nativeEditor');\n\n\t\tnativeEditor.execCommand('embedUrl', {\n\t\t\turl: this.state.linkHref,\n\t\t});\n\n\t\t// We need to cancelExclusive with the bound parameters in case the button is used\n\t\t// inside another in exclusive mode (such is the case of the link button)\n\n\t\tthis.props.cancelExclusive();\n\t};\n\n\t/**\n\t * Focuses the user cursor on the widget's input.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedEdit\n\t * @method _focusLinkInput\n\t * @protected\n\t */\n\t_focusLinkInput = () => {\n\t\tthis.linkInput.current.focus();\n\t};\n\n\t/**\n\t * Monitors key interaction inside the input element to respond to the keys:\n\t * - Enter: Creates/updates the link.\n\t * - Escape: Discards the changes.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedEdit\n\t * @method _handleKeyDown\n\t * @param {SyntheticEvent} event The keyboard event.\n\t * @protected\n\t */\n\t_handleKeyDown = event => {\n\t\tif (event.keyCode === KEY_ENTER || event.keyCode === KEY_ESC) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tif (event.keyCode === KEY_ENTER) {\n\t\t\tthis._embedLink();\n\t\t} else if (event.keyCode === KEY_ESC) {\n\t\t\tconst editor = this.context.editor.get('nativeEditor');\n\n\t\t\t// We need to cancelExclusive with the bound parameters in case the button is used\n\t\t\t// inside another in exclusive mode (such is the case of the link button)\n\n\t\t\tthis.props.cancelExclusive();\n\n\t\t\teditor.fire('actionPerformed', this);\n\t\t}\n\t};\n\n\t/**\n\t * Updates the component state when the link input changes on user interaction.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedEdit\n\t * @method _handleLinkHrefChange\n\t * @param {SyntheticEvent} event The change event.\n\t * @protected\n\t */\n\t_handleLinkHrefChange = event => {\n\t\tthis.setState({\n\t\t\tlinkHref: event.target.value,\n\t\t});\n\t};\n\n\t/**\n\t * Verifies that the current link state is valid so the user can save the link. A valid state\n\t * means that we have a non-empty href that's different from the original one.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedEdit\n\t * @method _isValidState\n\t * @protected\n\t * @return {Boolean} True if the state is valid, false otherwise\n\t */\n\t_isValidState() {\n\t\tconst validState =\n\t\t\tthis.state.linkHref &&\n\t\t\tthis.state.linkHref !== this.state.initialLink.href;\n\n\t\treturn validState;\n\t}\n\n\t/**\n\t * Removes the embed in the editor element.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedEdit\n\t * @method _removeEmbed\n\t * @protected\n\t */\n\t_removeEmbed = () => {\n\t\tconst editor = this.context.editor.get('nativeEditor');\n\n\t\tconst embedWrapper = this.state.element.getAscendant(element => {\n\t\t\treturn element.hasClass('cke_widget_wrapper');\n\t\t});\n\n\t\tembedWrapper.remove();\n\n\t\teditor.fire('actionPerformed', this);\n\t};\n}\n\nexport default EditorContext.toProps(ButtonEmbedEdit);\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport EditorContext from '../../adapter/editor-context';\nimport ButtonIcon from './button-icon.jsx';\n\nconst KEY_ENTER = 13;\nconst KEY_ESC = 27;\n\n/**\n * The ButtonEmbedVideoEdit class provides functionality for changing text color in a document.\n *\n * @uses ButtonIcon\n *\n * @class ButtonEmbedVideoEdit\n */\nclass ButtonEmbedVideoEdit extends React.Component {\n\tstatic contextType = EditorContext;\n\n\tstatic key = 'embedVideoEdit';\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = this.getInitialState();\n\t}\n\n\t/**\n\t * Lifecycle. Invoked once, only on the client, immediately after the initial rendering occurs.\n\t *\n\t * Focuses on the link input to immediately allow editing. This should only happen if the component\n\t * is rendered in exclusive mode to prevent aggressive focus stealing.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedVideoEdit\n\t * @method componentDidMount\n\t */\n\tcomponentDidMount() {\n\t\tif (this.props.renderExclusive || this.props.manualSelection) {\n\t\t\t// We need to wait for the next rendering cycle before focusing to avoid undesired\n\t\t\t// scrolls on the page\n\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(this._focusVideoUrlInput);\n\t\t\t} else {\n\t\t\t\tsetTimeout(this._focusVideoUrlInput, 0);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Lifecycle. Invoked when a component is receiving new props.\n\t * This method is not called for the initial render.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedVideoEdit\n\t * @method componentWillReceiveProps\n\t */\n\tcomponentWillReceiveProps() {\n\t\tconst newState = this.getInitialState();\n\n\t\tthis.setState({\n\t\t\tall: undefined,\n\t\t\tkeys: undefined,\n\t\t\tnew: newState,\n\t\t\told: undefined,\n\t\t});\n\t}\n\n\t/**\n\t * Lifecycle. Invoked once before the component is mounted.\n\t * The return value will be used as the initial value of this.state.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedVideoEdit\n\t * @method getInitialState\n\t */\n\tgetInitialState() {\n\t\t// Can't access context from constructor, so get editor from props.\n\n\t\tconst editor = this.props.context.editor.get('nativeEditor');\n\t\tlet element;\n\n\t\tconst selection = editor.getSelection();\n\n\t\tif (selection) {\n\t\t\tconst selectedElement = selection.getSelectedElement();\n\n\t\t\tif (selectedElement) {\n\t\t\t\telement = selectedElement.findOne('[data-widget=\"videoembed\"]');\n\t\t\t}\n\t\t}\n\n\t\tconst videoURL = element\n\t\t\t? element.getAttribute('data-embed-video-url')\n\t\t\t: '';\n\n\t\treturn {\n\t\t\telement,\n\t\t\tinitialEmbed: {\n\t\t\t\tvideoURL,\n\t\t\t},\n\t\t\tvideoURL,\n\t\t};\n\t}\n\n\t/**\n\t * Lifecycle. Renders the UI of the button.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedVideoEdit\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\tconst inputPlaceholder = AlloyEditor.Strings.pasteVideoLink;\n\n\t\tconst clearVideoURLStyle = {\n\t\t\topacity: this.state.videoURL ? 1 : 0,\n\t\t};\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n\n\t/**\n\t * Clears the link input. This only changes the component internal state, but does not\n\t * affect the link element of the editor. Only the _removeLink and _updateLink methods\n\t * are translated to the editor element.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedVideoEdit\n\t * @method _clearLink\n\t * @protected\n\t */\n\t_clearLink() {\n\t\tthis.setState({\n\t\t\tvideoURL: '',\n\t\t});\n\t}\n\n\t/**\n\t * Triggers the embedVideoUrl command to transform the link into an embed media object\n\t *\n\t * @instance\n\t * @memberof EmbedVideoEdit\n\t * @method _embedVideoURL\n\t * @protected\n\t */\n\t_embedVideoURL = () => {\n\t\tconst nativeEditor = this.context.editor.get('nativeEditor');\n\n\t\tnativeEditor.execCommand('embedUrl', {\n\t\t\ttype: 'video',\n\t\t\turl: this.state.videoURL,\n\t\t});\n\n\t\t// We need to cancelExclusive with the bound parameters in case the button is used\n\t\t// inside another in exclusive mode (such is the case of the link button)\n\n\t\tthis.props.cancelExclusive();\n\t};\n\n\t/**\n\t * Focuses the user cursor on the widget's input.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedVideoEdit\n\t * @method _focusVideoUrlInput\n\t * @protected\n\t */\n\t_focusVideoUrlInput = () => {\n\t\tReactDOM.findDOMNode(this.refs.linkInput).focus();\n\t};\n\n\t/**\n\t * Monitors key interaction inside the input element to respond to the keys:\n\t * - Enter: Creates/updates the link.\n\t * - Escape: Discards the changes.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedVideoEdit\n\t * @method _handleKeyDown\n\t * @param {SyntheticEvent} event The keyboard event.\n\t * @protected\n\t */\n\t_handleKeyDown = event => {\n\t\tif (event.keyCode === KEY_ENTER || event.keyCode === KEY_ESC) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tif (event.keyCode === KEY_ENTER) {\n\t\t\tthis._embedVideoURL();\n\t\t} else if (event.keyCode === KEY_ESC) {\n\t\t\tthis.props.cancelExclusive();\n\t\t}\n\t};\n\n\t/**\n\t * Updates the component state when the link input changes on user interaction.\n\t *\n\t * @instance\n\t * @memberof ButtonEmbedVideoEdit\n\t * @method _handleVideoURLChange\n\t * @param {SyntheticEvent} event The change event.\n\t * @protected\n\t */\n\t_handleVideoURLChange = event => {\n\t\tthis.setState({\n\t\t\tvideoURL: event.target.value,\n\t\t});\n\t};\n\n\t/**\n\t * Verifies that the current link state is valid so the user can save the link. A valid state\n\t * means that we have a non-empty videoURL that's different from the original one.\n\t *\n\t * @instance\n\t * @memberof EmbedVideoEdit\n\t * @method _isValidState\n\t * @protected\n\t * @return {Boolean} True if the state is valid, false otherwise\n\t */\n\t_isValidState() {\n\t\tconst validState =\n\t\t\tthis.state.videoURL &&\n\t\t\tthis.state.videoURL !== this.state.initialEmbed.videoURL;\n\n\t\treturn validState;\n\t}\n}\n\nexport default EditorContext.toProps(ButtonEmbedVideoEdit);\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\nimport WidgetFocusManager from '../base/widget-focus-manager';\nimport ButtonDropdown from './button-dropdown.jsx';\n\n/**\n * The ButtonLinkAutocompleteList class provides functionality for showing a list of\n * items that can be selected for the link.\n *\n * @class ButtonLinkAutocompleteList\n * @uses WidgetFocusManager\n */\nclass ButtonLinkAutocompleteList extends React.Component {\n\t/**\n\t * Lifecycle. Returns the default values of the properties used in the widget.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkAutocompleteList\n\t * @method getDefaultProps\n\t * @return {Object} The default properties.\n\t */\n\tstatic defaultProps = {\n\t\tcircular: false,\n\t\tdata: [],\n\t\tdelay: 100,\n\t\tdescendants: '.ae-toolbar-element',\n\t\tkeys: {\n\t\t\tdismiss: [27],\n\t\t\tdismissNext: [39],\n\t\t\tdismissPrev: [37],\n\t\t\tnext: [40],\n\t\t\tprev: [38],\n\t\t},\n\t};\n\n\t/**\n\t * The name which will be used as an alias of the button in the configuration.\n\t *\n\t * @default buttonLinkAutocompleteList\n\t * @memberof ButtonLinkAutocompleteList\n\t * @property {String} key\n\t * @static\n\t */\n\tstatic key = 'buttonLinkAutocompleteList';\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\titems: [],\n\t\t};\n\t}\n\n\t/**\n\t * Lifecycle. Invoked when a component is receiving new props.\n\t * This method is not called for the initial render.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkAutocompleteList\n\t * @method componentWillReceiveProps\n\t */\n\tcomponentWillReceiveProps(nextProps) {\n\t\tif (!nextProps.term || nextProps.term !== this.props.term) {\n\t\t\tclearTimeout(this._timeout);\n\n\t\t\tif (nextProps.term) {\n\t\t\t\tthis._timeout = setTimeout(this._updateItems, this.props.delay);\n\t\t\t} else {\n\t\t\t\tthis.setState({\n\t\t\t\t\titems: [],\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (nextProps.autocompleteSelected) {\n\t\t\tsetTimeout(this.focus, 0);\n\t\t\tthis.props.setAutocompleteState({\n\t\t\t\tselected: false,\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Lifecycle. Invoked immediately before a component is unmounted from the DOM.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkAutocompleteList\n\t * @method componentWillUnmount\n\t */\n\tcomponentWillUnmount() {\n\t\tclearTimeout(this._timeout);\n\t}\n\n\t/**\n\t * Lifecycle. Renders the UI of the list.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkAutocompleteList\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\tif (!this.props.expanded || !this.state.items.length) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{this._renderAutocompleteItems(this.state.items)}\n\t\t\t\n\t\t);\n\t}\n\n\t/**\n\t * Lifecycle. Invoked before rendering when new props or state are being received.\n\t * This method is not called for the initial render or when forceUpdate is used.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkAutocompleteList\n\t * @method shouldComponentUpdate\n\t * @return {Boolean} Returns false when the transition to the new props and state will not\n\t * require a component update.\n\t */\n\tshouldComponentUpdate(nextProps, nextState) {\n\t\treturn (\n\t\t\tnextProps.expanded !== this.props.expanded ||\n\t\t\tnextProps.term !== this.props.term ||\n\t\t\tnextState.items !== this.state.items\n\t\t);\n\t}\n\n\t/**\n\t * Renders a set of list items for the provided items\n\t *\n\t * @instance\n\t * @memberof ButtonLinkAutocompleteList\n\t * @method _renderAutocompleteItems\n\t * @param {Array} items List of autocomplete items to render\n\t * @protected\n\t * @return {Array} Rendered list item instances\n\t */\n\t_renderAutocompleteItems(items) {\n\t\titems = items || [];\n\n\t\tconst handleLinkAutocompleteClick = this.props\n\t\t\t.handleLinkAutocompleteClick;\n\n\t\treturn items.map(item => {\n\t\t\tconst className =\n\t\t\t\tthis.props.term === item.url\n\t\t\t\t\t? 'ae-toolbar-element active'\n\t\t\t\t\t: 'ae-toolbar-element';\n\n\t\t\treturn (\n\t\t\t\t
  • \n\t\t\t\t\t\n\t\t\t\t\t\t{item.title}\n\t\t\t\t\t\n\t\t\t\t
  • \n\t\t\t);\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves the data according to {this.props.term} and calls setState() with the returned data\n\t *\n\t * @instance\n\t * @memberof ButtonLinkAutocompleteList\n\t * @method _updateItems\n\t * @protected\n\t */\n\t_updateItems() {\n\t\tif (!this.props.term) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst promise = Promise.resolve(this.props.data(this.props.term));\n\n\t\tpromise.then(items => {\n\t\t\tif (items.length && !this.props.expanded) {\n\t\t\t\tthis.props.toggleDropdown();\n\t\t\t}\n\n\t\t\tthis.setState({\n\t\t\t\titems,\n\t\t\t});\n\t\t});\n\t}\n}\n\nexport default WidgetFocusManager(ButtonLinkAutocompleteList);\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\nimport EditorContext from '../../adapter/editor-context';\nimport Lang from '../../oop/lang';\nimport ButtonIcon from './button-icon.jsx';\nimport ButtonLinkEdit from './button-link-edit.jsx';\n\n/**\n * The LinkEditBrowse class provides functionality for creating and editing a link in a document,\n * and also allows to link to an existing file in DM.\n * Provides UI for creating, editing and removing a link.\n *\n * @class ButtonLinkEditBrowse\n */\nclass ButtonLinkEditBrowse extends React.Component {\n\tstatic contextType = EditorContext;\n\n\tstatic key = 'linkEditBrowse';\n\n\t/**\n\t *\n\t * @inheritDoc\n\t */\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tconst link = new CKEDITOR.Link(\n\t\t\t// Can't access context from constructor, so get editor from props.\n\n\t\t\tthis.props.context.editor.get('nativeEditor')\n\t\t).getFromSelection();\n\n\t\tconst href = link ? link.getAttribute('href') : '';\n\n\t\tthis.linkEditButtonRef = React.createRef();\n\n\t\tthis.state = {\n\t\t\telement: link,\n\t\t\tlinkHref: href,\n\t\t};\n\t}\n\n\t/**\n\t * Lifecycle. Renders the UI of the button.\n\t *\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n\n\t/**\n\t * Opens an item selector dialog.\n\t *\n\t * @protected\n\t * @method _browseClick\n\t */\n\t_browseClick = () => {\n\t\tconst editor = this.context.editor.get('nativeEditor');\n\t\tconst url = editor.config.documentBrowseLinkUrl;\n\t\tconst browseLinkCallback = editor.config.documentBrowseLinkCallback;\n\t\tconst linkTarget = this.linkEditButtonRef.current\n\t\t\t? this.linkEditButtonRef.current.state.linkTarget\n\t\t\t: '';\n\n\t\tconst changeLinkCallback = selectedItem => {\n\t\t\tthis._updateLink(\n\t\t\t\tselectedItem.value,\n\t\t\t\tlinkTarget,\n\t\t\t\tselectedItem.title\n\t\t\t);\n\t\t};\n\n\t\tif (Lang.isFunction(browseLinkCallback)) {\n\t\t\tbrowseLinkCallback.apply(null, [editor, url, changeLinkCallback]);\n\t\t}\n\t};\n\n\t/**\n\t * Updates the link in the editor element. If the element didn't exist previously, it will\n\t * create a new
    element with the href specified in the link input.\n\t *\n\t * @protected\n\t * @method _updateLink\n\t * @param {String} linkHref href value for the link\n\t * @param {String} linkTarget target value for the link\n\t * @param {String} linkTitle if the link is a title that points to a wiki page (only works for creole)\n\t */\n\t_updateLink = (linkHref, linkTarget, linkTitle) => {\n\t\tconst editor = this.context.editor.get('nativeEditor');\n\t\tconst linkUtils = new CKEDITOR.Link(editor, {appendProtocol: false});\n\t\tconst linkAttrs = {\n\t\t\ttarget: linkTarget,\n\t\t};\n\t\tconst modifySelection = {advance: true};\n\n\t\tif (linkHref) {\n\t\t\tif (editor.plugins && editor.plugins.creole && !linkTitle) {\n\t\t\t\tlinkHref = location.origin + linkHref;\n\t\t\t}\n\n\t\t\tif (this.state.element) {\n\t\t\t\tlinkAttrs.href = linkHref;\n\n\t\t\t\tlinkUtils.update(\n\t\t\t\t\tlinkAttrs,\n\t\t\t\t\tthis.state.element,\n\t\t\t\t\tmodifySelection\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tlinkUtils.create(linkHref, linkAttrs, modifySelection);\n\t\t\t}\n\n\t\t\teditor.fire('actionPerformed', this);\n\t\t}\n\t};\n}\n\nexport default EditorContext.toProps(ButtonLinkEditBrowse);\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\nimport ButtonIcon from './button-icon.jsx';\nimport ButtonTargetList from './button-target-list.jsx';\n\n/**\n * The ButtonLinkTargetEdit class provides functionality for changing the target of a link\n * in the document.\n *\n * @class ButtonLinkTargetEdit\n */\nclass ButtonLinkTargetEdit extends React.Component {\n\t/**\n\t * The name which will be used as an alias of the button in the configuration.\n\t *\n\t * @default linkTargetEdit\n\t * @memberof ButtonLinkTargetEdit\n\t * @property {String} key\n\t * @static\n\t */\n\tstatic key = 'linkTargetEdit';\n\n\t/**\n\t * Lifecycle. Renders the UI of the button.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkTargetEdit\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\tconst handleLinkTargetChange = this.props.handleLinkTargetChange;\n\t\tconst allowedLinkTargets = this.props.allowedTargets;\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{this.props.selectedTarget}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t{this.props.expanded && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t}\n\n\t/**\n\t * Lifecycle. Invoked before rendering when new props or state are being received.\n\t * This method is not called for the initial render or when forceUpdate is used.\n\t *\n\t * @instance\n\t * @memberof ButtonLinkTargetEdit\n\t * @method shouldComponentUpdate\n\t * @return {Boolean} Returns false when the transition to the new props and state will not\n\t * require a component update.\n\t */\n\tshouldComponentUpdate(nextProps) {\n\t\treturn (\n\t\t\tnextProps.expanded !== this.props.expanded ||\n\t\t\tnextProps.selectedTarget !== this.props.selectedTarget\n\t\t);\n\t}\n}\n\nexport default ButtonLinkTargetEdit;\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport WidgetFocusManager from '../base/widget-focus-manager';\nimport ButtonDropdown from './button-dropdown.jsx';\n\n/**\n * The ButtonTargetList class provides functionality for changing the target of a link\n * in the document.\n *\n * @class ButtonTargetList\n * @uses WidgetFocusManager\n */\nclass ButtonTargetList extends React.Component {\n\t/**\n\t * Lifecycle. Returns the default values of the properties used in the widget.\n\t *\n\t * @instance\n\t * @memberof ButtonTargetList\n\t * @method getDefaultProps\n\t */\n\tstatic defaultProps = {\n\t\tcircular: true,\n\t\tdescendants: '.ae-toolbar-element',\n\t\tkeys: {\n\t\t\tdismiss: [27],\n\t\t\tdismissNext: [39],\n\t\t\tdismissPrev: [37],\n\t\t\tnext: [40],\n\t\t\tprev: [38],\n\t\t},\n\t};\n\n\t/**\n\t * The name which will be used as an alias of the button in the configuration.\n\t *\n\t * @default linkTargetEdit\n\t * @memberof ButtonTargetList\n\t * @property {String} key\n\t * @static\n\t */\n\tstatic key = 'targetList';\n\n\t/**\n\t * Lifecycle. Invoked once, only on the client, immediately after the initial rendering occurs.\n\t *\n\t * @instance\n\t * @memberof ButtonTargetList\n\t * @method componentDidMount\n\t */\n\tcomponentDidMount() {\n\t\tReactDOM.findDOMNode(this).focus();\n\t}\n\n\t/**\n\t * Lifecycle. Renders the UI of the button.\n\t *\n\t * @instance\n\t * @memberof ButtonTargetList\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\tconst listTargets = this._renderListTargets();\n\n\t\treturn {listTargets};\n\t}\n\n\t/**\n\t * Returns the the allowed link target items.\n\t *\n\t * @instance\n\t * @memberof ButtonTargetList\n\t * @method _getAllowedTargetItems\n\t * @protected\n\t * @return {Array} The allowed target items.\n\t */\n\t_getAllowedTargetItems() {\n\t\treturn (\n\t\t\tthis.props.allowedLinkTargets || [\n\t\t\t\t{\n\t\t\t\t\tlabel: AlloyEditor.Strings.linkTargetDefault,\n\t\t\t\t\tvalue: '',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: AlloyEditor.Strings.linkTargetSelf,\n\t\t\t\t\tvalue: '_self',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: AlloyEditor.Strings.linkTargetBlank,\n\t\t\t\t\tvalue: '_blank',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: AlloyEditor.Strings.linkTargetParent,\n\t\t\t\t\tvalue: '_parent',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: AlloyEditor.Strings.linkTargetTop,\n\t\t\t\t\tvalue: '_top',\n\t\t\t\t},\n\t\t\t]\n\t\t);\n\t}\n\n\t/**\n\t * Renders the allowed link target items.\n\t *\n\t * @instance\n\t * @memberof ButtonTargetList\n\t * @method _renderListTargets\n\t * @protected\n\t * @return {Object} Returns the rendered link items\n\t */\n\t_renderListTargets() {\n\t\tlet targets = this._getAllowedTargetItems();\n\n\t\tconst handleLinkTargetChange = this.props.handleLinkTargetChange;\n\n\t\ttargets = targets.map(target => {\n\t\t\tconst className =\n\t\t\t\tthis.props.selectedTarget === target.value\n\t\t\t\t\t? 'ae-toolbar-element active'\n\t\t\t\t\t: 'ae-toolbar-element';\n\n\t\t\treturn (\n\t\t\t\t
  • \n\t\t\t\t\t\n\t\t\t\t\t\t{target.label}\n\t\t\t\t\t\n\t\t\t\t
  • \n\t\t\t);\n\t\t});\n\n\t\treturn targets;\n\t}\n}\n\nexport default WidgetFocusManager(ButtonTargetList);\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\nimport EditorContext from '../../adapter/editor-context';\nimport ButtonKeystroke from '../base/button-keystroke';\nimport ButtonProps from '../base/button-props';\nimport ButtonStateClasses from '../base/button-state-classes';\nimport ButtonIcon from './button-icon.jsx';\nimport ButtonLinkEdit from './button-link-edit.jsx';\n\n/**\n * The ButtonLink class provides functionality for creating and editing a link in a document. ButtonLink\n * renders in two different modes:\n *\n * - Normal: Just a button that allows to switch to the edition mode\n * - Exclusive: The ButtonLinkEdit UI with all the link edition controls.\n *\n * @class ButtonLink\n * @uses ButtonProps\n * @uses ButtonKeystroke\n * @uses ButtonStateClasses\n */\nclass ButtonLink extends React.Component {\n\tstatic contextType = EditorContext;\n\n\t/**\n\t * Lifecycle. Returns the default values of the properties used in the widget.\n\t *\n\t * @instance\n\t * @memberof ButtonLink\n\t * @method getDefaultProps\n\t * @return {Object} The default properties.\n\t */\n\tstatic defaultProps = {\n\t\tkeystroke: {\n\t\t\tfn: '_requestExclusive',\n\t\t\tkeys: CKEDITOR.CTRL + 76 /* L*/,\n\t\t\tname: 'link',\n\t\t},\n\t};\n\n\t/**\n\t * The name which will be used as an alias of the button in the configuration.\n\t *\n\t * @default link\n\t * @memberof ButtonLink\n\t * @property {String} key\n\t * @static\n\t */\n\tstatic key = 'link';\n\n\t/**\n\t * Checks if the current selection is contained within a link.\n\t *\n\t * @instance\n\t * @memberof ButtonLink\n\t * @method isActive\n\t * @return {Boolean} True if the selection is inside a link, false otherwise.\n\t */\n\tisActive() {\n\t\treturn (\n\t\t\tnew CKEDITOR.Link(\n\t\t\t\tthis.context.editor.get('nativeEditor')\n\t\t\t).getFromSelection() !== null\n\t\t);\n\t}\n\n\t/**\n\t * Lifecycle. Renders the UI of the button.\n\t *\n\t * @instance\n\t * @memberof ButtonLink\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\tconst cssClass = `ae-button ${this.getStateClasses()}`;\n\n\t\tif (this.props.renderExclusive) {\n\t\t\tconst props = this.mergeButtonCfgProps();\n\n\t\t\treturn ;\n\t\t} else {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Requests the link button to be rendered in exclusive mode to allow the creation of a link.\n\t *\n\t * @instance\n\t * @memberof ButtonLink\n\t * @method _requestExclusive\n\t * @protected\n\t */\n\t_requestExclusive = () => {\n\t\tthis.props.requestExclusive(ButtonLink.key);\n\t};\n}\n\nexport default ButtonProps(ButtonKeystroke(ButtonStateClasses(ButtonLink)));\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport React from 'react';\n\nimport EditorContext from '../../adapter/editor-context';\nimport ButtonIcon from './button-icon.jsx';\n\nconst KEY_ENTER = 13;\nconst KEY_ESC = 27;\n\nconst INPUT_NAMES = {\n\tCOLS: 'cols',\n\tROWS: 'rows',\n};\n\nconst MINIMUM_GRID_VALUE = 1;\n\n/**\n * The ButtonTableEdit class provides functionality for creating and editing a table in a document.\n * Provides UI for creating a table.\n *\n * @class ButtonTableEdit\n */\nclass ButtonTableEdit extends React.Component {\n\tstatic contextType = EditorContext;\n\n\t/**\n\t * Lifecycle. Returns the default values of the properties used in the widget.\n\t *\n\t * @instance\n\t * @memberof ButtonTableEdit\n\t * @method getDefaultProps\n\t */\n\tstatic defaultProps = {\n\t\ttableAttributes: {\n\t\t\tborder: 1,\n\t\t\tcellPadding: 0,\n\t\t\tcellSpacing: 0,\n\t\t\tstyle: 'table-layout: fixed; width: 100%;',\n\t\t},\n\t};\n\n\t/**\n\t * The name which will be used as an alias of the button in the configuration.\n\t *\n\t * @default tableEdit\n\t * @memberof ButtonTableEdit\n\t * @property {String} key\n\t * @static\n\t */\n\tstatic key = 'tableEdit';\n\n\t/**\n\t * Lifecycle. Invoked once before the component is mounted.\n\t *\n\t * @instance\n\t * @memberof ButtonTableEdit\n\t * @method getInitialState\n\t */\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.rowsRef = React.createRef();\n\t\tthis.colsRef = React.createRef();\n\t\tthis.state = {\n\t\t\tcols: 3,\n\t\t\trows: 3,\n\t\t};\n\t}\n\n\t/**\n\t * Lifecycle. Invoked once, only on the client (not on the server),\n\t * immediately after the initial rendering occurs.\n\t *\n\t * Focuses on the link input to immediately allow editing.\n\t *\n\t * @instance\n\t * @memberof ButtonTableEdit\n\t * @method componentDidMount\n\t */\n\tcomponentDidMount() {\n\t\tthis.rowsRef.current.focus();\n\t}\n\n\t/**\n\t * Creates a table.\n\t *\n\t * @instance\n\t * @memberof ButtonTableEdit\n\t * @method _createTable\n\t * @protected\n\t */\n\t_createTable = () => {\n\t\tconst editor = this.context.editor.get('nativeEditor');\n\t\tconst tableUtils = new CKEDITOR.Table(editor);\n\t\tconst {cols, rows} = this.state;\n\n\t\ttableUtils.create({\n\t\t\tattrs: this.props.tableAttributes,\n\t\t\tcols: Math.max(MINIMUM_GRID_VALUE, cols),\n\t\t\trows: Math.max(MINIMUM_GRID_VALUE, rows),\n\t\t});\n\n\t\tthis.props.cancelExclusive();\n\n\t\teditor.fire('actionPerformed', this);\n\t};\n\n\t/**\n\t * Handles a change in input value. Sets the provided value from the user back to the input.\n\t *\n\t * @instance\n\t * @memberof ButtonTableEdit\n\t * @method _handleChange\n\t * @param {String} inputName The name of the input which value should be updated.\n\t * @param {SyntheticEvent} event The provided event.\n\t * @protected\n\t */\n\t_handleChange = (inputName, event) => {\n\t\tthis.setState({\n\t\t\t[inputName]: event.target.value,\n\t\t});\n\t};\n\n\t/**\n\t * Monitors key interaction inside the input element to respond to the keys:\n\t * - Enter: Creates the table.\n\t * - Escape: Discards the changes.\n\t *\n\t * @instance\n\t * @memberof ButtonTableEdit\n\t * @method _handleKeyDown\n\t * @param {SyntheticEvent} event The keyboard event.\n\t * @protected\n\t */\n\t_handleKeyDown = event => {\n\t\tif (event.keyCode === KEY_ENTER || event.keyCode === KEY_ESC) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tif (event.keyCode === KEY_ENTER) {\n\t\t\tthis._createTable();\n\t\t} else if (event.keyCode === KEY_ESC) {\n\t\t\tthis.props.cancelExclusive();\n\t\t}\n\t};\n\n\t/**\n\t * Lifecycle. Renders the UI of the button.\n\t *\n\t * @instance\n\t * @memberof ButtonTableEdit\n\t * @method render\n\t * @return {Object} The content which should be rendered.\n\t */\n\trender() {\n\t\tconst time = Date.now();\n\t\tconst rowsId = time + INPUT_NAMES.ROWS;\n\t\tconst colsId = time + INPUT_NAMES.COLS;\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n}\n\nexport default ButtonTableEdit;\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport PropTypes from 'prop-types';\n\n/**\n * Provides functionality for calculating the point of interaction of the user with the Editor.\n *\n * @class WidgetInteractionPoint\n */\nconst WidgetInteractionPoint = {\n\t// Allows validating props being passed to the component.\n\n\tpropTypes: {\n\t\t/**\n\t\t * The provided editor event.\n\t\t *\n\t\t * @instance\n\t\t * @memberof WidgetInteractionPoint\n\t\t * @property {SyntheticEvent} editorEvent\n\t\t */\n\t\teditorEvent: PropTypes.object,\n\t},\n\n\t/**\n\t * Returns the position, in page coordinates, according to which a widget should appear.\n\t * Depending on the direction of the selection, the wdiget may appear above of or on bottom of the selection.\n\t *\n\t * It depends on the props editorEvent to analyze the following user-interaction parameters:\n\t * - {Object} selectionData The data about the selection in the editor as returned from\n\t * {{#crossLink \"CKEDITOR.plugins.ae_selectionregion/getSelectionData:method\"}}{{/crossLink}}\n\t * - {Number} pos Contains the coordinates of the position, considered as most appropriate.\n\t * This may be the point where the user released the mouse, or just the beginning or the end of\n\t * the selection.\n\t *\n\t * @instance\n\t * @memberof WidgetInteractionPoint\n\t * @method getInteractionPoint\n\t * @return {Object} An Object which contains the following properties:\n\t * direction, x, y, where x and y are in page coordinates and direction can be one of these:\n\t * CKEDITOR.SELECTION_BOTTOM_TO_TOP or CKEDITOR.SELECTION_TOP_TO_BOTTOM\n\t */\n\tgetInteractionPoint() {\n\t\tconst eventPayload = this.props.editorEvent\n\t\t\t? this.props.editorEvent.data\n\t\t\t: null;\n\n\t\tif (!eventPayload) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectionData = eventPayload.selectionData;\n\n\t\tconst nativeEvent = eventPayload.nativeEvent;\n\n\t\tconst pos = {\n\t\t\tx: eventPayload.nativeEvent.pageX,\n\t\t\ty: selectionData.region.top,\n\t\t};\n\n\t\tlet direction = selectionData.region.direction;\n\n\t\tconst endRect = selectionData.region.endRect;\n\n\t\tconst startRect = selectionData.region.startRect;\n\n\t\tif (endRect && startRect && startRect.top === endRect.top) {\n\t\t\tdirection = CKEDITOR.SELECTION_BOTTOM_TO_TOP;\n\t\t}\n\n\t\tlet x;\n\t\tlet y;\n\n\t\t// If we have the point where user released the mouse, show Toolbar at this point\n\t\t// otherwise show it on the middle of the selection.\n\n\t\tif (pos.x && pos.y) {\n\t\t\tx = this._getXPoint(selectionData, pos.x);\n\n\t\t\tif (direction === CKEDITOR.SELECTION_BOTTOM_TO_TOP) {\n\t\t\t\ty = Math.min(pos.y, selectionData.region.top);\n\t\t\t} else {\n\t\t\t\ty = Math.max(\n\t\t\t\t\tpos.y,\n\t\t\t\t\tthis._getYPoint(selectionData, nativeEvent)\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tx = selectionData.region.left + selectionData.region.width / 2;\n\n\t\t\tif (direction === CKEDITOR.SELECTION_TOP_TO_BOTTOM) {\n\t\t\t\ty = this._getYPoint(selectionData, nativeEvent);\n\t\t\t} else {\n\t\t\t\ty = selectionData.region.top;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tdirection,\n\t\t\tx,\n\t\t\ty,\n\t\t};\n\t},\n\n\t/**\n\t * Returns the position of the Widget.\n\t *\n\t * @instance\n\t * @memberof WidgetInteractionPoint\n\t * @method _getXPoint\n\t * @param {Object} eventX The X coordinate received from the native event (mouseup).\n\t * @param {Object} selectionData The data about the selection in the editor as returned from {{#crossLink \"CKEDITOR.plugins.ae_selectionregion/getSelectionData:method\"}}{{/crossLink}}\n\t * @protected\n\t * @return {Number} The calculated X point in page coordinates.\n\t */\n\t_getXPoint(selectionData, eventX) {\n\t\tconst region = selectionData.region;\n\n\t\tconst left = region.startRect ? region.startRect.left : region.left;\n\t\tconst right = region.endRect ? region.endRect.right : region.right;\n\n\t\tlet x;\n\n\t\tif (left < eventX && right > eventX) {\n\t\t\tx = eventX;\n\t\t} else {\n\t\t\tconst leftDist = Math.abs(left - eventX);\n\t\t\tconst rightDist = Math.abs(right - eventX);\n\n\t\t\tif (leftDist < rightDist) {\n\t\t\t\t// user raised the mouse on left on the selection\n\n\t\t\t\tx = left;\n\t\t\t} else {\n\t\t\t\tx = right;\n\t\t\t}\n\t\t}\n\n\t\treturn x;\n\t},\n\n\t/**\n\t * Returns the position of the Widget.\n\t *\n\t * @instance\n\t * @memberof WidgetInteractionPoint\n\t * @method _getYPoint\n\t * @param {Object} nativeEvent The data about event is fired\n\t * @param {Object} selectionData The data about the selection in the editor as returned from {{#crossLink \"CKEDITOR.plugins.ae_selectionregion/getSelectionData:method\"}}{{/crossLink}}\n\t * @protected\n\t * @return {Number} The calculated Y point in page coordinates.\n\t */\n\t_getYPoint(selectionData, nativeEvent) {\n\t\tlet y = 0;\n\n\t\tif (selectionData && nativeEvent) {\n\t\t\tconst elementTarget = new CKEDITOR.dom.element(nativeEvent.target);\n\n\t\t\tif (\n\t\t\t\telementTarget.$ &&\n\t\t\t\telementTarget.getStyle('overflow') === 'auto'\n\t\t\t) {\n\t\t\t\ty =\n\t\t\t\t\tnativeEvent.target.offsetTop +\n\t\t\t\t\tnativeEvent.target.offsetHeight;\n\t\t\t} else {\n\t\t\t\ty = selectionData.region.bottom;\n\t\t\t}\n\t\t}\n\n\t\treturn y;\n\t},\n};\n\nexport default WidgetInteractionPoint;\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport Lang from './lang';\n\n/**\n * Attribute implementation.\n *\n * @class Attribute\n * @constructor\n */\nfunction Attribute(config) {\n\tthis.__config__ = config || {};\n\tthis.__ATTRS__ = {};\n}\n\nAttribute.prototype = {\n\tconstructor: Attribute,\n\n\t/**\n\t * Retrieves the value of an attribute.\n\t *\n\t * @instance\n\t * @memberof Attribute\n\t * @method get\n\t * @param {String} attr The attribute which value should be retrieved.\n\t * @return {Any} The value of the attribute.\n\t */\n\tget(attr) {\n\t\tconst currentAttr = this.constructor.ATTRS[attr];\n\n\t\tif (!currentAttr) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._isInitialized(attr)) {\n\t\t\tthis._init(attr);\n\t\t}\n\n\t\tlet curValue = this.__ATTRS__[attr];\n\n\t\tif (currentAttr.getter) {\n\t\t\tcurValue = this._callStringOrFunction(currentAttr.getter, curValue);\n\t\t}\n\n\t\treturn curValue;\n\t},\n\n\t/**\n\t * Sets the value of an attribute.\n\t *\n\t * @instance\n\t * @memberof Attribute\n\t * @method set\n\t * @param {String} attr The attribute which value should be set.\n\t * @param {Any} value The value which should be set to the attribute.\n\t */\n\tset(attr, value) {\n\t\tconst currentAttr = this.constructor.ATTRS[attr];\n\n\t\tif (!currentAttr) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._isInitialized(attr)) {\n\t\t\tthis._init(attr);\n\t\t}\n\n\t\tif (currentAttr.readOnly) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentAttr.writeOnce && this._isInitialized(attr)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tcurrentAttr.validator &&\n\t\t\t!this._callStringOrFunction(currentAttr.validator, value)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentAttr.setter) {\n\t\t\tvalue = this._callStringOrFunction(currentAttr.setter, value);\n\t\t}\n\n\t\tthis.__ATTRS__[attr] = value;\n\t},\n\n\t/**\n\t * Calls the provided param as function with the supplied arguments.\n\t * If param provided as string, a corresponding function in this object will\n\t * be called. If provided param is a function, it will be directly called.\n\t *\n\t * @instance\n\t * @memberof Attribute\n\t * @method _callStringOrFunction\n\t * @param {Any|Array} args The arguments which will be provided to the called function\n\t * @param {String|Function} stringOrFunction The function which should be called\n\t * @protected\n\t * @return {Any} The returned value from the called function\n\t */\n\t_callStringOrFunction(stringOrFunction, args) {\n\t\tlet result = null;\n\n\t\tif (!Lang.isArray(args)) {\n\t\t\targs = [args];\n\t\t}\n\n\t\tif (\n\t\t\tLang.isString(stringOrFunction) &&\n\t\t\tLang.isFunction(this[stringOrFunction])\n\t\t) {\n\t\t\tresult = this[stringOrFunction](...args);\n\t\t} else if (Lang.isFunction(stringOrFunction)) {\n\t\t\tresult = stringOrFunction.apply(this, args);\n\t\t}\n\n\t\treturn result;\n\t},\n\n\t/**\n\t * Initializes an attribute. Sets its default value depending on the flags of the\n\t * attribute and the passed configuration object to the constructor.\n\t *\n\t * @instance\n\t * @memberof Attribute\n\t * @method _init\n\t * @param {String} attr The name of the attribute which have to be initialized.\n\t * @protected\n\t */\n\t_init(attr) {\n\t\tlet value;\n\n\t\tconst currentAttr = this.constructor.ATTRS[attr];\n\n\t\t// Check if there is default value or passed one via configuration object\n\n\t\tconst hasDefaultValue = Object.prototype.hasOwnProperty.call(\n\t\t\tcurrentAttr,\n\t\t\t'value'\n\t\t);\n\t\tconst hasPassedValueViaConfig = Object.prototype.hasOwnProperty.call(\n\t\t\tthis.__config__,\n\t\t\tattr\n\t\t);\n\n\t\t// If there is valueFn, set the value to be the result of invocation of this function\n\n\t\tif (currentAttr.valueFn) {\n\t\t\tvalue = this._callStringOrFunction(currentAttr.valueFn, value);\n\n\t\t\tthis.__ATTRS__[attr] = value;\n\t\t}\n\n\t\t// else if the attribute has readOnly flag, set the default value from the attribute,\n\t\t// regardless if there is value or not\n\t\telse if (currentAttr.readOnly) {\n\t\t\tvalue = currentAttr.value;\n\t\t}\n\n\t\t// else if the attribute has writeOnce value, set it from the passed configuration or from the\n\t\t// default value, in this order. Otherwise, return miserable.\n\t\telse if (currentAttr.writeOnce) {\n\t\t\tif (hasPassedValueViaConfig) {\n\t\t\t\tvalue = this.__config__[attr];\n\t\t\t} else if (hasDefaultValue) {\n\t\t\t\tvalue = currentAttr.value;\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// These two cases below are easy - set the value to be from the passed config or\n\t\t// from the default value, in this order.\n\t\telse if (hasPassedValueViaConfig) {\n\t\t\tvalue = this.__config__[attr];\n\t\t} else if (hasDefaultValue) {\n\t\t\tvalue = currentAttr.value;\n\t\t}\n\n\t\t// If there is validator, and user passed config object - check the returned value.\n\t\t// If it is false, then set as initial value the default one.\n\t\t// However, if there is no default value, just return.\n\n\t\tif (\n\t\t\tcurrentAttr.validator &&\n\t\t\thasPassedValueViaConfig &&\n\t\t\t!this._callStringOrFunction(currentAttr.validator, value)\n\t\t) {\n\t\t\tif (hasDefaultValue) {\n\t\t\t\tvalue = currentAttr.value;\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// If there is setter and user passed config object - pass the value thought the setter.\n\t\t// The value might be one from defaultFn, default value or provided from the config.\n\n\t\tif (currentAttr.setter && hasPassedValueViaConfig) {\n\t\t\tvalue = this._callStringOrFunction(currentAttr.setter, value);\n\t\t}\n\n\t\t// Finally, set the value as initial value to the storage with values.\n\n\t\tthis.__ATTRS__[attr] = value;\n\t},\n\n\t/**\n\t * Checks if an attribute is initialized. An attribute is considered as initialized\n\t * when there is an own property with this name in the local collection of attribute values\n\t * for the current instance.\n\t *\n\t * @instance\n\t * @memberof Attribute\n\t * @method _isInitialized\n\t * @param {String} attr The attribute which should be checked if it is initialized.\n\t * @protected\n\t * @return {Boolean} Returns true if the attribute has been initialized, false otherwise.\n\t */\n\t_isInitialized(attr) {\n\t\treturn Object.prototype.hasOwnProperty.call(this.__ATTRS__, attr);\n\t},\n};\n\nexport default Attribute;\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nconst tableSelectionGetArrowBoxClasses = function() {\n\treturn 'ae-arrow-box ae-arrow-box-bottom';\n};\n\nconst SelectionGetArrowBoxClasses = {\n\ttable: tableSelectionGetArrowBoxClasses,\n};\n\nexport default SelectionGetArrowBoxClasses;\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport ReactDOM from 'react-dom';\n\n// Default gutter value for toolbar positioning\n\nconst DEFAULT_GUTTER = {\n\tleft: 0,\n\ttop: 0,\n};\n\n/**\n * Centers a Toolbar according to given rectangle\n *\n * @method centerToolbar\n * @param {Object} toolbar The toolbar to be centered\n * @param {Object} rect The rectangle according to which the Toolbar will be centered\n */\nconst centerToolbar = function(toolbar, rect) {\n\tconst toolbarNode = ReactDOM.findDOMNode(toolbar);\n\n\tconst nativeEditor = toolbar.context.editor.get('nativeEditor');\n\tconst uiNode = nativeEditor.config.uiNode || document.body;\n\tconst uiNodeStyle = getComputedStyle(uiNode);\n\tconst uiNodeMarginLeft = parseInt(\n\t\tuiNodeStyle.getPropertyValue('margin-left'),\n\t\t10\n\t);\n\tconst uiNodeMarginRight = parseInt(\n\t\tuiNodeStyle.getPropertyValue('margin-right'),\n\t\t10\n\t);\n\tconst totalWidth =\n\t\tuiNodeMarginLeft + uiNode.clientWidth + uiNodeMarginRight;\n\n\tconst halfNodeWidth = toolbarNode.offsetWidth / 2;\n\tconst scrollPosition = new CKEDITOR.dom.window(window).getScrollPosition();\n\n\tconst gutter = toolbar.props.gutter || DEFAULT_GUTTER;\n\n\tconst widgetXY = toolbar.getWidgetXYPoint(\n\t\trect.left + rect.width / 2 - scrollPosition.x,\n\t\trect.top + scrollPosition.y,\n\t\tCKEDITOR.SELECTION_BOTTOM_TO_TOP\n\t);\n\n\tconst caretPosition = nativeEditor.getSelection();\n\tconst ranges = caretPosition.getRanges();\n\tlet offsetHeight = 0;\n\n\tif (ranges && ranges.length === 1) {\n\t\tlet startContainer = ranges[0].startContainer;\n\t\tif (startContainer.$.nodeType !== Node.ELEMENT_NODE) {\n\t\t\tstartContainer = startContainer.getParent();\n\t\t}\n\t\tif (startContainer) {\n\t\t\tconst startContainerClientRect = startContainer.getClientRect();\n\t\t\toffsetHeight = startContainerClientRect.y - rect.top;\n\t\t}\n\t}\n\n\tconst scrollTop = uiNode ? uiNode.scrollTop : 0;\n\n\tconst endPosition = [\n\t\trect.left + rect.width / 2 - halfNodeWidth - scrollPosition.x,\n\t\trect.top +\n\t\t\toffsetHeight -\n\t\t\ttoolbarNode.offsetHeight +\n\t\t\tscrollPosition.y -\n\t\t\tgutter.top +\n\t\t\tscrollTop,\n\t];\n\n\tif (endPosition[0] < 0) {\n\t\tendPosition[0] = 0;\n\t} else if (endPosition[0] > totalWidth - toolbarNode.offsetWidth) {\n\t\tendPosition[0] = totalWidth - toolbarNode.offsetWidth;\n\t}\n\n\ttoolbar.moveToPoint(widgetXY, endPosition);\n};\n\n/**\n * Sets the position of a toolbar according to the position of the selected image\n *\n * @method imageSelectionSetPosition\n * @param {Object} payload Payload, should contain the selection data for retrieving the\n * client rectangle of the selected image\n * @return {Boolean} True, in all cases\n */\nconst imageSelectionSetPosition = function(payload) {\n\tconst selectionData = payload.selectionData\n\t\t? payload.selectionData\n\t\t: payload.editorEvent\n\t\t? payload.editorEvent.data.selectionData\n\t\t: null;\n\n\tif (selectionData && selectionData.element) {\n\t\tconst nativeEditor = payload.editor.get('nativeEditor');\n\t\tconst uiNode = nativeEditor.config.uiNode;\n\n\t\tconst scrollTop = uiNode ? uiNode.scrollTop : 0;\n\n\t\tconst rect = selectionData.element.getClientRect();\n\t\trect.top += scrollTop;\n\n\t\tcenterToolbar(this, rect);\n\n\t\treturn true;\n\t}\n};\n\n/**\n * Sets the position of a toolbar according to the position of the selected image\n *\n * @method tableSelectionSetPosition\n * @param {Object} payload Object, which contains the selection data for retrieving the\n * client rectangle of the selected table\n * @return {Boolean} True, in all cases\n */\nconst tableSelectionSetPosition = function(payload) {\n\tconst nativeEditor = payload.editor.get('nativeEditor');\n\tconst uiNode = nativeEditor.config.uiNode;\n\n\tconst scrollTop = uiNode ? uiNode.scrollTop : 0;\n\n\tconst table = new CKEDITOR.Table(nativeEditor).getFromSelection();\n\tconst rect = table.getClientRect();\n\trect.top += scrollTop;\n\n\tcenterToolbar(this, rect);\n\n\treturn true;\n};\n\nconst SelectionSetPosition = {\n\timage: imageSelectionSetPosition,\n\ttable: tableSelectionSetPosition,\n};\n\nexport default SelectionSetPosition;\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport SelectionGetArrowBoxClasses from './selection-arrowbox';\nimport SelectionSetPosition from './selection-position';\nimport SelectionTest from './selection-test';\n\nconst Selections = [\n\t{\n\t\tname: 'embed',\n\t\tbuttons: ['embedRemove', 'embedEdit'],\n\t\ttest: SelectionTest.embed,\n\t},\n\t{\n\t\tname: 'embedUrl',\n\t\tbuttons: ['embedVideo', 'embedVideoEdit'],\n\t\ttest: SelectionTest.embedUrl,\n\t},\n\t{\n\t\tname: 'link',\n\t\tbuttons: ['linkEdit'],\n\t\ttest: SelectionTest.link,\n\t},\n\t{\n\t\tname: 'image',\n\t\tbuttons: ['imageLeft', 'imageCenter', 'imageRight', 'removeImage'],\n\t\tsetPosition: SelectionSetPosition.image,\n\t\ttest: SelectionTest.image,\n\t},\n\t{\n\t\tname: 'text',\n\t\tbuttons: {\n\t\t\tfull: [\n\t\t\t\t[\n\t\t\t\t\t'Font',\n\t\t\t\t\t'FontSize',\n\t\t\t\t\t'separator',\n\t\t\t\t\t'bold',\n\t\t\t\t\t'italic',\n\t\t\t\t\t'underline',\n\t\t\t\t\t'strike',\n\t\t\t\t\t'separator',\n\t\t\t\t\t'link',\n\t\t\t\t],\n\t\t\t\t[\n\t\t\t\t\t'paragraphAlign',\n\t\t\t\t\t'separator',\n\t\t\t\t\t'ul',\n\t\t\t\t\t'ol',\n\t\t\t\t\t'separator',\n\t\t\t\t\t'h1',\n\t\t\t\t\t'h2',\n\t\t\t\t\t'separator',\n\t\t\t\t\t'indentBlock',\n\t\t\t\t\t'outdentBlock',\n\t\t\t\t\t'separator',\n\t\t\t\t\t'TextColor',\n\t\t\t\t\t'BGColor',\n\t\t\t\t\t'separator',\n\t\t\t\t\t'code',\n\t\t\t\t\t'quote',\n\t\t\t\t\t'separator',\n\t\t\t\t\t'removeFormat',\n\t\t\t\t],\n\t\t\t],\n\n\t\t\tsimple: ['styles', 'bold', 'italic', 'underline', 'link'],\n\t\t},\n\t\ttest: SelectionTest.text,\n\t},\n\t{\n\t\tname: 'table',\n\t\tbuttons: [\n\t\t\t'tableHeading',\n\t\t\t'tableRow',\n\t\t\t'tableColumn',\n\t\t\t'tableCell',\n\t\t\t'tableRemove',\n\t\t],\n\t\tgetArrowBoxClasses: SelectionGetArrowBoxClasses.table,\n\t\tsetPosition: SelectionSetPosition.table,\n\t\ttest: SelectionTest.table,\n\t},\n];\n\nexport default Selections;\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport './addimages';\n\nimport './autolink';\n\nimport './autolist';\n\nimport './dragresize';\n\nimport './dragresize_ie11';\n\nimport './embed';\nimport embedurl from './embedurl';\n\nimport './imagealignment';\n\nimport './pasteimages';\n\nimport './placeholder';\n\nimport './selectionkeystrokes';\n\nimport './tableresize';\n\nimport './tabletools';\n\nexport {embedurl};\n","/**\n * SPDX-FileCopyrightText: © 2014 Liferay, Inc. \n * SPDX-License-Identifier: LGPL-3.0-or-later\n */\n\nimport * as Base from '../components/base';\nimport Buttons from '../components/buttons';\nimport * as Compat from '../components/compat';\nimport Toolbars from '../components/toolbars';\nimport Attribute from '../oop/attribute';\nimport Lang from '../oop/lang';\nimport extend from '../oop/oop';\nimport SelectionGetArrowBoxClasses from '../selections/selection-arrowbox';\nimport SelectionSetPosition from '../selections/selection-position';\nimport SelectionTest from '../selections/selection-test';\nimport Selections from '../selections/selections';\nimport Core from './core';\n\nimport '../plugins';\n\n// An object containing all currently registered plugins in AlloyEditor.\n\nconst BRIDGE_BUTTONS = {};\n\n/**\n * Creates an instance of AlloyEditor.\n *\n * @memberof AlloyEditor\n * @method editable\n * @static\n * @param {String|Node} node The Node ID or HTMl node, which AlloyEditor should use as an editable area.\n * @param {Object} config Configuration attributes for the current instance of AlloyEditor.\n * @return {Object} An instance of {{#crossLink \"Core\"}}{{/crossLink}}\n */\nconst editable = function(node, config) {\n\tconfig = config || {};\n\tconfig.srcNode = node;\n\n\tAlloyEditor.implementEventTarget();\n\n\treturn new Core(config);\n};\n\n/**\n * The full URL for the AlloyEditor installation directory.\n * It is possible to manually provide the base path by setting a\n * global variable named `ALLOYEDITOR_BASEPATH`. This global variable\n * must be set **before** the editor script loading.\n *\n * @memberof AlloyEditor\n * @method getBasePath\n * @static\n * @return {String} The found base path\n */\nconst getBasePath = function() {\n\t// Find out the editor directory path, based on its