From bc2df3ac20406a7f40d57be6e916f7bebe7b3ade Mon Sep 17 00:00:00 2001 From: Greg Hurrell Date: Wed, 13 Mar 2019 17:44:12 +0100 Subject: [PATCH] Prepare v1.5.22 release --- CHANGELOG.md | 13 +++++++++---- api/classes/AlloyEditor.html | 2 +- api/classes/Attribute.html | 2 +- api/classes/Base.html | 2 +- api/classes/ButtonActionStyle.html | 2 +- api/classes/ButtonBold.html | 2 +- api/classes/ButtonCamera.html | 2 +- api/classes/ButtonCameraImage.html | 2 +- api/classes/ButtonCfgProps.html | 2 +- api/classes/ButtonCode.html | 2 +- api/classes/ButtonCommand.html | 2 +- api/classes/ButtonCommandActive.html | 2 +- api/classes/ButtonCommandListItem.html | 2 +- api/classes/ButtonCommandsList.html | 2 +- api/classes/ButtonDropdown.html | 2 +- api/classes/ButtonEmbed.html | 2 +- api/classes/ButtonEmbedEdit.html | 2 +- api/classes/ButtonH1.html | 2 +- api/classes/ButtonH2.html | 2 +- api/classes/ButtonHline.html | 2 +- api/classes/ButtonImage.html | 2 +- api/classes/ButtonImageAlignCenter.html | 2 +- api/classes/ButtonImageAlignLeft.html | 2 +- api/classes/ButtonImageAlignRight.html | 2 +- api/classes/ButtonIndentBlock.html | 2 +- api/classes/ButtonItalic.html | 2 +- api/classes/ButtonKeystroke.html | 2 +- api/classes/ButtonLink.html | 2 +- api/classes/ButtonLinkAutocompleteList.html | 2 +- api/classes/ButtonLinkEdit.html | 2 +- api/classes/ButtonLinkTargetEdit.html | 2 +- api/classes/ButtonOrderedList.html | 2 +- api/classes/ButtonOutdentBlock.html | 2 +- api/classes/ButtonParagraphAlign.html | 2 +- api/classes/ButtonParagraphAlignLeft.html | 2 +- api/classes/ButtonParagraphAlignRight.html | 2 +- api/classes/ButtonParagraphCenter.html | 2 +- api/classes/ButtonParagraphJustify.html | 2 +- api/classes/ButtonQuote.html | 2 +- api/classes/ButtonRemoveFormat.html | 2 +- api/classes/ButtonStateClasses.html | 2 +- api/classes/ButtonStrike.html | 2 +- api/classes/ButtonStyle.html | 2 +- api/classes/ButtonStyles.html | 2 +- api/classes/ButtonStylesList.html | 2 +- api/classes/ButtonStylesListItem.html | 2 +- api/classes/ButtonStylesListItemRemove.html | 2 +- api/classes/ButtonSubscript.html | 2 +- api/classes/ButtonSuperscript.html | 2 +- api/classes/ButtonTable.html | 2 +- api/classes/ButtonTableCell.html | 2 +- api/classes/ButtonTableColumn.html | 2 +- api/classes/ButtonTableEdit.html | 2 +- api/classes/ButtonTableHeading.html | 2 +- api/classes/ButtonTableRemove.html | 2 +- api/classes/ButtonTableRow.html | 2 +- api/classes/ButtonTargetList.html | 2 +- api/classes/ButtonTwitter.html | 2 +- api/classes/ButtonUnderline.html | 2 +- api/classes/ButtonUnorderedlist.html | 2 +- api/classes/ButtonsStylesListHeader.html | 2 +- api/classes/CKEDITOR.Link.html | 2 +- api/classes/CKEDITOR.Table.html | 2 +- api/classes/CKEDITOR.plugins.ae_autolink.html | 2 +- api/classes/CKEDITOR.plugins.ae_buttonbridge.html | 2 +- api/classes/CKEDITOR.plugins.ae_menubridge.html | 2 +- .../CKEDITOR.plugins.ae_menubuttonbridge.html | 2 +- .../CKEDITOR.plugins.ae_panelmenubuttonbridge.html | 2 +- api/classes/CKEDITOR.plugins.ae_placeholder.html | 2 +- .../CKEDITOR.plugins.ae_richcombobridge.html | 2 +- api/classes/CKEDITOR.plugins.ae_uibridge.html | 2 +- api/classes/CKEDITOR.plugins.html | 2 +- api/classes/CKEDITOR.tools.html | 2 +- api/classes/Core.html | 2 +- api/classes/Lang.html | 2 +- api/classes/OOP.html | 2 +- api/classes/SelectionRegion.html | 2 +- api/classes/ToolbarAdd.html | 8 ++++---- api/classes/ToolbarButtons.html | 2 +- api/classes/ToolbarStyles.html | 8 ++++---- api/classes/UI.html | 2 +- api/classes/WidgetArrowBox.html | 2 +- api/classes/WidgetDropdown.html | 2 +- api/classes/WidgetExclusive.html | 2 +- api/classes/WidgetFocusManager.html | 2 +- api/classes/WidgetInteractionPoint.html | 2 +- api/classes/WidgetPosition.html | 8 ++++---- api/classes/ae_uicore.html | 2 +- api/files/src_core_debounce.js.html | 2 +- api/files/src_core_link.js.html | 2 +- api/files/src_core_plugins.js.html | 2 +- api/files/src_core_selection-region.js.html | 2 +- api/files/src_core_table.js.html | 2 +- api/files/src_core_tools.js.html | 2 +- api/files/src_core_uicore.js.html | 2 +- api/files/src_plugins_autolink.js.html | 2 +- api/files/src_plugins_placeholder.js.html | 2 +- .../src_ui_react_src_adapter_alloy-editor.js.html | 2 +- api/files/src_ui_react_src_adapter_main.js.html | 2 +- ..._src_components_base_button-action-style.js.html | 2 +- ...rc_components_base_button-command-active.js.html | 2 +- ...react_src_components_base_button-command.js.html | 2 +- ...act_src_components_base_button-keystroke.js.html | 2 +- ...i_react_src_components_base_button-props.js.html | 2 +- ...src_components_base_button-state-classes.js.html | 2 +- ...i_react_src_components_base_button-style.js.html | 2 +- ...eact_src_components_base_toolbar-buttons.js.html | 2 +- ...act_src_components_base_widget-arrow-box.js.html | 2 +- ...eact_src_components_base_widget-dropdown.js.html | 2 +- ...act_src_components_base_widget-exclusive.js.html | 2 +- ...src_components_base_widget-focus-manager.js.html | 2 +- ...components_base_widget-interaction-point.js.html | 2 +- ...eact_src_components_base_widget-position.js.html | 13 +++++++++++-- ...eact_src_components_buttons_button-bold.jsx.html | 2 +- ..._components_buttons_button-camera-image.jsx.html | 2 +- ...ct_src_components_buttons_button-camera.jsx.html | 2 +- ...eact_src_components_buttons_button-code.jsx.html | 2 +- ...onents_buttons_button-command-list-item.jsx.html | 2 +- ...components_buttons_button-commands-list.jsx.html | 2 +- ..._src_components_buttons_button-dropdown.jsx.html | 2 +- ...rc_components_buttons_button-embed-edit.jsx.html | 2 +- ...act_src_components_buttons_button-embed.jsx.html | 2 +- ..._react_src_components_buttons_button-h1.jsx.html | 2 +- ..._react_src_components_buttons_button-h2.jsx.html | 2 +- ...act_src_components_buttons_button-hline.jsx.html | 2 +- ...nents_buttons_button-image-align-center.jsx.html | 2 +- ...ponents_buttons_button-image-align-left.jsx.html | 2 +- ...onents_buttons_button-image-align-right.jsx.html | 2 +- ...act_src_components_buttons_button-image.jsx.html | 2 +- ..._components_buttons_button-indent-block.jsx.html | 2 +- ...ct_src_components_buttons_button-italic.jsx.html | 2 +- ...s_buttons_button-link-autocomplete-list.jsx.html | 2 +- ...src_components_buttons_button-link-edit.jsx.html | 2 +- ...ponents_buttons_button-link-target-edit.jsx.html | 2 +- ...eact_src_components_buttons_button-link.jsx.html | 2 +- ..._react_src_components_buttons_button-ol.jsx.html | 2 +- ...components_buttons_button-outdent-block.jsx.html | 2 +- ...nts_buttons_button-paragraph-align-left.jsx.html | 2 +- ...ts_buttons_button-paragraph-align-right.jsx.html | 2 +- ...mponents_buttons_button-paragraph-align.jsx.html | 2 +- ...ponents_buttons_button-paragraph-center.jsx.html | 2 +- ...onents_buttons_button-paragraph-justify.jsx.html | 2 +- ...act_src_components_buttons_button-quote.jsx.html | 2 +- ...components_buttons_button-remove-format.jsx.html | 2 +- ...src_components_buttons_button-separator.jsx.html | 2 +- ...ct_src_components_buttons_button-strike.jsx.html | 2 +- ...nents_buttons_button-styles-list-header.jsx.html | 2 +- ..._buttons_button-styles-list-item-remove.jsx.html | 2 +- ...ponents_buttons_button-styles-list-item.jsx.html | 2 +- ...c_components_buttons_button-styles-list.jsx.html | 2 +- ...ct_src_components_buttons_button-styles.jsx.html | 2 +- ...src_components_buttons_button-subscript.jsx.html | 2 +- ...c_components_buttons_button-superscript.jsx.html | 2 +- ...rc_components_buttons_button-table-cell.jsx.html | 2 +- ..._components_buttons_button-table-column.jsx.html | 2 +- ...rc_components_buttons_button-table-edit.jsx.html | 2 +- ...components_buttons_button-table-heading.jsx.html | 2 +- ..._components_buttons_button-table-remove.jsx.html | 2 +- ...src_components_buttons_button-table-row.jsx.html | 2 +- ...act_src_components_buttons_button-table.jsx.html | 2 +- ...c_components_buttons_button-target-list.jsx.html | 2 +- ...t_src_components_buttons_button-twitter.jsx.html | 2 +- ..._react_src_components_buttons_button-ul.jsx.html | 2 +- ...src_components_buttons_button-underline.jsx.html | 2 +- api/files/src_ui_react_src_components_main.jsx.html | 2 +- ...act_src_components_toolbars_toolbar-add.jsx.html | 2 +- ..._src_components_toolbars_toolbar-styles.jsx.html | 2 +- api/files/src_ui_react_src_oop_attribute.js.html | 2 +- api/files/src_ui_react_src_oop_base.js.html | 2 +- api/files/src_ui_react_src_oop_lang.js.html | 2 +- api/files/src_ui_react_src_oop_oop.js.html | 2 +- ..._react_src_selections_selection-position.js.html | 2 +- api/files/src_ui_react_src_uibridge_button.jsx.html | 2 +- .../src_ui_react_src_uibridge_menu-button.jsx.html | 2 +- api/files/src_ui_react_src_uibridge_menu.jsx.html | 2 +- ...ui_react_src_uibridge_panel-menu-button.jsx.html | 2 +- .../src_ui_react_src_uibridge_richcombo.jsx.html | 2 +- .../src_ui_react_src_uibridge_uibridge.js.html | 2 +- api/index.html | 2 +- dist/alloy-editor/CHANGELOG.md | 13 +++++++++---- dist/alloy-editor/alloy-editor-all-min.js | 6 +++--- dist/alloy-editor/alloy-editor-all.js | 13 +++++++++++-- dist/alloy-editor/alloy-editor-core-min.js | 6 +++--- dist/alloy-editor/alloy-editor-core.js | 13 +++++++++++-- dist/alloy-editor/alloy-editor-no-ckeditor-min.js | 6 +++--- dist/alloy-editor/alloy-editor-no-ckeditor.js | 13 +++++++++++-- dist/alloy-editor/alloy-editor-no-react-min.js | 6 +++--- dist/alloy-editor/alloy-editor-no-react.js | 13 +++++++++++-- package-lock.json | 2 +- package.json | 2 +- 190 files changed, 273 insertions(+), 218 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a71b38184..c5365c0672 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,15 +1,20 @@ # Change Log -## [v1.5.21](https://github.com/liferay/alloy-editor/tree/v1.5.21)(2019-03-13) +## [v1.5.22](https://github.com/liferay/alloy-editor/tree/v1.5.22) (2019-03-13) +[Full Changelog](https://github.com/liferay/alloy-editor/compare/v1.5.21...v1.5.22) + +**Closed issues** + +- Fixes #1160 Add transitionend event to enable pointerEvents ([fortunatomaldonado](https://github.com/fortunatomaldonado)) + +## [v1.5.21](https://github.com/liferay/alloy-editor/tree/v1.5.21) (2019-03-13) [Full Changelog](https://github.com/liferay/alloy-editor/compare/v1.5.20...v1.5.21) **Closed issues** - Include missing build files from previous release (#1169) ([wincent](https://github.com/wincent)) -https://github.com/liferay/alloy-editor/issues/1179 - -## [v1.5.20](https://github.com/liferay/alloy-editor/tree/v1.5.20)(2019-03-08) +## [v1.5.20](https://github.com/liferay/alloy-editor/tree/v1.5.20) (2019-03-08) [Full Changelog](https://github.com/liferay/alloy-editor/compare/v1.5.19...v1.5.20) **Closed issues** diff --git a/api/classes/AlloyEditor.html b/api/classes/AlloyEditor.html index e557620e1a..8ea3e4dced 100644 --- a/api/classes/AlloyEditor.html +++ b/api/classes/AlloyEditor.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/Attribute.html b/api/classes/Attribute.html index 723118eab3..2afee1d4bd 100644 --- a/api/classes/Attribute.html +++ b/api/classes/Attribute.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/Base.html b/api/classes/Base.html index 4bcae69d78..bcd42020ec 100644 --- a/api/classes/Base.html +++ b/api/classes/Base.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonActionStyle.html b/api/classes/ButtonActionStyle.html index dbf70b6dbc..cbed7d4fa4 100644 --- a/api/classes/ButtonActionStyle.html +++ b/api/classes/ButtonActionStyle.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonBold.html b/api/classes/ButtonBold.html index 54b3b86073..315d701a2e 100644 --- a/api/classes/ButtonBold.html +++ b/api/classes/ButtonBold.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonCamera.html b/api/classes/ButtonCamera.html index c6ee18e06f..74be214fd6 100644 --- a/api/classes/ButtonCamera.html +++ b/api/classes/ButtonCamera.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonCameraImage.html b/api/classes/ButtonCameraImage.html index b3ffc0d113..ed6a66fe12 100644 --- a/api/classes/ButtonCameraImage.html +++ b/api/classes/ButtonCameraImage.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonCfgProps.html b/api/classes/ButtonCfgProps.html index 9660393f88..6359404b72 100644 --- a/api/classes/ButtonCfgProps.html +++ b/api/classes/ButtonCfgProps.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonCode.html b/api/classes/ButtonCode.html index d277233b21..4d51d47695 100644 --- a/api/classes/ButtonCode.html +++ b/api/classes/ButtonCode.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonCommand.html b/api/classes/ButtonCommand.html index ad639adafb..2484ac23b9 100644 --- a/api/classes/ButtonCommand.html +++ b/api/classes/ButtonCommand.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonCommandActive.html b/api/classes/ButtonCommandActive.html index b05208f3df..f5bc71d699 100644 --- a/api/classes/ButtonCommandActive.html +++ b/api/classes/ButtonCommandActive.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonCommandListItem.html b/api/classes/ButtonCommandListItem.html index 9386d51b86..6f047f3740 100644 --- a/api/classes/ButtonCommandListItem.html +++ b/api/classes/ButtonCommandListItem.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonCommandsList.html b/api/classes/ButtonCommandsList.html index eb639f5dc9..ead17c3d1c 100644 --- a/api/classes/ButtonCommandsList.html +++ b/api/classes/ButtonCommandsList.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonDropdown.html b/api/classes/ButtonDropdown.html index 3bb69b096c..480cb77b9e 100644 --- a/api/classes/ButtonDropdown.html +++ b/api/classes/ButtonDropdown.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonEmbed.html b/api/classes/ButtonEmbed.html index 592cb2d4d3..a11e21494d 100644 --- a/api/classes/ButtonEmbed.html +++ b/api/classes/ButtonEmbed.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonEmbedEdit.html b/api/classes/ButtonEmbedEdit.html index 4a70761fa2..ad7cbaf5ac 100644 --- a/api/classes/ButtonEmbedEdit.html +++ b/api/classes/ButtonEmbedEdit.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonH1.html b/api/classes/ButtonH1.html index 3a0e47a2ed..258467c1a6 100644 --- a/api/classes/ButtonH1.html +++ b/api/classes/ButtonH1.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonH2.html b/api/classes/ButtonH2.html index 9f59b7b381..0ec389f4f7 100644 --- a/api/classes/ButtonH2.html +++ b/api/classes/ButtonH2.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonHline.html b/api/classes/ButtonHline.html index 5961227d89..77ebd83d46 100644 --- a/api/classes/ButtonHline.html +++ b/api/classes/ButtonHline.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonImage.html b/api/classes/ButtonImage.html index 30c0b0ee49..a0367be900 100644 --- a/api/classes/ButtonImage.html +++ b/api/classes/ButtonImage.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonImageAlignCenter.html b/api/classes/ButtonImageAlignCenter.html index 91d5c04e44..b63a6879dd 100644 --- a/api/classes/ButtonImageAlignCenter.html +++ b/api/classes/ButtonImageAlignCenter.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonImageAlignLeft.html b/api/classes/ButtonImageAlignLeft.html index 9ed64f4d57..0a3b97a025 100644 --- a/api/classes/ButtonImageAlignLeft.html +++ b/api/classes/ButtonImageAlignLeft.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonImageAlignRight.html b/api/classes/ButtonImageAlignRight.html index f43fe69661..1053ed0113 100644 --- a/api/classes/ButtonImageAlignRight.html +++ b/api/classes/ButtonImageAlignRight.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonIndentBlock.html b/api/classes/ButtonIndentBlock.html index 42b839b6ae..6cc3592764 100644 --- a/api/classes/ButtonIndentBlock.html +++ b/api/classes/ButtonIndentBlock.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonItalic.html b/api/classes/ButtonItalic.html index 8ba35c42ff..f4445dd634 100644 --- a/api/classes/ButtonItalic.html +++ b/api/classes/ButtonItalic.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonKeystroke.html b/api/classes/ButtonKeystroke.html index e229629291..458e3d619f 100644 --- a/api/classes/ButtonKeystroke.html +++ b/api/classes/ButtonKeystroke.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonLink.html b/api/classes/ButtonLink.html index 9308dd1992..f77c8b1bcc 100644 --- a/api/classes/ButtonLink.html +++ b/api/classes/ButtonLink.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonLinkAutocompleteList.html b/api/classes/ButtonLinkAutocompleteList.html index 471e0fbd68..d53cb02625 100644 --- a/api/classes/ButtonLinkAutocompleteList.html +++ b/api/classes/ButtonLinkAutocompleteList.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonLinkEdit.html b/api/classes/ButtonLinkEdit.html index 6caf3932af..29b2010d20 100644 --- a/api/classes/ButtonLinkEdit.html +++ b/api/classes/ButtonLinkEdit.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonLinkTargetEdit.html b/api/classes/ButtonLinkTargetEdit.html index 7ee55ce076..d688d41a5f 100644 --- a/api/classes/ButtonLinkTargetEdit.html +++ b/api/classes/ButtonLinkTargetEdit.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonOrderedList.html b/api/classes/ButtonOrderedList.html index 19e963f5aa..fccb7e67c2 100644 --- a/api/classes/ButtonOrderedList.html +++ b/api/classes/ButtonOrderedList.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonOutdentBlock.html b/api/classes/ButtonOutdentBlock.html index 63b64c7b1f..0f7318641f 100644 --- a/api/classes/ButtonOutdentBlock.html +++ b/api/classes/ButtonOutdentBlock.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonParagraphAlign.html b/api/classes/ButtonParagraphAlign.html index 7e8bf13c06..b1d00ee3ea 100644 --- a/api/classes/ButtonParagraphAlign.html +++ b/api/classes/ButtonParagraphAlign.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonParagraphAlignLeft.html b/api/classes/ButtonParagraphAlignLeft.html index 93203048ed..c7ac53cf9f 100644 --- a/api/classes/ButtonParagraphAlignLeft.html +++ b/api/classes/ButtonParagraphAlignLeft.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonParagraphAlignRight.html b/api/classes/ButtonParagraphAlignRight.html index 9b076b2844..6ea9faf18b 100644 --- a/api/classes/ButtonParagraphAlignRight.html +++ b/api/classes/ButtonParagraphAlignRight.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonParagraphCenter.html b/api/classes/ButtonParagraphCenter.html index f880397754..aa06226fff 100644 --- a/api/classes/ButtonParagraphCenter.html +++ b/api/classes/ButtonParagraphCenter.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonParagraphJustify.html b/api/classes/ButtonParagraphJustify.html index 366eaa9445..fb6206a7f4 100644 --- a/api/classes/ButtonParagraphJustify.html +++ b/api/classes/ButtonParagraphJustify.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonQuote.html b/api/classes/ButtonQuote.html index 4d666da5c6..95fb92a1a6 100644 --- a/api/classes/ButtonQuote.html +++ b/api/classes/ButtonQuote.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonRemoveFormat.html b/api/classes/ButtonRemoveFormat.html index b042094b7e..500e05d2cd 100644 --- a/api/classes/ButtonRemoveFormat.html +++ b/api/classes/ButtonRemoveFormat.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonStateClasses.html b/api/classes/ButtonStateClasses.html index a6a3c6b06b..edd61d4e04 100644 --- a/api/classes/ButtonStateClasses.html +++ b/api/classes/ButtonStateClasses.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonStrike.html b/api/classes/ButtonStrike.html index 06043ba86f..8d6b92ca9d 100644 --- a/api/classes/ButtonStrike.html +++ b/api/classes/ButtonStrike.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonStyle.html b/api/classes/ButtonStyle.html index 0f140f16a8..b5148fea6d 100644 --- a/api/classes/ButtonStyle.html +++ b/api/classes/ButtonStyle.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonStyles.html b/api/classes/ButtonStyles.html index ab9f9a3b5f..18c3d3c8f4 100644 --- a/api/classes/ButtonStyles.html +++ b/api/classes/ButtonStyles.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonStylesList.html b/api/classes/ButtonStylesList.html index 6dd11bd197..7438f7e3af 100644 --- a/api/classes/ButtonStylesList.html +++ b/api/classes/ButtonStylesList.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonStylesListItem.html b/api/classes/ButtonStylesListItem.html index f7ec40c183..9820941764 100644 --- a/api/classes/ButtonStylesListItem.html +++ b/api/classes/ButtonStylesListItem.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonStylesListItemRemove.html b/api/classes/ButtonStylesListItemRemove.html index 9fac4e8d29..f184cb5656 100644 --- a/api/classes/ButtonStylesListItemRemove.html +++ b/api/classes/ButtonStylesListItemRemove.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonSubscript.html b/api/classes/ButtonSubscript.html index dfa645f0f0..37d6da758b 100644 --- a/api/classes/ButtonSubscript.html +++ b/api/classes/ButtonSubscript.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonSuperscript.html b/api/classes/ButtonSuperscript.html index c534dac9e5..45f52031a3 100644 --- a/api/classes/ButtonSuperscript.html +++ b/api/classes/ButtonSuperscript.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonTable.html b/api/classes/ButtonTable.html index c34a3fd1ac..318f3de4f4 100644 --- a/api/classes/ButtonTable.html +++ b/api/classes/ButtonTable.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonTableCell.html b/api/classes/ButtonTableCell.html index 06468b0069..e999beadb9 100644 --- a/api/classes/ButtonTableCell.html +++ b/api/classes/ButtonTableCell.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonTableColumn.html b/api/classes/ButtonTableColumn.html index 50e89ee6af..c71f55fb2c 100644 --- a/api/classes/ButtonTableColumn.html +++ b/api/classes/ButtonTableColumn.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonTableEdit.html b/api/classes/ButtonTableEdit.html index f1410aaee1..45f5f49215 100644 --- a/api/classes/ButtonTableEdit.html +++ b/api/classes/ButtonTableEdit.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonTableHeading.html b/api/classes/ButtonTableHeading.html index b022153534..03fd48d11b 100644 --- a/api/classes/ButtonTableHeading.html +++ b/api/classes/ButtonTableHeading.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonTableRemove.html b/api/classes/ButtonTableRemove.html index 234ca32323..c78550fb5c 100644 --- a/api/classes/ButtonTableRemove.html +++ b/api/classes/ButtonTableRemove.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonTableRow.html b/api/classes/ButtonTableRow.html index 996e63bf5d..4d8bb2a25d 100644 --- a/api/classes/ButtonTableRow.html +++ b/api/classes/ButtonTableRow.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonTargetList.html b/api/classes/ButtonTargetList.html index bd4628ccdb..8982f2248f 100644 --- a/api/classes/ButtonTargetList.html +++ b/api/classes/ButtonTargetList.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonTwitter.html b/api/classes/ButtonTwitter.html index e155e3d594..b787cb55fd 100644 --- a/api/classes/ButtonTwitter.html +++ b/api/classes/ButtonTwitter.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonUnderline.html b/api/classes/ButtonUnderline.html index d1952e31ba..526c24dc4c 100644 --- a/api/classes/ButtonUnderline.html +++ b/api/classes/ButtonUnderline.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonUnorderedlist.html b/api/classes/ButtonUnorderedlist.html index df1e0a7184..934a84b2a3 100644 --- a/api/classes/ButtonUnorderedlist.html +++ b/api/classes/ButtonUnorderedlist.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ButtonsStylesListHeader.html b/api/classes/ButtonsStylesListHeader.html index a59c58b0fd..174c8934bc 100644 --- a/api/classes/ButtonsStylesListHeader.html +++ b/api/classes/ButtonsStylesListHeader.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/CKEDITOR.Link.html b/api/classes/CKEDITOR.Link.html index 3e24db1d9e..12e8112782 100644 --- a/api/classes/CKEDITOR.Link.html +++ b/api/classes/CKEDITOR.Link.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/CKEDITOR.Table.html b/api/classes/CKEDITOR.Table.html index 4bd393c891..71c77f613b 100644 --- a/api/classes/CKEDITOR.Table.html +++ b/api/classes/CKEDITOR.Table.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/CKEDITOR.plugins.ae_autolink.html b/api/classes/CKEDITOR.plugins.ae_autolink.html index d30632f15b..4c93960e5a 100644 --- a/api/classes/CKEDITOR.plugins.ae_autolink.html +++ b/api/classes/CKEDITOR.plugins.ae_autolink.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/CKEDITOR.plugins.ae_buttonbridge.html b/api/classes/CKEDITOR.plugins.ae_buttonbridge.html index db4b18fa1d..14de4ecef2 100644 --- a/api/classes/CKEDITOR.plugins.ae_buttonbridge.html +++ b/api/classes/CKEDITOR.plugins.ae_buttonbridge.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/CKEDITOR.plugins.ae_menubridge.html b/api/classes/CKEDITOR.plugins.ae_menubridge.html index 33956d67dc..45c61b4c23 100644 --- a/api/classes/CKEDITOR.plugins.ae_menubridge.html +++ b/api/classes/CKEDITOR.plugins.ae_menubridge.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/CKEDITOR.plugins.ae_menubuttonbridge.html b/api/classes/CKEDITOR.plugins.ae_menubuttonbridge.html index 4d74998659..3408c2a0c4 100644 --- a/api/classes/CKEDITOR.plugins.ae_menubuttonbridge.html +++ b/api/classes/CKEDITOR.plugins.ae_menubuttonbridge.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/CKEDITOR.plugins.ae_panelmenubuttonbridge.html b/api/classes/CKEDITOR.plugins.ae_panelmenubuttonbridge.html index 2830fd8cd9..1380cc35d1 100644 --- a/api/classes/CKEDITOR.plugins.ae_panelmenubuttonbridge.html +++ b/api/classes/CKEDITOR.plugins.ae_panelmenubuttonbridge.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/CKEDITOR.plugins.ae_placeholder.html b/api/classes/CKEDITOR.plugins.ae_placeholder.html index 72a53f0b7b..2bee213746 100644 --- a/api/classes/CKEDITOR.plugins.ae_placeholder.html +++ b/api/classes/CKEDITOR.plugins.ae_placeholder.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/CKEDITOR.plugins.ae_richcombobridge.html b/api/classes/CKEDITOR.plugins.ae_richcombobridge.html index b244a4b2ae..17bb8c2c4e 100644 --- a/api/classes/CKEDITOR.plugins.ae_richcombobridge.html +++ b/api/classes/CKEDITOR.plugins.ae_richcombobridge.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/CKEDITOR.plugins.ae_uibridge.html b/api/classes/CKEDITOR.plugins.ae_uibridge.html index 676d4df226..1597ad97ac 100644 --- a/api/classes/CKEDITOR.plugins.ae_uibridge.html +++ b/api/classes/CKEDITOR.plugins.ae_uibridge.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/CKEDITOR.plugins.html b/api/classes/CKEDITOR.plugins.html index 3da704b90d..7e3f45c65a 100644 --- a/api/classes/CKEDITOR.plugins.html +++ b/api/classes/CKEDITOR.plugins.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/CKEDITOR.tools.html b/api/classes/CKEDITOR.tools.html index 5060e6bf3c..cf850e17a8 100644 --- a/api/classes/CKEDITOR.tools.html +++ b/api/classes/CKEDITOR.tools.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/Core.html b/api/classes/Core.html index c3d2b79dcb..4df566ab39 100644 --- a/api/classes/Core.html +++ b/api/classes/Core.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/Lang.html b/api/classes/Lang.html index 6183ce2ada..ee1982a18b 100644 --- a/api/classes/Lang.html +++ b/api/classes/Lang.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/OOP.html b/api/classes/OOP.html index 49076f1a8a..51c6559237 100644 --- a/api/classes/OOP.html +++ b/api/classes/OOP.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/SelectionRegion.html b/api/classes/SelectionRegion.html index d00e04caba..087abbc242 100644 --- a/api/classes/SelectionRegion.html +++ b/api/classes/SelectionRegion.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ToolbarAdd.html b/api/classes/ToolbarAdd.html index c168a3cee0..663fc5e941 100644 --- a/api/classes/ToolbarAdd.html +++ b/api/classes/ToolbarAdd.html @@ -31,7 +31,7 @@

  • @@ -476,7 +476,7 @@

    _animate

    Inherited from WidgetPosition: - src/ui/react/src/components/base/widget-position.js:303 + src/ui/react/src/components/base/widget-position.js:312

    @@ -2293,7 +2293,7 @@

    show

    Inherited from WidgetPosition: - src/ui/react/src/components/base/widget-position.js:215 + src/ui/react/src/components/base/widget-position.js:224

    @@ -2390,7 +2390,7 @@

    updatePosition

    Inherited from WidgetPosition: - src/ui/react/src/components/base/widget-position.js:265 + src/ui/react/src/components/base/widget-position.js:274

    diff --git a/api/classes/ToolbarButtons.html b/api/classes/ToolbarButtons.html index daaf5ca4b6..8cd6fd7640 100644 --- a/api/classes/ToolbarButtons.html +++ b/api/classes/ToolbarButtons.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/ToolbarStyles.html b/api/classes/ToolbarStyles.html index 7f51ea7f23..9c0d59421a 100644 --- a/api/classes/ToolbarStyles.html +++ b/api/classes/ToolbarStyles.html @@ -31,7 +31,7 @@

  • @@ -458,7 +458,7 @@

    _animate

    Inherited from WidgetPosition: - src/ui/react/src/components/base/widget-position.js:303 + src/ui/react/src/components/base/widget-position.js:312

    @@ -2298,7 +2298,7 @@

    show

    Inherited from WidgetPosition: - src/ui/react/src/components/base/widget-position.js:215 + src/ui/react/src/components/base/widget-position.js:224

    @@ -2395,7 +2395,7 @@

    updatePosition

    Inherited from WidgetPosition: - src/ui/react/src/components/base/widget-position.js:265 + src/ui/react/src/components/base/widget-position.js:274

    diff --git a/api/classes/UI.html b/api/classes/UI.html index 00654a2645..efb8fd042e 100644 --- a/api/classes/UI.html +++ b/api/classes/UI.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/WidgetArrowBox.html b/api/classes/WidgetArrowBox.html index acb493ce06..2048f216c7 100644 --- a/api/classes/WidgetArrowBox.html +++ b/api/classes/WidgetArrowBox.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/WidgetDropdown.html b/api/classes/WidgetDropdown.html index ea367bf1e2..9c0321333b 100644 --- a/api/classes/WidgetDropdown.html +++ b/api/classes/WidgetDropdown.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/WidgetExclusive.html b/api/classes/WidgetExclusive.html index b70fd642a2..79c9473785 100644 --- a/api/classes/WidgetExclusive.html +++ b/api/classes/WidgetExclusive.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/WidgetFocusManager.html b/api/classes/WidgetFocusManager.html index ae4669b17e..08528f5e49 100644 --- a/api/classes/WidgetFocusManager.html +++ b/api/classes/WidgetFocusManager.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/WidgetInteractionPoint.html b/api/classes/WidgetInteractionPoint.html index f817c1c698..62c07b3682 100644 --- a/api/classes/WidgetInteractionPoint.html +++ b/api/classes/WidgetInteractionPoint.html @@ -31,7 +31,7 @@

  • diff --git a/api/classes/WidgetPosition.html b/api/classes/WidgetPosition.html index 1f35aa6608..c858b12dbe 100644 --- a/api/classes/WidgetPosition.html +++ b/api/classes/WidgetPosition.html @@ -31,7 +31,7 @@

  • @@ -321,7 +321,7 @@

    _animate

    Defined in - src/ui/react/src/components/base/widget-position.js:303 + src/ui/react/src/components/base/widget-position.js:312

    @@ -936,7 +936,7 @@

    show

    Defined in - src/ui/react/src/components/base/widget-position.js:215 + src/ui/react/src/components/base/widget-position.js:224

    @@ -966,7 +966,7 @@

    updatePosition

    Defined in - src/ui/react/src/components/base/widget-position.js:265 + src/ui/react/src/components/base/widget-position.js:274

    diff --git a/api/classes/ae_uicore.html b/api/classes/ae_uicore.html index 9247aabb60..24c9e5ef7e 100644 --- a/api/classes/ae_uicore.html +++ b/api/classes/ae_uicore.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_core_debounce.js.html b/api/files/src_core_debounce.js.html index b4c3ba71f1..9c85f73107 100644 --- a/api/files/src_core_debounce.js.html +++ b/api/files/src_core_debounce.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_core_link.js.html b/api/files/src_core_link.js.html index ae87c425dc..ddd6ccafa2 100644 --- a/api/files/src_core_link.js.html +++ b/api/files/src_core_link.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_core_plugins.js.html b/api/files/src_core_plugins.js.html index f8e0e73c80..df6312f3c2 100644 --- a/api/files/src_core_plugins.js.html +++ b/api/files/src_core_plugins.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_core_selection-region.js.html b/api/files/src_core_selection-region.js.html index 90f73429ce..b07c32af83 100644 --- a/api/files/src_core_selection-region.js.html +++ b/api/files/src_core_selection-region.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_core_table.js.html b/api/files/src_core_table.js.html index 5b3d1e4e29..eeb95fb025 100644 --- a/api/files/src_core_table.js.html +++ b/api/files/src_core_table.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_core_tools.js.html b/api/files/src_core_tools.js.html index f93b7b4d7b..93e89cd929 100644 --- a/api/files/src_core_tools.js.html +++ b/api/files/src_core_tools.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_core_uicore.js.html b/api/files/src_core_uicore.js.html index c267764256..c7308c8411 100644 --- a/api/files/src_core_uicore.js.html +++ b/api/files/src_core_uicore.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_plugins_autolink.js.html b/api/files/src_plugins_autolink.js.html index f683e979c6..428653eb8a 100644 --- a/api/files/src_plugins_autolink.js.html +++ b/api/files/src_plugins_autolink.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_plugins_placeholder.js.html b/api/files/src_plugins_placeholder.js.html index e9fbbf35ce..3a4742c1d3 100644 --- a/api/files/src_plugins_placeholder.js.html +++ b/api/files/src_plugins_placeholder.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_adapter_alloy-editor.js.html b/api/files/src_ui_react_src_adapter_alloy-editor.js.html index 0d9eefeacf..b5da58c67f 100644 --- a/api/files/src_ui_react_src_adapter_alloy-editor.js.html +++ b/api/files/src_ui_react_src_adapter_alloy-editor.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_adapter_main.js.html b/api/files/src_ui_react_src_adapter_main.js.html index 480ff818d6..eeb5e88925 100644 --- a/api/files/src_ui_react_src_adapter_main.js.html +++ b/api/files/src_ui_react_src_adapter_main.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_base_button-action-style.js.html b/api/files/src_ui_react_src_components_base_button-action-style.js.html index d3acff4625..cff293c744 100644 --- a/api/files/src_ui_react_src_components_base_button-action-style.js.html +++ b/api/files/src_ui_react_src_components_base_button-action-style.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_base_button-command-active.js.html b/api/files/src_ui_react_src_components_base_button-command-active.js.html index a73d796e6c..f447be2a04 100644 --- a/api/files/src_ui_react_src_components_base_button-command-active.js.html +++ b/api/files/src_ui_react_src_components_base_button-command-active.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_base_button-command.js.html b/api/files/src_ui_react_src_components_base_button-command.js.html index 8cf18282ca..9a316a2ea0 100644 --- a/api/files/src_ui_react_src_components_base_button-command.js.html +++ b/api/files/src_ui_react_src_components_base_button-command.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_base_button-keystroke.js.html b/api/files/src_ui_react_src_components_base_button-keystroke.js.html index 15206bca2c..332019a3dd 100644 --- a/api/files/src_ui_react_src_components_base_button-keystroke.js.html +++ b/api/files/src_ui_react_src_components_base_button-keystroke.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_base_button-props.js.html b/api/files/src_ui_react_src_components_base_button-props.js.html index c4270b2850..6b85a44f36 100644 --- a/api/files/src_ui_react_src_components_base_button-props.js.html +++ b/api/files/src_ui_react_src_components_base_button-props.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_base_button-state-classes.js.html b/api/files/src_ui_react_src_components_base_button-state-classes.js.html index 4b3ed8a276..9b1ca375e7 100644 --- a/api/files/src_ui_react_src_components_base_button-state-classes.js.html +++ b/api/files/src_ui_react_src_components_base_button-state-classes.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_base_button-style.js.html b/api/files/src_ui_react_src_components_base_button-style.js.html index cdddd3cc34..6e6ac36f8c 100644 --- a/api/files/src_ui_react_src_components_base_button-style.js.html +++ b/api/files/src_ui_react_src_components_base_button-style.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_base_toolbar-buttons.js.html b/api/files/src_ui_react_src_components_base_toolbar-buttons.js.html index 7d39ef9611..ed2e9f0219 100644 --- a/api/files/src_ui_react_src_components_base_toolbar-buttons.js.html +++ b/api/files/src_ui_react_src_components_base_toolbar-buttons.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_base_widget-arrow-box.js.html b/api/files/src_ui_react_src_components_base_widget-arrow-box.js.html index d255a549e7..bfcfadc783 100644 --- a/api/files/src_ui_react_src_components_base_widget-arrow-box.js.html +++ b/api/files/src_ui_react_src_components_base_widget-arrow-box.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_base_widget-dropdown.js.html b/api/files/src_ui_react_src_components_base_widget-dropdown.js.html index e66adf4a17..ca0a56cd45 100644 --- a/api/files/src_ui_react_src_components_base_widget-dropdown.js.html +++ b/api/files/src_ui_react_src_components_base_widget-dropdown.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_base_widget-exclusive.js.html b/api/files/src_ui_react_src_components_base_widget-exclusive.js.html index c0c5a4b95e..0fcde81840 100644 --- a/api/files/src_ui_react_src_components_base_widget-exclusive.js.html +++ b/api/files/src_ui_react_src_components_base_widget-exclusive.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_base_widget-focus-manager.js.html b/api/files/src_ui_react_src_components_base_widget-focus-manager.js.html index 7d1b666072..2eebf19463 100644 --- a/api/files/src_ui_react_src_components_base_widget-focus-manager.js.html +++ b/api/files/src_ui_react_src_components_base_widget-focus-manager.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_base_widget-interaction-point.js.html b/api/files/src_ui_react_src_components_base_widget-interaction-point.js.html index 53e468eea3..4788a05091 100644 --- a/api/files/src_ui_react_src_components_base_widget-interaction-point.js.html +++ b/api/files/src_ui_react_src_components_base_widget-interaction-point.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_base_widget-position.js.html b/api/files/src_ui_react_src_components_base_widget-position.js.html index 9e28b66324..a7fd69bfcd 100644 --- a/api/files/src_ui_react_src_components_base_widget-position.js.html +++ b/api/files/src_ui_react_src_components_base_widget-position.js.html @@ -31,7 +31,7 @@

  • @@ -383,7 +383,8 @@

    File src/ui/react/src/components/base/widget-position.j domElement.setStyles({ left: startPoint[0] + 'px', top: startPoint[1] + 'px', - opacity: 0 + opacity: 0, + pointerEvents: 'none', }); domElement.removeClass('alloy-editor-invisible'); @@ -397,6 +398,14 @@

    File src/ui/react/src/components/base/widget-position.j opacity: 1 }); }); + + if (domElement.$) { + domElement.$.addEventListener('transitionend', () => { + domElement.setStyles({ + pointerEvents: '', + }); + }) + } }, /** diff --git a/api/files/src_ui_react_src_components_buttons_button-bold.jsx.html b/api/files/src_ui_react_src_components_buttons_button-bold.jsx.html index 2fccc3df22..17828fe264 100644 --- a/api/files/src_ui_react_src_components_buttons_button-bold.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-bold.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-camera-image.jsx.html b/api/files/src_ui_react_src_components_buttons_button-camera-image.jsx.html index 24cb2b92ed..cb9a2ca632 100644 --- a/api/files/src_ui_react_src_components_buttons_button-camera-image.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-camera-image.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-camera.jsx.html b/api/files/src_ui_react_src_components_buttons_button-camera.jsx.html index c9f6184dbf..abae57d56e 100644 --- a/api/files/src_ui_react_src_components_buttons_button-camera.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-camera.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-code.jsx.html b/api/files/src_ui_react_src_components_buttons_button-code.jsx.html index 6b9443080f..e5518283b7 100644 --- a/api/files/src_ui_react_src_components_buttons_button-code.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-code.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-command-list-item.jsx.html b/api/files/src_ui_react_src_components_buttons_button-command-list-item.jsx.html index b661b76edf..1841a0cec9 100644 --- a/api/files/src_ui_react_src_components_buttons_button-command-list-item.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-command-list-item.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-commands-list.jsx.html b/api/files/src_ui_react_src_components_buttons_button-commands-list.jsx.html index 964ee95f3d..5272a8b248 100644 --- a/api/files/src_ui_react_src_components_buttons_button-commands-list.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-commands-list.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-dropdown.jsx.html b/api/files/src_ui_react_src_components_buttons_button-dropdown.jsx.html index 78856d4294..598b2e750c 100644 --- a/api/files/src_ui_react_src_components_buttons_button-dropdown.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-dropdown.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-embed-edit.jsx.html b/api/files/src_ui_react_src_components_buttons_button-embed-edit.jsx.html index 30d1d0ceaa..3c7cdb2145 100644 --- a/api/files/src_ui_react_src_components_buttons_button-embed-edit.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-embed-edit.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-embed.jsx.html b/api/files/src_ui_react_src_components_buttons_button-embed.jsx.html index 8f8f775123..b616f56b6b 100644 --- a/api/files/src_ui_react_src_components_buttons_button-embed.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-embed.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-h1.jsx.html b/api/files/src_ui_react_src_components_buttons_button-h1.jsx.html index 63e9a112ce..152eedcb65 100644 --- a/api/files/src_ui_react_src_components_buttons_button-h1.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-h1.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-h2.jsx.html b/api/files/src_ui_react_src_components_buttons_button-h2.jsx.html index 80b74fb3e8..d103a741d6 100644 --- a/api/files/src_ui_react_src_components_buttons_button-h2.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-h2.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-hline.jsx.html b/api/files/src_ui_react_src_components_buttons_button-hline.jsx.html index 60af292662..09953750a7 100644 --- a/api/files/src_ui_react_src_components_buttons_button-hline.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-hline.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-image-align-center.jsx.html b/api/files/src_ui_react_src_components_buttons_button-image-align-center.jsx.html index 066fba09b4..5f9695d884 100644 --- a/api/files/src_ui_react_src_components_buttons_button-image-align-center.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-image-align-center.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-image-align-left.jsx.html b/api/files/src_ui_react_src_components_buttons_button-image-align-left.jsx.html index 1a6c00899e..c4fced1141 100644 --- a/api/files/src_ui_react_src_components_buttons_button-image-align-left.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-image-align-left.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-image-align-right.jsx.html b/api/files/src_ui_react_src_components_buttons_button-image-align-right.jsx.html index e09c0a478b..dbbd6fc644 100644 --- a/api/files/src_ui_react_src_components_buttons_button-image-align-right.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-image-align-right.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-image.jsx.html b/api/files/src_ui_react_src_components_buttons_button-image.jsx.html index 62a5f2730c..9bef9f58d0 100644 --- a/api/files/src_ui_react_src_components_buttons_button-image.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-image.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-indent-block.jsx.html b/api/files/src_ui_react_src_components_buttons_button-indent-block.jsx.html index 893bd37d28..81c6c1ab33 100644 --- a/api/files/src_ui_react_src_components_buttons_button-indent-block.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-indent-block.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-italic.jsx.html b/api/files/src_ui_react_src_components_buttons_button-italic.jsx.html index 6fd91735c6..3ba3cff9f3 100644 --- a/api/files/src_ui_react_src_components_buttons_button-italic.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-italic.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-link-autocomplete-list.jsx.html b/api/files/src_ui_react_src_components_buttons_button-link-autocomplete-list.jsx.html index b9f30c11ff..a4a497e602 100644 --- a/api/files/src_ui_react_src_components_buttons_button-link-autocomplete-list.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-link-autocomplete-list.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-link-edit.jsx.html b/api/files/src_ui_react_src_components_buttons_button-link-edit.jsx.html index 191f2d7834..cacc7d5136 100644 --- a/api/files/src_ui_react_src_components_buttons_button-link-edit.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-link-edit.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-link-target-edit.jsx.html b/api/files/src_ui_react_src_components_buttons_button-link-target-edit.jsx.html index 0f93b8fe55..bdfa23104d 100644 --- a/api/files/src_ui_react_src_components_buttons_button-link-target-edit.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-link-target-edit.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-link.jsx.html b/api/files/src_ui_react_src_components_buttons_button-link.jsx.html index 9647227dd7..56bf142ef2 100644 --- a/api/files/src_ui_react_src_components_buttons_button-link.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-link.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-ol.jsx.html b/api/files/src_ui_react_src_components_buttons_button-ol.jsx.html index d3cf526d9b..9081101173 100644 --- a/api/files/src_ui_react_src_components_buttons_button-ol.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-ol.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-outdent-block.jsx.html b/api/files/src_ui_react_src_components_buttons_button-outdent-block.jsx.html index 4e3a8b0737..a722295943 100644 --- a/api/files/src_ui_react_src_components_buttons_button-outdent-block.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-outdent-block.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-paragraph-align-left.jsx.html b/api/files/src_ui_react_src_components_buttons_button-paragraph-align-left.jsx.html index de8d9e5902..f35362dd4d 100644 --- a/api/files/src_ui_react_src_components_buttons_button-paragraph-align-left.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-paragraph-align-left.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-paragraph-align-right.jsx.html b/api/files/src_ui_react_src_components_buttons_button-paragraph-align-right.jsx.html index e32e2642c6..521915a623 100644 --- a/api/files/src_ui_react_src_components_buttons_button-paragraph-align-right.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-paragraph-align-right.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-paragraph-align.jsx.html b/api/files/src_ui_react_src_components_buttons_button-paragraph-align.jsx.html index cfb3eaa2aa..5b4c834dc1 100644 --- a/api/files/src_ui_react_src_components_buttons_button-paragraph-align.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-paragraph-align.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-paragraph-center.jsx.html b/api/files/src_ui_react_src_components_buttons_button-paragraph-center.jsx.html index 874e6e929a..66361f61b0 100644 --- a/api/files/src_ui_react_src_components_buttons_button-paragraph-center.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-paragraph-center.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-paragraph-justify.jsx.html b/api/files/src_ui_react_src_components_buttons_button-paragraph-justify.jsx.html index fcfba9c6af..55b7202bd6 100644 --- a/api/files/src_ui_react_src_components_buttons_button-paragraph-justify.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-paragraph-justify.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-quote.jsx.html b/api/files/src_ui_react_src_components_buttons_button-quote.jsx.html index c0a66d0116..b4c4522afe 100644 --- a/api/files/src_ui_react_src_components_buttons_button-quote.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-quote.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-remove-format.jsx.html b/api/files/src_ui_react_src_components_buttons_button-remove-format.jsx.html index 0a2e7123af..85563852bd 100644 --- a/api/files/src_ui_react_src_components_buttons_button-remove-format.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-remove-format.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-separator.jsx.html b/api/files/src_ui_react_src_components_buttons_button-separator.jsx.html index c74aaeedf0..dfcae8874c 100644 --- a/api/files/src_ui_react_src_components_buttons_button-separator.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-separator.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-strike.jsx.html b/api/files/src_ui_react_src_components_buttons_button-strike.jsx.html index 5252bff16a..08c6e54120 100644 --- a/api/files/src_ui_react_src_components_buttons_button-strike.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-strike.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-styles-list-header.jsx.html b/api/files/src_ui_react_src_components_buttons_button-styles-list-header.jsx.html index 6dea4ff590..e2333b687f 100644 --- a/api/files/src_ui_react_src_components_buttons_button-styles-list-header.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-styles-list-header.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-styles-list-item-remove.jsx.html b/api/files/src_ui_react_src_components_buttons_button-styles-list-item-remove.jsx.html index 9c9a47c9e4..8b57097a69 100644 --- a/api/files/src_ui_react_src_components_buttons_button-styles-list-item-remove.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-styles-list-item-remove.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-styles-list-item.jsx.html b/api/files/src_ui_react_src_components_buttons_button-styles-list-item.jsx.html index bf4bdd733b..9b019bf43b 100644 --- a/api/files/src_ui_react_src_components_buttons_button-styles-list-item.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-styles-list-item.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-styles-list.jsx.html b/api/files/src_ui_react_src_components_buttons_button-styles-list.jsx.html index 4980b15429..43c775cb62 100644 --- a/api/files/src_ui_react_src_components_buttons_button-styles-list.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-styles-list.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-styles.jsx.html b/api/files/src_ui_react_src_components_buttons_button-styles.jsx.html index 38207a6c8a..acb4e540d7 100644 --- a/api/files/src_ui_react_src_components_buttons_button-styles.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-styles.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-subscript.jsx.html b/api/files/src_ui_react_src_components_buttons_button-subscript.jsx.html index fa6782b0f2..a9d9348b99 100644 --- a/api/files/src_ui_react_src_components_buttons_button-subscript.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-subscript.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-superscript.jsx.html b/api/files/src_ui_react_src_components_buttons_button-superscript.jsx.html index 5dcf50b8b5..6a0849f497 100644 --- a/api/files/src_ui_react_src_components_buttons_button-superscript.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-superscript.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-table-cell.jsx.html b/api/files/src_ui_react_src_components_buttons_button-table-cell.jsx.html index f5e66bdf80..d0fe68c0d2 100644 --- a/api/files/src_ui_react_src_components_buttons_button-table-cell.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-table-cell.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-table-column.jsx.html b/api/files/src_ui_react_src_components_buttons_button-table-column.jsx.html index 366609a565..1260e5908e 100644 --- a/api/files/src_ui_react_src_components_buttons_button-table-column.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-table-column.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-table-edit.jsx.html b/api/files/src_ui_react_src_components_buttons_button-table-edit.jsx.html index 8d9bf17dab..35576c4d5b 100644 --- a/api/files/src_ui_react_src_components_buttons_button-table-edit.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-table-edit.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-table-heading.jsx.html b/api/files/src_ui_react_src_components_buttons_button-table-heading.jsx.html index 243a36d88d..5fac8b86cf 100644 --- a/api/files/src_ui_react_src_components_buttons_button-table-heading.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-table-heading.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-table-remove.jsx.html b/api/files/src_ui_react_src_components_buttons_button-table-remove.jsx.html index 27e4942037..66cb8b6598 100644 --- a/api/files/src_ui_react_src_components_buttons_button-table-remove.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-table-remove.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-table-row.jsx.html b/api/files/src_ui_react_src_components_buttons_button-table-row.jsx.html index 270db9fe07..85750972cd 100644 --- a/api/files/src_ui_react_src_components_buttons_button-table-row.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-table-row.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-table.jsx.html b/api/files/src_ui_react_src_components_buttons_button-table.jsx.html index 942d921ce2..057f5b2426 100644 --- a/api/files/src_ui_react_src_components_buttons_button-table.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-table.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-target-list.jsx.html b/api/files/src_ui_react_src_components_buttons_button-target-list.jsx.html index dd2cd40b92..fcd7f672e8 100644 --- a/api/files/src_ui_react_src_components_buttons_button-target-list.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-target-list.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-twitter.jsx.html b/api/files/src_ui_react_src_components_buttons_button-twitter.jsx.html index 78bd06b75e..5799c0e0f4 100644 --- a/api/files/src_ui_react_src_components_buttons_button-twitter.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-twitter.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-ul.jsx.html b/api/files/src_ui_react_src_components_buttons_button-ul.jsx.html index 2386cf406b..606a7f6c9c 100644 --- a/api/files/src_ui_react_src_components_buttons_button-ul.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-ul.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_buttons_button-underline.jsx.html b/api/files/src_ui_react_src_components_buttons_button-underline.jsx.html index 75ea70783b..90029ead50 100644 --- a/api/files/src_ui_react_src_components_buttons_button-underline.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-underline.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_main.jsx.html b/api/files/src_ui_react_src_components_main.jsx.html index 3668ad0b24..ff1446616c 100644 --- a/api/files/src_ui_react_src_components_main.jsx.html +++ b/api/files/src_ui_react_src_components_main.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_toolbars_toolbar-add.jsx.html b/api/files/src_ui_react_src_components_toolbars_toolbar-add.jsx.html index f8dc2b699e..221748a991 100644 --- a/api/files/src_ui_react_src_components_toolbars_toolbar-add.jsx.html +++ b/api/files/src_ui_react_src_components_toolbars_toolbar-add.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_components_toolbars_toolbar-styles.jsx.html b/api/files/src_ui_react_src_components_toolbars_toolbar-styles.jsx.html index fa74c8abea..4b475bfc53 100644 --- a/api/files/src_ui_react_src_components_toolbars_toolbar-styles.jsx.html +++ b/api/files/src_ui_react_src_components_toolbars_toolbar-styles.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_oop_attribute.js.html b/api/files/src_ui_react_src_oop_attribute.js.html index d8f5b147a8..7d84f22df2 100644 --- a/api/files/src_ui_react_src_oop_attribute.js.html +++ b/api/files/src_ui_react_src_oop_attribute.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_oop_base.js.html b/api/files/src_ui_react_src_oop_base.js.html index b75ebb6609..292dada636 100644 --- a/api/files/src_ui_react_src_oop_base.js.html +++ b/api/files/src_ui_react_src_oop_base.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_oop_lang.js.html b/api/files/src_ui_react_src_oop_lang.js.html index 37f50b3975..0e6823ee99 100644 --- a/api/files/src_ui_react_src_oop_lang.js.html +++ b/api/files/src_ui_react_src_oop_lang.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_oop_oop.js.html b/api/files/src_ui_react_src_oop_oop.js.html index b095891733..e81028519b 100644 --- a/api/files/src_ui_react_src_oop_oop.js.html +++ b/api/files/src_ui_react_src_oop_oop.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_selections_selection-position.js.html b/api/files/src_ui_react_src_selections_selection-position.js.html index 6ddaf8823a..626466540a 100644 --- a/api/files/src_ui_react_src_selections_selection-position.js.html +++ b/api/files/src_ui_react_src_selections_selection-position.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_uibridge_button.jsx.html b/api/files/src_ui_react_src_uibridge_button.jsx.html index b79299d44f..be38ede40d 100644 --- a/api/files/src_ui_react_src_uibridge_button.jsx.html +++ b/api/files/src_ui_react_src_uibridge_button.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_uibridge_menu-button.jsx.html b/api/files/src_ui_react_src_uibridge_menu-button.jsx.html index e0a56cb514..f5ad0ae71f 100644 --- a/api/files/src_ui_react_src_uibridge_menu-button.jsx.html +++ b/api/files/src_ui_react_src_uibridge_menu-button.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_uibridge_menu.jsx.html b/api/files/src_ui_react_src_uibridge_menu.jsx.html index 90f33f0ce8..7fe04d85af 100644 --- a/api/files/src_ui_react_src_uibridge_menu.jsx.html +++ b/api/files/src_ui_react_src_uibridge_menu.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_uibridge_panel-menu-button.jsx.html b/api/files/src_ui_react_src_uibridge_panel-menu-button.jsx.html index 138b3a5837..f6d2e745c1 100644 --- a/api/files/src_ui_react_src_uibridge_panel-menu-button.jsx.html +++ b/api/files/src_ui_react_src_uibridge_panel-menu-button.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_uibridge_richcombo.jsx.html b/api/files/src_ui_react_src_uibridge_richcombo.jsx.html index 5acc358c40..40cbcb988d 100644 --- a/api/files/src_ui_react_src_uibridge_richcombo.jsx.html +++ b/api/files/src_ui_react_src_uibridge_richcombo.jsx.html @@ -31,7 +31,7 @@

  • diff --git a/api/files/src_ui_react_src_uibridge_uibridge.js.html b/api/files/src_ui_react_src_uibridge_uibridge.js.html index 75abdb9197..7646d26fb6 100644 --- a/api/files/src_ui_react_src_uibridge_uibridge.js.html +++ b/api/files/src_ui_react_src_uibridge_uibridge.js.html @@ -31,7 +31,7 @@

  • diff --git a/api/index.html b/api/index.html index 87a23454c0..6885cf4e2a 100644 --- a/api/index.html +++ b/api/index.html @@ -31,7 +31,7 @@

  • diff --git a/dist/alloy-editor/CHANGELOG.md b/dist/alloy-editor/CHANGELOG.md index 2a71b38184..c5365c0672 100644 --- a/dist/alloy-editor/CHANGELOG.md +++ b/dist/alloy-editor/CHANGELOG.md @@ -1,15 +1,20 @@ # Change Log -## [v1.5.21](https://github.com/liferay/alloy-editor/tree/v1.5.21)(2019-03-13) +## [v1.5.22](https://github.com/liferay/alloy-editor/tree/v1.5.22) (2019-03-13) +[Full Changelog](https://github.com/liferay/alloy-editor/compare/v1.5.21...v1.5.22) + +**Closed issues** + +- Fixes #1160 Add transitionend event to enable pointerEvents ([fortunatomaldonado](https://github.com/fortunatomaldonado)) + +## [v1.5.21](https://github.com/liferay/alloy-editor/tree/v1.5.21) (2019-03-13) [Full Changelog](https://github.com/liferay/alloy-editor/compare/v1.5.20...v1.5.21) **Closed issues** - Include missing build files from previous release (#1169) ([wincent](https://github.com/wincent)) -https://github.com/liferay/alloy-editor/issues/1179 - -## [v1.5.20](https://github.com/liferay/alloy-editor/tree/v1.5.20)(2019-03-08) +## [v1.5.20](https://github.com/liferay/alloy-editor/tree/v1.5.20) (2019-03-08) [Full Changelog](https://github.com/liferay/alloy-editor/compare/v1.5.19...v1.5.20) **Closed issues** diff --git a/dist/alloy-editor/alloy-editor-all-min.js b/dist/alloy-editor/alloy-editor-all-min.js index c99137571c..6594127257 100644 --- a/dist/alloy-editor/alloy-editor-all-min.js +++ b/dist/alloy-editor/alloy-editor-all-min.js @@ -1,5 +1,5 @@ /** - * AlloyEditor v1.5.21 + * AlloyEditor v1.5.22 * * Copyright 2014-present, Liferay, Inc. * All rights reserved. @@ -1044,8 +1044,8 @@ var createReactClass = (function() { "use strict";!function(){CKEDITOR.tools.debounce=CKEDITOR.tools.debounce||function(e,t,i,n){var o,a=function(){var a=i||this;clearTimeout(o);for(var r=[],s=arguments.length,l=0;l0?t.getRangeAt(0).getClientRects():[]),0===o.length)n=this.getCaretRegion();else{for(var c=0,u=o.length;cl&&(l=p.right),p.topr&&(r=p.bottom)}var m=new CKEDITOR.dom.window(window).getScrollPosition();if(n.bottom=m.y+r,n.left=m.x+s,n.right=m.x+l,n.top=m.y+d,o.length){var g=o[o.length-1],h=o[0];n.endRect={bottom:m.y+g.bottom,height:g.height,left:m.x+g.left,right:m.x+g.right,top:m.y+g.top,width:g.width},n.startRect={bottom:m.y+h.bottom,height:h.height,left:m.x+h.left,right:m.x+h.right,top:m.y+h.top,width:h.width}}}return n},getSelectionDirection:function(){var e=CKEDITOR.SELECTION_TOP_TO_BOTTOM,t=this.getSelection(),i=t.getNative();if(!i)return e;var n;if((n=i.anchorNode)&&n.compareDocumentPosition){var o=n.compareDocumentPosition(i.focusNode);(!o&&i.anchorOffset>i.focusOffset||o===Node.DOCUMENT_POSITION_PRECEDING)&&(e=CKEDITOR.SELECTION_BOTTOM_TO_TOP)}return e}},CKEDITOR.plugins.add("ae_selectionregion",{init:function(t){var i,n;n=Object.prototype.hasOwnProperty;for(i in e.prototype)n.call(e.prototype,i)&&"undefined"==typeof t[i]&&(t[i]=e.prototype[i])}}))}(),function(){function e(e){this._editor=e}var t={table:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1};e.HEADING_BOTH="Both",e.HEADING_COL="Column",e.HEADING_NONE="None",e.HEADING_ROW="Row",e.prototype={constructor:e,create:function(e){var t=this._editor,i=this._createElement("table");e=e||{};for(var n=i.append(this._createElement("tbody")),o=e.rows||1,a=e.cols||1,r=0;r0&&(CKEDITOR.env.webkit&&n[0].shrink(CKEDITOR.NODE_ELEMENT),e=this._editor.elementPath(n[0].getCommonAncestor(!0)).contains("table",1))}return e},isEditable:function(e){return CKEDITOR.env.ie&&e.is(t)?e.hasAttribute("contenteditable")?"false"!==e.getAttribute("contenteditable"):this.isEditable(e.getParent()):!e.isReadOnly()},getHeading:function(t){if(t=t||this.getFromSelection(),!t)return null;for(var i=null!==t.$.tHead,n=!0,o=0;o0;){var h=a.getFirst(),f=h.getChildCount();for(n=0;n0){new CKEDITOR.dom.event(t).preventDefault();var n=e.listenerData.editor;e.listenerData.editor.createSelectionFromPoint(t.clientX,t.clientY),this._handleFiles(i,n)}},_onDragEnter:function(t){e&&this._preventEvent(t)},_onDragOver:function(t){e&&this._preventEvent(t)},_onPaste:function(e){if(e.data&&e.data.$&&e.data.$.clipboardData&&e.data.$.clipboardData.items&&e.data.$.clipboardData.items.length>0){var t=e.data.$.clipboardData.items[0];if(0===t.type.indexOf("image")){var i=t.getAsFile();this._processFile(i,e.listenerData.editor)}}},_preventEvent:function(e){e=new CKEDITOR.dom.event(e.data.$),e.preventDefault(),e.stopPropagation()},_processFile:function(e,t){var i=new FileReader;i.addEventListener("loadend",function(){var n=i.result,o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o);var a={el:o,file:e};t.fire("imageAdd",a)}),i.readAsDataURL(e)}})}(),function(){if(!CKEDITOR.plugins.get("ae_autolink")){/MSIE ([^;]*)|Trident.*; rv:([0-9.]+)/.test(navigator.userAgent)&&document.execCommand("AutoUrlDetect",!1,!1);var e=8,t=188,i=13,n=186,o=32,a=[t,i,n,o],r=/[^\s]+/gim,s="((([A - Za - z]{ 3, 9}: (?: \\/\\/)?)(?:[-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9.-]+|(https?\\:\\/\\/|www.|[-;:&=.\\+\\$,\\w]+@)[A-Za-z0-9.-]+)((?:\\/[\\+~%\\/.\\w-_]*)?\\??(?:[-\\+=&;%@.\\w_]*)#?(?:[\\w]*))((.*):(\\d*)\\/?(.*))?)",l=/[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/i;CKEDITOR.plugins.add("ae_autolink",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keyup",this._onKeyUp,this,{editor:e})}.bind(this)),e.on("paste",function(e){if("paste"===e.data.method){if(e.data.dataValue.indexOf("<")>-1||e.data.dataValue.indexOf("<")>-1)return void(e.data.dataValue.indexOf('|<\/font><\/u>/g,"")));var t=this;e.data.dataValue=e.data.dataValue.replace(RegExp(s,"gim"),function(e){if(t._isValidURL(e))return t._isValidEmail(e)?''+e+"":''+e+""})}}.bind(this))},_getLastWord:function(e){var t=e.getSelection().getRanges()[0],n=t.startOffset,o="";if(this._currentKeyCode===i){var a,s=t.startContainer.getPrevious();if(s){for(;!s.getLast;)s=s.getPrevious();for(a=s.getLast();a&&!a.getText();)a=a.getPrevious()}a&&a.$.href||(this._startContainer=a,o=a?a.getText():"",this._offset=o.length)}else this._startContainer=t.startContainer,o=this._startContainer.getText().substring(0,n-1),this._offset=n-1;var l="",d=o.match(r);return d&&(l=d.pop()),l},_isValidEmail:function(e){return l.test(e)},_isValidURL:function(e){return RegExp(s,"i").test(e)},_onKeyDown:function(t){var i=t.data.$,n=t.listenerData.editor,o=n.editable();o.removeListener("keydown",this._onKeyDown),i.keyCode===e&&(t.cancel(),t.data.preventDefault(),this._removeLink(n)),this._ckLink=null},_onKeyUp:function(e){var t=e.data.$;if(this._currentKeyCode=t.keyCode,a.indexOf(this._currentKeyCode)!==-1){var i=e.listenerData.editor,n=this._getLastWord(i);this._isValidURL(n)&&this._replaceContentByLink(i,n)}},_replaceContentByLink:function(e,t){var n=e.createRange(),o=CKEDITOR.dom.element.get(this._startContainer),a=this._offset;n.setStart(o,a-t.length),n.setEnd(o,a),n.select();var r=new CKEDITOR.Link(e);r.create(t),this._ckLink=r;var s=r.getFromSelection();if(e.fire("autolinkAdd",s),this._subscribeToKeyEvent(e),n=e.getSelection().getRanges()[0],this._currentKeyCode===i){var l=n.getNextEditableNode();n.setStart(l,0),n.setEnd(l,0)}else{var d=n.getNextNode();n.setStart(d,1),n.setEnd(d,1)}n.select()},_removeLink:function(e){var t=e.getSelection().getRanges()[0],i=t.startOffset,n=this._startContainer.getNext()||this._startContainer,o=e.createRange();o.setStart(n,0),o.setEndAfter(n),o.select(),this._ckLink.remove(),t.setEnd(t.startContainer,i),t.setStart(t.startContainer,i),t.select()},_subscribeToKeyEvent:function(e){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e},1)}})}}(),function(){if(!CKEDITOR.plugins.get("ae_autolist")){var e=8,t=32,i=[{regex:/^\*$/,type:"bulletedlist"},{regex:/^1\.$/,type:"numberedlist"}];CKEDITOR.plugins.add("ae_autolist",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e})}.bind(this))},_checkForBackspaceAndUndo:function(t){var i=t.listenerData.editor,n=t.data.$,o=i.editable();o.removeListener("keydown",this._checkForBackspaceAndUndo),n.keyCode===e&&(i.execCommand("undo"),i.insertHtml(t.listenerData.bullet+" "),t.data.preventDefault())},_getListConfig:function(e){for(var t=e.config.autolist||i,n=e.getSelection().getRanges()[0],o=n.endContainer.getText(),a=o.substring(0,n.startOffset),r=o.substring(n.startOffset,o.length),s=0,l=t.length,d=null;!d&&l>s;){var c=t[s];if(c.regex.test(a)){d={bullet:a,editor:e,text:r,type:c.type};break}s++}return d},_createList:function(e){var t=e.editor,i=t.getSelection().getRanges()[0];i.endContainer.setText(e.text),t.execCommand(e.type);var n=t.editable();n.attachListener(n,"keydown",this._checkForBackspaceAndUndo,this,{editor:t,bullet:e.bullet},1)},_onKeyDown:function(e){var i=e.data.$;if(i.keyCode===t){var n=this._getListConfig(e.listenerData.editor);n&&(e.data.preventDefault(),this._createList(n))}}})}}(),function(){function e(e){function i(){var t=e.getSelection();t&&(t.getType()!==CKEDITOR.SELECTION_NONE&&t.getStartElement().is("img")?n.event&&n.event.button&&0!==n.event.button||r.show(t.getStartElement().$):r.hide())}var n=e.window.$,o=e.document.$;u&&o.execCommand("enableObjectResizing",!1,!1);var a="undefined"==typeof c?null:c;e.config.imageScaleResize=e.config.imageScaleResize||"both";var r=new t(e,{imageScaleResize:e.config.imageScaleResize,snapToSize:a}),s=function(e){r.isHandle(e.target)&&r.initDrag(e)};o.addEventListener("mousedown",s,!1),e.on("selectionChange",i),e.on("getData",function(e){var t=e.data.dataValue||"";t=t.replace(/
    /i,""),t=t.replace(/\b(ckimgrsz)\b/g,""),e.data.dataValue=t}),e.on("beforeUndoImage",function(){r.hide()}),e.on("afterUndoImage",function(){i()}),e.on("blur",function(){r.hide()}),e.on("beforeModeUnload",function t(){e.removeListener("beforeModeUnload",t),r.hide()}),e.on("destroy",function(){var e=o.getElementById("ckimgrsz");e&&e.remove(),u&&o.execCommand("enableObjectResizing",!1,!0),o.removeEventListener("mousedown",s)});var l;e.window.on("resize",function(){clearTimeout(l),l=setTimeout(i,50)})}function t(e,t){this.editor=e,this.window=e.window.$,this.document=e.document.$,this.cfg=t||{},this.init()}function i(e,t){this.window=e,this.document=t,this.events={mousemove:o(this.mousemove,this),keydown:o(this.keydown,this),mouseup:o(this.mouseup,this)}}function n(e){for(var t=e.length,i=new Array(t),n=0;nn?t.height=Math.round(t.width/n):t.width=Math.round(t.height*n)}var o=this.cfg.snapToSize;if(o)for(var a=this.otherImages,r=0;r=15&&(u>=15||"auto"===u)?(f.$.style.width=c+"px",f.$.style.height=u+"px",p=!0):p=!1}function l(){for(var n;n=C.pop();)n.removeListener();i.removeClass(_),o.removeClass("cke_image_resizing"),p&&(e.setData({height:u,width:c}),t.fire("saveSnapshot")),p=!1}var d,c,u,p,m,g,h,f=e.parts.image,y="right"==e.data.align?-1:1,E=a.data.$.screenX,v=a.data.$.screenY,b=f.$.clientWidth,T=f.$.clientHeight,C=[],_="cke_image_s"+(~y?"e":"w");t.fire("saveSnapshot"),r("mousemove",s,C),r("mouseup",l,C),i.addClass(_),o.addClass("cke_image_resizing")}),e.on("data",function(){o["right"==e.data.align?"addClass":"removeClass"]("cke_image_resizer_left")}),e.parts.image.on("click",function(){var e=t.getSelection();if(e){var i=e.getStartElement();if(i){var n=i.findOne("img");if(n){var o=i.getClientRect(),a=new CKEDITOR.dom.window(window).getScrollPosition();o.left-=a.x,o.top+=a.y,o.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,t.fire("editorInteraction",{nativeEvent:event,selectionData:{element:n,region:o}})}}}})}function s(e){var t={figcaption:!0,figure:{classes:"!"+e.config.image2_captionedClass},img:{attributes:"!src,alt,width,height"}};return t}function l(e){var t=e.config.image2_alignClasses,i={align:{requiredContent:"img"+(t?"("+t[0]+")":"{float}")},caption:{requiredContent:"figcaption"},dimension:{requiredContent:"img[width,height]"}};return i}function d(e){return e.data.hasCaption?e.element:e.parts.image}if(!CKEDITOR.plugins.get("ae_dragresize_ie")){var c={center:1,left:0,right:2},u={both:"nwse-resize",height:"ns-resize",scale:"nwse-resize",width:"ew-resize"},p=/^\s*(\d+\%)\s*$/i,m='';CKEDITOR.plugins.add("ae_dragresize_ie",{hidpi:!0,icons:"image",init:function(t){var i=e(t);t.widgets.add("image",i)},onLoad:function(){CKEDITOR.addCss(".cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ns-resize{cursor: ns-resize;}.cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ew-resize{cursor: ew-resize;}.cke_image_nocaption{line-height:0}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:nwse-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}")},requires:"widget"}),CKEDITOR.plugins.image2={checkHasNaturalRatio:function(e){var t=e.$,i=this.getNatural(e);return Math.round(t.clientWidth/i.width*i.height)==t.clientHeight||Math.round(t.clientHeight/i.height*i.width)==t.clientWidth},getNatural:function(e){var t;if(e.$.naturalWidth)t={height:e.$.naturalHeigh,width:e.$.naturalWidth};else{var i=new Image;i.src=e.getAttribute("src"),t={height:i.heigh,width:i.width}}return t}}}}(),CKEDITOR.config.image2_captionedClass="image",function(){function e(e){function o(){this.deflated||(e.widgets.focused==this.widget&&(this.focused=!0),e.widgets.destroy(this.widget),this.deflated=!0)}function a(){var i=e.editable(),n=e.document;if(this.deflated){if(this.widget=e.widgets.initOn(this.element,"image",this.widget.data),this.widget.inline&&!new CKEDITOR.dom.elementPath(this.widget.wrapper,i).block){var o=n.createElement(e.activeEnterMode==CKEDITOR.ENTER_P?"p":"div");o.replace(this.widget.wrapper),this.widget.wrapper.move(o)}this.focused&&(this.widget.focus(),delete this.focused),delete this.deflated}else t(this.widget,l)}var l=e.config.ae_dragresize_ie11_alignClasses,d=e.config.ae_dragresize_ie11_captionedClass;return{allowedContent:c(e),requiredContent:"img[src,alt]",features:u(e),styleableElements:"img figure",contentTransformations:[["img[width]: sizeToAttribute"]],editables:{caption:{selector:"figcaption",allowedContent:"br em strong sub sup u s; a[!href,target]"}},parts:{image:"img",caption:"figcaption"},template:m,data:function(){var t=this.features;if(this.data.hasCaption&&!e.filter.checkFeature(t.caption)&&(this.data.hasCaption=!1),"none"==this.data.align||e.filter.checkFeature(t.align)||(this.data.align="none"),this.shiftState({widget:this,element:this.element,oldData:this.oldData,newData:this.data,deflate:o,inflate:a}),this.data.link?this.parts.link||(this.parts.link=this.parts.image.getParent()):this.parts.link&&delete this.parts.link,this.parts.image.setAttributes({src:this.data.src,"data-cke-saved-src":this.data.src,alt:this.data.alt}),this.oldData&&!this.oldData.hasCaption&&this.data.hasCaption)for(var i in this.data.classes)this.parts.image.removeClass(i);e.filter.checkFeature(t.dimension)&&r(this),this.oldData=CKEDITOR.tools.extend({},this.data)},init:function(){var t=CKEDITOR.plugins.ae_dragresize_ie11,i=this.parts.image,n={hasCaption:!!this.parts.caption,src:i.getAttribute("src"),alt:i.getAttribute("alt")||"",width:i.getAttribute("width")||"",height:i.getAttribute("height")||"",lock:!this.ready||t.checkHasNaturalRatio(i)},o=i.getAscendant("a");if(o&&this.wrapper.contains(o)&&(this.parts.link=o),!n.align){var a=n.hasCaption?this.element:i;l?(a.hasClass(l[0])?n.align="left":a.hasClass(l[2])&&(n.align="right"),n.align?a.removeClass(l[h[n.align]]):n.align="none"):(n.align=a.getStyle("float")||"none",a.removeStyle("float"))}if(e.plugins.link&&this.parts.link){n.link=t.getLinkAttributesParser()(e,this.parts.link);var r=n.link.advanced;r&&r.advCSSClasses&&(r.advCSSClasses=CKEDITOR.tools.trim(r.advCSSClasses.replace(/cke_\S+/,"")))}this.wrapper[(n.hasCaption?"remove":"add")+"Class"]("cke_image_nocaption"),this.setData(n),e.filter.checkFeature(this.features.dimension)&&e.config.ae_dragresize_ie11_disableResizer!==!0&&s(this),this.shiftState=t.stateShifter(this.editor),this.on("contextMenu",function(e){e.data.image=CKEDITOR.TRISTATE_OFF,(this.parts.link||this.wrapper.getAscendant("a"))&&(e.data.link=e.data.unlink=CKEDITOR.TRISTATE_OFF)})},addClass:function(e){p(this).addClass(e)},hasClass:function(e){return p(this).hasClass(e)},removeClass:function(e){p(this).removeClass(e)},getClasses:function(){var e=new RegExp("^("+[].concat(d,l).join("|")+")$");return function(){var t=this.repository.parseElementClasses(p(this).getAttribute("class"));for(var i in t)e.test(i)&&delete t[i];return t}}(),upcast:i(e),downcast:n(e),getLabel:function(){var e=(this.data.alt||"")+" "+this.pathName;return this.editor.lang.widget.label.replace(/%1/,e)}}}function t(e,t){var i=e.wrapper,n=e.data.align,o=e.data.hasCaption;if(t){for(var a=3;a--;)i.removeClass(t[a]);"center"==n?o&&i.addClass(t[1]):"none"!=n&&i.addClass(t[h[n]])}else{"center"==n?(o?i.setStyle("text-align","center"):i.removeStyle("text-align"),i.removeStyle("float")):("none"==n?i.removeStyle("float"):i.setStyle("float",n),i.removeStyle("text-align"));var r=i.$.querySelector("img");r.removeAttribute("style")}}function i(e){var t=o(e),i=e.config.ae_dragresize_ie11_captionedClass;return function(e,n){var o,r={width:1,height:1},s=e.name;if(!e.attributes["data-cke-realelement"]){if(t(e)){if("div"==s){var l=e.getFirst("figure");l&&(e.replaceWith(l),e=l)}n.align="center",o=e.getFirst("img")||e.getFirst("a").getFirst("img")}else"figure"==s&&e.hasClass(i)?o=e.getFirst("img")||e.getFirst("a").getFirst("img"):a(e)&&(o="a"==e.name?e.children[0]:e);if(o){for(var d in r){var c=o.attributes[d];c&&c.match(f)&&delete o.attributes[d]}return e}}}}function n(e){var t=e.config.ae_dragresize_ie11_alignClasses;return function(e){var i="a"==e.name?e.getFirst():e,n=i.attributes,o=this.data.align;if(!this.inline){var a=e.getFirst("span");a&&a.replaceWith(a.getFirst({img:1,a:1}))}if(o&&"none"!=o){var r=CKEDITOR.tools.parseCssText(n.style||"");"center"==o&&"figure"==e.name?e=e.wrapWith(new CKEDITOR.htmlParser.element("div",t?{class:t[1]}:{style:"text-align:center"})):o in{left:1,right:1}&&(t?i.addClass(t[h[o]]):r.float=o),t||CKEDITOR.tools.isEmpty(r)||(n.style=CKEDITOR.tools.writeCssText(r)+";")}return e}}function o(e){var t=e.config.ae_dragresize_ie11_captionedClass,i=e.config.ae_dragresize_ie11_alignClasses,n={figure:1,a:1,img:1};return function(o){if(!(o.name in{div:1,p:1}))return!1;var r=o.children;if(1!==r.length)return!1;var s=r[0];if(!(s.name in n))return!1;if("p"==o.name){if(!a(s))return!1}else if("figure"==s.name){if(!s.hasClass(t))return!1}else{if(e.enterMode==CKEDITOR.ENTER_P)return!1;if(!a(s))return!1}return!(i?!o.hasClass(i[1]):"center"!=CKEDITOR.tools.parseCssText(o.attributes.style||"",!0)["text-align"])}}function a(e){return"img"==e.name||"a"==e.name&&(1==e.children.length&&e.getFirst("img"))}function r(e){var t=e.data,i={width:t.width,height:t.height},n=e.parts.image;for(var o in i)i[o]?n.setAttribute(o,i[o]):n.removeAttribute(o)}function s(e){var t=e.editor,i=t.editable(),n=t.document,o=e.resizer=n.createElement("span"),a=n.createElement("span"),r=n.createElement("span"),s=n.createElement("span"),l=n.createElement("span");if(a.addClass("cke_image_resizer"),a.addClass("cke_image_resizer_ne"),r.addClass("cke_image_resizer"),r.addClass("cke_image_resizer_nw"),s.addClass("cke_image_resizer"),s.addClass("cke_image_resizer_se"),l.addClass("cke_image_resizer"),l.addClass("cke_image_resizer_sw"),o.append(a),o.append(r),o.append(s),o.append(l),o.append(new CKEDITOR.dom.text("​",n)),e.inline)e.wrapper.append(o);else{var d=e.parts.link||e.parts.image,c=d.getParent(),u=n.createElement("span");u.addClass("cke_image_resizer_wrapper"),u.append(d),u.append(o),e.element.append(u,!0),c.is("span")&&c.remove()}o.on("mousedown",function(a){function r(e,t,i){var o=CKEDITOR.document,a=[];if(n.equals(o)||a.push(o.on(e,t)),a.push(n.on(e,t)),i)for(var r=a.length;r--;)i.push(a.pop())}function s(){y=C+u*m,f=Math.round(y/R)}function l(){f=_+p*g,y=Math.round(f*R)}function d(e){h=e.data.$,m=h.screenX-b,g=T-h.screenY,moveRatio=Math.abs(m/g),1==u?m<=0?l():s():m<=0?s():l(),y>=15&&f>=15?(v.$.style.width=y+"px",v.$.style.height=f+"px",E=!0):E=!1}function c(){for(var n;n=A.pop();)n.removeListener();i.removeClass(k),o.removeClass("cke_image_resizing"),E&&(e.setData({height:f,width:y}),t.fire("saveSnapshot")),E=!1}var u,p,m,g,h,f,y,E,v=e.parts.image,b=a.data.$.screenX,T=a.data.$.screenY,C=v.$.clientWidth,_=v.$.clientHeight,R=C/_,A=[],I=a.data.getTarget();I.hasClass("cke_image_resizer_ne")?(u=1,p=1):I.hasClass("cke_image_resizer_nw")?(u=-1,p=1):I.hasClass("cke_image_resizer_se")?(u=1,p=-1):I.hasClass("cke_image_resizer_sw")&&(u=-1,p=-1);var k="cke_image_"+(~p?"n":"s")+(~u?"e":"w");t.fire("saveSnapshot"),r("mousemove",d,A),r("mouseup",c,A),i.addClass(k),o.addClass("cke_image_resizing")})}function l(e){var t,i=[];return function(n){var o=e.getCommand("justify"+n);o&&(i.push(function(){o.refresh(e,e.elementPath())}),n in{right:1,left:1,center:1}&&o.on("exec",function(t){var o=d(e);if(o){o.data.align===n?(y(o,n),delete o.data.align):o.setData("align",n);for(var a=i.length;a--;)i[a]();t.cancel()}}),o.on("refresh",function(i){var o=d(e),a={right:1,left:1,center:1};o&&(void 0===t&&(t=e.filter.checkFeature(e.widgets.registered.image.features.align)),t?this.setState(o.data.align==n?CKEDITOR.TRISTATE_ON:n in a?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_DISABLED),i.cancel())}))}}function d(e){var t=e.widgets.focused;return t&&"image"==t.name?t:null}function c(e){var t=e.config.ae_dragresize_ie11_alignClasses,i={div:{match:o(e)},p:{match:o(e)},img:{attributes:"!src,alt,width,height"},figure:{classes:"!"+e.config.ae_dragresize_ie11_captionedClass},figcaption:!0};return t?(i.div.classes=t[1],i.p.classes=i.div.classes,i.img.classes=t[0]+","+t[2],i.figure.classes+=","+i.img.classes):(i.div.styles="text-align",i.p.styles="text-align",i.img.styles="float",i.figure.styles="float,display"),i}function u(e){var t=e.config.ae_dragresize_ie11_alignClasses,i={dimension:{requiredContent:"img[width,height]"},align:{requiredContent:"img"+(t?"("+t[0]+")":"{float}")},caption:{requiredContent:"figcaption"}};return i}function p(e){return e.data.hasCaption?e.element:e.parts.image}if(!CKEDITOR.plugins.get("ae_dragresize_ie11")){var m='',g=new CKEDITOR.template('
    '+m+"
    {captionPlaceholder}
    "),h={left:0,center:1,right:2},f=/^\s*(\d+\%)\s*$/i;CKEDITOR.plugins.add("ae_dragresize_ie11",{requires:"widget",onLoad:function(){CKEDITOR.addCss(".cke_image_nocaption{line-height:0}.cke_editable.cke_image_ne, .cke_editable.cke_image_ne *{cursor:ne-resize !important}.cke_editable.cke_image_nw, .cke_editable.cke_image_nw *{cursor:nw-resize !important}.cke_editable.cke_image_sw, .cke_editable.cke_image_sw *{cursor:sw-resize !important}.cke_editable.cke_image_se, .cke_editable.cke_image_se *{cursor:se-resize !important}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;background:#000;outline:1px solid #fff;line-height:0;cursor:se-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_image_resizer.cke_image_resizer_ne{cursor:ne-resize;left:auto;right:-5px;top:-5px;}.cke_image_resizer.cke_image_resizer_nw{cursor:nw-resize;left:-5px;right:auto;top:-5px;}.cke_image_resizer.cke_image_resizer_se{bottom:-5px;cursor:se-resize;left:auto;right:-5px;}.cke_image_resizer.cke_image_resizer_sw{bottom:-5px;cursor:sw-resize;left:-5px;right:auto;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}.cke_widget_wrapper>a{display:inline-block}")},init:function(t){var i=(t.config,e(t));t.widgets.add("image",i),t.on("selectionChange",function(e){var i=t.getSelection();if(i){var n=i.getSelectedElement();if(n){var o=n.findOne("img");if(o){var a=n.getClientRect(),r=new CKEDITOR.dom.window(window).getScrollPosition();a.left-=r.x,a.top+=r.y,a.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,t.fire("editorInteraction",{nativeEvent:{},selectionData:{element:o,region:a}})}}}})},afterInit:function(e){var t={left:1,right:1,center:1,block:1},i=l(e);for(var n in t)i(n)}}),CKEDITOR.plugins.ae_dragresize_ie11={stateShifter:function(e){function t(e,t){var i={};s?i.attributes={class:s[1]}:i.styles={"text-align":"center"};var n=r.createElement(e.activeEnterMode==CKEDITOR.ENTER_P?"p":"div",i);return a(n,t),t.move(n),n}function i(e){var t=e.findOne("a,img");return t.replace(e),t}function n(e,t){var i=r.createElement("a",{attributes:{href:t.url}});return i.replace(e),e.move(i),i}function o(e){var t=e.findOne("img");return t.replace(e),t}function a(t,i){if(i.getParent()){var n=e.createRange();n.moveToPosition(i,CKEDITOR.POSITION_BEFORE_START),i.remove(),d.insertElementIntoRange(t,n)}else t.replace(i)}var r=e.document,s=e.config.ae_dragresize_ie11_alignClasses,l=e.config.ae_dragresize_ie11_captionedClass,d=e.editable(),c=["hasCaption","align","link"],u={align:function(n,o,a){var r=n.element;n.changed.align||"auto"===r.$.style.marginLeft&&"auto"===r.$.style.marginRight?n.newData.hasCaption||(("center"==a||"auto"===r.$.style.marginLeft&&"auto"===r.$.style.marginRight)&&(n.deflate(),n.element=t(e,r)),n.changed.hasCaption||"center"!=o||"center"==a||(n.deflate(),n.element=i(r))):"center"==a&&n.changed.hasCaption&&!n.newData.hasCaption&&(n.deflate(),n.element=t(e,r)),!s&&r.is("figure")&&("center"==a?r.setStyle("display","inline-block"):r.removeStyle("display"))},hasCaption:function(t,i,n){if(t.changed.hasCaption){var o;if(o=t.element.is({img:1,a:1})?t.element:t.element.findOne("a,img"),t.deflate(),n){var s=CKEDITOR.dom.element.createFromHtml(g.output({captionedClass:l,captionPlaceholder:e.lang.ae_dragresize_ie11.captionPlaceholder}),r);a(s,t.element),o.replace(s.findOne("img")),t.element=s}else o.replace(t.element),t.element=o}},link:function t(i,a,r){if(i.changed.link){var s,l=i.element.is("img")?i.element:i.element.findOne("img"),t=i.element.is("a")?i.element:i.element.findOne("a"),d=i.element.is("a")&&!r||i.element.is("img")&&r;if(d&&i.deflate(),r){a||(s=n(l,i.newData.link));var c=CKEDITOR.plugins.ae_dragresize_ie11.getLinkAttributesGetter()(e,r);CKEDITOR.tools.isEmpty(c.set)||(s||t).setAttributes(c.set),c.removed.length&&(s||t).removeAttributes(c.removed)}else s=o(t);d&&(i.element=s)}}};return function(e){var t,i;for(e.changed={},i=0;i
    ',CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL='{url}',CKEDITOR.plugins.add("ae_embed",{requires:"widget",init:function(i){var n=new CKEDITOR.template(i.config.embedUrlTemplate||CKEDITOR.DEFAULT_AE_EMBED_URL_TPL),o=new CKEDITOR.template(i.config.embedWidgetTpl||CKEDITOR.DEFAULT_AE_EMBED_WIDGET_TPL),a=new CKEDITOR.template(i.config.embedLinkDefaultTpl||CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL),r=function(e,t){if("div"===e.name&&e.attributes["data-ae-embed-url"])return t.url=e.attributes["data-ae-embed-url"],!0};i.addCommand("embedUrl",{exec:function(e,t){e.insertHtml(o.output({url:t.url}))}}),i.widgets.add("ae_embed",{mask:!0,requiredContent:"div[data-ae-embed-url]",data:function(e){var i=this,o=e.data.url;o&&CKEDITOR.tools.jsonp(n,{url:encodeURIComponent(o)},function(e){e.html?t.test(e.html)?i.createATag(o):i.element.setHtml(e.html):i.createATag(o)},function(e){i.createATag(o)})},createATag:function(e){this.editor.execCommand("undo");var t=(this.editor.getSelection().getSelectedElement(),a.output({url:e}));this.editor.insertHtml(t),this.editor.fire("actionPerformed",this)},upcast:function(e,t){var n=i.config.embedWidgetUpcastFn||r;return n(e,t)}}),i.once("contentDom",function(){i.on("paste",function(t){var n=t.data.dataValue;e.test(n)&&(t.stop(),i.execCommand("embedUrl",{url:t.data.dataValue}))})}),i.on("selectionChange",function(e){var t=i.getSelection();if(t){var n=t.getSelectedElement();if(n){var o=n.findOne('[data-widget="ae_embed"]');if(o){var a=n.getClientRect(),r=new CKEDITOR.dom.window(window).getScrollPosition();a.left-=r.x,a.top+=r.y,a.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,i.fire("editorInteraction",{nativeEvent:{},selectionData:{element:o,region:a}})}}}}),i.filter.addElementCallback(function(e){if("data-ae-embed-url"in e.attributes)return CKEDITOR.FILTER_SKIP_TREE})}})}}(),function(){if(!CKEDITOR.plugins.get("ae_imagealignment")){var e={CENTER:"center",LEFT:"left",RIGHT:"right"},t=[e.LEFT,e.RIGHT,e.CENTER],i=[{name:"display",value:"block"},{name:"margin-left",value:"auto"},{name:"margin-right",value:"auto"}],n=function(t){var n=t.getStyle("float");if(n&&"inherit"!==n&&"none"!==n||(n=t.getAttribute("align")),!n){var o=i.every(function(e){var i=t.getStyle(e.name)===e.value;return!i&&e.vendorPrefixes&&(i=e.vendorPrefixes.some(function(i){return t.getStyle(i+e.name)===e.value})),i});if(!n){var a=t.$.parentNode;a.style.textAlign==e.CENTER&&(i.forEach(function(e){t.setStyle(e.name,e.value),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(i){t.setStyle(i+e.name,e.value)})}),o=!0,a.style.textAlign="")}n=o?e.CENTER:null}return n},o=function(t,o){if(o===e.LEFT||o===e.RIGHT)t.removeStyle("float"),o===n(t)&&t.removeAttribute("align");else if(o===e.CENTER){i.forEach(function(e){t.removeStyle(e.name),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(i){t.removeStyle(i+e.name)})});var a=t.$.parentNode;a.style.textAlign==e.CENTER&&(a.style.textAlign="")}},a=function(t,a){o(t,n(t)),a===e.LEFT||a===e.RIGHT?t.setStyle("float",a):a===e.CENTER&&i.forEach(function(e){t.setStyle(e.name,e.value),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(i){t.setStyle(i+e.name,e.value)})})};CKEDITOR.plugins.add("ae_imagealignment",{afterInit:function(e){var i=this;t.forEach(function(t){var r=e.getCommand("justify"+t);r&&(r.on("exec",function(r){var s=e.getSelectionData();if(s&&AlloyEditor.SelectionTest.image({data:{selectionData:s}})){var l=s.element,d=n(l);d===t?o(l,t):a(l,t),r.cancel(),i.refreshCommands(e,new CKEDITOR.dom.elementPath(l))}}),r.on("refresh",function(e){var i={element:e.data.path.lastElement};if(AlloyEditor.SelectionTest.image({data:{selectionData:i}})){var o=n(i.element);this.setState(o===t?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF),e.cancel()}}))})},refreshCommands:function(e,i){t.forEach(function(t){var n=e.getCommand("justify"+t);n&&n.refresh(e,i)})}})}}(),function(){CKEDITOR.plugins.get("ae_pasteimages")||CKEDITOR.plugins.add("ae_pasteimages",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"paste",this._onPaste,this,{editor:e})}.bind(this))},_onPaste:function(e){if(e.data.$.clipboardData){var t=e.data.$.clipboardData.items[0],i=e.listenerData.editor;if(0===t.type.indexOf("image")){var n=new FileReader,o=t.getAsFile();n.onload=function(e){var t=i.fire("beforeImageAdd",{imageFiles:o});if(t){var n=CKEDITOR.dom.element.createFromHtml('');i.insertElement(n);var a={el:n,file:o};i.fire("imageAdd",a)}}.bind(this),n.readAsDataURL(o)}}}})}(),function(){if(!CKEDITOR.plugins.get("ae_placeholder")){var e=CKEDITOR.env.needsBrFiller?"
    ":"",t={1:["

    "+e+"

    "],2:[""," ",e],3:["
    "+e+"
    "]};CKEDITOR.plugins.add("ae_placeholder",{init:function(e){e.on("blur",this._checkEmptyData,this),e.on("change",this._checkEmptyData,this),e.on("focus",this._removePlaceholderClass,this),e.once("contentDom",this._checkEmptyData,this)},_checkEmptyData:function(e){var i=e.editor,n=i.editable(),o=n.$.innerHTML.trim(),a=t[i.config.enterMode].some(function(e){return o===e});a?n.addClass(i.config.placeholderClass):n.removeClass(i.config.placeholderClass)},_removePlaceholderClass:function(e){var t=e.editor,i=new CKEDITOR.dom.element(t.element.$);i.removeClass(t.config.placeholderClass)}})}}(),function(){CKEDITOR.plugins.get("ae_selectionkeystrokes")||CKEDITOR.plugins.add("ae_selectionkeystrokes",{requires:"ae_selectionregion",init:function(e){e.config.selectionKeystrokes&&e.config.selectionKeystrokes.forEach(function(t){var i=new CKEDITOR.command(e,{exec:function(e){e.fire("editorInteraction",{manualSelection:t.selection,nativeEvent:{},selectionData:e.getSelectionData()})}}),n="selectionKeystroke"+t.selection;e.addCommand(n,i),e.setKeystroke(t.keys,n)})}})}(),function(){function e(e){return CKEDITOR.env.ie?e.$.clientWidth:parseInt(e.getComputedStyle("width"),10)}function t(e,t){var i=e.getComputedStyle("border-"+t+"-width"),n={thin:"0px",medium:"1px",thick:"2px"};return i.indexOf("px")<0&&(i=i in n&&"none"!=e.getComputedStyle("border-style")?n[i]:0),parseInt(i,10)}function i(e){for(var t,i,n,o=e.$.rows,a=0,r=0,s=o.length;ra&&(a=t,i=n);return i}function n(e){for(var n=[],o=-1,a="rtl"===e.getComputedStyle("direction"),r=i(e),s=new CKEDITOR.dom.element(e.$.tBodies[0]),l=s.getDocumentPosition(),d=0,c=r.cells.length;d=o.x&&t<=o.x+o.width)return o}return null}function a(e){(e.data||e).preventDefault()}function r(i,n){function o(){g.removeListener("mouseup",u),g.removeListener("mousedown",c),g.removeListener("mousemove",p)}function r(){for(var t=n.index,i=CKEDITOR.tools.buildTableMap(n.table),o=[],r=[],s=Number.MAX_VALUE,l=s,d=n.rtl,c=0,u=i.length;c',m),i.on("destroy",function(){o(),g.remove()}),m.getDocumentElement().append(g),g.setStyles({width:l(n.width),height:l(n.height),left:l(n.x),top:l(n.y)}),g.on("mousedown",c,this),m.getBody().setStyle("cursor","col-resize"),g.show();var C=this.move=function(e){var t=e-Math.round(g.$.offsetWidth/2);if(_){if(t===b||t===T)return;t=Math.max(t,b),t=Math.min(t,T),y=t-f}g.setStyle("left",l(t))},_=(this.destroy=function(){o(),m.getBody().setStyle("cursor","auto"),g.remove()},this.isResizing=function(){return h})}function s(e){var t=e.data.getTarget();if("mouseout"===e.name){if(!t.is("table"))return;for(var i=new CKEDITOR.dom.element(e.data.$.relatedTarget||e.data.$.toElement);i&&i.$&&!i.equals(t)&&!i.is("body");)i=i.getParent();if(!i||i.equals(t))return}t.getAscendant("table",1).removeCustomData("_cke_table_pillars"),e.removeListener()}if(!CKEDITOR.plugins.get("ae_tableresize")){var l=CKEDITOR.tools.cssLength;CKEDITOR.plugins.add("ae_tableresize",{requires:"ae_tabletools",init:function(e){e.on("contentDom",function(){var t,i=e.editable();i.attachListener(i.isInline()?i:e.document,"mousemove",function(i){i=i.data;var l=i.getTarget();if(l.type===CKEDITOR.NODE_ELEMENT){var d=i.getPageOffset().x;if(t){if(t.isResizing())return t.move(d),void a(i);t.destroy(),t=null}var c,u;if((l.is("table")||l.getAscendant("tbody",1))&&(c=l.getAscendant("table",1),e.editable().contains(c))){(u=c.getCustomData("_cke_table_pillars"))||(c.setCustomData("_cke_table_pillars",u=n(c)),c.on("mouseout",s),c.on("mousedown",s));var p=o(u,d);p&&(t=new r(e,p))}}})})}})}}(),function(){function e(e){function t(e){n.length>0||e.type==CKEDITOR.NODE_ELEMENT&&y.test(e.getName())&&!e.getCustomData("selected_cell")&&(CKEDITOR.dom.element.setMarker(o,e,"selected_cell",!0),n.push(e))}for(var i=e.getRanges(),n=[],o={},a=0;a1&&f&&h[v]==f[v]?(b=h[v],b.rowSpan+=1):(b=new CKEDITOR.dom.element(h[v]).clone(),b.removeAttribute("rowSpan"),b.appendBogus(),E.append(b),b=b.$),v+=b.colSpan-1}i?E.insertBefore(m):E.insertAfter(m)}function n(t){if(t instanceof CKEDITOR.dom.selection){for(var i=e(t),o=i[0],a=o.getAscendant("table"),r=CKEDITOR.tools.buildTableMap(a),s=i[0].getParent(),l=s.$.rowIndex,d=i[i.length-1],c=d.getParent().$.rowIndex+d.$.rowSpan-1,u=[],p=l;p<=c;p++){for(var m=r[p],g=new CKEDITOR.dom.element(a.$.rows[p]),h=0;h0?v[l-1]:null)||a.$.parentNode);for(p=u.length;p>=0;p--)n(u[p]);return b}return t instanceof CKEDITOR.dom.element&&(a=t.getAscendant("table"),1==a.$.rows.length?a.remove():t.remove()),null}function o(e,t){for(var i=e.getParent(),n=i.$.cells,o=0,a=0;ai)&&(i=a)}return i}function r(t,i){for(var n=e(t),o=n[0],r=o.getAscendant("table"),s=a(n,1),l=a(n),d=i?s:l,c=CKEDITOR.tools.buildTableMap(r),u=[],p=[],m=c.length,g=0;g1&&p[g]==u[g]?(f=u[g],f.colSpan+=1):(f=new CKEDITOR.dom.element(u[g]).clone(),f.removeAttribute("colSpan"),f.appendBogus(),f[i?"insertBefore":"insertAfter"].call(f,new CKEDITOR.dom.element(u[g])),f=f.$),g+=f.rowSpan-1)}}function s(t){for(var i,n,o=e(t),a=o[0],r=o[o.length-1],s=a.getAscendant("table"),l=CKEDITOR.tools.buildTableMap(s),d=[],c=0,u=l.length;c=0;r--)d(n[r]);a?u(a,!0):o&&o.remove()}else if(i instanceof CKEDITOR.dom.element){var s=i.getParent();1==s.getChildCount()?s.remove():i.remove()}}function c(e){var t=e.getBogus();t&&t.remove(),e.trim()}function u(e,t){var i=e.getDocument(),n=CKEDITOR.document;CKEDITOR.env.ie&&10==CKEDITOR.env.version&&(n.focus(),i.focus());var o=new CKEDITOR.dom.range(i);o["moveToElementEdit"+(t?"End":"Start")](e)||(o.selectNodeContents(e),o.collapse(!t)),o.select(!0)}function p(e,t,i){var n=e[t]; if("undefined"==typeof i)return n;for(var o=0;n&&o1&&(n+=o[t].rowSpan-1)}return i}function g(t,i,n){var o,a=e(t);if((i?1!=a.length:a.length<2)||(o=t.getCommonAncestor())&&o.type==CKEDITOR.NODE_ELEMENT&&o.is("table"))return!1;var r,s=a[0],l=s.getAscendant("table"),d=CKEDITOR.tools.buildTableMap(l),u=d.length,m=d[0].length,g=s.getParent().$.rowIndex,h=p(d,g,s);if(i){var f;try{var y=parseInt(s.getAttribute("rowspan"),10)||1,E=parseInt(s.getAttribute("colspan"),10)||1;f=d["up"==i?g-y:"down"==i?g+y:g]["left"==i?h-E:"right"==i?h+E:h]}catch(e){return!1}if(!f||s.$==f)return!1;a["up"==i||"left"==i?"unshift":"push"](new CKEDITOR.dom.element(f))}for(var v=s.getDocument(),b=g,T=0,C=0,_=!n&&new CKEDITOR.dom.documentFragment(v),R=0,A=0;A=m?s.removeAttribute("rowSpan"):s.$.rowSpan=T,T>=u?s.removeAttribute("colSpan"):s.$.colSpan=C;var P=new CKEDITOR.dom.nodeList(l.$.rows),N=P.count();for(A=N-1;A>=0;A--){var B=P.getItem(A);B.$.cells.length||(B.remove(),N++)}return s}function h(t,i){var n=e(t);if(n.length>1)return!1;if(i)return!0;var o,a,r,s,l=n[0],d=l.getParent(),c=d.getAscendant("table"),u=CKEDITOR.tools.buildTableMap(c),m=d.$.rowIndex,g=p(u,m,l),h=l.$.rowSpan;if(h>1){a=Math.ceil(h/2),r=Math.floor(h/2),s=m+a;var f,y=new CKEDITOR.dom.element(c.$.rows[s]),E=p(u,s);o=l.clone();for(var v=0;vg){o.insertBefore(new CKEDITOR.dom.element(f));break}f=null}f||y.append(o)}else{r=a=1,y=d.clone(),y.insertAfter(d),y.append(o=l.clone());for(var b=p(u,m),T=0;T1)return!1;if(i)return!0;var o,a,r,s=n[0],l=s.getParent(),d=l.getAscendant("table"),c=CKEDITOR.tools.buildTableMap(d),u=l.$.rowIndex,g=p(c,u,s),h=s.$.colSpan;if(h>1)a=Math.ceil(h/2),r=Math.floor(h/2);else{r=a=1;for(var f=m(c,g),y=0;y>>0),n=t(i,e);return new n}})}})}}(),function(){function e(){}function t(e,t,o){var a=AlloyEditor.Buttons[e];return n[o.name]=n[o.name]||{},n[o.name][e]=n[o.name][e]||t,a||(a=createReactClass(CKEDITOR.tools.merge(i,{displayName:e,propTypes:{editor:PropTypes.object.isRequired,tabIndex:PropTypes.number},statics:{key:e},render:function(){var t=this.props.editor.get("nativeEditor"),i=n[t.name][e].name||n[t.name][e].command||e,o="ae-button ae-button-bridge",a="ae-icon-"+i,r={},s=CKEDITOR.skin.getIconStyle(i);if(s){var l=s.split(";");r.backgroundImage=l[0].substring(l[0].indexOf(":")+1),r.backgroundPosition=l[1].substring(l[1].indexOf(":")+1),r.backgroundSize=l[2].substring(l[2].indexOf(":")+1)}var d;return this.props.expanded&&(d=this._getMenu()),React.createElement("div",{className:"ae-container ae-has-dropdown"},React.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":n[t.name][e].label,className:o,onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:n[t.name][e].label},React.createElement("span",{className:a,style:r})),d)},_getMenu:function(){return React.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getMenuItems())},_getMenuItems:function(){var e=this.props.editor.get("nativeEditor"),i=t.onMenu(),n=Object.keys(i).map(function(t){var n=e.getMenuItem(t);if(!n)return null;var o=n.definition||n,a=i[t],r="ae-toolbar-element "+(a===CKEDITOR.TRISTATE_ON?"active":""),s=a===CKEDITOR.TRISTATE_DISABLED,l=function(){o.command?e.execCommand(o.command):o.onClick&&o.onClick.apply(o)};return React.createElement("li",{key:n.name,role:"option"},React.createElement("button",{className:r,disabled:s,onClick:l},o.label))}.bind(this));return n}})),AlloyEditor.Buttons[e]=a),a}if(!CKEDITOR.plugins.get("ae_menubuttonbridge")){var i={toFeature:e},n={};CKEDITOR.plugins.get("menubutton")||(CKEDITOR.UI_MENU_BUTTON="menubutton",CKEDITOR.plugins.add("menubutton",{})),CKEDITOR.plugins.add("ae_menubuttonbridge",{requires:["ae_uibridge","ae_menubridge"],beforeInit:function(e){e.ui.addMenuButton=function(e,t){this.add(e,CKEDITOR.UI_MENUBUTTON,t)},e.ui.addHandler(CKEDITOR.UI_MENUBUTTON,{add:t,create:function(e){var i="buttonBridge"+(1e9*Math.random()>>>0),n=t(i,e);return new n}})}})}}(),function(){CKEDITOR.plugins.get("ae_menubridge")||CKEDITOR.plugins.add("ae_menubridge",{beforeInit:function(e){if(!CKEDITOR.plugins.get("menu")){for(var t=[],i=e._.menuGroups={},n=e._.menuItems={},o=0;o>>0),i=n(t,e);return new i}})}})}}(),function(){function e(){}if(!CKEDITOR.plugins.get("ae_richcombobridge")){var t={commit:e,createPanel:e,disable:e,enable:e,getState:e,hideGroup:e,hideItem:e,mark:e,showAll:e,startGroup:e,unmarkAll:e},i={},n=function(e,n,o){var a=AlloyEditor.Buttons[e];return i[o.name]=i[o.name]||{},i[o.name][e]=i[o.name][e]||n,i[o.name][e].currentValue=void 0,a||(a=createReactClass(CKEDITOR.tools.merge(t,{displayName:e,propTypes:{editor:PropTypes.object.isRequired},statics:{key:e},add:function(e,t,i){this._items.push({preview:t,title:i,value:e})},componentWillMount:function(){var t=this.props.editor.get("nativeEditor"),n=i[t.name][e];this._items=[],this.setValue=this._setValue,n.init&&n.init.call(this),n.onRender&&n.onRender.call(this)},componentWillUnmount:function(){this._cacheValue(this.state.value),this.setValue=this._cacheValue},getInitialState:function(){return{value:i[o.name][e].currentValue}},getValue:function(){return this.state.value},render:function(){var t,o=this.props.editor.get("nativeEditor"),a=i[o.name][e].currentValue||n.label;return this.props.expanded&&(t=this._getItemsList()),React.createElement("div",{className:"ae-container-dropdown ae-has-dropdown"},React.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":a,className:"ae-toolbar-element",onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:a},React.createElement("div",{className:"ae-container"},React.createElement("span",{className:"ae-container-dropdown-selected-item"},a),React.createElement("span",{className:"ae-icon-arrow"}))),t)},_cacheValue:function(t){var n=this.props.editor.get("nativeEditor");i[n.name][e].currentValue=t},_getItems:function(){var e=this,t=this._items.map(function(t){var i="ae-toolbar-element "+(t.value===this.state.value?"active":"");return React.createElement("li",{key:t.title,role:"option"},React.createElement("button",{className:i,dangerouslySetInnerHTML:{__html:t.preview},"data-value":t.value,onClick:e._onClick}))}.bind(this));return t},_getItemsList:function(){return React.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getItems())},_onClick:function(t){var n=this.props.editor.get("nativeEditor"),o=i[n.name][e];if(o.onClick){var a=t.currentTarget.getAttribute("data-value");o.onClick.call(this,a),i[n.name][e].currentValue=a,n.fire("actionPerformed",this)}},_setValue:function(e){this._cacheValue(e),this.setState({value:e})}})),AlloyEditor.Buttons[e]=a),a};CKEDITOR.plugins.get("richcombo")||(CKEDITOR.UI_RICHCOMBO="richcombo",CKEDITOR.plugins.add("richcombo",{})),CKEDITOR.plugins.add("ae_richcombobridge",{requires:["ae_uibridge"],beforeInit:function(e){e.ui.addRichCombo=function(e,t){this.add(e,CKEDITOR.UI_RICHCOMBO,t)},e.ui.addHandler(CKEDITOR.UI_RICHCOMBO,{add:n,create:function(e){var t="richComboBridge"+(1e9*Math.random()>>>0),i=n(t,e);return new i}})}})}}(),function(){CKEDITOR.plugins.get("ae_uibridge")||CKEDITOR.plugins.add("ae_uibridge",{beforeInit:function(e){var t=e.ui.add;e.ui.add=function(i,n,o){t.apply(this,arguments);var a=this._.handlers[n];a&&a.add&&(a.add(i,o,e),AlloyEditor.registerBridgeButton(i,e.__processingPlugin__.plugin.name))}}})}();var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(){var e={isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},isBoolean:function(e){return"boolean"==typeof e},isFunction:function(e){return"function"==typeof e},isNull:function(e){return null===e},isNumber:function(e){return"number"==typeof e&&isFinite(e)},isObject:function(t){var i="undefined"==typeof t?"undefined":_typeof(t);return t&&("object"===i||e.isFunction(t))},isString:function(e){return"string"==typeof e},mix:function(e,t){var i=Object.prototype.hasOwnProperty;for(var n in t)i.call(t,n)&&(e[n]=t[n])},toInt:function(e){return parseInt(e,10)}};AlloyEditor.Lang=e}(),function(){var e={extend:function(e,t,i,n){if(!t||!e)throw"extend failed, verify dependencies";var o=t.prototype,a=Object.create(o);return e.prototype=a,a.constructor=e,e.superclass=o,t!==Object&&o.constructor===Object.prototype.constructor&&(o.constructor=t),i&&AlloyEditor.Lang.mix(a,i),n&&AlloyEditor.Lang.mix(e,n),e}};AlloyEditor.OOP=e}(),function(){function e(e){this.__config__=e||{},this.__ATTRS__={}}e.prototype={constructor:e,get:function(e){var t=this.constructor.ATTRS[e];if(t){this._isInitialized(e)||this._init(e);var i=this.__ATTRS__[e];return t.getter&&(i=this._callStringOrFunction(t.getter,i)),i}},set:function(e,t){var i=this.constructor.ATTRS[e];i&&(this._isInitialized(e)||this._init(e),i.readOnly||i.writeOnce&&this._isInitialized(e)||i.validator&&!this._callStringOrFunction(i.validator,t)||(i.setter&&(t=this._callStringOrFunction(i.setter,t)),this.__ATTRS__[e]=t))},_callStringOrFunction:function(e,t){var i=null;return AlloyEditor.Lang.isArray(t)||(t=[t]),AlloyEditor.Lang.isString(e)&&AlloyEditor.Lang.isFunction(this[e])?i=this[e].apply(this,t):AlloyEditor.Lang.isFunction(e)&&(i=e.apply(this,t)),i},_init:function(e){var t,i=this.constructor.ATTRS[e],n=Object.prototype.hasOwnProperty.call(i,"value"),o=Object.prototype.hasOwnProperty.call(this.__config__,e);if(i.valueFn)t=this._callStringOrFunction(i.valueFn,t),this.__ATTRS__[e]=t;else if(i.readOnly)t=i.value;else if(i.writeOnce)if(o)t=this.__config__[e];else{if(!n)return;t=i.value}else o?t=this.__config__[e]:n&&(t=i.value);if(i.validator&&o&&!this._callStringOrFunction(i.validator,t)){if(!n)return;t=i.value}i.setter&&o&&(t=this._callStringOrFunction(i.setter,t)),this.__ATTRS__[e]=t},_isInitialized:function(e){return Object.prototype.hasOwnProperty.call(this.__ATTRS__,e)}},AlloyEditor.Attribute=e}(),function(){function e(t){e.superclass.constructor.call(this,t),this.init(t)}AlloyEditor.OOP.extend(e,AlloyEditor.Attribute,{init:function(e){this._callChain("initializer",e)},destroy:function(){this._callChain("destructor")},_callChain:function(e,t){for(var i=[],n=this.constructor;n;)AlloyEditor.Lang.isFunction(n.prototype[e])&&i.push(n.prototype[e]),n=n.superclass?n.superclass.constructor:null;i=i.reverse(),t=AlloyEditor.Lang.isArray(t)?t:[t];for(var o=0;od-n.offsetWidth&&(g[0]=d-n.offsetWidth),t.moveToPoint(m,g)},i=function(e){var i=e.selectionData?e.selectionData:e.editorEvent?e.editorEvent.data.selectionData:null;if(i&&i.element)return t(this,i.element.getClientRect()),!0},n=function(e){var i=e.editor.get("nativeEditor"),n=i.config.uiNode,o=n?n.scrollTop:0,a=new CKEDITOR.Table(i).getFromSelection(),r=a.getClientRect();return r.top+=o,t(this,r),!0};AlloyEditor.SelectionSetPosition={image:i,table:n}}(),function(){var e=function(e,t){return t.getText().length===e.endOffset||t.equals(e.startContainer)&&t.equals(e.endContainer)&&e.startOffset===e.endOffset&&1===e.endOffset},t=function(e){var t=e.data.selectionData;return!(!t.element||"ae_embed"!==t.element.getAttribute("data-widget"))},i=function(t){var i=t.editor.get("nativeEditor"),n=i.getSelection().getRanges()[0],o=t.data.selectionData,a=new CKEDITOR.Link(i).getFromSelection(),r=i.isSelectionEmpty(),s=!o.element||"img"!==o.element.getName();return!(!(r&&s&&a&&a.getText().length!==n.endOffset&&a)||a.isReadOnly()||e(n,a))},n=function(e){var t=e.data.selectionData,i=!1;if(e.editor){var n=e.editor._getNativeEditor();i=n.isSelectionEmpty()}var o=function(e){return"image"===e.getAttribute("data-widget")||e.getAscendant(function(e){return"image"===e.getAttribute("data-widget")})};return!(!t.element||"img"!==t.element.getName()||i||t.element.isReadOnly()&&!o(t.element))},o=function(e){var t=e.editor.get("nativeEditor"),i=t.isSelectionEmpty(),n=e.data.selectionData;return!(n.element||!n.region||i||t.getSelection().getCommonAncestor().isReadOnly())},a=function(e){var t=e.editor.get("nativeEditor"),i=new CKEDITOR.Table(t),n=i.getFromSelection();return!(!n||!i.isEditable(n))};AlloyEditor.SelectionTest={embed:t,image:n,link:i,table:a,text:o}}(),function(){var e=[{name:"embed",buttons:["embedRemove","embedEdit"],test:AlloyEditor.SelectionTest.embed},{name:"link",buttons:["linkEdit"],test:AlloyEditor.SelectionTest.link},{name:"image",buttons:["imageLeft","imageCenter","imageRight"],setPosition:AlloyEditor.SelectionSetPosition.image,test:AlloyEditor.SelectionTest.image},{name:"text",buttons:{full:[["Font","FontSize","separator","bold","italic","underline","strike","separator","link"],["paragraphAlign","separator","ul","ol","separator","h1","h2","separator","indentBlock","outdentBlock","separator","TextColor","BGColor","separator","code","quote","separator","removeFormat"]],simple:["styles","bold","italic","underline","link"]},test:AlloyEditor.SelectionTest.text},{name:"table",buttons:["tableHeading","tableRow","tableColumn","tableCell","tableRemove"],getArrowBoxClasses:AlloyEditor.SelectionGetArrowBoxClasses.table,setPosition:AlloyEditor.SelectionSetPosition.table,test:AlloyEditor.SelectionTest.table}];AlloyEditor.Selections=e}(),function(){function e(t){e.superclass.constructor.call(this,t)}AlloyEditor.OOP.extend(e,AlloyEditor.Base,{initializer:function(e){var t=this.get("srcNode");this.get("enableContentEditable")&&t.setAttribute("contenteditable","true");var i=CKEDITOR.inline(t);if(i.config.allowedContent=this.get("allowedContent"),i.config.toolbars=this.get("toolbars"),i.config.removePlugins=this.get("removePlugins"),i.config.extraPlugins=this.get("extraPlugins"),i.config.placeholderClass=this.get("placeholderClass"),i.config.pasteFromWordRemoveStyles=!1,i.config.pasteFromWordRemoveFontStyles=!1,i.config.selectionKeystrokes=this.get("selectionKeystrokes"),AlloyEditor.Lang.mix(i.config,e),CKEDITOR.env.ie&&!CKEDITOR.env.edge){var n=11===CKEDITOR.env.version?"ae_dragresize_ie11":"ae_dragresize_ie";i.config.extraPlugins=i.config.extraPlugins.replace("ae_dragresize",n),i.config.removePlugins=i.config.removePlugins.replace("ae_dragresize",n)}i.once("contentDom",function(){this._addReadOnlyLinkClickListener(i);var e=i.editable();e.addClass("ae-editable")}.bind(this)),this._editor=i,AlloyEditor.loadLanguageResources(this._renderUI.bind(this))},destructor:function(){this._destroyed=!0,this._editorUIElement&&(ReactDOM.unmountComponentAtNode(this._editorUIElement),this._editorUIElement.parentNode.removeChild(this._editorUIElement));var e=this.get("nativeEditor");if(e){var t=e.editable();t&&(t.removeClass("ae-editable"),this.get("enableContentEditable")&&this.get("srcNode").setAttribute("contenteditable","false")),this._clearSelections(),e.destroy()}},_clearSelections:function(){var e=this.get("nativeEditor"),t="function"!=typeof window.getSelection;t?e.document.$.selection.empty():e.document.getWindow().$.getSelection().removeAllRanges()},_addReadOnlyLinkClickListener:function(e){e.editable().on("click",this._defaultReadOnlyClickFn,this,{editor:e})},_defaultReadOnlyClickFn:function(e){var t=e.data.$,i=t.ctrlKey||t.metaKey,n=this._editor.config.readOnly||i;if(t.preventDefault(),n&&e.listenerData.editor.editable().editor.fire("readOnlyClick",e.data)!==!1){var o=new CKEDITOR.dom.elementPath(e.data.getTarget(),this),a=o.lastElement;if(a){var r=a.$.attributes.href?a.$.attributes.href.value:null,s=i?"_blank":a.$.attributes.target?a.$.attributes.target.value:null;this._redirectLink(r,s)}}},_getNativeEditor:function(){return this._editor},_redirectLink:function(e,t){t&&e?window.open(e,t):e&&(window.location.href=e)},_renderUI:function(){if(!this._destroyed){var e=document.createElement("div");e.className="ae-ui";var t=this.get("uiNode")||document.body;t.appendChild(e),this._mainUI=ReactDOM.render(React.createElement(AlloyEditor.UI,{editor:this,eventsDelay:this.get("eventsDelay"),toolbars:this.get("toolbars")}),e),this._editorUIElement=e,this.get("nativeEditor").fire("uiReady")}},_toElement:function(e){return AlloyEditor.Lang.isString(e)&&(e=document.getElementById(e)),e},_validateAllowedContent:function(e){return AlloyEditor.Lang.isString(e)||AlloyEditor.Lang.isObject(e)||AlloyEditor.Lang.isBoolean(e)},_validateToolbars:function(e){return AlloyEditor.Lang.isObject(e)||AlloyEditor.Lang.isNull(e)}},{ATTRS:{allowedContent:{validator:"_validateAllowedContent",value:!0,writeOnce:!0},enableContentEditable:{validator:AlloyEditor.Lang.isBoolean,value:!0,writeOnce:!0},eventsDelay:{validator:AlloyEditor.Lang.isNumber,value:100},extraPlugins:{validator:AlloyEditor.Lang.isString,value:"ae_uicore,ae_selectionregion,ae_selectionkeystrokes,ae_imagealignment,ae_addimages,ae_placeholder,ae_tabletools,ae_tableresize,ae_autolink,ae_embed,ae_autolist,ae_dragresize,ae_uibridge,ae_richcombobridge,ae_panelmenubuttonbridge,ae_menubridge,ae_menubuttonbridge,ae_buttonbridge,font,colorbutton",writeOnce:!0},mode:{validator:AlloyEditor.Lang.isString,value:"simple"},nativeEditor:{getter:"_getNativeEditor",readOnly:!0},placeholderClass:{validator:AlloyEditor.Lang.isString,value:"ae-placeholder",writeOnce:!0},removePlugins:{validator:AlloyEditor.Lang.isString,value:"contextmenu,toolbar,elementspath,resize,liststyle,link",writeOnce:!0},selectionKeystrokes:{validator:AlloyEditor.Lang.isArray,value:[{keys:CKEDITOR.CTRL+76,selection:"link"},{keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76,selection:"embed"}]},srcNode:{setter:"_toElement",writeOnce:!0},toolbars:{validator:"_validateToolbars",value:{add:{buttons:["image","embed","camera","hline","table"],tabIndex:2},styles:{selections:AlloyEditor.Selections,tabIndex:1}}},uiNode:{setter:"_toElement",writeOnce:!0}}}),CKEDITOR.event.implementOn(e),AlloyEditor.Core=e}(),function(){var e={applyStyle:function(){if(AlloyEditor.Lang.isFunction(this.isActive)&&AlloyEditor.Lang.isFunction(this.getStyle)){var e=this.props.editor.get("nativeEditor");e.getSelection().lock(),this.isActive()?e.removeStyle(this.getStyle()):e.applyStyle(this.getStyle()),e.getSelection().unlock(),e.fire("actionPerformed",this)}}};AlloyEditor.ButtonActionStyle=e}(),function(){var e={isActive:function(){var e=this.props.editor.get("nativeEditor"),t=e.getCommand(this.props.command);return!!t&&t.state===CKEDITOR.TRISTATE_ON}};AlloyEditor.ButtonCommandActive=e}(),function(){var e={propTypes:{command:PropTypes.string.isRequired,modifiesSelection:PropTypes.bool},execCommand:function(e){var t=this.props.editor.get("nativeEditor");t.execCommand(this.props.command,e),this.props.modifiesSelection&&t.selectionChange(!0),t.fire("actionPerformed",this)}};AlloyEditor.ButtonCommand=e}(),function(){var e={propTypes:{keystroke:PropTypes.object.isRequired},componentWillMount:function(){var e=this.props.editor.get("nativeEditor"),t=this.props.keystroke,i=t.name||(1e9*Math.random()>>>0).toString(),n=e.getCommand(i);n||(n=new CKEDITOR.command(e,{exec:function(e){var i=t.fn;AlloyEditor.Lang.isString(i)?this[i].call(this,e):AlloyEditor.Lang.isFunction(i)&&i.call(this,e)}.bind(this)}),e.addCommand(i,n)),this._defaultKeystrokeCommand=e.keystrokeHandler.keystrokes[t.keys],e.setKeystroke(t.keys,i)},componentWillUnmount:function(){this.props.editor.get("nativeEditor").setKeystroke(this.props.keystroke.keys,this._defaultKeystrokeCommand)}};AlloyEditor.ButtonKeystroke=e}(),function(){var e={propTypes:{editor:PropTypes.object.isRequired},mergeButtonCfgProps:function(e){e=e||this.props;var t=this.props.editor.get("nativeEditor"),i=t.config.buttonCfg||{},n=CKEDITOR.tools.merge(e,i[AlloyEditor.ButtonLinkEdit.key]);return n}};AlloyEditor.ButtonCfgProps=e}(),function(){var e={getStateClasses:function(){var e="";return AlloyEditor.Lang.isFunction(this.isActive)&&this.isActive()&&(e+="ae-button-pressed"),AlloyEditor.Lang.isFunction(this.isDisabled)&&this.isDisabled()&&(e+=" ae-button-disabled"),e}};AlloyEditor.ButtonStateClasses=e}(),function(){var e={propTypes:{style:PropTypes.oneOfType([PropTypes.object,PropTypes.string]),styleFn:PropTypes.func},componentWillMount:function(){var e=AlloyEditor.Lang,t=this.props.style;if(e.isString(t)){for(var i=t.split("."),n=this.props.editor.get("nativeEditor").config,o=i.shift();o&&e.isObject(n)&&e.isObject(n[o]);)n=n[o],o=i.shift();e.isObject(n)&&(t=n)}this._style=new CKEDITOR.style(t)},componentWillUnmount:function(){this._style=null},getStyle:function(){return this._style},isActive:function(){var e,t=this.props.editor.get("nativeEditor"),i=t.elementPath();return e=this.getStyle().checkActive(i,t)}};AlloyEditor.ButtonStyle=e}(),function(){var e={getToolbarButtonGroups:function(e,t){var i=this;return AlloyEditor.Lang.isFunction(e)&&(e=e.call(this)||[]),e.reduce(function(n,o){return Array.isArray(o)?(n.push(i.getToolbarButtons(o,t)),n):i.getToolbarButtons(e,t)},[])},getToolbarButtons:function(e,t){var i={},n=this.props.editor.get("nativeEditor"),o=n.config.buttonCfg||{};AlloyEditor.Lang.isFunction(e)&&(e=e.call(this)||[]);var a=this.filterExclusive(e.filter(function(e){return e&&(AlloyEditor.Buttons[e]||AlloyEditor.Buttons[e.name])}).map(function(e){return AlloyEditor.Lang.isString(e)?(i[e]=o[e],e=AlloyEditor.Buttons[e]):AlloyEditor.Lang.isString(e.name)&&(i[AlloyEditor.Buttons[e.name].key]=CKEDITOR.tools.merge(o[e],e.cfg),e=AlloyEditor.Buttons[e.name]),e})).map(function(e,n){var o=this.mergeExclusiveProps({editor:this.props.editor,key:"separator"!==e.key?e.key:e.key+"-"+n,tabKey:e.key,tabIndex:this.props.trigger&&this.props.trigger.props.tabKey===e.key?0:-1,trigger:this.props.trigger},e.key);return o=this.mergeDropdownProps(o,e.key),t&&(o=CKEDITOR.tools.merge(o,t)),o=CKEDITOR.tools.merge(o,i[e.key]),React.createElement(e,o)},this);return a}};AlloyEditor.ToolbarButtons=e}(),function(){var e={getArrowBoxClasses:function(){var e="ae-arrow-box";return AlloyEditor.Lang.isFunction(this.getInteractionPoint)&&this.getInteractionPoint()&&(e+=this.getInteractionPoint().direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?" ae-arrow-box-top":" ae-arrow-box-bottom"),e}};AlloyEditor.WidgetArrowBox=e}(),function(){var e={componentWillReceiveProps:function(e){this.setState({dropdownTrigger:null,itemDropdown:null})},getInitialState:function(){return{dropdownTrigger:null,itemDropdown:null}},mergeDropdownProps:function(e,t){return CKEDITOR.tools.merge(e,{expanded:this.state.itemDropdown===t,tabIndex:this.state.dropdownTrigger===t?0:-1,toggleDropdown:this.toggleDropdown.bind(this,t)})},toggleDropdown:function(e,t){this.setState({dropdownTrigger:e,itemDropdown:e!==this.state.itemDropdown?e:null},function(){this.state.itemDropdown||(this.moveFocus?this.moveFocus(t):ReactDOM.findDOMNode(this).focus())})}};AlloyEditor.WidgetDropdown=e}(),function(){var e={cancelExclusive:function(e){this.state.itemExclusive===e&&this.setState({itemExclusive:null})},componentWillReceiveProps:function(e){this.setState({itemExclusive:null})},filterExclusive:function(e){return e.filter(function(e){return this.state.itemExclusive?this.state.itemExclusive===e.key?e:void 0:e}.bind(this))},mergeExclusiveProps:function(e,t){return CKEDITOR.tools.merge(e,{cancelExclusive:this.cancelExclusive.bind(this,t),renderExclusive:this.state.itemExclusive===t,requestExclusive:this.requestExclusive.bind(this,t)})},requestExclusive:function(e){this.setState({itemExclusive:e})}};AlloyEditor.WidgetExclusive=e}(),function(){var e=0,t=1,i=-1,n=0,o=1,a=2,r={propTypes:{onDismiss:PropTypes.func,circular:PropTypes.bool.isRequired,focusFirstChild:PropTypes.bool,descendants:PropTypes.string.isRequired,keys:PropTypes.object.isRequired},componentDidMount:function(){this._refresh()},componentDidUpdate:function(){this._refresh()},focus:function(e){if((!e||this._isValidTarget(e.target))&&this._descendants&&this._descendants.length){var t=this._descendants[this._activeDescendant];document.activeElement===t||this.props.focusFirstChild||this._descendants.indexOf(document.activeElement)===-1&&t.focus(),e&&(e.stopPropagation(),e.preventDefault())}},handleKey:function(e){if(this._isValidTarget(e.target)&&this._descendants){ -var t=this._getFocusAction(e);t.type&&(e.stopPropagation(),e.preventDefault(),t.type===o&&this._moveFocus(t.direction),t.type===a&&this.props.onDismiss(t.direction))}},moveFocus:function(e){e=AlloyEditor.Lang.isNumber(e)?e:0,this._moveFocus(e)},_getFocusAction:function(e){var t={type:n};if(this.props.keys){var i=this._getFocusMoveDirection(e);i&&(t.direction=i,t.type=o);var r=this._getFocusDismissAction(e,i);r.dismiss&&(t.direction=r.direction,t.type=a)}return t},_getFocusDismissAction:function(e,n){var o={direction:n,dismiss:!1};return this.props.onDismiss&&(this._isValidKey(e.keyCode,this.props.keys.dismiss)&&(o.dismiss=!0),this._isValidKey(e.keyCode,this.props.keys.dismissNext)&&(o.dismiss=!0,o.direction=t),this._isValidKey(e.keyCode,this.props.keys.dismissPrev)&&(o.dismiss=!0,o.direction=i),o.dismiss||this.props.circular||!n||(o.dismiss=n===i&&0===this._activeDescendant||n===t&&this._activeDescendant===this._descendants.length-1)),o},_getFocusMoveDirection:function(n){var o=e;return this._isValidKey(n.keyCode,this.props.keys.next)&&(o=t),this._isValidKey(n.keyCode,this.props.keys.prev)&&(o=i),n.shifKey&&(o*=-1),o},_isValidKey:function(e,t){return AlloyEditor.Lang.isArray(t)?t.indexOf(e)!==-1:e===t},_isValidTarget:function(e){var t=e.tagName.toLowerCase();return"input"!==t&&"select"!==t&&"textarea"!==t},_moveFocus:function(e){var t=this._descendants.length,i=this._descendants[this._activeDescendant];i.setAttribute("tabIndex",-1),this._activeDescendant+=e,this.props.circular?this._activeDescendant=(this._activeDescendant%t+t)%t:this._activeDescendant=Math.max(Math.min(this._activeDescendant,t-1),0),i=this._descendants[this._activeDescendant],i.setAttribute("tabIndex",0),i.focus()},_refresh:function(){var e=ReactDOM.findDOMNode(this);if(e){var t=e.querySelectorAll(this.props.descendants),i=[];this._descendants=[],Array.prototype.slice.call(t).forEach(function(e){var t=e.getAttribute("data-tabindex");t?i.push(e):this._descendants.push(e)}.bind(this)),i=i.sort(function(e,t){return AlloyEditor.Lang.toInt(e.getAttribute("data-tabindex"))>AlloyEditor.Lang.toInt(t.getAttribute("data-tabindex"))}),this._descendants=i.concat(this._descendants),this._activeDescendant=0,this._descendants.some(function(e,t){if("0"===e.getAttribute("tabindex"))return this._activeDescendant=t,this.focus(),!0}.bind(this))}}};AlloyEditor.WidgetFocusManager=r}(),function(){var e={propTypes:{editorEvent:PropTypes.object},getInteractionPoint:function(){var e=this.props.editorEvent?this.props.editorEvent.data:null;if(e){var t=e.selectionData,i=e.nativeEvent,n={x:e.nativeEvent.pageX,y:t.region.top},o=t.region.direction,a=t.region.endRect,r=t.region.startRect;a&&r&&r.top===a.top&&(o=CKEDITOR.SELECTION_BOTTOM_TO_TOP);var s,l;return n.x&&n.y?(s=this._getXPoint(t,n.x),l=o===CKEDITOR.SELECTION_BOTTOM_TO_TOP?Math.min(n.y,t.region.top):Math.max(n.y,this._getYPoint(t,i))):(s=t.region.left+t.region.width/2,l=o===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this._getYPoint(t,i):t.region.top),{direction:o,x:s,y:l}}},_getXPoint:function(e,t){var i,n=e.region,o=n.startRect?n.startRect.left:n.left,a=n.endRect?n.endRect.right:n.right;if(ot)i=t;else{var r=Math.abs(o-t),s=Math.abs(a-t);i=rt.width&&(i-=e.left+e.width-t.width),n<0&&(n=0),{x:i,y:n}},getWidgetXYPoint:function(e,t,i){var n=ReactDOM.findDOMNode(this),o=this.props.gutter,a=n.offsetWidth,r=a/2;return i===CKEDITOR.SELECTION_TOP_TO_BOTTOM||i===CKEDITOR.SELECTION_BOTTOM_TO_TOP?(e=e-o.left-r,t=i===CKEDITOR.SELECTION_TOP_TO_BOTTOM?t+o.top:t-n.offsetHeight-o.top):i!==CKEDITOR.SELECTION_LEFT_TO_RIGHT&&i!==CKEDITOR.SELECTION_RIGHT_TO_LEFT||(e=i===CKEDITOR.SELECTION_LEFT_TO_RIGHT?e+o.left+n.offsetHeight/2:e-3*n.offsetHeight/2-o.left,t=t-o.top-n.offsetHeight/2),e<0&&(e=0),e>document.body.offsetWidth-r&&(e=document.body.offsetWidth-r),t<0&&(t=0),[e,t]},isVisible:function(){var e=ReactDOM.findDOMNode(this);if(e){var t=new CKEDITOR.dom.element(e);return t.hasClass("alloy-editor-visible")}return!1},moveToPoint:function(e,t){var i=new CKEDITOR.dom.element(ReactDOM.findDOMNode(this));i.setStyles({left:e[0]+"px",top:e[1]+"px",opacity:0}),i.removeClass("alloy-editor-invisible"),this._animate(function(){i.addClass("ae-toolbar-transition"),i.addClass("alloy-editor-visible"),i.setStyles({left:t[0]+"px",top:t[1]+"px",opacity:1})})},show:function(){var e=ReactDOM.findDOMNode(this),t=this.props.editor.get("uiNode"),i=t?t.scrollTop:0;if(!this.isVisible()&&e){var n=this.getInteractionPoint();if(n){var o,a,r,s,l=new CKEDITOR.dom.element(e);if(o=r=parseFloat(l.getStyle("left")),a=s=parseFloat(l.getStyle("top")),this.props.constrainToViewport){var d=this.getConstrainedPosition({height:parseFloat(e.offsetHeight),left:o,top:a,width:parseFloat(e.offsetWidth)});o=d.x,a=d.y}s=n.direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this.props.selectionData.region.bottom+i:this.props.selectionData.region.top+i,this.moveToPoint([r,s],[o,a])}}},updatePosition:function(){var e=this.getInteractionPoint(),t=ReactDOM.findDOMNode(this);if(e&&t){var i=this.props.editor.get("uiNode")||document.body,n=getComputedStyle(i),o=parseInt(n.getPropertyValue("margin-left"),10),a=parseInt(n.getPropertyValue("margin-right"),10),r=o+i.clientWidth+a,s="BODY"!==i.tagName?i.scrollTop:0,l=this.getWidgetXYPoint(e.x,e.y,e.direction);l[1]+=s,l[0]<0&&(l[0]=0),l[0]>r-t.offsetWidth&&(l[0]=r-t.offsetWidth),new CKEDITOR.dom.element(t).setStyles({left:l[0]+"px",top:l[1]+"px"})}},_animate:function(e){window.requestAnimationFrame?this._animationFrameId=window.requestAnimationFrame(e):e()}};AlloyEditor.WidgetPosition=e}(),function(){var e=createReactClass({displayName:"ButtonBold",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"bold"},getDefaultProps:function(){return{command:"bold",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+66},style:"coreStyles_bold"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.bold,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-bold",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.bold},React.createElement("span",{className:"ae-icon-bold"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonBold=e}(),function(){var e=createReactClass({displayName:"ButtonCameraImage",statics:{key:"cameraImage"},getDefaultProps:function(){return{videoWidth:320}},componentDidMount:function(){ReactDOM.findDOMNode(this.refs.buttonTakePhoto).focus()},componentWillUnmount:function(){this._stream&&(this._stream.stop?this._stream.stop():this._stream.getVideoTracks&&this._stream.getVideoTracks().forEach(function(e){e.stop()}),this._stream=null)},render:function(){var e=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return e.call(navigator,{video:!0,audio:!1},this._handleStreamSuccess,this._handleStreamError),React.createElement("div",{className:"ae-camera"},React.createElement("video",{ref:"videoContainer"},"Video stream not available."),React.createElement("button",{className:"ae-camera-shoot",onClick:this.takePhoto,ref:"buttonTakePhoto"},"Take photo"),React.createElement("canvas",{className:"ae-camera-canvas",ref:"canvasContainer"}))},takePhoto:function(){var e=ReactDOM.findDOMNode(this.refs.videoContainer),t=ReactDOM.findDOMNode(this.refs.canvasContainer),i=t.getContext("2d"),n=this._videoHeight,o=this.props.videoWidth;if(o&&n){t.width=o,t.height=n,i.drawImage(e,0,0,o,n);var a=t.toDataURL("image/png"),r=CKEDITOR.dom.element.createFromHtml(''),s=this.props.editor.get("nativeEditor");s.insertElement(r),this.props.cancelExclusive(),s.fire("actionPerformed",this),s.fire("imageCameraAdd",r)}},_handleStreamError:function(e){window.alert("An error occurred! "+e)},_handleStreamSuccess:function(e){var t=ReactDOM.findDOMNode(this.refs.videoContainer),i=ReactDOM.findDOMNode(this.refs.canvasContainer);t.addEventListener("canplay",function(e){var n=t.videoHeight/(t.videoWidth/this.props.videoWidth);isNaN(n)&&(n=this.props.videoWidth/(4/3)),t.setAttribute("width",this.props.videoWidth),t.setAttribute("height",n),i.setAttribute("width",this.props.videoWidth),i.setAttribute("height",n),this._videoHeight=n}.bind(this),!1),this._stream=e,navigator.mozGetUserMedia?t.mozSrcObject=e:t.src=(window.URL||window.webkitURL).createObjectURL(e),t.play(),ReactDOM.findDOMNode(this.refs.buttonTakePhoto).disabled=!1}});AlloyEditor.ButtonCameraImage=e}(),function(){var e=createReactClass({displayName:"ButtonCamera",propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"camera"},render:function(){if(this.props.renderExclusive)return React.createElement(AlloyEditor.ButtonCameraImage,this.props);var t=!(navigator.getUserMedia||navigator.webkitGetUserMedia&&"https"===location.protocol||navigator.mozGetUserMedia||navigator.msGetUserMedia),i=t?AlloyEditor.Strings.cameraDisabled:AlloyEditor.Strings.camera;return React.createElement("button",{"aria-label":i,className:"ae-button","data-type":"button-image-camera",disabled:t,onClick:this.props.requestExclusive.bind(e.key),tabIndex:this.props.tabIndex,title:i},React.createElement("span",{className:"ae-icon-camera"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCamera=e}(),function(){var e=createReactClass({displayName:"ButtonCode",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"code"},getDefaultProps:function(){return{style:{element:"pre"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.code,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-code",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.code},React.createElement("span",{className:"ae-icon-code"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCode=e}(),function(){var e=createReactClass({displayName:"ButtonCommandListItem",mixins:[AlloyEditor.ButtonCommand],propTypes:{description:PropTypes.string.isRequired,icon:PropTypes.string},statics:{key:"buttonCommandListItem"},render:function(){var e="ae-icon-"+this.props.icon;return React.createElement("button",{"aria-label":this.props.description,className:this._getClassName(),onClick:this.execCommand,tabIndex:this.props.tabIndex},this.props.icon&&React.createElement("span",{className:e}),this.props.description)},_getClassName:function(){var e="ae-container ae-toolbar-element";return e}});AlloyEditor.ButtonCommandListItem=e}(),function(){var e=createReactClass({displayName:"ButtonCommandsList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{commands:PropTypes.arrayOf(PropTypes.object),editor:PropTypes.object.isRequired,listId:PropTypes.string},statics:{key:"buttonCommandsList"},componentDidMount:function(){ReactDOM.findDOMNode(this).focus()},getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",id:this.props.listId,role:"listbox"},this._renderActions(this.props.commands)))},_renderActions:function(e){var t,i=this.props.editor;return e&&e.length&&(t=e.map(function(e){return React.createElement("li",{key:e.command,role:"option"},React.createElement(AlloyEditor.ButtonCommandListItem,{command:e.command,description:"string"==typeof e.label?e.label:e.label(),icon:e.icon,editor:i}))})),t}});AlloyEditor.ButtonCommandsList=e}(),function(){var e=createReactClass({displayName:"ButtonDropdown",mixins:[AlloyEditor.WidgetFocusManager],getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},statics:{key:"dropdown"},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",role:"listbox"},this.props.children))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonDropdown=e}(),function(){var e=13,t=27,i=createReactClass({displayName:"ButtonEmbedEdit",propTypes:{editor:PropTypes.object.isRequired},statics:{key:"embedEdit"},componentDidMount:function(){(this.props.renderExclusive||this.props.manualSelection)&&(window.requestAnimationFrame?window.requestAnimationFrame(this._focusLinkInput):setTimeout(this._focusLinkInput,0))},componentWillReceiveProps:function(e){this.replaceState(this.getInitialState())},getInitialState:function(){var e,t=this.props.editor.get("nativeEditor"),i=t.getSelection();if(i){var n=i.getSelectedElement();n&&(e=n.findOne('[data-widget="ae_embed"]'))}var o=e?e.getAttribute("data-ae-embed-url"):"";return{element:e,initialLink:{href:o},linkHref:o}},render:function(){var e={opacity:this.state.linkHref?1:0};return React.createElement("div",{className:"ae-container-edit-link"},React.createElement("button",{"aria-label":AlloyEditor.Strings.deleteEmbed,className:"ae-button","data-type":"button-embed-remove",disabled:!this.state.element,onClick:this._removeEmbed,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.deleteEmbed},React.createElement("span",{className:"ae-icon-bin"})),React.createElement("div",{className:"ae-container-input xxl"},React.createElement("input",{className:"ae-input",onChange:this._handleLinkHrefChange,onKeyDown:this._handleKeyDown,placeholder:AlloyEditor.Strings.editLink,ref:"linkInput",type:"text",value:this.state.linkHref}),React.createElement("button",{"aria-label":AlloyEditor.Strings.clearInput,className:"ae-button ae-icon-remove",onClick:this._clearLink,style:e,title:AlloyEditor.Strings.clear})),React.createElement("button",{"aria-label":AlloyEditor.Strings.confirm,className:"ae-button",disabled:!this._isValidState(),onClick:this._embedLink,title:AlloyEditor.Strings.confirm},React.createElement("span",{className:"ae-icon-ok"})))},_clearLink:function(){this.setState({linkHref:""})},_embedLink:function(){var e=this.props.editor.get("nativeEditor");e.execCommand("embedUrl",{url:this.state.linkHref}),this.props.cancelExclusive()},_focusLinkInput:function(){ReactDOM.findDOMNode(this.refs.linkInput).focus()},_handleKeyDown:function(i){if(i.keyCode!==e&&i.keyCode!==t||i.preventDefault(),i.keyCode===e)this._embedLink();else if(i.keyCode===t){var n=this.props.editor.get("nativeEditor");this.props.cancelExclusive(),n.fire("actionPerformed",this)}},_handleLinkHrefChange:function(e){this.setState({linkHref:e.target.value})},_isValidState:function(){var e=this.state.linkHref&&this.state.linkHref!==this.state.initialLink.href;return e},_removeEmbed:function(){var e=this.props.editor.get("nativeEditor"),t=this.state.element.getAscendant(function(e){return e.hasClass("cke_widget_wrapper")});t.remove(),e.fire("actionPerformed",this)}});AlloyEditor.Buttons[i.key]=AlloyEditor.ButtonEmbedEdit=i}(),function(){var e=createReactClass({displayName:"ButtonEmbed",mixins:[AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"embed"},getDefaultProps:function(){return{keystroke:{fn:"_requestExclusive",keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76}}},render:function(){return this.props.renderExclusive?React.createElement(AlloyEditor.ButtonEmbedEdit,this.props):React.createElement("button",{"aria-label":AlloyEditor.Strings.link,className:"ae-button","data-type":"button-embed",onClick:this._requestExclusive,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.link},React.createElement("span",{className:"ae-icon-add"}))},_requestExclusive:function(){this.props.requestExclusive(e.key)}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonEmbed=e}(),function(){var e=createReactClass({displayName:"ButtonH1",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"h1"},getDefaultProps:function(){return{style:{element:"h1"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h1,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h1",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h1},React.createElement("span",{className:"ae-icon-h1"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH1=e}(),function(){var e=createReactClass({displayName:"ButtonH2",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"h2"},getDefaultProps:function(){return{style:{element:"h2"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h2,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h2",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h2},React.createElement("span",{className:"ae-icon-h2"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH2=e}(),function(){var e=createReactClass({displayName:"ButtonHline",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonCommand],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"hline"},getDefaultProps:function(){return{command:"horizontalrule",style:{element:"hr"}}},render:function(){return React.createElement("button",{"aria-label":AlloyEditor.Strings.horizontalrule,className:"ae-button","data-type":"button-hline",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.horizontalrule},React.createElement("span",{className:"ae-icon-separator"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonHline=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignCenter",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageCenter"},getDefaultProps:function(){return{command:"justifycenter"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignCenter,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-center",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignCenter},React.createElement("span",{className:"ae-icon-align-center"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignCenter=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignLeft",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageLeft"},getDefaultProps:function(){return{command:"justifyleft"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignLeft,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-left",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignLeft},React.createElement("span",{className:"ae-icon-align-left"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignLeft=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignRight",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageRight"},getDefaultProps:function(){return{command:"justifyright"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignRight,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-right",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignRight},React.createElement("span",{className:"ae-icon-align-right"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignRight=e}(),function(){var e=createReactClass({displayName:"ButtonImage",propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"image"},render:function(){var e={display:"none"};return React.createElement("div",null,React.createElement("button",{"aria-label":AlloyEditor.Strings.image,className:"ae-button","data-type":"button-image",onClick:this.handleClick,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.image},React.createElement("span",{className:"ae-icon-image"})),React.createElement("input",{accept:"image/*",onChange:this._onInputChange,ref:"fileInput",style:e,type:"file"}))},handleClick:function(e){ReactDOM.findDOMNode(this.refs.fileInput).click()},_onInputChange:function(){var e=ReactDOM.findDOMNode(this.refs.fileInput);if(e.files.length){var t=new FileReader,i=e.files[0];t.onload=function(e){var t=this.props.editor.get("nativeEditor"),n=t.fire("beforeImageAdd",{imageFiles:i});if(n){var o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o),t.fire("actionPerformed",this);var a={el:o,file:i};t.fire("imageAdd",a)}}.bind(this),t.readAsDataURL(i),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=createReactClass({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},React.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=createReactClass({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},React.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=createReactClass({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:PropTypes.func,autocompleteSelected:PropTypes.bool,term:PropTypes.string,setAutocompleteState:PropTypes.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?React.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var t=this.props.handleLinkAutocompleteClick;return e.map(function(e){var i=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return React.createElement("li",{key:e.url,role:"option"},React.createElement("button",{className:i,onClick:t,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var _extends=Object.assign||function(e){for(var t=1;tAlloyEditor.Lang.toInt(t.getAttribute("data-tabindex"))}),this._descendants=i.concat(this._descendants),this._activeDescendant=0,this._descendants.some(function(e,t){if("0"===e.getAttribute("tabindex"))return this._activeDescendant=t,this.focus(),!0}.bind(this))}}};AlloyEditor.WidgetFocusManager=r}(),function(){var e={propTypes:{editorEvent:PropTypes.object},getInteractionPoint:function(){var e=this.props.editorEvent?this.props.editorEvent.data:null;if(e){var t=e.selectionData,i=e.nativeEvent,n={x:e.nativeEvent.pageX,y:t.region.top},o=t.region.direction,a=t.region.endRect,r=t.region.startRect;a&&r&&r.top===a.top&&(o=CKEDITOR.SELECTION_BOTTOM_TO_TOP);var s,l;return n.x&&n.y?(s=this._getXPoint(t,n.x),l=o===CKEDITOR.SELECTION_BOTTOM_TO_TOP?Math.min(n.y,t.region.top):Math.max(n.y,this._getYPoint(t,i))):(s=t.region.left+t.region.width/2,l=o===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this._getYPoint(t,i):t.region.top),{direction:o,x:s,y:l}}},_getXPoint:function(e,t){var i,n=e.region,o=n.startRect?n.startRect.left:n.left,a=n.endRect?n.endRect.right:n.right;if(ot)i=t;else{var r=Math.abs(o-t),s=Math.abs(a-t);i=rt.width&&(i-=e.left+e.width-t.width),n<0&&(n=0),{x:i,y:n}},getWidgetXYPoint:function(e,t,i){var n=ReactDOM.findDOMNode(this),o=this.props.gutter,a=n.offsetWidth,r=a/2;return i===CKEDITOR.SELECTION_TOP_TO_BOTTOM||i===CKEDITOR.SELECTION_BOTTOM_TO_TOP?(e=e-o.left-r,t=i===CKEDITOR.SELECTION_TOP_TO_BOTTOM?t+o.top:t-n.offsetHeight-o.top):i!==CKEDITOR.SELECTION_LEFT_TO_RIGHT&&i!==CKEDITOR.SELECTION_RIGHT_TO_LEFT||(e=i===CKEDITOR.SELECTION_LEFT_TO_RIGHT?e+o.left+n.offsetHeight/2:e-3*n.offsetHeight/2-o.left,t=t-o.top-n.offsetHeight/2),e<0&&(e=0),e>document.body.offsetWidth-r&&(e=document.body.offsetWidth-r),t<0&&(t=0),[e,t]},isVisible:function(){var e=ReactDOM.findDOMNode(this);if(e){var t=new CKEDITOR.dom.element(e);return t.hasClass("alloy-editor-visible")}return!1},moveToPoint:function(e,t){var i=new CKEDITOR.dom.element(ReactDOM.findDOMNode(this));i.setStyles({left:e[0]+"px",top:e[1]+"px",opacity:0,pointerEvents:"none"}),i.removeClass("alloy-editor-invisible"),this._animate(function(){i.addClass("ae-toolbar-transition"),i.addClass("alloy-editor-visible"),i.setStyles({left:t[0]+"px",top:t[1]+"px",opacity:1})}),i.$&&i.$.addEventListener("transitionend",function(){i.setStyles({pointerEvents:""})})},show:function(){var e=ReactDOM.findDOMNode(this),t=this.props.editor.get("uiNode"),i=t?t.scrollTop:0;if(!this.isVisible()&&e){var n=this.getInteractionPoint();if(n){var o,a,r,s,l=new CKEDITOR.dom.element(e);if(o=r=parseFloat(l.getStyle("left")),a=s=parseFloat(l.getStyle("top")),this.props.constrainToViewport){var d=this.getConstrainedPosition({height:parseFloat(e.offsetHeight),left:o,top:a,width:parseFloat(e.offsetWidth)});o=d.x,a=d.y}s=n.direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this.props.selectionData.region.bottom+i:this.props.selectionData.region.top+i,this.moveToPoint([r,s],[o,a])}}},updatePosition:function(){var e=this.getInteractionPoint(),t=ReactDOM.findDOMNode(this);if(e&&t){var i=this.props.editor.get("uiNode")||document.body,n=getComputedStyle(i),o=parseInt(n.getPropertyValue("margin-left"),10),a=parseInt(n.getPropertyValue("margin-right"),10),r=o+i.clientWidth+a,s="BODY"!==i.tagName?i.scrollTop:0,l=this.getWidgetXYPoint(e.x,e.y,e.direction);l[1]+=s,l[0]<0&&(l[0]=0),l[0]>r-t.offsetWidth&&(l[0]=r-t.offsetWidth),new CKEDITOR.dom.element(t).setStyles({left:l[0]+"px",top:l[1]+"px"})}},_animate:function(e){window.requestAnimationFrame?this._animationFrameId=window.requestAnimationFrame(e):e()}};AlloyEditor.WidgetPosition=e}(),function(){var e=createReactClass({displayName:"ButtonBold",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"bold"},getDefaultProps:function(){return{command:"bold",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+66},style:"coreStyles_bold"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.bold,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-bold",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.bold},React.createElement("span",{className:"ae-icon-bold"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonBold=e}(),function(){var e=createReactClass({displayName:"ButtonCameraImage",statics:{key:"cameraImage"},getDefaultProps:function(){return{videoWidth:320}},componentDidMount:function(){ReactDOM.findDOMNode(this.refs.buttonTakePhoto).focus()},componentWillUnmount:function(){this._stream&&(this._stream.stop?this._stream.stop():this._stream.getVideoTracks&&this._stream.getVideoTracks().forEach(function(e){e.stop()}),this._stream=null)},render:function(){var e=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return e.call(navigator,{video:!0,audio:!1},this._handleStreamSuccess,this._handleStreamError),React.createElement("div",{className:"ae-camera"},React.createElement("video",{ref:"videoContainer"},"Video stream not available."),React.createElement("button",{className:"ae-camera-shoot",onClick:this.takePhoto,ref:"buttonTakePhoto"},"Take photo"),React.createElement("canvas",{className:"ae-camera-canvas",ref:"canvasContainer"}))},takePhoto:function(){var e=ReactDOM.findDOMNode(this.refs.videoContainer),t=ReactDOM.findDOMNode(this.refs.canvasContainer),i=t.getContext("2d"),n=this._videoHeight,o=this.props.videoWidth;if(o&&n){t.width=o,t.height=n,i.drawImage(e,0,0,o,n);var a=t.toDataURL("image/png"),r=CKEDITOR.dom.element.createFromHtml(''),s=this.props.editor.get("nativeEditor");s.insertElement(r),this.props.cancelExclusive(),s.fire("actionPerformed",this),s.fire("imageCameraAdd",r)}},_handleStreamError:function(e){window.alert("An error occurred! "+e)},_handleStreamSuccess:function(e){var t=ReactDOM.findDOMNode(this.refs.videoContainer),i=ReactDOM.findDOMNode(this.refs.canvasContainer);t.addEventListener("canplay",function(e){var n=t.videoHeight/(t.videoWidth/this.props.videoWidth);isNaN(n)&&(n=this.props.videoWidth/(4/3)),t.setAttribute("width",this.props.videoWidth),t.setAttribute("height",n),i.setAttribute("width",this.props.videoWidth),i.setAttribute("height",n),this._videoHeight=n}.bind(this),!1),this._stream=e,navigator.mozGetUserMedia?t.mozSrcObject=e:t.src=(window.URL||window.webkitURL).createObjectURL(e),t.play(),ReactDOM.findDOMNode(this.refs.buttonTakePhoto).disabled=!1}});AlloyEditor.ButtonCameraImage=e}(),function(){var e=createReactClass({displayName:"ButtonCamera",propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"camera"},render:function(){if(this.props.renderExclusive)return React.createElement(AlloyEditor.ButtonCameraImage,this.props);var t=!(navigator.getUserMedia||navigator.webkitGetUserMedia&&"https"===location.protocol||navigator.mozGetUserMedia||navigator.msGetUserMedia),i=t?AlloyEditor.Strings.cameraDisabled:AlloyEditor.Strings.camera;return React.createElement("button",{"aria-label":i,className:"ae-button","data-type":"button-image-camera",disabled:t,onClick:this.props.requestExclusive.bind(e.key),tabIndex:this.props.tabIndex,title:i},React.createElement("span",{className:"ae-icon-camera"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCamera=e}(),function(){var e=createReactClass({displayName:"ButtonCode",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"code"},getDefaultProps:function(){return{style:{element:"pre"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.code,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-code",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.code},React.createElement("span",{className:"ae-icon-code"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCode=e}(),function(){var e=createReactClass({displayName:"ButtonCommandListItem",mixins:[AlloyEditor.ButtonCommand],propTypes:{description:PropTypes.string.isRequired,icon:PropTypes.string},statics:{key:"buttonCommandListItem"},render:function(){var e="ae-icon-"+this.props.icon;return React.createElement("button",{"aria-label":this.props.description,className:this._getClassName(),onClick:this.execCommand,tabIndex:this.props.tabIndex},this.props.icon&&React.createElement("span",{className:e}),this.props.description)},_getClassName:function(){var e="ae-container ae-toolbar-element";return e}});AlloyEditor.ButtonCommandListItem=e}(),function(){var e=createReactClass({displayName:"ButtonCommandsList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{commands:PropTypes.arrayOf(PropTypes.object),editor:PropTypes.object.isRequired,listId:PropTypes.string},statics:{key:"buttonCommandsList"},componentDidMount:function(){ReactDOM.findDOMNode(this).focus()},getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",id:this.props.listId,role:"listbox"},this._renderActions(this.props.commands)))},_renderActions:function(e){var t,i=this.props.editor;return e&&e.length&&(t=e.map(function(e){return React.createElement("li",{key:e.command,role:"option"},React.createElement(AlloyEditor.ButtonCommandListItem,{command:e.command,description:"string"==typeof e.label?e.label:e.label(),icon:e.icon,editor:i}))})),t}});AlloyEditor.ButtonCommandsList=e}(),function(){var e=createReactClass({displayName:"ButtonDropdown",mixins:[AlloyEditor.WidgetFocusManager],getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},statics:{key:"dropdown"},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",role:"listbox"},this.props.children))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonDropdown=e}(),function(){var e=13,t=27,i=createReactClass({displayName:"ButtonEmbedEdit",propTypes:{editor:PropTypes.object.isRequired},statics:{key:"embedEdit"},componentDidMount:function(){(this.props.renderExclusive||this.props.manualSelection)&&(window.requestAnimationFrame?window.requestAnimationFrame(this._focusLinkInput):setTimeout(this._focusLinkInput,0))},componentWillReceiveProps:function(e){this.replaceState(this.getInitialState())},getInitialState:function(){var e,t=this.props.editor.get("nativeEditor"),i=t.getSelection();if(i){var n=i.getSelectedElement();n&&(e=n.findOne('[data-widget="ae_embed"]'))}var o=e?e.getAttribute("data-ae-embed-url"):"";return{element:e,initialLink:{href:o},linkHref:o}},render:function(){var e={opacity:this.state.linkHref?1:0};return React.createElement("div",{className:"ae-container-edit-link"},React.createElement("button",{"aria-label":AlloyEditor.Strings.deleteEmbed,className:"ae-button","data-type":"button-embed-remove",disabled:!this.state.element,onClick:this._removeEmbed,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.deleteEmbed},React.createElement("span",{className:"ae-icon-bin"})),React.createElement("div",{className:"ae-container-input xxl"},React.createElement("input",{className:"ae-input",onChange:this._handleLinkHrefChange,onKeyDown:this._handleKeyDown,placeholder:AlloyEditor.Strings.editLink,ref:"linkInput",type:"text",value:this.state.linkHref}),React.createElement("button",{"aria-label":AlloyEditor.Strings.clearInput,className:"ae-button ae-icon-remove",onClick:this._clearLink,style:e,title:AlloyEditor.Strings.clear})),React.createElement("button",{"aria-label":AlloyEditor.Strings.confirm,className:"ae-button",disabled:!this._isValidState(),onClick:this._embedLink,title:AlloyEditor.Strings.confirm},React.createElement("span",{className:"ae-icon-ok"})))},_clearLink:function(){this.setState({linkHref:""})},_embedLink:function(){var e=this.props.editor.get("nativeEditor");e.execCommand("embedUrl",{url:this.state.linkHref}),this.props.cancelExclusive()},_focusLinkInput:function(){ReactDOM.findDOMNode(this.refs.linkInput).focus()},_handleKeyDown:function(i){if(i.keyCode!==e&&i.keyCode!==t||i.preventDefault(),i.keyCode===e)this._embedLink();else if(i.keyCode===t){var n=this.props.editor.get("nativeEditor");this.props.cancelExclusive(),n.fire("actionPerformed",this)}},_handleLinkHrefChange:function(e){this.setState({linkHref:e.target.value})},_isValidState:function(){var e=this.state.linkHref&&this.state.linkHref!==this.state.initialLink.href;return e},_removeEmbed:function(){var e=this.props.editor.get("nativeEditor"),t=this.state.element.getAscendant(function(e){return e.hasClass("cke_widget_wrapper")});t.remove(),e.fire("actionPerformed",this)}});AlloyEditor.Buttons[i.key]=AlloyEditor.ButtonEmbedEdit=i}(),function(){var e=createReactClass({displayName:"ButtonEmbed",mixins:[AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"embed"},getDefaultProps:function(){return{keystroke:{fn:"_requestExclusive",keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76}}},render:function(){return this.props.renderExclusive?React.createElement(AlloyEditor.ButtonEmbedEdit,this.props):React.createElement("button",{"aria-label":AlloyEditor.Strings.link,className:"ae-button","data-type":"button-embed",onClick:this._requestExclusive,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.link},React.createElement("span",{className:"ae-icon-add"}))},_requestExclusive:function(){this.props.requestExclusive(e.key)}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonEmbed=e}(),function(){var e=createReactClass({displayName:"ButtonH1",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"h1"},getDefaultProps:function(){return{style:{element:"h1"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h1,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h1",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h1},React.createElement("span",{className:"ae-icon-h1"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH1=e}(),function(){var e=createReactClass({displayName:"ButtonH2",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"h2"},getDefaultProps:function(){return{style:{element:"h2"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h2,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h2",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h2},React.createElement("span",{className:"ae-icon-h2"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH2=e}(),function(){var e=createReactClass({displayName:"ButtonHline",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonCommand],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"hline"},getDefaultProps:function(){return{command:"horizontalrule",style:{element:"hr"}}},render:function(){return React.createElement("button",{"aria-label":AlloyEditor.Strings.horizontalrule,className:"ae-button","data-type":"button-hline",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.horizontalrule},React.createElement("span",{className:"ae-icon-separator"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonHline=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignCenter",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageCenter"},getDefaultProps:function(){return{command:"justifycenter"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignCenter,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-center",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignCenter},React.createElement("span",{className:"ae-icon-align-center"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignCenter=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignLeft",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageLeft"},getDefaultProps:function(){return{command:"justifyleft"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignLeft,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-left",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignLeft},React.createElement("span",{className:"ae-icon-align-left"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignLeft=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignRight",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageRight"},getDefaultProps:function(){return{command:"justifyright"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignRight,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-right",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignRight},React.createElement("span",{className:"ae-icon-align-right"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignRight=e}(),function(){var e=createReactClass({displayName:"ButtonImage",propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"image"},render:function(){var e={display:"none"};return React.createElement("div",null,React.createElement("button",{"aria-label":AlloyEditor.Strings.image,className:"ae-button","data-type":"button-image",onClick:this.handleClick,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.image},React.createElement("span",{className:"ae-icon-image"})),React.createElement("input",{accept:"image/*",onChange:this._onInputChange,ref:"fileInput",style:e,type:"file"}))},handleClick:function(e){ReactDOM.findDOMNode(this.refs.fileInput).click()},_onInputChange:function(){var e=ReactDOM.findDOMNode(this.refs.fileInput);if(e.files.length){var t=new FileReader,i=e.files[0];t.onload=function(e){var t=this.props.editor.get("nativeEditor"),n=t.fire("beforeImageAdd",{imageFiles:i});if(n){var o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o),t.fire("actionPerformed",this);var a={el:o,file:i};t.fire("imageAdd",a)}}.bind(this),t.readAsDataURL(i),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=createReactClass({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},React.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=createReactClass({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},React.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=createReactClass({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:PropTypes.func,autocompleteSelected:PropTypes.bool,term:PropTypes.string,setAutocompleteState:PropTypes.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?React.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var t=this.props.handleLinkAutocompleteClick;return e.map(function(e){var i=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return React.createElement("li",{key:e.url,role:"option"},React.createElement("button",{className:i,onClick:t,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var _extends=Object.assign||function(e){for(var t=1;t0,s="ae-container";return r&&(s+=" ae-container-column"),React.createElement("div",{"aria-label":AlloyEditor.Strings.styles,className:n,"data-tabindex":this.props.config.tabIndex||0,onFocus:this.focus,onKeyDown:this.handleKey,role:"toolbar",tabIndex:"-1"},React.createElement("div",{className:s},a.map(function(e,t){return Array.isArray(e)?React.createElement("div",{className:"ae-row",key:t.toString()},e.map(function(e){return e})):e})))}return null},_getSelectionFunction:function(e){var t,i=AlloyEditor.Lang;if(i.isFunction(e))t=e;else if(i.isString(e)){for(var n=e.split("."),o=window,a=n.shift();a&&i.isObject(o)&&i.isObject(o[a]);)o=o[a],a=n.shift();i.isFunction(o)&&(t=o)}return t},_getCurrentSelection:function(){var e,t=this.props.editorEvent?this.props.editorEvent.data:null;return t&&this.props.config.selections.some(function(i){var n,o=this._getSelectionFunction(i.test);return o&&(n=t.manualSelection===i.name||o({data:t,editor:this.props.editor})),n&&(e=i),n},this),e},_updatePosition:function(){if(ReactDOM.findDOMNode(this)){var e,t=this._getCurrentSelection();if(t){var i=this._getSelectionFunction(t.setPosition);i&&(e=i.call(this,{editor:this.props.editor,editorEvent:this.props.editorEvent,selectionData:this.props.selectionData}))}e||(this.updatePosition(),this.show())}}});AlloyEditor.Toolbars[e.key]=AlloyEditor.ToolbarStyles=e}(),function(){var e=createReactClass({displayName:"UI",mixins:[AlloyEditor.WidgetExclusive,AlloyEditor.WidgetFocusManager],propTypes:{ariaUpdates:PropTypes.object,editor:PropTypes.object.isRequired,eventsDelay:PropTypes.number,toolbars:PropTypes.object.isRequired},getInitialState:function(){return{hidden:!1}},getDefaultProps:function(){return{circular:!0,descendants:"[class^=ae-toolbar-]",eventsDelay:0,keys:{next:9}}},componentDidMount:function(){var e=this.props.editor.get("nativeEditor");e.on("editorInteraction",this._onEditorInteraction,this),e.on("actionPerformed",this._onActionPerformed,this),e.on("key",this._onEditorKey,this),this._mousedownListener=function(e){this._setUIHidden(e.target)}.bind(this),this._keyDownListener=CKEDITOR.tools.debounce(function(e){this._setUIHidden(document.activeElement)},this.props.eventsDelay,this),document.addEventListener("mousedown",this._mousedownListener),document.addEventListener("keydown",this._keyDownListener)},componentDidUpdate:function(e,t){var i=ReactDOM.findDOMNode(this),n=this.props.editor.get("nativeEditor");i&&n.fire("ariaUpdate",{message:this._getAvailableToolbarsMessage(i)}),n.fire("editorUpdate",{prevProps:e,prevState:t,props:this.props,state:this.state})},_getAriaUpdateTemplate:function(e){return this._ariaUpdateTemplates||(this._ariaUpdateTemplates={}),this._ariaUpdateTemplates[e]||(this._ariaUpdateTemplates[e]=new CKEDITOR.template(this._getAriaUpdates()[e])),this._ariaUpdateTemplates[e]},_getAriaUpdates:function(){return this.props.ariaUpdates||{noToolbar:AlloyEditor.Strings.ariaUpdateNoToolbar,oneToolbar:AlloyEditor.Strings.ariaUpdateOneToolbar,manyToolbars:AlloyEditor.Strings.ariaUpdateManyToolbars}},_getAvailableToolbarsMessage:function(e){var t=e.querySelectorAll('[role="toolbar"]');if(t.length){var i=Array.prototype.slice.call(t).map(function(e){return e.getAttribute("aria-label")}),n=1===i.length?"oneToolbar":"manyToolbars";return this._getAriaUpdateTemplate(n).output({toolbars:i.join(",").replace(/,([^,]*)$/," and $1")})}return this._getAriaUpdates().noToolbar},componentWillUnmount:function(){this._mousedownListener&&document.removeEventListener("mousedown",this._mousedownListener),this._keyDownListener&&(this._keyDownListener.detach(),document.removeEventListener("keydown",this._keyDownListener))},render:function(){if(this.state.hidden)return null;var e=Object.keys(this.props.toolbars).map(function(e){return AlloyEditor.Toolbars[e]||window[e]});return e=this.filterExclusive(e).map(function(e){var t=this.mergeExclusiveProps({config:this.props.toolbars[e.key],editor:this.props.editor,editorEvent:this.state.editorEvent,key:e.key,onDismiss:this._onDismissToolbarFocus,selectionData:this.state.selectionData},e.key);return React.createElement(e,t)}.bind(this)),React.createElement("div",{className:"ae-toolbars",onKeyDown:this.handleKey},e)},_onActionPerformed:function(e){var t=this.props.editor.get("nativeEditor");t.focus(),this.setState({itemExclusive:null,selectionData:t.getSelectionData()})},_onDismissToolbarFocus:function(){var e=this.props.editor.get("nativeEditor");e.focus()},_onEditorInteraction:function(e){this.setState({editorEvent:e,hidden:!1,itemExclusive:null,selectionData:e.data.selectionData})},_onEditorKey:function(e){var t=e.data.domEvent.$;t.altKey&&121===t.keyCode&&this.focus()},_setUIHidden:function(e){var t=ReactDOM.findDOMNode(this);if(t){var i=this.props.editor.get("nativeEditor").editable(),n=e.parentNode,o=new CKEDITOR.dom.node(e);if(i){var a=i.$===e||i.contains(o)||new CKEDITOR.dom.element(t).contains(o);n&&(a=a||"ckimgrsz"===n.id),a||this.setState({hidden:!0})}else this.setState({hidden:!0})}}});AlloyEditor.UI=e}(); } }()); diff --git a/dist/alloy-editor/alloy-editor-all.js b/dist/alloy-editor/alloy-editor-all.js index 9485d641b6..e9da879573 100644 --- a/dist/alloy-editor/alloy-editor-all.js +++ b/dist/alloy-editor/alloy-editor-all.js @@ -1,5 +1,5 @@ /** - * AlloyEditor v1.5.21 + * AlloyEditor v1.5.22 * * Copyright 2014-present, Liferay, Inc. * All rights reserved. @@ -32120,7 +32120,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol domElement.setStyles({ left: startPoint[0] + 'px', top: startPoint[1] + 'px', - opacity: 0 + opacity: 0, + pointerEvents: 'none' }); domElement.removeClass('alloy-editor-invisible'); @@ -32134,6 +32135,14 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol opacity: 1 }); }); + + if (domElement.$) { + domElement.$.addEventListener('transitionend', function () { + domElement.setStyles({ + pointerEvents: '' + }); + }); + } }, /** diff --git a/dist/alloy-editor/alloy-editor-core-min.js b/dist/alloy-editor/alloy-editor-core-min.js index 2bedc8fcc5..4b4b579aed 100644 --- a/dist/alloy-editor/alloy-editor-core-min.js +++ b/dist/alloy-editor/alloy-editor-core-min.js @@ -1,6 +1,6 @@ !function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(){var t={},i={editable:function(e,t){return t=t||{},t.srcNode=e,i.implementEventTarget(),new i.Core(t)},getBasePath:function(){var e=window.ALLOYEDITOR_BASEPATH||"";if(!e)for(var t=document.getElementsByTagName("script"),n=0;n=0?a=a+"-"+r:t.indexOf(a)===-1&&(a="en"),CKEDITOR.scriptLoader.load(i.getUrl("lang/alloy-editor/"+a+".js"),function(e){e&&i.fire("languageResourcesLoaded")},this)}},getUrl:function(e){var t=i.getBasePath();return e.indexOf(":/")===-1&&0!==e.indexOf("/")&&(e=t+e),CKEDITOR.timestamp&&"/"!==e.charAt(e.length-1)&&!/[&?]t=/.test(e)&&(e+=(e.indexOf("?")>=0?"&":"?")+"t="+CKEDITOR.timestamp),e},implementEventTarget:function(){i.fire||i.on||CKEDITOR.event.implementOn(i)},regexBasePath:/(^|.*[\\\/])(?:alloy-editor[^\/]+|alloy-editor)\.js(?:\?.*|;.*)?$/i,Buttons:{},Toolbars:{},getButtons:function(e){return function(){return e.reduce(function(e,i){return i=t[i]||[i],e.concat(i)},[])}},registerBridgeButton:function(e,i){t[i]||(t[i]=[]),t[i].push(e)}};"undefined"!=typeof module&&"object"===e(module.exports)&&(module.exports=i),"undefined"!=typeof window?window.AlloyEditor=i:"undefined"!=typeof global?global.AlloyEditor=i:"undefined"!=typeof self?self.AlloyEditor=i:this.AlloyEditor=i}();var t=function(){return(0,eval)("this").React}();"undefined"==typeof t&&(t=AlloyEditor.React);var i=function(){return(0,eval)("this").ReactDOM}();"undefined"==typeof t&&(i=AlloyEditor.ReactDOM);var n=function(){return(0,eval)("this").PropTypes||t.PropTypes}(),o=function(){return(0,eval)("this").createReactClass||t.createClass}();if("undefined"!=typeof window){!function(){CKEDITOR.tools.debounce=CKEDITOR.tools.debounce||function(e,t,i,n){var o,a=function(){var a=i||this;clearTimeout(o);for(var r=[],s=arguments.length,l=0;l0?t.getRangeAt(0).getClientRects():[]),0===o.length)n=this.getCaretRegion();else{for(var c=0,u=o.length;cl&&(l=m.right),m.topr&&(r=m.bottom)}var p=new CKEDITOR.dom.window(window).getScrollPosition();if(n.bottom=p.y+r,n.left=p.x+s,n.right=p.x+l,n.top=p.y+d,o.length){var g=o[o.length-1],h=o[0];n.endRect={bottom:p.y+g.bottom,height:g.height,left:p.x+g.left,right:p.x+g.right,top:p.y+g.top,width:g.width},n.startRect={bottom:p.y+h.bottom,height:h.height,left:p.x+h.left,right:p.x+h.right,top:p.y+h.top,width:h.width}}}return n},getSelectionDirection:function(){var e=CKEDITOR.SELECTION_TOP_TO_BOTTOM,t=this.getSelection(),i=t.getNative();if(!i)return e;var n;if((n=i.anchorNode)&&n.compareDocumentPosition){var o=n.compareDocumentPosition(i.focusNode);(!o&&i.anchorOffset>i.focusOffset||o===Node.DOCUMENT_POSITION_PRECEDING)&&(e=CKEDITOR.SELECTION_BOTTOM_TO_TOP)}return e}},CKEDITOR.plugins.add("ae_selectionregion",{init:function(t){var i,n;n=Object.prototype.hasOwnProperty;for(i in e.prototype)n.call(e.prototype,i)&&"undefined"==typeof t[i]&&(t[i]=e.prototype[i])}}))}(),function(){function e(e){this._editor=e}var t={table:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1};e.HEADING_BOTH="Both",e.HEADING_COL="Column",e.HEADING_NONE="None",e.HEADING_ROW="Row",e.prototype={constructor:e,create:function(e){var t=this._editor,i=this._createElement("table");e=e||{};for(var n=i.append(this._createElement("tbody")),o=e.rows||1,a=e.cols||1,r=0;r0&&(CKEDITOR.env.webkit&&n[0].shrink(CKEDITOR.NODE_ELEMENT),e=this._editor.elementPath(n[0].getCommonAncestor(!0)).contains("table",1))}return e},isEditable:function(e){return CKEDITOR.env.ie&&e.is(t)?e.hasAttribute("contenteditable")?"false"!==e.getAttribute("contenteditable"):this.isEditable(e.getParent()):!e.isReadOnly()},getHeading:function(t){if(t=t||this.getFromSelection(),!t)return null;for(var i=null!==t.$.tHead,n=!0,o=0;o0;){var h=a.getFirst(),f=h.getChildCount();for(n=0;n0){new CKEDITOR.dom.event(t).preventDefault();var n=e.listenerData.editor;e.listenerData.editor.createSelectionFromPoint(t.clientX,t.clientY),this._handleFiles(i,n)}},_onDragEnter:function(t){e&&this._preventEvent(t)},_onDragOver:function(t){e&&this._preventEvent(t)},_onPaste:function(e){if(e.data&&e.data.$&&e.data.$.clipboardData&&e.data.$.clipboardData.items&&e.data.$.clipboardData.items.length>0){var t=e.data.$.clipboardData.items[0];if(0===t.type.indexOf("image")){var i=t.getAsFile();this._processFile(i,e.listenerData.editor)}}},_preventEvent:function(e){e=new CKEDITOR.dom.event(e.data.$),e.preventDefault(),e.stopPropagation()},_processFile:function(e,t){var i=new FileReader;i.addEventListener("loadend",function(){var n=i.result,o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o);var a={el:o,file:e};t.fire("imageAdd",a)}),i.readAsDataURL(e)}})}(),function(){if(!CKEDITOR.plugins.get("ae_autolink")){/MSIE ([^;]*)|Trident.*; rv:([0-9.]+)/.test(navigator.userAgent)&&document.execCommand("AutoUrlDetect",!1,!1);var e=8,t=188,i=13,n=186,o=32,a=[t,i,n,o],r=/[^\s]+/gim,s="((([A - Za - z]{ 3, 9}: (?: \\/\\/)?)(?:[-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9.-]+|(https?\\:\\/\\/|www.|[-;:&=.\\+\\$,\\w]+@)[A-Za-z0-9.-]+)((?:\\/[\\+~%\\/.\\w-_]*)?\\??(?:[-\\+=&;%@.\\w_]*)#?(?:[\\w]*))((.*):(\\d*)\\/?(.*))?)",l=/[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/i;CKEDITOR.plugins.add("ae_autolink",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keyup",this._onKeyUp,this,{editor:e})}.bind(this)),e.on("paste",function(e){if("paste"===e.data.method){if(e.data.dataValue.indexOf("<")>-1||e.data.dataValue.indexOf("<")>-1)return void(e.data.dataValue.indexOf('|<\/font><\/u>/g,"")));var t=this;e.data.dataValue=e.data.dataValue.replace(RegExp(s,"gim"),function(e){if(t._isValidURL(e))return t._isValidEmail(e)?''+e+"":''+e+""})}}.bind(this))},_getLastWord:function(e){var t=e.getSelection().getRanges()[0],n=t.startOffset,o="";if(this._currentKeyCode===i){var a,s=t.startContainer.getPrevious();if(s){for(;!s.getLast;)s=s.getPrevious();for(a=s.getLast();a&&!a.getText();)a=a.getPrevious()}a&&a.$.href||(this._startContainer=a,o=a?a.getText():"",this._offset=o.length)}else this._startContainer=t.startContainer,o=this._startContainer.getText().substring(0,n-1),this._offset=n-1;var l="",d=o.match(r);return d&&(l=d.pop()),l},_isValidEmail:function(e){return l.test(e)},_isValidURL:function(e){return RegExp(s,"i").test(e)},_onKeyDown:function(t){var i=t.data.$,n=t.listenerData.editor,o=n.editable();o.removeListener("keydown",this._onKeyDown),i.keyCode===e&&(t.cancel(),t.data.preventDefault(),this._removeLink(n)),this._ckLink=null},_onKeyUp:function(e){var t=e.data.$;if(this._currentKeyCode=t.keyCode,a.indexOf(this._currentKeyCode)!==-1){var i=e.listenerData.editor,n=this._getLastWord(i);this._isValidURL(n)&&this._replaceContentByLink(i,n)}},_replaceContentByLink:function(e,t){var n=e.createRange(),o=CKEDITOR.dom.element.get(this._startContainer),a=this._offset;n.setStart(o,a-t.length),n.setEnd(o,a),n.select();var r=new CKEDITOR.Link(e);r.create(t),this._ckLink=r;var s=r.getFromSelection();if(e.fire("autolinkAdd",s),this._subscribeToKeyEvent(e),n=e.getSelection().getRanges()[0],this._currentKeyCode===i){var l=n.getNextEditableNode();n.setStart(l,0),n.setEnd(l,0)}else{var d=n.getNextNode();n.setStart(d,1),n.setEnd(d,1)}n.select()},_removeLink:function(e){var t=e.getSelection().getRanges()[0],i=t.startOffset,n=this._startContainer.getNext()||this._startContainer,o=e.createRange();o.setStart(n,0),o.setEndAfter(n),o.select(),this._ckLink.remove(),t.setEnd(t.startContainer,i),t.setStart(t.startContainer,i),t.select()},_subscribeToKeyEvent:function(e){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e},1)}})}}(),function(){if(!CKEDITOR.plugins.get("ae_autolist")){var e=8,t=32,i=[{regex:/^\*$/,type:"bulletedlist"},{regex:/^1\.$/,type:"numberedlist"}];CKEDITOR.plugins.add("ae_autolist",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e})}.bind(this))},_checkForBackspaceAndUndo:function(t){var i=t.listenerData.editor,n=t.data.$,o=i.editable();o.removeListener("keydown",this._checkForBackspaceAndUndo),n.keyCode===e&&(i.execCommand("undo"),i.insertHtml(t.listenerData.bullet+" "),t.data.preventDefault())},_getListConfig:function(e){for(var t=e.config.autolist||i,n=e.getSelection().getRanges()[0],o=n.endContainer.getText(),a=o.substring(0,n.startOffset),r=o.substring(n.startOffset,o.length),s=0,l=t.length,d=null;!d&&l>s;){var c=t[s];if(c.regex.test(a)){d={bullet:a,editor:e,text:r,type:c.type};break}s++}return d},_createList:function(e){var t=e.editor,i=t.getSelection().getRanges()[0];i.endContainer.setText(e.text),t.execCommand(e.type);var n=t.editable();n.attachListener(n,"keydown",this._checkForBackspaceAndUndo,this,{editor:t,bullet:e.bullet},1)},_onKeyDown:function(e){var i=e.data.$;if(i.keyCode===t){var n=this._getListConfig(e.listenerData.editor);n&&(e.data.preventDefault(),this._createList(n))}}})}}(),function(){function e(e){function i(){var t=e.getSelection();t&&(t.getType()!==CKEDITOR.SELECTION_NONE&&t.getStartElement().is("img")?n.event&&n.event.button&&0!==n.event.button||r.show(t.getStartElement().$):r.hide())}var n=e.window.$,o=e.document.$;u&&o.execCommand("enableObjectResizing",!1,!1);var a="undefined"==typeof c?null:c;e.config.imageScaleResize=e.config.imageScaleResize||"both";var r=new t(e,{imageScaleResize:e.config.imageScaleResize,snapToSize:a}),s=function(e){r.isHandle(e.target)&&r.initDrag(e)};o.addEventListener("mousedown",s,!1),e.on("selectionChange",i),e.on("getData",function(e){var t=e.data.dataValue||"";t=t.replace(/
    /i,""),t=t.replace(/\b(ckimgrsz)\b/g,""),e.data.dataValue=t}),e.on("beforeUndoImage",function(){r.hide()}),e.on("afterUndoImage",function(){i()}),e.on("blur",function(){r.hide()}),e.on("beforeModeUnload",function t(){e.removeListener("beforeModeUnload",t),r.hide()}),e.on("destroy",function(){var e=o.getElementById("ckimgrsz");e&&e.remove(),u&&o.execCommand("enableObjectResizing",!1,!0),o.removeEventListener("mousedown",s)});var l;e.window.on("resize",function(){clearTimeout(l),l=setTimeout(i,50)})}function t(e,t){this.editor=e,this.window=e.window.$,this.document=e.document.$,this.cfg=t||{},this.init()}function i(e,t){this.window=e,this.document=t,this.events={mousemove:o(this.mousemove,this),keydown:o(this.keydown,this),mouseup:o(this.mouseup,this)}}function n(e){for(var t=e.length,i=new Array(t),n=0;nn?t.height=Math.round(t.width/n):t.width=Math.round(t.height*n)}var o=this.cfg.snapToSize;if(o)for(var a=this.otherImages,r=0;r=15&&(u>=15||"auto"===u)?(f.$.style.width=c+"px",f.$.style.height=u+"px",m=!0):m=!1}function l(){for(var n;n=_.pop();)n.removeListener();i.removeClass(T),o.removeClass("cke_image_resizing"),m&&(e.setData({height:u,width:c}),t.fire("saveSnapshot")),m=!1}var d,c,u,m,p,g,h,f=e.parts.image,E="right"==e.data.align?-1:1,y=a.data.$.screenX,v=a.data.$.screenY,b=f.$.clientWidth,C=f.$.clientHeight,_=[],T="cke_image_s"+(~E?"e":"w");t.fire("saveSnapshot"),r("mousemove",s,_),r("mouseup",l,_),i.addClass(T),o.addClass("cke_image_resizing")}),e.on("data",function(){o["right"==e.data.align?"addClass":"removeClass"]("cke_image_resizer_left")}),e.parts.image.on("click",function(){var e=t.getSelection();if(e){var i=e.getStartElement();if(i){var n=i.findOne("img");if(n){var o=i.getClientRect(),a=new CKEDITOR.dom.window(window).getScrollPosition();o.left-=a.x,o.top+=a.y,o.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,t.fire("editorInteraction",{nativeEvent:event,selectionData:{element:n,region:o}})}}}})}function s(e){var t={figcaption:!0,figure:{classes:"!"+e.config.image2_captionedClass},img:{attributes:"!src,alt,width,height"}};return t}function l(e){var t=e.config.image2_alignClasses,i={align:{requiredContent:"img"+(t?"("+t[0]+")":"{float}")},caption:{requiredContent:"figcaption"},dimension:{requiredContent:"img[width,height]"}};return i}function d(e){return e.data.hasCaption?e.element:e.parts.image}if(!CKEDITOR.plugins.get("ae_dragresize_ie")){var c={center:1,left:0,right:2},u={both:"nwse-resize",height:"ns-resize",scale:"nwse-resize",width:"ew-resize"},m=/^\s*(\d+\%)\s*$/i,p='';CKEDITOR.plugins.add("ae_dragresize_ie",{hidpi:!0,icons:"image",init:function(t){var i=e(t);t.widgets.add("image",i)},onLoad:function(){CKEDITOR.addCss(".cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ns-resize{cursor: ns-resize;}.cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ew-resize{cursor: ew-resize;}.cke_image_nocaption{line-height:0}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:nwse-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}")},requires:"widget"}),CKEDITOR.plugins.image2={checkHasNaturalRatio:function(e){var t=e.$,i=this.getNatural(e);return Math.round(t.clientWidth/i.width*i.height)==t.clientHeight||Math.round(t.clientHeight/i.height*i.width)==t.clientWidth},getNatural:function(e){var t;if(e.$.naturalWidth)t={height:e.$.naturalHeigh,width:e.$.naturalWidth};else{var i=new Image;i.src=e.getAttribute("src"),t={height:i.heigh,width:i.width}}return t}}}}(),CKEDITOR.config.image2_captionedClass="image",function(){function e(e){function o(){this.deflated||(e.widgets.focused==this.widget&&(this.focused=!0),e.widgets.destroy(this.widget),this.deflated=!0)}function a(){var i=e.editable(),n=e.document;if(this.deflated){if(this.widget=e.widgets.initOn(this.element,"image",this.widget.data),this.widget.inline&&!new CKEDITOR.dom.elementPath(this.widget.wrapper,i).block){var o=n.createElement(e.activeEnterMode==CKEDITOR.ENTER_P?"p":"div");o.replace(this.widget.wrapper),this.widget.wrapper.move(o)}this.focused&&(this.widget.focus(),delete this.focused),delete this.deflated}else t(this.widget,l)}var l=e.config.ae_dragresize_ie11_alignClasses,d=e.config.ae_dragresize_ie11_captionedClass;return{allowedContent:c(e),requiredContent:"img[src,alt]",features:u(e),styleableElements:"img figure",contentTransformations:[["img[width]: sizeToAttribute"]],editables:{caption:{selector:"figcaption",allowedContent:"br em strong sub sup u s; a[!href,target]"}},parts:{image:"img",caption:"figcaption"},template:p,data:function(){var t=this.features;if(this.data.hasCaption&&!e.filter.checkFeature(t.caption)&&(this.data.hasCaption=!1),"none"==this.data.align||e.filter.checkFeature(t.align)||(this.data.align="none"),this.shiftState({widget:this,element:this.element,oldData:this.oldData,newData:this.data,deflate:o,inflate:a}),this.data.link?this.parts.link||(this.parts.link=this.parts.image.getParent()):this.parts.link&&delete this.parts.link,this.parts.image.setAttributes({src:this.data.src,"data-cke-saved-src":this.data.src,alt:this.data.alt}),this.oldData&&!this.oldData.hasCaption&&this.data.hasCaption)for(var i in this.data.classes)this.parts.image.removeClass(i);e.filter.checkFeature(t.dimension)&&r(this),this.oldData=CKEDITOR.tools.extend({},this.data)},init:function(){var t=CKEDITOR.plugins.ae_dragresize_ie11,i=this.parts.image,n={hasCaption:!!this.parts.caption,src:i.getAttribute("src"),alt:i.getAttribute("alt")||"",width:i.getAttribute("width")||"",height:i.getAttribute("height")||"",lock:!this.ready||t.checkHasNaturalRatio(i)},o=i.getAscendant("a");if(o&&this.wrapper.contains(o)&&(this.parts.link=o),!n.align){var a=n.hasCaption?this.element:i;l?(a.hasClass(l[0])?n.align="left":a.hasClass(l[2])&&(n.align="right"),n.align?a.removeClass(l[h[n.align]]):n.align="none"):(n.align=a.getStyle("float")||"none",a.removeStyle("float"))}if(e.plugins.link&&this.parts.link){n.link=t.getLinkAttributesParser()(e,this.parts.link);var r=n.link.advanced;r&&r.advCSSClasses&&(r.advCSSClasses=CKEDITOR.tools.trim(r.advCSSClasses.replace(/cke_\S+/,"")))}this.wrapper[(n.hasCaption?"remove":"add")+"Class"]("cke_image_nocaption"),this.setData(n),e.filter.checkFeature(this.features.dimension)&&e.config.ae_dragresize_ie11_disableResizer!==!0&&s(this),this.shiftState=t.stateShifter(this.editor),this.on("contextMenu",function(e){e.data.image=CKEDITOR.TRISTATE_OFF,(this.parts.link||this.wrapper.getAscendant("a"))&&(e.data.link=e.data.unlink=CKEDITOR.TRISTATE_OFF)})},addClass:function(e){m(this).addClass(e)},hasClass:function(e){return m(this).hasClass(e)},removeClass:function(e){m(this).removeClass(e)},getClasses:function(){var e=new RegExp("^("+[].concat(d,l).join("|")+")$");return function(){var t=this.repository.parseElementClasses(m(this).getAttribute("class"));for(var i in t)e.test(i)&&delete t[i];return t}}(),upcast:i(e),downcast:n(e),getLabel:function(){var e=(this.data.alt||"")+" "+this.pathName;return this.editor.lang.widget.label.replace(/%1/,e)}}}function t(e,t){var i=e.wrapper,n=e.data.align,o=e.data.hasCaption;if(t){for(var a=3;a--;)i.removeClass(t[a]);"center"==n?o&&i.addClass(t[1]):"none"!=n&&i.addClass(t[h[n]])}else{"center"==n?(o?i.setStyle("text-align","center"):i.removeStyle("text-align"),i.removeStyle("float")):("none"==n?i.removeStyle("float"):i.setStyle("float",n),i.removeStyle("text-align"));var r=i.$.querySelector("img");r.removeAttribute("style")}}function i(e){var t=o(e),i=e.config.ae_dragresize_ie11_captionedClass;return function(e,n){var o,r={width:1,height:1},s=e.name;if(!e.attributes["data-cke-realelement"]){if(t(e)){if("div"==s){var l=e.getFirst("figure");l&&(e.replaceWith(l),e=l)}n.align="center",o=e.getFirst("img")||e.getFirst("a").getFirst("img")}else"figure"==s&&e.hasClass(i)?o=e.getFirst("img")||e.getFirst("a").getFirst("img"):a(e)&&(o="a"==e.name?e.children[0]:e);if(o){for(var d in r){var c=o.attributes[d];c&&c.match(f)&&delete o.attributes[d]}return e}}}}function n(e){var t=e.config.ae_dragresize_ie11_alignClasses;return function(e){var i="a"==e.name?e.getFirst():e,n=i.attributes,o=this.data.align;if(!this.inline){var a=e.getFirst("span");a&&a.replaceWith(a.getFirst({img:1,a:1}))}if(o&&"none"!=o){var r=CKEDITOR.tools.parseCssText(n.style||"");"center"==o&&"figure"==e.name?e=e.wrapWith(new CKEDITOR.htmlParser.element("div",t?{class:t[1]}:{style:"text-align:center"})):o in{left:1,right:1}&&(t?i.addClass(t[h[o]]):r.float=o),t||CKEDITOR.tools.isEmpty(r)||(n.style=CKEDITOR.tools.writeCssText(r)+";")}return e}}function o(e){var t=e.config.ae_dragresize_ie11_captionedClass,i=e.config.ae_dragresize_ie11_alignClasses,n={figure:1,a:1,img:1};return function(o){if(!(o.name in{div:1,p:1}))return!1;var r=o.children;if(1!==r.length)return!1;var s=r[0];if(!(s.name in n))return!1;if("p"==o.name){if(!a(s))return!1}else if("figure"==s.name){if(!s.hasClass(t))return!1}else{if(e.enterMode==CKEDITOR.ENTER_P)return!1;if(!a(s))return!1}return!(i?!o.hasClass(i[1]):"center"!=CKEDITOR.tools.parseCssText(o.attributes.style||"",!0)["text-align"])}}function a(e){return"img"==e.name||"a"==e.name&&(1==e.children.length&&e.getFirst("img"))}function r(e){var t=e.data,i={width:t.width,height:t.height},n=e.parts.image;for(var o in i)i[o]?n.setAttribute(o,i[o]):n.removeAttribute(o)}function s(e){var t=e.editor,i=t.editable(),n=t.document,o=e.resizer=n.createElement("span"),a=n.createElement("span"),r=n.createElement("span"),s=n.createElement("span"),l=n.createElement("span");if(a.addClass("cke_image_resizer"),a.addClass("cke_image_resizer_ne"),r.addClass("cke_image_resizer"),r.addClass("cke_image_resizer_nw"),s.addClass("cke_image_resizer"),s.addClass("cke_image_resizer_se"),l.addClass("cke_image_resizer"),l.addClass("cke_image_resizer_sw"),o.append(a),o.append(r),o.append(s),o.append(l),o.append(new CKEDITOR.dom.text("​",n)),e.inline)e.wrapper.append(o);else{var d=e.parts.link||e.parts.image,c=d.getParent(),u=n.createElement("span");u.addClass("cke_image_resizer_wrapper"),u.append(d),u.append(o),e.element.append(u,!0),c.is("span")&&c.remove()}o.on("mousedown",function(a){function r(e,t,i){var o=CKEDITOR.document,a=[];if(n.equals(o)||a.push(o.on(e,t)),a.push(n.on(e,t)),i)for(var r=a.length;r--;)i.push(a.pop())}function s(){E=_+u*p,f=Math.round(E/A)}function l(){f=T+m*g,E=Math.round(f*A)}function d(e){h=e.data.$,p=h.screenX-b,g=C-h.screenY,moveRatio=Math.abs(p/g),1==u?p<=0?l():s():p<=0?s():l(),E>=15&&f>=15?(v.$.style.width=E+"px",v.$.style.height=f+"px",y=!0):y=!1}function c(){for(var n;n=I.pop();)n.removeListener();i.removeClass(w),o.removeClass("cke_image_resizing"),y&&(e.setData({height:f,width:E}),t.fire("saveSnapshot")),y=!1}var u,m,p,g,h,f,E,y,v=e.parts.image,b=a.data.$.screenX,C=a.data.$.screenY,_=v.$.clientWidth,T=v.$.clientHeight,A=_/T,I=[],k=a.data.getTarget();k.hasClass("cke_image_resizer_ne")?(u=1,m=1):k.hasClass("cke_image_resizer_nw")?(u=-1,m=1):k.hasClass("cke_image_resizer_se")?(u=1,m=-1):k.hasClass("cke_image_resizer_sw")&&(u=-1,m=-1);var w="cke_image_"+(~m?"n":"s")+(~u?"e":"w");t.fire("saveSnapshot"),r("mousemove",d,I),r("mouseup",c,I),i.addClass(w),o.addClass("cke_image_resizing")})}function l(e){var t,i=[];return function(n){var o=e.getCommand("justify"+n);o&&(i.push(function(){o.refresh(e,e.elementPath())}),n in{right:1,left:1,center:1}&&o.on("exec",function(t){var o=d(e);if(o){o.data.align===n?(E(o,n),delete o.data.align):o.setData("align",n);for(var a=i.length;a--;)i[a]();t.cancel()}}),o.on("refresh",function(i){var o=d(e),a={right:1,left:1,center:1};o&&(void 0===t&&(t=e.filter.checkFeature(e.widgets.registered.image.features.align)),t?this.setState(o.data.align==n?CKEDITOR.TRISTATE_ON:n in a?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_DISABLED),i.cancel())}))}}function d(e){var t=e.widgets.focused;return t&&"image"==t.name?t:null}function c(e){var t=e.config.ae_dragresize_ie11_alignClasses,i={div:{match:o(e)},p:{match:o(e)},img:{attributes:"!src,alt,width,height"},figure:{classes:"!"+e.config.ae_dragresize_ie11_captionedClass},figcaption:!0};return t?(i.div.classes=t[1],i.p.classes=i.div.classes,i.img.classes=t[0]+","+t[2],i.figure.classes+=","+i.img.classes):(i.div.styles="text-align",i.p.styles="text-align",i.img.styles="float",i.figure.styles="float,display"),i}function u(e){var t=e.config.ae_dragresize_ie11_alignClasses,i={dimension:{requiredContent:"img[width,height]"},align:{requiredContent:"img"+(t?"("+t[0]+")":"{float}")},caption:{requiredContent:"figcaption"}};return i}function m(e){return e.data.hasCaption?e.element:e.parts.image}if(!CKEDITOR.plugins.get("ae_dragresize_ie11")){var p='',g=new CKEDITOR.template('
    '+p+"
    {captionPlaceholder}
    "),h={left:0,center:1,right:2},f=/^\s*(\d+\%)\s*$/i;CKEDITOR.plugins.add("ae_dragresize_ie11",{requires:"widget",onLoad:function(){CKEDITOR.addCss(".cke_image_nocaption{line-height:0}.cke_editable.cke_image_ne, .cke_editable.cke_image_ne *{cursor:ne-resize !important}.cke_editable.cke_image_nw, .cke_editable.cke_image_nw *{cursor:nw-resize !important}.cke_editable.cke_image_sw, .cke_editable.cke_image_sw *{cursor:sw-resize !important}.cke_editable.cke_image_se, .cke_editable.cke_image_se *{cursor:se-resize !important}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;background:#000;outline:1px solid #fff;line-height:0;cursor:se-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_image_resizer.cke_image_resizer_ne{cursor:ne-resize;left:auto;right:-5px;top:-5px;}.cke_image_resizer.cke_image_resizer_nw{cursor:nw-resize;left:-5px;right:auto;top:-5px;}.cke_image_resizer.cke_image_resizer_se{bottom:-5px;cursor:se-resize;left:auto;right:-5px;}.cke_image_resizer.cke_image_resizer_sw{bottom:-5px;cursor:sw-resize;left:-5px;right:auto;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}.cke_widget_wrapper>a{display:inline-block}")},init:function(t){var i=(t.config,e(t));t.widgets.add("image",i),t.on("selectionChange",function(e){var i=t.getSelection();if(i){var n=i.getSelectedElement();if(n){var o=n.findOne("img");if(o){var a=n.getClientRect(),r=new CKEDITOR.dom.window(window).getScrollPosition();a.left-=r.x,a.top+=r.y,a.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,t.fire("editorInteraction",{nativeEvent:{},selectionData:{element:o,region:a}})}}}})},afterInit:function(e){var t={left:1,right:1,center:1,block:1},i=l(e);for(var n in t)i(n)}}),CKEDITOR.plugins.ae_dragresize_ie11={stateShifter:function(e){function t(e,t){var i={};s?i.attributes={class:s[1]}:i.styles={"text-align":"center"};var n=r.createElement(e.activeEnterMode==CKEDITOR.ENTER_P?"p":"div",i);return a(n,t),t.move(n),n}function i(e){var t=e.findOne("a,img");return t.replace(e),t}function n(e,t){var i=r.createElement("a",{attributes:{href:t.url}});return i.replace(e),e.move(i),i}function o(e){var t=e.findOne("img");return t.replace(e),t}function a(t,i){if(i.getParent()){var n=e.createRange();n.moveToPosition(i,CKEDITOR.POSITION_BEFORE_START),i.remove(),d.insertElementIntoRange(t,n)}else t.replace(i)}var r=e.document,s=e.config.ae_dragresize_ie11_alignClasses,l=e.config.ae_dragresize_ie11_captionedClass,d=e.editable(),c=["hasCaption","align","link"],u={align:function(n,o,a){var r=n.element;n.changed.align||"auto"===r.$.style.marginLeft&&"auto"===r.$.style.marginRight?n.newData.hasCaption||(("center"==a||"auto"===r.$.style.marginLeft&&"auto"===r.$.style.marginRight)&&(n.deflate(),n.element=t(e,r)),n.changed.hasCaption||"center"!=o||"center"==a||(n.deflate(),n.element=i(r))):"center"==a&&n.changed.hasCaption&&!n.newData.hasCaption&&(n.deflate(),n.element=t(e,r)),!s&&r.is("figure")&&("center"==a?r.setStyle("display","inline-block"):r.removeStyle("display"))},hasCaption:function(t,i,n){if(t.changed.hasCaption){var o;if(o=t.element.is({img:1,a:1})?t.element:t.element.findOne("a,img"),t.deflate(),n){var s=CKEDITOR.dom.element.createFromHtml(g.output({captionedClass:l,captionPlaceholder:e.lang.ae_dragresize_ie11.captionPlaceholder}),r);a(s,t.element),o.replace(s.findOne("img")),t.element=s}else o.replace(t.element),t.element=o}},link:function t(i,a,r){if(i.changed.link){var s,l=i.element.is("img")?i.element:i.element.findOne("img"),t=i.element.is("a")?i.element:i.element.findOne("a"),d=i.element.is("a")&&!r||i.element.is("img")&&r;if(d&&i.deflate(),r){a||(s=n(l,i.newData.link));var c=CKEDITOR.plugins.ae_dragresize_ie11.getLinkAttributesGetter()(e,r);CKEDITOR.tools.isEmpty(c.set)||(s||t).setAttributes(c.set),c.removed.length&&(s||t).removeAttributes(c.removed)}else s=o(t);d&&(i.element=s)}}};return function(e){var t,i;for(e.changed={},i=0;i
    ',CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL='{url}',CKEDITOR.plugins.add("ae_embed",{requires:"widget",init:function(i){var n=new CKEDITOR.template(i.config.embedUrlTemplate||CKEDITOR.DEFAULT_AE_EMBED_URL_TPL),o=new CKEDITOR.template(i.config.embedWidgetTpl||CKEDITOR.DEFAULT_AE_EMBED_WIDGET_TPL),a=new CKEDITOR.template(i.config.embedLinkDefaultTpl||CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL),r=function(e,t){if("div"===e.name&&e.attributes["data-ae-embed-url"])return t.url=e.attributes["data-ae-embed-url"],!0};i.addCommand("embedUrl",{exec:function(e,t){e.insertHtml(o.output({url:t.url}))}}),i.widgets.add("ae_embed",{mask:!0,requiredContent:"div[data-ae-embed-url]",data:function(e){var i=this,o=e.data.url;o&&CKEDITOR.tools.jsonp(n,{url:encodeURIComponent(o)},function(e){e.html?t.test(e.html)?i.createATag(o):i.element.setHtml(e.html):i.createATag(o)},function(e){i.createATag(o)})},createATag:function(e){this.editor.execCommand("undo");var t=(this.editor.getSelection().getSelectedElement(),a.output({url:e}));this.editor.insertHtml(t),this.editor.fire("actionPerformed",this)},upcast:function(e,t){var n=i.config.embedWidgetUpcastFn||r;return n(e,t)}}),i.once("contentDom",function(){i.on("paste",function(t){var n=t.data.dataValue;e.test(n)&&(t.stop(),i.execCommand("embedUrl",{url:t.data.dataValue}))})}),i.on("selectionChange",function(e){var t=i.getSelection();if(t){var n=t.getSelectedElement();if(n){var o=n.findOne('[data-widget="ae_embed"]');if(o){var a=n.getClientRect(),r=new CKEDITOR.dom.window(window).getScrollPosition();a.left-=r.x,a.top+=r.y,a.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,i.fire("editorInteraction",{nativeEvent:{},selectionData:{element:o,region:a}})}}}}),i.filter.addElementCallback(function(e){if("data-ae-embed-url"in e.attributes)return CKEDITOR.FILTER_SKIP_TREE})}})}}(),function(){if(!CKEDITOR.plugins.get("ae_imagealignment")){var e={CENTER:"center",LEFT:"left",RIGHT:"right"},t=[e.LEFT,e.RIGHT,e.CENTER],i=[{name:"display",value:"block"},{name:"margin-left",value:"auto"},{name:"margin-right",value:"auto"}],n=function(t){var n=t.getStyle("float");if(n&&"inherit"!==n&&"none"!==n||(n=t.getAttribute("align")),!n){var o=i.every(function(e){var i=t.getStyle(e.name)===e.value;return!i&&e.vendorPrefixes&&(i=e.vendorPrefixes.some(function(i){return t.getStyle(i+e.name)===e.value})),i});if(!n){var a=t.$.parentNode;a.style.textAlign==e.CENTER&&(i.forEach(function(e){t.setStyle(e.name,e.value),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(i){t.setStyle(i+e.name,e.value)})}),o=!0,a.style.textAlign="")}n=o?e.CENTER:null}return n},o=function(t,o){if(o===e.LEFT||o===e.RIGHT)t.removeStyle("float"),o===n(t)&&t.removeAttribute("align");else if(o===e.CENTER){i.forEach(function(e){t.removeStyle(e.name),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(i){t.removeStyle(i+e.name)})});var a=t.$.parentNode;a.style.textAlign==e.CENTER&&(a.style.textAlign="")}},a=function(t,a){o(t,n(t)),a===e.LEFT||a===e.RIGHT?t.setStyle("float",a):a===e.CENTER&&i.forEach(function(e){t.setStyle(e.name,e.value),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(i){t.setStyle(i+e.name,e.value)})})};CKEDITOR.plugins.add("ae_imagealignment",{afterInit:function(e){var i=this;t.forEach(function(t){var r=e.getCommand("justify"+t);r&&(r.on("exec",function(r){var s=e.getSelectionData();if(s&&AlloyEditor.SelectionTest.image({data:{selectionData:s}})){var l=s.element,d=n(l);d===t?o(l,t):a(l,t),r.cancel(),i.refreshCommands(e,new CKEDITOR.dom.elementPath(l))}}),r.on("refresh",function(e){var i={element:e.data.path.lastElement};if(AlloyEditor.SelectionTest.image({data:{selectionData:i}})){var o=n(i.element);this.setState(o===t?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF),e.cancel()}}))})},refreshCommands:function(e,i){t.forEach(function(t){var n=e.getCommand("justify"+t);n&&n.refresh(e,i)})}})}}(),function(){CKEDITOR.plugins.get("ae_pasteimages")||CKEDITOR.plugins.add("ae_pasteimages",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"paste",this._onPaste,this,{editor:e})}.bind(this))},_onPaste:function(e){if(e.data.$.clipboardData){var t=e.data.$.clipboardData.items[0],i=e.listenerData.editor;if(0===t.type.indexOf("image")){var n=new FileReader,o=t.getAsFile();n.onload=function(e){var t=i.fire("beforeImageAdd",{imageFiles:o});if(t){var n=CKEDITOR.dom.element.createFromHtml('');i.insertElement(n);var a={el:n,file:o};i.fire("imageAdd",a)}}.bind(this),n.readAsDataURL(o)}}}})}(),function(){if(!CKEDITOR.plugins.get("ae_placeholder")){var e=CKEDITOR.env.needsBrFiller?"
    ":"",t={1:["

    "+e+"

    "],2:[""," ",e],3:["
    "+e+"
    "]};CKEDITOR.plugins.add("ae_placeholder",{init:function(e){e.on("blur",this._checkEmptyData,this),e.on("change",this._checkEmptyData,this),e.on("focus",this._removePlaceholderClass,this),e.once("contentDom",this._checkEmptyData,this)},_checkEmptyData:function(e){var i=e.editor,n=i.editable(),o=n.$.innerHTML.trim(),a=t[i.config.enterMode].some(function(e){return o===e});a?n.addClass(i.config.placeholderClass):n.removeClass(i.config.placeholderClass)},_removePlaceholderClass:function(e){var t=e.editor,i=new CKEDITOR.dom.element(t.element.$);i.removeClass(t.config.placeholderClass)}})}}(),function(){CKEDITOR.plugins.get("ae_selectionkeystrokes")||CKEDITOR.plugins.add("ae_selectionkeystrokes",{requires:"ae_selectionregion",init:function(e){e.config.selectionKeystrokes&&e.config.selectionKeystrokes.forEach(function(t){var i=new CKEDITOR.command(e,{exec:function(e){e.fire("editorInteraction",{manualSelection:t.selection,nativeEvent:{},selectionData:e.getSelectionData()})}}),n="selectionKeystroke"+t.selection;e.addCommand(n,i),e.setKeystroke(t.keys,n)})}})}(),function(){function e(e){return CKEDITOR.env.ie?e.$.clientWidth:parseInt(e.getComputedStyle("width"),10)}function t(e,t){var i=e.getComputedStyle("border-"+t+"-width"),n={thin:"0px",medium:"1px",thick:"2px"};return i.indexOf("px")<0&&(i=i in n&&"none"!=e.getComputedStyle("border-style")?n[i]:0),parseInt(i,10)}function i(e){for(var t,i,n,o=e.$.rows,a=0,r=0,s=o.length;ra&&(a=t,i=n);return i}function n(e){for(var n=[],o=-1,a="rtl"===e.getComputedStyle("direction"),r=i(e),s=new CKEDITOR.dom.element(e.$.tBodies[0]),l=s.getDocumentPosition(),d=0,c=r.cells.length;d=o.x&&t<=o.x+o.width)return o}return null}function a(e){(e.data||e).preventDefault()}function r(i,n){function o(){g.removeListener("mouseup",u),g.removeListener("mousedown",c),g.removeListener("mousemove",m)}function r(){for(var t=n.index,i=CKEDITOR.tools.buildTableMap(n.table),o=[],r=[],s=Number.MAX_VALUE,l=s,d=n.rtl,c=0,u=i.length;c',p),i.on("destroy",function(){o(),g.remove()}),p.getDocumentElement().append(g),g.setStyles({width:l(n.width),height:l(n.height),left:l(n.x),top:l(n.y)}),g.on("mousedown",c,this),p.getBody().setStyle("cursor","col-resize"),g.show();var _=this.move=function(e){var t=e-Math.round(g.$.offsetWidth/2);if(T){if(t===b||t===C)return;t=Math.max(t,b),t=Math.min(t,C),E=t-f}g.setStyle("left",l(t))},T=(this.destroy=function(){o(),p.getBody().setStyle("cursor","auto"),g.remove()},this.isResizing=function(){return h})}function s(e){var t=e.data.getTarget();if("mouseout"===e.name){if(!t.is("table"))return;for(var i=new CKEDITOR.dom.element(e.data.$.relatedTarget||e.data.$.toElement);i&&i.$&&!i.equals(t)&&!i.is("body");)i=i.getParent();if(!i||i.equals(t))return}t.getAscendant("table",1).removeCustomData("_cke_table_pillars"),e.removeListener()}if(!CKEDITOR.plugins.get("ae_tableresize")){var l=CKEDITOR.tools.cssLength;CKEDITOR.plugins.add("ae_tableresize",{requires:"ae_tabletools",init:function(e){e.on("contentDom",function(){var t,i=e.editable();i.attachListener(i.isInline()?i:e.document,"mousemove",function(i){i=i.data;var l=i.getTarget();if(l.type===CKEDITOR.NODE_ELEMENT){var d=i.getPageOffset().x;if(t){if(t.isResizing())return t.move(d),void a(i);t.destroy(),t=null}var c,u;if((l.is("table")||l.getAscendant("tbody",1))&&(c=l.getAscendant("table",1),e.editable().contains(c))){(u=c.getCustomData("_cke_table_pillars"))||(c.setCustomData("_cke_table_pillars",u=n(c)),c.on("mouseout",s),c.on("mousedown",s));var m=o(u,d);m&&(t=new r(e,m))}}})})}})}}(),function(){function e(e){function t(e){n.length>0||e.type==CKEDITOR.NODE_ELEMENT&&E.test(e.getName())&&!e.getCustomData("selected_cell")&&(CKEDITOR.dom.element.setMarker(o,e,"selected_cell",!0),n.push(e))}for(var i=e.getRanges(),n=[],o={},a=0;a1&&f&&h[v]==f[v]?(b=h[v],b.rowSpan+=1):(b=new CKEDITOR.dom.element(h[v]).clone(),b.removeAttribute("rowSpan"),b.appendBogus(), y.append(b),b=b.$),v+=b.colSpan-1}i?y.insertBefore(p):y.insertAfter(p)}function n(t){if(t instanceof CKEDITOR.dom.selection){for(var i=e(t),o=i[0],a=o.getAscendant("table"),r=CKEDITOR.tools.buildTableMap(a),s=i[0].getParent(),l=s.$.rowIndex,d=i[i.length-1],c=d.getParent().$.rowIndex+d.$.rowSpan-1,u=[],m=l;m<=c;m++){for(var p=r[m],g=new CKEDITOR.dom.element(a.$.rows[m]),h=0;h0?v[l-1]:null)||a.$.parentNode);for(m=u.length;m>=0;m--)n(u[m]);return b}return t instanceof CKEDITOR.dom.element&&(a=t.getAscendant("table"),1==a.$.rows.length?a.remove():t.remove()),null}function o(e,t){for(var i=e.getParent(),n=i.$.cells,o=0,a=0;ai)&&(i=a)}return i}function r(t,i){for(var n=e(t),o=n[0],r=o.getAscendant("table"),s=a(n,1),l=a(n),d=i?s:l,c=CKEDITOR.tools.buildTableMap(r),u=[],m=[],p=c.length,g=0;g1&&m[g]==u[g]?(f=u[g],f.colSpan+=1):(f=new CKEDITOR.dom.element(u[g]).clone(),f.removeAttribute("colSpan"),f.appendBogus(),f[i?"insertBefore":"insertAfter"].call(f,new CKEDITOR.dom.element(u[g])),f=f.$),g+=f.rowSpan-1)}}function s(t){for(var i,n,o=e(t),a=o[0],r=o[o.length-1],s=a.getAscendant("table"),l=CKEDITOR.tools.buildTableMap(s),d=[],c=0,u=l.length;c=0;r--)d(n[r]);a?u(a,!0):o&&o.remove()}else if(i instanceof CKEDITOR.dom.element){var s=i.getParent();1==s.getChildCount()?s.remove():i.remove()}}function c(e){var t=e.getBogus();t&&t.remove(),e.trim()}function u(e,t){var i=e.getDocument(),n=CKEDITOR.document;CKEDITOR.env.ie&&10==CKEDITOR.env.version&&(n.focus(),i.focus());var o=new CKEDITOR.dom.range(i);o["moveToElementEdit"+(t?"End":"Start")](e)||(o.selectNodeContents(e),o.collapse(!t)),o.select(!0)}function m(e,t,i){var n=e[t];if("undefined"==typeof i)return n;for(var o=0;n&&o1&&(n+=o[t].rowSpan-1)}return i}function g(t,i,n){var o,a=e(t);if((i?1!=a.length:a.length<2)||(o=t.getCommonAncestor())&&o.type==CKEDITOR.NODE_ELEMENT&&o.is("table"))return!1;var r,s=a[0],l=s.getAscendant("table"),d=CKEDITOR.tools.buildTableMap(l),u=d.length,p=d[0].length,g=s.getParent().$.rowIndex,h=m(d,g,s);if(i){var f;try{var E=parseInt(s.getAttribute("rowspan"),10)||1,y=parseInt(s.getAttribute("colspan"),10)||1;f=d["up"==i?g-E:"down"==i?g+E:g]["left"==i?h-y:"right"==i?h+y:h]}catch(e){return!1}if(!f||s.$==f)return!1;a["up"==i||"left"==i?"unshift":"push"](new CKEDITOR.dom.element(f))}for(var v=s.getDocument(),b=g,C=0,_=0,T=!n&&new CKEDITOR.dom.documentFragment(v),A=0,I=0;I=p?s.removeAttribute("rowSpan"):s.$.rowSpan=C,C>=u?s.removeAttribute("colSpan"):s.$.colSpan=_;var N=new CKEDITOR.dom.nodeList(l.$.rows),B=N.count();for(I=B-1;I>=0;I--){var K=N.getItem(I);K.$.cells.length||(K.remove(),B++)}return s}function h(t,i){var n=e(t);if(n.length>1)return!1;if(i)return!0;var o,a,r,s,l=n[0],d=l.getParent(),c=d.getAscendant("table"),u=CKEDITOR.tools.buildTableMap(c),p=d.$.rowIndex,g=m(u,p,l),h=l.$.rowSpan;if(h>1){a=Math.ceil(h/2),r=Math.floor(h/2),s=p+a;var f,E=new CKEDITOR.dom.element(c.$.rows[s]),y=m(u,s);o=l.clone();for(var v=0;vg){o.insertBefore(new CKEDITOR.dom.element(f));break}f=null}f||E.append(o)}else{r=a=1,E=d.clone(),E.insertAfter(d),E.append(o=l.clone());for(var b=m(u,p),C=0;C1)return!1;if(i)return!0;var o,a,r,s=n[0],l=s.getParent(),d=l.getAscendant("table"),c=CKEDITOR.tools.buildTableMap(d),u=l.$.rowIndex,g=m(c,u,s),h=s.$.colSpan;if(h>1)a=Math.ceil(h/2),r=Math.floor(h/2);else{r=a=1;for(var f=p(c,g),E=0;E>>0),n=i(t,e);return new n}})}})}}(),function(){function e(){}function i(e,i,s){var l=AlloyEditor.Buttons[e];return r[s.name]=r[s.name]||{},r[s.name][e]=r[s.name][e]||i,l||(l=o(CKEDITOR.tools.merge(a,{displayName:e,propTypes:{editor:n.object.isRequired,tabIndex:n.number},statics:{key:e},render:function(){var i=this.props.editor.get("nativeEditor"),n=r[i.name][e].name||r[i.name][e].command||e,o="ae-button ae-button-bridge",a="ae-icon-"+n,s={},l=CKEDITOR.skin.getIconStyle(n);if(l){var d=l.split(";");s.backgroundImage=d[0].substring(d[0].indexOf(":")+1),s.backgroundPosition=d[1].substring(d[1].indexOf(":")+1),s.backgroundSize=d[2].substring(d[2].indexOf(":")+1)}var c;return this.props.expanded&&(c=this._getMenu()),t.createElement("div",{className:"ae-container ae-has-dropdown"},t.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":r[i.name][e].label,className:o,onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:r[i.name][e].label},t.createElement("span",{className:a,style:s})),c)},_getMenu:function(){return t.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getMenuItems())},_getMenuItems:function(){var e=this.props.editor.get("nativeEditor"),n=i.onMenu(),o=Object.keys(n).map(function(i){var o=e.getMenuItem(i);if(!o)return null;var a=o.definition||o,r=n[i],s="ae-toolbar-element "+(r===CKEDITOR.TRISTATE_ON?"active":""),l=r===CKEDITOR.TRISTATE_DISABLED,d=function(){a.command?e.execCommand(a.command):a.onClick&&a.onClick.apply(a)};return t.createElement("li",{key:o.name,role:"option"},t.createElement("button",{className:s,disabled:l,onClick:d},a.label))}.bind(this));return o}})),AlloyEditor.Buttons[e]=l),l}if(!CKEDITOR.plugins.get("ae_menubuttonbridge")){var a={toFeature:e},r={};CKEDITOR.plugins.get("menubutton")||(CKEDITOR.UI_MENU_BUTTON="menubutton",CKEDITOR.plugins.add("menubutton",{})),CKEDITOR.plugins.add("ae_menubuttonbridge",{requires:["ae_uibridge","ae_menubridge"],beforeInit:function(e){e.ui.addMenuButton=function(e,t){this.add(e,CKEDITOR.UI_MENUBUTTON,t)},e.ui.addHandler(CKEDITOR.UI_MENUBUTTON,{add:i,create:function(e){var t="buttonBridge"+(1e9*Math.random()>>>0),n=i(t,e);return new n}})}})}}(),function(){CKEDITOR.plugins.get("ae_menubridge")||CKEDITOR.plugins.add("ae_menubridge",{beforeInit:function(e){if(!CKEDITOR.plugins.get("menu")){for(var t=[],i=e._.menuGroups={},n=e._.menuItems={},o=0;o>>0),i=r(t,e);return new i}})}})}}(),function(){function e(){}if(!CKEDITOR.plugins.get("ae_richcombobridge")){var i={commit:e,createPanel:e,disable:e,enable:e,getState:e,hideGroup:e,hideItem:e,mark:e,showAll:e,startGroup:e,unmarkAll:e},a={},r=function(e,r,s){var l=AlloyEditor.Buttons[e];return a[s.name]=a[s.name]||{},a[s.name][e]=a[s.name][e]||r,a[s.name][e].currentValue=void 0,l||(l=o(CKEDITOR.tools.merge(i,{displayName:e,propTypes:{editor:n.object.isRequired},statics:{key:e},add:function(e,t,i){this._items.push({preview:t,title:i,value:e})},componentWillMount:function(){var t=this.props.editor.get("nativeEditor"),i=a[t.name][e];this._items=[],this.setValue=this._setValue,i.init&&i.init.call(this),i.onRender&&i.onRender.call(this)},componentWillUnmount:function(){this._cacheValue(this.state.value),this.setValue=this._cacheValue},getInitialState:function(){return{value:a[s.name][e].currentValue}},getValue:function(){return this.state.value},render:function(){var i,n=this.props.editor.get("nativeEditor"),o=a[n.name][e].currentValue||r.label;return this.props.expanded&&(i=this._getItemsList()),t.createElement("div",{className:"ae-container-dropdown ae-has-dropdown"},t.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":o,className:"ae-toolbar-element",onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:o},t.createElement("div",{className:"ae-container"},t.createElement("span",{className:"ae-container-dropdown-selected-item"},o),t.createElement("span",{className:"ae-icon-arrow"}))),i)},_cacheValue:function(t){var i=this.props.editor.get("nativeEditor");a[i.name][e].currentValue=t},_getItems:function(){var e=this,i=this._items.map(function(i){var n="ae-toolbar-element "+(i.value===this.state.value?"active":"");return t.createElement("li",{key:i.title,role:"option"},t.createElement("button",{className:n,dangerouslySetInnerHTML:{__html:i.preview},"data-value":i.value,onClick:e._onClick}))}.bind(this));return i},_getItemsList:function(){return t.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getItems())},_onClick:function(t){var i=this.props.editor.get("nativeEditor"),n=a[i.name][e];if(n.onClick){var o=t.currentTarget.getAttribute("data-value");n.onClick.call(this,o),a[i.name][e].currentValue=o,i.fire("actionPerformed",this)}},_setValue:function(e){this._cacheValue(e),this.setState({value:e})}})),AlloyEditor.Buttons[e]=l),l};CKEDITOR.plugins.get("richcombo")||(CKEDITOR.UI_RICHCOMBO="richcombo",CKEDITOR.plugins.add("richcombo",{})),CKEDITOR.plugins.add("ae_richcombobridge",{requires:["ae_uibridge"],beforeInit:function(e){e.ui.addRichCombo=function(e,t){this.add(e,CKEDITOR.UI_RICHCOMBO,t)},e.ui.addHandler(CKEDITOR.UI_RICHCOMBO,{add:r,create:function(e){var t="richComboBridge"+(1e9*Math.random()>>>0),i=r(t,e);return new i}})}})}}(),function(){CKEDITOR.plugins.get("ae_uibridge")||CKEDITOR.plugins.add("ae_uibridge",{beforeInit:function(e){var t=e.ui.add;e.ui.add=function(i,n,o){t.apply(this,arguments);var a=this._.handlers[n];a&&a.add&&(a.add(i,o,e),AlloyEditor.registerBridgeButton(i,e.__processingPlugin__.plugin.name))}}})}();var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(){var t={isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},isBoolean:function(e){return"boolean"==typeof e},isFunction:function(e){return"function"==typeof e},isNull:function(e){return null===e},isNumber:function(e){return"number"==typeof e&&isFinite(e)},isObject:function(i){var n="undefined"==typeof i?"undefined":e(i);return i&&("object"===n||t.isFunction(i))},isString:function(e){return"string"==typeof e},mix:function(e,t){var i=Object.prototype.hasOwnProperty;for(var n in t)i.call(t,n)&&(e[n]=t[n])},toInt:function(e){return parseInt(e,10)}};AlloyEditor.Lang=t}(),function(){var e={extend:function(e,t,i,n){if(!t||!e)throw"extend failed, verify dependencies";var o=t.prototype,a=Object.create(o);return e.prototype=a,a.constructor=e,e.superclass=o,t!==Object&&o.constructor===Object.prototype.constructor&&(o.constructor=t),i&&AlloyEditor.Lang.mix(a,i),n&&AlloyEditor.Lang.mix(e,n),e}};AlloyEditor.OOP=e}(),function(){function e(e){this.__config__=e||{},this.__ATTRS__={}}e.prototype={constructor:e,get:function(e){var t=this.constructor.ATTRS[e];if(t){this._isInitialized(e)||this._init(e);var i=this.__ATTRS__[e];return t.getter&&(i=this._callStringOrFunction(t.getter,i)),i}},set:function(e,t){var i=this.constructor.ATTRS[e];i&&(this._isInitialized(e)||this._init(e),i.readOnly||i.writeOnce&&this._isInitialized(e)||i.validator&&!this._callStringOrFunction(i.validator,t)||(i.setter&&(t=this._callStringOrFunction(i.setter,t)),this.__ATTRS__[e]=t))},_callStringOrFunction:function(e,t){var i=null;return AlloyEditor.Lang.isArray(t)||(t=[t]),AlloyEditor.Lang.isString(e)&&AlloyEditor.Lang.isFunction(this[e])?i=this[e].apply(this,t):AlloyEditor.Lang.isFunction(e)&&(i=e.apply(this,t)),i},_init:function(e){var t,i=this.constructor.ATTRS[e],n=Object.prototype.hasOwnProperty.call(i,"value"),o=Object.prototype.hasOwnProperty.call(this.__config__,e);if(i.valueFn)t=this._callStringOrFunction(i.valueFn,t),this.__ATTRS__[e]=t;else if(i.readOnly)t=i.value;else if(i.writeOnce)if(o)t=this.__config__[e];else{if(!n)return;t=i.value}else o?t=this.__config__[e]:n&&(t=i.value);if(i.validator&&o&&!this._callStringOrFunction(i.validator,t)){if(!n)return;t=i.value}i.setter&&o&&(t=this._callStringOrFunction(i.setter,t)),this.__ATTRS__[e]=t},_isInitialized:function(e){return Object.prototype.hasOwnProperty.call(this.__ATTRS__,e)}},AlloyEditor.Attribute=e}(),function(){function e(t){e.superclass.constructor.call(this,t),this.init(t)}AlloyEditor.OOP.extend(e,AlloyEditor.Attribute,{init:function(e){this._callChain("initializer",e)},destroy:function(){this._callChain("destructor")},_callChain:function(e,t){for(var i=[],n=this.constructor;n;)AlloyEditor.Lang.isFunction(n.prototype[e])&&i.push(n.prototype[e]),n=n.superclass?n.superclass.constructor:null;i=i.reverse(),t=AlloyEditor.Lang.isArray(t)?t:[t];for(var o=0;oc-o.offsetWidth&&(h[0]=c-o.offsetWidth),t.moveToPoint(g,h)},n=function(e){var i=e.selectionData?e.selectionData:e.editorEvent?e.editorEvent.data.selectionData:null;if(i&&i.element)return t(this,i.element.getClientRect()),!0},o=function(e){var i=e.editor.get("nativeEditor"),n=i.config.uiNode,o=n?n.scrollTop:0,a=new CKEDITOR.Table(i).getFromSelection(),r=a.getClientRect();return r.top+=o,t(this,r),!0};AlloyEditor.SelectionSetPosition={image:n,table:o}}(),function(){var e=function(e,t){return t.getText().length===e.endOffset||t.equals(e.startContainer)&&t.equals(e.endContainer)&&e.startOffset===e.endOffset&&1===e.endOffset},t=function(e){var t=e.data.selectionData;return!(!t.element||"ae_embed"!==t.element.getAttribute("data-widget"))},i=function(t){var i=t.editor.get("nativeEditor"),n=i.getSelection().getRanges()[0],o=t.data.selectionData,a=new CKEDITOR.Link(i).getFromSelection(),r=i.isSelectionEmpty(),s=!o.element||"img"!==o.element.getName();return!(!(r&&s&&a&&a.getText().length!==n.endOffset&&a)||a.isReadOnly()||e(n,a))},n=function(e){var t=e.data.selectionData,i=!1;if(e.editor){var n=e.editor._getNativeEditor();i=n.isSelectionEmpty()}var o=function(e){return"image"===e.getAttribute("data-widget")||e.getAscendant(function(e){return"image"===e.getAttribute("data-widget")})};return!(!t.element||"img"!==t.element.getName()||i||t.element.isReadOnly()&&!o(t.element))},o=function(e){var t=e.editor.get("nativeEditor"),i=t.isSelectionEmpty(),n=e.data.selectionData;return!(n.element||!n.region||i||t.getSelection().getCommonAncestor().isReadOnly())},a=function(e){var t=e.editor.get("nativeEditor"),i=new CKEDITOR.Table(t),n=i.getFromSelection();return!(!n||!i.isEditable(n))};AlloyEditor.SelectionTest={embed:t,image:n,link:i,table:a,text:o}}(),function(){var e=[{name:"embed",buttons:["embedRemove","embedEdit"],test:AlloyEditor.SelectionTest.embed},{name:"link",buttons:["linkEdit"],test:AlloyEditor.SelectionTest.link},{name:"image",buttons:["imageLeft","imageCenter","imageRight"],setPosition:AlloyEditor.SelectionSetPosition.image,test:AlloyEditor.SelectionTest.image},{name:"text",buttons:{full:[["Font","FontSize","separator","bold","italic","underline","strike","separator","link"],["paragraphAlign","separator","ul","ol","separator","h1","h2","separator","indentBlock","outdentBlock","separator","TextColor","BGColor","separator","code","quote","separator","removeFormat"]],simple:["styles","bold","italic","underline","link"]},test:AlloyEditor.SelectionTest.text},{name:"table",buttons:["tableHeading","tableRow","tableColumn","tableCell","tableRemove"],getArrowBoxClasses:AlloyEditor.SelectionGetArrowBoxClasses.table,setPosition:AlloyEditor.SelectionSetPosition.table,test:AlloyEditor.SelectionTest.table}];AlloyEditor.Selections=e}(),function(){function e(t){e.superclass.constructor.call(this,t)}AlloyEditor.OOP.extend(e,AlloyEditor.Base,{initializer:function(e){var t=this.get("srcNode");this.get("enableContentEditable")&&t.setAttribute("contenteditable","true");var i=CKEDITOR.inline(t);if(i.config.allowedContent=this.get("allowedContent"),i.config.toolbars=this.get("toolbars"),i.config.removePlugins=this.get("removePlugins"),i.config.extraPlugins=this.get("extraPlugins"),i.config.placeholderClass=this.get("placeholderClass"),i.config.pasteFromWordRemoveStyles=!1,i.config.pasteFromWordRemoveFontStyles=!1,i.config.selectionKeystrokes=this.get("selectionKeystrokes"),AlloyEditor.Lang.mix(i.config,e),CKEDITOR.env.ie&&!CKEDITOR.env.edge){var n=11===CKEDITOR.env.version?"ae_dragresize_ie11":"ae_dragresize_ie";i.config.extraPlugins=i.config.extraPlugins.replace("ae_dragresize",n),i.config.removePlugins=i.config.removePlugins.replace("ae_dragresize",n)}i.once("contentDom",function(){this._addReadOnlyLinkClickListener(i);var e=i.editable();e.addClass("ae-editable")}.bind(this)),this._editor=i,AlloyEditor.loadLanguageResources(this._renderUI.bind(this))},destructor:function(){this._destroyed=!0,this._editorUIElement&&(i.unmountComponentAtNode(this._editorUIElement),this._editorUIElement.parentNode.removeChild(this._editorUIElement));var e=this.get("nativeEditor");if(e){var t=e.editable();t&&(t.removeClass("ae-editable"),this.get("enableContentEditable")&&this.get("srcNode").setAttribute("contenteditable","false")),this._clearSelections(),e.destroy()}},_clearSelections:function(){var e=this.get("nativeEditor"),t="function"!=typeof window.getSelection;t?e.document.$.selection.empty():e.document.getWindow().$.getSelection().removeAllRanges()},_addReadOnlyLinkClickListener:function(e){e.editable().on("click",this._defaultReadOnlyClickFn,this,{editor:e})},_defaultReadOnlyClickFn:function(e){var t=e.data.$,i=t.ctrlKey||t.metaKey,n=this._editor.config.readOnly||i;if(t.preventDefault(),n&&e.listenerData.editor.editable().editor.fire("readOnlyClick",e.data)!==!1){var o=new CKEDITOR.dom.elementPath(e.data.getTarget(),this),a=o.lastElement;if(a){var r=a.$.attributes.href?a.$.attributes.href.value:null,s=i?"_blank":a.$.attributes.target?a.$.attributes.target.value:null;this._redirectLink(r,s)}}},_getNativeEditor:function(){return this._editor},_redirectLink:function(e,t){t&&e?window.open(e,t):e&&(window.location.href=e)},_renderUI:function(){if(!this._destroyed){var e=document.createElement("div");e.className="ae-ui";var n=this.get("uiNode")||document.body;n.appendChild(e),this._mainUI=i.render(t.createElement(AlloyEditor.UI,{editor:this,eventsDelay:this.get("eventsDelay"),toolbars:this.get("toolbars")}),e),this._editorUIElement=e,this.get("nativeEditor").fire("uiReady")}},_toElement:function(e){return AlloyEditor.Lang.isString(e)&&(e=document.getElementById(e)),e},_validateAllowedContent:function(e){return AlloyEditor.Lang.isString(e)||AlloyEditor.Lang.isObject(e)||AlloyEditor.Lang.isBoolean(e)},_validateToolbars:function(e){return AlloyEditor.Lang.isObject(e)||AlloyEditor.Lang.isNull(e)}},{ATTRS:{allowedContent:{validator:"_validateAllowedContent",value:!0,writeOnce:!0},enableContentEditable:{validator:AlloyEditor.Lang.isBoolean,value:!0,writeOnce:!0},eventsDelay:{validator:AlloyEditor.Lang.isNumber,value:100},extraPlugins:{validator:AlloyEditor.Lang.isString,value:"ae_uicore,ae_selectionregion,ae_selectionkeystrokes,ae_imagealignment,ae_addimages,ae_placeholder,ae_tabletools,ae_tableresize,ae_autolink,ae_embed,ae_autolist,ae_dragresize,ae_uibridge,ae_richcombobridge,ae_panelmenubuttonbridge,ae_menubridge,ae_menubuttonbridge,ae_buttonbridge,font,colorbutton",writeOnce:!0},mode:{validator:AlloyEditor.Lang.isString,value:"simple"},nativeEditor:{getter:"_getNativeEditor",readOnly:!0},placeholderClass:{validator:AlloyEditor.Lang.isString,value:"ae-placeholder",writeOnce:!0},removePlugins:{validator:AlloyEditor.Lang.isString,value:"contextmenu,toolbar,elementspath,resize,liststyle,link",writeOnce:!0},selectionKeystrokes:{validator:AlloyEditor.Lang.isArray,value:[{keys:CKEDITOR.CTRL+76,selection:"link"},{keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76,selection:"embed"}]},srcNode:{setter:"_toElement",writeOnce:!0},toolbars:{validator:"_validateToolbars",value:{add:{buttons:["image","embed","camera","hline","table"],tabIndex:2},styles:{selections:AlloyEditor.Selections,tabIndex:1}}},uiNode:{setter:"_toElement",writeOnce:!0}}}),CKEDITOR.event.implementOn(e),AlloyEditor.Core=e}(),function(){var e={applyStyle:function(){if(AlloyEditor.Lang.isFunction(this.isActive)&&AlloyEditor.Lang.isFunction(this.getStyle)){var e=this.props.editor.get("nativeEditor");e.getSelection().lock(),this.isActive()?e.removeStyle(this.getStyle()):e.applyStyle(this.getStyle()),e.getSelection().unlock(),e.fire("actionPerformed",this)}}};AlloyEditor.ButtonActionStyle=e}(),function(){var e={isActive:function(){var e=this.props.editor.get("nativeEditor"),t=e.getCommand(this.props.command);return!!t&&t.state===CKEDITOR.TRISTATE_ON}};AlloyEditor.ButtonCommandActive=e}(),function(){var e={propTypes:{command:n.string.isRequired,modifiesSelection:n.bool},execCommand:function(e){var t=this.props.editor.get("nativeEditor");t.execCommand(this.props.command,e),this.props.modifiesSelection&&t.selectionChange(!0),t.fire("actionPerformed",this)}};AlloyEditor.ButtonCommand=e}(),function(){var e={propTypes:{keystroke:n.object.isRequired},componentWillMount:function(){var e=this.props.editor.get("nativeEditor"),t=this.props.keystroke,i=t.name||(1e9*Math.random()>>>0).toString(),n=e.getCommand(i);n||(n=new CKEDITOR.command(e,{exec:function(e){var i=t.fn;AlloyEditor.Lang.isString(i)?this[i].call(this,e):AlloyEditor.Lang.isFunction(i)&&i.call(this,e)}.bind(this)}),e.addCommand(i,n)),this._defaultKeystrokeCommand=e.keystrokeHandler.keystrokes[t.keys],e.setKeystroke(t.keys,i)},componentWillUnmount:function(){this.props.editor.get("nativeEditor").setKeystroke(this.props.keystroke.keys,this._defaultKeystrokeCommand)}};AlloyEditor.ButtonKeystroke=e}(),function(){var e={propTypes:{editor:n.object.isRequired},mergeButtonCfgProps:function(e){e=e||this.props;var t=this.props.editor.get("nativeEditor"),i=t.config.buttonCfg||{},n=CKEDITOR.tools.merge(e,i[AlloyEditor.ButtonLinkEdit.key]);return n}};AlloyEditor.ButtonCfgProps=e}(),function(){var e={getStateClasses:function(){var e="";return AlloyEditor.Lang.isFunction(this.isActive)&&this.isActive()&&(e+="ae-button-pressed"),AlloyEditor.Lang.isFunction(this.isDisabled)&&this.isDisabled()&&(e+=" ae-button-disabled"),e}};AlloyEditor.ButtonStateClasses=e}(),function(){var e={propTypes:{style:n.oneOfType([n.object,n.string]),styleFn:n.func},componentWillMount:function(){var e=AlloyEditor.Lang,t=this.props.style;if(e.isString(t)){for(var i=t.split("."),n=this.props.editor.get("nativeEditor").config,o=i.shift();o&&e.isObject(n)&&e.isObject(n[o]);)n=n[o],o=i.shift();e.isObject(n)&&(t=n)}this._style=new CKEDITOR.style(t)},componentWillUnmount:function(){this._style=null},getStyle:function(){return this._style},isActive:function(){var e,t=this.props.editor.get("nativeEditor"),i=t.elementPath();return e=this.getStyle().checkActive(i,t)}};AlloyEditor.ButtonStyle=e}(),function(){var e={getToolbarButtonGroups:function(e,t){var i=this;return AlloyEditor.Lang.isFunction(e)&&(e=e.call(this)||[]),e.reduce(function(n,o){return Array.isArray(o)?(n.push(i.getToolbarButtons(o,t)),n):i.getToolbarButtons(e,t)},[])},getToolbarButtons:function(e,i){var n={},o=this.props.editor.get("nativeEditor"),a=o.config.buttonCfg||{};AlloyEditor.Lang.isFunction(e)&&(e=e.call(this)||[]);var r=this.filterExclusive(e.filter(function(e){return e&&(AlloyEditor.Buttons[e]||AlloyEditor.Buttons[e.name])}).map(function(e){return AlloyEditor.Lang.isString(e)?(n[e]=a[e],e=AlloyEditor.Buttons[e]):AlloyEditor.Lang.isString(e.name)&&(n[AlloyEditor.Buttons[e.name].key]=CKEDITOR.tools.merge(a[e],e.cfg),e=AlloyEditor.Buttons[e.name]),e})).map(function(e,o){var a=this.mergeExclusiveProps({ -editor:this.props.editor,key:"separator"!==e.key?e.key:e.key+"-"+o,tabKey:e.key,tabIndex:this.props.trigger&&this.props.trigger.props.tabKey===e.key?0:-1,trigger:this.props.trigger},e.key);return a=this.mergeDropdownProps(a,e.key),i&&(a=CKEDITOR.tools.merge(a,i)),a=CKEDITOR.tools.merge(a,n[e.key]),t.createElement(e,a)},this);return r}};AlloyEditor.ToolbarButtons=e}(),function(){var e={getArrowBoxClasses:function(){var e="ae-arrow-box";return AlloyEditor.Lang.isFunction(this.getInteractionPoint)&&this.getInteractionPoint()&&(e+=this.getInteractionPoint().direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?" ae-arrow-box-top":" ae-arrow-box-bottom"),e}};AlloyEditor.WidgetArrowBox=e}(),function(){var e={componentWillReceiveProps:function(e){this.setState({dropdownTrigger:null,itemDropdown:null})},getInitialState:function(){return{dropdownTrigger:null,itemDropdown:null}},mergeDropdownProps:function(e,t){return CKEDITOR.tools.merge(e,{expanded:this.state.itemDropdown===t,tabIndex:this.state.dropdownTrigger===t?0:-1,toggleDropdown:this.toggleDropdown.bind(this,t)})},toggleDropdown:function(e,t){this.setState({dropdownTrigger:e,itemDropdown:e!==this.state.itemDropdown?e:null},function(){this.state.itemDropdown||(this.moveFocus?this.moveFocus(t):i.findDOMNode(this).focus())})}};AlloyEditor.WidgetDropdown=e}(),function(){var e={cancelExclusive:function(e){this.state.itemExclusive===e&&this.setState({itemExclusive:null})},componentWillReceiveProps:function(e){this.setState({itemExclusive:null})},filterExclusive:function(e){return e.filter(function(e){return this.state.itemExclusive?this.state.itemExclusive===e.key?e:void 0:e}.bind(this))},mergeExclusiveProps:function(e,t){return CKEDITOR.tools.merge(e,{cancelExclusive:this.cancelExclusive.bind(this,t),renderExclusive:this.state.itemExclusive===t,requestExclusive:this.requestExclusive.bind(this,t)})},requestExclusive:function(e){this.setState({itemExclusive:e})}};AlloyEditor.WidgetExclusive=e}(),function(){var e=0,t=1,o=-1,a=0,r=1,s=2,l={propTypes:{onDismiss:n.func,circular:n.bool.isRequired,focusFirstChild:n.bool,descendants:n.string.isRequired,keys:n.object.isRequired},componentDidMount:function(){this._refresh()},componentDidUpdate:function(){this._refresh()},focus:function(e){if((!e||this._isValidTarget(e.target))&&this._descendants&&this._descendants.length){var t=this._descendants[this._activeDescendant];document.activeElement===t||this.props.focusFirstChild||this._descendants.indexOf(document.activeElement)===-1&&t.focus(),e&&(e.stopPropagation(),e.preventDefault())}},handleKey:function(e){if(this._isValidTarget(e.target)&&this._descendants){var t=this._getFocusAction(e);t.type&&(e.stopPropagation(),e.preventDefault(),t.type===r&&this._moveFocus(t.direction),t.type===s&&this.props.onDismiss(t.direction))}},moveFocus:function(e){e=AlloyEditor.Lang.isNumber(e)?e:0,this._moveFocus(e)},_getFocusAction:function(e){var t={type:a};if(this.props.keys){var i=this._getFocusMoveDirection(e);i&&(t.direction=i,t.type=r);var n=this._getFocusDismissAction(e,i);n.dismiss&&(t.direction=n.direction,t.type=s)}return t},_getFocusDismissAction:function(e,i){var n={direction:i,dismiss:!1};return this.props.onDismiss&&(this._isValidKey(e.keyCode,this.props.keys.dismiss)&&(n.dismiss=!0),this._isValidKey(e.keyCode,this.props.keys.dismissNext)&&(n.dismiss=!0,n.direction=t),this._isValidKey(e.keyCode,this.props.keys.dismissPrev)&&(n.dismiss=!0,n.direction=o),n.dismiss||this.props.circular||!i||(n.dismiss=i===o&&0===this._activeDescendant||i===t&&this._activeDescendant===this._descendants.length-1)),n},_getFocusMoveDirection:function(i){var n=e;return this._isValidKey(i.keyCode,this.props.keys.next)&&(n=t),this._isValidKey(i.keyCode,this.props.keys.prev)&&(n=o),i.shifKey&&(n*=-1),n},_isValidKey:function(e,t){return AlloyEditor.Lang.isArray(t)?t.indexOf(e)!==-1:e===t},_isValidTarget:function(e){var t=e.tagName.toLowerCase();return"input"!==t&&"select"!==t&&"textarea"!==t},_moveFocus:function(e){var t=this._descendants.length,i=this._descendants[this._activeDescendant];i.setAttribute("tabIndex",-1),this._activeDescendant+=e,this.props.circular?this._activeDescendant=(this._activeDescendant%t+t)%t:this._activeDescendant=Math.max(Math.min(this._activeDescendant,t-1),0),i=this._descendants[this._activeDescendant],i.setAttribute("tabIndex",0),i.focus()},_refresh:function(){var e=i.findDOMNode(this);if(e){var t=e.querySelectorAll(this.props.descendants),n=[];this._descendants=[],Array.prototype.slice.call(t).forEach(function(e){var t=e.getAttribute("data-tabindex");t?n.push(e):this._descendants.push(e)}.bind(this)),n=n.sort(function(e,t){return AlloyEditor.Lang.toInt(e.getAttribute("data-tabindex"))>AlloyEditor.Lang.toInt(t.getAttribute("data-tabindex"))}),this._descendants=n.concat(this._descendants),this._activeDescendant=0,this._descendants.some(function(e,t){if("0"===e.getAttribute("tabindex"))return this._activeDescendant=t,this.focus(),!0}.bind(this))}}};AlloyEditor.WidgetFocusManager=l}(),function(){var e={propTypes:{editorEvent:n.object},getInteractionPoint:function(){var e=this.props.editorEvent?this.props.editorEvent.data:null;if(e){var t=e.selectionData,i=e.nativeEvent,n={x:e.nativeEvent.pageX,y:t.region.top},o=t.region.direction,a=t.region.endRect,r=t.region.startRect;a&&r&&r.top===a.top&&(o=CKEDITOR.SELECTION_BOTTOM_TO_TOP);var s,l;return n.x&&n.y?(s=this._getXPoint(t,n.x),l=o===CKEDITOR.SELECTION_BOTTOM_TO_TOP?Math.min(n.y,t.region.top):Math.max(n.y,this._getYPoint(t,i))):(s=t.region.left+t.region.width/2,l=o===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this._getYPoint(t,i):t.region.top),{direction:o,x:s,y:l}}},_getXPoint:function(e,t){var i,n=e.region,o=n.startRect?n.startRect.left:n.left,a=n.endRect?n.endRect.right:n.right;if(ot)i=t;else{var r=Math.abs(o-t),s=Math.abs(a-t);i=rt.width&&(i-=e.left+e.width-t.width),n<0&&(n=0),{x:i,y:n}},getWidgetXYPoint:function(e,t,n){var o=i.findDOMNode(this),a=this.props.gutter,r=o.offsetWidth,s=r/2;return n===CKEDITOR.SELECTION_TOP_TO_BOTTOM||n===CKEDITOR.SELECTION_BOTTOM_TO_TOP?(e=e-a.left-s,t=n===CKEDITOR.SELECTION_TOP_TO_BOTTOM?t+a.top:t-o.offsetHeight-a.top):n!==CKEDITOR.SELECTION_LEFT_TO_RIGHT&&n!==CKEDITOR.SELECTION_RIGHT_TO_LEFT||(e=n===CKEDITOR.SELECTION_LEFT_TO_RIGHT?e+a.left+o.offsetHeight/2:e-3*o.offsetHeight/2-a.left,t=t-a.top-o.offsetHeight/2),e<0&&(e=0),e>document.body.offsetWidth-s&&(e=document.body.offsetWidth-s),t<0&&(t=0),[e,t]},isVisible:function(){var e=i.findDOMNode(this);if(e){var t=new CKEDITOR.dom.element(e);return t.hasClass("alloy-editor-visible")}return!1},moveToPoint:function(e,t){var n=new CKEDITOR.dom.element(i.findDOMNode(this));n.setStyles({left:e[0]+"px",top:e[1]+"px",opacity:0}),n.removeClass("alloy-editor-invisible"),this._animate(function(){n.addClass("ae-toolbar-transition"),n.addClass("alloy-editor-visible"),n.setStyles({left:t[0]+"px",top:t[1]+"px",opacity:1})})},show:function(){var e=i.findDOMNode(this),t=this.props.editor.get("uiNode"),n=t?t.scrollTop:0;if(!this.isVisible()&&e){var o=this.getInteractionPoint();if(o){var a,r,s,l,d=new CKEDITOR.dom.element(e);if(a=s=parseFloat(d.getStyle("left")),r=l=parseFloat(d.getStyle("top")),this.props.constrainToViewport){var c=this.getConstrainedPosition({height:parseFloat(e.offsetHeight),left:a,top:r,width:parseFloat(e.offsetWidth)});a=c.x,r=c.y}l=o.direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this.props.selectionData.region.bottom+n:this.props.selectionData.region.top+n,this.moveToPoint([s,l],[a,r])}}},updatePosition:function(){var e=this.getInteractionPoint(),t=i.findDOMNode(this);if(e&&t){var n=this.props.editor.get("uiNode")||document.body,o=getComputedStyle(n),a=parseInt(o.getPropertyValue("margin-left"),10),r=parseInt(o.getPropertyValue("margin-right"),10),s=a+n.clientWidth+r,l="BODY"!==n.tagName?n.scrollTop:0,d=this.getWidgetXYPoint(e.x,e.y,e.direction);d[1]+=l,d[0]<0&&(d[0]=0),d[0]>s-t.offsetWidth&&(d[0]=s-t.offsetWidth),new CKEDITOR.dom.element(t).setStyles({left:d[0]+"px",top:d[1]+"px"})}},_animate:function(e){window.requestAnimationFrame?this._animationFrameId=window.requestAnimationFrame(e):e()}};AlloyEditor.WidgetPosition=e}(),function(){var e=o({displayName:"ButtonBold",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"bold"},getDefaultProps:function(){return{command:"bold",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+66},style:"coreStyles_bold"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.bold,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-bold",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.bold},t.createElement("span",{className:"ae-icon-bold"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonBold=e}(),function(){var e=o({displayName:"ButtonCameraImage",statics:{key:"cameraImage"},getDefaultProps:function(){return{videoWidth:320}},componentDidMount:function(){i.findDOMNode(this.refs.buttonTakePhoto).focus()},componentWillUnmount:function(){this._stream&&(this._stream.stop?this._stream.stop():this._stream.getVideoTracks&&this._stream.getVideoTracks().forEach(function(e){e.stop()}),this._stream=null)},render:function(){var e=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return e.call(navigator,{video:!0,audio:!1},this._handleStreamSuccess,this._handleStreamError),t.createElement("div",{className:"ae-camera"},t.createElement("video",{ref:"videoContainer"},"Video stream not available."),t.createElement("button",{className:"ae-camera-shoot",onClick:this.takePhoto,ref:"buttonTakePhoto"},"Take photo"),t.createElement("canvas",{className:"ae-camera-canvas",ref:"canvasContainer"}))},takePhoto:function(){var e=i.findDOMNode(this.refs.videoContainer),t=i.findDOMNode(this.refs.canvasContainer),n=t.getContext("2d"),o=this._videoHeight,a=this.props.videoWidth;if(a&&o){t.width=a,t.height=o,n.drawImage(e,0,0,a,o);var r=t.toDataURL("image/png"),s=CKEDITOR.dom.element.createFromHtml(''),l=this.props.editor.get("nativeEditor");l.insertElement(s),this.props.cancelExclusive(),l.fire("actionPerformed",this),l.fire("imageCameraAdd",s)}},_handleStreamError:function(e){window.alert("An error occurred! "+e)},_handleStreamSuccess:function(e){var t=i.findDOMNode(this.refs.videoContainer),n=i.findDOMNode(this.refs.canvasContainer);t.addEventListener("canplay",function(e){var i=t.videoHeight/(t.videoWidth/this.props.videoWidth);isNaN(i)&&(i=this.props.videoWidth/(4/3)),t.setAttribute("width",this.props.videoWidth),t.setAttribute("height",i),n.setAttribute("width",this.props.videoWidth),n.setAttribute("height",i),this._videoHeight=i}.bind(this),!1),this._stream=e,navigator.mozGetUserMedia?t.mozSrcObject=e:t.src=(window.URL||window.webkitURL).createObjectURL(e),t.play(),i.findDOMNode(this.refs.buttonTakePhoto).disabled=!1}});AlloyEditor.ButtonCameraImage=e}(),function(){var e=o({displayName:"ButtonCamera",propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"camera"},render:function(){if(this.props.renderExclusive)return t.createElement(AlloyEditor.ButtonCameraImage,this.props);var i=!(navigator.getUserMedia||navigator.webkitGetUserMedia&&"https"===location.protocol||navigator.mozGetUserMedia||navigator.msGetUserMedia),n=i?AlloyEditor.Strings.cameraDisabled:AlloyEditor.Strings.camera;return t.createElement("button",{"aria-label":n,className:"ae-button","data-type":"button-image-camera",disabled:i,onClick:this.props.requestExclusive.bind(e.key),tabIndex:this.props.tabIndex,title:n},t.createElement("span",{className:"ae-icon-camera"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCamera=e}(),function(){var e=o({displayName:"ButtonCode",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"code"},getDefaultProps:function(){return{style:{element:"pre"}}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.code,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-code",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.code},t.createElement("span",{className:"ae-icon-code"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCode=e}(),function(){var e=o({displayName:"ButtonCommandListItem",mixins:[AlloyEditor.ButtonCommand],propTypes:{description:n.string.isRequired,icon:n.string},statics:{key:"buttonCommandListItem"},render:function(){var e="ae-icon-"+this.props.icon;return t.createElement("button",{"aria-label":this.props.description,className:this._getClassName(),onClick:this.execCommand,tabIndex:this.props.tabIndex},this.props.icon&&t.createElement("span",{className:e}),this.props.description)},_getClassName:function(){var e="ae-container ae-toolbar-element";return e}});AlloyEditor.ButtonCommandListItem=e}(),function(){var e=o({displayName:"ButtonCommandsList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{commands:n.arrayOf(n.object),editor:n.object.isRequired,listId:n.string},statics:{key:"buttonCommandsList"},componentDidMount:function(){i.findDOMNode(this).focus()},getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},render:function(){return t.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},t.createElement("ul",{className:"ae-listbox",id:this.props.listId,role:"listbox"},this._renderActions(this.props.commands)))},_renderActions:function(e){var i,n=this.props.editor;return e&&e.length&&(i=e.map(function(e){return t.createElement("li",{key:e.command,role:"option"},t.createElement(AlloyEditor.ButtonCommandListItem,{command:e.command,description:"string"==typeof e.label?e.label:e.label(),icon:e.icon,editor:n}))})),i}});AlloyEditor.ButtonCommandsList=e}(),function(){var e=o({displayName:"ButtonDropdown",mixins:[AlloyEditor.WidgetFocusManager],getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},statics:{key:"dropdown"},render:function(){return t.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},t.createElement("ul",{className:"ae-listbox",role:"listbox"},this.props.children))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonDropdown=e}(),function(){var e=13,a=27,r=o({displayName:"ButtonEmbedEdit",propTypes:{editor:n.object.isRequired},statics:{key:"embedEdit"},componentDidMount:function(){(this.props.renderExclusive||this.props.manualSelection)&&(window.requestAnimationFrame?window.requestAnimationFrame(this._focusLinkInput):setTimeout(this._focusLinkInput,0))},componentWillReceiveProps:function(e){this.replaceState(this.getInitialState())},getInitialState:function(){var e,t=this.props.editor.get("nativeEditor"),i=t.getSelection();if(i){var n=i.getSelectedElement();n&&(e=n.findOne('[data-widget="ae_embed"]'))}var o=e?e.getAttribute("data-ae-embed-url"):"";return{element:e,initialLink:{href:o},linkHref:o}},render:function(){var e={opacity:this.state.linkHref?1:0};return t.createElement("div",{className:"ae-container-edit-link"},t.createElement("button",{"aria-label":AlloyEditor.Strings.deleteEmbed,className:"ae-button","data-type":"button-embed-remove",disabled:!this.state.element,onClick:this._removeEmbed,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.deleteEmbed},t.createElement("span",{className:"ae-icon-bin"})),t.createElement("div",{className:"ae-container-input xxl"},t.createElement("input",{className:"ae-input",onChange:this._handleLinkHrefChange,onKeyDown:this._handleKeyDown,placeholder:AlloyEditor.Strings.editLink,ref:"linkInput",type:"text",value:this.state.linkHref}),t.createElement("button",{"aria-label":AlloyEditor.Strings.clearInput,className:"ae-button ae-icon-remove",onClick:this._clearLink,style:e,title:AlloyEditor.Strings.clear})),t.createElement("button",{"aria-label":AlloyEditor.Strings.confirm,className:"ae-button",disabled:!this._isValidState(),onClick:this._embedLink,title:AlloyEditor.Strings.confirm},t.createElement("span",{className:"ae-icon-ok"})))},_clearLink:function(){this.setState({linkHref:""})},_embedLink:function(){var e=this.props.editor.get("nativeEditor");e.execCommand("embedUrl",{url:this.state.linkHref}),this.props.cancelExclusive()},_focusLinkInput:function(){i.findDOMNode(this.refs.linkInput).focus()},_handleKeyDown:function(t){if(t.keyCode!==e&&t.keyCode!==a||t.preventDefault(),t.keyCode===e)this._embedLink();else if(t.keyCode===a){var i=this.props.editor.get("nativeEditor");this.props.cancelExclusive(),i.fire("actionPerformed",this)}},_handleLinkHrefChange:function(e){this.setState({linkHref:e.target.value})},_isValidState:function(){var e=this.state.linkHref&&this.state.linkHref!==this.state.initialLink.href;return e},_removeEmbed:function(){var e=this.props.editor.get("nativeEditor"),t=this.state.element.getAscendant(function(e){return e.hasClass("cke_widget_wrapper")});t.remove(),e.fire("actionPerformed",this)}});AlloyEditor.Buttons[r.key]=AlloyEditor.ButtonEmbedEdit=r}(),function(){var e=o({displayName:"ButtonEmbed",mixins:[AlloyEditor.ButtonKeystroke],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"embed"},getDefaultProps:function(){return{keystroke:{fn:"_requestExclusive",keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76}}},render:function(){return this.props.renderExclusive?t.createElement(AlloyEditor.ButtonEmbedEdit,this.props):t.createElement("button",{"aria-label":AlloyEditor.Strings.link,className:"ae-button","data-type":"button-embed",onClick:this._requestExclusive,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.link},t.createElement("span",{className:"ae-icon-add"}))},_requestExclusive:function(){this.props.requestExclusive(e.key)}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonEmbed=e}(),function(){var e=o({displayName:"ButtonH1",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"h1"},getDefaultProps:function(){return{style:{element:"h1"}}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.h1,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h1",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h1},t.createElement("span",{className:"ae-icon-h1"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH1=e}(),function(){var e=o({displayName:"ButtonH2",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"h2"},getDefaultProps:function(){return{style:{element:"h2"}}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.h2,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h2",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h2},t.createElement("span",{className:"ae-icon-h2"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH2=e}(),function(){var e=o({displayName:"ButtonHline",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonCommand],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"hline"},getDefaultProps:function(){return{command:"horizontalrule",style:{element:"hr"}}},render:function(){return t.createElement("button",{"aria-label":AlloyEditor.Strings.horizontalrule,className:"ae-button","data-type":"button-hline",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.horizontalrule},t.createElement("span",{className:"ae-icon-separator"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonHline=e}(),function(){var e=o({displayName:"ButtonImageAlignCenter",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"imageCenter"},getDefaultProps:function(){return{command:"justifycenter"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.alignCenter,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-center",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignCenter},t.createElement("span",{className:"ae-icon-align-center"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignCenter=e}(),function(){var e=o({displayName:"ButtonImageAlignLeft",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"imageLeft"},getDefaultProps:function(){return{command:"justifyleft"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.alignLeft,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-left",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignLeft},t.createElement("span",{className:"ae-icon-align-left"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignLeft=e}(),function(){var e=o({displayName:"ButtonImageAlignRight",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"imageRight"},getDefaultProps:function(){return{command:"justifyright"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.alignRight,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-right",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignRight},t.createElement("span",{className:"ae-icon-align-right"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignRight=e}(),function(){var e=o({displayName:"ButtonImage",propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"image"},render:function(){var e={display:"none"};return t.createElement("div",null,t.createElement("button",{"aria-label":AlloyEditor.Strings.image,className:"ae-button","data-type":"button-image",onClick:this.handleClick,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.image},t.createElement("span",{className:"ae-icon-image"})),t.createElement("input",{accept:"image/*",onChange:this._onInputChange,ref:"fileInput",style:e,type:"file"}))},handleClick:function(e){i.findDOMNode(this.refs.fileInput).click()},_onInputChange:function(){var e=i.findDOMNode(this.refs.fileInput);if(e.files.length){var t=new FileReader,n=e.files[0];t.onload=function(e){var t=this.props.editor.get("nativeEditor"),i=t.fire("beforeImageAdd",{imageFiles:n});if(i){var o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o),t.fire("actionPerformed",this);var a={el:o,file:n};t.fire("imageAdd",a)}}.bind(this),t.readAsDataURL(n),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=o({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},t.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=o({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},t.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=o({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:n.func,autocompleteSelected:n.bool,term:n.string,setAutocompleteState:n.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?t.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var i=this.props.handleLinkAutocompleteClick;return e.map(function(e){var n=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return t.createElement("li",{key:e.url,role:"option"},t.createElement("button",{className:n,onClick:i,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var a=Object.assign||function(e){for(var t=1;t0,d="ae-container";return l&&(d+=" ae-container-column"),t.createElement("div",{"aria-label":AlloyEditor.Strings.styles,className:a,"data-tabindex":this.props.config.tabIndex||0,onFocus:this.focus,onKeyDown:this.handleKey,role:"toolbar",tabIndex:"-1"},t.createElement("div",{className:d},s.map(function(e,i){return Array.isArray(e)?t.createElement("div",{className:"ae-row",key:i.toString()},e.map(function(e){return e})):e})))}return null},_getSelectionFunction:function(e){var t,i=AlloyEditor.Lang;if(i.isFunction(e))t=e;else if(i.isString(e)){for(var n=e.split("."),o=window,a=n.shift();a&&i.isObject(o)&&i.isObject(o[a]);)o=o[a],a=n.shift();i.isFunction(o)&&(t=o)}return t},_getCurrentSelection:function(){var e,t=this.props.editorEvent?this.props.editorEvent.data:null;return t&&this.props.config.selections.some(function(i){var n,o=this._getSelectionFunction(i.test);return o&&(n=t.manualSelection===i.name||o({data:t,editor:this.props.editor})),n&&(e=i),n},this),e},_updatePosition:function(){if(i.findDOMNode(this)){var e,t=this._getCurrentSelection();if(t){var n=this._getSelectionFunction(t.setPosition);n&&(e=n.call(this,{editor:this.props.editor,editorEvent:this.props.editorEvent,selectionData:this.props.selectionData}))}e||(this.updatePosition(),this.show())}}});AlloyEditor.Toolbars[a.key]=AlloyEditor.ToolbarStyles=a}(),function(){var e=o({displayName:"UI",mixins:[AlloyEditor.WidgetExclusive,AlloyEditor.WidgetFocusManager],propTypes:{ariaUpdates:n.object,editor:n.object.isRequired,eventsDelay:n.number,toolbars:n.object.isRequired},getInitialState:function(){return{hidden:!1}},getDefaultProps:function(){return{circular:!0,descendants:"[class^=ae-toolbar-]",eventsDelay:0,keys:{next:9}}},componentDidMount:function(){var e=this.props.editor.get("nativeEditor");e.on("editorInteraction",this._onEditorInteraction,this),e.on("actionPerformed",this._onActionPerformed,this),e.on("key",this._onEditorKey,this),this._mousedownListener=function(e){this._setUIHidden(e.target)}.bind(this),this._keyDownListener=CKEDITOR.tools.debounce(function(e){this._setUIHidden(document.activeElement)},this.props.eventsDelay,this),document.addEventListener("mousedown",this._mousedownListener),document.addEventListener("keydown",this._keyDownListener)},componentDidUpdate:function(e,t){var n=i.findDOMNode(this),o=this.props.editor.get("nativeEditor");n&&o.fire("ariaUpdate",{message:this._getAvailableToolbarsMessage(n)}),o.fire("editorUpdate",{prevProps:e,prevState:t,props:this.props,state:this.state})},_getAriaUpdateTemplate:function(e){return this._ariaUpdateTemplates||(this._ariaUpdateTemplates={}),this._ariaUpdateTemplates[e]||(this._ariaUpdateTemplates[e]=new CKEDITOR.template(this._getAriaUpdates()[e])),this._ariaUpdateTemplates[e]},_getAriaUpdates:function(){return this.props.ariaUpdates||{noToolbar:AlloyEditor.Strings.ariaUpdateNoToolbar,oneToolbar:AlloyEditor.Strings.ariaUpdateOneToolbar,manyToolbars:AlloyEditor.Strings.ariaUpdateManyToolbars}},_getAvailableToolbarsMessage:function(e){var t=e.querySelectorAll('[role="toolbar"]');if(t.length){var i=Array.prototype.slice.call(t).map(function(e){return e.getAttribute("aria-label")}),n=1===i.length?"oneToolbar":"manyToolbars";return this._getAriaUpdateTemplate(n).output({toolbars:i.join(",").replace(/,([^,]*)$/," and $1")})}return this._getAriaUpdates().noToolbar},componentWillUnmount:function(){this._mousedownListener&&document.removeEventListener("mousedown",this._mousedownListener),this._keyDownListener&&(this._keyDownListener.detach(),document.removeEventListener("keydown",this._keyDownListener))},render:function(){if(this.state.hidden)return null;var e=Object.keys(this.props.toolbars).map(function(e){return AlloyEditor.Toolbars[e]||window[e]});return e=this.filterExclusive(e).map(function(e){var i=this.mergeExclusiveProps({config:this.props.toolbars[e.key],editor:this.props.editor,editorEvent:this.state.editorEvent,key:e.key,onDismiss:this._onDismissToolbarFocus,selectionData:this.state.selectionData},e.key);return t.createElement(e,i)}.bind(this)),t.createElement("div",{className:"ae-toolbars",onKeyDown:this.handleKey},e)},_onActionPerformed:function(e){var t=this.props.editor.get("nativeEditor");t.focus(),this.setState({itemExclusive:null,selectionData:t.getSelectionData()})},_onDismissToolbarFocus:function(){var e=this.props.editor.get("nativeEditor");e.focus()},_onEditorInteraction:function(e){this.setState({editorEvent:e,hidden:!1,itemExclusive:null,selectionData:e.data.selectionData})},_onEditorKey:function(e){var t=e.data.domEvent.$;t.altKey&&121===t.keyCode&&this.focus()},_setUIHidden:function(e){var t=i.findDOMNode(this);if(t){var n=this.props.editor.get("nativeEditor").editable(),o=e.parentNode,a=new CKEDITOR.dom.node(e);if(n){var r=n.$===e||n.contains(a)||new CKEDITOR.dom.element(t).contains(a);o&&(r=r||"ckimgrsz"===o.id),r||this.setState({hidden:!0})}else this.setState({hidden:!0})}}});AlloyEditor.UI=e}()}}(); \ No newline at end of file +editor:this.props.editor,key:"separator"!==e.key?e.key:e.key+"-"+o,tabKey:e.key,tabIndex:this.props.trigger&&this.props.trigger.props.tabKey===e.key?0:-1,trigger:this.props.trigger},e.key);return a=this.mergeDropdownProps(a,e.key),i&&(a=CKEDITOR.tools.merge(a,i)),a=CKEDITOR.tools.merge(a,n[e.key]),t.createElement(e,a)},this);return r}};AlloyEditor.ToolbarButtons=e}(),function(){var e={getArrowBoxClasses:function(){var e="ae-arrow-box";return AlloyEditor.Lang.isFunction(this.getInteractionPoint)&&this.getInteractionPoint()&&(e+=this.getInteractionPoint().direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?" ae-arrow-box-top":" ae-arrow-box-bottom"),e}};AlloyEditor.WidgetArrowBox=e}(),function(){var e={componentWillReceiveProps:function(e){this.setState({dropdownTrigger:null,itemDropdown:null})},getInitialState:function(){return{dropdownTrigger:null,itemDropdown:null}},mergeDropdownProps:function(e,t){return CKEDITOR.tools.merge(e,{expanded:this.state.itemDropdown===t,tabIndex:this.state.dropdownTrigger===t?0:-1,toggleDropdown:this.toggleDropdown.bind(this,t)})},toggleDropdown:function(e,t){this.setState({dropdownTrigger:e,itemDropdown:e!==this.state.itemDropdown?e:null},function(){this.state.itemDropdown||(this.moveFocus?this.moveFocus(t):i.findDOMNode(this).focus())})}};AlloyEditor.WidgetDropdown=e}(),function(){var e={cancelExclusive:function(e){this.state.itemExclusive===e&&this.setState({itemExclusive:null})},componentWillReceiveProps:function(e){this.setState({itemExclusive:null})},filterExclusive:function(e){return e.filter(function(e){return this.state.itemExclusive?this.state.itemExclusive===e.key?e:void 0:e}.bind(this))},mergeExclusiveProps:function(e,t){return CKEDITOR.tools.merge(e,{cancelExclusive:this.cancelExclusive.bind(this,t),renderExclusive:this.state.itemExclusive===t,requestExclusive:this.requestExclusive.bind(this,t)})},requestExclusive:function(e){this.setState({itemExclusive:e})}};AlloyEditor.WidgetExclusive=e}(),function(){var e=0,t=1,o=-1,a=0,r=1,s=2,l={propTypes:{onDismiss:n.func,circular:n.bool.isRequired,focusFirstChild:n.bool,descendants:n.string.isRequired,keys:n.object.isRequired},componentDidMount:function(){this._refresh()},componentDidUpdate:function(){this._refresh()},focus:function(e){if((!e||this._isValidTarget(e.target))&&this._descendants&&this._descendants.length){var t=this._descendants[this._activeDescendant];document.activeElement===t||this.props.focusFirstChild||this._descendants.indexOf(document.activeElement)===-1&&t.focus(),e&&(e.stopPropagation(),e.preventDefault())}},handleKey:function(e){if(this._isValidTarget(e.target)&&this._descendants){var t=this._getFocusAction(e);t.type&&(e.stopPropagation(),e.preventDefault(),t.type===r&&this._moveFocus(t.direction),t.type===s&&this.props.onDismiss(t.direction))}},moveFocus:function(e){e=AlloyEditor.Lang.isNumber(e)?e:0,this._moveFocus(e)},_getFocusAction:function(e){var t={type:a};if(this.props.keys){var i=this._getFocusMoveDirection(e);i&&(t.direction=i,t.type=r);var n=this._getFocusDismissAction(e,i);n.dismiss&&(t.direction=n.direction,t.type=s)}return t},_getFocusDismissAction:function(e,i){var n={direction:i,dismiss:!1};return this.props.onDismiss&&(this._isValidKey(e.keyCode,this.props.keys.dismiss)&&(n.dismiss=!0),this._isValidKey(e.keyCode,this.props.keys.dismissNext)&&(n.dismiss=!0,n.direction=t),this._isValidKey(e.keyCode,this.props.keys.dismissPrev)&&(n.dismiss=!0,n.direction=o),n.dismiss||this.props.circular||!i||(n.dismiss=i===o&&0===this._activeDescendant||i===t&&this._activeDescendant===this._descendants.length-1)),n},_getFocusMoveDirection:function(i){var n=e;return this._isValidKey(i.keyCode,this.props.keys.next)&&(n=t),this._isValidKey(i.keyCode,this.props.keys.prev)&&(n=o),i.shifKey&&(n*=-1),n},_isValidKey:function(e,t){return AlloyEditor.Lang.isArray(t)?t.indexOf(e)!==-1:e===t},_isValidTarget:function(e){var t=e.tagName.toLowerCase();return"input"!==t&&"select"!==t&&"textarea"!==t},_moveFocus:function(e){var t=this._descendants.length,i=this._descendants[this._activeDescendant];i.setAttribute("tabIndex",-1),this._activeDescendant+=e,this.props.circular?this._activeDescendant=(this._activeDescendant%t+t)%t:this._activeDescendant=Math.max(Math.min(this._activeDescendant,t-1),0),i=this._descendants[this._activeDescendant],i.setAttribute("tabIndex",0),i.focus()},_refresh:function(){var e=i.findDOMNode(this);if(e){var t=e.querySelectorAll(this.props.descendants),n=[];this._descendants=[],Array.prototype.slice.call(t).forEach(function(e){var t=e.getAttribute("data-tabindex");t?n.push(e):this._descendants.push(e)}.bind(this)),n=n.sort(function(e,t){return AlloyEditor.Lang.toInt(e.getAttribute("data-tabindex"))>AlloyEditor.Lang.toInt(t.getAttribute("data-tabindex"))}),this._descendants=n.concat(this._descendants),this._activeDescendant=0,this._descendants.some(function(e,t){if("0"===e.getAttribute("tabindex"))return this._activeDescendant=t,this.focus(),!0}.bind(this))}}};AlloyEditor.WidgetFocusManager=l}(),function(){var e={propTypes:{editorEvent:n.object},getInteractionPoint:function(){var e=this.props.editorEvent?this.props.editorEvent.data:null;if(e){var t=e.selectionData,i=e.nativeEvent,n={x:e.nativeEvent.pageX,y:t.region.top},o=t.region.direction,a=t.region.endRect,r=t.region.startRect;a&&r&&r.top===a.top&&(o=CKEDITOR.SELECTION_BOTTOM_TO_TOP);var s,l;return n.x&&n.y?(s=this._getXPoint(t,n.x),l=o===CKEDITOR.SELECTION_BOTTOM_TO_TOP?Math.min(n.y,t.region.top):Math.max(n.y,this._getYPoint(t,i))):(s=t.region.left+t.region.width/2,l=o===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this._getYPoint(t,i):t.region.top),{direction:o,x:s,y:l}}},_getXPoint:function(e,t){var i,n=e.region,o=n.startRect?n.startRect.left:n.left,a=n.endRect?n.endRect.right:n.right;if(ot)i=t;else{var r=Math.abs(o-t),s=Math.abs(a-t);i=rt.width&&(i-=e.left+e.width-t.width),n<0&&(n=0),{x:i,y:n}},getWidgetXYPoint:function(e,t,n){var o=i.findDOMNode(this),a=this.props.gutter,r=o.offsetWidth,s=r/2;return n===CKEDITOR.SELECTION_TOP_TO_BOTTOM||n===CKEDITOR.SELECTION_BOTTOM_TO_TOP?(e=e-a.left-s,t=n===CKEDITOR.SELECTION_TOP_TO_BOTTOM?t+a.top:t-o.offsetHeight-a.top):n!==CKEDITOR.SELECTION_LEFT_TO_RIGHT&&n!==CKEDITOR.SELECTION_RIGHT_TO_LEFT||(e=n===CKEDITOR.SELECTION_LEFT_TO_RIGHT?e+a.left+o.offsetHeight/2:e-3*o.offsetHeight/2-a.left,t=t-a.top-o.offsetHeight/2),e<0&&(e=0),e>document.body.offsetWidth-s&&(e=document.body.offsetWidth-s),t<0&&(t=0),[e,t]},isVisible:function(){var e=i.findDOMNode(this);if(e){var t=new CKEDITOR.dom.element(e);return t.hasClass("alloy-editor-visible")}return!1},moveToPoint:function(e,t){var n=new CKEDITOR.dom.element(i.findDOMNode(this));n.setStyles({left:e[0]+"px",top:e[1]+"px",opacity:0,pointerEvents:"none"}),n.removeClass("alloy-editor-invisible"),this._animate(function(){n.addClass("ae-toolbar-transition"),n.addClass("alloy-editor-visible"),n.setStyles({left:t[0]+"px",top:t[1]+"px",opacity:1})}),n.$&&n.$.addEventListener("transitionend",function(){n.setStyles({pointerEvents:""})})},show:function(){var e=i.findDOMNode(this),t=this.props.editor.get("uiNode"),n=t?t.scrollTop:0;if(!this.isVisible()&&e){var o=this.getInteractionPoint();if(o){var a,r,s,l,d=new CKEDITOR.dom.element(e);if(a=s=parseFloat(d.getStyle("left")),r=l=parseFloat(d.getStyle("top")),this.props.constrainToViewport){var c=this.getConstrainedPosition({height:parseFloat(e.offsetHeight),left:a,top:r,width:parseFloat(e.offsetWidth)});a=c.x,r=c.y}l=o.direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this.props.selectionData.region.bottom+n:this.props.selectionData.region.top+n,this.moveToPoint([s,l],[a,r])}}},updatePosition:function(){var e=this.getInteractionPoint(),t=i.findDOMNode(this);if(e&&t){var n=this.props.editor.get("uiNode")||document.body,o=getComputedStyle(n),a=parseInt(o.getPropertyValue("margin-left"),10),r=parseInt(o.getPropertyValue("margin-right"),10),s=a+n.clientWidth+r,l="BODY"!==n.tagName?n.scrollTop:0,d=this.getWidgetXYPoint(e.x,e.y,e.direction);d[1]+=l,d[0]<0&&(d[0]=0),d[0]>s-t.offsetWidth&&(d[0]=s-t.offsetWidth),new CKEDITOR.dom.element(t).setStyles({left:d[0]+"px",top:d[1]+"px"})}},_animate:function(e){window.requestAnimationFrame?this._animationFrameId=window.requestAnimationFrame(e):e()}};AlloyEditor.WidgetPosition=e}(),function(){var e=o({displayName:"ButtonBold",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"bold"},getDefaultProps:function(){return{command:"bold",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+66},style:"coreStyles_bold"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.bold,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-bold",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.bold},t.createElement("span",{className:"ae-icon-bold"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonBold=e}(),function(){var e=o({displayName:"ButtonCameraImage",statics:{key:"cameraImage"},getDefaultProps:function(){return{videoWidth:320}},componentDidMount:function(){i.findDOMNode(this.refs.buttonTakePhoto).focus()},componentWillUnmount:function(){this._stream&&(this._stream.stop?this._stream.stop():this._stream.getVideoTracks&&this._stream.getVideoTracks().forEach(function(e){e.stop()}),this._stream=null)},render:function(){var e=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return e.call(navigator,{video:!0,audio:!1},this._handleStreamSuccess,this._handleStreamError),t.createElement("div",{className:"ae-camera"},t.createElement("video",{ref:"videoContainer"},"Video stream not available."),t.createElement("button",{className:"ae-camera-shoot",onClick:this.takePhoto,ref:"buttonTakePhoto"},"Take photo"),t.createElement("canvas",{className:"ae-camera-canvas",ref:"canvasContainer"}))},takePhoto:function(){var e=i.findDOMNode(this.refs.videoContainer),t=i.findDOMNode(this.refs.canvasContainer),n=t.getContext("2d"),o=this._videoHeight,a=this.props.videoWidth;if(a&&o){t.width=a,t.height=o,n.drawImage(e,0,0,a,o);var r=t.toDataURL("image/png"),s=CKEDITOR.dom.element.createFromHtml(''),l=this.props.editor.get("nativeEditor");l.insertElement(s),this.props.cancelExclusive(),l.fire("actionPerformed",this),l.fire("imageCameraAdd",s)}},_handleStreamError:function(e){window.alert("An error occurred! "+e)},_handleStreamSuccess:function(e){var t=i.findDOMNode(this.refs.videoContainer),n=i.findDOMNode(this.refs.canvasContainer);t.addEventListener("canplay",function(e){var i=t.videoHeight/(t.videoWidth/this.props.videoWidth);isNaN(i)&&(i=this.props.videoWidth/(4/3)),t.setAttribute("width",this.props.videoWidth),t.setAttribute("height",i),n.setAttribute("width",this.props.videoWidth),n.setAttribute("height",i),this._videoHeight=i}.bind(this),!1),this._stream=e,navigator.mozGetUserMedia?t.mozSrcObject=e:t.src=(window.URL||window.webkitURL).createObjectURL(e),t.play(),i.findDOMNode(this.refs.buttonTakePhoto).disabled=!1}});AlloyEditor.ButtonCameraImage=e}(),function(){var e=o({displayName:"ButtonCamera",propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"camera"},render:function(){if(this.props.renderExclusive)return t.createElement(AlloyEditor.ButtonCameraImage,this.props);var i=!(navigator.getUserMedia||navigator.webkitGetUserMedia&&"https"===location.protocol||navigator.mozGetUserMedia||navigator.msGetUserMedia),n=i?AlloyEditor.Strings.cameraDisabled:AlloyEditor.Strings.camera;return t.createElement("button",{"aria-label":n,className:"ae-button","data-type":"button-image-camera",disabled:i,onClick:this.props.requestExclusive.bind(e.key),tabIndex:this.props.tabIndex,title:n},t.createElement("span",{className:"ae-icon-camera"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCamera=e}(),function(){var e=o({displayName:"ButtonCode",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"code"},getDefaultProps:function(){return{style:{element:"pre"}}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.code,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-code",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.code},t.createElement("span",{className:"ae-icon-code"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCode=e}(),function(){var e=o({displayName:"ButtonCommandListItem",mixins:[AlloyEditor.ButtonCommand],propTypes:{description:n.string.isRequired,icon:n.string},statics:{key:"buttonCommandListItem"},render:function(){var e="ae-icon-"+this.props.icon;return t.createElement("button",{"aria-label":this.props.description,className:this._getClassName(),onClick:this.execCommand,tabIndex:this.props.tabIndex},this.props.icon&&t.createElement("span",{className:e}),this.props.description)},_getClassName:function(){var e="ae-container ae-toolbar-element";return e}});AlloyEditor.ButtonCommandListItem=e}(),function(){var e=o({displayName:"ButtonCommandsList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{commands:n.arrayOf(n.object),editor:n.object.isRequired,listId:n.string},statics:{key:"buttonCommandsList"},componentDidMount:function(){i.findDOMNode(this).focus()},getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},render:function(){return t.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},t.createElement("ul",{className:"ae-listbox",id:this.props.listId,role:"listbox"},this._renderActions(this.props.commands)))},_renderActions:function(e){var i,n=this.props.editor;return e&&e.length&&(i=e.map(function(e){return t.createElement("li",{key:e.command,role:"option"},t.createElement(AlloyEditor.ButtonCommandListItem,{command:e.command,description:"string"==typeof e.label?e.label:e.label(),icon:e.icon,editor:n}))})),i}});AlloyEditor.ButtonCommandsList=e}(),function(){var e=o({displayName:"ButtonDropdown",mixins:[AlloyEditor.WidgetFocusManager],getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},statics:{key:"dropdown"},render:function(){return t.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},t.createElement("ul",{className:"ae-listbox",role:"listbox"},this.props.children))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonDropdown=e}(),function(){var e=13,a=27,r=o({displayName:"ButtonEmbedEdit",propTypes:{editor:n.object.isRequired},statics:{key:"embedEdit"},componentDidMount:function(){(this.props.renderExclusive||this.props.manualSelection)&&(window.requestAnimationFrame?window.requestAnimationFrame(this._focusLinkInput):setTimeout(this._focusLinkInput,0))},componentWillReceiveProps:function(e){this.replaceState(this.getInitialState())},getInitialState:function(){var e,t=this.props.editor.get("nativeEditor"),i=t.getSelection();if(i){var n=i.getSelectedElement();n&&(e=n.findOne('[data-widget="ae_embed"]'))}var o=e?e.getAttribute("data-ae-embed-url"):"";return{element:e,initialLink:{href:o},linkHref:o}},render:function(){var e={opacity:this.state.linkHref?1:0};return t.createElement("div",{className:"ae-container-edit-link"},t.createElement("button",{"aria-label":AlloyEditor.Strings.deleteEmbed,className:"ae-button","data-type":"button-embed-remove",disabled:!this.state.element,onClick:this._removeEmbed,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.deleteEmbed},t.createElement("span",{className:"ae-icon-bin"})),t.createElement("div",{className:"ae-container-input xxl"},t.createElement("input",{className:"ae-input",onChange:this._handleLinkHrefChange,onKeyDown:this._handleKeyDown,placeholder:AlloyEditor.Strings.editLink,ref:"linkInput",type:"text",value:this.state.linkHref}),t.createElement("button",{"aria-label":AlloyEditor.Strings.clearInput,className:"ae-button ae-icon-remove",onClick:this._clearLink,style:e,title:AlloyEditor.Strings.clear})),t.createElement("button",{"aria-label":AlloyEditor.Strings.confirm,className:"ae-button",disabled:!this._isValidState(),onClick:this._embedLink,title:AlloyEditor.Strings.confirm},t.createElement("span",{className:"ae-icon-ok"})))},_clearLink:function(){this.setState({linkHref:""})},_embedLink:function(){var e=this.props.editor.get("nativeEditor");e.execCommand("embedUrl",{url:this.state.linkHref}),this.props.cancelExclusive()},_focusLinkInput:function(){i.findDOMNode(this.refs.linkInput).focus()},_handleKeyDown:function(t){if(t.keyCode!==e&&t.keyCode!==a||t.preventDefault(),t.keyCode===e)this._embedLink();else if(t.keyCode===a){var i=this.props.editor.get("nativeEditor");this.props.cancelExclusive(),i.fire("actionPerformed",this)}},_handleLinkHrefChange:function(e){this.setState({linkHref:e.target.value})},_isValidState:function(){var e=this.state.linkHref&&this.state.linkHref!==this.state.initialLink.href;return e},_removeEmbed:function(){var e=this.props.editor.get("nativeEditor"),t=this.state.element.getAscendant(function(e){return e.hasClass("cke_widget_wrapper")});t.remove(),e.fire("actionPerformed",this)}});AlloyEditor.Buttons[r.key]=AlloyEditor.ButtonEmbedEdit=r}(),function(){var e=o({displayName:"ButtonEmbed",mixins:[AlloyEditor.ButtonKeystroke],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"embed"},getDefaultProps:function(){return{keystroke:{fn:"_requestExclusive",keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76}}},render:function(){return this.props.renderExclusive?t.createElement(AlloyEditor.ButtonEmbedEdit,this.props):t.createElement("button",{"aria-label":AlloyEditor.Strings.link,className:"ae-button","data-type":"button-embed",onClick:this._requestExclusive,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.link},t.createElement("span",{className:"ae-icon-add"}))},_requestExclusive:function(){this.props.requestExclusive(e.key)}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonEmbed=e}(),function(){var e=o({displayName:"ButtonH1",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"h1"},getDefaultProps:function(){return{style:{element:"h1"}}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.h1,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h1",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h1},t.createElement("span",{className:"ae-icon-h1"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH1=e}(),function(){var e=o({displayName:"ButtonH2",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"h2"},getDefaultProps:function(){return{style:{element:"h2"}}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.h2,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h2",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h2},t.createElement("span",{className:"ae-icon-h2"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH2=e}(),function(){var e=o({displayName:"ButtonHline",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonCommand],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"hline"},getDefaultProps:function(){return{command:"horizontalrule",style:{element:"hr"}}},render:function(){return t.createElement("button",{"aria-label":AlloyEditor.Strings.horizontalrule,className:"ae-button","data-type":"button-hline",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.horizontalrule},t.createElement("span",{className:"ae-icon-separator"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonHline=e}(),function(){var e=o({displayName:"ButtonImageAlignCenter",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"imageCenter"},getDefaultProps:function(){return{command:"justifycenter"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.alignCenter,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-center",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignCenter},t.createElement("span",{className:"ae-icon-align-center"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignCenter=e}(),function(){var e=o({displayName:"ButtonImageAlignLeft",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"imageLeft"},getDefaultProps:function(){return{command:"justifyleft"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.alignLeft,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-left",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignLeft},t.createElement("span",{className:"ae-icon-align-left"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignLeft=e}(),function(){var e=o({displayName:"ButtonImageAlignRight",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"imageRight"},getDefaultProps:function(){return{command:"justifyright"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.alignRight,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-right",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignRight},t.createElement("span",{className:"ae-icon-align-right"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignRight=e}(),function(){var e=o({displayName:"ButtonImage",propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"image"},render:function(){var e={display:"none"};return t.createElement("div",null,t.createElement("button",{"aria-label":AlloyEditor.Strings.image,className:"ae-button","data-type":"button-image",onClick:this.handleClick,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.image},t.createElement("span",{className:"ae-icon-image"})),t.createElement("input",{accept:"image/*",onChange:this._onInputChange,ref:"fileInput",style:e,type:"file"}))},handleClick:function(e){i.findDOMNode(this.refs.fileInput).click()},_onInputChange:function(){var e=i.findDOMNode(this.refs.fileInput);if(e.files.length){var t=new FileReader,n=e.files[0];t.onload=function(e){var t=this.props.editor.get("nativeEditor"),i=t.fire("beforeImageAdd",{imageFiles:n});if(i){var o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o),t.fire("actionPerformed",this);var a={el:o,file:n};t.fire("imageAdd",a)}}.bind(this),t.readAsDataURL(n),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=o({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},t.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=o({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:n.object.isRequired,label:n.string,tabIndex:n.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},t.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=o({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:n.func,autocompleteSelected:n.bool,term:n.string,setAutocompleteState:n.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?t.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var i=this.props.handleLinkAutocompleteClick;return e.map(function(e){var n=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return t.createElement("li",{key:e.url,role:"option"},t.createElement("button",{className:n,onClick:i,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var a=Object.assign||function(e){for(var t=1;t0,d="ae-container";return l&&(d+=" ae-container-column"),t.createElement("div",{"aria-label":AlloyEditor.Strings.styles,className:a,"data-tabindex":this.props.config.tabIndex||0,onFocus:this.focus,onKeyDown:this.handleKey,role:"toolbar",tabIndex:"-1"},t.createElement("div",{className:d},s.map(function(e,i){return Array.isArray(e)?t.createElement("div",{className:"ae-row",key:i.toString()},e.map(function(e){return e})):e})))}return null},_getSelectionFunction:function(e){var t,i=AlloyEditor.Lang;if(i.isFunction(e))t=e;else if(i.isString(e)){for(var n=e.split("."),o=window,a=n.shift();a&&i.isObject(o)&&i.isObject(o[a]);)o=o[a],a=n.shift();i.isFunction(o)&&(t=o)}return t},_getCurrentSelection:function(){var e,t=this.props.editorEvent?this.props.editorEvent.data:null;return t&&this.props.config.selections.some(function(i){var n,o=this._getSelectionFunction(i.test);return o&&(n=t.manualSelection===i.name||o({data:t,editor:this.props.editor})),n&&(e=i),n},this),e},_updatePosition:function(){if(i.findDOMNode(this)){var e,t=this._getCurrentSelection();if(t){var n=this._getSelectionFunction(t.setPosition);n&&(e=n.call(this,{editor:this.props.editor,editorEvent:this.props.editorEvent,selectionData:this.props.selectionData}))}e||(this.updatePosition(),this.show())}}});AlloyEditor.Toolbars[a.key]=AlloyEditor.ToolbarStyles=a}(),function(){var e=o({displayName:"UI",mixins:[AlloyEditor.WidgetExclusive,AlloyEditor.WidgetFocusManager],propTypes:{ariaUpdates:n.object,editor:n.object.isRequired,eventsDelay:n.number,toolbars:n.object.isRequired},getInitialState:function(){return{hidden:!1}},getDefaultProps:function(){return{circular:!0,descendants:"[class^=ae-toolbar-]",eventsDelay:0,keys:{next:9}}},componentDidMount:function(){var e=this.props.editor.get("nativeEditor");e.on("editorInteraction",this._onEditorInteraction,this),e.on("actionPerformed",this._onActionPerformed,this),e.on("key",this._onEditorKey,this),this._mousedownListener=function(e){this._setUIHidden(e.target)}.bind(this),this._keyDownListener=CKEDITOR.tools.debounce(function(e){this._setUIHidden(document.activeElement)},this.props.eventsDelay,this),document.addEventListener("mousedown",this._mousedownListener),document.addEventListener("keydown",this._keyDownListener)},componentDidUpdate:function(e,t){var n=i.findDOMNode(this),o=this.props.editor.get("nativeEditor");n&&o.fire("ariaUpdate",{message:this._getAvailableToolbarsMessage(n)}),o.fire("editorUpdate",{prevProps:e,prevState:t,props:this.props,state:this.state})},_getAriaUpdateTemplate:function(e){return this._ariaUpdateTemplates||(this._ariaUpdateTemplates={}),this._ariaUpdateTemplates[e]||(this._ariaUpdateTemplates[e]=new CKEDITOR.template(this._getAriaUpdates()[e])),this._ariaUpdateTemplates[e]},_getAriaUpdates:function(){return this.props.ariaUpdates||{noToolbar:AlloyEditor.Strings.ariaUpdateNoToolbar,oneToolbar:AlloyEditor.Strings.ariaUpdateOneToolbar,manyToolbars:AlloyEditor.Strings.ariaUpdateManyToolbars}},_getAvailableToolbarsMessage:function(e){var t=e.querySelectorAll('[role="toolbar"]');if(t.length){var i=Array.prototype.slice.call(t).map(function(e){return e.getAttribute("aria-label")}),n=1===i.length?"oneToolbar":"manyToolbars";return this._getAriaUpdateTemplate(n).output({toolbars:i.join(",").replace(/,([^,]*)$/," and $1")})}return this._getAriaUpdates().noToolbar},componentWillUnmount:function(){this._mousedownListener&&document.removeEventListener("mousedown",this._mousedownListener),this._keyDownListener&&(this._keyDownListener.detach(),document.removeEventListener("keydown",this._keyDownListener))},render:function(){if(this.state.hidden)return null;var e=Object.keys(this.props.toolbars).map(function(e){return AlloyEditor.Toolbars[e]||window[e]});return e=this.filterExclusive(e).map(function(e){var i=this.mergeExclusiveProps({config:this.props.toolbars[e.key],editor:this.props.editor,editorEvent:this.state.editorEvent,key:e.key,onDismiss:this._onDismissToolbarFocus,selectionData:this.state.selectionData},e.key);return t.createElement(e,i)}.bind(this)),t.createElement("div",{className:"ae-toolbars",onKeyDown:this.handleKey},e)},_onActionPerformed:function(e){var t=this.props.editor.get("nativeEditor");t.focus(),this.setState({itemExclusive:null,selectionData:t.getSelectionData()})},_onDismissToolbarFocus:function(){var e=this.props.editor.get("nativeEditor");e.focus()},_onEditorInteraction:function(e){this.setState({editorEvent:e,hidden:!1,itemExclusive:null,selectionData:e.data.selectionData})},_onEditorKey:function(e){var t=e.data.domEvent.$;t.altKey&&121===t.keyCode&&this.focus()},_setUIHidden:function(e){var t=i.findDOMNode(this);if(t){var n=this.props.editor.get("nativeEditor").editable(),o=e.parentNode,a=new CKEDITOR.dom.node(e);if(n){var r=n.$===e||n.contains(a)||new CKEDITOR.dom.element(t).contains(a);o&&(r=r||"ckimgrsz"===o.id),r||this.setState({hidden:!0})}else this.setState({hidden:!0})}}});AlloyEditor.UI=e}()}}(); \ No newline at end of file diff --git a/dist/alloy-editor/alloy-editor-core.js b/dist/alloy-editor/alloy-editor-core.js index 0b429e99be..b8d0f69363 100644 --- a/dist/alloy-editor/alloy-editor-core.js +++ b/dist/alloy-editor/alloy-editor-core.js @@ -1,5 +1,5 @@ /** - * AlloyEditor v1.5.21 + * AlloyEditor v1.5.22 * * Copyright 2014-present, Liferay, Inc. * All rights reserved. @@ -10885,7 +10885,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol domElement.setStyles({ left: startPoint[0] + 'px', top: startPoint[1] + 'px', - opacity: 0 + opacity: 0, + pointerEvents: 'none' }); domElement.removeClass('alloy-editor-invisible'); @@ -10899,6 +10900,14 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol opacity: 1 }); }); + + if (domElement.$) { + domElement.$.addEventListener('transitionend', function () { + domElement.setStyles({ + pointerEvents: '' + }); + }); + } }, /** diff --git a/dist/alloy-editor/alloy-editor-no-ckeditor-min.js b/dist/alloy-editor/alloy-editor-no-ckeditor-min.js index 18c8c78ba9..88426ff6e8 100644 --- a/dist/alloy-editor/alloy-editor-no-ckeditor-min.js +++ b/dist/alloy-editor/alloy-editor-no-ckeditor-min.js @@ -1,5 +1,5 @@ /** - * AlloyEditor v1.5.21 + * AlloyEditor v1.5.22 * * Copyright 2014-present, Liferay, Inc. * All rights reserved. @@ -67,8 +67,8 @@ var createReactClass = (function() { "use strict";!function(){CKEDITOR.tools.debounce=CKEDITOR.tools.debounce||function(e,t,i,n){var o,a=function(){var a=i||this;clearTimeout(o);for(var r=[],s=arguments.length,l=0;l0?t.getRangeAt(0).getClientRects():[]),0===o.length)n=this.getCaretRegion();else{for(var c=0,u=o.length;cl&&(l=p.right),p.topr&&(r=p.bottom)}var m=new CKEDITOR.dom.window(window).getScrollPosition();if(n.bottom=m.y+r,n.left=m.x+s,n.right=m.x+l,n.top=m.y+d,o.length){var g=o[o.length-1],h=o[0];n.endRect={bottom:m.y+g.bottom,height:g.height,left:m.x+g.left,right:m.x+g.right,top:m.y+g.top,width:g.width},n.startRect={bottom:m.y+h.bottom,height:h.height,left:m.x+h.left,right:m.x+h.right,top:m.y+h.top,width:h.width}}}return n},getSelectionDirection:function(){var e=CKEDITOR.SELECTION_TOP_TO_BOTTOM,t=this.getSelection(),i=t.getNative();if(!i)return e;var n;if((n=i.anchorNode)&&n.compareDocumentPosition){var o=n.compareDocumentPosition(i.focusNode);(!o&&i.anchorOffset>i.focusOffset||o===Node.DOCUMENT_POSITION_PRECEDING)&&(e=CKEDITOR.SELECTION_BOTTOM_TO_TOP)}return e}},CKEDITOR.plugins.add("ae_selectionregion",{init:function(t){var i,n;n=Object.prototype.hasOwnProperty;for(i in e.prototype)n.call(e.prototype,i)&&"undefined"==typeof t[i]&&(t[i]=e.prototype[i])}}))}(),function(){function e(e){this._editor=e}var t={table:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1};e.HEADING_BOTH="Both",e.HEADING_COL="Column",e.HEADING_NONE="None",e.HEADING_ROW="Row",e.prototype={constructor:e,create:function(e){var t=this._editor,i=this._createElement("table");e=e||{};for(var n=i.append(this._createElement("tbody")),o=e.rows||1,a=e.cols||1,r=0;r0&&(CKEDITOR.env.webkit&&n[0].shrink(CKEDITOR.NODE_ELEMENT),e=this._editor.elementPath(n[0].getCommonAncestor(!0)).contains("table",1))}return e},isEditable:function(e){return CKEDITOR.env.ie&&e.is(t)?e.hasAttribute("contenteditable")?"false"!==e.getAttribute("contenteditable"):this.isEditable(e.getParent()):!e.isReadOnly()},getHeading:function(t){if(t=t||this.getFromSelection(),!t)return null;for(var i=null!==t.$.tHead,n=!0,o=0;o0;){var h=a.getFirst(),f=h.getChildCount();for(n=0;n0){new CKEDITOR.dom.event(t).preventDefault();var n=e.listenerData.editor;e.listenerData.editor.createSelectionFromPoint(t.clientX,t.clientY),this._handleFiles(i,n)}},_onDragEnter:function(t){e&&this._preventEvent(t)},_onDragOver:function(t){e&&this._preventEvent(t)},_onPaste:function(e){if(e.data&&e.data.$&&e.data.$.clipboardData&&e.data.$.clipboardData.items&&e.data.$.clipboardData.items.length>0){var t=e.data.$.clipboardData.items[0];if(0===t.type.indexOf("image")){var i=t.getAsFile();this._processFile(i,e.listenerData.editor)}}},_preventEvent:function(e){e=new CKEDITOR.dom.event(e.data.$),e.preventDefault(),e.stopPropagation()},_processFile:function(e,t){var i=new FileReader;i.addEventListener("loadend",function(){var n=i.result,o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o);var a={el:o,file:e};t.fire("imageAdd",a)}),i.readAsDataURL(e)}})}(),function(){if(!CKEDITOR.plugins.get("ae_autolink")){/MSIE ([^;]*)|Trident.*; rv:([0-9.]+)/.test(navigator.userAgent)&&document.execCommand("AutoUrlDetect",!1,!1);var e=8,t=188,i=13,n=186,o=32,a=[t,i,n,o],r=/[^\s]+/gim,s="((([A - Za - z]{ 3, 9}: (?: \\/\\/)?)(?:[-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9.-]+|(https?\\:\\/\\/|www.|[-;:&=.\\+\\$,\\w]+@)[A-Za-z0-9.-]+)((?:\\/[\\+~%\\/.\\w-_]*)?\\??(?:[-\\+=&;%@.\\w_]*)#?(?:[\\w]*))((.*):(\\d*)\\/?(.*))?)",l=/[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/i;CKEDITOR.plugins.add("ae_autolink",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keyup",this._onKeyUp,this,{editor:e})}.bind(this)),e.on("paste",function(e){if("paste"===e.data.method){if(e.data.dataValue.indexOf("<")>-1||e.data.dataValue.indexOf("<")>-1)return void(e.data.dataValue.indexOf('|<\/font><\/u>/g,"")));var t=this;e.data.dataValue=e.data.dataValue.replace(RegExp(s,"gim"),function(e){if(t._isValidURL(e))return t._isValidEmail(e)?''+e+"":''+e+""})}}.bind(this))},_getLastWord:function(e){var t=e.getSelection().getRanges()[0],n=t.startOffset,o="";if(this._currentKeyCode===i){var a,s=t.startContainer.getPrevious();if(s){for(;!s.getLast;)s=s.getPrevious();for(a=s.getLast();a&&!a.getText();)a=a.getPrevious()}a&&a.$.href||(this._startContainer=a,o=a?a.getText():"",this._offset=o.length)}else this._startContainer=t.startContainer,o=this._startContainer.getText().substring(0,n-1),this._offset=n-1;var l="",d=o.match(r);return d&&(l=d.pop()),l},_isValidEmail:function(e){return l.test(e)},_isValidURL:function(e){return RegExp(s,"i").test(e)},_onKeyDown:function(t){var i=t.data.$,n=t.listenerData.editor,o=n.editable();o.removeListener("keydown",this._onKeyDown),i.keyCode===e&&(t.cancel(),t.data.preventDefault(),this._removeLink(n)),this._ckLink=null},_onKeyUp:function(e){var t=e.data.$;if(this._currentKeyCode=t.keyCode,a.indexOf(this._currentKeyCode)!==-1){var i=e.listenerData.editor,n=this._getLastWord(i);this._isValidURL(n)&&this._replaceContentByLink(i,n)}},_replaceContentByLink:function(e,t){var n=e.createRange(),o=CKEDITOR.dom.element.get(this._startContainer),a=this._offset;n.setStart(o,a-t.length),n.setEnd(o,a),n.select();var r=new CKEDITOR.Link(e);r.create(t),this._ckLink=r;var s=r.getFromSelection();if(e.fire("autolinkAdd",s),this._subscribeToKeyEvent(e),n=e.getSelection().getRanges()[0],this._currentKeyCode===i){var l=n.getNextEditableNode();n.setStart(l,0),n.setEnd(l,0)}else{var d=n.getNextNode();n.setStart(d,1),n.setEnd(d,1)}n.select()},_removeLink:function(e){var t=e.getSelection().getRanges()[0],i=t.startOffset,n=this._startContainer.getNext()||this._startContainer,o=e.createRange();o.setStart(n,0),o.setEndAfter(n),o.select(),this._ckLink.remove(),t.setEnd(t.startContainer,i),t.setStart(t.startContainer,i),t.select()},_subscribeToKeyEvent:function(e){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e},1)}})}}(),function(){if(!CKEDITOR.plugins.get("ae_autolist")){var e=8,t=32,i=[{regex:/^\*$/,type:"bulletedlist"},{regex:/^1\.$/,type:"numberedlist"}];CKEDITOR.plugins.add("ae_autolist",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e})}.bind(this))},_checkForBackspaceAndUndo:function(t){var i=t.listenerData.editor,n=t.data.$,o=i.editable();o.removeListener("keydown",this._checkForBackspaceAndUndo),n.keyCode===e&&(i.execCommand("undo"),i.insertHtml(t.listenerData.bullet+" "),t.data.preventDefault())},_getListConfig:function(e){for(var t=e.config.autolist||i,n=e.getSelection().getRanges()[0],o=n.endContainer.getText(),a=o.substring(0,n.startOffset),r=o.substring(n.startOffset,o.length),s=0,l=t.length,d=null;!d&&l>s;){var c=t[s];if(c.regex.test(a)){d={bullet:a,editor:e,text:r,type:c.type};break}s++}return d},_createList:function(e){var t=e.editor,i=t.getSelection().getRanges()[0];i.endContainer.setText(e.text),t.execCommand(e.type);var n=t.editable();n.attachListener(n,"keydown",this._checkForBackspaceAndUndo,this,{editor:t,bullet:e.bullet},1)},_onKeyDown:function(e){var i=e.data.$;if(i.keyCode===t){var n=this._getListConfig(e.listenerData.editor);n&&(e.data.preventDefault(),this._createList(n))}}})}}(),function(){function e(e){function i(){var t=e.getSelection();t&&(t.getType()!==CKEDITOR.SELECTION_NONE&&t.getStartElement().is("img")?n.event&&n.event.button&&0!==n.event.button||r.show(t.getStartElement().$):r.hide())}var n=e.window.$,o=e.document.$;u&&o.execCommand("enableObjectResizing",!1,!1);var a="undefined"==typeof c?null:c;e.config.imageScaleResize=e.config.imageScaleResize||"both";var r=new t(e,{imageScaleResize:e.config.imageScaleResize,snapToSize:a}),s=function(e){r.isHandle(e.target)&&r.initDrag(e)};o.addEventListener("mousedown",s,!1),e.on("selectionChange",i),e.on("getData",function(e){var t=e.data.dataValue||"";t=t.replace(/
    /i,""),t=t.replace(/\b(ckimgrsz)\b/g,""),e.data.dataValue=t}),e.on("beforeUndoImage",function(){r.hide()}),e.on("afterUndoImage",function(){i()}),e.on("blur",function(){r.hide()}),e.on("beforeModeUnload",function t(){e.removeListener("beforeModeUnload",t),r.hide()}),e.on("destroy",function(){var e=o.getElementById("ckimgrsz");e&&e.remove(),u&&o.execCommand("enableObjectResizing",!1,!0),o.removeEventListener("mousedown",s)});var l;e.window.on("resize",function(){clearTimeout(l),l=setTimeout(i,50)})}function t(e,t){this.editor=e,this.window=e.window.$,this.document=e.document.$,this.cfg=t||{},this.init()}function i(e,t){this.window=e,this.document=t,this.events={mousemove:o(this.mousemove,this),keydown:o(this.keydown,this),mouseup:o(this.mouseup,this)}}function n(e){for(var t=e.length,i=new Array(t),n=0;nn?t.height=Math.round(t.width/n):t.width=Math.round(t.height*n)}var o=this.cfg.snapToSize;if(o)for(var a=this.otherImages,r=0;r=15&&(u>=15||"auto"===u)?(f.$.style.width=c+"px",f.$.style.height=u+"px",p=!0):p=!1}function l(){for(var n;n=C.pop();)n.removeListener();i.removeClass(_),o.removeClass("cke_image_resizing"),p&&(e.setData({height:u,width:c}),t.fire("saveSnapshot")),p=!1}var d,c,u,p,m,g,h,f=e.parts.image,y="right"==e.data.align?-1:1,E=a.data.$.screenX,v=a.data.$.screenY,b=f.$.clientWidth,T=f.$.clientHeight,C=[],_="cke_image_s"+(~y?"e":"w");t.fire("saveSnapshot"),r("mousemove",s,C),r("mouseup",l,C),i.addClass(_),o.addClass("cke_image_resizing")}),e.on("data",function(){o["right"==e.data.align?"addClass":"removeClass"]("cke_image_resizer_left")}),e.parts.image.on("click",function(){var e=t.getSelection();if(e){var i=e.getStartElement();if(i){var n=i.findOne("img");if(n){var o=i.getClientRect(),a=new CKEDITOR.dom.window(window).getScrollPosition();o.left-=a.x,o.top+=a.y,o.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,t.fire("editorInteraction",{nativeEvent:event,selectionData:{element:n,region:o}})}}}})}function s(e){var t={figcaption:!0,figure:{classes:"!"+e.config.image2_captionedClass},img:{attributes:"!src,alt,width,height"}};return t}function l(e){var t=e.config.image2_alignClasses,i={align:{requiredContent:"img"+(t?"("+t[0]+")":"{float}")},caption:{requiredContent:"figcaption"},dimension:{requiredContent:"img[width,height]"}};return i}function d(e){return e.data.hasCaption?e.element:e.parts.image}if(!CKEDITOR.plugins.get("ae_dragresize_ie")){var c={center:1,left:0,right:2},u={both:"nwse-resize",height:"ns-resize",scale:"nwse-resize",width:"ew-resize"},p=/^\s*(\d+\%)\s*$/i,m='';CKEDITOR.plugins.add("ae_dragresize_ie",{hidpi:!0,icons:"image",init:function(t){var i=e(t);t.widgets.add("image",i)},onLoad:function(){CKEDITOR.addCss(".cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ns-resize{cursor: ns-resize;}.cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ew-resize{cursor: ew-resize;}.cke_image_nocaption{line-height:0}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:nwse-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}")},requires:"widget"}),CKEDITOR.plugins.image2={checkHasNaturalRatio:function(e){var t=e.$,i=this.getNatural(e);return Math.round(t.clientWidth/i.width*i.height)==t.clientHeight||Math.round(t.clientHeight/i.height*i.width)==t.clientWidth},getNatural:function(e){var t;if(e.$.naturalWidth)t={height:e.$.naturalHeigh,width:e.$.naturalWidth};else{var i=new Image;i.src=e.getAttribute("src"),t={height:i.heigh,width:i.width}}return t}}}}(),CKEDITOR.config.image2_captionedClass="image",function(){function e(e){function o(){this.deflated||(e.widgets.focused==this.widget&&(this.focused=!0),e.widgets.destroy(this.widget),this.deflated=!0)}function a(){var i=e.editable(),n=e.document;if(this.deflated){if(this.widget=e.widgets.initOn(this.element,"image",this.widget.data),this.widget.inline&&!new CKEDITOR.dom.elementPath(this.widget.wrapper,i).block){var o=n.createElement(e.activeEnterMode==CKEDITOR.ENTER_P?"p":"div");o.replace(this.widget.wrapper),this.widget.wrapper.move(o)}this.focused&&(this.widget.focus(),delete this.focused),delete this.deflated}else t(this.widget,l)}var l=e.config.ae_dragresize_ie11_alignClasses,d=e.config.ae_dragresize_ie11_captionedClass;return{allowedContent:c(e),requiredContent:"img[src,alt]",features:u(e),styleableElements:"img figure",contentTransformations:[["img[width]: sizeToAttribute"]],editables:{caption:{selector:"figcaption",allowedContent:"br em strong sub sup u s; a[!href,target]"}},parts:{image:"img",caption:"figcaption"},template:m,data:function(){var t=this.features;if(this.data.hasCaption&&!e.filter.checkFeature(t.caption)&&(this.data.hasCaption=!1),"none"==this.data.align||e.filter.checkFeature(t.align)||(this.data.align="none"),this.shiftState({widget:this,element:this.element,oldData:this.oldData,newData:this.data,deflate:o,inflate:a}),this.data.link?this.parts.link||(this.parts.link=this.parts.image.getParent()):this.parts.link&&delete this.parts.link,this.parts.image.setAttributes({src:this.data.src,"data-cke-saved-src":this.data.src,alt:this.data.alt}),this.oldData&&!this.oldData.hasCaption&&this.data.hasCaption)for(var i in this.data.classes)this.parts.image.removeClass(i);e.filter.checkFeature(t.dimension)&&r(this),this.oldData=CKEDITOR.tools.extend({},this.data)},init:function(){var t=CKEDITOR.plugins.ae_dragresize_ie11,i=this.parts.image,n={hasCaption:!!this.parts.caption,src:i.getAttribute("src"),alt:i.getAttribute("alt")||"",width:i.getAttribute("width")||"",height:i.getAttribute("height")||"",lock:!this.ready||t.checkHasNaturalRatio(i)},o=i.getAscendant("a");if(o&&this.wrapper.contains(o)&&(this.parts.link=o),!n.align){var a=n.hasCaption?this.element:i;l?(a.hasClass(l[0])?n.align="left":a.hasClass(l[2])&&(n.align="right"),n.align?a.removeClass(l[h[n.align]]):n.align="none"):(n.align=a.getStyle("float")||"none",a.removeStyle("float"))}if(e.plugins.link&&this.parts.link){n.link=t.getLinkAttributesParser()(e,this.parts.link);var r=n.link.advanced;r&&r.advCSSClasses&&(r.advCSSClasses=CKEDITOR.tools.trim(r.advCSSClasses.replace(/cke_\S+/,"")))}this.wrapper[(n.hasCaption?"remove":"add")+"Class"]("cke_image_nocaption"),this.setData(n),e.filter.checkFeature(this.features.dimension)&&e.config.ae_dragresize_ie11_disableResizer!==!0&&s(this),this.shiftState=t.stateShifter(this.editor),this.on("contextMenu",function(e){e.data.image=CKEDITOR.TRISTATE_OFF,(this.parts.link||this.wrapper.getAscendant("a"))&&(e.data.link=e.data.unlink=CKEDITOR.TRISTATE_OFF)})},addClass:function(e){p(this).addClass(e)},hasClass:function(e){return p(this).hasClass(e)},removeClass:function(e){p(this).removeClass(e)},getClasses:function(){var e=new RegExp("^("+[].concat(d,l).join("|")+")$");return function(){var t=this.repository.parseElementClasses(p(this).getAttribute("class"));for(var i in t)e.test(i)&&delete t[i];return t}}(),upcast:i(e),downcast:n(e),getLabel:function(){var e=(this.data.alt||"")+" "+this.pathName;return this.editor.lang.widget.label.replace(/%1/,e)}}}function t(e,t){var i=e.wrapper,n=e.data.align,o=e.data.hasCaption;if(t){for(var a=3;a--;)i.removeClass(t[a]);"center"==n?o&&i.addClass(t[1]):"none"!=n&&i.addClass(t[h[n]])}else{"center"==n?(o?i.setStyle("text-align","center"):i.removeStyle("text-align"),i.removeStyle("float")):("none"==n?i.removeStyle("float"):i.setStyle("float",n),i.removeStyle("text-align"));var r=i.$.querySelector("img");r.removeAttribute("style")}}function i(e){var t=o(e),i=e.config.ae_dragresize_ie11_captionedClass;return function(e,n){var o,r={width:1,height:1},s=e.name;if(!e.attributes["data-cke-realelement"]){if(t(e)){if("div"==s){var l=e.getFirst("figure");l&&(e.replaceWith(l),e=l)}n.align="center",o=e.getFirst("img")||e.getFirst("a").getFirst("img")}else"figure"==s&&e.hasClass(i)?o=e.getFirst("img")||e.getFirst("a").getFirst("img"):a(e)&&(o="a"==e.name?e.children[0]:e);if(o){for(var d in r){var c=o.attributes[d];c&&c.match(f)&&delete o.attributes[d]}return e}}}}function n(e){var t=e.config.ae_dragresize_ie11_alignClasses;return function(e){var i="a"==e.name?e.getFirst():e,n=i.attributes,o=this.data.align;if(!this.inline){var a=e.getFirst("span");a&&a.replaceWith(a.getFirst({img:1,a:1}))}if(o&&"none"!=o){var r=CKEDITOR.tools.parseCssText(n.style||"");"center"==o&&"figure"==e.name?e=e.wrapWith(new CKEDITOR.htmlParser.element("div",t?{class:t[1]}:{style:"text-align:center"})):o in{left:1,right:1}&&(t?i.addClass(t[h[o]]):r.float=o),t||CKEDITOR.tools.isEmpty(r)||(n.style=CKEDITOR.tools.writeCssText(r)+";")}return e}}function o(e){var t=e.config.ae_dragresize_ie11_captionedClass,i=e.config.ae_dragresize_ie11_alignClasses,n={figure:1,a:1,img:1};return function(o){if(!(o.name in{div:1,p:1}))return!1;var r=o.children;if(1!==r.length)return!1;var s=r[0];if(!(s.name in n))return!1;if("p"==o.name){if(!a(s))return!1}else if("figure"==s.name){if(!s.hasClass(t))return!1}else{if(e.enterMode==CKEDITOR.ENTER_P)return!1;if(!a(s))return!1}return!(i?!o.hasClass(i[1]):"center"!=CKEDITOR.tools.parseCssText(o.attributes.style||"",!0)["text-align"])}}function a(e){return"img"==e.name||"a"==e.name&&(1==e.children.length&&e.getFirst("img"))}function r(e){var t=e.data,i={width:t.width,height:t.height},n=e.parts.image;for(var o in i)i[o]?n.setAttribute(o,i[o]):n.removeAttribute(o)}function s(e){var t=e.editor,i=t.editable(),n=t.document,o=e.resizer=n.createElement("span"),a=n.createElement("span"),r=n.createElement("span"),s=n.createElement("span"),l=n.createElement("span");if(a.addClass("cke_image_resizer"),a.addClass("cke_image_resizer_ne"),r.addClass("cke_image_resizer"),r.addClass("cke_image_resizer_nw"),s.addClass("cke_image_resizer"),s.addClass("cke_image_resizer_se"),l.addClass("cke_image_resizer"),l.addClass("cke_image_resizer_sw"),o.append(a),o.append(r),o.append(s),o.append(l),o.append(new CKEDITOR.dom.text("​",n)),e.inline)e.wrapper.append(o);else{var d=e.parts.link||e.parts.image,c=d.getParent(),u=n.createElement("span");u.addClass("cke_image_resizer_wrapper"),u.append(d),u.append(o),e.element.append(u,!0),c.is("span")&&c.remove()}o.on("mousedown",function(a){function r(e,t,i){var o=CKEDITOR.document,a=[];if(n.equals(o)||a.push(o.on(e,t)),a.push(n.on(e,t)),i)for(var r=a.length;r--;)i.push(a.pop())}function s(){y=C+u*m,f=Math.round(y/R)}function l(){f=_+p*g,y=Math.round(f*R)}function d(e){h=e.data.$,m=h.screenX-b,g=T-h.screenY,moveRatio=Math.abs(m/g),1==u?m<=0?l():s():m<=0?s():l(),y>=15&&f>=15?(v.$.style.width=y+"px",v.$.style.height=f+"px",E=!0):E=!1}function c(){for(var n;n=A.pop();)n.removeListener();i.removeClass(k),o.removeClass("cke_image_resizing"),E&&(e.setData({height:f,width:y}),t.fire("saveSnapshot")),E=!1}var u,p,m,g,h,f,y,E,v=e.parts.image,b=a.data.$.screenX,T=a.data.$.screenY,C=v.$.clientWidth,_=v.$.clientHeight,R=C/_,A=[],I=a.data.getTarget();I.hasClass("cke_image_resizer_ne")?(u=1,p=1):I.hasClass("cke_image_resizer_nw")?(u=-1,p=1):I.hasClass("cke_image_resizer_se")?(u=1,p=-1):I.hasClass("cke_image_resizer_sw")&&(u=-1,p=-1);var k="cke_image_"+(~p?"n":"s")+(~u?"e":"w");t.fire("saveSnapshot"),r("mousemove",d,A),r("mouseup",c,A),i.addClass(k),o.addClass("cke_image_resizing")})}function l(e){var t,i=[];return function(n){var o=e.getCommand("justify"+n);o&&(i.push(function(){o.refresh(e,e.elementPath())}),n in{right:1,left:1,center:1}&&o.on("exec",function(t){var o=d(e);if(o){o.data.align===n?(y(o,n),delete o.data.align):o.setData("align",n);for(var a=i.length;a--;)i[a]();t.cancel()}}),o.on("refresh",function(i){var o=d(e),a={right:1,left:1,center:1};o&&(void 0===t&&(t=e.filter.checkFeature(e.widgets.registered.image.features.align)),t?this.setState(o.data.align==n?CKEDITOR.TRISTATE_ON:n in a?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_DISABLED),i.cancel())}))}}function d(e){var t=e.widgets.focused;return t&&"image"==t.name?t:null}function c(e){var t=e.config.ae_dragresize_ie11_alignClasses,i={div:{match:o(e)},p:{match:o(e)},img:{attributes:"!src,alt,width,height"},figure:{classes:"!"+e.config.ae_dragresize_ie11_captionedClass},figcaption:!0};return t?(i.div.classes=t[1],i.p.classes=i.div.classes,i.img.classes=t[0]+","+t[2],i.figure.classes+=","+i.img.classes):(i.div.styles="text-align",i.p.styles="text-align",i.img.styles="float",i.figure.styles="float,display"),i}function u(e){var t=e.config.ae_dragresize_ie11_alignClasses,i={dimension:{requiredContent:"img[width,height]"},align:{requiredContent:"img"+(t?"("+t[0]+")":"{float}")},caption:{requiredContent:"figcaption"}};return i}function p(e){return e.data.hasCaption?e.element:e.parts.image}if(!CKEDITOR.plugins.get("ae_dragresize_ie11")){var m='',g=new CKEDITOR.template('
    '+m+"
    {captionPlaceholder}
    "),h={left:0,center:1,right:2},f=/^\s*(\d+\%)\s*$/i;CKEDITOR.plugins.add("ae_dragresize_ie11",{requires:"widget",onLoad:function(){CKEDITOR.addCss(".cke_image_nocaption{line-height:0}.cke_editable.cke_image_ne, .cke_editable.cke_image_ne *{cursor:ne-resize !important}.cke_editable.cke_image_nw, .cke_editable.cke_image_nw *{cursor:nw-resize !important}.cke_editable.cke_image_sw, .cke_editable.cke_image_sw *{cursor:sw-resize !important}.cke_editable.cke_image_se, .cke_editable.cke_image_se *{cursor:se-resize !important}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;background:#000;outline:1px solid #fff;line-height:0;cursor:se-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_image_resizer.cke_image_resizer_ne{cursor:ne-resize;left:auto;right:-5px;top:-5px;}.cke_image_resizer.cke_image_resizer_nw{cursor:nw-resize;left:-5px;right:auto;top:-5px;}.cke_image_resizer.cke_image_resizer_se{bottom:-5px;cursor:se-resize;left:auto;right:-5px;}.cke_image_resizer.cke_image_resizer_sw{bottom:-5px;cursor:sw-resize;left:-5px;right:auto;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}.cke_widget_wrapper>a{display:inline-block}")},init:function(t){var i=(t.config,e(t));t.widgets.add("image",i),t.on("selectionChange",function(e){var i=t.getSelection();if(i){var n=i.getSelectedElement();if(n){var o=n.findOne("img");if(o){var a=n.getClientRect(),r=new CKEDITOR.dom.window(window).getScrollPosition();a.left-=r.x,a.top+=r.y,a.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,t.fire("editorInteraction",{nativeEvent:{},selectionData:{element:o,region:a}})}}}})},afterInit:function(e){var t={left:1,right:1,center:1,block:1},i=l(e);for(var n in t)i(n)}}),CKEDITOR.plugins.ae_dragresize_ie11={stateShifter:function(e){function t(e,t){var i={};s?i.attributes={class:s[1]}:i.styles={"text-align":"center"};var n=r.createElement(e.activeEnterMode==CKEDITOR.ENTER_P?"p":"div",i);return a(n,t),t.move(n),n}function i(e){var t=e.findOne("a,img");return t.replace(e),t}function n(e,t){var i=r.createElement("a",{attributes:{href:t.url}});return i.replace(e),e.move(i),i}function o(e){var t=e.findOne("img");return t.replace(e),t}function a(t,i){if(i.getParent()){var n=e.createRange();n.moveToPosition(i,CKEDITOR.POSITION_BEFORE_START),i.remove(),d.insertElementIntoRange(t,n)}else t.replace(i)}var r=e.document,s=e.config.ae_dragresize_ie11_alignClasses,l=e.config.ae_dragresize_ie11_captionedClass,d=e.editable(),c=["hasCaption","align","link"],u={align:function(n,o,a){var r=n.element;n.changed.align||"auto"===r.$.style.marginLeft&&"auto"===r.$.style.marginRight?n.newData.hasCaption||(("center"==a||"auto"===r.$.style.marginLeft&&"auto"===r.$.style.marginRight)&&(n.deflate(),n.element=t(e,r)),n.changed.hasCaption||"center"!=o||"center"==a||(n.deflate(),n.element=i(r))):"center"==a&&n.changed.hasCaption&&!n.newData.hasCaption&&(n.deflate(),n.element=t(e,r)),!s&&r.is("figure")&&("center"==a?r.setStyle("display","inline-block"):r.removeStyle("display"))},hasCaption:function(t,i,n){if(t.changed.hasCaption){var o;if(o=t.element.is({img:1,a:1})?t.element:t.element.findOne("a,img"),t.deflate(),n){var s=CKEDITOR.dom.element.createFromHtml(g.output({captionedClass:l,captionPlaceholder:e.lang.ae_dragresize_ie11.captionPlaceholder}),r);a(s,t.element),o.replace(s.findOne("img")),t.element=s}else o.replace(t.element),t.element=o}},link:function t(i,a,r){if(i.changed.link){var s,l=i.element.is("img")?i.element:i.element.findOne("img"),t=i.element.is("a")?i.element:i.element.findOne("a"),d=i.element.is("a")&&!r||i.element.is("img")&&r;if(d&&i.deflate(),r){a||(s=n(l,i.newData.link));var c=CKEDITOR.plugins.ae_dragresize_ie11.getLinkAttributesGetter()(e,r);CKEDITOR.tools.isEmpty(c.set)||(s||t).setAttributes(c.set),c.removed.length&&(s||t).removeAttributes(c.removed)}else s=o(t);d&&(i.element=s)}}};return function(e){var t,i;for(e.changed={},i=0;i
    ',CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL='{url}',CKEDITOR.plugins.add("ae_embed",{requires:"widget",init:function(i){var n=new CKEDITOR.template(i.config.embedUrlTemplate||CKEDITOR.DEFAULT_AE_EMBED_URL_TPL),o=new CKEDITOR.template(i.config.embedWidgetTpl||CKEDITOR.DEFAULT_AE_EMBED_WIDGET_TPL),a=new CKEDITOR.template(i.config.embedLinkDefaultTpl||CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL),r=function(e,t){if("div"===e.name&&e.attributes["data-ae-embed-url"])return t.url=e.attributes["data-ae-embed-url"],!0};i.addCommand("embedUrl",{exec:function(e,t){e.insertHtml(o.output({url:t.url}))}}),i.widgets.add("ae_embed",{mask:!0,requiredContent:"div[data-ae-embed-url]",data:function(e){var i=this,o=e.data.url;o&&CKEDITOR.tools.jsonp(n,{url:encodeURIComponent(o)},function(e){e.html?t.test(e.html)?i.createATag(o):i.element.setHtml(e.html):i.createATag(o)},function(e){i.createATag(o)})},createATag:function(e){this.editor.execCommand("undo");var t=(this.editor.getSelection().getSelectedElement(),a.output({url:e}));this.editor.insertHtml(t),this.editor.fire("actionPerformed",this)},upcast:function(e,t){var n=i.config.embedWidgetUpcastFn||r;return n(e,t)}}),i.once("contentDom",function(){i.on("paste",function(t){var n=t.data.dataValue;e.test(n)&&(t.stop(),i.execCommand("embedUrl",{url:t.data.dataValue}))})}),i.on("selectionChange",function(e){var t=i.getSelection();if(t){var n=t.getSelectedElement();if(n){var o=n.findOne('[data-widget="ae_embed"]');if(o){var a=n.getClientRect(),r=new CKEDITOR.dom.window(window).getScrollPosition();a.left-=r.x,a.top+=r.y,a.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,i.fire("editorInteraction",{nativeEvent:{},selectionData:{element:o,region:a}})}}}}),i.filter.addElementCallback(function(e){if("data-ae-embed-url"in e.attributes)return CKEDITOR.FILTER_SKIP_TREE})}})}}(),function(){if(!CKEDITOR.plugins.get("ae_imagealignment")){var e={CENTER:"center",LEFT:"left",RIGHT:"right"},t=[e.LEFT,e.RIGHT,e.CENTER],i=[{name:"display",value:"block"},{name:"margin-left",value:"auto"},{name:"margin-right",value:"auto"}],n=function(t){var n=t.getStyle("float");if(n&&"inherit"!==n&&"none"!==n||(n=t.getAttribute("align")),!n){var o=i.every(function(e){var i=t.getStyle(e.name)===e.value;return!i&&e.vendorPrefixes&&(i=e.vendorPrefixes.some(function(i){return t.getStyle(i+e.name)===e.value})),i});if(!n){var a=t.$.parentNode;a.style.textAlign==e.CENTER&&(i.forEach(function(e){t.setStyle(e.name,e.value),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(i){t.setStyle(i+e.name,e.value)})}),o=!0,a.style.textAlign="")}n=o?e.CENTER:null}return n},o=function(t,o){if(o===e.LEFT||o===e.RIGHT)t.removeStyle("float"),o===n(t)&&t.removeAttribute("align");else if(o===e.CENTER){i.forEach(function(e){t.removeStyle(e.name),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(i){t.removeStyle(i+e.name)})});var a=t.$.parentNode;a.style.textAlign==e.CENTER&&(a.style.textAlign="")}},a=function(t,a){o(t,n(t)),a===e.LEFT||a===e.RIGHT?t.setStyle("float",a):a===e.CENTER&&i.forEach(function(e){t.setStyle(e.name,e.value),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(i){t.setStyle(i+e.name,e.value)})})};CKEDITOR.plugins.add("ae_imagealignment",{afterInit:function(e){var i=this;t.forEach(function(t){var r=e.getCommand("justify"+t);r&&(r.on("exec",function(r){var s=e.getSelectionData();if(s&&AlloyEditor.SelectionTest.image({data:{selectionData:s}})){var l=s.element,d=n(l);d===t?o(l,t):a(l,t),r.cancel(),i.refreshCommands(e,new CKEDITOR.dom.elementPath(l))}}),r.on("refresh",function(e){var i={element:e.data.path.lastElement};if(AlloyEditor.SelectionTest.image({data:{selectionData:i}})){var o=n(i.element);this.setState(o===t?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF),e.cancel()}}))})},refreshCommands:function(e,i){t.forEach(function(t){var n=e.getCommand("justify"+t);n&&n.refresh(e,i)})}})}}(),function(){CKEDITOR.plugins.get("ae_pasteimages")||CKEDITOR.plugins.add("ae_pasteimages",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"paste",this._onPaste,this,{editor:e})}.bind(this))},_onPaste:function(e){if(e.data.$.clipboardData){var t=e.data.$.clipboardData.items[0],i=e.listenerData.editor;if(0===t.type.indexOf("image")){var n=new FileReader,o=t.getAsFile();n.onload=function(e){var t=i.fire("beforeImageAdd",{imageFiles:o});if(t){var n=CKEDITOR.dom.element.createFromHtml('');i.insertElement(n);var a={el:n,file:o};i.fire("imageAdd",a)}}.bind(this),n.readAsDataURL(o)}}}})}(),function(){if(!CKEDITOR.plugins.get("ae_placeholder")){var e=CKEDITOR.env.needsBrFiller?"
    ":"",t={1:["

    "+e+"

    "],2:[""," ",e],3:["
    "+e+"
    "]};CKEDITOR.plugins.add("ae_placeholder",{init:function(e){e.on("blur",this._checkEmptyData,this),e.on("change",this._checkEmptyData,this),e.on("focus",this._removePlaceholderClass,this),e.once("contentDom",this._checkEmptyData,this)},_checkEmptyData:function(e){var i=e.editor,n=i.editable(),o=n.$.innerHTML.trim(),a=t[i.config.enterMode].some(function(e){return o===e});a?n.addClass(i.config.placeholderClass):n.removeClass(i.config.placeholderClass)},_removePlaceholderClass:function(e){var t=e.editor,i=new CKEDITOR.dom.element(t.element.$);i.removeClass(t.config.placeholderClass)}})}}(),function(){CKEDITOR.plugins.get("ae_selectionkeystrokes")||CKEDITOR.plugins.add("ae_selectionkeystrokes",{requires:"ae_selectionregion",init:function(e){e.config.selectionKeystrokes&&e.config.selectionKeystrokes.forEach(function(t){var i=new CKEDITOR.command(e,{exec:function(e){e.fire("editorInteraction",{manualSelection:t.selection,nativeEvent:{},selectionData:e.getSelectionData()})}}),n="selectionKeystroke"+t.selection;e.addCommand(n,i),e.setKeystroke(t.keys,n)})}})}(),function(){function e(e){return CKEDITOR.env.ie?e.$.clientWidth:parseInt(e.getComputedStyle("width"),10)}function t(e,t){var i=e.getComputedStyle("border-"+t+"-width"),n={thin:"0px",medium:"1px",thick:"2px"};return i.indexOf("px")<0&&(i=i in n&&"none"!=e.getComputedStyle("border-style")?n[i]:0),parseInt(i,10)}function i(e){for(var t,i,n,o=e.$.rows,a=0,r=0,s=o.length;ra&&(a=t,i=n);return i}function n(e){for(var n=[],o=-1,a="rtl"===e.getComputedStyle("direction"),r=i(e),s=new CKEDITOR.dom.element(e.$.tBodies[0]),l=s.getDocumentPosition(),d=0,c=r.cells.length;d=o.x&&t<=o.x+o.width)return o}return null}function a(e){(e.data||e).preventDefault()}function r(i,n){function o(){g.removeListener("mouseup",u),g.removeListener("mousedown",c),g.removeListener("mousemove",p)}function r(){for(var t=n.index,i=CKEDITOR.tools.buildTableMap(n.table),o=[],r=[],s=Number.MAX_VALUE,l=s,d=n.rtl,c=0,u=i.length;c',m),i.on("destroy",function(){o(),g.remove()}),m.getDocumentElement().append(g),g.setStyles({width:l(n.width),height:l(n.height),left:l(n.x),top:l(n.y)}),g.on("mousedown",c,this),m.getBody().setStyle("cursor","col-resize"),g.show();var C=this.move=function(e){var t=e-Math.round(g.$.offsetWidth/2);if(_){if(t===b||t===T)return;t=Math.max(t,b),t=Math.min(t,T),y=t-f}g.setStyle("left",l(t))},_=(this.destroy=function(){o(),m.getBody().setStyle("cursor","auto"),g.remove()},this.isResizing=function(){return h})}function s(e){var t=e.data.getTarget();if("mouseout"===e.name){if(!t.is("table"))return;for(var i=new CKEDITOR.dom.element(e.data.$.relatedTarget||e.data.$.toElement);i&&i.$&&!i.equals(t)&&!i.is("body");)i=i.getParent();if(!i||i.equals(t))return}t.getAscendant("table",1).removeCustomData("_cke_table_pillars"),e.removeListener()}if(!CKEDITOR.plugins.get("ae_tableresize")){var l=CKEDITOR.tools.cssLength;CKEDITOR.plugins.add("ae_tableresize",{requires:"ae_tabletools",init:function(e){e.on("contentDom",function(){var t,i=e.editable();i.attachListener(i.isInline()?i:e.document,"mousemove",function(i){i=i.data;var l=i.getTarget();if(l.type===CKEDITOR.NODE_ELEMENT){var d=i.getPageOffset().x;if(t){if(t.isResizing())return t.move(d),void a(i);t.destroy(),t=null}var c,u;if((l.is("table")||l.getAscendant("tbody",1))&&(c=l.getAscendant("table",1),e.editable().contains(c))){(u=c.getCustomData("_cke_table_pillars"))||(c.setCustomData("_cke_table_pillars",u=n(c)),c.on("mouseout",s),c.on("mousedown",s));var p=o(u,d);p&&(t=new r(e,p))}}})})}})}}(),function(){function e(e){function t(e){n.length>0||e.type==CKEDITOR.NODE_ELEMENT&&y.test(e.getName())&&!e.getCustomData("selected_cell")&&(CKEDITOR.dom.element.setMarker(o,e,"selected_cell",!0),n.push(e))}for(var i=e.getRanges(),n=[],o={},a=0;a1&&f&&h[v]==f[v]?(b=h[v],b.rowSpan+=1):(b=new CKEDITOR.dom.element(h[v]).clone(),b.removeAttribute("rowSpan"),b.appendBogus(),E.append(b),b=b.$),v+=b.colSpan-1}i?E.insertBefore(m):E.insertAfter(m)}function n(t){if(t instanceof CKEDITOR.dom.selection){for(var i=e(t),o=i[0],a=o.getAscendant("table"),r=CKEDITOR.tools.buildTableMap(a),s=i[0].getParent(),l=s.$.rowIndex,d=i[i.length-1],c=d.getParent().$.rowIndex+d.$.rowSpan-1,u=[],p=l;p<=c;p++){for(var m=r[p],g=new CKEDITOR.dom.element(a.$.rows[p]),h=0;h0?v[l-1]:null)||a.$.parentNode);for(p=u.length;p>=0;p--)n(u[p]);return b}return t instanceof CKEDITOR.dom.element&&(a=t.getAscendant("table"),1==a.$.rows.length?a.remove():t.remove()),null}function o(e,t){for(var i=e.getParent(),n=i.$.cells,o=0,a=0;ai)&&(i=a)}return i}function r(t,i){for(var n=e(t),o=n[0],r=o.getAscendant("table"),s=a(n,1),l=a(n),d=i?s:l,c=CKEDITOR.tools.buildTableMap(r),u=[],p=[],m=c.length,g=0;g1&&p[g]==u[g]?(f=u[g],f.colSpan+=1):(f=new CKEDITOR.dom.element(u[g]).clone(),f.removeAttribute("colSpan"),f.appendBogus(),f[i?"insertBefore":"insertAfter"].call(f,new CKEDITOR.dom.element(u[g])),f=f.$),g+=f.rowSpan-1)}}function s(t){for(var i,n,o=e(t),a=o[0],r=o[o.length-1],s=a.getAscendant("table"),l=CKEDITOR.tools.buildTableMap(s),d=[],c=0,u=l.length;c=0;r--)d(n[r]);a?u(a,!0):o&&o.remove()}else if(i instanceof CKEDITOR.dom.element){var s=i.getParent();1==s.getChildCount()?s.remove():i.remove()}}function c(e){var t=e.getBogus();t&&t.remove(),e.trim()}function u(e,t){var i=e.getDocument(),n=CKEDITOR.document;CKEDITOR.env.ie&&10==CKEDITOR.env.version&&(n.focus(),i.focus());var o=new CKEDITOR.dom.range(i);o["moveToElementEdit"+(t?"End":"Start")](e)||(o.selectNodeContents(e),o.collapse(!t)),o.select(!0)}function p(e,t,i){var n=e[t]; if("undefined"==typeof i)return n;for(var o=0;n&&o1&&(n+=o[t].rowSpan-1)}return i}function g(t,i,n){var o,a=e(t);if((i?1!=a.length:a.length<2)||(o=t.getCommonAncestor())&&o.type==CKEDITOR.NODE_ELEMENT&&o.is("table"))return!1;var r,s=a[0],l=s.getAscendant("table"),d=CKEDITOR.tools.buildTableMap(l),u=d.length,m=d[0].length,g=s.getParent().$.rowIndex,h=p(d,g,s);if(i){var f;try{var y=parseInt(s.getAttribute("rowspan"),10)||1,E=parseInt(s.getAttribute("colspan"),10)||1;f=d["up"==i?g-y:"down"==i?g+y:g]["left"==i?h-E:"right"==i?h+E:h]}catch(e){return!1}if(!f||s.$==f)return!1;a["up"==i||"left"==i?"unshift":"push"](new CKEDITOR.dom.element(f))}for(var v=s.getDocument(),b=g,T=0,C=0,_=!n&&new CKEDITOR.dom.documentFragment(v),R=0,A=0;A=m?s.removeAttribute("rowSpan"):s.$.rowSpan=T,T>=u?s.removeAttribute("colSpan"):s.$.colSpan=C;var P=new CKEDITOR.dom.nodeList(l.$.rows),N=P.count();for(A=N-1;A>=0;A--){var B=P.getItem(A);B.$.cells.length||(B.remove(),N++)}return s}function h(t,i){var n=e(t);if(n.length>1)return!1;if(i)return!0;var o,a,r,s,l=n[0],d=l.getParent(),c=d.getAscendant("table"),u=CKEDITOR.tools.buildTableMap(c),m=d.$.rowIndex,g=p(u,m,l),h=l.$.rowSpan;if(h>1){a=Math.ceil(h/2),r=Math.floor(h/2),s=m+a;var f,y=new CKEDITOR.dom.element(c.$.rows[s]),E=p(u,s);o=l.clone();for(var v=0;vg){o.insertBefore(new CKEDITOR.dom.element(f));break}f=null}f||y.append(o)}else{r=a=1,y=d.clone(),y.insertAfter(d),y.append(o=l.clone());for(var b=p(u,m),T=0;T1)return!1;if(i)return!0;var o,a,r,s=n[0],l=s.getParent(),d=l.getAscendant("table"),c=CKEDITOR.tools.buildTableMap(d),u=l.$.rowIndex,g=p(c,u,s),h=s.$.colSpan;if(h>1)a=Math.ceil(h/2),r=Math.floor(h/2);else{r=a=1;for(var f=m(c,g),y=0;y>>0),n=t(i,e);return new n}})}})}}(),function(){function e(){}function t(e,t,o){var a=AlloyEditor.Buttons[e];return n[o.name]=n[o.name]||{},n[o.name][e]=n[o.name][e]||t,a||(a=createReactClass(CKEDITOR.tools.merge(i,{displayName:e,propTypes:{editor:PropTypes.object.isRequired,tabIndex:PropTypes.number},statics:{key:e},render:function(){var t=this.props.editor.get("nativeEditor"),i=n[t.name][e].name||n[t.name][e].command||e,o="ae-button ae-button-bridge",a="ae-icon-"+i,r={},s=CKEDITOR.skin.getIconStyle(i);if(s){var l=s.split(";");r.backgroundImage=l[0].substring(l[0].indexOf(":")+1),r.backgroundPosition=l[1].substring(l[1].indexOf(":")+1),r.backgroundSize=l[2].substring(l[2].indexOf(":")+1)}var d;return this.props.expanded&&(d=this._getMenu()),React.createElement("div",{className:"ae-container ae-has-dropdown"},React.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":n[t.name][e].label,className:o,onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:n[t.name][e].label},React.createElement("span",{className:a,style:r})),d)},_getMenu:function(){return React.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getMenuItems())},_getMenuItems:function(){var e=this.props.editor.get("nativeEditor"),i=t.onMenu(),n=Object.keys(i).map(function(t){var n=e.getMenuItem(t);if(!n)return null;var o=n.definition||n,a=i[t],r="ae-toolbar-element "+(a===CKEDITOR.TRISTATE_ON?"active":""),s=a===CKEDITOR.TRISTATE_DISABLED,l=function(){o.command?e.execCommand(o.command):o.onClick&&o.onClick.apply(o)};return React.createElement("li",{key:n.name,role:"option"},React.createElement("button",{className:r,disabled:s,onClick:l},o.label))}.bind(this));return n}})),AlloyEditor.Buttons[e]=a),a}if(!CKEDITOR.plugins.get("ae_menubuttonbridge")){var i={toFeature:e},n={};CKEDITOR.plugins.get("menubutton")||(CKEDITOR.UI_MENU_BUTTON="menubutton",CKEDITOR.plugins.add("menubutton",{})),CKEDITOR.plugins.add("ae_menubuttonbridge",{requires:["ae_uibridge","ae_menubridge"],beforeInit:function(e){e.ui.addMenuButton=function(e,t){this.add(e,CKEDITOR.UI_MENUBUTTON,t)},e.ui.addHandler(CKEDITOR.UI_MENUBUTTON,{add:t,create:function(e){var i="buttonBridge"+(1e9*Math.random()>>>0),n=t(i,e);return new n}})}})}}(),function(){CKEDITOR.plugins.get("ae_menubridge")||CKEDITOR.plugins.add("ae_menubridge",{beforeInit:function(e){if(!CKEDITOR.plugins.get("menu")){for(var t=[],i=e._.menuGroups={},n=e._.menuItems={},o=0;o>>0),i=n(t,e);return new i}})}})}}(),function(){function e(){}if(!CKEDITOR.plugins.get("ae_richcombobridge")){var t={commit:e,createPanel:e,disable:e,enable:e,getState:e,hideGroup:e,hideItem:e,mark:e,showAll:e,startGroup:e,unmarkAll:e},i={},n=function(e,n,o){var a=AlloyEditor.Buttons[e];return i[o.name]=i[o.name]||{},i[o.name][e]=i[o.name][e]||n,i[o.name][e].currentValue=void 0,a||(a=createReactClass(CKEDITOR.tools.merge(t,{displayName:e,propTypes:{editor:PropTypes.object.isRequired},statics:{key:e},add:function(e,t,i){this._items.push({preview:t,title:i,value:e})},componentWillMount:function(){var t=this.props.editor.get("nativeEditor"),n=i[t.name][e];this._items=[],this.setValue=this._setValue,n.init&&n.init.call(this),n.onRender&&n.onRender.call(this)},componentWillUnmount:function(){this._cacheValue(this.state.value),this.setValue=this._cacheValue},getInitialState:function(){return{value:i[o.name][e].currentValue}},getValue:function(){return this.state.value},render:function(){var t,o=this.props.editor.get("nativeEditor"),a=i[o.name][e].currentValue||n.label;return this.props.expanded&&(t=this._getItemsList()),React.createElement("div",{className:"ae-container-dropdown ae-has-dropdown"},React.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":a,className:"ae-toolbar-element",onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:a},React.createElement("div",{className:"ae-container"},React.createElement("span",{className:"ae-container-dropdown-selected-item"},a),React.createElement("span",{className:"ae-icon-arrow"}))),t)},_cacheValue:function(t){var n=this.props.editor.get("nativeEditor");i[n.name][e].currentValue=t},_getItems:function(){var e=this,t=this._items.map(function(t){var i="ae-toolbar-element "+(t.value===this.state.value?"active":"");return React.createElement("li",{key:t.title,role:"option"},React.createElement("button",{className:i,dangerouslySetInnerHTML:{__html:t.preview},"data-value":t.value,onClick:e._onClick}))}.bind(this));return t},_getItemsList:function(){return React.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getItems())},_onClick:function(t){var n=this.props.editor.get("nativeEditor"),o=i[n.name][e];if(o.onClick){var a=t.currentTarget.getAttribute("data-value");o.onClick.call(this,a),i[n.name][e].currentValue=a,n.fire("actionPerformed",this)}},_setValue:function(e){this._cacheValue(e),this.setState({value:e})}})),AlloyEditor.Buttons[e]=a),a};CKEDITOR.plugins.get("richcombo")||(CKEDITOR.UI_RICHCOMBO="richcombo",CKEDITOR.plugins.add("richcombo",{})),CKEDITOR.plugins.add("ae_richcombobridge",{requires:["ae_uibridge"],beforeInit:function(e){e.ui.addRichCombo=function(e,t){this.add(e,CKEDITOR.UI_RICHCOMBO,t)},e.ui.addHandler(CKEDITOR.UI_RICHCOMBO,{add:n,create:function(e){var t="richComboBridge"+(1e9*Math.random()>>>0),i=n(t,e);return new i}})}})}}(),function(){CKEDITOR.plugins.get("ae_uibridge")||CKEDITOR.plugins.add("ae_uibridge",{beforeInit:function(e){var t=e.ui.add;e.ui.add=function(i,n,o){t.apply(this,arguments);var a=this._.handlers[n];a&&a.add&&(a.add(i,o,e),AlloyEditor.registerBridgeButton(i,e.__processingPlugin__.plugin.name))}}})}();var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(){var e={isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},isBoolean:function(e){return"boolean"==typeof e},isFunction:function(e){return"function"==typeof e},isNull:function(e){return null===e},isNumber:function(e){return"number"==typeof e&&isFinite(e)},isObject:function(t){var i="undefined"==typeof t?"undefined":_typeof(t);return t&&("object"===i||e.isFunction(t))},isString:function(e){return"string"==typeof e},mix:function(e,t){var i=Object.prototype.hasOwnProperty;for(var n in t)i.call(t,n)&&(e[n]=t[n])},toInt:function(e){return parseInt(e,10)}};AlloyEditor.Lang=e}(),function(){var e={extend:function(e,t,i,n){if(!t||!e)throw"extend failed, verify dependencies";var o=t.prototype,a=Object.create(o);return e.prototype=a,a.constructor=e,e.superclass=o,t!==Object&&o.constructor===Object.prototype.constructor&&(o.constructor=t),i&&AlloyEditor.Lang.mix(a,i),n&&AlloyEditor.Lang.mix(e,n),e}};AlloyEditor.OOP=e}(),function(){function e(e){this.__config__=e||{},this.__ATTRS__={}}e.prototype={constructor:e,get:function(e){var t=this.constructor.ATTRS[e];if(t){this._isInitialized(e)||this._init(e);var i=this.__ATTRS__[e];return t.getter&&(i=this._callStringOrFunction(t.getter,i)),i}},set:function(e,t){var i=this.constructor.ATTRS[e];i&&(this._isInitialized(e)||this._init(e),i.readOnly||i.writeOnce&&this._isInitialized(e)||i.validator&&!this._callStringOrFunction(i.validator,t)||(i.setter&&(t=this._callStringOrFunction(i.setter,t)),this.__ATTRS__[e]=t))},_callStringOrFunction:function(e,t){var i=null;return AlloyEditor.Lang.isArray(t)||(t=[t]),AlloyEditor.Lang.isString(e)&&AlloyEditor.Lang.isFunction(this[e])?i=this[e].apply(this,t):AlloyEditor.Lang.isFunction(e)&&(i=e.apply(this,t)),i},_init:function(e){var t,i=this.constructor.ATTRS[e],n=Object.prototype.hasOwnProperty.call(i,"value"),o=Object.prototype.hasOwnProperty.call(this.__config__,e);if(i.valueFn)t=this._callStringOrFunction(i.valueFn,t),this.__ATTRS__[e]=t;else if(i.readOnly)t=i.value;else if(i.writeOnce)if(o)t=this.__config__[e];else{if(!n)return;t=i.value}else o?t=this.__config__[e]:n&&(t=i.value);if(i.validator&&o&&!this._callStringOrFunction(i.validator,t)){if(!n)return;t=i.value}i.setter&&o&&(t=this._callStringOrFunction(i.setter,t)),this.__ATTRS__[e]=t},_isInitialized:function(e){return Object.prototype.hasOwnProperty.call(this.__ATTRS__,e)}},AlloyEditor.Attribute=e}(),function(){function e(t){e.superclass.constructor.call(this,t),this.init(t)}AlloyEditor.OOP.extend(e,AlloyEditor.Attribute,{init:function(e){this._callChain("initializer",e)},destroy:function(){this._callChain("destructor")},_callChain:function(e,t){for(var i=[],n=this.constructor;n;)AlloyEditor.Lang.isFunction(n.prototype[e])&&i.push(n.prototype[e]),n=n.superclass?n.superclass.constructor:null;i=i.reverse(),t=AlloyEditor.Lang.isArray(t)?t:[t];for(var o=0;od-n.offsetWidth&&(g[0]=d-n.offsetWidth),t.moveToPoint(m,g)},i=function(e){var i=e.selectionData?e.selectionData:e.editorEvent?e.editorEvent.data.selectionData:null;if(i&&i.element)return t(this,i.element.getClientRect()),!0},n=function(e){var i=e.editor.get("nativeEditor"),n=i.config.uiNode,o=n?n.scrollTop:0,a=new CKEDITOR.Table(i).getFromSelection(),r=a.getClientRect();return r.top+=o,t(this,r),!0};AlloyEditor.SelectionSetPosition={image:i,table:n}}(),function(){var e=function(e,t){return t.getText().length===e.endOffset||t.equals(e.startContainer)&&t.equals(e.endContainer)&&e.startOffset===e.endOffset&&1===e.endOffset},t=function(e){var t=e.data.selectionData;return!(!t.element||"ae_embed"!==t.element.getAttribute("data-widget"))},i=function(t){var i=t.editor.get("nativeEditor"),n=i.getSelection().getRanges()[0],o=t.data.selectionData,a=new CKEDITOR.Link(i).getFromSelection(),r=i.isSelectionEmpty(),s=!o.element||"img"!==o.element.getName();return!(!(r&&s&&a&&a.getText().length!==n.endOffset&&a)||a.isReadOnly()||e(n,a))},n=function(e){var t=e.data.selectionData,i=!1;if(e.editor){var n=e.editor._getNativeEditor();i=n.isSelectionEmpty()}var o=function(e){return"image"===e.getAttribute("data-widget")||e.getAscendant(function(e){return"image"===e.getAttribute("data-widget")})};return!(!t.element||"img"!==t.element.getName()||i||t.element.isReadOnly()&&!o(t.element))},o=function(e){var t=e.editor.get("nativeEditor"),i=t.isSelectionEmpty(),n=e.data.selectionData;return!(n.element||!n.region||i||t.getSelection().getCommonAncestor().isReadOnly())},a=function(e){var t=e.editor.get("nativeEditor"),i=new CKEDITOR.Table(t),n=i.getFromSelection();return!(!n||!i.isEditable(n))};AlloyEditor.SelectionTest={embed:t,image:n,link:i,table:a,text:o}}(),function(){var e=[{name:"embed",buttons:["embedRemove","embedEdit"],test:AlloyEditor.SelectionTest.embed},{name:"link",buttons:["linkEdit"],test:AlloyEditor.SelectionTest.link},{name:"image",buttons:["imageLeft","imageCenter","imageRight"],setPosition:AlloyEditor.SelectionSetPosition.image,test:AlloyEditor.SelectionTest.image},{name:"text",buttons:{full:[["Font","FontSize","separator","bold","italic","underline","strike","separator","link"],["paragraphAlign","separator","ul","ol","separator","h1","h2","separator","indentBlock","outdentBlock","separator","TextColor","BGColor","separator","code","quote","separator","removeFormat"]],simple:["styles","bold","italic","underline","link"]},test:AlloyEditor.SelectionTest.text},{name:"table",buttons:["tableHeading","tableRow","tableColumn","tableCell","tableRemove"],getArrowBoxClasses:AlloyEditor.SelectionGetArrowBoxClasses.table,setPosition:AlloyEditor.SelectionSetPosition.table,test:AlloyEditor.SelectionTest.table}];AlloyEditor.Selections=e}(),function(){function e(t){e.superclass.constructor.call(this,t)}AlloyEditor.OOP.extend(e,AlloyEditor.Base,{initializer:function(e){var t=this.get("srcNode");this.get("enableContentEditable")&&t.setAttribute("contenteditable","true");var i=CKEDITOR.inline(t);if(i.config.allowedContent=this.get("allowedContent"),i.config.toolbars=this.get("toolbars"),i.config.removePlugins=this.get("removePlugins"),i.config.extraPlugins=this.get("extraPlugins"),i.config.placeholderClass=this.get("placeholderClass"),i.config.pasteFromWordRemoveStyles=!1,i.config.pasteFromWordRemoveFontStyles=!1,i.config.selectionKeystrokes=this.get("selectionKeystrokes"),AlloyEditor.Lang.mix(i.config,e),CKEDITOR.env.ie&&!CKEDITOR.env.edge){var n=11===CKEDITOR.env.version?"ae_dragresize_ie11":"ae_dragresize_ie";i.config.extraPlugins=i.config.extraPlugins.replace("ae_dragresize",n),i.config.removePlugins=i.config.removePlugins.replace("ae_dragresize",n)}i.once("contentDom",function(){this._addReadOnlyLinkClickListener(i);var e=i.editable();e.addClass("ae-editable")}.bind(this)),this._editor=i,AlloyEditor.loadLanguageResources(this._renderUI.bind(this))},destructor:function(){this._destroyed=!0,this._editorUIElement&&(ReactDOM.unmountComponentAtNode(this._editorUIElement),this._editorUIElement.parentNode.removeChild(this._editorUIElement));var e=this.get("nativeEditor");if(e){var t=e.editable();t&&(t.removeClass("ae-editable"),this.get("enableContentEditable")&&this.get("srcNode").setAttribute("contenteditable","false")),this._clearSelections(),e.destroy()}},_clearSelections:function(){var e=this.get("nativeEditor"),t="function"!=typeof window.getSelection;t?e.document.$.selection.empty():e.document.getWindow().$.getSelection().removeAllRanges()},_addReadOnlyLinkClickListener:function(e){e.editable().on("click",this._defaultReadOnlyClickFn,this,{editor:e})},_defaultReadOnlyClickFn:function(e){var t=e.data.$,i=t.ctrlKey||t.metaKey,n=this._editor.config.readOnly||i;if(t.preventDefault(),n&&e.listenerData.editor.editable().editor.fire("readOnlyClick",e.data)!==!1){var o=new CKEDITOR.dom.elementPath(e.data.getTarget(),this),a=o.lastElement;if(a){var r=a.$.attributes.href?a.$.attributes.href.value:null,s=i?"_blank":a.$.attributes.target?a.$.attributes.target.value:null;this._redirectLink(r,s)}}},_getNativeEditor:function(){return this._editor},_redirectLink:function(e,t){t&&e?window.open(e,t):e&&(window.location.href=e)},_renderUI:function(){if(!this._destroyed){var e=document.createElement("div");e.className="ae-ui";var t=this.get("uiNode")||document.body;t.appendChild(e),this._mainUI=ReactDOM.render(React.createElement(AlloyEditor.UI,{editor:this,eventsDelay:this.get("eventsDelay"),toolbars:this.get("toolbars")}),e),this._editorUIElement=e,this.get("nativeEditor").fire("uiReady")}},_toElement:function(e){return AlloyEditor.Lang.isString(e)&&(e=document.getElementById(e)),e},_validateAllowedContent:function(e){return AlloyEditor.Lang.isString(e)||AlloyEditor.Lang.isObject(e)||AlloyEditor.Lang.isBoolean(e)},_validateToolbars:function(e){return AlloyEditor.Lang.isObject(e)||AlloyEditor.Lang.isNull(e)}},{ATTRS:{allowedContent:{validator:"_validateAllowedContent",value:!0,writeOnce:!0},enableContentEditable:{validator:AlloyEditor.Lang.isBoolean,value:!0,writeOnce:!0},eventsDelay:{validator:AlloyEditor.Lang.isNumber,value:100},extraPlugins:{validator:AlloyEditor.Lang.isString,value:"ae_uicore,ae_selectionregion,ae_selectionkeystrokes,ae_imagealignment,ae_addimages,ae_placeholder,ae_tabletools,ae_tableresize,ae_autolink,ae_embed,ae_autolist,ae_dragresize,ae_uibridge,ae_richcombobridge,ae_panelmenubuttonbridge,ae_menubridge,ae_menubuttonbridge,ae_buttonbridge,font,colorbutton",writeOnce:!0},mode:{validator:AlloyEditor.Lang.isString,value:"simple"},nativeEditor:{getter:"_getNativeEditor",readOnly:!0},placeholderClass:{validator:AlloyEditor.Lang.isString,value:"ae-placeholder",writeOnce:!0},removePlugins:{validator:AlloyEditor.Lang.isString,value:"contextmenu,toolbar,elementspath,resize,liststyle,link",writeOnce:!0},selectionKeystrokes:{validator:AlloyEditor.Lang.isArray,value:[{keys:CKEDITOR.CTRL+76,selection:"link"},{keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76,selection:"embed"}]},srcNode:{setter:"_toElement",writeOnce:!0},toolbars:{validator:"_validateToolbars",value:{add:{buttons:["image","embed","camera","hline","table"],tabIndex:2},styles:{selections:AlloyEditor.Selections,tabIndex:1}}},uiNode:{setter:"_toElement",writeOnce:!0}}}),CKEDITOR.event.implementOn(e),AlloyEditor.Core=e}(),function(){var e={applyStyle:function(){if(AlloyEditor.Lang.isFunction(this.isActive)&&AlloyEditor.Lang.isFunction(this.getStyle)){var e=this.props.editor.get("nativeEditor");e.getSelection().lock(),this.isActive()?e.removeStyle(this.getStyle()):e.applyStyle(this.getStyle()),e.getSelection().unlock(),e.fire("actionPerformed",this)}}};AlloyEditor.ButtonActionStyle=e}(),function(){var e={isActive:function(){var e=this.props.editor.get("nativeEditor"),t=e.getCommand(this.props.command);return!!t&&t.state===CKEDITOR.TRISTATE_ON}};AlloyEditor.ButtonCommandActive=e}(),function(){var e={propTypes:{command:PropTypes.string.isRequired,modifiesSelection:PropTypes.bool},execCommand:function(e){var t=this.props.editor.get("nativeEditor");t.execCommand(this.props.command,e),this.props.modifiesSelection&&t.selectionChange(!0),t.fire("actionPerformed",this)}};AlloyEditor.ButtonCommand=e}(),function(){var e={propTypes:{keystroke:PropTypes.object.isRequired},componentWillMount:function(){var e=this.props.editor.get("nativeEditor"),t=this.props.keystroke,i=t.name||(1e9*Math.random()>>>0).toString(),n=e.getCommand(i);n||(n=new CKEDITOR.command(e,{exec:function(e){var i=t.fn;AlloyEditor.Lang.isString(i)?this[i].call(this,e):AlloyEditor.Lang.isFunction(i)&&i.call(this,e)}.bind(this)}),e.addCommand(i,n)),this._defaultKeystrokeCommand=e.keystrokeHandler.keystrokes[t.keys],e.setKeystroke(t.keys,i)},componentWillUnmount:function(){this.props.editor.get("nativeEditor").setKeystroke(this.props.keystroke.keys,this._defaultKeystrokeCommand)}};AlloyEditor.ButtonKeystroke=e}(),function(){var e={propTypes:{editor:PropTypes.object.isRequired},mergeButtonCfgProps:function(e){e=e||this.props;var t=this.props.editor.get("nativeEditor"),i=t.config.buttonCfg||{},n=CKEDITOR.tools.merge(e,i[AlloyEditor.ButtonLinkEdit.key]);return n}};AlloyEditor.ButtonCfgProps=e}(),function(){var e={getStateClasses:function(){var e="";return AlloyEditor.Lang.isFunction(this.isActive)&&this.isActive()&&(e+="ae-button-pressed"),AlloyEditor.Lang.isFunction(this.isDisabled)&&this.isDisabled()&&(e+=" ae-button-disabled"),e}};AlloyEditor.ButtonStateClasses=e}(),function(){var e={propTypes:{style:PropTypes.oneOfType([PropTypes.object,PropTypes.string]),styleFn:PropTypes.func},componentWillMount:function(){var e=AlloyEditor.Lang,t=this.props.style;if(e.isString(t)){for(var i=t.split("."),n=this.props.editor.get("nativeEditor").config,o=i.shift();o&&e.isObject(n)&&e.isObject(n[o]);)n=n[o],o=i.shift();e.isObject(n)&&(t=n)}this._style=new CKEDITOR.style(t)},componentWillUnmount:function(){this._style=null},getStyle:function(){return this._style},isActive:function(){var e,t=this.props.editor.get("nativeEditor"),i=t.elementPath();return e=this.getStyle().checkActive(i,t)}};AlloyEditor.ButtonStyle=e}(),function(){var e={getToolbarButtonGroups:function(e,t){var i=this;return AlloyEditor.Lang.isFunction(e)&&(e=e.call(this)||[]),e.reduce(function(n,o){return Array.isArray(o)?(n.push(i.getToolbarButtons(o,t)),n):i.getToolbarButtons(e,t)},[])},getToolbarButtons:function(e,t){var i={},n=this.props.editor.get("nativeEditor"),o=n.config.buttonCfg||{};AlloyEditor.Lang.isFunction(e)&&(e=e.call(this)||[]);var a=this.filterExclusive(e.filter(function(e){return e&&(AlloyEditor.Buttons[e]||AlloyEditor.Buttons[e.name])}).map(function(e){return AlloyEditor.Lang.isString(e)?(i[e]=o[e],e=AlloyEditor.Buttons[e]):AlloyEditor.Lang.isString(e.name)&&(i[AlloyEditor.Buttons[e.name].key]=CKEDITOR.tools.merge(o[e],e.cfg),e=AlloyEditor.Buttons[e.name]),e})).map(function(e,n){var o=this.mergeExclusiveProps({editor:this.props.editor,key:"separator"!==e.key?e.key:e.key+"-"+n,tabKey:e.key,tabIndex:this.props.trigger&&this.props.trigger.props.tabKey===e.key?0:-1,trigger:this.props.trigger},e.key);return o=this.mergeDropdownProps(o,e.key),t&&(o=CKEDITOR.tools.merge(o,t)),o=CKEDITOR.tools.merge(o,i[e.key]),React.createElement(e,o)},this);return a}};AlloyEditor.ToolbarButtons=e}(),function(){var e={getArrowBoxClasses:function(){var e="ae-arrow-box";return AlloyEditor.Lang.isFunction(this.getInteractionPoint)&&this.getInteractionPoint()&&(e+=this.getInteractionPoint().direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?" ae-arrow-box-top":" ae-arrow-box-bottom"),e}};AlloyEditor.WidgetArrowBox=e}(),function(){var e={componentWillReceiveProps:function(e){this.setState({dropdownTrigger:null,itemDropdown:null})},getInitialState:function(){return{dropdownTrigger:null,itemDropdown:null}},mergeDropdownProps:function(e,t){return CKEDITOR.tools.merge(e,{expanded:this.state.itemDropdown===t,tabIndex:this.state.dropdownTrigger===t?0:-1,toggleDropdown:this.toggleDropdown.bind(this,t)})},toggleDropdown:function(e,t){this.setState({dropdownTrigger:e,itemDropdown:e!==this.state.itemDropdown?e:null},function(){this.state.itemDropdown||(this.moveFocus?this.moveFocus(t):ReactDOM.findDOMNode(this).focus())})}};AlloyEditor.WidgetDropdown=e}(),function(){var e={cancelExclusive:function(e){this.state.itemExclusive===e&&this.setState({itemExclusive:null})},componentWillReceiveProps:function(e){this.setState({itemExclusive:null})},filterExclusive:function(e){return e.filter(function(e){return this.state.itemExclusive?this.state.itemExclusive===e.key?e:void 0:e}.bind(this))},mergeExclusiveProps:function(e,t){return CKEDITOR.tools.merge(e,{cancelExclusive:this.cancelExclusive.bind(this,t),renderExclusive:this.state.itemExclusive===t,requestExclusive:this.requestExclusive.bind(this,t)})},requestExclusive:function(e){this.setState({itemExclusive:e})}};AlloyEditor.WidgetExclusive=e}(),function(){var e=0,t=1,i=-1,n=0,o=1,a=2,r={propTypes:{onDismiss:PropTypes.func,circular:PropTypes.bool.isRequired,focusFirstChild:PropTypes.bool,descendants:PropTypes.string.isRequired,keys:PropTypes.object.isRequired},componentDidMount:function(){this._refresh()},componentDidUpdate:function(){this._refresh()},focus:function(e){if((!e||this._isValidTarget(e.target))&&this._descendants&&this._descendants.length){var t=this._descendants[this._activeDescendant];document.activeElement===t||this.props.focusFirstChild||this._descendants.indexOf(document.activeElement)===-1&&t.focus(),e&&(e.stopPropagation(),e.preventDefault())}},handleKey:function(e){if(this._isValidTarget(e.target)&&this._descendants){ -var t=this._getFocusAction(e);t.type&&(e.stopPropagation(),e.preventDefault(),t.type===o&&this._moveFocus(t.direction),t.type===a&&this.props.onDismiss(t.direction))}},moveFocus:function(e){e=AlloyEditor.Lang.isNumber(e)?e:0,this._moveFocus(e)},_getFocusAction:function(e){var t={type:n};if(this.props.keys){var i=this._getFocusMoveDirection(e);i&&(t.direction=i,t.type=o);var r=this._getFocusDismissAction(e,i);r.dismiss&&(t.direction=r.direction,t.type=a)}return t},_getFocusDismissAction:function(e,n){var o={direction:n,dismiss:!1};return this.props.onDismiss&&(this._isValidKey(e.keyCode,this.props.keys.dismiss)&&(o.dismiss=!0),this._isValidKey(e.keyCode,this.props.keys.dismissNext)&&(o.dismiss=!0,o.direction=t),this._isValidKey(e.keyCode,this.props.keys.dismissPrev)&&(o.dismiss=!0,o.direction=i),o.dismiss||this.props.circular||!n||(o.dismiss=n===i&&0===this._activeDescendant||n===t&&this._activeDescendant===this._descendants.length-1)),o},_getFocusMoveDirection:function(n){var o=e;return this._isValidKey(n.keyCode,this.props.keys.next)&&(o=t),this._isValidKey(n.keyCode,this.props.keys.prev)&&(o=i),n.shifKey&&(o*=-1),o},_isValidKey:function(e,t){return AlloyEditor.Lang.isArray(t)?t.indexOf(e)!==-1:e===t},_isValidTarget:function(e){var t=e.tagName.toLowerCase();return"input"!==t&&"select"!==t&&"textarea"!==t},_moveFocus:function(e){var t=this._descendants.length,i=this._descendants[this._activeDescendant];i.setAttribute("tabIndex",-1),this._activeDescendant+=e,this.props.circular?this._activeDescendant=(this._activeDescendant%t+t)%t:this._activeDescendant=Math.max(Math.min(this._activeDescendant,t-1),0),i=this._descendants[this._activeDescendant],i.setAttribute("tabIndex",0),i.focus()},_refresh:function(){var e=ReactDOM.findDOMNode(this);if(e){var t=e.querySelectorAll(this.props.descendants),i=[];this._descendants=[],Array.prototype.slice.call(t).forEach(function(e){var t=e.getAttribute("data-tabindex");t?i.push(e):this._descendants.push(e)}.bind(this)),i=i.sort(function(e,t){return AlloyEditor.Lang.toInt(e.getAttribute("data-tabindex"))>AlloyEditor.Lang.toInt(t.getAttribute("data-tabindex"))}),this._descendants=i.concat(this._descendants),this._activeDescendant=0,this._descendants.some(function(e,t){if("0"===e.getAttribute("tabindex"))return this._activeDescendant=t,this.focus(),!0}.bind(this))}}};AlloyEditor.WidgetFocusManager=r}(),function(){var e={propTypes:{editorEvent:PropTypes.object},getInteractionPoint:function(){var e=this.props.editorEvent?this.props.editorEvent.data:null;if(e){var t=e.selectionData,i=e.nativeEvent,n={x:e.nativeEvent.pageX,y:t.region.top},o=t.region.direction,a=t.region.endRect,r=t.region.startRect;a&&r&&r.top===a.top&&(o=CKEDITOR.SELECTION_BOTTOM_TO_TOP);var s,l;return n.x&&n.y?(s=this._getXPoint(t,n.x),l=o===CKEDITOR.SELECTION_BOTTOM_TO_TOP?Math.min(n.y,t.region.top):Math.max(n.y,this._getYPoint(t,i))):(s=t.region.left+t.region.width/2,l=o===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this._getYPoint(t,i):t.region.top),{direction:o,x:s,y:l}}},_getXPoint:function(e,t){var i,n=e.region,o=n.startRect?n.startRect.left:n.left,a=n.endRect?n.endRect.right:n.right;if(ot)i=t;else{var r=Math.abs(o-t),s=Math.abs(a-t);i=rt.width&&(i-=e.left+e.width-t.width),n<0&&(n=0),{x:i,y:n}},getWidgetXYPoint:function(e,t,i){var n=ReactDOM.findDOMNode(this),o=this.props.gutter,a=n.offsetWidth,r=a/2;return i===CKEDITOR.SELECTION_TOP_TO_BOTTOM||i===CKEDITOR.SELECTION_BOTTOM_TO_TOP?(e=e-o.left-r,t=i===CKEDITOR.SELECTION_TOP_TO_BOTTOM?t+o.top:t-n.offsetHeight-o.top):i!==CKEDITOR.SELECTION_LEFT_TO_RIGHT&&i!==CKEDITOR.SELECTION_RIGHT_TO_LEFT||(e=i===CKEDITOR.SELECTION_LEFT_TO_RIGHT?e+o.left+n.offsetHeight/2:e-3*n.offsetHeight/2-o.left,t=t-o.top-n.offsetHeight/2),e<0&&(e=0),e>document.body.offsetWidth-r&&(e=document.body.offsetWidth-r),t<0&&(t=0),[e,t]},isVisible:function(){var e=ReactDOM.findDOMNode(this);if(e){var t=new CKEDITOR.dom.element(e);return t.hasClass("alloy-editor-visible")}return!1},moveToPoint:function(e,t){var i=new CKEDITOR.dom.element(ReactDOM.findDOMNode(this));i.setStyles({left:e[0]+"px",top:e[1]+"px",opacity:0}),i.removeClass("alloy-editor-invisible"),this._animate(function(){i.addClass("ae-toolbar-transition"),i.addClass("alloy-editor-visible"),i.setStyles({left:t[0]+"px",top:t[1]+"px",opacity:1})})},show:function(){var e=ReactDOM.findDOMNode(this),t=this.props.editor.get("uiNode"),i=t?t.scrollTop:0;if(!this.isVisible()&&e){var n=this.getInteractionPoint();if(n){var o,a,r,s,l=new CKEDITOR.dom.element(e);if(o=r=parseFloat(l.getStyle("left")),a=s=parseFloat(l.getStyle("top")),this.props.constrainToViewport){var d=this.getConstrainedPosition({height:parseFloat(e.offsetHeight),left:o,top:a,width:parseFloat(e.offsetWidth)});o=d.x,a=d.y}s=n.direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this.props.selectionData.region.bottom+i:this.props.selectionData.region.top+i,this.moveToPoint([r,s],[o,a])}}},updatePosition:function(){var e=this.getInteractionPoint(),t=ReactDOM.findDOMNode(this);if(e&&t){var i=this.props.editor.get("uiNode")||document.body,n=getComputedStyle(i),o=parseInt(n.getPropertyValue("margin-left"),10),a=parseInt(n.getPropertyValue("margin-right"),10),r=o+i.clientWidth+a,s="BODY"!==i.tagName?i.scrollTop:0,l=this.getWidgetXYPoint(e.x,e.y,e.direction);l[1]+=s,l[0]<0&&(l[0]=0),l[0]>r-t.offsetWidth&&(l[0]=r-t.offsetWidth),new CKEDITOR.dom.element(t).setStyles({left:l[0]+"px",top:l[1]+"px"})}},_animate:function(e){window.requestAnimationFrame?this._animationFrameId=window.requestAnimationFrame(e):e()}};AlloyEditor.WidgetPosition=e}(),function(){var e=createReactClass({displayName:"ButtonBold",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"bold"},getDefaultProps:function(){return{command:"bold",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+66},style:"coreStyles_bold"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.bold,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-bold",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.bold},React.createElement("span",{className:"ae-icon-bold"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonBold=e}(),function(){var e=createReactClass({displayName:"ButtonCameraImage",statics:{key:"cameraImage"},getDefaultProps:function(){return{videoWidth:320}},componentDidMount:function(){ReactDOM.findDOMNode(this.refs.buttonTakePhoto).focus()},componentWillUnmount:function(){this._stream&&(this._stream.stop?this._stream.stop():this._stream.getVideoTracks&&this._stream.getVideoTracks().forEach(function(e){e.stop()}),this._stream=null)},render:function(){var e=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return e.call(navigator,{video:!0,audio:!1},this._handleStreamSuccess,this._handleStreamError),React.createElement("div",{className:"ae-camera"},React.createElement("video",{ref:"videoContainer"},"Video stream not available."),React.createElement("button",{className:"ae-camera-shoot",onClick:this.takePhoto,ref:"buttonTakePhoto"},"Take photo"),React.createElement("canvas",{className:"ae-camera-canvas",ref:"canvasContainer"}))},takePhoto:function(){var e=ReactDOM.findDOMNode(this.refs.videoContainer),t=ReactDOM.findDOMNode(this.refs.canvasContainer),i=t.getContext("2d"),n=this._videoHeight,o=this.props.videoWidth;if(o&&n){t.width=o,t.height=n,i.drawImage(e,0,0,o,n);var a=t.toDataURL("image/png"),r=CKEDITOR.dom.element.createFromHtml(''),s=this.props.editor.get("nativeEditor");s.insertElement(r),this.props.cancelExclusive(),s.fire("actionPerformed",this),s.fire("imageCameraAdd",r)}},_handleStreamError:function(e){window.alert("An error occurred! "+e)},_handleStreamSuccess:function(e){var t=ReactDOM.findDOMNode(this.refs.videoContainer),i=ReactDOM.findDOMNode(this.refs.canvasContainer);t.addEventListener("canplay",function(e){var n=t.videoHeight/(t.videoWidth/this.props.videoWidth);isNaN(n)&&(n=this.props.videoWidth/(4/3)),t.setAttribute("width",this.props.videoWidth),t.setAttribute("height",n),i.setAttribute("width",this.props.videoWidth),i.setAttribute("height",n),this._videoHeight=n}.bind(this),!1),this._stream=e,navigator.mozGetUserMedia?t.mozSrcObject=e:t.src=(window.URL||window.webkitURL).createObjectURL(e),t.play(),ReactDOM.findDOMNode(this.refs.buttonTakePhoto).disabled=!1}});AlloyEditor.ButtonCameraImage=e}(),function(){var e=createReactClass({displayName:"ButtonCamera",propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"camera"},render:function(){if(this.props.renderExclusive)return React.createElement(AlloyEditor.ButtonCameraImage,this.props);var t=!(navigator.getUserMedia||navigator.webkitGetUserMedia&&"https"===location.protocol||navigator.mozGetUserMedia||navigator.msGetUserMedia),i=t?AlloyEditor.Strings.cameraDisabled:AlloyEditor.Strings.camera;return React.createElement("button",{"aria-label":i,className:"ae-button","data-type":"button-image-camera",disabled:t,onClick:this.props.requestExclusive.bind(e.key),tabIndex:this.props.tabIndex,title:i},React.createElement("span",{className:"ae-icon-camera"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCamera=e}(),function(){var e=createReactClass({displayName:"ButtonCode",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"code"},getDefaultProps:function(){return{style:{element:"pre"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.code,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-code",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.code},React.createElement("span",{className:"ae-icon-code"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCode=e}(),function(){var e=createReactClass({displayName:"ButtonCommandListItem",mixins:[AlloyEditor.ButtonCommand],propTypes:{description:PropTypes.string.isRequired,icon:PropTypes.string},statics:{key:"buttonCommandListItem"},render:function(){var e="ae-icon-"+this.props.icon;return React.createElement("button",{"aria-label":this.props.description,className:this._getClassName(),onClick:this.execCommand,tabIndex:this.props.tabIndex},this.props.icon&&React.createElement("span",{className:e}),this.props.description)},_getClassName:function(){var e="ae-container ae-toolbar-element";return e}});AlloyEditor.ButtonCommandListItem=e}(),function(){var e=createReactClass({displayName:"ButtonCommandsList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{commands:PropTypes.arrayOf(PropTypes.object),editor:PropTypes.object.isRequired,listId:PropTypes.string},statics:{key:"buttonCommandsList"},componentDidMount:function(){ReactDOM.findDOMNode(this).focus()},getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",id:this.props.listId,role:"listbox"},this._renderActions(this.props.commands)))},_renderActions:function(e){var t,i=this.props.editor;return e&&e.length&&(t=e.map(function(e){return React.createElement("li",{key:e.command,role:"option"},React.createElement(AlloyEditor.ButtonCommandListItem,{command:e.command,description:"string"==typeof e.label?e.label:e.label(),icon:e.icon,editor:i}))})),t}});AlloyEditor.ButtonCommandsList=e}(),function(){var e=createReactClass({displayName:"ButtonDropdown",mixins:[AlloyEditor.WidgetFocusManager],getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},statics:{key:"dropdown"},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",role:"listbox"},this.props.children))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonDropdown=e}(),function(){var e=13,t=27,i=createReactClass({displayName:"ButtonEmbedEdit",propTypes:{editor:PropTypes.object.isRequired},statics:{key:"embedEdit"},componentDidMount:function(){(this.props.renderExclusive||this.props.manualSelection)&&(window.requestAnimationFrame?window.requestAnimationFrame(this._focusLinkInput):setTimeout(this._focusLinkInput,0))},componentWillReceiveProps:function(e){this.replaceState(this.getInitialState())},getInitialState:function(){var e,t=this.props.editor.get("nativeEditor"),i=t.getSelection();if(i){var n=i.getSelectedElement();n&&(e=n.findOne('[data-widget="ae_embed"]'))}var o=e?e.getAttribute("data-ae-embed-url"):"";return{element:e,initialLink:{href:o},linkHref:o}},render:function(){var e={opacity:this.state.linkHref?1:0};return React.createElement("div",{className:"ae-container-edit-link"},React.createElement("button",{"aria-label":AlloyEditor.Strings.deleteEmbed,className:"ae-button","data-type":"button-embed-remove",disabled:!this.state.element,onClick:this._removeEmbed,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.deleteEmbed},React.createElement("span",{className:"ae-icon-bin"})),React.createElement("div",{className:"ae-container-input xxl"},React.createElement("input",{className:"ae-input",onChange:this._handleLinkHrefChange,onKeyDown:this._handleKeyDown,placeholder:AlloyEditor.Strings.editLink,ref:"linkInput",type:"text",value:this.state.linkHref}),React.createElement("button",{"aria-label":AlloyEditor.Strings.clearInput,className:"ae-button ae-icon-remove",onClick:this._clearLink,style:e,title:AlloyEditor.Strings.clear})),React.createElement("button",{"aria-label":AlloyEditor.Strings.confirm,className:"ae-button",disabled:!this._isValidState(),onClick:this._embedLink,title:AlloyEditor.Strings.confirm},React.createElement("span",{className:"ae-icon-ok"})))},_clearLink:function(){this.setState({linkHref:""})},_embedLink:function(){var e=this.props.editor.get("nativeEditor");e.execCommand("embedUrl",{url:this.state.linkHref}),this.props.cancelExclusive()},_focusLinkInput:function(){ReactDOM.findDOMNode(this.refs.linkInput).focus()},_handleKeyDown:function(i){if(i.keyCode!==e&&i.keyCode!==t||i.preventDefault(),i.keyCode===e)this._embedLink();else if(i.keyCode===t){var n=this.props.editor.get("nativeEditor");this.props.cancelExclusive(),n.fire("actionPerformed",this)}},_handleLinkHrefChange:function(e){this.setState({linkHref:e.target.value})},_isValidState:function(){var e=this.state.linkHref&&this.state.linkHref!==this.state.initialLink.href;return e},_removeEmbed:function(){var e=this.props.editor.get("nativeEditor"),t=this.state.element.getAscendant(function(e){return e.hasClass("cke_widget_wrapper")});t.remove(),e.fire("actionPerformed",this)}});AlloyEditor.Buttons[i.key]=AlloyEditor.ButtonEmbedEdit=i}(),function(){var e=createReactClass({displayName:"ButtonEmbed",mixins:[AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"embed"},getDefaultProps:function(){return{keystroke:{fn:"_requestExclusive",keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76}}},render:function(){return this.props.renderExclusive?React.createElement(AlloyEditor.ButtonEmbedEdit,this.props):React.createElement("button",{"aria-label":AlloyEditor.Strings.link,className:"ae-button","data-type":"button-embed",onClick:this._requestExclusive,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.link},React.createElement("span",{className:"ae-icon-add"}))},_requestExclusive:function(){this.props.requestExclusive(e.key)}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonEmbed=e}(),function(){var e=createReactClass({displayName:"ButtonH1",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"h1"},getDefaultProps:function(){return{style:{element:"h1"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h1,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h1",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h1},React.createElement("span",{className:"ae-icon-h1"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH1=e}(),function(){var e=createReactClass({displayName:"ButtonH2",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"h2"},getDefaultProps:function(){return{style:{element:"h2"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h2,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h2",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h2},React.createElement("span",{className:"ae-icon-h2"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH2=e}(),function(){var e=createReactClass({displayName:"ButtonHline",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonCommand],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"hline"},getDefaultProps:function(){return{command:"horizontalrule",style:{element:"hr"}}},render:function(){return React.createElement("button",{"aria-label":AlloyEditor.Strings.horizontalrule,className:"ae-button","data-type":"button-hline",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.horizontalrule},React.createElement("span",{className:"ae-icon-separator"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonHline=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignCenter",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageCenter"},getDefaultProps:function(){return{command:"justifycenter"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignCenter,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-center",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignCenter},React.createElement("span",{className:"ae-icon-align-center"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignCenter=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignLeft",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageLeft"},getDefaultProps:function(){return{command:"justifyleft"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignLeft,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-left",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignLeft},React.createElement("span",{className:"ae-icon-align-left"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignLeft=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignRight",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageRight"},getDefaultProps:function(){return{command:"justifyright"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignRight,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-right",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignRight},React.createElement("span",{className:"ae-icon-align-right"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignRight=e}(),function(){var e=createReactClass({displayName:"ButtonImage",propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"image"},render:function(){var e={display:"none"};return React.createElement("div",null,React.createElement("button",{"aria-label":AlloyEditor.Strings.image,className:"ae-button","data-type":"button-image",onClick:this.handleClick,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.image},React.createElement("span",{className:"ae-icon-image"})),React.createElement("input",{accept:"image/*",onChange:this._onInputChange,ref:"fileInput",style:e,type:"file"}))},handleClick:function(e){ReactDOM.findDOMNode(this.refs.fileInput).click()},_onInputChange:function(){var e=ReactDOM.findDOMNode(this.refs.fileInput);if(e.files.length){var t=new FileReader,i=e.files[0];t.onload=function(e){var t=this.props.editor.get("nativeEditor"),n=t.fire("beforeImageAdd",{imageFiles:i});if(n){var o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o),t.fire("actionPerformed",this);var a={el:o,file:i};t.fire("imageAdd",a)}}.bind(this),t.readAsDataURL(i),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=createReactClass({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},React.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=createReactClass({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},React.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=createReactClass({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:PropTypes.func,autocompleteSelected:PropTypes.bool,term:PropTypes.string,setAutocompleteState:PropTypes.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?React.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var t=this.props.handleLinkAutocompleteClick;return e.map(function(e){var i=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return React.createElement("li",{key:e.url,role:"option"},React.createElement("button",{className:i,onClick:t,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var _extends=Object.assign||function(e){for(var t=1;tAlloyEditor.Lang.toInt(t.getAttribute("data-tabindex"))}),this._descendants=i.concat(this._descendants),this._activeDescendant=0,this._descendants.some(function(e,t){if("0"===e.getAttribute("tabindex"))return this._activeDescendant=t,this.focus(),!0}.bind(this))}}};AlloyEditor.WidgetFocusManager=r}(),function(){var e={propTypes:{editorEvent:PropTypes.object},getInteractionPoint:function(){var e=this.props.editorEvent?this.props.editorEvent.data:null;if(e){var t=e.selectionData,i=e.nativeEvent,n={x:e.nativeEvent.pageX,y:t.region.top},o=t.region.direction,a=t.region.endRect,r=t.region.startRect;a&&r&&r.top===a.top&&(o=CKEDITOR.SELECTION_BOTTOM_TO_TOP);var s,l;return n.x&&n.y?(s=this._getXPoint(t,n.x),l=o===CKEDITOR.SELECTION_BOTTOM_TO_TOP?Math.min(n.y,t.region.top):Math.max(n.y,this._getYPoint(t,i))):(s=t.region.left+t.region.width/2,l=o===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this._getYPoint(t,i):t.region.top),{direction:o,x:s,y:l}}},_getXPoint:function(e,t){var i,n=e.region,o=n.startRect?n.startRect.left:n.left,a=n.endRect?n.endRect.right:n.right;if(ot)i=t;else{var r=Math.abs(o-t),s=Math.abs(a-t);i=rt.width&&(i-=e.left+e.width-t.width),n<0&&(n=0),{x:i,y:n}},getWidgetXYPoint:function(e,t,i){var n=ReactDOM.findDOMNode(this),o=this.props.gutter,a=n.offsetWidth,r=a/2;return i===CKEDITOR.SELECTION_TOP_TO_BOTTOM||i===CKEDITOR.SELECTION_BOTTOM_TO_TOP?(e=e-o.left-r,t=i===CKEDITOR.SELECTION_TOP_TO_BOTTOM?t+o.top:t-n.offsetHeight-o.top):i!==CKEDITOR.SELECTION_LEFT_TO_RIGHT&&i!==CKEDITOR.SELECTION_RIGHT_TO_LEFT||(e=i===CKEDITOR.SELECTION_LEFT_TO_RIGHT?e+o.left+n.offsetHeight/2:e-3*n.offsetHeight/2-o.left,t=t-o.top-n.offsetHeight/2),e<0&&(e=0),e>document.body.offsetWidth-r&&(e=document.body.offsetWidth-r),t<0&&(t=0),[e,t]},isVisible:function(){var e=ReactDOM.findDOMNode(this);if(e){var t=new CKEDITOR.dom.element(e);return t.hasClass("alloy-editor-visible")}return!1},moveToPoint:function(e,t){var i=new CKEDITOR.dom.element(ReactDOM.findDOMNode(this));i.setStyles({left:e[0]+"px",top:e[1]+"px",opacity:0,pointerEvents:"none"}),i.removeClass("alloy-editor-invisible"),this._animate(function(){i.addClass("ae-toolbar-transition"),i.addClass("alloy-editor-visible"),i.setStyles({left:t[0]+"px",top:t[1]+"px",opacity:1})}),i.$&&i.$.addEventListener("transitionend",function(){i.setStyles({pointerEvents:""})})},show:function(){var e=ReactDOM.findDOMNode(this),t=this.props.editor.get("uiNode"),i=t?t.scrollTop:0;if(!this.isVisible()&&e){var n=this.getInteractionPoint();if(n){var o,a,r,s,l=new CKEDITOR.dom.element(e);if(o=r=parseFloat(l.getStyle("left")),a=s=parseFloat(l.getStyle("top")),this.props.constrainToViewport){var d=this.getConstrainedPosition({height:parseFloat(e.offsetHeight),left:o,top:a,width:parseFloat(e.offsetWidth)});o=d.x,a=d.y}s=n.direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this.props.selectionData.region.bottom+i:this.props.selectionData.region.top+i,this.moveToPoint([r,s],[o,a])}}},updatePosition:function(){var e=this.getInteractionPoint(),t=ReactDOM.findDOMNode(this);if(e&&t){var i=this.props.editor.get("uiNode")||document.body,n=getComputedStyle(i),o=parseInt(n.getPropertyValue("margin-left"),10),a=parseInt(n.getPropertyValue("margin-right"),10),r=o+i.clientWidth+a,s="BODY"!==i.tagName?i.scrollTop:0,l=this.getWidgetXYPoint(e.x,e.y,e.direction);l[1]+=s,l[0]<0&&(l[0]=0),l[0]>r-t.offsetWidth&&(l[0]=r-t.offsetWidth),new CKEDITOR.dom.element(t).setStyles({left:l[0]+"px",top:l[1]+"px"})}},_animate:function(e){window.requestAnimationFrame?this._animationFrameId=window.requestAnimationFrame(e):e()}};AlloyEditor.WidgetPosition=e}(),function(){var e=createReactClass({displayName:"ButtonBold",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"bold"},getDefaultProps:function(){return{command:"bold",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+66},style:"coreStyles_bold"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.bold,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-bold",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.bold},React.createElement("span",{className:"ae-icon-bold"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonBold=e}(),function(){var e=createReactClass({displayName:"ButtonCameraImage",statics:{key:"cameraImage"},getDefaultProps:function(){return{videoWidth:320}},componentDidMount:function(){ReactDOM.findDOMNode(this.refs.buttonTakePhoto).focus()},componentWillUnmount:function(){this._stream&&(this._stream.stop?this._stream.stop():this._stream.getVideoTracks&&this._stream.getVideoTracks().forEach(function(e){e.stop()}),this._stream=null)},render:function(){var e=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return e.call(navigator,{video:!0,audio:!1},this._handleStreamSuccess,this._handleStreamError),React.createElement("div",{className:"ae-camera"},React.createElement("video",{ref:"videoContainer"},"Video stream not available."),React.createElement("button",{className:"ae-camera-shoot",onClick:this.takePhoto,ref:"buttonTakePhoto"},"Take photo"),React.createElement("canvas",{className:"ae-camera-canvas",ref:"canvasContainer"}))},takePhoto:function(){var e=ReactDOM.findDOMNode(this.refs.videoContainer),t=ReactDOM.findDOMNode(this.refs.canvasContainer),i=t.getContext("2d"),n=this._videoHeight,o=this.props.videoWidth;if(o&&n){t.width=o,t.height=n,i.drawImage(e,0,0,o,n);var a=t.toDataURL("image/png"),r=CKEDITOR.dom.element.createFromHtml(''),s=this.props.editor.get("nativeEditor");s.insertElement(r),this.props.cancelExclusive(),s.fire("actionPerformed",this),s.fire("imageCameraAdd",r)}},_handleStreamError:function(e){window.alert("An error occurred! "+e)},_handleStreamSuccess:function(e){var t=ReactDOM.findDOMNode(this.refs.videoContainer),i=ReactDOM.findDOMNode(this.refs.canvasContainer);t.addEventListener("canplay",function(e){var n=t.videoHeight/(t.videoWidth/this.props.videoWidth);isNaN(n)&&(n=this.props.videoWidth/(4/3)),t.setAttribute("width",this.props.videoWidth),t.setAttribute("height",n),i.setAttribute("width",this.props.videoWidth),i.setAttribute("height",n),this._videoHeight=n}.bind(this),!1),this._stream=e,navigator.mozGetUserMedia?t.mozSrcObject=e:t.src=(window.URL||window.webkitURL).createObjectURL(e),t.play(),ReactDOM.findDOMNode(this.refs.buttonTakePhoto).disabled=!1}});AlloyEditor.ButtonCameraImage=e}(),function(){var e=createReactClass({displayName:"ButtonCamera",propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"camera"},render:function(){if(this.props.renderExclusive)return React.createElement(AlloyEditor.ButtonCameraImage,this.props);var t=!(navigator.getUserMedia||navigator.webkitGetUserMedia&&"https"===location.protocol||navigator.mozGetUserMedia||navigator.msGetUserMedia),i=t?AlloyEditor.Strings.cameraDisabled:AlloyEditor.Strings.camera;return React.createElement("button",{"aria-label":i,className:"ae-button","data-type":"button-image-camera",disabled:t,onClick:this.props.requestExclusive.bind(e.key),tabIndex:this.props.tabIndex,title:i},React.createElement("span",{className:"ae-icon-camera"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCamera=e}(),function(){var e=createReactClass({displayName:"ButtonCode",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"code"},getDefaultProps:function(){return{style:{element:"pre"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.code,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-code",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.code},React.createElement("span",{className:"ae-icon-code"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCode=e}(),function(){var e=createReactClass({displayName:"ButtonCommandListItem",mixins:[AlloyEditor.ButtonCommand],propTypes:{description:PropTypes.string.isRequired,icon:PropTypes.string},statics:{key:"buttonCommandListItem"},render:function(){var e="ae-icon-"+this.props.icon;return React.createElement("button",{"aria-label":this.props.description,className:this._getClassName(),onClick:this.execCommand,tabIndex:this.props.tabIndex},this.props.icon&&React.createElement("span",{className:e}),this.props.description)},_getClassName:function(){var e="ae-container ae-toolbar-element";return e}});AlloyEditor.ButtonCommandListItem=e}(),function(){var e=createReactClass({displayName:"ButtonCommandsList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{commands:PropTypes.arrayOf(PropTypes.object),editor:PropTypes.object.isRequired,listId:PropTypes.string},statics:{key:"buttonCommandsList"},componentDidMount:function(){ReactDOM.findDOMNode(this).focus()},getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",id:this.props.listId,role:"listbox"},this._renderActions(this.props.commands)))},_renderActions:function(e){var t,i=this.props.editor;return e&&e.length&&(t=e.map(function(e){return React.createElement("li",{key:e.command,role:"option"},React.createElement(AlloyEditor.ButtonCommandListItem,{command:e.command,description:"string"==typeof e.label?e.label:e.label(),icon:e.icon,editor:i}))})),t}});AlloyEditor.ButtonCommandsList=e}(),function(){var e=createReactClass({displayName:"ButtonDropdown",mixins:[AlloyEditor.WidgetFocusManager],getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},statics:{key:"dropdown"},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",role:"listbox"},this.props.children))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonDropdown=e}(),function(){var e=13,t=27,i=createReactClass({displayName:"ButtonEmbedEdit",propTypes:{editor:PropTypes.object.isRequired},statics:{key:"embedEdit"},componentDidMount:function(){(this.props.renderExclusive||this.props.manualSelection)&&(window.requestAnimationFrame?window.requestAnimationFrame(this._focusLinkInput):setTimeout(this._focusLinkInput,0))},componentWillReceiveProps:function(e){this.replaceState(this.getInitialState())},getInitialState:function(){var e,t=this.props.editor.get("nativeEditor"),i=t.getSelection();if(i){var n=i.getSelectedElement();n&&(e=n.findOne('[data-widget="ae_embed"]'))}var o=e?e.getAttribute("data-ae-embed-url"):"";return{element:e,initialLink:{href:o},linkHref:o}},render:function(){var e={opacity:this.state.linkHref?1:0};return React.createElement("div",{className:"ae-container-edit-link"},React.createElement("button",{"aria-label":AlloyEditor.Strings.deleteEmbed,className:"ae-button","data-type":"button-embed-remove",disabled:!this.state.element,onClick:this._removeEmbed,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.deleteEmbed},React.createElement("span",{className:"ae-icon-bin"})),React.createElement("div",{className:"ae-container-input xxl"},React.createElement("input",{className:"ae-input",onChange:this._handleLinkHrefChange,onKeyDown:this._handleKeyDown,placeholder:AlloyEditor.Strings.editLink,ref:"linkInput",type:"text",value:this.state.linkHref}),React.createElement("button",{"aria-label":AlloyEditor.Strings.clearInput,className:"ae-button ae-icon-remove",onClick:this._clearLink,style:e,title:AlloyEditor.Strings.clear})),React.createElement("button",{"aria-label":AlloyEditor.Strings.confirm,className:"ae-button",disabled:!this._isValidState(),onClick:this._embedLink,title:AlloyEditor.Strings.confirm},React.createElement("span",{className:"ae-icon-ok"})))},_clearLink:function(){this.setState({linkHref:""})},_embedLink:function(){var e=this.props.editor.get("nativeEditor");e.execCommand("embedUrl",{url:this.state.linkHref}),this.props.cancelExclusive()},_focusLinkInput:function(){ReactDOM.findDOMNode(this.refs.linkInput).focus()},_handleKeyDown:function(i){if(i.keyCode!==e&&i.keyCode!==t||i.preventDefault(),i.keyCode===e)this._embedLink();else if(i.keyCode===t){var n=this.props.editor.get("nativeEditor");this.props.cancelExclusive(),n.fire("actionPerformed",this)}},_handleLinkHrefChange:function(e){this.setState({linkHref:e.target.value})},_isValidState:function(){var e=this.state.linkHref&&this.state.linkHref!==this.state.initialLink.href;return e},_removeEmbed:function(){var e=this.props.editor.get("nativeEditor"),t=this.state.element.getAscendant(function(e){return e.hasClass("cke_widget_wrapper")});t.remove(),e.fire("actionPerformed",this)}});AlloyEditor.Buttons[i.key]=AlloyEditor.ButtonEmbedEdit=i}(),function(){var e=createReactClass({displayName:"ButtonEmbed",mixins:[AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"embed"},getDefaultProps:function(){return{keystroke:{fn:"_requestExclusive",keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76}}},render:function(){return this.props.renderExclusive?React.createElement(AlloyEditor.ButtonEmbedEdit,this.props):React.createElement("button",{"aria-label":AlloyEditor.Strings.link,className:"ae-button","data-type":"button-embed",onClick:this._requestExclusive,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.link},React.createElement("span",{className:"ae-icon-add"}))},_requestExclusive:function(){this.props.requestExclusive(e.key)}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonEmbed=e}(),function(){var e=createReactClass({displayName:"ButtonH1",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"h1"},getDefaultProps:function(){return{style:{element:"h1"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h1,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h1",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h1},React.createElement("span",{className:"ae-icon-h1"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH1=e}(),function(){var e=createReactClass({displayName:"ButtonH2",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"h2"},getDefaultProps:function(){return{style:{element:"h2"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h2,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h2",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h2},React.createElement("span",{className:"ae-icon-h2"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH2=e}(),function(){var e=createReactClass({displayName:"ButtonHline",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonCommand],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"hline"},getDefaultProps:function(){return{command:"horizontalrule",style:{element:"hr"}}},render:function(){return React.createElement("button",{"aria-label":AlloyEditor.Strings.horizontalrule,className:"ae-button","data-type":"button-hline",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.horizontalrule},React.createElement("span",{className:"ae-icon-separator"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonHline=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignCenter",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageCenter"},getDefaultProps:function(){return{command:"justifycenter"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignCenter,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-center",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignCenter},React.createElement("span",{className:"ae-icon-align-center"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignCenter=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignLeft",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageLeft"},getDefaultProps:function(){return{command:"justifyleft"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignLeft,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-left",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignLeft},React.createElement("span",{className:"ae-icon-align-left"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignLeft=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignRight",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageRight"},getDefaultProps:function(){return{command:"justifyright"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignRight,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-right",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignRight},React.createElement("span",{className:"ae-icon-align-right"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignRight=e}(),function(){var e=createReactClass({displayName:"ButtonImage",propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"image"},render:function(){var e={display:"none"};return React.createElement("div",null,React.createElement("button",{"aria-label":AlloyEditor.Strings.image,className:"ae-button","data-type":"button-image",onClick:this.handleClick,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.image},React.createElement("span",{className:"ae-icon-image"})),React.createElement("input",{accept:"image/*",onChange:this._onInputChange,ref:"fileInput",style:e,type:"file"}))},handleClick:function(e){ReactDOM.findDOMNode(this.refs.fileInput).click()},_onInputChange:function(){var e=ReactDOM.findDOMNode(this.refs.fileInput);if(e.files.length){var t=new FileReader,i=e.files[0];t.onload=function(e){var t=this.props.editor.get("nativeEditor"),n=t.fire("beforeImageAdd",{imageFiles:i});if(n){var o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o),t.fire("actionPerformed",this);var a={el:o,file:i};t.fire("imageAdd",a)}}.bind(this),t.readAsDataURL(i),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=createReactClass({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},React.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=createReactClass({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},React.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=createReactClass({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:PropTypes.func,autocompleteSelected:PropTypes.bool,term:PropTypes.string,setAutocompleteState:PropTypes.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?React.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var t=this.props.handleLinkAutocompleteClick;return e.map(function(e){var i=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return React.createElement("li",{key:e.url,role:"option"},React.createElement("button",{className:i,onClick:t,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var _extends=Object.assign||function(e){for(var t=1;t0,s="ae-container";return r&&(s+=" ae-container-column"),React.createElement("div",{"aria-label":AlloyEditor.Strings.styles,className:n,"data-tabindex":this.props.config.tabIndex||0,onFocus:this.focus,onKeyDown:this.handleKey,role:"toolbar",tabIndex:"-1"},React.createElement("div",{className:s},a.map(function(e,t){return Array.isArray(e)?React.createElement("div",{className:"ae-row",key:t.toString()},e.map(function(e){return e})):e})))}return null},_getSelectionFunction:function(e){var t,i=AlloyEditor.Lang;if(i.isFunction(e))t=e;else if(i.isString(e)){for(var n=e.split("."),o=window,a=n.shift();a&&i.isObject(o)&&i.isObject(o[a]);)o=o[a],a=n.shift();i.isFunction(o)&&(t=o)}return t},_getCurrentSelection:function(){var e,t=this.props.editorEvent?this.props.editorEvent.data:null;return t&&this.props.config.selections.some(function(i){var n,o=this._getSelectionFunction(i.test);return o&&(n=t.manualSelection===i.name||o({data:t,editor:this.props.editor})),n&&(e=i),n},this),e},_updatePosition:function(){if(ReactDOM.findDOMNode(this)){var e,t=this._getCurrentSelection();if(t){var i=this._getSelectionFunction(t.setPosition);i&&(e=i.call(this,{editor:this.props.editor,editorEvent:this.props.editorEvent,selectionData:this.props.selectionData}))}e||(this.updatePosition(),this.show())}}});AlloyEditor.Toolbars[e.key]=AlloyEditor.ToolbarStyles=e}(),function(){var e=createReactClass({displayName:"UI",mixins:[AlloyEditor.WidgetExclusive,AlloyEditor.WidgetFocusManager],propTypes:{ariaUpdates:PropTypes.object,editor:PropTypes.object.isRequired,eventsDelay:PropTypes.number,toolbars:PropTypes.object.isRequired},getInitialState:function(){return{hidden:!1}},getDefaultProps:function(){return{circular:!0,descendants:"[class^=ae-toolbar-]",eventsDelay:0,keys:{next:9}}},componentDidMount:function(){var e=this.props.editor.get("nativeEditor");e.on("editorInteraction",this._onEditorInteraction,this),e.on("actionPerformed",this._onActionPerformed,this),e.on("key",this._onEditorKey,this),this._mousedownListener=function(e){this._setUIHidden(e.target)}.bind(this),this._keyDownListener=CKEDITOR.tools.debounce(function(e){this._setUIHidden(document.activeElement)},this.props.eventsDelay,this),document.addEventListener("mousedown",this._mousedownListener),document.addEventListener("keydown",this._keyDownListener)},componentDidUpdate:function(e,t){var i=ReactDOM.findDOMNode(this),n=this.props.editor.get("nativeEditor");i&&n.fire("ariaUpdate",{message:this._getAvailableToolbarsMessage(i)}),n.fire("editorUpdate",{prevProps:e,prevState:t,props:this.props,state:this.state})},_getAriaUpdateTemplate:function(e){return this._ariaUpdateTemplates||(this._ariaUpdateTemplates={}),this._ariaUpdateTemplates[e]||(this._ariaUpdateTemplates[e]=new CKEDITOR.template(this._getAriaUpdates()[e])),this._ariaUpdateTemplates[e]},_getAriaUpdates:function(){return this.props.ariaUpdates||{noToolbar:AlloyEditor.Strings.ariaUpdateNoToolbar,oneToolbar:AlloyEditor.Strings.ariaUpdateOneToolbar,manyToolbars:AlloyEditor.Strings.ariaUpdateManyToolbars}},_getAvailableToolbarsMessage:function(e){var t=e.querySelectorAll('[role="toolbar"]');if(t.length){var i=Array.prototype.slice.call(t).map(function(e){return e.getAttribute("aria-label")}),n=1===i.length?"oneToolbar":"manyToolbars";return this._getAriaUpdateTemplate(n).output({toolbars:i.join(",").replace(/,([^,]*)$/," and $1")})}return this._getAriaUpdates().noToolbar},componentWillUnmount:function(){this._mousedownListener&&document.removeEventListener("mousedown",this._mousedownListener),this._keyDownListener&&(this._keyDownListener.detach(),document.removeEventListener("keydown",this._keyDownListener))},render:function(){if(this.state.hidden)return null;var e=Object.keys(this.props.toolbars).map(function(e){return AlloyEditor.Toolbars[e]||window[e]});return e=this.filterExclusive(e).map(function(e){var t=this.mergeExclusiveProps({config:this.props.toolbars[e.key],editor:this.props.editor,editorEvent:this.state.editorEvent,key:e.key,onDismiss:this._onDismissToolbarFocus,selectionData:this.state.selectionData},e.key);return React.createElement(e,t)}.bind(this)),React.createElement("div",{className:"ae-toolbars",onKeyDown:this.handleKey},e)},_onActionPerformed:function(e){var t=this.props.editor.get("nativeEditor");t.focus(),this.setState({itemExclusive:null,selectionData:t.getSelectionData()})},_onDismissToolbarFocus:function(){var e=this.props.editor.get("nativeEditor");e.focus()},_onEditorInteraction:function(e){this.setState({editorEvent:e,hidden:!1,itemExclusive:null,selectionData:e.data.selectionData})},_onEditorKey:function(e){var t=e.data.domEvent.$;t.altKey&&121===t.keyCode&&this.focus()},_setUIHidden:function(e){var t=ReactDOM.findDOMNode(this);if(t){var i=this.props.editor.get("nativeEditor").editable(),n=e.parentNode,o=new CKEDITOR.dom.node(e);if(i){var a=i.$===e||i.contains(o)||new CKEDITOR.dom.element(t).contains(o);n&&(a=a||"ckimgrsz"===n.id),a||this.setState({hidden:!0})}else this.setState({hidden:!0})}}});AlloyEditor.UI=e}(); } }()); diff --git a/dist/alloy-editor/alloy-editor-no-ckeditor.js b/dist/alloy-editor/alloy-editor-no-ckeditor.js index fe012be305..3c551834fd 100644 --- a/dist/alloy-editor/alloy-editor-no-ckeditor.js +++ b/dist/alloy-editor/alloy-editor-no-ckeditor.js @@ -1,5 +1,5 @@ /** - * AlloyEditor v1.5.21 + * AlloyEditor v1.5.22 * * Copyright 2014-present, Liferay, Inc. * All rights reserved. @@ -31143,7 +31143,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol domElement.setStyles({ left: startPoint[0] + 'px', top: startPoint[1] + 'px', - opacity: 0 + opacity: 0, + pointerEvents: 'none' }); domElement.removeClass('alloy-editor-invisible'); @@ -31157,6 +31158,14 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol opacity: 1 }); }); + + if (domElement.$) { + domElement.$.addEventListener('transitionend', function () { + domElement.setStyles({ + pointerEvents: '' + }); + }); + } }, /** diff --git a/dist/alloy-editor/alloy-editor-no-react-min.js b/dist/alloy-editor/alloy-editor-no-react-min.js index 6a730c7fc3..59e8f1d5da 100644 --- a/dist/alloy-editor/alloy-editor-no-react-min.js +++ b/dist/alloy-editor/alloy-editor-no-react-min.js @@ -1,5 +1,5 @@ /** - * AlloyEditor v1.5.21 + * AlloyEditor v1.5.22 * * Copyright 2014-present, Liferay, Inc. * All rights reserved. @@ -1040,8 +1040,8 @@ var createReactClass = (function() { "use strict";!function(){CKEDITOR.tools.debounce=CKEDITOR.tools.debounce||function(e,t,i,n){var o,a=function(){var a=i||this;clearTimeout(o);for(var r=[],s=arguments.length,l=0;l0?t.getRangeAt(0).getClientRects():[]),0===o.length)n=this.getCaretRegion();else{for(var c=0,u=o.length;cl&&(l=p.right),p.topr&&(r=p.bottom)}var m=new CKEDITOR.dom.window(window).getScrollPosition();if(n.bottom=m.y+r,n.left=m.x+s,n.right=m.x+l,n.top=m.y+d,o.length){var g=o[o.length-1],h=o[0];n.endRect={bottom:m.y+g.bottom,height:g.height,left:m.x+g.left,right:m.x+g.right,top:m.y+g.top,width:g.width},n.startRect={bottom:m.y+h.bottom,height:h.height,left:m.x+h.left,right:m.x+h.right,top:m.y+h.top,width:h.width}}}return n},getSelectionDirection:function(){var e=CKEDITOR.SELECTION_TOP_TO_BOTTOM,t=this.getSelection(),i=t.getNative();if(!i)return e;var n;if((n=i.anchorNode)&&n.compareDocumentPosition){var o=n.compareDocumentPosition(i.focusNode);(!o&&i.anchorOffset>i.focusOffset||o===Node.DOCUMENT_POSITION_PRECEDING)&&(e=CKEDITOR.SELECTION_BOTTOM_TO_TOP)}return e}},CKEDITOR.plugins.add("ae_selectionregion",{init:function(t){var i,n;n=Object.prototype.hasOwnProperty;for(i in e.prototype)n.call(e.prototype,i)&&"undefined"==typeof t[i]&&(t[i]=e.prototype[i])}}))}(),function(){function e(e){this._editor=e}var t={table:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1};e.HEADING_BOTH="Both",e.HEADING_COL="Column",e.HEADING_NONE="None",e.HEADING_ROW="Row",e.prototype={constructor:e,create:function(e){var t=this._editor,i=this._createElement("table");e=e||{};for(var n=i.append(this._createElement("tbody")),o=e.rows||1,a=e.cols||1,r=0;r0&&(CKEDITOR.env.webkit&&n[0].shrink(CKEDITOR.NODE_ELEMENT),e=this._editor.elementPath(n[0].getCommonAncestor(!0)).contains("table",1))}return e},isEditable:function(e){return CKEDITOR.env.ie&&e.is(t)?e.hasAttribute("contenteditable")?"false"!==e.getAttribute("contenteditable"):this.isEditable(e.getParent()):!e.isReadOnly()},getHeading:function(t){if(t=t||this.getFromSelection(),!t)return null;for(var i=null!==t.$.tHead,n=!0,o=0;o0;){var h=a.getFirst(),f=h.getChildCount();for(n=0;n0){new CKEDITOR.dom.event(t).preventDefault();var n=e.listenerData.editor;e.listenerData.editor.createSelectionFromPoint(t.clientX,t.clientY),this._handleFiles(i,n)}},_onDragEnter:function(t){e&&this._preventEvent(t)},_onDragOver:function(t){e&&this._preventEvent(t)},_onPaste:function(e){if(e.data&&e.data.$&&e.data.$.clipboardData&&e.data.$.clipboardData.items&&e.data.$.clipboardData.items.length>0){var t=e.data.$.clipboardData.items[0];if(0===t.type.indexOf("image")){var i=t.getAsFile();this._processFile(i,e.listenerData.editor)}}},_preventEvent:function(e){e=new CKEDITOR.dom.event(e.data.$),e.preventDefault(),e.stopPropagation()},_processFile:function(e,t){var i=new FileReader;i.addEventListener("loadend",function(){var n=i.result,o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o);var a={el:o,file:e};t.fire("imageAdd",a)}),i.readAsDataURL(e)}})}(),function(){if(!CKEDITOR.plugins.get("ae_autolink")){/MSIE ([^;]*)|Trident.*; rv:([0-9.]+)/.test(navigator.userAgent)&&document.execCommand("AutoUrlDetect",!1,!1);var e=8,t=188,i=13,n=186,o=32,a=[t,i,n,o],r=/[^\s]+/gim,s="((([A - Za - z]{ 3, 9}: (?: \\/\\/)?)(?:[-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9.-]+|(https?\\:\\/\\/|www.|[-;:&=.\\+\\$,\\w]+@)[A-Za-z0-9.-]+)((?:\\/[\\+~%\\/.\\w-_]*)?\\??(?:[-\\+=&;%@.\\w_]*)#?(?:[\\w]*))((.*):(\\d*)\\/?(.*))?)",l=/[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/i;CKEDITOR.plugins.add("ae_autolink",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keyup",this._onKeyUp,this,{editor:e})}.bind(this)),e.on("paste",function(e){if("paste"===e.data.method){if(e.data.dataValue.indexOf("<")>-1||e.data.dataValue.indexOf("<")>-1)return void(e.data.dataValue.indexOf('|<\/font><\/u>/g,"")));var t=this;e.data.dataValue=e.data.dataValue.replace(RegExp(s,"gim"),function(e){if(t._isValidURL(e))return t._isValidEmail(e)?''+e+"":''+e+""})}}.bind(this))},_getLastWord:function(e){var t=e.getSelection().getRanges()[0],n=t.startOffset,o="";if(this._currentKeyCode===i){var a,s=t.startContainer.getPrevious();if(s){for(;!s.getLast;)s=s.getPrevious();for(a=s.getLast();a&&!a.getText();)a=a.getPrevious()}a&&a.$.href||(this._startContainer=a,o=a?a.getText():"",this._offset=o.length)}else this._startContainer=t.startContainer,o=this._startContainer.getText().substring(0,n-1),this._offset=n-1;var l="",d=o.match(r);return d&&(l=d.pop()),l},_isValidEmail:function(e){return l.test(e)},_isValidURL:function(e){return RegExp(s,"i").test(e)},_onKeyDown:function(t){var i=t.data.$,n=t.listenerData.editor,o=n.editable();o.removeListener("keydown",this._onKeyDown),i.keyCode===e&&(t.cancel(),t.data.preventDefault(),this._removeLink(n)),this._ckLink=null},_onKeyUp:function(e){var t=e.data.$;if(this._currentKeyCode=t.keyCode,a.indexOf(this._currentKeyCode)!==-1){var i=e.listenerData.editor,n=this._getLastWord(i);this._isValidURL(n)&&this._replaceContentByLink(i,n)}},_replaceContentByLink:function(e,t){var n=e.createRange(),o=CKEDITOR.dom.element.get(this._startContainer),a=this._offset;n.setStart(o,a-t.length),n.setEnd(o,a),n.select();var r=new CKEDITOR.Link(e);r.create(t),this._ckLink=r;var s=r.getFromSelection();if(e.fire("autolinkAdd",s),this._subscribeToKeyEvent(e),n=e.getSelection().getRanges()[0],this._currentKeyCode===i){var l=n.getNextEditableNode();n.setStart(l,0),n.setEnd(l,0)}else{var d=n.getNextNode();n.setStart(d,1),n.setEnd(d,1)}n.select()},_removeLink:function(e){var t=e.getSelection().getRanges()[0],i=t.startOffset,n=this._startContainer.getNext()||this._startContainer,o=e.createRange();o.setStart(n,0),o.setEndAfter(n),o.select(),this._ckLink.remove(),t.setEnd(t.startContainer,i),t.setStart(t.startContainer,i),t.select()},_subscribeToKeyEvent:function(e){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e},1)}})}}(),function(){if(!CKEDITOR.plugins.get("ae_autolist")){var e=8,t=32,i=[{regex:/^\*$/,type:"bulletedlist"},{regex:/^1\.$/,type:"numberedlist"}];CKEDITOR.plugins.add("ae_autolist",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e})}.bind(this))},_checkForBackspaceAndUndo:function(t){var i=t.listenerData.editor,n=t.data.$,o=i.editable();o.removeListener("keydown",this._checkForBackspaceAndUndo),n.keyCode===e&&(i.execCommand("undo"),i.insertHtml(t.listenerData.bullet+" "),t.data.preventDefault())},_getListConfig:function(e){for(var t=e.config.autolist||i,n=e.getSelection().getRanges()[0],o=n.endContainer.getText(),a=o.substring(0,n.startOffset),r=o.substring(n.startOffset,o.length),s=0,l=t.length,d=null;!d&&l>s;){var c=t[s];if(c.regex.test(a)){d={bullet:a,editor:e,text:r,type:c.type};break}s++}return d},_createList:function(e){var t=e.editor,i=t.getSelection().getRanges()[0];i.endContainer.setText(e.text),t.execCommand(e.type);var n=t.editable();n.attachListener(n,"keydown",this._checkForBackspaceAndUndo,this,{editor:t,bullet:e.bullet},1)},_onKeyDown:function(e){var i=e.data.$;if(i.keyCode===t){var n=this._getListConfig(e.listenerData.editor);n&&(e.data.preventDefault(),this._createList(n))}}})}}(),function(){function e(e){function i(){var t=e.getSelection();t&&(t.getType()!==CKEDITOR.SELECTION_NONE&&t.getStartElement().is("img")?n.event&&n.event.button&&0!==n.event.button||r.show(t.getStartElement().$):r.hide())}var n=e.window.$,o=e.document.$;u&&o.execCommand("enableObjectResizing",!1,!1);var a="undefined"==typeof c?null:c;e.config.imageScaleResize=e.config.imageScaleResize||"both";var r=new t(e,{imageScaleResize:e.config.imageScaleResize,snapToSize:a}),s=function(e){r.isHandle(e.target)&&r.initDrag(e)};o.addEventListener("mousedown",s,!1),e.on("selectionChange",i),e.on("getData",function(e){var t=e.data.dataValue||"";t=t.replace(/
    /i,""),t=t.replace(/\b(ckimgrsz)\b/g,""),e.data.dataValue=t}),e.on("beforeUndoImage",function(){r.hide()}),e.on("afterUndoImage",function(){i()}),e.on("blur",function(){r.hide()}),e.on("beforeModeUnload",function t(){e.removeListener("beforeModeUnload",t),r.hide()}),e.on("destroy",function(){var e=o.getElementById("ckimgrsz");e&&e.remove(),u&&o.execCommand("enableObjectResizing",!1,!0),o.removeEventListener("mousedown",s)});var l;e.window.on("resize",function(){clearTimeout(l),l=setTimeout(i,50)})}function t(e,t){this.editor=e,this.window=e.window.$,this.document=e.document.$,this.cfg=t||{},this.init()}function i(e,t){this.window=e,this.document=t,this.events={mousemove:o(this.mousemove,this),keydown:o(this.keydown,this),mouseup:o(this.mouseup,this)}}function n(e){for(var t=e.length,i=new Array(t),n=0;nn?t.height=Math.round(t.width/n):t.width=Math.round(t.height*n)}var o=this.cfg.snapToSize;if(o)for(var a=this.otherImages,r=0;r=15&&(u>=15||"auto"===u)?(f.$.style.width=c+"px",f.$.style.height=u+"px",p=!0):p=!1}function l(){for(var n;n=C.pop();)n.removeListener();i.removeClass(_),o.removeClass("cke_image_resizing"),p&&(e.setData({height:u,width:c}),t.fire("saveSnapshot")),p=!1}var d,c,u,p,m,g,h,f=e.parts.image,y="right"==e.data.align?-1:1,E=a.data.$.screenX,v=a.data.$.screenY,b=f.$.clientWidth,T=f.$.clientHeight,C=[],_="cke_image_s"+(~y?"e":"w");t.fire("saveSnapshot"),r("mousemove",s,C),r("mouseup",l,C),i.addClass(_),o.addClass("cke_image_resizing")}),e.on("data",function(){o["right"==e.data.align?"addClass":"removeClass"]("cke_image_resizer_left")}),e.parts.image.on("click",function(){var e=t.getSelection();if(e){var i=e.getStartElement();if(i){var n=i.findOne("img");if(n){var o=i.getClientRect(),a=new CKEDITOR.dom.window(window).getScrollPosition();o.left-=a.x,o.top+=a.y,o.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,t.fire("editorInteraction",{nativeEvent:event,selectionData:{element:n,region:o}})}}}})}function s(e){var t={figcaption:!0,figure:{classes:"!"+e.config.image2_captionedClass},img:{attributes:"!src,alt,width,height"}};return t}function l(e){var t=e.config.image2_alignClasses,i={align:{requiredContent:"img"+(t?"("+t[0]+")":"{float}")},caption:{requiredContent:"figcaption"},dimension:{requiredContent:"img[width,height]"}};return i}function d(e){return e.data.hasCaption?e.element:e.parts.image}if(!CKEDITOR.plugins.get("ae_dragresize_ie")){var c={center:1,left:0,right:2},u={both:"nwse-resize",height:"ns-resize",scale:"nwse-resize",width:"ew-resize"},p=/^\s*(\d+\%)\s*$/i,m='';CKEDITOR.plugins.add("ae_dragresize_ie",{hidpi:!0,icons:"image",init:function(t){var i=e(t);t.widgets.add("image",i)},onLoad:function(){CKEDITOR.addCss(".cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ns-resize{cursor: ns-resize;}.cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ew-resize{cursor: ew-resize;}.cke_image_nocaption{line-height:0}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:nwse-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}")},requires:"widget"}),CKEDITOR.plugins.image2={checkHasNaturalRatio:function(e){var t=e.$,i=this.getNatural(e);return Math.round(t.clientWidth/i.width*i.height)==t.clientHeight||Math.round(t.clientHeight/i.height*i.width)==t.clientWidth},getNatural:function(e){var t;if(e.$.naturalWidth)t={height:e.$.naturalHeigh,width:e.$.naturalWidth};else{var i=new Image;i.src=e.getAttribute("src"),t={height:i.heigh,width:i.width}}return t}}}}(),CKEDITOR.config.image2_captionedClass="image",function(){function e(e){function o(){this.deflated||(e.widgets.focused==this.widget&&(this.focused=!0),e.widgets.destroy(this.widget),this.deflated=!0)}function a(){var i=e.editable(),n=e.document;if(this.deflated){if(this.widget=e.widgets.initOn(this.element,"image",this.widget.data),this.widget.inline&&!new CKEDITOR.dom.elementPath(this.widget.wrapper,i).block){var o=n.createElement(e.activeEnterMode==CKEDITOR.ENTER_P?"p":"div");o.replace(this.widget.wrapper),this.widget.wrapper.move(o)}this.focused&&(this.widget.focus(),delete this.focused),delete this.deflated}else t(this.widget,l)}var l=e.config.ae_dragresize_ie11_alignClasses,d=e.config.ae_dragresize_ie11_captionedClass;return{allowedContent:c(e),requiredContent:"img[src,alt]",features:u(e),styleableElements:"img figure",contentTransformations:[["img[width]: sizeToAttribute"]],editables:{caption:{selector:"figcaption",allowedContent:"br em strong sub sup u s; a[!href,target]"}},parts:{image:"img",caption:"figcaption"},template:m,data:function(){var t=this.features;if(this.data.hasCaption&&!e.filter.checkFeature(t.caption)&&(this.data.hasCaption=!1),"none"==this.data.align||e.filter.checkFeature(t.align)||(this.data.align="none"),this.shiftState({widget:this,element:this.element,oldData:this.oldData,newData:this.data,deflate:o,inflate:a}),this.data.link?this.parts.link||(this.parts.link=this.parts.image.getParent()):this.parts.link&&delete this.parts.link,this.parts.image.setAttributes({src:this.data.src,"data-cke-saved-src":this.data.src,alt:this.data.alt}),this.oldData&&!this.oldData.hasCaption&&this.data.hasCaption)for(var i in this.data.classes)this.parts.image.removeClass(i);e.filter.checkFeature(t.dimension)&&r(this),this.oldData=CKEDITOR.tools.extend({},this.data)},init:function(){var t=CKEDITOR.plugins.ae_dragresize_ie11,i=this.parts.image,n={hasCaption:!!this.parts.caption,src:i.getAttribute("src"),alt:i.getAttribute("alt")||"",width:i.getAttribute("width")||"",height:i.getAttribute("height")||"",lock:!this.ready||t.checkHasNaturalRatio(i)},o=i.getAscendant("a");if(o&&this.wrapper.contains(o)&&(this.parts.link=o),!n.align){var a=n.hasCaption?this.element:i;l?(a.hasClass(l[0])?n.align="left":a.hasClass(l[2])&&(n.align="right"),n.align?a.removeClass(l[h[n.align]]):n.align="none"):(n.align=a.getStyle("float")||"none",a.removeStyle("float"))}if(e.plugins.link&&this.parts.link){n.link=t.getLinkAttributesParser()(e,this.parts.link);var r=n.link.advanced;r&&r.advCSSClasses&&(r.advCSSClasses=CKEDITOR.tools.trim(r.advCSSClasses.replace(/cke_\S+/,"")))}this.wrapper[(n.hasCaption?"remove":"add")+"Class"]("cke_image_nocaption"),this.setData(n),e.filter.checkFeature(this.features.dimension)&&e.config.ae_dragresize_ie11_disableResizer!==!0&&s(this),this.shiftState=t.stateShifter(this.editor),this.on("contextMenu",function(e){e.data.image=CKEDITOR.TRISTATE_OFF,(this.parts.link||this.wrapper.getAscendant("a"))&&(e.data.link=e.data.unlink=CKEDITOR.TRISTATE_OFF)})},addClass:function(e){p(this).addClass(e)},hasClass:function(e){return p(this).hasClass(e)},removeClass:function(e){p(this).removeClass(e)},getClasses:function(){var e=new RegExp("^("+[].concat(d,l).join("|")+")$");return function(){var t=this.repository.parseElementClasses(p(this).getAttribute("class"));for(var i in t)e.test(i)&&delete t[i];return t}}(),upcast:i(e),downcast:n(e),getLabel:function(){var e=(this.data.alt||"")+" "+this.pathName;return this.editor.lang.widget.label.replace(/%1/,e)}}}function t(e,t){var i=e.wrapper,n=e.data.align,o=e.data.hasCaption;if(t){for(var a=3;a--;)i.removeClass(t[a]);"center"==n?o&&i.addClass(t[1]):"none"!=n&&i.addClass(t[h[n]])}else{"center"==n?(o?i.setStyle("text-align","center"):i.removeStyle("text-align"),i.removeStyle("float")):("none"==n?i.removeStyle("float"):i.setStyle("float",n),i.removeStyle("text-align"));var r=i.$.querySelector("img");r.removeAttribute("style")}}function i(e){var t=o(e),i=e.config.ae_dragresize_ie11_captionedClass;return function(e,n){var o,r={width:1,height:1},s=e.name;if(!e.attributes["data-cke-realelement"]){if(t(e)){if("div"==s){var l=e.getFirst("figure");l&&(e.replaceWith(l),e=l)}n.align="center",o=e.getFirst("img")||e.getFirst("a").getFirst("img")}else"figure"==s&&e.hasClass(i)?o=e.getFirst("img")||e.getFirst("a").getFirst("img"):a(e)&&(o="a"==e.name?e.children[0]:e);if(o){for(var d in r){var c=o.attributes[d];c&&c.match(f)&&delete o.attributes[d]}return e}}}}function n(e){var t=e.config.ae_dragresize_ie11_alignClasses;return function(e){var i="a"==e.name?e.getFirst():e,n=i.attributes,o=this.data.align;if(!this.inline){var a=e.getFirst("span");a&&a.replaceWith(a.getFirst({img:1,a:1}))}if(o&&"none"!=o){var r=CKEDITOR.tools.parseCssText(n.style||"");"center"==o&&"figure"==e.name?e=e.wrapWith(new CKEDITOR.htmlParser.element("div",t?{class:t[1]}:{style:"text-align:center"})):o in{left:1,right:1}&&(t?i.addClass(t[h[o]]):r.float=o),t||CKEDITOR.tools.isEmpty(r)||(n.style=CKEDITOR.tools.writeCssText(r)+";")}return e}}function o(e){var t=e.config.ae_dragresize_ie11_captionedClass,i=e.config.ae_dragresize_ie11_alignClasses,n={figure:1,a:1,img:1};return function(o){if(!(o.name in{div:1,p:1}))return!1;var r=o.children;if(1!==r.length)return!1;var s=r[0];if(!(s.name in n))return!1;if("p"==o.name){if(!a(s))return!1}else if("figure"==s.name){if(!s.hasClass(t))return!1}else{if(e.enterMode==CKEDITOR.ENTER_P)return!1;if(!a(s))return!1}return!(i?!o.hasClass(i[1]):"center"!=CKEDITOR.tools.parseCssText(o.attributes.style||"",!0)["text-align"])}}function a(e){return"img"==e.name||"a"==e.name&&(1==e.children.length&&e.getFirst("img"))}function r(e){var t=e.data,i={width:t.width,height:t.height},n=e.parts.image;for(var o in i)i[o]?n.setAttribute(o,i[o]):n.removeAttribute(o)}function s(e){var t=e.editor,i=t.editable(),n=t.document,o=e.resizer=n.createElement("span"),a=n.createElement("span"),r=n.createElement("span"),s=n.createElement("span"),l=n.createElement("span");if(a.addClass("cke_image_resizer"),a.addClass("cke_image_resizer_ne"),r.addClass("cke_image_resizer"),r.addClass("cke_image_resizer_nw"),s.addClass("cke_image_resizer"),s.addClass("cke_image_resizer_se"),l.addClass("cke_image_resizer"),l.addClass("cke_image_resizer_sw"),o.append(a),o.append(r),o.append(s),o.append(l),o.append(new CKEDITOR.dom.text("​",n)),e.inline)e.wrapper.append(o);else{var d=e.parts.link||e.parts.image,c=d.getParent(),u=n.createElement("span");u.addClass("cke_image_resizer_wrapper"),u.append(d),u.append(o),e.element.append(u,!0),c.is("span")&&c.remove()}o.on("mousedown",function(a){function r(e,t,i){var o=CKEDITOR.document,a=[];if(n.equals(o)||a.push(o.on(e,t)),a.push(n.on(e,t)),i)for(var r=a.length;r--;)i.push(a.pop())}function s(){y=C+u*m,f=Math.round(y/R)}function l(){f=_+p*g,y=Math.round(f*R)}function d(e){h=e.data.$,m=h.screenX-b,g=T-h.screenY,moveRatio=Math.abs(m/g),1==u?m<=0?l():s():m<=0?s():l(),y>=15&&f>=15?(v.$.style.width=y+"px",v.$.style.height=f+"px",E=!0):E=!1}function c(){for(var n;n=A.pop();)n.removeListener();i.removeClass(k),o.removeClass("cke_image_resizing"),E&&(e.setData({height:f,width:y}),t.fire("saveSnapshot")),E=!1}var u,p,m,g,h,f,y,E,v=e.parts.image,b=a.data.$.screenX,T=a.data.$.screenY,C=v.$.clientWidth,_=v.$.clientHeight,R=C/_,A=[],I=a.data.getTarget();I.hasClass("cke_image_resizer_ne")?(u=1,p=1):I.hasClass("cke_image_resizer_nw")?(u=-1,p=1):I.hasClass("cke_image_resizer_se")?(u=1,p=-1):I.hasClass("cke_image_resizer_sw")&&(u=-1,p=-1);var k="cke_image_"+(~p?"n":"s")+(~u?"e":"w");t.fire("saveSnapshot"),r("mousemove",d,A),r("mouseup",c,A),i.addClass(k),o.addClass("cke_image_resizing")})}function l(e){var t,i=[];return function(n){var o=e.getCommand("justify"+n);o&&(i.push(function(){o.refresh(e,e.elementPath())}),n in{right:1,left:1,center:1}&&o.on("exec",function(t){var o=d(e);if(o){o.data.align===n?(y(o,n),delete o.data.align):o.setData("align",n);for(var a=i.length;a--;)i[a]();t.cancel()}}),o.on("refresh",function(i){var o=d(e),a={right:1,left:1,center:1};o&&(void 0===t&&(t=e.filter.checkFeature(e.widgets.registered.image.features.align)),t?this.setState(o.data.align==n?CKEDITOR.TRISTATE_ON:n in a?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_DISABLED),i.cancel())}))}}function d(e){var t=e.widgets.focused;return t&&"image"==t.name?t:null}function c(e){var t=e.config.ae_dragresize_ie11_alignClasses,i={div:{match:o(e)},p:{match:o(e)},img:{attributes:"!src,alt,width,height"},figure:{classes:"!"+e.config.ae_dragresize_ie11_captionedClass},figcaption:!0};return t?(i.div.classes=t[1],i.p.classes=i.div.classes,i.img.classes=t[0]+","+t[2],i.figure.classes+=","+i.img.classes):(i.div.styles="text-align",i.p.styles="text-align",i.img.styles="float",i.figure.styles="float,display"),i}function u(e){var t=e.config.ae_dragresize_ie11_alignClasses,i={dimension:{requiredContent:"img[width,height]"},align:{requiredContent:"img"+(t?"("+t[0]+")":"{float}")},caption:{requiredContent:"figcaption"}};return i}function p(e){return e.data.hasCaption?e.element:e.parts.image}if(!CKEDITOR.plugins.get("ae_dragresize_ie11")){var m='',g=new CKEDITOR.template('
    '+m+"
    {captionPlaceholder}
    "),h={left:0,center:1,right:2},f=/^\s*(\d+\%)\s*$/i;CKEDITOR.plugins.add("ae_dragresize_ie11",{requires:"widget",onLoad:function(){CKEDITOR.addCss(".cke_image_nocaption{line-height:0}.cke_editable.cke_image_ne, .cke_editable.cke_image_ne *{cursor:ne-resize !important}.cke_editable.cke_image_nw, .cke_editable.cke_image_nw *{cursor:nw-resize !important}.cke_editable.cke_image_sw, .cke_editable.cke_image_sw *{cursor:sw-resize !important}.cke_editable.cke_image_se, .cke_editable.cke_image_se *{cursor:se-resize !important}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;background:#000;outline:1px solid #fff;line-height:0;cursor:se-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_image_resizer.cke_image_resizer_ne{cursor:ne-resize;left:auto;right:-5px;top:-5px;}.cke_image_resizer.cke_image_resizer_nw{cursor:nw-resize;left:-5px;right:auto;top:-5px;}.cke_image_resizer.cke_image_resizer_se{bottom:-5px;cursor:se-resize;left:auto;right:-5px;}.cke_image_resizer.cke_image_resizer_sw{bottom:-5px;cursor:sw-resize;left:-5px;right:auto;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}.cke_widget_wrapper>a{display:inline-block}")},init:function(t){var i=(t.config,e(t));t.widgets.add("image",i),t.on("selectionChange",function(e){var i=t.getSelection();if(i){var n=i.getSelectedElement();if(n){var o=n.findOne("img");if(o){var a=n.getClientRect(),r=new CKEDITOR.dom.window(window).getScrollPosition();a.left-=r.x,a.top+=r.y,a.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,t.fire("editorInteraction",{nativeEvent:{},selectionData:{element:o,region:a}})}}}})},afterInit:function(e){var t={left:1,right:1,center:1,block:1},i=l(e);for(var n in t)i(n)}}),CKEDITOR.plugins.ae_dragresize_ie11={stateShifter:function(e){function t(e,t){var i={};s?i.attributes={class:s[1]}:i.styles={"text-align":"center"};var n=r.createElement(e.activeEnterMode==CKEDITOR.ENTER_P?"p":"div",i);return a(n,t),t.move(n),n}function i(e){var t=e.findOne("a,img");return t.replace(e),t}function n(e,t){var i=r.createElement("a",{attributes:{href:t.url}});return i.replace(e),e.move(i),i}function o(e){var t=e.findOne("img");return t.replace(e),t}function a(t,i){if(i.getParent()){var n=e.createRange();n.moveToPosition(i,CKEDITOR.POSITION_BEFORE_START),i.remove(),d.insertElementIntoRange(t,n)}else t.replace(i)}var r=e.document,s=e.config.ae_dragresize_ie11_alignClasses,l=e.config.ae_dragresize_ie11_captionedClass,d=e.editable(),c=["hasCaption","align","link"],u={align:function(n,o,a){var r=n.element;n.changed.align||"auto"===r.$.style.marginLeft&&"auto"===r.$.style.marginRight?n.newData.hasCaption||(("center"==a||"auto"===r.$.style.marginLeft&&"auto"===r.$.style.marginRight)&&(n.deflate(),n.element=t(e,r)),n.changed.hasCaption||"center"!=o||"center"==a||(n.deflate(),n.element=i(r))):"center"==a&&n.changed.hasCaption&&!n.newData.hasCaption&&(n.deflate(),n.element=t(e,r)),!s&&r.is("figure")&&("center"==a?r.setStyle("display","inline-block"):r.removeStyle("display"))},hasCaption:function(t,i,n){if(t.changed.hasCaption){var o;if(o=t.element.is({img:1,a:1})?t.element:t.element.findOne("a,img"),t.deflate(),n){var s=CKEDITOR.dom.element.createFromHtml(g.output({captionedClass:l,captionPlaceholder:e.lang.ae_dragresize_ie11.captionPlaceholder}),r);a(s,t.element),o.replace(s.findOne("img")),t.element=s}else o.replace(t.element),t.element=o}},link:function t(i,a,r){if(i.changed.link){var s,l=i.element.is("img")?i.element:i.element.findOne("img"),t=i.element.is("a")?i.element:i.element.findOne("a"),d=i.element.is("a")&&!r||i.element.is("img")&&r;if(d&&i.deflate(),r){a||(s=n(l,i.newData.link));var c=CKEDITOR.plugins.ae_dragresize_ie11.getLinkAttributesGetter()(e,r);CKEDITOR.tools.isEmpty(c.set)||(s||t).setAttributes(c.set),c.removed.length&&(s||t).removeAttributes(c.removed)}else s=o(t);d&&(i.element=s)}}};return function(e){var t,i;for(e.changed={},i=0;i
    ',CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL='{url}',CKEDITOR.plugins.add("ae_embed",{requires:"widget",init:function(i){var n=new CKEDITOR.template(i.config.embedUrlTemplate||CKEDITOR.DEFAULT_AE_EMBED_URL_TPL),o=new CKEDITOR.template(i.config.embedWidgetTpl||CKEDITOR.DEFAULT_AE_EMBED_WIDGET_TPL),a=new CKEDITOR.template(i.config.embedLinkDefaultTpl||CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL),r=function(e,t){if("div"===e.name&&e.attributes["data-ae-embed-url"])return t.url=e.attributes["data-ae-embed-url"],!0};i.addCommand("embedUrl",{exec:function(e,t){e.insertHtml(o.output({url:t.url}))}}),i.widgets.add("ae_embed",{mask:!0,requiredContent:"div[data-ae-embed-url]",data:function(e){var i=this,o=e.data.url;o&&CKEDITOR.tools.jsonp(n,{url:encodeURIComponent(o)},function(e){e.html?t.test(e.html)?i.createATag(o):i.element.setHtml(e.html):i.createATag(o)},function(e){i.createATag(o)})},createATag:function(e){this.editor.execCommand("undo");var t=(this.editor.getSelection().getSelectedElement(),a.output({url:e}));this.editor.insertHtml(t),this.editor.fire("actionPerformed",this)},upcast:function(e,t){var n=i.config.embedWidgetUpcastFn||r;return n(e,t)}}),i.once("contentDom",function(){i.on("paste",function(t){var n=t.data.dataValue;e.test(n)&&(t.stop(),i.execCommand("embedUrl",{url:t.data.dataValue}))})}),i.on("selectionChange",function(e){var t=i.getSelection();if(t){var n=t.getSelectedElement();if(n){var o=n.findOne('[data-widget="ae_embed"]');if(o){var a=n.getClientRect(),r=new CKEDITOR.dom.window(window).getScrollPosition();a.left-=r.x,a.top+=r.y,a.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,i.fire("editorInteraction",{nativeEvent:{},selectionData:{element:o,region:a}})}}}}),i.filter.addElementCallback(function(e){if("data-ae-embed-url"in e.attributes)return CKEDITOR.FILTER_SKIP_TREE})}})}}(),function(){if(!CKEDITOR.plugins.get("ae_imagealignment")){var e={CENTER:"center",LEFT:"left",RIGHT:"right"},t=[e.LEFT,e.RIGHT,e.CENTER],i=[{name:"display",value:"block"},{name:"margin-left",value:"auto"},{name:"margin-right",value:"auto"}],n=function(t){var n=t.getStyle("float");if(n&&"inherit"!==n&&"none"!==n||(n=t.getAttribute("align")),!n){var o=i.every(function(e){var i=t.getStyle(e.name)===e.value;return!i&&e.vendorPrefixes&&(i=e.vendorPrefixes.some(function(i){return t.getStyle(i+e.name)===e.value})),i});if(!n){var a=t.$.parentNode;a.style.textAlign==e.CENTER&&(i.forEach(function(e){t.setStyle(e.name,e.value),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(i){t.setStyle(i+e.name,e.value)})}),o=!0,a.style.textAlign="")}n=o?e.CENTER:null}return n},o=function(t,o){if(o===e.LEFT||o===e.RIGHT)t.removeStyle("float"),o===n(t)&&t.removeAttribute("align");else if(o===e.CENTER){i.forEach(function(e){t.removeStyle(e.name),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(i){t.removeStyle(i+e.name)})});var a=t.$.parentNode;a.style.textAlign==e.CENTER&&(a.style.textAlign="")}},a=function(t,a){o(t,n(t)),a===e.LEFT||a===e.RIGHT?t.setStyle("float",a):a===e.CENTER&&i.forEach(function(e){t.setStyle(e.name,e.value),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(i){t.setStyle(i+e.name,e.value)})})};CKEDITOR.plugins.add("ae_imagealignment",{afterInit:function(e){var i=this;t.forEach(function(t){var r=e.getCommand("justify"+t);r&&(r.on("exec",function(r){var s=e.getSelectionData();if(s&&AlloyEditor.SelectionTest.image({data:{selectionData:s}})){var l=s.element,d=n(l);d===t?o(l,t):a(l,t),r.cancel(),i.refreshCommands(e,new CKEDITOR.dom.elementPath(l))}}),r.on("refresh",function(e){var i={element:e.data.path.lastElement};if(AlloyEditor.SelectionTest.image({data:{selectionData:i}})){var o=n(i.element);this.setState(o===t?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF),e.cancel()}}))})},refreshCommands:function(e,i){t.forEach(function(t){var n=e.getCommand("justify"+t);n&&n.refresh(e,i)})}})}}(),function(){CKEDITOR.plugins.get("ae_pasteimages")||CKEDITOR.plugins.add("ae_pasteimages",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"paste",this._onPaste,this,{editor:e})}.bind(this))},_onPaste:function(e){if(e.data.$.clipboardData){var t=e.data.$.clipboardData.items[0],i=e.listenerData.editor;if(0===t.type.indexOf("image")){var n=new FileReader,o=t.getAsFile();n.onload=function(e){var t=i.fire("beforeImageAdd",{imageFiles:o});if(t){var n=CKEDITOR.dom.element.createFromHtml('');i.insertElement(n);var a={el:n,file:o};i.fire("imageAdd",a)}}.bind(this),n.readAsDataURL(o)}}}})}(),function(){if(!CKEDITOR.plugins.get("ae_placeholder")){var e=CKEDITOR.env.needsBrFiller?"
    ":"",t={1:["

    "+e+"

    "],2:[""," ",e],3:["
    "+e+"
    "]};CKEDITOR.plugins.add("ae_placeholder",{init:function(e){e.on("blur",this._checkEmptyData,this),e.on("change",this._checkEmptyData,this),e.on("focus",this._removePlaceholderClass,this),e.once("contentDom",this._checkEmptyData,this)},_checkEmptyData:function(e){var i=e.editor,n=i.editable(),o=n.$.innerHTML.trim(),a=t[i.config.enterMode].some(function(e){return o===e});a?n.addClass(i.config.placeholderClass):n.removeClass(i.config.placeholderClass)},_removePlaceholderClass:function(e){var t=e.editor,i=new CKEDITOR.dom.element(t.element.$);i.removeClass(t.config.placeholderClass)}})}}(),function(){CKEDITOR.plugins.get("ae_selectionkeystrokes")||CKEDITOR.plugins.add("ae_selectionkeystrokes",{requires:"ae_selectionregion",init:function(e){e.config.selectionKeystrokes&&e.config.selectionKeystrokes.forEach(function(t){var i=new CKEDITOR.command(e,{exec:function(e){e.fire("editorInteraction",{manualSelection:t.selection,nativeEvent:{},selectionData:e.getSelectionData()})}}),n="selectionKeystroke"+t.selection;e.addCommand(n,i),e.setKeystroke(t.keys,n)})}})}(),function(){function e(e){return CKEDITOR.env.ie?e.$.clientWidth:parseInt(e.getComputedStyle("width"),10)}function t(e,t){var i=e.getComputedStyle("border-"+t+"-width"),n={thin:"0px",medium:"1px",thick:"2px"};return i.indexOf("px")<0&&(i=i in n&&"none"!=e.getComputedStyle("border-style")?n[i]:0),parseInt(i,10)}function i(e){for(var t,i,n,o=e.$.rows,a=0,r=0,s=o.length;ra&&(a=t,i=n);return i}function n(e){for(var n=[],o=-1,a="rtl"===e.getComputedStyle("direction"),r=i(e),s=new CKEDITOR.dom.element(e.$.tBodies[0]),l=s.getDocumentPosition(),d=0,c=r.cells.length;d=o.x&&t<=o.x+o.width)return o}return null}function a(e){(e.data||e).preventDefault()}function r(i,n){function o(){g.removeListener("mouseup",u),g.removeListener("mousedown",c),g.removeListener("mousemove",p)}function r(){for(var t=n.index,i=CKEDITOR.tools.buildTableMap(n.table),o=[],r=[],s=Number.MAX_VALUE,l=s,d=n.rtl,c=0,u=i.length;c',m),i.on("destroy",function(){o(),g.remove()}),m.getDocumentElement().append(g),g.setStyles({width:l(n.width),height:l(n.height),left:l(n.x),top:l(n.y)}),g.on("mousedown",c,this),m.getBody().setStyle("cursor","col-resize"),g.show();var C=this.move=function(e){var t=e-Math.round(g.$.offsetWidth/2);if(_){if(t===b||t===T)return;t=Math.max(t,b),t=Math.min(t,T),y=t-f}g.setStyle("left",l(t))},_=(this.destroy=function(){o(),m.getBody().setStyle("cursor","auto"),g.remove()},this.isResizing=function(){return h})}function s(e){var t=e.data.getTarget();if("mouseout"===e.name){if(!t.is("table"))return;for(var i=new CKEDITOR.dom.element(e.data.$.relatedTarget||e.data.$.toElement);i&&i.$&&!i.equals(t)&&!i.is("body");)i=i.getParent();if(!i||i.equals(t))return}t.getAscendant("table",1).removeCustomData("_cke_table_pillars"),e.removeListener()}if(!CKEDITOR.plugins.get("ae_tableresize")){var l=CKEDITOR.tools.cssLength;CKEDITOR.plugins.add("ae_tableresize",{requires:"ae_tabletools",init:function(e){e.on("contentDom",function(){var t,i=e.editable();i.attachListener(i.isInline()?i:e.document,"mousemove",function(i){i=i.data;var l=i.getTarget();if(l.type===CKEDITOR.NODE_ELEMENT){var d=i.getPageOffset().x;if(t){if(t.isResizing())return t.move(d),void a(i);t.destroy(),t=null}var c,u;if((l.is("table")||l.getAscendant("tbody",1))&&(c=l.getAscendant("table",1),e.editable().contains(c))){(u=c.getCustomData("_cke_table_pillars"))||(c.setCustomData("_cke_table_pillars",u=n(c)),c.on("mouseout",s),c.on("mousedown",s));var p=o(u,d);p&&(t=new r(e,p))}}})})}})}}(),function(){function e(e){function t(e){n.length>0||e.type==CKEDITOR.NODE_ELEMENT&&y.test(e.getName())&&!e.getCustomData("selected_cell")&&(CKEDITOR.dom.element.setMarker(o,e,"selected_cell",!0),n.push(e))}for(var i=e.getRanges(),n=[],o={},a=0;a1&&f&&h[v]==f[v]?(b=h[v],b.rowSpan+=1):(b=new CKEDITOR.dom.element(h[v]).clone(),b.removeAttribute("rowSpan"),b.appendBogus(),E.append(b),b=b.$),v+=b.colSpan-1}i?E.insertBefore(m):E.insertAfter(m)}function n(t){if(t instanceof CKEDITOR.dom.selection){for(var i=e(t),o=i[0],a=o.getAscendant("table"),r=CKEDITOR.tools.buildTableMap(a),s=i[0].getParent(),l=s.$.rowIndex,d=i[i.length-1],c=d.getParent().$.rowIndex+d.$.rowSpan-1,u=[],p=l;p<=c;p++){for(var m=r[p],g=new CKEDITOR.dom.element(a.$.rows[p]),h=0;h0?v[l-1]:null)||a.$.parentNode);for(p=u.length;p>=0;p--)n(u[p]);return b}return t instanceof CKEDITOR.dom.element&&(a=t.getAscendant("table"),1==a.$.rows.length?a.remove():t.remove()),null}function o(e,t){for(var i=e.getParent(),n=i.$.cells,o=0,a=0;ai)&&(i=a)}return i}function r(t,i){for(var n=e(t),o=n[0],r=o.getAscendant("table"),s=a(n,1),l=a(n),d=i?s:l,c=CKEDITOR.tools.buildTableMap(r),u=[],p=[],m=c.length,g=0;g1&&p[g]==u[g]?(f=u[g],f.colSpan+=1):(f=new CKEDITOR.dom.element(u[g]).clone(),f.removeAttribute("colSpan"),f.appendBogus(),f[i?"insertBefore":"insertAfter"].call(f,new CKEDITOR.dom.element(u[g])),f=f.$),g+=f.rowSpan-1)}}function s(t){for(var i,n,o=e(t),a=o[0],r=o[o.length-1],s=a.getAscendant("table"),l=CKEDITOR.tools.buildTableMap(s),d=[],c=0,u=l.length;c=0;r--)d(n[r]);a?u(a,!0):o&&o.remove()}else if(i instanceof CKEDITOR.dom.element){var s=i.getParent();1==s.getChildCount()?s.remove():i.remove()}}function c(e){var t=e.getBogus();t&&t.remove(),e.trim()}function u(e,t){var i=e.getDocument(),n=CKEDITOR.document;CKEDITOR.env.ie&&10==CKEDITOR.env.version&&(n.focus(),i.focus());var o=new CKEDITOR.dom.range(i);o["moveToElementEdit"+(t?"End":"Start")](e)||(o.selectNodeContents(e),o.collapse(!t)),o.select(!0)}function p(e,t,i){var n=e[t]; if("undefined"==typeof i)return n;for(var o=0;n&&o1&&(n+=o[t].rowSpan-1)}return i}function g(t,i,n){var o,a=e(t);if((i?1!=a.length:a.length<2)||(o=t.getCommonAncestor())&&o.type==CKEDITOR.NODE_ELEMENT&&o.is("table"))return!1;var r,s=a[0],l=s.getAscendant("table"),d=CKEDITOR.tools.buildTableMap(l),u=d.length,m=d[0].length,g=s.getParent().$.rowIndex,h=p(d,g,s);if(i){var f;try{var y=parseInt(s.getAttribute("rowspan"),10)||1,E=parseInt(s.getAttribute("colspan"),10)||1;f=d["up"==i?g-y:"down"==i?g+y:g]["left"==i?h-E:"right"==i?h+E:h]}catch(e){return!1}if(!f||s.$==f)return!1;a["up"==i||"left"==i?"unshift":"push"](new CKEDITOR.dom.element(f))}for(var v=s.getDocument(),b=g,T=0,C=0,_=!n&&new CKEDITOR.dom.documentFragment(v),R=0,A=0;A=m?s.removeAttribute("rowSpan"):s.$.rowSpan=T,T>=u?s.removeAttribute("colSpan"):s.$.colSpan=C;var P=new CKEDITOR.dom.nodeList(l.$.rows),N=P.count();for(A=N-1;A>=0;A--){var B=P.getItem(A);B.$.cells.length||(B.remove(),N++)}return s}function h(t,i){var n=e(t);if(n.length>1)return!1;if(i)return!0;var o,a,r,s,l=n[0],d=l.getParent(),c=d.getAscendant("table"),u=CKEDITOR.tools.buildTableMap(c),m=d.$.rowIndex,g=p(u,m,l),h=l.$.rowSpan;if(h>1){a=Math.ceil(h/2),r=Math.floor(h/2),s=m+a;var f,y=new CKEDITOR.dom.element(c.$.rows[s]),E=p(u,s);o=l.clone();for(var v=0;vg){o.insertBefore(new CKEDITOR.dom.element(f));break}f=null}f||y.append(o)}else{r=a=1,y=d.clone(),y.insertAfter(d),y.append(o=l.clone());for(var b=p(u,m),T=0;T1)return!1;if(i)return!0;var o,a,r,s=n[0],l=s.getParent(),d=l.getAscendant("table"),c=CKEDITOR.tools.buildTableMap(d),u=l.$.rowIndex,g=p(c,u,s),h=s.$.colSpan;if(h>1)a=Math.ceil(h/2),r=Math.floor(h/2);else{r=a=1;for(var f=m(c,g),y=0;y>>0),n=t(i,e);return new n}})}})}}(),function(){function e(){}function t(e,t,o){var a=AlloyEditor.Buttons[e];return n[o.name]=n[o.name]||{},n[o.name][e]=n[o.name][e]||t,a||(a=createReactClass(CKEDITOR.tools.merge(i,{displayName:e,propTypes:{editor:PropTypes.object.isRequired,tabIndex:PropTypes.number},statics:{key:e},render:function(){var t=this.props.editor.get("nativeEditor"),i=n[t.name][e].name||n[t.name][e].command||e,o="ae-button ae-button-bridge",a="ae-icon-"+i,r={},s=CKEDITOR.skin.getIconStyle(i);if(s){var l=s.split(";");r.backgroundImage=l[0].substring(l[0].indexOf(":")+1),r.backgroundPosition=l[1].substring(l[1].indexOf(":")+1),r.backgroundSize=l[2].substring(l[2].indexOf(":")+1)}var d;return this.props.expanded&&(d=this._getMenu()),React.createElement("div",{className:"ae-container ae-has-dropdown"},React.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":n[t.name][e].label,className:o,onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:n[t.name][e].label},React.createElement("span",{className:a,style:r})),d)},_getMenu:function(){return React.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getMenuItems())},_getMenuItems:function(){var e=this.props.editor.get("nativeEditor"),i=t.onMenu(),n=Object.keys(i).map(function(t){var n=e.getMenuItem(t);if(!n)return null;var o=n.definition||n,a=i[t],r="ae-toolbar-element "+(a===CKEDITOR.TRISTATE_ON?"active":""),s=a===CKEDITOR.TRISTATE_DISABLED,l=function(){o.command?e.execCommand(o.command):o.onClick&&o.onClick.apply(o)};return React.createElement("li",{key:n.name,role:"option"},React.createElement("button",{className:r,disabled:s,onClick:l},o.label))}.bind(this));return n}})),AlloyEditor.Buttons[e]=a),a}if(!CKEDITOR.plugins.get("ae_menubuttonbridge")){var i={toFeature:e},n={};CKEDITOR.plugins.get("menubutton")||(CKEDITOR.UI_MENU_BUTTON="menubutton",CKEDITOR.plugins.add("menubutton",{})),CKEDITOR.plugins.add("ae_menubuttonbridge",{requires:["ae_uibridge","ae_menubridge"],beforeInit:function(e){e.ui.addMenuButton=function(e,t){this.add(e,CKEDITOR.UI_MENUBUTTON,t)},e.ui.addHandler(CKEDITOR.UI_MENUBUTTON,{add:t,create:function(e){var i="buttonBridge"+(1e9*Math.random()>>>0),n=t(i,e);return new n}})}})}}(),function(){CKEDITOR.plugins.get("ae_menubridge")||CKEDITOR.plugins.add("ae_menubridge",{beforeInit:function(e){if(!CKEDITOR.plugins.get("menu")){for(var t=[],i=e._.menuGroups={},n=e._.menuItems={},o=0;o>>0),i=n(t,e);return new i}})}})}}(),function(){function e(){}if(!CKEDITOR.plugins.get("ae_richcombobridge")){var t={commit:e,createPanel:e,disable:e,enable:e,getState:e,hideGroup:e,hideItem:e,mark:e,showAll:e,startGroup:e,unmarkAll:e},i={},n=function(e,n,o){var a=AlloyEditor.Buttons[e];return i[o.name]=i[o.name]||{},i[o.name][e]=i[o.name][e]||n,i[o.name][e].currentValue=void 0,a||(a=createReactClass(CKEDITOR.tools.merge(t,{displayName:e,propTypes:{editor:PropTypes.object.isRequired},statics:{key:e},add:function(e,t,i){this._items.push({preview:t,title:i,value:e})},componentWillMount:function(){var t=this.props.editor.get("nativeEditor"),n=i[t.name][e];this._items=[],this.setValue=this._setValue,n.init&&n.init.call(this),n.onRender&&n.onRender.call(this)},componentWillUnmount:function(){this._cacheValue(this.state.value),this.setValue=this._cacheValue},getInitialState:function(){return{value:i[o.name][e].currentValue}},getValue:function(){return this.state.value},render:function(){var t,o=this.props.editor.get("nativeEditor"),a=i[o.name][e].currentValue||n.label;return this.props.expanded&&(t=this._getItemsList()),React.createElement("div",{className:"ae-container-dropdown ae-has-dropdown"},React.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":a,className:"ae-toolbar-element",onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:a},React.createElement("div",{className:"ae-container"},React.createElement("span",{className:"ae-container-dropdown-selected-item"},a),React.createElement("span",{className:"ae-icon-arrow"}))),t)},_cacheValue:function(t){var n=this.props.editor.get("nativeEditor");i[n.name][e].currentValue=t},_getItems:function(){var e=this,t=this._items.map(function(t){var i="ae-toolbar-element "+(t.value===this.state.value?"active":"");return React.createElement("li",{key:t.title,role:"option"},React.createElement("button",{className:i,dangerouslySetInnerHTML:{__html:t.preview},"data-value":t.value,onClick:e._onClick}))}.bind(this));return t},_getItemsList:function(){return React.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getItems())},_onClick:function(t){var n=this.props.editor.get("nativeEditor"),o=i[n.name][e];if(o.onClick){var a=t.currentTarget.getAttribute("data-value");o.onClick.call(this,a),i[n.name][e].currentValue=a,n.fire("actionPerformed",this)}},_setValue:function(e){this._cacheValue(e),this.setState({value:e})}})),AlloyEditor.Buttons[e]=a),a};CKEDITOR.plugins.get("richcombo")||(CKEDITOR.UI_RICHCOMBO="richcombo",CKEDITOR.plugins.add("richcombo",{})),CKEDITOR.plugins.add("ae_richcombobridge",{requires:["ae_uibridge"],beforeInit:function(e){e.ui.addRichCombo=function(e,t){this.add(e,CKEDITOR.UI_RICHCOMBO,t)},e.ui.addHandler(CKEDITOR.UI_RICHCOMBO,{add:n,create:function(e){var t="richComboBridge"+(1e9*Math.random()>>>0),i=n(t,e);return new i}})}})}}(),function(){CKEDITOR.plugins.get("ae_uibridge")||CKEDITOR.plugins.add("ae_uibridge",{beforeInit:function(e){var t=e.ui.add;e.ui.add=function(i,n,o){t.apply(this,arguments);var a=this._.handlers[n];a&&a.add&&(a.add(i,o,e),AlloyEditor.registerBridgeButton(i,e.__processingPlugin__.plugin.name))}}})}();var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(){var e={isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},isBoolean:function(e){return"boolean"==typeof e},isFunction:function(e){return"function"==typeof e},isNull:function(e){return null===e},isNumber:function(e){return"number"==typeof e&&isFinite(e)},isObject:function(t){var i="undefined"==typeof t?"undefined":_typeof(t);return t&&("object"===i||e.isFunction(t))},isString:function(e){return"string"==typeof e},mix:function(e,t){var i=Object.prototype.hasOwnProperty;for(var n in t)i.call(t,n)&&(e[n]=t[n])},toInt:function(e){return parseInt(e,10)}};AlloyEditor.Lang=e}(),function(){var e={extend:function(e,t,i,n){if(!t||!e)throw"extend failed, verify dependencies";var o=t.prototype,a=Object.create(o);return e.prototype=a,a.constructor=e,e.superclass=o,t!==Object&&o.constructor===Object.prototype.constructor&&(o.constructor=t),i&&AlloyEditor.Lang.mix(a,i),n&&AlloyEditor.Lang.mix(e,n),e}};AlloyEditor.OOP=e}(),function(){function e(e){this.__config__=e||{},this.__ATTRS__={}}e.prototype={constructor:e,get:function(e){var t=this.constructor.ATTRS[e];if(t){this._isInitialized(e)||this._init(e);var i=this.__ATTRS__[e];return t.getter&&(i=this._callStringOrFunction(t.getter,i)),i}},set:function(e,t){var i=this.constructor.ATTRS[e];i&&(this._isInitialized(e)||this._init(e),i.readOnly||i.writeOnce&&this._isInitialized(e)||i.validator&&!this._callStringOrFunction(i.validator,t)||(i.setter&&(t=this._callStringOrFunction(i.setter,t)),this.__ATTRS__[e]=t))},_callStringOrFunction:function(e,t){var i=null;return AlloyEditor.Lang.isArray(t)||(t=[t]),AlloyEditor.Lang.isString(e)&&AlloyEditor.Lang.isFunction(this[e])?i=this[e].apply(this,t):AlloyEditor.Lang.isFunction(e)&&(i=e.apply(this,t)),i},_init:function(e){var t,i=this.constructor.ATTRS[e],n=Object.prototype.hasOwnProperty.call(i,"value"),o=Object.prototype.hasOwnProperty.call(this.__config__,e);if(i.valueFn)t=this._callStringOrFunction(i.valueFn,t),this.__ATTRS__[e]=t;else if(i.readOnly)t=i.value;else if(i.writeOnce)if(o)t=this.__config__[e];else{if(!n)return;t=i.value}else o?t=this.__config__[e]:n&&(t=i.value);if(i.validator&&o&&!this._callStringOrFunction(i.validator,t)){if(!n)return;t=i.value}i.setter&&o&&(t=this._callStringOrFunction(i.setter,t)),this.__ATTRS__[e]=t},_isInitialized:function(e){return Object.prototype.hasOwnProperty.call(this.__ATTRS__,e)}},AlloyEditor.Attribute=e}(),function(){function e(t){e.superclass.constructor.call(this,t),this.init(t)}AlloyEditor.OOP.extend(e,AlloyEditor.Attribute,{init:function(e){this._callChain("initializer",e)},destroy:function(){this._callChain("destructor")},_callChain:function(e,t){for(var i=[],n=this.constructor;n;)AlloyEditor.Lang.isFunction(n.prototype[e])&&i.push(n.prototype[e]),n=n.superclass?n.superclass.constructor:null;i=i.reverse(),t=AlloyEditor.Lang.isArray(t)?t:[t];for(var o=0;od-n.offsetWidth&&(g[0]=d-n.offsetWidth),t.moveToPoint(m,g)},i=function(e){var i=e.selectionData?e.selectionData:e.editorEvent?e.editorEvent.data.selectionData:null;if(i&&i.element)return t(this,i.element.getClientRect()),!0},n=function(e){var i=e.editor.get("nativeEditor"),n=i.config.uiNode,o=n?n.scrollTop:0,a=new CKEDITOR.Table(i).getFromSelection(),r=a.getClientRect();return r.top+=o,t(this,r),!0};AlloyEditor.SelectionSetPosition={image:i,table:n}}(),function(){var e=function(e,t){return t.getText().length===e.endOffset||t.equals(e.startContainer)&&t.equals(e.endContainer)&&e.startOffset===e.endOffset&&1===e.endOffset},t=function(e){var t=e.data.selectionData;return!(!t.element||"ae_embed"!==t.element.getAttribute("data-widget"))},i=function(t){var i=t.editor.get("nativeEditor"),n=i.getSelection().getRanges()[0],o=t.data.selectionData,a=new CKEDITOR.Link(i).getFromSelection(),r=i.isSelectionEmpty(),s=!o.element||"img"!==o.element.getName();return!(!(r&&s&&a&&a.getText().length!==n.endOffset&&a)||a.isReadOnly()||e(n,a))},n=function(e){var t=e.data.selectionData,i=!1;if(e.editor){var n=e.editor._getNativeEditor();i=n.isSelectionEmpty()}var o=function(e){return"image"===e.getAttribute("data-widget")||e.getAscendant(function(e){return"image"===e.getAttribute("data-widget")})};return!(!t.element||"img"!==t.element.getName()||i||t.element.isReadOnly()&&!o(t.element))},o=function(e){var t=e.editor.get("nativeEditor"),i=t.isSelectionEmpty(),n=e.data.selectionData;return!(n.element||!n.region||i||t.getSelection().getCommonAncestor().isReadOnly())},a=function(e){var t=e.editor.get("nativeEditor"),i=new CKEDITOR.Table(t),n=i.getFromSelection();return!(!n||!i.isEditable(n))};AlloyEditor.SelectionTest={embed:t,image:n,link:i,table:a,text:o}}(),function(){var e=[{name:"embed",buttons:["embedRemove","embedEdit"],test:AlloyEditor.SelectionTest.embed},{name:"link",buttons:["linkEdit"],test:AlloyEditor.SelectionTest.link},{name:"image",buttons:["imageLeft","imageCenter","imageRight"],setPosition:AlloyEditor.SelectionSetPosition.image,test:AlloyEditor.SelectionTest.image},{name:"text",buttons:{full:[["Font","FontSize","separator","bold","italic","underline","strike","separator","link"],["paragraphAlign","separator","ul","ol","separator","h1","h2","separator","indentBlock","outdentBlock","separator","TextColor","BGColor","separator","code","quote","separator","removeFormat"]],simple:["styles","bold","italic","underline","link"]},test:AlloyEditor.SelectionTest.text},{name:"table",buttons:["tableHeading","tableRow","tableColumn","tableCell","tableRemove"],getArrowBoxClasses:AlloyEditor.SelectionGetArrowBoxClasses.table,setPosition:AlloyEditor.SelectionSetPosition.table,test:AlloyEditor.SelectionTest.table}];AlloyEditor.Selections=e}(),function(){function e(t){e.superclass.constructor.call(this,t)}AlloyEditor.OOP.extend(e,AlloyEditor.Base,{initializer:function(e){var t=this.get("srcNode");this.get("enableContentEditable")&&t.setAttribute("contenteditable","true");var i=CKEDITOR.inline(t);if(i.config.allowedContent=this.get("allowedContent"),i.config.toolbars=this.get("toolbars"),i.config.removePlugins=this.get("removePlugins"),i.config.extraPlugins=this.get("extraPlugins"),i.config.placeholderClass=this.get("placeholderClass"),i.config.pasteFromWordRemoveStyles=!1,i.config.pasteFromWordRemoveFontStyles=!1,i.config.selectionKeystrokes=this.get("selectionKeystrokes"),AlloyEditor.Lang.mix(i.config,e),CKEDITOR.env.ie&&!CKEDITOR.env.edge){var n=11===CKEDITOR.env.version?"ae_dragresize_ie11":"ae_dragresize_ie";i.config.extraPlugins=i.config.extraPlugins.replace("ae_dragresize",n),i.config.removePlugins=i.config.removePlugins.replace("ae_dragresize",n)}i.once("contentDom",function(){this._addReadOnlyLinkClickListener(i);var e=i.editable();e.addClass("ae-editable")}.bind(this)),this._editor=i,AlloyEditor.loadLanguageResources(this._renderUI.bind(this))},destructor:function(){this._destroyed=!0,this._editorUIElement&&(ReactDOM.unmountComponentAtNode(this._editorUIElement),this._editorUIElement.parentNode.removeChild(this._editorUIElement));var e=this.get("nativeEditor");if(e){var t=e.editable();t&&(t.removeClass("ae-editable"),this.get("enableContentEditable")&&this.get("srcNode").setAttribute("contenteditable","false")),this._clearSelections(),e.destroy()}},_clearSelections:function(){var e=this.get("nativeEditor"),t="function"!=typeof window.getSelection;t?e.document.$.selection.empty():e.document.getWindow().$.getSelection().removeAllRanges()},_addReadOnlyLinkClickListener:function(e){e.editable().on("click",this._defaultReadOnlyClickFn,this,{editor:e})},_defaultReadOnlyClickFn:function(e){var t=e.data.$,i=t.ctrlKey||t.metaKey,n=this._editor.config.readOnly||i;if(t.preventDefault(),n&&e.listenerData.editor.editable().editor.fire("readOnlyClick",e.data)!==!1){var o=new CKEDITOR.dom.elementPath(e.data.getTarget(),this),a=o.lastElement;if(a){var r=a.$.attributes.href?a.$.attributes.href.value:null,s=i?"_blank":a.$.attributes.target?a.$.attributes.target.value:null;this._redirectLink(r,s)}}},_getNativeEditor:function(){return this._editor},_redirectLink:function(e,t){t&&e?window.open(e,t):e&&(window.location.href=e)},_renderUI:function(){if(!this._destroyed){var e=document.createElement("div");e.className="ae-ui";var t=this.get("uiNode")||document.body;t.appendChild(e),this._mainUI=ReactDOM.render(React.createElement(AlloyEditor.UI,{editor:this,eventsDelay:this.get("eventsDelay"),toolbars:this.get("toolbars")}),e),this._editorUIElement=e,this.get("nativeEditor").fire("uiReady")}},_toElement:function(e){return AlloyEditor.Lang.isString(e)&&(e=document.getElementById(e)),e},_validateAllowedContent:function(e){return AlloyEditor.Lang.isString(e)||AlloyEditor.Lang.isObject(e)||AlloyEditor.Lang.isBoolean(e)},_validateToolbars:function(e){return AlloyEditor.Lang.isObject(e)||AlloyEditor.Lang.isNull(e)}},{ATTRS:{allowedContent:{validator:"_validateAllowedContent",value:!0,writeOnce:!0},enableContentEditable:{validator:AlloyEditor.Lang.isBoolean,value:!0,writeOnce:!0},eventsDelay:{validator:AlloyEditor.Lang.isNumber,value:100},extraPlugins:{validator:AlloyEditor.Lang.isString,value:"ae_uicore,ae_selectionregion,ae_selectionkeystrokes,ae_imagealignment,ae_addimages,ae_placeholder,ae_tabletools,ae_tableresize,ae_autolink,ae_embed,ae_autolist,ae_dragresize,ae_uibridge,ae_richcombobridge,ae_panelmenubuttonbridge,ae_menubridge,ae_menubuttonbridge,ae_buttonbridge,font,colorbutton",writeOnce:!0},mode:{validator:AlloyEditor.Lang.isString,value:"simple"},nativeEditor:{getter:"_getNativeEditor",readOnly:!0},placeholderClass:{validator:AlloyEditor.Lang.isString,value:"ae-placeholder",writeOnce:!0},removePlugins:{validator:AlloyEditor.Lang.isString,value:"contextmenu,toolbar,elementspath,resize,liststyle,link",writeOnce:!0},selectionKeystrokes:{validator:AlloyEditor.Lang.isArray,value:[{keys:CKEDITOR.CTRL+76,selection:"link"},{keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76,selection:"embed"}]},srcNode:{setter:"_toElement",writeOnce:!0},toolbars:{validator:"_validateToolbars",value:{add:{buttons:["image","embed","camera","hline","table"],tabIndex:2},styles:{selections:AlloyEditor.Selections,tabIndex:1}}},uiNode:{setter:"_toElement",writeOnce:!0}}}),CKEDITOR.event.implementOn(e),AlloyEditor.Core=e}(),function(){var e={applyStyle:function(){if(AlloyEditor.Lang.isFunction(this.isActive)&&AlloyEditor.Lang.isFunction(this.getStyle)){var e=this.props.editor.get("nativeEditor");e.getSelection().lock(),this.isActive()?e.removeStyle(this.getStyle()):e.applyStyle(this.getStyle()),e.getSelection().unlock(),e.fire("actionPerformed",this)}}};AlloyEditor.ButtonActionStyle=e}(),function(){var e={isActive:function(){var e=this.props.editor.get("nativeEditor"),t=e.getCommand(this.props.command);return!!t&&t.state===CKEDITOR.TRISTATE_ON}};AlloyEditor.ButtonCommandActive=e}(),function(){var e={propTypes:{command:PropTypes.string.isRequired,modifiesSelection:PropTypes.bool},execCommand:function(e){var t=this.props.editor.get("nativeEditor");t.execCommand(this.props.command,e),this.props.modifiesSelection&&t.selectionChange(!0),t.fire("actionPerformed",this)}};AlloyEditor.ButtonCommand=e}(),function(){var e={propTypes:{keystroke:PropTypes.object.isRequired},componentWillMount:function(){var e=this.props.editor.get("nativeEditor"),t=this.props.keystroke,i=t.name||(1e9*Math.random()>>>0).toString(),n=e.getCommand(i);n||(n=new CKEDITOR.command(e,{exec:function(e){var i=t.fn;AlloyEditor.Lang.isString(i)?this[i].call(this,e):AlloyEditor.Lang.isFunction(i)&&i.call(this,e)}.bind(this)}),e.addCommand(i,n)),this._defaultKeystrokeCommand=e.keystrokeHandler.keystrokes[t.keys],e.setKeystroke(t.keys,i)},componentWillUnmount:function(){this.props.editor.get("nativeEditor").setKeystroke(this.props.keystroke.keys,this._defaultKeystrokeCommand)}};AlloyEditor.ButtonKeystroke=e}(),function(){var e={propTypes:{editor:PropTypes.object.isRequired},mergeButtonCfgProps:function(e){e=e||this.props;var t=this.props.editor.get("nativeEditor"),i=t.config.buttonCfg||{},n=CKEDITOR.tools.merge(e,i[AlloyEditor.ButtonLinkEdit.key]);return n}};AlloyEditor.ButtonCfgProps=e}(),function(){var e={getStateClasses:function(){var e="";return AlloyEditor.Lang.isFunction(this.isActive)&&this.isActive()&&(e+="ae-button-pressed"),AlloyEditor.Lang.isFunction(this.isDisabled)&&this.isDisabled()&&(e+=" ae-button-disabled"),e}};AlloyEditor.ButtonStateClasses=e}(),function(){var e={propTypes:{style:PropTypes.oneOfType([PropTypes.object,PropTypes.string]),styleFn:PropTypes.func},componentWillMount:function(){var e=AlloyEditor.Lang,t=this.props.style;if(e.isString(t)){for(var i=t.split("."),n=this.props.editor.get("nativeEditor").config,o=i.shift();o&&e.isObject(n)&&e.isObject(n[o]);)n=n[o],o=i.shift();e.isObject(n)&&(t=n)}this._style=new CKEDITOR.style(t)},componentWillUnmount:function(){this._style=null},getStyle:function(){return this._style},isActive:function(){var e,t=this.props.editor.get("nativeEditor"),i=t.elementPath();return e=this.getStyle().checkActive(i,t)}};AlloyEditor.ButtonStyle=e}(),function(){var e={getToolbarButtonGroups:function(e,t){var i=this;return AlloyEditor.Lang.isFunction(e)&&(e=e.call(this)||[]),e.reduce(function(n,o){return Array.isArray(o)?(n.push(i.getToolbarButtons(o,t)),n):i.getToolbarButtons(e,t)},[])},getToolbarButtons:function(e,t){var i={},n=this.props.editor.get("nativeEditor"),o=n.config.buttonCfg||{};AlloyEditor.Lang.isFunction(e)&&(e=e.call(this)||[]);var a=this.filterExclusive(e.filter(function(e){return e&&(AlloyEditor.Buttons[e]||AlloyEditor.Buttons[e.name])}).map(function(e){return AlloyEditor.Lang.isString(e)?(i[e]=o[e],e=AlloyEditor.Buttons[e]):AlloyEditor.Lang.isString(e.name)&&(i[AlloyEditor.Buttons[e.name].key]=CKEDITOR.tools.merge(o[e],e.cfg),e=AlloyEditor.Buttons[e.name]),e})).map(function(e,n){var o=this.mergeExclusiveProps({editor:this.props.editor,key:"separator"!==e.key?e.key:e.key+"-"+n,tabKey:e.key,tabIndex:this.props.trigger&&this.props.trigger.props.tabKey===e.key?0:-1,trigger:this.props.trigger},e.key);return o=this.mergeDropdownProps(o,e.key),t&&(o=CKEDITOR.tools.merge(o,t)),o=CKEDITOR.tools.merge(o,i[e.key]),React.createElement(e,o)},this);return a}};AlloyEditor.ToolbarButtons=e}(),function(){var e={getArrowBoxClasses:function(){var e="ae-arrow-box";return AlloyEditor.Lang.isFunction(this.getInteractionPoint)&&this.getInteractionPoint()&&(e+=this.getInteractionPoint().direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?" ae-arrow-box-top":" ae-arrow-box-bottom"),e}};AlloyEditor.WidgetArrowBox=e}(),function(){var e={componentWillReceiveProps:function(e){this.setState({dropdownTrigger:null,itemDropdown:null})},getInitialState:function(){return{dropdownTrigger:null,itemDropdown:null}},mergeDropdownProps:function(e,t){return CKEDITOR.tools.merge(e,{expanded:this.state.itemDropdown===t,tabIndex:this.state.dropdownTrigger===t?0:-1,toggleDropdown:this.toggleDropdown.bind(this,t)})},toggleDropdown:function(e,t){this.setState({dropdownTrigger:e,itemDropdown:e!==this.state.itemDropdown?e:null},function(){this.state.itemDropdown||(this.moveFocus?this.moveFocus(t):ReactDOM.findDOMNode(this).focus())})}};AlloyEditor.WidgetDropdown=e}(),function(){var e={cancelExclusive:function(e){this.state.itemExclusive===e&&this.setState({itemExclusive:null})},componentWillReceiveProps:function(e){this.setState({itemExclusive:null})},filterExclusive:function(e){return e.filter(function(e){return this.state.itemExclusive?this.state.itemExclusive===e.key?e:void 0:e}.bind(this))},mergeExclusiveProps:function(e,t){return CKEDITOR.tools.merge(e,{cancelExclusive:this.cancelExclusive.bind(this,t),renderExclusive:this.state.itemExclusive===t,requestExclusive:this.requestExclusive.bind(this,t)})},requestExclusive:function(e){this.setState({itemExclusive:e})}};AlloyEditor.WidgetExclusive=e}(),function(){var e=0,t=1,i=-1,n=0,o=1,a=2,r={propTypes:{onDismiss:PropTypes.func,circular:PropTypes.bool.isRequired,focusFirstChild:PropTypes.bool,descendants:PropTypes.string.isRequired,keys:PropTypes.object.isRequired},componentDidMount:function(){this._refresh()},componentDidUpdate:function(){this._refresh()},focus:function(e){if((!e||this._isValidTarget(e.target))&&this._descendants&&this._descendants.length){var t=this._descendants[this._activeDescendant];document.activeElement===t||this.props.focusFirstChild||this._descendants.indexOf(document.activeElement)===-1&&t.focus(),e&&(e.stopPropagation(),e.preventDefault())}},handleKey:function(e){if(this._isValidTarget(e.target)&&this._descendants){ -var t=this._getFocusAction(e);t.type&&(e.stopPropagation(),e.preventDefault(),t.type===o&&this._moveFocus(t.direction),t.type===a&&this.props.onDismiss(t.direction))}},moveFocus:function(e){e=AlloyEditor.Lang.isNumber(e)?e:0,this._moveFocus(e)},_getFocusAction:function(e){var t={type:n};if(this.props.keys){var i=this._getFocusMoveDirection(e);i&&(t.direction=i,t.type=o);var r=this._getFocusDismissAction(e,i);r.dismiss&&(t.direction=r.direction,t.type=a)}return t},_getFocusDismissAction:function(e,n){var o={direction:n,dismiss:!1};return this.props.onDismiss&&(this._isValidKey(e.keyCode,this.props.keys.dismiss)&&(o.dismiss=!0),this._isValidKey(e.keyCode,this.props.keys.dismissNext)&&(o.dismiss=!0,o.direction=t),this._isValidKey(e.keyCode,this.props.keys.dismissPrev)&&(o.dismiss=!0,o.direction=i),o.dismiss||this.props.circular||!n||(o.dismiss=n===i&&0===this._activeDescendant||n===t&&this._activeDescendant===this._descendants.length-1)),o},_getFocusMoveDirection:function(n){var o=e;return this._isValidKey(n.keyCode,this.props.keys.next)&&(o=t),this._isValidKey(n.keyCode,this.props.keys.prev)&&(o=i),n.shifKey&&(o*=-1),o},_isValidKey:function(e,t){return AlloyEditor.Lang.isArray(t)?t.indexOf(e)!==-1:e===t},_isValidTarget:function(e){var t=e.tagName.toLowerCase();return"input"!==t&&"select"!==t&&"textarea"!==t},_moveFocus:function(e){var t=this._descendants.length,i=this._descendants[this._activeDescendant];i.setAttribute("tabIndex",-1),this._activeDescendant+=e,this.props.circular?this._activeDescendant=(this._activeDescendant%t+t)%t:this._activeDescendant=Math.max(Math.min(this._activeDescendant,t-1),0),i=this._descendants[this._activeDescendant],i.setAttribute("tabIndex",0),i.focus()},_refresh:function(){var e=ReactDOM.findDOMNode(this);if(e){var t=e.querySelectorAll(this.props.descendants),i=[];this._descendants=[],Array.prototype.slice.call(t).forEach(function(e){var t=e.getAttribute("data-tabindex");t?i.push(e):this._descendants.push(e)}.bind(this)),i=i.sort(function(e,t){return AlloyEditor.Lang.toInt(e.getAttribute("data-tabindex"))>AlloyEditor.Lang.toInt(t.getAttribute("data-tabindex"))}),this._descendants=i.concat(this._descendants),this._activeDescendant=0,this._descendants.some(function(e,t){if("0"===e.getAttribute("tabindex"))return this._activeDescendant=t,this.focus(),!0}.bind(this))}}};AlloyEditor.WidgetFocusManager=r}(),function(){var e={propTypes:{editorEvent:PropTypes.object},getInteractionPoint:function(){var e=this.props.editorEvent?this.props.editorEvent.data:null;if(e){var t=e.selectionData,i=e.nativeEvent,n={x:e.nativeEvent.pageX,y:t.region.top},o=t.region.direction,a=t.region.endRect,r=t.region.startRect;a&&r&&r.top===a.top&&(o=CKEDITOR.SELECTION_BOTTOM_TO_TOP);var s,l;return n.x&&n.y?(s=this._getXPoint(t,n.x),l=o===CKEDITOR.SELECTION_BOTTOM_TO_TOP?Math.min(n.y,t.region.top):Math.max(n.y,this._getYPoint(t,i))):(s=t.region.left+t.region.width/2,l=o===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this._getYPoint(t,i):t.region.top),{direction:o,x:s,y:l}}},_getXPoint:function(e,t){var i,n=e.region,o=n.startRect?n.startRect.left:n.left,a=n.endRect?n.endRect.right:n.right;if(ot)i=t;else{var r=Math.abs(o-t),s=Math.abs(a-t);i=rt.width&&(i-=e.left+e.width-t.width),n<0&&(n=0),{x:i,y:n}},getWidgetXYPoint:function(e,t,i){var n=ReactDOM.findDOMNode(this),o=this.props.gutter,a=n.offsetWidth,r=a/2;return i===CKEDITOR.SELECTION_TOP_TO_BOTTOM||i===CKEDITOR.SELECTION_BOTTOM_TO_TOP?(e=e-o.left-r,t=i===CKEDITOR.SELECTION_TOP_TO_BOTTOM?t+o.top:t-n.offsetHeight-o.top):i!==CKEDITOR.SELECTION_LEFT_TO_RIGHT&&i!==CKEDITOR.SELECTION_RIGHT_TO_LEFT||(e=i===CKEDITOR.SELECTION_LEFT_TO_RIGHT?e+o.left+n.offsetHeight/2:e-3*n.offsetHeight/2-o.left,t=t-o.top-n.offsetHeight/2),e<0&&(e=0),e>document.body.offsetWidth-r&&(e=document.body.offsetWidth-r),t<0&&(t=0),[e,t]},isVisible:function(){var e=ReactDOM.findDOMNode(this);if(e){var t=new CKEDITOR.dom.element(e);return t.hasClass("alloy-editor-visible")}return!1},moveToPoint:function(e,t){var i=new CKEDITOR.dom.element(ReactDOM.findDOMNode(this));i.setStyles({left:e[0]+"px",top:e[1]+"px",opacity:0}),i.removeClass("alloy-editor-invisible"),this._animate(function(){i.addClass("ae-toolbar-transition"),i.addClass("alloy-editor-visible"),i.setStyles({left:t[0]+"px",top:t[1]+"px",opacity:1})})},show:function(){var e=ReactDOM.findDOMNode(this),t=this.props.editor.get("uiNode"),i=t?t.scrollTop:0;if(!this.isVisible()&&e){var n=this.getInteractionPoint();if(n){var o,a,r,s,l=new CKEDITOR.dom.element(e);if(o=r=parseFloat(l.getStyle("left")),a=s=parseFloat(l.getStyle("top")),this.props.constrainToViewport){var d=this.getConstrainedPosition({height:parseFloat(e.offsetHeight),left:o,top:a,width:parseFloat(e.offsetWidth)});o=d.x,a=d.y}s=n.direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this.props.selectionData.region.bottom+i:this.props.selectionData.region.top+i,this.moveToPoint([r,s],[o,a])}}},updatePosition:function(){var e=this.getInteractionPoint(),t=ReactDOM.findDOMNode(this);if(e&&t){var i=this.props.editor.get("uiNode")||document.body,n=getComputedStyle(i),o=parseInt(n.getPropertyValue("margin-left"),10),a=parseInt(n.getPropertyValue("margin-right"),10),r=o+i.clientWidth+a,s="BODY"!==i.tagName?i.scrollTop:0,l=this.getWidgetXYPoint(e.x,e.y,e.direction);l[1]+=s,l[0]<0&&(l[0]=0),l[0]>r-t.offsetWidth&&(l[0]=r-t.offsetWidth),new CKEDITOR.dom.element(t).setStyles({left:l[0]+"px",top:l[1]+"px"})}},_animate:function(e){window.requestAnimationFrame?this._animationFrameId=window.requestAnimationFrame(e):e()}};AlloyEditor.WidgetPosition=e}(),function(){var e=createReactClass({displayName:"ButtonBold",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"bold"},getDefaultProps:function(){return{command:"bold",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+66},style:"coreStyles_bold"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.bold,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-bold",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.bold},React.createElement("span",{className:"ae-icon-bold"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonBold=e}(),function(){var e=createReactClass({displayName:"ButtonCameraImage",statics:{key:"cameraImage"},getDefaultProps:function(){return{videoWidth:320}},componentDidMount:function(){ReactDOM.findDOMNode(this.refs.buttonTakePhoto).focus()},componentWillUnmount:function(){this._stream&&(this._stream.stop?this._stream.stop():this._stream.getVideoTracks&&this._stream.getVideoTracks().forEach(function(e){e.stop()}),this._stream=null)},render:function(){var e=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return e.call(navigator,{video:!0,audio:!1},this._handleStreamSuccess,this._handleStreamError),React.createElement("div",{className:"ae-camera"},React.createElement("video",{ref:"videoContainer"},"Video stream not available."),React.createElement("button",{className:"ae-camera-shoot",onClick:this.takePhoto,ref:"buttonTakePhoto"},"Take photo"),React.createElement("canvas",{className:"ae-camera-canvas",ref:"canvasContainer"}))},takePhoto:function(){var e=ReactDOM.findDOMNode(this.refs.videoContainer),t=ReactDOM.findDOMNode(this.refs.canvasContainer),i=t.getContext("2d"),n=this._videoHeight,o=this.props.videoWidth;if(o&&n){t.width=o,t.height=n,i.drawImage(e,0,0,o,n);var a=t.toDataURL("image/png"),r=CKEDITOR.dom.element.createFromHtml(''),s=this.props.editor.get("nativeEditor");s.insertElement(r),this.props.cancelExclusive(),s.fire("actionPerformed",this),s.fire("imageCameraAdd",r)}},_handleStreamError:function(e){window.alert("An error occurred! "+e)},_handleStreamSuccess:function(e){var t=ReactDOM.findDOMNode(this.refs.videoContainer),i=ReactDOM.findDOMNode(this.refs.canvasContainer);t.addEventListener("canplay",function(e){var n=t.videoHeight/(t.videoWidth/this.props.videoWidth);isNaN(n)&&(n=this.props.videoWidth/(4/3)),t.setAttribute("width",this.props.videoWidth),t.setAttribute("height",n),i.setAttribute("width",this.props.videoWidth),i.setAttribute("height",n),this._videoHeight=n}.bind(this),!1),this._stream=e,navigator.mozGetUserMedia?t.mozSrcObject=e:t.src=(window.URL||window.webkitURL).createObjectURL(e),t.play(),ReactDOM.findDOMNode(this.refs.buttonTakePhoto).disabled=!1}});AlloyEditor.ButtonCameraImage=e}(),function(){var e=createReactClass({displayName:"ButtonCamera",propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"camera"},render:function(){if(this.props.renderExclusive)return React.createElement(AlloyEditor.ButtonCameraImage,this.props);var t=!(navigator.getUserMedia||navigator.webkitGetUserMedia&&"https"===location.protocol||navigator.mozGetUserMedia||navigator.msGetUserMedia),i=t?AlloyEditor.Strings.cameraDisabled:AlloyEditor.Strings.camera;return React.createElement("button",{"aria-label":i,className:"ae-button","data-type":"button-image-camera",disabled:t,onClick:this.props.requestExclusive.bind(e.key),tabIndex:this.props.tabIndex,title:i},React.createElement("span",{className:"ae-icon-camera"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCamera=e}(),function(){var e=createReactClass({displayName:"ButtonCode",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"code"},getDefaultProps:function(){return{style:{element:"pre"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.code,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-code",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.code},React.createElement("span",{className:"ae-icon-code"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCode=e}(),function(){var e=createReactClass({displayName:"ButtonCommandListItem",mixins:[AlloyEditor.ButtonCommand],propTypes:{description:PropTypes.string.isRequired,icon:PropTypes.string},statics:{key:"buttonCommandListItem"},render:function(){var e="ae-icon-"+this.props.icon;return React.createElement("button",{"aria-label":this.props.description,className:this._getClassName(),onClick:this.execCommand,tabIndex:this.props.tabIndex},this.props.icon&&React.createElement("span",{className:e}),this.props.description)},_getClassName:function(){var e="ae-container ae-toolbar-element";return e}});AlloyEditor.ButtonCommandListItem=e}(),function(){var e=createReactClass({displayName:"ButtonCommandsList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{commands:PropTypes.arrayOf(PropTypes.object),editor:PropTypes.object.isRequired,listId:PropTypes.string},statics:{key:"buttonCommandsList"},componentDidMount:function(){ReactDOM.findDOMNode(this).focus()},getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",id:this.props.listId,role:"listbox"},this._renderActions(this.props.commands)))},_renderActions:function(e){var t,i=this.props.editor;return e&&e.length&&(t=e.map(function(e){return React.createElement("li",{key:e.command,role:"option"},React.createElement(AlloyEditor.ButtonCommandListItem,{command:e.command,description:"string"==typeof e.label?e.label:e.label(),icon:e.icon,editor:i}))})),t}});AlloyEditor.ButtonCommandsList=e}(),function(){var e=createReactClass({displayName:"ButtonDropdown",mixins:[AlloyEditor.WidgetFocusManager],getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},statics:{key:"dropdown"},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",role:"listbox"},this.props.children))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonDropdown=e}(),function(){var e=13,t=27,i=createReactClass({displayName:"ButtonEmbedEdit",propTypes:{editor:PropTypes.object.isRequired},statics:{key:"embedEdit"},componentDidMount:function(){(this.props.renderExclusive||this.props.manualSelection)&&(window.requestAnimationFrame?window.requestAnimationFrame(this._focusLinkInput):setTimeout(this._focusLinkInput,0))},componentWillReceiveProps:function(e){this.replaceState(this.getInitialState())},getInitialState:function(){var e,t=this.props.editor.get("nativeEditor"),i=t.getSelection();if(i){var n=i.getSelectedElement();n&&(e=n.findOne('[data-widget="ae_embed"]'))}var o=e?e.getAttribute("data-ae-embed-url"):"";return{element:e,initialLink:{href:o},linkHref:o}},render:function(){var e={opacity:this.state.linkHref?1:0};return React.createElement("div",{className:"ae-container-edit-link"},React.createElement("button",{"aria-label":AlloyEditor.Strings.deleteEmbed,className:"ae-button","data-type":"button-embed-remove",disabled:!this.state.element,onClick:this._removeEmbed,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.deleteEmbed},React.createElement("span",{className:"ae-icon-bin"})),React.createElement("div",{className:"ae-container-input xxl"},React.createElement("input",{className:"ae-input",onChange:this._handleLinkHrefChange,onKeyDown:this._handleKeyDown,placeholder:AlloyEditor.Strings.editLink,ref:"linkInput",type:"text",value:this.state.linkHref}),React.createElement("button",{"aria-label":AlloyEditor.Strings.clearInput,className:"ae-button ae-icon-remove",onClick:this._clearLink,style:e,title:AlloyEditor.Strings.clear})),React.createElement("button",{"aria-label":AlloyEditor.Strings.confirm,className:"ae-button",disabled:!this._isValidState(),onClick:this._embedLink,title:AlloyEditor.Strings.confirm},React.createElement("span",{className:"ae-icon-ok"})))},_clearLink:function(){this.setState({linkHref:""})},_embedLink:function(){var e=this.props.editor.get("nativeEditor");e.execCommand("embedUrl",{url:this.state.linkHref}),this.props.cancelExclusive()},_focusLinkInput:function(){ReactDOM.findDOMNode(this.refs.linkInput).focus()},_handleKeyDown:function(i){if(i.keyCode!==e&&i.keyCode!==t||i.preventDefault(),i.keyCode===e)this._embedLink();else if(i.keyCode===t){var n=this.props.editor.get("nativeEditor");this.props.cancelExclusive(),n.fire("actionPerformed",this)}},_handleLinkHrefChange:function(e){this.setState({linkHref:e.target.value})},_isValidState:function(){var e=this.state.linkHref&&this.state.linkHref!==this.state.initialLink.href;return e},_removeEmbed:function(){var e=this.props.editor.get("nativeEditor"),t=this.state.element.getAscendant(function(e){return e.hasClass("cke_widget_wrapper")});t.remove(),e.fire("actionPerformed",this)}});AlloyEditor.Buttons[i.key]=AlloyEditor.ButtonEmbedEdit=i}(),function(){var e=createReactClass({displayName:"ButtonEmbed",mixins:[AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"embed"},getDefaultProps:function(){return{keystroke:{fn:"_requestExclusive",keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76}}},render:function(){return this.props.renderExclusive?React.createElement(AlloyEditor.ButtonEmbedEdit,this.props):React.createElement("button",{"aria-label":AlloyEditor.Strings.link,className:"ae-button","data-type":"button-embed",onClick:this._requestExclusive,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.link},React.createElement("span",{className:"ae-icon-add"}))},_requestExclusive:function(){this.props.requestExclusive(e.key)}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonEmbed=e}(),function(){var e=createReactClass({displayName:"ButtonH1",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"h1"},getDefaultProps:function(){return{style:{element:"h1"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h1,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h1",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h1},React.createElement("span",{className:"ae-icon-h1"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH1=e}(),function(){var e=createReactClass({displayName:"ButtonH2",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"h2"},getDefaultProps:function(){return{style:{element:"h2"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h2,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h2",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h2},React.createElement("span",{className:"ae-icon-h2"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH2=e}(),function(){var e=createReactClass({displayName:"ButtonHline",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonCommand],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"hline"},getDefaultProps:function(){return{command:"horizontalrule",style:{element:"hr"}}},render:function(){return React.createElement("button",{"aria-label":AlloyEditor.Strings.horizontalrule,className:"ae-button","data-type":"button-hline",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.horizontalrule},React.createElement("span",{className:"ae-icon-separator"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonHline=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignCenter",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageCenter"},getDefaultProps:function(){return{command:"justifycenter"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignCenter,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-center",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignCenter},React.createElement("span",{className:"ae-icon-align-center"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignCenter=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignLeft",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageLeft"},getDefaultProps:function(){return{command:"justifyleft"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignLeft,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-left",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignLeft},React.createElement("span",{className:"ae-icon-align-left"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignLeft=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignRight",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageRight"},getDefaultProps:function(){return{command:"justifyright"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignRight,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-right",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignRight},React.createElement("span",{className:"ae-icon-align-right"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignRight=e}(),function(){var e=createReactClass({displayName:"ButtonImage",propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"image"},render:function(){var e={display:"none"};return React.createElement("div",null,React.createElement("button",{"aria-label":AlloyEditor.Strings.image,className:"ae-button","data-type":"button-image",onClick:this.handleClick,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.image},React.createElement("span",{className:"ae-icon-image"})),React.createElement("input",{accept:"image/*",onChange:this._onInputChange,ref:"fileInput",style:e,type:"file"}))},handleClick:function(e){ReactDOM.findDOMNode(this.refs.fileInput).click()},_onInputChange:function(){var e=ReactDOM.findDOMNode(this.refs.fileInput);if(e.files.length){var t=new FileReader,i=e.files[0];t.onload=function(e){var t=this.props.editor.get("nativeEditor"),n=t.fire("beforeImageAdd",{imageFiles:i});if(n){var o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o),t.fire("actionPerformed",this);var a={el:o,file:i};t.fire("imageAdd",a)}}.bind(this),t.readAsDataURL(i),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=createReactClass({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},React.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=createReactClass({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},React.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=createReactClass({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:PropTypes.func,autocompleteSelected:PropTypes.bool,term:PropTypes.string,setAutocompleteState:PropTypes.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?React.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var t=this.props.handleLinkAutocompleteClick;return e.map(function(e){var i=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return React.createElement("li",{key:e.url,role:"option"},React.createElement("button",{className:i,onClick:t,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var _extends=Object.assign||function(e){for(var t=1;tAlloyEditor.Lang.toInt(t.getAttribute("data-tabindex"))}),this._descendants=i.concat(this._descendants),this._activeDescendant=0,this._descendants.some(function(e,t){if("0"===e.getAttribute("tabindex"))return this._activeDescendant=t,this.focus(),!0}.bind(this))}}};AlloyEditor.WidgetFocusManager=r}(),function(){var e={propTypes:{editorEvent:PropTypes.object},getInteractionPoint:function(){var e=this.props.editorEvent?this.props.editorEvent.data:null;if(e){var t=e.selectionData,i=e.nativeEvent,n={x:e.nativeEvent.pageX,y:t.region.top},o=t.region.direction,a=t.region.endRect,r=t.region.startRect;a&&r&&r.top===a.top&&(o=CKEDITOR.SELECTION_BOTTOM_TO_TOP);var s,l;return n.x&&n.y?(s=this._getXPoint(t,n.x),l=o===CKEDITOR.SELECTION_BOTTOM_TO_TOP?Math.min(n.y,t.region.top):Math.max(n.y,this._getYPoint(t,i))):(s=t.region.left+t.region.width/2,l=o===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this._getYPoint(t,i):t.region.top),{direction:o,x:s,y:l}}},_getXPoint:function(e,t){var i,n=e.region,o=n.startRect?n.startRect.left:n.left,a=n.endRect?n.endRect.right:n.right;if(ot)i=t;else{var r=Math.abs(o-t),s=Math.abs(a-t);i=rt.width&&(i-=e.left+e.width-t.width),n<0&&(n=0),{x:i,y:n}},getWidgetXYPoint:function(e,t,i){var n=ReactDOM.findDOMNode(this),o=this.props.gutter,a=n.offsetWidth,r=a/2;return i===CKEDITOR.SELECTION_TOP_TO_BOTTOM||i===CKEDITOR.SELECTION_BOTTOM_TO_TOP?(e=e-o.left-r,t=i===CKEDITOR.SELECTION_TOP_TO_BOTTOM?t+o.top:t-n.offsetHeight-o.top):i!==CKEDITOR.SELECTION_LEFT_TO_RIGHT&&i!==CKEDITOR.SELECTION_RIGHT_TO_LEFT||(e=i===CKEDITOR.SELECTION_LEFT_TO_RIGHT?e+o.left+n.offsetHeight/2:e-3*n.offsetHeight/2-o.left,t=t-o.top-n.offsetHeight/2),e<0&&(e=0),e>document.body.offsetWidth-r&&(e=document.body.offsetWidth-r),t<0&&(t=0),[e,t]},isVisible:function(){var e=ReactDOM.findDOMNode(this);if(e){var t=new CKEDITOR.dom.element(e);return t.hasClass("alloy-editor-visible")}return!1},moveToPoint:function(e,t){var i=new CKEDITOR.dom.element(ReactDOM.findDOMNode(this));i.setStyles({left:e[0]+"px",top:e[1]+"px",opacity:0,pointerEvents:"none"}),i.removeClass("alloy-editor-invisible"),this._animate(function(){i.addClass("ae-toolbar-transition"),i.addClass("alloy-editor-visible"),i.setStyles({left:t[0]+"px",top:t[1]+"px",opacity:1})}),i.$&&i.$.addEventListener("transitionend",function(){i.setStyles({pointerEvents:""})})},show:function(){var e=ReactDOM.findDOMNode(this),t=this.props.editor.get("uiNode"),i=t?t.scrollTop:0;if(!this.isVisible()&&e){var n=this.getInteractionPoint();if(n){var o,a,r,s,l=new CKEDITOR.dom.element(e);if(o=r=parseFloat(l.getStyle("left")),a=s=parseFloat(l.getStyle("top")),this.props.constrainToViewport){var d=this.getConstrainedPosition({height:parseFloat(e.offsetHeight),left:o,top:a,width:parseFloat(e.offsetWidth)});o=d.x,a=d.y}s=n.direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this.props.selectionData.region.bottom+i:this.props.selectionData.region.top+i,this.moveToPoint([r,s],[o,a])}}},updatePosition:function(){var e=this.getInteractionPoint(),t=ReactDOM.findDOMNode(this);if(e&&t){var i=this.props.editor.get("uiNode")||document.body,n=getComputedStyle(i),o=parseInt(n.getPropertyValue("margin-left"),10),a=parseInt(n.getPropertyValue("margin-right"),10),r=o+i.clientWidth+a,s="BODY"!==i.tagName?i.scrollTop:0,l=this.getWidgetXYPoint(e.x,e.y,e.direction);l[1]+=s,l[0]<0&&(l[0]=0),l[0]>r-t.offsetWidth&&(l[0]=r-t.offsetWidth),new CKEDITOR.dom.element(t).setStyles({left:l[0]+"px",top:l[1]+"px"})}},_animate:function(e){window.requestAnimationFrame?this._animationFrameId=window.requestAnimationFrame(e):e()}};AlloyEditor.WidgetPosition=e}(),function(){var e=createReactClass({displayName:"ButtonBold",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"bold"},getDefaultProps:function(){return{command:"bold",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+66},style:"coreStyles_bold"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.bold,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-bold",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.bold},React.createElement("span",{className:"ae-icon-bold"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonBold=e}(),function(){var e=createReactClass({displayName:"ButtonCameraImage",statics:{key:"cameraImage"},getDefaultProps:function(){return{videoWidth:320}},componentDidMount:function(){ReactDOM.findDOMNode(this.refs.buttonTakePhoto).focus()},componentWillUnmount:function(){this._stream&&(this._stream.stop?this._stream.stop():this._stream.getVideoTracks&&this._stream.getVideoTracks().forEach(function(e){e.stop()}),this._stream=null)},render:function(){var e=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return e.call(navigator,{video:!0,audio:!1},this._handleStreamSuccess,this._handleStreamError),React.createElement("div",{className:"ae-camera"},React.createElement("video",{ref:"videoContainer"},"Video stream not available."),React.createElement("button",{className:"ae-camera-shoot",onClick:this.takePhoto,ref:"buttonTakePhoto"},"Take photo"),React.createElement("canvas",{className:"ae-camera-canvas",ref:"canvasContainer"}))},takePhoto:function(){var e=ReactDOM.findDOMNode(this.refs.videoContainer),t=ReactDOM.findDOMNode(this.refs.canvasContainer),i=t.getContext("2d"),n=this._videoHeight,o=this.props.videoWidth;if(o&&n){t.width=o,t.height=n,i.drawImage(e,0,0,o,n);var a=t.toDataURL("image/png"),r=CKEDITOR.dom.element.createFromHtml(''),s=this.props.editor.get("nativeEditor");s.insertElement(r),this.props.cancelExclusive(),s.fire("actionPerformed",this),s.fire("imageCameraAdd",r)}},_handleStreamError:function(e){window.alert("An error occurred! "+e)},_handleStreamSuccess:function(e){var t=ReactDOM.findDOMNode(this.refs.videoContainer),i=ReactDOM.findDOMNode(this.refs.canvasContainer);t.addEventListener("canplay",function(e){var n=t.videoHeight/(t.videoWidth/this.props.videoWidth);isNaN(n)&&(n=this.props.videoWidth/(4/3)),t.setAttribute("width",this.props.videoWidth),t.setAttribute("height",n),i.setAttribute("width",this.props.videoWidth),i.setAttribute("height",n),this._videoHeight=n}.bind(this),!1),this._stream=e,navigator.mozGetUserMedia?t.mozSrcObject=e:t.src=(window.URL||window.webkitURL).createObjectURL(e),t.play(),ReactDOM.findDOMNode(this.refs.buttonTakePhoto).disabled=!1}});AlloyEditor.ButtonCameraImage=e}(),function(){var e=createReactClass({displayName:"ButtonCamera",propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"camera"},render:function(){if(this.props.renderExclusive)return React.createElement(AlloyEditor.ButtonCameraImage,this.props);var t=!(navigator.getUserMedia||navigator.webkitGetUserMedia&&"https"===location.protocol||navigator.mozGetUserMedia||navigator.msGetUserMedia),i=t?AlloyEditor.Strings.cameraDisabled:AlloyEditor.Strings.camera;return React.createElement("button",{"aria-label":i,className:"ae-button","data-type":"button-image-camera",disabled:t,onClick:this.props.requestExclusive.bind(e.key),tabIndex:this.props.tabIndex,title:i},React.createElement("span",{className:"ae-icon-camera"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCamera=e}(),function(){var e=createReactClass({displayName:"ButtonCode",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"code"},getDefaultProps:function(){return{style:{element:"pre"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.code,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-code",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.code},React.createElement("span",{className:"ae-icon-code"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCode=e}(),function(){var e=createReactClass({displayName:"ButtonCommandListItem",mixins:[AlloyEditor.ButtonCommand],propTypes:{description:PropTypes.string.isRequired,icon:PropTypes.string},statics:{key:"buttonCommandListItem"},render:function(){var e="ae-icon-"+this.props.icon;return React.createElement("button",{"aria-label":this.props.description,className:this._getClassName(),onClick:this.execCommand,tabIndex:this.props.tabIndex},this.props.icon&&React.createElement("span",{className:e}),this.props.description)},_getClassName:function(){var e="ae-container ae-toolbar-element";return e}});AlloyEditor.ButtonCommandListItem=e}(),function(){var e=createReactClass({displayName:"ButtonCommandsList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{commands:PropTypes.arrayOf(PropTypes.object),editor:PropTypes.object.isRequired,listId:PropTypes.string},statics:{key:"buttonCommandsList"},componentDidMount:function(){ReactDOM.findDOMNode(this).focus()},getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",id:this.props.listId,role:"listbox"},this._renderActions(this.props.commands)))},_renderActions:function(e){var t,i=this.props.editor;return e&&e.length&&(t=e.map(function(e){return React.createElement("li",{key:e.command,role:"option"},React.createElement(AlloyEditor.ButtonCommandListItem,{command:e.command,description:"string"==typeof e.label?e.label:e.label(),icon:e.icon,editor:i}))})),t}});AlloyEditor.ButtonCommandsList=e}(),function(){var e=createReactClass({displayName:"ButtonDropdown",mixins:[AlloyEditor.WidgetFocusManager],getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},statics:{key:"dropdown"},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",role:"listbox"},this.props.children))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonDropdown=e}(),function(){var e=13,t=27,i=createReactClass({displayName:"ButtonEmbedEdit",propTypes:{editor:PropTypes.object.isRequired},statics:{key:"embedEdit"},componentDidMount:function(){(this.props.renderExclusive||this.props.manualSelection)&&(window.requestAnimationFrame?window.requestAnimationFrame(this._focusLinkInput):setTimeout(this._focusLinkInput,0))},componentWillReceiveProps:function(e){this.replaceState(this.getInitialState())},getInitialState:function(){var e,t=this.props.editor.get("nativeEditor"),i=t.getSelection();if(i){var n=i.getSelectedElement();n&&(e=n.findOne('[data-widget="ae_embed"]'))}var o=e?e.getAttribute("data-ae-embed-url"):"";return{element:e,initialLink:{href:o},linkHref:o}},render:function(){var e={opacity:this.state.linkHref?1:0};return React.createElement("div",{className:"ae-container-edit-link"},React.createElement("button",{"aria-label":AlloyEditor.Strings.deleteEmbed,className:"ae-button","data-type":"button-embed-remove",disabled:!this.state.element,onClick:this._removeEmbed,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.deleteEmbed},React.createElement("span",{className:"ae-icon-bin"})),React.createElement("div",{className:"ae-container-input xxl"},React.createElement("input",{className:"ae-input",onChange:this._handleLinkHrefChange,onKeyDown:this._handleKeyDown,placeholder:AlloyEditor.Strings.editLink,ref:"linkInput",type:"text",value:this.state.linkHref}),React.createElement("button",{"aria-label":AlloyEditor.Strings.clearInput,className:"ae-button ae-icon-remove",onClick:this._clearLink,style:e,title:AlloyEditor.Strings.clear})),React.createElement("button",{"aria-label":AlloyEditor.Strings.confirm,className:"ae-button",disabled:!this._isValidState(),onClick:this._embedLink,title:AlloyEditor.Strings.confirm},React.createElement("span",{className:"ae-icon-ok"})))},_clearLink:function(){this.setState({linkHref:""})},_embedLink:function(){var e=this.props.editor.get("nativeEditor");e.execCommand("embedUrl",{url:this.state.linkHref}),this.props.cancelExclusive()},_focusLinkInput:function(){ReactDOM.findDOMNode(this.refs.linkInput).focus()},_handleKeyDown:function(i){if(i.keyCode!==e&&i.keyCode!==t||i.preventDefault(),i.keyCode===e)this._embedLink();else if(i.keyCode===t){var n=this.props.editor.get("nativeEditor");this.props.cancelExclusive(),n.fire("actionPerformed",this)}},_handleLinkHrefChange:function(e){this.setState({linkHref:e.target.value})},_isValidState:function(){var e=this.state.linkHref&&this.state.linkHref!==this.state.initialLink.href;return e},_removeEmbed:function(){var e=this.props.editor.get("nativeEditor"),t=this.state.element.getAscendant(function(e){return e.hasClass("cke_widget_wrapper")});t.remove(),e.fire("actionPerformed",this)}});AlloyEditor.Buttons[i.key]=AlloyEditor.ButtonEmbedEdit=i}(),function(){var e=createReactClass({displayName:"ButtonEmbed",mixins:[AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"embed"},getDefaultProps:function(){return{keystroke:{fn:"_requestExclusive",keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76}}},render:function(){return this.props.renderExclusive?React.createElement(AlloyEditor.ButtonEmbedEdit,this.props):React.createElement("button",{"aria-label":AlloyEditor.Strings.link,className:"ae-button","data-type":"button-embed",onClick:this._requestExclusive,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.link},React.createElement("span",{className:"ae-icon-add"}))},_requestExclusive:function(){this.props.requestExclusive(e.key)}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonEmbed=e}(),function(){var e=createReactClass({displayName:"ButtonH1",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"h1"},getDefaultProps:function(){return{style:{element:"h1"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h1,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h1",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h1},React.createElement("span",{className:"ae-icon-h1"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH1=e}(),function(){var e=createReactClass({displayName:"ButtonH2",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"h2"},getDefaultProps:function(){return{style:{element:"h2"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h2,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h2",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h2},React.createElement("span",{className:"ae-icon-h2"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH2=e}(),function(){var e=createReactClass({displayName:"ButtonHline",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonCommand],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"hline"},getDefaultProps:function(){return{command:"horizontalrule",style:{element:"hr"}}},render:function(){return React.createElement("button",{"aria-label":AlloyEditor.Strings.horizontalrule,className:"ae-button","data-type":"button-hline",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.horizontalrule},React.createElement("span",{className:"ae-icon-separator"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonHline=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignCenter",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageCenter"},getDefaultProps:function(){return{command:"justifycenter"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignCenter,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-center",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignCenter},React.createElement("span",{className:"ae-icon-align-center"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignCenter=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignLeft",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageLeft"},getDefaultProps:function(){return{command:"justifyleft"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignLeft,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-left",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignLeft},React.createElement("span",{className:"ae-icon-align-left"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignLeft=e}(),function(){var e=createReactClass({displayName:"ButtonImageAlignRight",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"imageRight"},getDefaultProps:function(){return{command:"justifyright"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignRight,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-right",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignRight},React.createElement("span",{className:"ae-icon-align-right"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignRight=e}(),function(){var e=createReactClass({displayName:"ButtonImage",propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"image"},render:function(){var e={display:"none"};return React.createElement("div",null,React.createElement("button",{"aria-label":AlloyEditor.Strings.image,className:"ae-button","data-type":"button-image",onClick:this.handleClick,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.image},React.createElement("span",{className:"ae-icon-image"})),React.createElement("input",{accept:"image/*",onChange:this._onInputChange,ref:"fileInput",style:e,type:"file"}))},handleClick:function(e){ReactDOM.findDOMNode(this.refs.fileInput).click()},_onInputChange:function(){var e=ReactDOM.findDOMNode(this.refs.fileInput);if(e.files.length){var t=new FileReader,i=e.files[0];t.onload=function(e){var t=this.props.editor.get("nativeEditor"),n=t.fire("beforeImageAdd",{imageFiles:i});if(n){var o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o),t.fire("actionPerformed",this);var a={el:o,file:i};t.fire("imageAdd",a)}}.bind(this),t.readAsDataURL(i),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=createReactClass({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},React.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=createReactClass({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:PropTypes.object.isRequired,label:PropTypes.string,tabIndex:PropTypes.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},React.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=createReactClass({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:PropTypes.func,autocompleteSelected:PropTypes.bool,term:PropTypes.string,setAutocompleteState:PropTypes.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?React.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var t=this.props.handleLinkAutocompleteClick;return e.map(function(e){var i=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return React.createElement("li",{key:e.url,role:"option"},React.createElement("button",{className:i,onClick:t,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var _extends=Object.assign||function(e){for(var t=1;t0,s="ae-container";return r&&(s+=" ae-container-column"),React.createElement("div",{"aria-label":AlloyEditor.Strings.styles,className:n,"data-tabindex":this.props.config.tabIndex||0,onFocus:this.focus,onKeyDown:this.handleKey,role:"toolbar",tabIndex:"-1"},React.createElement("div",{className:s},a.map(function(e,t){return Array.isArray(e)?React.createElement("div",{className:"ae-row",key:t.toString()},e.map(function(e){return e})):e})))}return null},_getSelectionFunction:function(e){var t,i=AlloyEditor.Lang;if(i.isFunction(e))t=e;else if(i.isString(e)){for(var n=e.split("."),o=window,a=n.shift();a&&i.isObject(o)&&i.isObject(o[a]);)o=o[a],a=n.shift();i.isFunction(o)&&(t=o)}return t},_getCurrentSelection:function(){var e,t=this.props.editorEvent?this.props.editorEvent.data:null;return t&&this.props.config.selections.some(function(i){var n,o=this._getSelectionFunction(i.test);return o&&(n=t.manualSelection===i.name||o({data:t,editor:this.props.editor})),n&&(e=i),n},this),e},_updatePosition:function(){if(ReactDOM.findDOMNode(this)){var e,t=this._getCurrentSelection();if(t){var i=this._getSelectionFunction(t.setPosition);i&&(e=i.call(this,{editor:this.props.editor,editorEvent:this.props.editorEvent,selectionData:this.props.selectionData}))}e||(this.updatePosition(),this.show())}}});AlloyEditor.Toolbars[e.key]=AlloyEditor.ToolbarStyles=e}(),function(){var e=createReactClass({displayName:"UI",mixins:[AlloyEditor.WidgetExclusive,AlloyEditor.WidgetFocusManager],propTypes:{ariaUpdates:PropTypes.object,editor:PropTypes.object.isRequired,eventsDelay:PropTypes.number,toolbars:PropTypes.object.isRequired},getInitialState:function(){return{hidden:!1}},getDefaultProps:function(){return{circular:!0,descendants:"[class^=ae-toolbar-]",eventsDelay:0,keys:{next:9}}},componentDidMount:function(){var e=this.props.editor.get("nativeEditor");e.on("editorInteraction",this._onEditorInteraction,this),e.on("actionPerformed",this._onActionPerformed,this),e.on("key",this._onEditorKey,this),this._mousedownListener=function(e){this._setUIHidden(e.target)}.bind(this),this._keyDownListener=CKEDITOR.tools.debounce(function(e){this._setUIHidden(document.activeElement)},this.props.eventsDelay,this),document.addEventListener("mousedown",this._mousedownListener),document.addEventListener("keydown",this._keyDownListener)},componentDidUpdate:function(e,t){var i=ReactDOM.findDOMNode(this),n=this.props.editor.get("nativeEditor");i&&n.fire("ariaUpdate",{message:this._getAvailableToolbarsMessage(i)}),n.fire("editorUpdate",{prevProps:e,prevState:t,props:this.props,state:this.state})},_getAriaUpdateTemplate:function(e){return this._ariaUpdateTemplates||(this._ariaUpdateTemplates={}),this._ariaUpdateTemplates[e]||(this._ariaUpdateTemplates[e]=new CKEDITOR.template(this._getAriaUpdates()[e])),this._ariaUpdateTemplates[e]},_getAriaUpdates:function(){return this.props.ariaUpdates||{noToolbar:AlloyEditor.Strings.ariaUpdateNoToolbar,oneToolbar:AlloyEditor.Strings.ariaUpdateOneToolbar,manyToolbars:AlloyEditor.Strings.ariaUpdateManyToolbars}},_getAvailableToolbarsMessage:function(e){var t=e.querySelectorAll('[role="toolbar"]');if(t.length){var i=Array.prototype.slice.call(t).map(function(e){return e.getAttribute("aria-label")}),n=1===i.length?"oneToolbar":"manyToolbars";return this._getAriaUpdateTemplate(n).output({toolbars:i.join(",").replace(/,([^,]*)$/," and $1")})}return this._getAriaUpdates().noToolbar},componentWillUnmount:function(){this._mousedownListener&&document.removeEventListener("mousedown",this._mousedownListener),this._keyDownListener&&(this._keyDownListener.detach(),document.removeEventListener("keydown",this._keyDownListener))},render:function(){if(this.state.hidden)return null;var e=Object.keys(this.props.toolbars).map(function(e){return AlloyEditor.Toolbars[e]||window[e]});return e=this.filterExclusive(e).map(function(e){var t=this.mergeExclusiveProps({config:this.props.toolbars[e.key],editor:this.props.editor,editorEvent:this.state.editorEvent,key:e.key,onDismiss:this._onDismissToolbarFocus,selectionData:this.state.selectionData},e.key);return React.createElement(e,t)}.bind(this)),React.createElement("div",{className:"ae-toolbars",onKeyDown:this.handleKey},e)},_onActionPerformed:function(e){var t=this.props.editor.get("nativeEditor");t.focus(),this.setState({itemExclusive:null,selectionData:t.getSelectionData()})},_onDismissToolbarFocus:function(){var e=this.props.editor.get("nativeEditor");e.focus()},_onEditorInteraction:function(e){this.setState({editorEvent:e,hidden:!1,itemExclusive:null,selectionData:e.data.selectionData})},_onEditorKey:function(e){var t=e.data.domEvent.$;t.altKey&&121===t.keyCode&&this.focus()},_setUIHidden:function(e){var t=ReactDOM.findDOMNode(this);if(t){var i=this.props.editor.get("nativeEditor").editable(),n=e.parentNode,o=new CKEDITOR.dom.node(e);if(i){var a=i.$===e||i.contains(o)||new CKEDITOR.dom.element(t).contains(o);n&&(a=a||"ckimgrsz"===n.id),a||this.setState({hidden:!0})}else this.setState({hidden:!0})}}});AlloyEditor.UI=e}(); } }()); diff --git a/dist/alloy-editor/alloy-editor-no-react.js b/dist/alloy-editor/alloy-editor-no-react.js index 71ee5eb913..88002894f9 100644 --- a/dist/alloy-editor/alloy-editor-no-react.js +++ b/dist/alloy-editor/alloy-editor-no-react.js @@ -1,5 +1,5 @@ /** - * AlloyEditor v1.5.21 + * AlloyEditor v1.5.22 * * Copyright 2014-present, Liferay, Inc. * All rights reserved. @@ -11882,7 +11882,8 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol domElement.setStyles({ left: startPoint[0] + 'px', top: startPoint[1] + 'px', - opacity: 0 + opacity: 0, + pointerEvents: 'none' }); domElement.removeClass('alloy-editor-invisible'); @@ -11896,6 +11897,14 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol opacity: 1 }); }); + + if (domElement.$) { + domElement.$.addEventListener('transitionend', function () { + domElement.setStyles({ + pointerEvents: '' + }); + }); + } }, /** diff --git a/package-lock.json b/package-lock.json index 1a3c340fb5..4d1c7b31cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "alloyeditor", - "version": "1.5.21", + "version": "1.5.22", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index fe973e720a..c9e654bb3f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "alloyeditor", - "version": "1.5.21", + "version": "1.5.22", "description": "AlloyEditor, a modern WYSIWYG editor, build on top of CKEditor", "devDependencies": { "babel-preset-es2015": "6.3.13",