{"version":3,"sources":["webpack:///./node_modules/@ckeditor/ckeditor5-html-embed/src/inserthtmlembedcommand.js","webpack:///./node_modules/@ckeditor/ckeditor5-html-embed/src/updatehtmlembedcommand.js","webpack:///./node_modules/@ckeditor/ckeditor5-html-embed/src/htmlembedediting.js","webpack:///./node_modules/@ckeditor/ckeditor5-html-embed/src/htmlembedui.js","webpack:///./node_modules/@ckeditor/ckeditor5-html-embed/src/htmlembed.js","webpack:///./node_modules/@ckeditor/ckeditor5-essentials/src/essentials.js","webpack:///./node_modules/@ckeditor/ckeditor5-font/src/fontcommand.js","webpack:///./node_modules/@ckeditor/ckeditor5-enter/src/utils.js","webpack:///./node_modules/@ckeditor/ckeditor5-enter/src/entercommand.js","webpack:///./node_modules/@ckeditor/ckeditor5-enter/src/enterobserver.js","webpack:///./node_modules/@ckeditor/ckeditor5-enter/src/enter.js","webpack:///./node_modules/@ckeditor/ckeditor5-enter/src/shiftentercommand.js","webpack:///./node_modules/@ckeditor/ckeditor5-enter/src/shiftenter.js","webpack:///./node_modules/@ckeditor/ckeditor5-enter/src/index.js","webpack:///./node_modules/@ckeditor/ckeditor5-font/theme/icons/font-color.svg","webpack:///./node_modules/@ckeditor/ckeditor5-font/theme/icons/font-background.svg","webpack:///./node_modules/@ckeditor/ckeditor5-font/src/fontcolor/fontcolorcommand.js","webpack:///./node_modules/@ckeditor/ckeditor5-font/src/fontcolor/fontcolorediting.js","webpack:///./node_modules/@ckeditor/ckeditor5-font/src/fontcolor/fontcolorui.js","webpack:///./node_modules/@ckeditor/ckeditor5-font/src/fontcolor.js","webpack:///./node_modules/@ckeditor/ckeditor5-font/src/documentcolorcollection.js","webpack:///./node_modules/@ckeditor/ckeditor5-font/src/ui/colortableview.js","webpack:///./node_modules/@ckeditor/ckeditor5-font/src/utils.js","webpack:///./node_modules/@ckeditor/ckeditor5-html-embed/theme/icons/html.svg","webpack:///./node_modules/@ckeditor/ckeditor5-font/src/ui/colorui.js","webpack:///./node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorcommand.js","webpack:///./node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorediting.js","webpack:///./node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorui.js","webpack:///./node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor.js"],"names":["InsertHtmlEmbedCommand","this","isEnabled","isHtmlEmbedAllowed","editor","model","change","writer","rawHtmlElement","createElement","insertContent","setSelection","Command","schema","selection","document","isHtmlEmbedAllowedInParent","checkSelectionOnObject","parent","getInsertPageBreakParent","checkChild","insertAt","findOptimalInsertionPosition","isEmpty","is","UpdateHtmlEmbedCommand","getSelectedRawHtmlModelWidget","value","selectedRawHtmlElement","setAttribute","selectedElement","getSelectedElement","HtmlEmbedEditing","config","define","showPreviews","sanitizeHtml","rawHtml","logWarning","html","hasChanged","register","isObject","allowWhere","allowAttributes","commands","add","_setupConversion","t","view","editing","htmlEmbedConfig","get","renderContent","domElement","state","props","textContent","domTextarea","domDocument","ownerDocument","isEditable","textareaProps","isDisabled","placeholder","textareaPlaceholder","createDomTextarea","append","previewContainerProps","createPreviewContainer","buttonsWrapperProps","onEditClick","onSaveClick","onCancelClick","prepend","createDomButtonsWrapper","domButtonsWrapper","class","domEditButton","createDomButton","domSaveButton","domCancelButton","clonedDomSaveButton","cloneNode","clonedDomCancelButton","addEventListener","evt","preventDefault","appendChild","clonedDomEditButton","disabled","getRawHtmlValue","sanitizedOutput","placeholderText","length","domPreviewPlaceholder","domPreviewContent","dir","locale","contentLanguageDirection","innerHTML","domPreviewContainer","data","registerRawContentMatcher","name","classes","conversion","for","elementToElement","viewElement","getCustomProperty","modelElement","createRawElement","getAttribute","triggerBy","attributes","domContentWrapper","viewContainer","createContainerElement","uiLanguageDirection","viewContentWrapper","rawHtmlApi","makeEditable","Object","assign","querySelector","focus","save","newValue","execute","cancel","removeAttribute","insert","createPositionAt","setCustomProperty","toWidget","widgetLabel","hasSelectionHandle","Plugin","type","buttonView","ButtonView","command","set","tooltipPosition","icon","icons","pencil","tooltip","render","label","check","bind","to","destroy","element","HtmlEmbedUI","ui","componentFactory","htmlEmbedIcon","listenTo","widgetWrapper","HtmlEmbed","Widget","Essentials","Clipboard","Enter","SelectAll","ShiftEnter","Typing","Undo","FontCommand","attributeKey","doc","checkAttributeInSelection","options","isCollapsed","setSelectionAttribute","removeSelectionAttribute","ranges","getValidRanges","getRanges","range","getCopyOnEnterAttributes","allAttributes","attribute","getAttributeProperties","copyOnEnter","EnterCommand","enterBlock","fire","isSelectionEmpty","getFirstRange","startElement","start","endElement","end","isLimit","deleteContent","attributesToCopy","getAttributes","splitBlock","leaveUnmerged","isAtStart","isAtEnd","isContainedWithinOneElement","splitPos","split","nextSibling","EnterObserver","on","event","keyCode","keyCodes","enter","once","priority","DomEventData","domEvent","isSoft","shiftKey","stop","called","Observer","viewDocument","addObserver","scrollToTheSelection","ShiftEnterCommand","softBreakAction","rangeCount","anchorPos","anchor","isInsideLimitElement","insertBreak","getAttributeKeys","position","breakLineElement","isInline","createEmptyElement","module","exports","FontColorCommand","FONT_COLOR","FontColorEditing","colors","color","hasBorder","columns","elementToAttribute","styles","key","renderUpcastAttribute","attributeToElement","renderDowncastElement","extend","setAttributeProperties","isFormatting","FontColorUI","commandName","componentName","fontColorIcon","dropdownLabel","ColorUI","FontColor","DocumentColorCollection","item","index","find","Collection","mix","ObservableMixin","ColorTableView","removeButtonLabel","documentColorsLabel","documentColorsCount","items","createCollection","colorDefinitions","focusTracker","FocusTracker","keystrokes","KeystrokeHandler","documentColors","_focusCycler","FocusCycler","focusables","keystrokeHandler","actions","focusPrevious","focusNext","_documentColorsLabel","setTemplate","tag","children","_removeColorButton","attributeName","maxCount","clear","getRootNames","rootName","root","getRoot","createRangeIn","getItems","node","hasAttribute","_addColorToDocumentColors","documentColorsGrid","staticColorsGrid","selectedColor","_createStaticColorsGrid","Template","LabelView","text","extendTemplate","if","_createDocumentColorsGrid","focusFirst","focusLast","withText","eraser","colorGrid","ColorGridView","delegate","bindTo","using","colorObj","colorTile","ColorTileView","val","predefinedColor","definition","View","FONT_BACKGROUND_COLOR","styleAttr","normalizeColorCode","getStyle","modelAttributeValue","createAttributeElement","style","addColorTableToDropdown","dropdownView","colorTableView","panelView","replace","undefined","colorsConfig","normalizeColorOptions","localizedColors","getLocalizedColorOptions","createDropdown","map","option","isVisible","appendGrids","updateDocumentColors","updateSelectedColors","FontBackgroundColorCommand","FontBackgroundColorEditing","addStyleProcessorRules","addBackgroundRules","FontBackgroundColorUI","fontBackgroundColorIcon","FontBackgroundColor"],"mappings":"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","file":"js/chunk-vendors~a9b469e1.bcd0206d.js","sourcesContent":["/**\n * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module html-embed/inserthtmlembedcommand\n */\n\nimport { Command } from 'ckeditor5/src/core';\nimport { findOptimalInsertionPosition, checkSelectionOnObject } from 'ckeditor5/src/widget';\n\n/**\n * The insert HTML embed element command.\n *\n * The command is registered by {@link module:html-embed/htmlembedediting~HtmlEmbedEditing} as `'insertHtmlEmbed'`.\n *\n * To insert the HTML embed element at the current selection, execute the command:\n *\n *\t\teditor.execute( 'insertHtmlEmbed' );\n *\n * @extends module:core/command~Command\n */\nexport default class InsertHtmlEmbedCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\trefresh() {\n\t\tthis.isEnabled = isHtmlEmbedAllowed( this.editor.model );\n\t}\n\n\t/**\n\t * Executes the command, which creates and inserts a new HTML embed element.\n\t *\n\t * @fires execute\n\t */\n\texecute() {\n\t\tconst model = this.editor.model;\n\n\t\tmodel.change( writer => {\n\t\t\tconst rawHtmlElement = writer.createElement( 'rawHtml' );\n\n\t\t\tmodel.insertContent( rawHtmlElement );\n\t\t\twriter.setSelection( rawHtmlElement, 'on' );\n\t\t} );\n\t}\n}\n\n// Checks if the `htmlEmbed` element can be inserted at the current model selection.\n//\n// @param {module:engine/model/model~Model} model\n// @returns {Boolean}\nfunction isHtmlEmbedAllowed( model ) {\n\tconst schema = model.schema;\n\tconst selection = model.document.selection;\n\n\treturn isHtmlEmbedAllowedInParent( selection, schema, model ) &&\n\t\t!checkSelectionOnObject( selection, schema );\n}\n\n// Checks if an HTML embed is allowed by the schema in the optimal insertion parent.\n//\n// @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\n// @param {module:engine/model/schema~Schema} schema\n// @param {module:engine/model/model~Model} model Model instance.\n// @returns {Boolean}\nfunction isHtmlEmbedAllowedInParent( selection, schema, model ) {\n\tconst parent = getInsertPageBreakParent( selection, model );\n\n\treturn schema.checkChild( parent, 'rawHtml' );\n}\n\n// Returns a node that will be used to insert a page break with `model.insertContent` to check if a html embed element can be placed there.\n//\n// @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\n// @param {module:engine/model/model~Model} model Model instance.\n// @returns {module:engine/model/element~Element}\nfunction getInsertPageBreakParent( selection, model ) {\n\tconst insertAt = findOptimalInsertionPosition( selection, model );\n\n\tconst parent = insertAt.parent;\n\n\tif ( parent.isEmpty && !parent.is( 'element', '$root' ) ) {\n\t\treturn parent.parent;\n\t}\n\n\treturn parent;\n}\n","/**\n * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module html-embed/updatehtmlembedcommand\n */\n\nimport { Command } from 'ckeditor5/src/core';\n\n/**\n * The update HTML embed value command.\n *\n * The command is registered by {@link module:html-embed/htmlembedediting~HtmlEmbedEditing} as `'updateHtmlEmbed'`.\n *\n * To update the value of the HTML embed element at the current selection, execute the command:\n *\n *\t\teditor.execute( 'updateHtmlEmbed', 'HTML.' );\n *\n * @extends module:core/command~Command\n */\nexport default class UpdateHtmlEmbedCommand extends Command {\n\t/**\n\t * @inheritDoc\n\t */\n\trefresh() {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst rawHtmlElement = getSelectedRawHtmlModelWidget( selection );\n\n\t\tthis.isEnabled = !!rawHtmlElement;\n\t}\n\n\t/**\n\t * Executes the command, which updates the `value` attribute of the embedded HTML element:\n\t *\n\t * @fires execute\n\t * @param {String} value HTML as a string.\n\t */\n\texecute( value ) {\n\t\tconst model = this.editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst selectedRawHtmlElement = getSelectedRawHtmlModelWidget( selection );\n\n\t\tmodel.change( writer => {\n\t\t\twriter.setAttribute( 'value', value, selectedRawHtmlElement );\n\t\t} );\n\t}\n}\n\n// Returns the selected HTML embed element in the model, if any.\n//\n// @param {module:engine/model/selection~Selection} selection\n// @returns {module:engine/model/element~Element|null}\nfunction getSelectedRawHtmlModelWidget( selection ) {\n\tconst selectedElement = selection.getSelectedElement();\n\n\tif ( selectedElement && selectedElement.is( 'element', 'rawHtml' ) ) {\n\t\treturn selectedElement;\n\t}\n\n\treturn null;\n}\n","/**\n * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module html-embed/htmlembedediting\n */\n\nimport { Plugin, icons } from 'ckeditor5/src/core';\nimport { ButtonView } from 'ckeditor5/src/ui';\nimport { toWidget } from 'ckeditor5/src/widget';\nimport { logWarning, createElement } from 'ckeditor5/src/utils';\n\nimport InsertHtmlEmbedCommand from './inserthtmlembedcommand';\nimport UpdateHtmlEmbedCommand from './updatehtmlembedcommand';\n\nimport '../theme/htmlembed.css';\n\n/**\n * The HTML embed editing feature.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class HtmlEmbedEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'HtmlEmbedEditing';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor ) {\n\t\tsuper( editor );\n\n\t\teditor.config.define( 'htmlEmbed', {\n\t\t\tshowPreviews: false,\n\t\t\tsanitizeHtml: rawHtml => {\n\t\t\t\t/**\n\t\t\t\t * When using the HTML embed feature with the `htmlEmbed.showPreviews=true` option, it is strongly recommended to\n\t\t\t\t * define a sanitize function that will clean up the input HTML in order to avoid XSS vulnerability.\n\t\t\t\t *\n\t\t\t\t * For a detailed overview, check the {@glink features/html-embed HTML embed feature} documentation.\n\t\t\t\t *\n\t\t\t\t * @error html-embed-provide-sanitize-function\n\t\t\t\t */\n\t\t\t\tlogWarning( 'html-embed-provide-sanitize-function' );\n\n\t\t\t\treturn {\n\t\t\t\t\thtml: rawHtml,\n\t\t\t\t\thasChanged: false\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\n\t\tschema.register( 'rawHtml', {\n\t\t\tisObject: true,\n\t\t\tallowWhere: '$block',\n\t\t\tallowAttributes: [ 'value' ]\n\t\t} );\n\n\t\teditor.commands.add( 'updateHtmlEmbed', new UpdateHtmlEmbedCommand( editor ) );\n\t\teditor.commands.add( 'insertHtmlEmbed', new InsertHtmlEmbedCommand( editor ) );\n\n\t\tthis._setupConversion();\n\t}\n\n\t/**\n\t * Prepares converters for the feature.\n\t *\n\t * @private\n\t */\n\t_setupConversion() {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\t\tconst view = editor.editing.view;\n\n\t\tconst htmlEmbedConfig = editor.config.get( 'htmlEmbed' );\n\n\t\t// Register div.raw-html-embed as a raw content element so all of it's content will be provided\n\t\t// as a view element's custom property while data upcasting.\n\t\teditor.data.registerRawContentMatcher( {\n\t\t\tname: 'div',\n\t\t\tclasses: 'raw-html-embed'\n\t\t} );\n\n\t\teditor.conversion.for( 'upcast' ).elementToElement( {\n\t\t\tview: {\n\t\t\t\tname: 'div',\n\t\t\t\tclasses: 'raw-html-embed'\n\t\t\t},\n\t\t\tmodel: ( viewElement, { writer } ) => {\n\t\t\t\t// The div.raw-html-embed is registered as a raw content element,\n\t\t\t\t// so all it's content is available in a custom property.\n\t\t\t\treturn writer.createElement( 'rawHtml', {\n\t\t\t\t\tvalue: viewElement.getCustomProperty( '$rawContent' )\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\teditor.conversion.for( 'dataDowncast' ).elementToElement( {\n\t\t\tmodel: 'rawHtml',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\treturn writer.createRawElement( 'div', { class: 'raw-html-embed' }, function( domElement ) {\n\t\t\t\t\tdomElement.innerHTML = modelElement.getAttribute( 'value' ) || '';\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\teditor.conversion.for( 'editingDowncast' ).elementToElement( {\n\t\t\ttriggerBy: {\n\t\t\t\tattributes: [ 'value' ]\n\t\t\t},\n\t\t\tmodel: 'rawHtml',\n\t\t\tview: ( modelElement, { writer } ) => {\n\t\t\t\tlet domContentWrapper, state, props;\n\n\t\t\t\tconst viewContainer = writer.createContainerElement( 'div', {\n\t\t\t\t\tclass: 'raw-html-embed',\n\t\t\t\t\t'data-html-embed-label': t( 'HTML snippet' ),\n\t\t\t\t\tdir: editor.locale.uiLanguageDirection\n\t\t\t\t} );\n\t\t\t\t// Widget cannot be a raw element because the widget system would not be able\n\t\t\t\t// to add its UI to it. Thus, we need this wrapper.\n\t\t\t\tconst viewContentWrapper = writer.createRawElement( 'div', {\n\t\t\t\t\tclass: 'raw-html-embed__content-wrapper'\n\t\t\t\t}, function( domElement ) {\n\t\t\t\t\tdomContentWrapper = domElement;\n\n\t\t\t\t\trenderContent( { domElement, editor, state, props } );\n\n\t\t\t\t\t// Since there is a `data-cke-ignore-events` attribute set on the wrapper element in the editable mode,\n\t\t\t\t\t// the explicit `mousedown` handler on the `capture` phase is needed to move the selection onto the whole\n\t\t\t\t\t// HTML embed widget.\n\t\t\t\t\tdomContentWrapper.addEventListener( 'mousedown', () => {\n\t\t\t\t\t\tif ( state.isEditable ) {\n\t\t\t\t\t\t\tconst model = editor.model;\n\t\t\t\t\t\t\tconst selectedElement = model.document.selection.getSelectedElement();\n\n\t\t\t\t\t\t\t// Move the selection onto the whole HTML embed widget if it's currently not selected.\n\t\t\t\t\t\t\tif ( selectedElement !== modelElement ) {\n\t\t\t\t\t\t\t\tmodel.change( writer => writer.setSelection( modelElement, 'on' ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, true );\n\t\t\t\t} );\n\n\t\t\t\t// API exposed on each raw HTML embed widget so other features can control a particular widget.\n\t\t\t\tconst rawHtmlApi = {\n\t\t\t\t\tmakeEditable() {\n\t\t\t\t\t\tstate = Object.assign( {}, state, {\n\t\t\t\t\t\t\tisEditable: true\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\trenderContent( { domElement: domContentWrapper, editor, state, props } );\n\n\t\t\t\t\t\tview.change( writer => {\n\t\t\t\t\t\t\twriter.setAttribute( 'data-cke-ignore-events', 'true', viewContentWrapper );\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t// This could be potentially pulled to a separate method called focusTextarea().\n\t\t\t\t\t\tdomContentWrapper.querySelector( 'textarea' ).focus();\n\t\t\t\t\t},\n\t\t\t\t\tsave( newValue ) {\n\t\t\t\t\t\t// If the value didn't change, we just cancel. If it changed,\n\t\t\t\t\t\t// it's enough to update the model – the entire widget will be reconverted.\n\t\t\t\t\t\tif ( newValue !== state.getRawHtmlValue() ) {\n\t\t\t\t\t\t\teditor.execute( 'updateHtmlEmbed', newValue );\n\t\t\t\t\t\t\teditor.editing.view.focus();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.cancel();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tcancel() {\n\t\t\t\t\t\tstate = Object.assign( {}, state, {\n\t\t\t\t\t\t\tisEditable: false\n\t\t\t\t\t\t} );\n\n\t\t\t\t\t\trenderContent( { domElement: domContentWrapper, editor, state, props } );\n\t\t\t\t\t\teditor.editing.view.focus();\n\n\t\t\t\t\t\tview.change( writer => {\n\t\t\t\t\t\t\twriter.removeAttribute( 'data-cke-ignore-events', viewContentWrapper );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tstate = {\n\t\t\t\t\tshowPreviews: htmlEmbedConfig.showPreviews,\n\t\t\t\t\tisEditable: false,\n\t\t\t\t\tgetRawHtmlValue: () => modelElement.getAttribute( 'value' ) || ''\n\t\t\t\t};\n\n\t\t\t\tprops = {\n\t\t\t\t\tsanitizeHtml: htmlEmbedConfig.sanitizeHtml,\n\t\t\t\t\ttextareaPlaceholder: t( 'Paste raw HTML here...' ),\n\n\t\t\t\t\tonEditClick() {\n\t\t\t\t\t\trawHtmlApi.makeEditable();\n\t\t\t\t\t},\n\t\t\t\t\tonSaveClick( newValue ) {\n\t\t\t\t\t\trawHtmlApi.save( newValue );\n\t\t\t\t\t},\n\t\t\t\t\tonCancelClick() {\n\t\t\t\t\t\trawHtmlApi.cancel();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\twriter.insert( writer.createPositionAt( viewContainer, 0 ), viewContentWrapper );\n\n\t\t\t\twriter.setCustomProperty( 'rawHtmlApi', rawHtmlApi, viewContainer );\n\t\t\t\twriter.setCustomProperty( 'rawHtml', true, viewContainer );\n\n\t\t\t\treturn toWidget( viewContainer, writer, {\n\t\t\t\t\twidgetLabel: t( 'HTML snippet' ),\n\t\t\t\t\thasSelectionHandle: true\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\tfunction renderContent( { domElement, editor, state, props } ) {\n\t\t\t// Remove all children;\n\t\t\tdomElement.textContent = '';\n\n\t\t\tconst domDocument = domElement.ownerDocument;\n\t\t\tlet domTextarea;\n\n\t\t\tif ( state.isEditable ) {\n\t\t\t\tconst textareaProps = {\n\t\t\t\t\tisDisabled: false,\n\t\t\t\t\tplaceholder: props.textareaPlaceholder\n\t\t\t\t};\n\n\t\t\t\tdomTextarea = createDomTextarea( { domDocument, state, props: textareaProps } );\n\n\t\t\t\tdomElement.append( domTextarea );\n\t\t\t} else if ( state.showPreviews ) {\n\t\t\t\tconst previewContainerProps = {\n\t\t\t\t\tsanitizeHtml: props.sanitizeHtml\n\t\t\t\t};\n\n\t\t\t\tdomElement.append( createPreviewContainer( { domDocument, state, props: previewContainerProps, editor } ) );\n\t\t\t} else {\n\t\t\t\tconst textareaProps = {\n\t\t\t\t\tisDisabled: true,\n\t\t\t\t\tplaceholder: props.textareaPlaceholder\n\t\t\t\t};\n\n\t\t\t\tdomElement.append( createDomTextarea( { domDocument, state, props: textareaProps } ) );\n\t\t\t}\n\n\t\t\tconst buttonsWrapperProps = {\n\t\t\t\tonEditClick: props.onEditClick,\n\t\t\t\tonSaveClick: () => {\n\t\t\t\t\tprops.onSaveClick( domTextarea.value );\n\t\t\t\t},\n\t\t\t\tonCancelClick: props.onCancelClick\n\t\t\t};\n\t\t\tdomElement.prepend( createDomButtonsWrapper( { editor, domDocument, state, props: buttonsWrapperProps } ) );\n\t\t}\n\n\t\tfunction createDomButtonsWrapper( { editor, domDocument, state, props } ) {\n\t\t\tconst domButtonsWrapper = createElement( domDocument, 'div', {\n\t\t\t\tclass: 'raw-html-embed__buttons-wrapper'\n\t\t\t} );\n\t\t\t// TODO these should be cached and we should only clone here these cached nodes!\n\t\t\tconst domEditButton = createDomButton( editor, 'edit' );\n\t\t\tconst domSaveButton = createDomButton( editor, 'save' );\n\t\t\tconst domCancelButton = createDomButton( editor, 'cancel' );\n\n\t\t\tif ( state.isEditable ) {\n\t\t\t\tconst clonedDomSaveButton = domSaveButton.cloneNode( true );\n\t\t\t\tconst clonedDomCancelButton = domCancelButton.cloneNode( true );\n\n\t\t\t\tclonedDomSaveButton.addEventListener( 'click', evt => {\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tprops.onSaveClick( );\n\t\t\t\t} );\n\n\t\t\t\tclonedDomCancelButton.addEventListener( 'click', evt => {\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tprops.onCancelClick( );\n\t\t\t\t} );\n\n\t\t\t\tdomButtonsWrapper.appendChild( clonedDomSaveButton );\n\t\t\t\tdomButtonsWrapper.appendChild( clonedDomCancelButton );\n\t\t\t} else {\n\t\t\t\tconst clonedDomEditButton = domEditButton.cloneNode( true );\n\n\t\t\t\tclonedDomEditButton.addEventListener( 'click', evt => {\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tprops.onEditClick();\n\t\t\t\t} );\n\n\t\t\t\tdomButtonsWrapper.appendChild( clonedDomEditButton );\n\t\t\t}\n\n\t\t\treturn domButtonsWrapper;\n\t\t}\n\n\t\tfunction createDomTextarea( { domDocument, state, props } ) {\n\t\t\tconst domTextarea = createElement( domDocument, 'textarea', {\n\t\t\t\tplaceholder: props.placeholder,\n\t\t\t\tclass: 'ck ck-reset ck-input ck-input-text raw-html-embed__source'\n\t\t\t} );\n\n\t\t\tdomTextarea.disabled = props.isDisabled;\n\t\t\tdomTextarea.value = state.getRawHtmlValue();\n\n\t\t\treturn domTextarea;\n\t\t}\n\n\t\tfunction createPreviewContainer( { domDocument, state, props, editor } ) {\n\t\t\tconst sanitizedOutput = props.sanitizeHtml( state.getRawHtmlValue() );\n\t\t\tconst placeholderText = state.getRawHtmlValue().length > 0 ?\n\t\t\t\tt( 'No preview available' ) :\n\t\t\t\tt( 'Empty snippet content' );\n\n\t\t\tconst domPreviewPlaceholder = createElement( domDocument, 'div', {\n\t\t\t\tclass: 'ck ck-reset_all raw-html-embed__preview-placeholder'\n\t\t\t}, placeholderText );\n\n\t\t\tconst domPreviewContent = createElement( domDocument, 'div', {\n\t\t\t\tclass: 'raw-html-embed__preview-content',\n\t\t\t\tdir: editor.locale.contentLanguageDirection\n\t\t\t} );\n\n\t\t\tdomPreviewContent.innerHTML = sanitizedOutput.html;\n\n\t\t\tconst domPreviewContainer = createElement( domDocument, 'div', {\n\t\t\t\tclass: 'raw-html-embed__preview'\n\t\t\t}, [\n\t\t\t\tdomPreviewPlaceholder, domPreviewContent\n\t\t\t] );\n\n\t\t\treturn domPreviewContainer;\n\t\t}\n\t}\n}\n\n// Returns a toggle mode button DOM element that can be cloned and used in conversion.\n//\n// @param {module:utils/locale~Locale} locale Editor locale.\n// @param {'edit'|'save'|'cancel'} type Type of button to create.\n// @returns {HTMLElement}\nfunction createDomButton( editor, type ) {\n\tconst t = editor.locale.t;\n\tconst buttonView = new ButtonView( editor.locale );\n\tconst command = editor.commands.get( 'updateHtmlEmbed' );\n\n\tbuttonView.set( {\n\t\ttooltipPosition: editor.locale.uiLanguageDirection === 'rtl' ? 'e' : 'w',\n\t\ticon: icons.pencil,\n\t\ttooltip: true\n\t} );\n\n\tbuttonView.render();\n\n\tif ( type === 'edit' ) {\n\t\tbuttonView.set( {\n\t\t\ticon: icons.pencil,\n\t\t\tlabel: t( 'Edit source' ),\n\t\t\tclass: 'raw-html-embed__edit-button'\n\t\t} );\n\t} else if ( type === 'save' ) {\n\t\tbuttonView.set( {\n\t\t\ticon: icons.check,\n\t\t\tlabel: t( 'Save changes' ),\n\t\t\tclass: 'raw-html-embed__save-button'\n\t\t} );\n\t\tbuttonView.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\t} else {\n\t\tbuttonView.set( {\n\t\t\ticon: icons.cancel,\n\t\t\tlabel: t( 'Cancel' ),\n\t\t\tclass: 'raw-html-embed__cancel-button'\n\t\t} );\n\t}\n\n\tbuttonView.destroy();\n\n\treturn buttonView.element.cloneNode( true );\n}\n","/**\n * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module html-embed/htmlembedui\n */\n\nimport { Plugin } from 'ckeditor5/src/core';\nimport { ButtonView } from 'ckeditor5/src/ui';\n\nimport htmlEmbedIcon from '../theme/icons/html.svg';\n\n/**\n * The HTML embed UI plugin.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class HtmlEmbedUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'HtmlEmbedUI';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit() {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\n\t\t// Add the `htmlEmbed` button to feature components.\n\t\teditor.ui.componentFactory.add( 'htmlEmbed', locale => {\n\t\t\tconst command = editor.commands.get( 'insertHtmlEmbed' );\n\t\t\tconst view = new ButtonView( locale );\n\n\t\t\tview.set( {\n\t\t\t\tlabel: t( 'Insert HTML' ),\n\t\t\t\ticon: htmlEmbedIcon,\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\tview.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\n\t\t\t// Execute the command.\n\t\t\tthis.listenTo( view, 'execute', () => {\n\t\t\t\teditor.execute( 'insertHtmlEmbed' );\n\t\t\t\teditor.editing.view.focus();\n\n\t\t\t\tconst widgetWrapper = editor.editing.view.document.selection.getSelectedElement();\n\n\t\t\t\twidgetWrapper.getCustomProperty( 'rawHtmlApi' ).makeEditable();\n\t\t\t} );\n\n\t\t\treturn view;\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module html-embed/htmlembed\n */\n\nimport { Plugin } from 'ckeditor5/src/core';\nimport { Widget } from 'ckeditor5/src/widget';\n\nimport HtmlEmbedEditing from './htmlembedediting';\nimport HtmlEmbedUI from './htmlembedui';\n\n/**\n * The HTML embed feature.\n *\n * It allows inserting HTML snippets directly into the editor.\n *\n * For a detailed overview, check the {@glink features/html-embed HTML embed feature} documentation.\n *\n * @extends module:core/plugin~Plugin\n */\nexport default class HtmlEmbed extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get requires() {\n\t\treturn [ HtmlEmbedEditing, HtmlEmbedUI, Widget ];\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tstatic get pluginName() {\n\t\treturn 'HtmlEmbed';\n\t}\n}\n\n/**\n * The configuration of the HTML embed feature.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n * \t\t\t\thtmlEmbed: ... // HTML embed feature options.\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n *\n * @interface HtmlEmbedConfig\n */\n\n/**\n * Whether the feature should render previews of the embedded HTML.\n *\n * When set to `true`, the feature will produce a preview of the inserted HTML based on a sanitized\n * version of the HTML provided by the user.\n *\n * The function responsible for sanitizing the HTML needs to be specified in\n * {@link module:html-embed/htmlembed~HtmlEmbedConfig#sanitizeHtml `config.htmlEmbed.sanitizeHtml()`}.\n *\n * Read more about the security aspect of this feature in the {@glink features/html-embed#security \"Security\"} section of\n * the {@glink features/html-embed HTML embed} feature guide.\n *\n * @member {Boolean} [module:html-embed/htmlembed~HtmlEmbedConfig#showPreviews=false]\n */\n\n/**\n * Callback used to sanitize the HTML provided by the user when generating previews of it in the editor.\n *\n * We strongly recommend overwriting the default function to avoid XSS vulnerabilities.\n *\n * Read more about the security aspect of this feature in the {@glink features/html-embed#security \"Security\"} section of\n * the {@glink features/html-embed HTML embed} feature guide.\n *\n * The function receives the input HTML (as a string), and should return an object\n * that matches the {@link module:html-embed/htmlembed~HtmlEmbedSanitizeOutput} interface.\n *\n * \tClassicEditor\n * \t\t\t.create( editorElement, {\n * \t\t\t\thtmlEmbed: {\n * \t\t\t\t\tshowPreviews: true,\n * \t\t\t\t\tsanitizeHtml( inputHtml ) {\n * \t\t\t\t\t\t// Strip unsafe elements and attributes, e.g.:\n * \t\t\t\t\t\t// the `