From cd57715381ece45508e61200e629e14e659df666 Mon Sep 17 00:00:00 2001 From: Robert Baruck Date: Mon, 2 Mar 2026 19:57:23 +0100 Subject: [PATCH 1/8] REFACTOR: Add config options; TypeScript; Use CkEditor API for toolbar entries; Latest Neos9 compatibility --- Resources/Private/JavaScript/CkStyles/.nvmrc | 2 +- Resources/Private/JavaScript/CkStyles/TODO.md | 9 + .../Private/JavaScript/CkStyles/build.js | 32 + .../Private/JavaScript/CkStyles/empty.css | 0 .../Private/JavaScript/CkStyles/global.d.ts | 1 + .../Private/JavaScript/CkStyles/package.json | 15 +- .../CkStyles/src/BlockStyleCommand.js | 95 - .../CkStyles/src/BlockStyleCommand.ts | 78 + .../CkStyles/src/BlockStyleEditing.js | 52 - .../CkStyles/src/BlockStyleEditing.ts | 130 + .../CkStyles/src/InlineStylesCommand.js | 107 - .../CkStyles/src/InlineStylesCommand.ts | 128 + .../CkStyles/src/InlineStylesEditing.js | 52 - .../CkStyles/src/InlineStylesEditing.ts | 130 + .../JavaScript/CkStyles/src/PresetType.js | 22 - .../src/components/BlockStyleSelector.js | 61 - .../src/components/InlineStyleSelector.js | 61 - .../JavaScript/CkStyles/src/configuration.ts | 39 + .../Private/JavaScript/CkStyles/src/index.js | 1 - .../Private/JavaScript/CkStyles/src/index.ts | 1 + .../JavaScript/CkStyles/src/manifest.js | 77 - .../JavaScript/CkStyles/src/manifest.ts | 97 + .../Private/JavaScript/CkStyles/src/yarn.lock | 6434 ----------------- .../Private/JavaScript/CkStyles/tsconfig.json | 40 + 24 files changed, 695 insertions(+), 6969 deletions(-) create mode 100644 Resources/Private/JavaScript/CkStyles/TODO.md create mode 100644 Resources/Private/JavaScript/CkStyles/build.js create mode 100644 Resources/Private/JavaScript/CkStyles/empty.css create mode 100644 Resources/Private/JavaScript/CkStyles/global.d.ts delete mode 100644 Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.js create mode 100644 Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts delete mode 100644 Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.js create mode 100644 Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts delete mode 100644 Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.js create mode 100644 Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.ts delete mode 100644 Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.js create mode 100644 Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts delete mode 100644 Resources/Private/JavaScript/CkStyles/src/PresetType.js delete mode 100644 Resources/Private/JavaScript/CkStyles/src/components/BlockStyleSelector.js delete mode 100644 Resources/Private/JavaScript/CkStyles/src/components/InlineStyleSelector.js create mode 100644 Resources/Private/JavaScript/CkStyles/src/configuration.ts delete mode 100644 Resources/Private/JavaScript/CkStyles/src/index.js create mode 100644 Resources/Private/JavaScript/CkStyles/src/index.ts delete mode 100644 Resources/Private/JavaScript/CkStyles/src/manifest.js create mode 100644 Resources/Private/JavaScript/CkStyles/src/manifest.ts delete mode 100644 Resources/Private/JavaScript/CkStyles/src/yarn.lock create mode 100644 Resources/Private/JavaScript/CkStyles/tsconfig.json diff --git a/Resources/Private/JavaScript/CkStyles/.nvmrc b/Resources/Private/JavaScript/CkStyles/.nvmrc index 9ddeeba..a4a7a41 100644 --- a/Resources/Private/JavaScript/CkStyles/.nvmrc +++ b/Resources/Private/JavaScript/CkStyles/.nvmrc @@ -1 +1 @@ -14.19.1 +v24.14.0 diff --git a/Resources/Private/JavaScript/CkStyles/TODO.md b/Resources/Private/JavaScript/CkStyles/TODO.md new file mode 100644 index 0000000..d0e666e --- /dev/null +++ b/Resources/Private/JavaScript/CkStyles/TODO.md @@ -0,0 +1,9 @@ +# TODO + +- Enable translation + - see https://codeberg.org/PackageFactory/PackageFactory.CkInlineImages/src/branch/main + - and https://github.com/techdivision/ckstyles/pull/41 +- Understand and Check Command.isEnabled logic (https://github.com/techdivision/ckstyles/pull/44/changes) +- Update Readme +- Fix in-code TODOs +- Think about duplication of information and logic diff --git a/Resources/Private/JavaScript/CkStyles/build.js b/Resources/Private/JavaScript/CkStyles/build.js new file mode 100644 index 0000000..7f61b4e --- /dev/null +++ b/Resources/Private/JavaScript/CkStyles/build.js @@ -0,0 +1,32 @@ +const esbuild = require('esbuild'); +const extensibilityMap = require("@neos-project/neos-ui-extensibility/extensibilityMap.json"); +const isWatch = process.argv.includes('--watch'); + +/** @type {import("esbuild").BuildOptions} */ +const options = { + logLevel: "info", + bundle: true, + minify: !isWatch, + sourcemap: "linked", + legalComments: "linked", + target: "es2020", + entryPoints: { + "Plugin": "./src/index.ts", + }, + outdir: "../../../../../Neos.NeosIo/Packages/Plugins/TechDivision.CkStyles/Resources/Public/JavaScript/CkStyles/", + alias: { + "@ckeditor/ckeditor5-ui/theme/components/form/form.css": "./empty.css", + "@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css": "./empty.css", + ...extensibilityMap + }, + loader: { + '.svg': 'text', + '.css': 'empty' + } +} + +if (isWatch) { + esbuild.context(options).then((ctx) => ctx.watch()) +} else { + esbuild.build(options) +} diff --git a/Resources/Private/JavaScript/CkStyles/empty.css b/Resources/Private/JavaScript/CkStyles/empty.css new file mode 100644 index 0000000..e69de29 diff --git a/Resources/Private/JavaScript/CkStyles/global.d.ts b/Resources/Private/JavaScript/CkStyles/global.d.ts new file mode 100644 index 0000000..1c1d740 --- /dev/null +++ b/Resources/Private/JavaScript/CkStyles/global.d.ts @@ -0,0 +1 @@ +declare module '@neos-project/neos-ui-extensibility'; diff --git a/Resources/Private/JavaScript/CkStyles/package.json b/Resources/Private/JavaScript/CkStyles/package.json index 1c137a8..45140ea 100644 --- a/Resources/Private/JavaScript/CkStyles/package.json +++ b/Resources/Private/JavaScript/CkStyles/package.json @@ -3,13 +3,16 @@ "license": "GNU GPLv3", "private": true, "scripts": { - "build": "neos-react-scripts build", - "watch": "neos-react-scripts watch" + "build": "node build.js" }, - "devDependencies": { - "@neos-project/neos-ui-extensibility-webpack-adapter": "^8.3.0" + "dependencies": { + "@ckeditor/ckeditor5-core": "47.2.0", + "@ckeditor/ckeditor5-ui": "47.2.0", + "@ckeditor/ckeditor5-utils": "47.2.0", + "@neos-project/neos-ui-extensibility": "^9.1.4" }, - "neos": { - "buildTargetDirectory": "../../../Public/JavaScript/CkStyles" + "devDependencies": { + "esbuild": "^0.27.3", + "typescript": "^5.9.3" } } diff --git a/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.js b/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.js deleted file mode 100644 index 0df80b9..0000000 --- a/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.js +++ /dev/null @@ -1,95 +0,0 @@ -// Originally taken from https://raw.githubusercontent.com/ckeditor/ckeditor5/master/packages/ckeditor5-basic-styles/src/attributecommand.js and adjusted -import {Command} from 'ckeditor5-exports'; - -/** - * Set a key-value block style; e.g. "fontColor=red". - */ - -export default class BlockStyleCommand extends Command { - /** - * @param {module:core/editor/editor~Editor} editor - * @param {String} attributeKey Attribute that will be set by the command. - */ - constructor(editor, attributeKey) { - super(editor); - - /** - * The attribute that will be set by the command. - * - * @readonly - * @member {String} - */ - this.attributeKey = attributeKey; - - /** - * Flag indicating whether the command is active. The command is active when the - * {@link module:engine/model/selection~Selection#hasAttribute selection has the attribute} which means that: - * - * @observable - * @readonly - * @member {Boolean} #value - */ - } - - /** - * Updates the command's {@link #value} and {@link #isEnabled}. - */ - refresh() { - const model = this.editor.model; - const doc = model.document; - const blocksToChange = Array.from(doc.selection.getSelectedBlocks()); - - this.value = this._getValueFromBlockNode(); - for (const block of blocksToChange) { - if (model.schema.checkAttribute(block, this.attributeKey)) { - this.isEnabled = true; - } - } - } - - /** - * Executes the command — sets the attribute to the desired value. If there is no desired valued, removes the - * attribute on each block. - * - * @fires execute - * @param {Object} [options] Command options. - * @param {String} [options.value] The value to be set; if null or not existing, the attribute will be removed. - */ - execute(options = {}) { - const model = this.editor.model; - const doc = model.document; - const selection = doc.selection; - const value = options.value; - const blocksToChange = Array.from(selection.getSelectedBlocks()); - model.change(writer => { - for (const block of blocksToChange) { - if (value) { - writer.setAttribute(this.attributeKey, value, block); - } else { - writer.removeAttribute(this.attributeKey, block); - } - } - }); - } - - /** - * Checks the attribute value of the parent block node(s) - * - * @private - * @returns {String} The attribute value. - */ - _getValueFromBlockNode() { - const model = this.editor.model; - const schema = model.schema; - const selection = model.document.selection; - const blocks = Array.from(selection.getSelectedBlocks()); - - for (const block of blocks) { - if (schema.checkAttribute(block, this.attributeKey)) { - return block.getAttribute(this.attributeKey); - } - } - - return undefined; - } -} diff --git a/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts b/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts new file mode 100644 index 0000000..44fa2d4 --- /dev/null +++ b/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts @@ -0,0 +1,78 @@ +// Originally taken from https://raw.githubusercontent.com/ckeditor/ckeditor5/master/packages/ckeditor5-basic-styles/src/attributecommand.js and adjusted +import {Command, type Editor} from '@ckeditor/ckeditor5-core'; +import {first} from '@ckeditor/ckeditor5-utils'; + +/** + * Set a key-value block style; e.g. "fontColor=red". + */ +export default class BlockStyleCommand extends Command { + declare public value: string[]; + + /** + * The attribute that will be set by the command. + * @observable + * @readonly + */ + public readonly attributeKey: string; + + /** + * @param {module:core/editor/editor~Editor} editor + * @param {String} attributeKey Attribute that will be set by the command. + */ + constructor(editor: Editor, attributeKey: string) { + super(editor); + + this.attributeKey = attributeKey; + this.value = []; + } + + /** + * Updates the command's {@link #value} and {@link #isEnabled}. + */ + public override refresh(): void { + const model = this.editor.model; + const doc = model.document; + const schema = model.schema; + const blocks = Array.from(doc.selection.getSelectedBlocks()); + + const values: string[] = []; + for (const block of blocks) { + if (schema.checkAttribute(block, this.attributeKey)) { + const value = block.getAttribute(this.attributeKey); + if (typeof value === 'string' && !values.includes(value) && value !== '') { + values.push(value); + } + } + } + + this.value = values; + this.isEnabled = !!blocks; + } + + /** + * Executes the command — sets the attribute to the desired value. If there is no desired valued, removes the + * attribute on each block. + * + * @fires execute + * @param {Object} [options] Command options. + * @param {String} [options.value] The value to be set; if null or not existing, the attribute will be removed. + */ + execute(options: { value?: any } = {}) { + const model = this.editor.model; + const doc = model.document; + const selection = doc.selection; + + const value = options.value; + const blocksToChange = selection.getSelectedBlocks(); + + model.change(writer => { + for (const block of blocksToChange) { + if (value) { + writer.setAttribute(this.attributeKey, value, block); + } else { + writer.removeAttribute(this.attributeKey, block); + } + } + }); + } +} diff --git a/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.js b/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.js deleted file mode 100644 index bc45675..0000000 --- a/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.js +++ /dev/null @@ -1,52 +0,0 @@ -import {Plugin, Paragraph} from 'ckeditor5-exports'; -import BlockStyleCommand from "./BlockStyleCommand"; - -/** - * FACTORY FUNCTION for the plugin - * needs the current preset configuration as parameter. - */ -export default (presetIdentifier, presetConfiguration) => - class BlockStyleEditing extends Plugin { - init() { - const schema = this.editor.model.schema; - const modelAttributeKey = `blockStyles-${presetIdentifier}`; - const optionIdentifiers = Object.keys(presetConfiguration.options); - - schema.extend( - '$block', - {allowAttributes: modelAttributeKey} - ); - - // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html - schema.setAttributeProperties( - modelAttributeKey, - {isFormatting: true} - ); - - // Model configuration - const config = { - model: { - key: modelAttributeKey, - values: optionIdentifiers, - }, - view: {} - }; - - // View configuration - optionIdentifiers.forEach(optionIdentifier => { - const options = presetConfiguration.options[optionIdentifier]; - const attribute = options.attribute || 'class'; - const attributeValues = (attribute === options.attribute) ? options.attributeValue : (options.cssClass).split(' '); - - config.view[optionIdentifier] = { - key: attribute, - value: attributeValues - } - }); - - // Convert the model to view correctly - this.editor.conversion.attributeToAttribute(config); - - this.editor.commands.add(`blockStyles:${presetIdentifier}`, new BlockStyleCommand(this.editor, modelAttributeKey)); - } - }; diff --git a/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts b/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts new file mode 100644 index 0000000..db97f9b --- /dev/null +++ b/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts @@ -0,0 +1,130 @@ +import {Plugin, PluginConstructor} from '@ckeditor/ckeditor5-core'; +import BlockStyleCommand from "./BlockStyleCommand"; +import { + addListToDropdown, + ButtonExecuteEvent, + createDropdown, + ListDropdownItemDefinition, + UIModel +} from "@ckeditor/ckeditor5-ui"; +import {Collection} from "@ckeditor/ckeditor5-utils"; +import { + CK_STYLES_BLOCK_STYLES_IDENTIFIER, + CkStylesPresetConfiguration, + CkStylesPresetIdentifier, + TECHDIVISION_CKSTYLES__NAME_SPACE +} from "./configuration"; + +/** + * FACTORY FUNCTION for the plugin + * needs the current preset configuration as parameter. + */ +export function createBlockStyleEditingPlugin(presetIdentifier: CkStylesPresetIdentifier, presetConfiguration: CkStylesPresetConfiguration): PluginConstructor { + return class BlockStyleEditing extends Plugin { + + public static get pluginName() { + return `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_BLOCK_STYLES_IDENTIFIER}:${presetIdentifier}`; + } + + init() { + const schema = this.editor.model.schema; + const optionIdentifiers = Object.keys(presetConfiguration.options); + const modelAttributeKey = `blockStyles-${presetIdentifier}`; + + schema.extend( + '$block', + {allowAttributes: modelAttributeKey} + ); + + // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html + schema.setAttributeProperties( + modelAttributeKey, + {isFormatting: true} + ); + + // Register model-view conversion + this.editor.conversion.attributeToAttribute({ + model: { + key: modelAttributeKey, + values: optionIdentifiers, + }, + view: optionIdentifiers.reduce((viewConfig: Record, optionIdentifier) => { + const options = presetConfiguration.options[optionIdentifier]!; + + if ('attribute' in options) { + viewConfig[optionIdentifier] = { + key: 'attribute', + value: options.attributeValue, + } + } else if ('cssClass' in options) { + viewConfig[optionIdentifier] = { + key: 'class', + value: options.cssClass, + } + } else { + throw new Error(`Invalid configuration for option ${optionIdentifier} in preset ${presetIdentifier}: either "attribute" and "attributeValue" or "cssClass" must be set.`); + } + + return viewConfig; + }, {}) + }); + + // Register command + const commandId = `blockStyles:${presetIdentifier}` + this.editor.commands.add(commandId, new BlockStyleCommand(this.editor, modelAttributeKey)); + + // Register dropdown in the UI + this.editor.ui.componentFactory.add( + `${commandId}_dropdown`, + (locale) => { + const dropdownView = createDropdown(locale); + const command = this.editor.commands.get(commandId) as BlockStyleCommand; + + if (!command) { + console.error(`Command ${commandId} not found for dropdown ${commandId}_dropdown`); + return dropdownView; + } + + dropdownView.buttonView.set({ + label: presetConfiguration.label, + withText: presetConfiguration.showLabel ?? true, + tooltip: true, + icon: presetConfiguration.icon ?? undefined, + }); + + dropdownView.bind('isEnabled').to(command, 'isEnabled', isEnabled => isEnabled); + + const itemCollection = new Collection(); + + Object.keys(presetConfiguration.options).forEach(optionIdentifier => { + const option = presetConfiguration.options[optionIdentifier]!; + const itemDefinition: ListDropdownItemDefinition = { + type: 'button', + model: new UIModel({ + commandValue: optionIdentifier, + label: option.label, + icon: option.icon ?? undefined, + withText: option.showLabel ?? true, + toggleable: true, + }) + }; + + itemDefinition.model.bind('isOn').to(command, 'value', (value) => value.includes(optionIdentifier)); + + itemCollection.add(itemDefinition); + }); + + addListToDropdown(dropdownView, itemCollection); + + // register execute event for dropdown + this.listenTo(dropdownView, 'execute', evt => { + const {commandValue} = evt.source as any; + this.editor.execute(commandId, {value: commandValue}); + this.editor.editing.view.focus(); + }); + + return dropdownView; + }); + } + } +} diff --git a/Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.js b/Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.js deleted file mode 100644 index 9775174..0000000 --- a/Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.js +++ /dev/null @@ -1,107 +0,0 @@ -// Originally taken from https://raw.githubusercontent.com/ckeditor/ckeditor5/master/packages/ckeditor5-basic-styles/src/attributecommand.js and adjusted -import {Command} from 'ckeditor5-exports'; - -/** - * Set a key-value inline style; e.g. "fontColor=red". - * - */ -export default class InlineStylesCommand extends Command { - /** - * @param {module:core/editor/editor~Editor} editor - * @param {String} attributeKey Attribute that will be set by the command. - */ - constructor(editor, attributeKey) { - super(editor); - - /** - * The attribute that will be set by the command. - * - * @readonly - * @member {String} - */ - this.attributeKey = attributeKey; - - /** - * Flag indicating whether the command is active. The command is active when the - * {@link module:engine/model/selection~Selection#hasAttribute selection has the attribute} which means that: - ** - * @observable - * @readonly - * @member {Boolean} #value - */ - } - - /** - * Updates the command's {@link #value} and {@link #isEnabled} based on the current selection. - */ - refresh() { - const model = this.editor.model; - const doc = model.document; - - this.value = this._getValueFromFirstAllowedNode(); - this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, this.attributeKey); - } - - /** - * Executes the command — sets the attribute to the desired value. If there is no desired valued, removes the - * attribute. - * - * @fires execute - * @param {Object} [options] Command options. - * @param {String} [options.value] The value to be set; if null or not existing, the attribute will be removed. - */ - execute(options = {}) { - const model = this.editor.model; - const doc = model.document; - const selection = doc.selection; - const value = options.value; - - model.change(writer => { - if (selection.isCollapsed) { - if (value) { - // value is existing, we want to set the selection attribute to the value. - writer.setSelectionAttribute(this.attributeKey, value); - } else { - writer.removeSelectionAttribute(this.attributeKey); - } - } else { - const ranges = model.schema.getValidRanges(selection.getRanges(), this.attributeKey); - - for (const range of ranges) { - if (value) { - writer.setAttribute(this.attributeKey, value, range); - } else { - writer.removeAttribute(this.attributeKey, range); - } - } - } - }); - } - - /** - * Checks the attribute value of the first node in the selection that allows the attribute. - * For the collapsed selection returns the selection attribute. - * - * @private - * @returns {String} The attribute value. - */ - _getValueFromFirstAllowedNode() { - const model = this.editor.model; - const schema = model.schema; - const selection = model.document.selection; - - if (selection.isCollapsed) { - return selection.getAttribute(this.attributeKey); - } - - for (const range of selection.getRanges()) { - for (const item of range.getItems()) { - if (schema.checkAttribute(item, this.attributeKey)) { - return item.getAttribute(this.attributeKey); - } - } - } - - return undefined; - } -} diff --git a/Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.ts b/Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.ts new file mode 100644 index 0000000..9ae9446 --- /dev/null +++ b/Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.ts @@ -0,0 +1,128 @@ +// Originally taken from https://raw.githubusercontent.com/ckeditor/ckeditor5/master/packages/ckeditor5-basic-styles/src/attributecommand.js and adjusted +import {Command, type Editor} from '@ckeditor/ckeditor5-core'; + +/** + * Set a key-value inline style; e.g. "fontColor=red". + */ +export default class InlineStylesCommand extends Command { + /** + * Flag indicating whether the command is active. The command is active when the + * {@link module:engine/model/selection~ModelSelection#hasAttribute selection has the attribute} which means that: + * + * * If the selection is not empty – That the attribute is set on the first node in the selection that allows this attribute. + * * If the selection is empty – That the selection has the attribute itself (which means that newly typed + * text will have this attribute, too). + * + * @observable + * @readonly + */ + declare public value: string | undefined; + + /** + * The attribute that will be set by the command. + */ + public readonly attributeKey: string; + + /** + * @param {module:core/editor/editor~Editor} editor + * @param attributeKey Attribute that will be set by the command. + */ + constructor(editor: Editor, attributeKey: string) { + super(editor); + + this.attributeKey = attributeKey; + this.value = undefined; + } + + /** + * Updates the command's {@link #value} and {@link #isEnabled} based on the current selection. + */ + public override refresh(): void { + const model = this.editor.model; + const doc = model.document; + + const value = this._getValueFromFirstAllowedNode(); + + if (typeof value === 'string') { + this.value = value; + } else { + this.value = undefined; + } + + this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, this.attributeKey); + } + + /** + * Executes the command – applies the attribute to the selection or removes it from the selection. + * + * If the command is active (`value == true`), it will remove attributes. Otherwise, it will set attributes. + * + * The execution result differs, depending on the {@link module:engine/model/document~ModelDocument#selection}: + * + * * If the selection is on a range, the command applies the attribute to all nodes in that range + * (if they are allowed to have this attribute by the {@link module:engine/model/schema~ModelSchema schema}). + * * If the selection is collapsed in a non-empty node, the command applies the attribute to the + * {@link module:engine/model/document~ModelDocument#selection} itself (note that typed characters copy attributes from the selection). + * * If the selection is collapsed in an empty node, the command applies the attribute to the parent node of the selection (note + * that the selection inherits all attributes from a node if it is in an empty node). + * + * @fires execute + * @param options Command options. + * @param options.forceValue If set, it will force the command behavior. If `true`, + * the command will apply the attribute, otherwise the command will remove the attribute. + * If not set, the command will look for its current value to decide what it should do. + */ + public override execute(options: { value: any }): void { + const model = this.editor.model; + const doc = model.document; + const selection = doc.selection; + const value = options.value; + + model.change(writer => { + if (selection.isCollapsed) { + if (value) { + // value is existing, we want to set the selection attribute to the value. + writer.setSelectionAttribute(this.attributeKey, value); + } else { + writer.removeSelectionAttribute(this.attributeKey); + } + } else { + const ranges = model.schema.getValidRanges(selection.getRanges(), this.attributeKey); + + for (const range of ranges) { + if (value) { + writer.setAttribute(this.attributeKey, value, range); + } else { + writer.removeAttribute(this.attributeKey, range); + } + } + } + }); + } + + /** + * Checks the attribute value of the first node in the selection that allows the attribute. + * For the collapsed selection returns the selection attribute. + * + * @returns The attribute value. + */ + private _getValueFromFirstAllowedNode() { + const model = this.editor.model; + const schema = model.schema; + const selection = model.document.selection; + + if (selection.isCollapsed) { + return selection.getAttribute(this.attributeKey); + } + + for (const range of selection.getRanges()) { + for (const item of range.getItems()) { + if (schema.checkAttribute(item, this.attributeKey)) { + return item.getAttribute(this.attributeKey); + } + } + } + + return undefined; + } +} diff --git a/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.js b/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.js deleted file mode 100644 index 22dd402..0000000 --- a/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.js +++ /dev/null @@ -1,52 +0,0 @@ -import {Plugin} from 'ckeditor5-exports'; -import InlineStylesCommand from './InlineStylesCommand'; - -/** - * FACTORY FUNCTION for the plugin - * needs the current preset configuration as parameter. - */ -export default (presetIdentifier, presetConfiguration) => - class InlineStylesEditing extends Plugin { - init() { - const schema = this.editor.model.schema; - const optionIdentifiers = Object.keys(presetConfiguration.options); - const modelAttributeKey = `inlineStyles-${presetIdentifier}`; - - schema.extend( - '$text', - {allowAttributes: modelAttributeKey} - ); - - // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html - schema.setAttributeProperties( - modelAttributeKey, - {isFormatting: true} - ); - - // Model configuration - const config = { - model: { - key: modelAttributeKey, - values: optionIdentifiers - }, - view: {} - }; - - // View configuration - optionIdentifiers.forEach(optionIdentifier => { - const options = presetConfiguration.options[optionIdentifier]; - const {attribute} = options; - const classes = options.attributeValue || options.cssClass; - - config.view[optionIdentifier] = { - name: 'span', - attributes: {[attribute ? attribute : 'class']: classes} - } - }); - - // Convert the model to view correctly - this.editor.conversion.attributeToElement(config); - - this.editor.commands.add(`inlineStyles:${presetIdentifier}`, new InlineStylesCommand(this.editor, modelAttributeKey)); - } - }; diff --git a/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts b/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts new file mode 100644 index 0000000..6359e8d --- /dev/null +++ b/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts @@ -0,0 +1,130 @@ +import {Plugin, PluginConstructor} from '@ckeditor/ckeditor5-core'; +import { + addListToDropdown, + ButtonExecuteEvent, + createDropdown, + ListDropdownItemDefinition, + UIModel +} from '@ckeditor/ckeditor5-ui'; +import InlineStylesCommand from './InlineStylesCommand'; +import { + CK_STYLES_INLINE_STYLES_IDENTIFIER, + CkStylesPresetConfiguration, + CkStylesPresetIdentifier, + TECHDIVISION_CKSTYLES__NAME_SPACE +} from "./configuration"; +import {Collection} from "@ckeditor/ckeditor5-utils"; + +/** + * FACTORY FUNCTION for the plugin + * needs the current preset configuration as parameter. + */ +export function createInlineEditStylePlugin(presetIdentifier: CkStylesPresetIdentifier, presetConfiguration: CkStylesPresetConfiguration): PluginConstructor { + return class InlineStylesEditing extends Plugin { + + public static get pluginName() { + return `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_INLINE_STYLES_IDENTIFIER}:${presetIdentifier}`; + } + + public init() { + const schema = this.editor.model.schema; + const optionIdentifiers = Object.keys(presetConfiguration.options); + const modelAttributeKey = `inlineStyles-${presetIdentifier}`; + + schema.extend( + '$text', + {allowAttributes: modelAttributeKey} + ); + + // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html + schema.setAttributeProperties( + modelAttributeKey, + {isFormatting: true} + ); + + // Register model-view conversion + this.editor.conversion.attributeToElement({ + model: { + key: modelAttributeKey, + values: optionIdentifiers + }, + view: optionIdentifiers.reduce((viewConfig: Record, optionIdentifier) => { + const options = presetConfiguration.options[optionIdentifier]!; + + if ('attribute' in options) { + viewConfig[optionIdentifier] = { + name: 'span', + attributes: {[options.attribute]: options.attributeValue} + } + } else if ('cssClass' in options) { + viewConfig[optionIdentifier] = { + name: 'span', + classes: options.cssClass, + } + } else { + console.error(`Invalid configuration for preset ${presetIdentifier} and option ${optionIdentifier}: either "attribute" and "attributeValue" or "cssClass" must be set.`); + } + + return viewConfig; + }, {}) + }); + + // Register command + const commandId = `inlineStyles:${presetIdentifier}`; + this.editor.commands.add(commandId, new InlineStylesCommand(this.editor, modelAttributeKey)); + + // Register dropdown in the UI + this.editor.ui.componentFactory.add( + `${commandId}_dropdown`, + (locale) => { + const dropdownView = createDropdown(locale); + const command = this.editor.commands.get(commandId) as InlineStylesCommand; + + if (!command) { + console.error(`Command ${commandId} not found for dropdown ${commandId}_dropdown`); + return dropdownView; + } + + dropdownView.buttonView.set({ + label: presetConfiguration.label, + withText: presetConfiguration.showLabel ?? true, + tooltip: true, + icon: presetConfiguration.icon ?? null + }); + + dropdownView.bind('isEnabled').to(command, 'isEnabled', isEnabled => isEnabled); + + const optionCollection = new Collection(); + + Object.keys(presetConfiguration.options).forEach(optionIdentifier => { + const option = presetConfiguration.options[optionIdentifier]!; + const optionDefinition: ListDropdownItemDefinition = { + type: 'button', + model: new UIModel({ + commandValue: optionIdentifier, + label: option.label, + icon: option.icon ?? null, + withText: option.showLabel ?? true, + toggleable: true, + }) + }; + + optionDefinition.model.bind('isOn').to(command, 'value', value => value === optionIdentifier); + + optionCollection.add(optionDefinition); + }); + + addListToDropdown(dropdownView, optionCollection); + + // register execute event for dropdown + this.listenTo(dropdownView, 'execute', evt => { + const {commandValue} = evt.source as any; + this.editor.execute(commandId, {value: commandValue}); + this.editor.editing.view.focus(); + }); + + return dropdownView; + }); + } + } +} diff --git a/Resources/Private/JavaScript/CkStyles/src/PresetType.js b/Resources/Private/JavaScript/CkStyles/src/PresetType.js deleted file mode 100644 index 31fc628..0000000 --- a/Resources/Private/JavaScript/CkStyles/src/PresetType.js +++ /dev/null @@ -1,22 +0,0 @@ -import PropTypes from 'prop-types'; - -function attributeValueOrCssClass(props, propName, componentName) { - if (props[propName] && typeof props[propName] !== 'string') { - return new Error(`Prop '${propName}' must be a string.`); - } - if (!props.attributeValue && !props.cssClass) { - return new Error(`Either prop 'attributeValue' or 'cssClass' must be supplied to ${componentName}.`); - } -} - -export default PropTypes.shape({ - label: PropTypes.string.isRequired, - - // keys are the option values - options: PropTypes.objectOf(PropTypes.shape({ - label: PropTypes.string.isRequired, - attribute: PropTypes.string, - attributeValue: attributeValueOrCssClass, - cssClass: attributeValueOrCssClass, - })), -}); \ No newline at end of file diff --git a/Resources/Private/JavaScript/CkStyles/src/components/BlockStyleSelector.js b/Resources/Private/JavaScript/CkStyles/src/components/BlockStyleSelector.js deleted file mode 100644 index 73c9e8f..0000000 --- a/Resources/Private/JavaScript/CkStyles/src/components/BlockStyleSelector.js +++ /dev/null @@ -1,61 +0,0 @@ -import React, { PureComponent } from 'react'; -import PropTypes from 'prop-types'; -import { SelectBox } from '@neos-project/react-ui-components'; -import { connect } from 'react-redux'; -import PresetType from '../PresetType'; - -import { selectors } from '@neos-project/neos-ui-redux-store'; -import * as CkEditorApi from '@neos-project/neos-ui-ckeditor5-bindings'; - -@connect( - state => ({ - formattingUnderCursor: selectors.CR.Nodes.focusedNodePathSelector(state), - }) -) -export default class BlockStyleSelector extends PureComponent { - static propTypes = { - // from outside props - presetIdentifier: PropTypes.string.isRequired, - presetConfiguration: PresetType.isRequired, - - // from @connect - formattingUnderCursor: PropTypes.object - }; - - constructor(...args) { - super(...args); - - this.handleOnSelect = this.handleOnSelect.bind(this); - } - - render() { - const optionsForSelect = Object.entries(this.props.presetConfiguration.options) - .map(([optionIdentifier, optionConfiguration]) => ({ - value: optionIdentifier, - label: optionConfiguration.label - })); - - if (optionsForSelect.length === 0) { - return null; - } - - const currentValue = this.props.formattingUnderCursor[`blockStyles:${this.props.presetIdentifier}`]; - - return ( - - ); - } - - handleOnSelect(optionIdentifier) { - CkEditorApi.executeCommand( - `blockStyles:${this.props.presetIdentifier}`, - { value: optionIdentifier } - ); - } -} diff --git a/Resources/Private/JavaScript/CkStyles/src/components/InlineStyleSelector.js b/Resources/Private/JavaScript/CkStyles/src/components/InlineStyleSelector.js deleted file mode 100644 index 807279c..0000000 --- a/Resources/Private/JavaScript/CkStyles/src/components/InlineStyleSelector.js +++ /dev/null @@ -1,61 +0,0 @@ -import React, { PureComponent } from 'react'; -import PropTypes from 'prop-types'; -import { SelectBox } from '@neos-project/react-ui-components'; -import { connect } from 'react-redux'; -import PresetType from '../PresetType'; - -import { selectors } from '@neos-project/neos-ui-redux-store'; -import * as CkEditorApi from '@neos-project/neos-ui-ckeditor5-bindings'; - -@connect( - state => ({ - formattingUnderCursor: selectors.CR.Nodes.focusedNodePathSelector(state), - }) -) -export default class InlineStyleSelector extends PureComponent { - static propTypes = { - // from outside props - presetIdentifier: PropTypes.string.isRequired, - presetConfiguration: PresetType.isRequired, - - // from @connect - formattingUnderCursor: PropTypes.object - }; - - constructor(...args) { - super(...args); - - this.handleOnSelect = this.handleOnSelect.bind(this); - } - - render() { - const optionsForSelect = Object.entries(this.props.presetConfiguration.options) - .map(([optionIdentifier, optionConfiguration]) => ({ - value: optionIdentifier, - label: optionConfiguration.label - })); - - if (optionsForSelect.length === 0) { - return null; - } - - const currentValue = this.props.formattingUnderCursor[`inlineStyles:${this.props.presetIdentifier}`]; - - return ( - - ); - } - - handleOnSelect(optionIdentifier) { - CkEditorApi.executeCommand( - `inlineStyles:${this.props.presetIdentifier}`, - { value: optionIdentifier } - ); - } -} diff --git a/Resources/Private/JavaScript/CkStyles/src/configuration.ts b/Resources/Private/JavaScript/CkStyles/src/configuration.ts new file mode 100644 index 0000000..20dc4ac --- /dev/null +++ b/Resources/Private/JavaScript/CkStyles/src/configuration.ts @@ -0,0 +1,39 @@ +export const TECHDIVISION_CKSTYLES__NAME_SPACE = 'TechDivision.CkStyles'; +export const CK_STYLES_INLINE_STYLES_IDENTIFIER = 'InlineStyles'; +export const CK_STYLES_BLOCK_STYLES_IDENTIFIER = 'BlockStyles'; + +export type CkStylesPresetIdentifier = string; +export type CkStylesPresetOptionIdentifier = string; + +export type CkStylesConfiguration = { + presets: Record; +} + +export type CkStylesPresetConfiguration = { + label: string; + icon?: string; + showLabel?: boolean; + options: Record; +} + +// either cssClass or attribute + attributeValue must be set, but not both +export type CkStylesPresetOptionConfiguration = { + label: string; + icon?: string; + showLabel?: boolean; +} & ({ attribute: string; attributeValue: string } | { cssClass: string }) + + +export const INLINE_STYLING__FRONTEND_CONFIGURATION_KEY = `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_INLINE_STYLES_IDENTIFIER}`; +export const INLINE_STYLING__EDITOR_OPTION_KEY = 'inlineStyling'; + +export const BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY = `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_BLOCK_STYLES_IDENTIFIER}`; +export const BLOCK_STYLING__EDITOR_OPTION_KEY = 'blockStyling'; + +export function isPresetEnabled(editorOptions: Record | undefined, editorOptionKey: string, presetIdentifier: string): boolean { + return !!(editorOptions?.[editorOptionKey]?.[presetIdentifier]); +} + +export type NeosEditorOptions = { + editorOptions: Record +} diff --git a/Resources/Private/JavaScript/CkStyles/src/index.js b/Resources/Private/JavaScript/CkStyles/src/index.js deleted file mode 100644 index 14fc131..0000000 --- a/Resources/Private/JavaScript/CkStyles/src/index.js +++ /dev/null @@ -1 +0,0 @@ -require('./manifest'); \ No newline at end of file diff --git a/Resources/Private/JavaScript/CkStyles/src/index.ts b/Resources/Private/JavaScript/CkStyles/src/index.ts new file mode 100644 index 0000000..a528a96 --- /dev/null +++ b/Resources/Private/JavaScript/CkStyles/src/index.ts @@ -0,0 +1 @@ +import './manifest'; diff --git a/Resources/Private/JavaScript/CkStyles/src/manifest.js b/Resources/Private/JavaScript/CkStyles/src/manifest.js deleted file mode 100644 index 6433c5f..0000000 --- a/Resources/Private/JavaScript/CkStyles/src/manifest.js +++ /dev/null @@ -1,77 +0,0 @@ -import manifest from '@neos-project/neos-ui-extensibility'; - -import InlineStylesEditing from './InlineStylesEditing'; -import InlineStyleSelector from './components/InlineStyleSelector'; - -import BlockStyleEditing from "./BlockStyleEditing"; -import BlockStyleSelector from "./components/BlockStyleSelector"; - -manifest('TechDivision.CkStyles:Styles', {}, (globalRegistry, {frontendConfiguration}) => { - - const ckEditorRegistry = globalRegistry.get('ckEditor5'); - const richtextToolbar = ckEditorRegistry.get('richtextToolbar'); - const config = ckEditorRegistry.get('config'); - - const inlineStyleConfiguration = frontendConfiguration['TechDivision.CkStyles:InlineStyles']; - const blockStyleConfiguration = frontendConfiguration['TechDivision.CkStyles:BlockStyles']; - - // Block style - if (blockStyleConfiguration) { - - Object.keys(blockStyleConfiguration.presets).forEach(presetIdentifier => { - - const blockStylePresetConfiguration = blockStyleConfiguration.presets[presetIdentifier]; - - config.set(`TechDivision.CkStyles:BlockStyles_${presetIdentifier}`, (ckEditorConfiguration, {editorOptions}) => { - const editing = BlockStyleEditing(presetIdentifier, blockStylePresetConfiguration); - ckEditorConfiguration.plugins = ckEditorConfiguration.plugins || []; - ckEditorConfiguration.plugins.push(editing); - return ckEditorConfiguration; - }); - - richtextToolbar.set(`blockStyles_${presetIdentifier}`, { - component: BlockStyleSelector, - // Display only if the preset is activated in NodeType.yaml for this node property - isVisible: function (editorOptions, formattingUnderCursor) { - var isVisible = false; - if (editorOptions['blockStyling'] !== undefined && editorOptions['blockStyling'][presetIdentifier] !== undefined) { - isVisible = editorOptions['blockStyling'][presetIdentifier]; - } - return isVisible; - }, - presetIdentifier: presetIdentifier, - presetConfiguration: blockStylePresetConfiguration - }); - - }); - } - - //Inline Style - if (inlineStyleConfiguration) { - - Object.keys(inlineStyleConfiguration.presets).forEach((presetIdentifier) => { - - const inlineStylePresetConfiguration = inlineStyleConfiguration.presets[presetIdentifier]; - - config.set(`TechDivision.CkStyle:InlineStyles_${presetIdentifier}`, (ckEditorConfiguration, {editorOptions}) => { - ckEditorConfiguration.plugins = ckEditorConfiguration.plugins || []; - ckEditorConfiguration.plugins.push(InlineStylesEditing(presetIdentifier, inlineStylePresetConfiguration)); - return ckEditorConfiguration; - }); - - richtextToolbar.set(`inlineStyles_${presetIdentifier}`, { - component: InlineStyleSelector, - // Display only if the preset is activated in NodeType.yaml for this node property - isVisible: function (editorOptions, formattingUnderCursor) { - var isVisible = false; - if (editorOptions['inlineStyling'] !== undefined && editorOptions['inlineStyling'][presetIdentifier] !== undefined) { - isVisible = editorOptions['inlineStyling'][presetIdentifier]; - } - return isVisible; - }, - presetIdentifier: presetIdentifier, - presetConfiguration: inlineStylePresetConfiguration - }); - }); - } -}); diff --git a/Resources/Private/JavaScript/CkStyles/src/manifest.ts b/Resources/Private/JavaScript/CkStyles/src/manifest.ts new file mode 100644 index 0000000..a2f93a0 --- /dev/null +++ b/Resources/Private/JavaScript/CkStyles/src/manifest.ts @@ -0,0 +1,97 @@ +import manifest from '@neos-project/neos-ui-extensibility'; +import {EditorConfig} from '@ckeditor/ckeditor5-core'; + +import {createInlineEditStylePlugin} from './InlineStylesEditing'; +import {createBlockStyleEditingPlugin} from "./BlockStyleEditing"; +import { + BLOCK_STYLING__EDITOR_OPTION_KEY, + BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY, + CkStylesConfiguration, + INLINE_STYLING__EDITOR_OPTION_KEY, + INLINE_STYLING__FRONTEND_CONFIGURATION_KEY, + isPresetEnabled, + NeosEditorOptions, + TECHDIVISION_CKSTYLES__NAME_SPACE +} from "./configuration"; + +manifest( + `${TECHDIVISION_CKSTYLES__NAME_SPACE}:Styles`, + {}, + (globalRegistry: any, {frontendConfiguration}: { frontendConfiguration: any }) => { + + const ckEditorRegistry = globalRegistry.get('ckEditor5'); + const config = ckEditorRegistry.get('config'); + + const inlineStyleConfiguration = frontendConfiguration[INLINE_STYLING__FRONTEND_CONFIGURATION_KEY] as CkStylesConfiguration | undefined; + const blockStyleConfiguration = frontendConfiguration[BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY] as CkStylesConfiguration | undefined; + + // Block style + if (blockStyleConfiguration) { + + Object.keys(blockStyleConfiguration.presets).forEach(presetIdentifier => { + + const blockStylePresetConfiguration = blockStyleConfiguration.presets[presetIdentifier]!; + + config.set( + `${BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY}_${presetIdentifier}`, + (ckEditorConfiguration: EditorConfig, {editorOptions}: { editorOptions: NeosEditorOptions }) => { + if (isPresetEnabled(editorOptions, BLOCK_STYLING__EDITOR_OPTION_KEY, presetIdentifier)) { + ckEditorConfiguration.plugins = ckEditorConfiguration.plugins ?? []; + ckEditorConfiguration.plugins.push(createBlockStyleEditingPlugin(presetIdentifier, blockStylePresetConfiguration)); + + // TODO: duplicated information.. find a better way + const toolbarItemId = `blockStyles:${presetIdentifier}_dropdown`; + + if (ckEditorConfiguration.toolbar === undefined) { + ckEditorConfiguration.toolbar = { + items: [toolbarItemId] + } + } else if (ckEditorConfiguration.toolbar instanceof Array) { + ckEditorConfiguration.toolbar.push(toolbarItemId); + } else { + ckEditorConfiguration.toolbar.items = ckEditorConfiguration.toolbar.items ?? []; + ckEditorConfiguration.toolbar.items.push(toolbarItemId); + } + } + + return ckEditorConfiguration; + }, + ); + }); + } + + //Inline Style + if (inlineStyleConfiguration) { + Object.keys(inlineStyleConfiguration.presets).forEach((presetIdentifier) => { + + const inlineStylePresetConfiguration = inlineStyleConfiguration.presets[presetIdentifier]!; + + config.set( + `${INLINE_STYLING__FRONTEND_CONFIGURATION_KEY}_${presetIdentifier}`, + (ckEditorConfiguration: EditorConfig, {editorOptions}: { editorOptions: NeosEditorOptions }) => { + if (isPresetEnabled(editorOptions, INLINE_STYLING__EDITOR_OPTION_KEY, presetIdentifier)) { + ckEditorConfiguration.plugins = ckEditorConfiguration.plugins ?? []; + ckEditorConfiguration.plugins.push(createInlineEditStylePlugin(presetIdentifier, inlineStylePresetConfiguration)); + + + // TODO: duplicated information.. find a better way + const toolbarItemId = `inlineStyles:${presetIdentifier}_dropdown`; + + if (ckEditorConfiguration.toolbar === undefined) { + ckEditorConfiguration.toolbar = { + items: [toolbarItemId] + } + } else if (ckEditorConfiguration.toolbar instanceof Array) { + ckEditorConfiguration.toolbar.push(toolbarItemId); + } else { + ckEditorConfiguration.toolbar.items = ckEditorConfiguration.toolbar.items ?? []; + ckEditorConfiguration.toolbar.items.push(toolbarItemId); + } + } + + return ckEditorConfiguration; + }, + ); + }); + } + }); diff --git a/Resources/Private/JavaScript/CkStyles/src/yarn.lock b/Resources/Private/JavaScript/CkStyles/src/yarn.lock deleted file mode 100644 index c5a6d89..0000000 --- a/Resources/Private/JavaScript/CkStyles/src/yarn.lock +++ /dev/null @@ -1,6434 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@7.0.0-rc.2": - version "7.0.0-rc.2" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-rc.2.tgz#12b6daeb408238360744649d16c0e9fa7ab3859e" - dependencies: - "@babel/highlight" "7.0.0-rc.2" - -"@babel/code-frame@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/core@^7.0.0-rc.1": - version "7.0.0-rc.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.0.0-rc.2.tgz#dcb46b3adb63e35b1e82c35d9130d9c27be58427" - dependencies: - "@babel/code-frame" "7.0.0-rc.2" - "@babel/generator" "7.0.0-rc.2" - "@babel/helpers" "7.0.0-rc.2" - "@babel/parser" "7.0.0-rc.2" - "@babel/template" "7.0.0-rc.2" - "@babel/traverse" "7.0.0-rc.2" - "@babel/types" "7.0.0-rc.2" - convert-source-map "^1.1.0" - debug "^3.1.0" - json5 "^0.5.0" - lodash "^4.17.10" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@7.0.0-rc.2": - version "7.0.0-rc.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-rc.2.tgz#7aed8fb4ef1bdcc168225096b5b431744ba76bf8" - dependencies: - "@babel/types" "7.0.0-rc.2" - jsesc "^2.5.1" - lodash "^4.17.10" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/helper-function-name@7.0.0-rc.2": - version "7.0.0-rc.2" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-rc.2.tgz#ad7bb9df383c5f53e4bf38c0fe0c7f93e6a27729" - dependencies: - "@babel/helper-get-function-arity" "7.0.0-rc.2" - "@babel/template" "7.0.0-rc.2" - "@babel/types" "7.0.0-rc.2" - -"@babel/helper-get-function-arity@7.0.0-rc.2": - version "7.0.0-rc.2" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-rc.2.tgz#323cb82e2d805b40c0c36be1dfcb8ffcbd0434f3" - dependencies: - "@babel/types" "7.0.0-rc.2" - -"@babel/helper-split-export-declaration@7.0.0-rc.2": - version "7.0.0-rc.2" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-rc.2.tgz#726b2dec4e46baeab32db67caa6e88b6521464f8" - dependencies: - "@babel/types" "7.0.0-rc.2" - -"@babel/helpers@7.0.0-rc.2": - version "7.0.0-rc.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.0.0-rc.2.tgz#e21f54451824f55b4f5022c6e9d6fa7df65e8746" - dependencies: - "@babel/template" "7.0.0-rc.2" - "@babel/traverse" "7.0.0-rc.2" - "@babel/types" "7.0.0-rc.2" - -"@babel/highlight@7.0.0-rc.2": - version "7.0.0-rc.2" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-rc.2.tgz#0af688a69e3709d9cf392e1837cda18c08d34d4f" - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -"@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" - integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -"@babel/parser@7.0.0-rc.2": - version "7.0.0-rc.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0-rc.2.tgz#a98c01af5834e71d48a5108e3aeeee333cdf26c4" - -"@babel/template@7.0.0-rc.2": - version "7.0.0-rc.2" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-rc.2.tgz#53f6be6c1336ddc7744625c9bdca9d10be5d5d72" - dependencies: - "@babel/code-frame" "7.0.0-rc.2" - "@babel/parser" "7.0.0-rc.2" - "@babel/types" "7.0.0-rc.2" - -"@babel/traverse@7.0.0-rc.2": - version "7.0.0-rc.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-rc.2.tgz#6e54ebe82aa1b3b3cf5ec05594bc14d7c59c9766" - dependencies: - "@babel/code-frame" "7.0.0-rc.2" - "@babel/generator" "7.0.0-rc.2" - "@babel/helper-function-name" "7.0.0-rc.2" - "@babel/helper-split-export-declaration" "7.0.0-rc.2" - "@babel/parser" "7.0.0-rc.2" - "@babel/types" "7.0.0-rc.2" - debug "^3.1.0" - globals "^11.1.0" - lodash "^4.17.10" - -"@babel/types@7.0.0-rc.2": - version "7.0.0-rc.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-rc.2.tgz#8e025b78764cee8751823e308558a3ca144ebd9d" - dependencies: - esutils "^2.0.2" - lodash "^4.17.10" - to-fast-properties "^2.0.0" - -"@ckeditor/ckeditor5-basic-styles@^10.0.0": - version "10.0.2" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-basic-styles/-/ckeditor5-basic-styles-10.0.2.tgz#fe5632633b77762f53b2cb1e025c08bbd6d9114d" - dependencies: - "@ckeditor/ckeditor5-core" "^11.0.0" - "@ckeditor/ckeditor5-engine" "^10.2.0" - "@ckeditor/ckeditor5-theme-lark" "^11.0.0" - "@ckeditor/ckeditor5-ui" "^11.0.0" - -"@ckeditor/ckeditor5-core@^11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-core/-/ckeditor5-core-11.0.0.tgz#bd0db3a3d9a0711692b7f518ae0fa839b0ab54c7" - dependencies: - "@ckeditor/ckeditor5-engine" "^10.2.0" - "@ckeditor/ckeditor5-utils" "^10.2.0" - -"@ckeditor/ckeditor5-dev-utils@^9.0": - version "9.0.2" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-dev-utils/-/ckeditor5-dev-utils-9.0.2.tgz#5be79a25c702e586518559a11c4d80044684fd18" - dependencies: - acorn "^5.1.2" - cssnano "^3.10.0" - del "^3.0.0" - escodegen "^1.9.0" - fs-extra "^5.0.0" - javascript-stringify "^1.6.0" - pofile "^1.0.9" - postcss-import "^11.0.0" - postcss-mixins "^6.2.0" - postcss-nesting "^4.2.1" - shelljs "^0.8.1" - through2 "^2.0.3" - -"@ckeditor/ckeditor5-engine@^10.2.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-engine/-/ckeditor5-engine-10.2.0.tgz#f4cf448c0482233557f48d4b9a97baa571c0e9cc" - dependencies: - "@ckeditor/ckeditor5-utils" "^10.2.0" - -"@ckeditor/ckeditor5-theme-lark@^11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-theme-lark/-/ckeditor5-theme-lark-11.0.0.tgz#39b1c65530ae85566b669fd472e63a72a9c4aac4" - dependencies: - "@ckeditor/ckeditor5-ui" "^11.0.0" - -"@ckeditor/ckeditor5-ui@^11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-ui/-/ckeditor5-ui-11.0.0.tgz#90b3cd26b0bba4abf47d698073a5eac2f1d3252e" - dependencies: - "@ckeditor/ckeditor5-core" "^11.0.0" - "@ckeditor/ckeditor5-theme-lark" "^11.0.0" - "@ckeditor/ckeditor5-utils" "^10.2.0" - -"@ckeditor/ckeditor5-utils@^10.2.0": - version "10.2.1" - resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-utils/-/ckeditor5-utils-10.2.1.tgz#08268ddb79eddbb2b62acd4d2e04935b2dc75cc6" - dependencies: - ckeditor5 "^11.0.1" - -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@neos-project/build-essentials@3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@neos-project/build-essentials/-/build-essentials-3.3.0.tgz#4c865e7ff1a39cb0dd853617ee525438b830e7a7" - integrity sha512-Oi8gGWbAk6RG3L2lQR/IMLZi0wzRu9wQA3/yYgkEOuL9qYyKJjwbIMYW9SmwqdILTdSdadd0c/mwxssfEGFT2Q== - dependencies: - "@ckeditor/ckeditor5-dev-utils" "^9.0" - babel-core "^6.13.2" - babel-eslint "^7.1.1" - babel-loader "^7.1.2" - check-dependencies "^1.0.1" - cpx "^1.3.1" - cross-env "^5.1.3" - eslint "^5.3.0" - lodash.upperfirst "^4.3.0" - mini-css-extract-plugin "^0.5.0" - postcss-css-variables "^0.11.0" - postcss-hexrgba "^1.0.1" - postcss-import "^12.0.1" - postcss-loader "^3.0.0" - postcss-nested "^4.1.1" - rimraf "^2.5.4" - stylelint "^9.3.0" - ts-jest "^23.10.5" - ts-loader "^3" - tslib "^1.9.3" - tslint "^5.11.0" - tslint-config-prettier "^1.15.0" - tslint-react "^3.6.0" - typescript "^3.2.2" - uglifyjs-webpack-plugin "^2.1.1" - url-loader "^1.0.1" - watch "^1.0.2" - webpack "^4.29.3" - webpack-livereload-plugin "^2.2.0" - -"@neos-project/neos-ui-extensibility@*": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@neos-project/neos-ui-extensibility/-/neos-ui-extensibility-3.3.0.tgz#fc0322bc71d3135dacca43b17f7f5c3b0d60c497" - integrity sha512-hjt0gHAOxLwo0CGpt4VbfhdCbhb5eMgixtQF0ngGJZoClGhze43C7TCN74G3pCuBxPtEqbqiYn38SQybZP8oow== - dependencies: - "@neos-project/build-essentials" "3.3.0" - "@neos-project/positional-array-sorter" "3.3.0" - babel-core "^6.13.2" - babel-eslint "^7.1.1" - babel-loader "^7.1.2" - babel-plugin-transform-decorators-legacy "^1.3.4" - babel-plugin-transform-object-rest-spread "^6.20.1" - babel-plugin-webpack-alias "^2.1.1" - babel-preset-es2015 "^6.13.2" - babel-preset-react "^6.3.13" - babel-preset-stage-0 "^6.3.13" - chalk "^1.1.3" - css-loader "^2.1.0" - file-loader "^3.0.1" - json-loader "^0.5.7" - mini-css-extract-plugin "^0.5.0" - postcss-loader "^3.0.0" - react-dev-utils "^0.5.0" - style-loader "^0.23.1" - -"@neos-project/positional-array-sorter@3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@neos-project/positional-array-sorter/-/positional-array-sorter-3.3.0.tgz#6d780255abef2932d8e1266ee47f7b12621c0056" - integrity sha512-KV5YvgGs/lyDk70fK6hOl/TUKyZ3LVA8dwury+0M+xwm9+kIIoBn+XtFGX0lCE4dnElJN6OkzwmaDSb+ESqvSA== - -"@nodelib/fs.stat@^1.0.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.1.tgz#53f349bb986ab273d601175aa1b25a655ab90ee3" - -"@webassemblyjs/ast@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" - integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== - dependencies: - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" - -"@webassemblyjs/floating-point-hex-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" - integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== - -"@webassemblyjs/helper-api-error@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" - integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== - -"@webassemblyjs/helper-buffer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" - integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== - -"@webassemblyjs/helper-code-frame@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" - integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== - dependencies: - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/helper-fsm@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" - integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== - -"@webassemblyjs/helper-module-context@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" - integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== - dependencies: - "@webassemblyjs/ast" "1.8.5" - mamacro "^0.0.3" - -"@webassemblyjs/helper-wasm-bytecode@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" - integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== - -"@webassemblyjs/helper-wasm-section@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" - integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - -"@webassemblyjs/ieee754@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" - integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" - integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" - integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== - -"@webassemblyjs/wasm-edit@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" - integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/helper-wasm-section" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-opt" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/wasm-gen@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" - integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wasm-opt@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" - integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - -"@webassemblyjs/wasm-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" - integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wast-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" - integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/floating-point-hex-parser" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-code-frame" "1.8.5" - "@webassemblyjs/helper-fsm" "1.8.5" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" - integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - -acorn-dynamic-import@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" - integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== - -acorn-jsx@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-4.1.1.tgz#e8e41e48ea2fe0c896740610ab6a4ffd8add225e" - dependencies: - acorn "^5.0.3" - -acorn@^5.0.3, acorn@^5.1.2, acorn@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8" - -acorn@^6.0.5: - version "6.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" - integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== - -ajv-errors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.0.tgz#ecf021fa108fd17dfb5e6b383f2dd233e31ffc59" - -ajv-keywords@^3.0.0, ajv-keywords@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" - -ajv@^6.0.1, ajv@^6.1.0, ajv@^6.5.0: - version "6.5.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.3.tgz#71a569d189ecf4f4f321224fecb166f071dd90f9" - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - -ansi-escapes@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" - -ansi-html@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.5.tgz#0dcaa5a081206866bc240a3b773a184ea3b88b64" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - dependencies: - color-convert "^1.9.0" - -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -aproba@^1.0.3, aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - -arr-flatten@^1.0.1, arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - -array-filter@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - -array-map@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" - -array-reduce@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - -arrify@^1.0.0, arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -assert@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - -autoprefixer@^6.3.1: - version "6.7.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" - dependencies: - browserslist "^1.7.6" - caniuse-db "^1.0.30000634" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^5.2.16" - postcss-value-parser "^3.2.3" - -autoprefixer@^9.0.0: - version "9.1.2" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.1.2.tgz#73672614e3ee43a433b84c1c2a4b1ca392d2f6a1" - dependencies: - browserslist "^4.0.2" - caniuse-lite "^1.0.30000877" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.2" - postcss-value-parser "^3.2.3" - -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.13.2, babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-eslint@^7.1.1: - version "7.2.3" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" - dependencies: - babel-code-frame "^6.22.0" - babel-traverse "^6.23.1" - babel-types "^6.23.0" - babylon "^6.17.0" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-bindify-decorators@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-builder-react-jsx@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - esutils "^2.0.2" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-explode-class@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" - dependencies: - babel-helper-bindify-decorators "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-loader@^7.1.2: - version "7.1.5" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.5.tgz#e3ee0cd7394aa557e013b02d3e492bfd07aa6d68" - dependencies: - find-cache-dir "^1.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-async-generators@^6.5.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" - -babel-plugin-syntax-class-constructor-call@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" - -babel-plugin-syntax-class-properties@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" - -babel-plugin-syntax-decorators@^6.1.18, babel-plugin-syntax-decorators@^6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" - -babel-plugin-syntax-do-expressions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d" - -babel-plugin-syntax-dynamic-import@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-export-extensions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" - -babel-plugin-syntax-flow@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" - -babel-plugin-syntax-function-bind@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46" - -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - -babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-generator-functions@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-generators "^6.5.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-class-constructor-call@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9" - dependencies: - babel-plugin-syntax-class-constructor-call "^6.18.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-class-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" - dependencies: - babel-helper-function-name "^6.24.1" - babel-plugin-syntax-class-properties "^6.8.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-decorators-legacy@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators-legacy/-/babel-plugin-transform-decorators-legacy-1.3.5.tgz#0e492dffa0edd70529072887f8aa86d4dd8b40a1" - dependencies: - babel-plugin-syntax-decorators "^6.1.18" - babel-runtime "^6.2.0" - babel-template "^6.3.0" - -babel-plugin-transform-decorators@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" - dependencies: - babel-helper-explode-class "^6.24.1" - babel-plugin-syntax-decorators "^6.13.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-do-expressions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb" - dependencies: - babel-plugin-syntax-do-expressions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.22.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.22.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.22.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-export-extensions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" - dependencies: - babel-plugin-syntax-export-extensions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-flow-strip-types@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" - dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-function-bind@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97" - dependencies: - babel-plugin-syntax-function-bind "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-object-rest-spread@^6.20.1, babel-plugin-transform-object-rest-spread@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" - -babel-plugin-transform-react-display-name@^6.23.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-self@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-source@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" - dependencies: - babel-helper-builder-react-jsx "^6.24.1" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-webpack-alias@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/babel-plugin-webpack-alias/-/babel-plugin-webpack-alias-2.1.2.tgz#05a1ba23c28595660fb6ea5736424fc596b4a247" - dependencies: - babel-types "^6.14.0" - find-up "^2.0.0" - lodash.some "^4.5.1" - lodash.template "^4.3.0" - -babel-preset-es2015@^6.13.2: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.24.1" - babel-plugin-transform-es2015-classes "^6.24.1" - babel-plugin-transform-es2015-computed-properties "^6.24.1" - babel-plugin-transform-es2015-destructuring "^6.22.0" - babel-plugin-transform-es2015-duplicate-keys "^6.24.1" - babel-plugin-transform-es2015-for-of "^6.22.0" - babel-plugin-transform-es2015-function-name "^6.24.1" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-plugin-transform-es2015-modules-systemjs "^6.24.1" - babel-plugin-transform-es2015-modules-umd "^6.24.1" - babel-plugin-transform-es2015-object-super "^6.24.1" - babel-plugin-transform-es2015-parameters "^6.24.1" - babel-plugin-transform-es2015-shorthand-properties "^6.24.1" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.24.1" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.22.0" - babel-plugin-transform-es2015-unicode-regex "^6.24.1" - babel-plugin-transform-regenerator "^6.24.1" - -babel-preset-flow@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" - dependencies: - babel-plugin-transform-flow-strip-types "^6.22.0" - -babel-preset-react@^6.3.13: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" - dependencies: - babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-react-display-name "^6.23.0" - babel-plugin-transform-react-jsx "^6.24.1" - babel-plugin-transform-react-jsx-self "^6.22.0" - babel-plugin-transform-react-jsx-source "^6.22.0" - babel-preset-flow "^6.23.0" - -babel-preset-stage-0@^6.3.13: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz#5642d15042f91384d7e5af8bc88b1db95b039e6a" - dependencies: - babel-plugin-transform-do-expressions "^6.22.0" - babel-plugin-transform-function-bind "^6.22.0" - babel-preset-stage-1 "^6.24.1" - -babel-preset-stage-1@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" - dependencies: - babel-plugin-transform-class-constructor-call "^6.24.1" - babel-plugin-transform-export-extensions "^6.22.0" - babel-preset-stage-2 "^6.24.1" - -babel-preset-stage-2@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" - dependencies: - babel-plugin-syntax-dynamic-import "^6.18.0" - babel-plugin-transform-class-properties "^6.24.1" - babel-plugin-transform-decorators "^6.24.1" - babel-preset-stage-3 "^6.24.1" - -babel-preset-stage-3@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" - dependencies: - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-generator-functions "^6.24.1" - babel-plugin-transform-async-to-generator "^6.24.1" - babel-plugin-transform-exponentiation-operator "^6.24.1" - babel-plugin-transform-object-rest-spread "^6.22.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0, babel-runtime@^6.9.2: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0, babel-template@^6.3.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.14.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.17.0, babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - -bail@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.3.tgz#63cfb9ddbac829b02a3128cd53224be78e6c21a3" - -balanced-match@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -base64-js@^1.0.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" - -bluebird@^3.5.3: - version "3.5.4" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" - integrity sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - -body@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" - dependencies: - continuable-cache "^0.3.1" - error "^7.0.0" - raw-body "~1.1.0" - safe-json-parse "~1.0.1" - -bower-config@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/bower-config/-/bower-config-1.4.1.tgz#85fd9df367c2b8dbbd0caa4c5f2bad40cd84c2cc" - dependencies: - graceful-fs "^4.1.3" - mout "^1.0.0" - optimist "^0.6.1" - osenv "^0.1.3" - untildify "^2.1.0" - -brace-expansion@^1.0.0, brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -braces@^2.3.0, braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - dependencies: - pako "~1.0.5" - -browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: - version "1.7.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" - dependencies: - caniuse-db "^1.0.30000639" - electron-to-chromium "^1.2.7" - -browserslist@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.0.2.tgz#294388f5844bb3ab15ef7394ca17f49bf7a4e6f1" - dependencies: - caniuse-lite "^1.0.30000876" - electron-to-chromium "^1.3.57" - node-releases "^1.0.0-alpha.11" - -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - -buffer-from@1.x, buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - -buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-modules@^1.0.0, builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - -bytes@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" - -cacache@^11.0.2, cacache@^11.2.0: - version "11.3.2" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" - integrity sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg== - dependencies: - bluebird "^3.5.3" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.3" - graceful-fs "^4.1.15" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.2" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - dependencies: - callsites "^0.2.0" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - -camelcase-css@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-1.0.1.tgz#157c4238265f5cf94a1dffde86446552cbf3f705" - -camelcase-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" - dependencies: - camelcase "^4.1.0" - map-obj "^2.0.0" - quick-lru "^1.0.0" - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - -camelcase@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-api@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" - dependencies: - browserslist "^1.3.6" - caniuse-db "^1.0.30000529" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000878" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000878.tgz#0d0c6d8500c3aea21441fad059bce4b8f3f509df" - -caniuse-lite@^1.0.30000876, caniuse-lite@^1.0.30000877: - version "1.0.30000878" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000878.tgz#c644c39588dd42d3498e952234c372e5a40a4123" - -ccount@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.3.tgz#f1cec43f332e2ea5a569fd46f9f5bde4e6102aff" - -chalk@1.1.3, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^2.3.0, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -character-entities-html4@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.2.tgz#c44fdde3ce66b52e8d321d6c1bf46101f0150610" - -character-entities-legacy@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz#7c6defb81648498222c9855309953d05f4d63a9c" - -character-entities@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.2.tgz#58c8f371c0774ef0ba9b2aca5f00d8f100e6e363" - -character-reference-invalid@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz#21e421ad3d84055952dab4a43a04e73cd425d3ed" - -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - -check-dependencies@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/check-dependencies/-/check-dependencies-1.1.0.tgz#3aa2df4061770179d8e88e8bf9315c53722ddff4" - dependencies: - bower-config "^1.4.0" - chalk "^2.1.0" - findup-sync "^2.0.0" - lodash.camelcase "^4.3.0" - minimist "^1.2.0" - semver "^5.4.1" - -chokidar@^1.6.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -chokidar@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" - dependencies: - anymatch "^2.0.0" - async-each "^1.0.0" - braces "^2.3.0" - glob-parent "^3.1.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - lodash.debounce "^4.0.8" - normalize-path "^2.1.1" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - upath "^1.0.5" - optionalDependencies: - fsevents "^1.2.2" - -chownr@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" - -chownr@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" - integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== - -chrome-trace-event@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" - integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A== - dependencies: - tslib "^1.9.0" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - -ckeditor5@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/ckeditor5/-/ckeditor5-11.0.1.tgz#877d4a61d579cd1b6464cb9353787301576012d8" - -clap@^1.0.9: - version "1.2.3" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" - dependencies: - chalk "^1.1.3" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - dependencies: - restore-cursor "^2.0.0" - -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - -clone-regexp@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-1.0.1.tgz#051805cd33173375d82118fc0918606da39fd60f" - dependencies: - is-regexp "^1.0.0" - is-supported-regexp-flag "^1.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - -coa@~1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" - dependencies: - q "^1.1.2" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -collapse-white-space@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.4.tgz#ce05cf49e54c3277ae573036a26851ba430a0091" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.3.0, color-convert@^1.9.0: - version "1.9.2" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" - dependencies: - color-name "1.1.1" - -color-name@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" - -color-name@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - -color-string@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" - dependencies: - color-name "^1.0.0" - -color@^0.11.0: - version "0.11.4" - resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" - dependencies: - clone "^1.0.2" - color-convert "^1.3.0" - color-string "^0.3.0" - -colormin@^1.0.5: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" - dependencies: - color "^0.11.0" - css-color-names "0.0.4" - has "^1.0.1" - -colors@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -commander@^2.12.1, commander@^2.19.0, commander@~2.20.0: - version "2.20.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" - integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - -component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - -continuable-cache@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" - -convert-source-map@^1.1.0, convert-source-map@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - -core-js@^2.4.0, core-js@^2.5.0: - version "2.5.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -cosmiconfig@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" - dependencies: - is-directory "^0.3.1" - js-yaml "^3.9.0" - parse-json "^4.0.0" - require-from-string "^2.0.1" - -cosmiconfig@^5.0.0: - version "5.0.6" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39" - dependencies: - is-directory "^0.3.1" - js-yaml "^3.9.0" - parse-json "^4.0.0" - -cpx@^1.3.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/cpx/-/cpx-1.5.0.tgz#185be018511d87270dedccc293171e37655ab88f" - dependencies: - babel-runtime "^6.9.2" - chokidar "^1.6.0" - duplexer "^0.1.1" - glob "^7.0.5" - glob2base "^0.0.12" - minimatch "^3.0.2" - mkdirp "^0.5.1" - resolve "^1.1.7" - safe-buffer "^5.0.1" - shell-quote "^1.6.1" - subarg "^1.0.0" - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-env@^5.1.3: - version "5.2.0" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.0.tgz#6ecd4c015d5773e614039ee529076669b9d126f2" - dependencies: - cross-spawn "^6.0.5" - is-windows "^1.0.0" - -cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-color-names@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - -css-loader@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz#d8254f72e412bb2238bb44dd674ffbef497333ea" - integrity sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w== - dependencies: - camelcase "^5.2.0" - icss-utils "^4.1.0" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.14" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^2.0.6" - postcss-modules-scope "^2.1.0" - postcss-modules-values "^2.0.0" - postcss-value-parser "^3.3.0" - schema-utils "^1.0.0" - -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" - dependencies: - autoprefixer "^6.3.1" - decamelize "^1.1.2" - defined "^1.0.0" - has "^1.0.1" - object-assign "^4.0.1" - postcss "^5.0.14" - postcss-calc "^5.2.0" - postcss-colormin "^2.1.8" - postcss-convert-values "^2.3.4" - postcss-discard-comments "^2.0.4" - postcss-discard-duplicates "^2.0.1" - postcss-discard-empty "^2.0.1" - postcss-discard-overridden "^0.1.1" - postcss-discard-unused "^2.2.1" - postcss-filter-plugins "^2.0.0" - postcss-merge-idents "^2.1.5" - postcss-merge-longhand "^2.0.1" - postcss-merge-rules "^2.0.3" - postcss-minify-font-values "^1.0.2" - postcss-minify-gradients "^1.0.1" - postcss-minify-params "^1.0.4" - postcss-minify-selectors "^2.0.4" - postcss-normalize-charset "^1.1.0" - postcss-normalize-url "^3.0.7" - postcss-ordered-values "^2.1.0" - postcss-reduce-idents "^2.2.2" - postcss-reduce-initial "^1.0.0" - postcss-reduce-transforms "^1.0.3" - postcss-svgo "^2.1.1" - postcss-unique-selectors "^2.0.2" - postcss-value-parser "^3.2.3" - postcss-zindex "^2.0.1" - -csso@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" - dependencies: - clap "^1.0.9" - source-map "^0.5.3" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - dependencies: - array-find-index "^1.0.1" - -cyclist@~0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" - integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -debug@^2.1.0, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - dependencies: - ms "2.0.0" - -debug@^3.0.0, debug@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - dependencies: - ms "2.0.0" - -decamelize-keys@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - -del@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - -del@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" - dependencies: - globby "^6.1.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - p-map "^1.1.1" - pify "^3.0.0" - rimraf "^2.2.8" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - -diff@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" - dependencies: - arrify "^1.0.1" - path-type "^3.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - dependencies: - esutils "^2.0.2" - -dom-serializer@0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" - dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - -domelementtype@1, domelementtype@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" - -domelementtype@~1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - dependencies: - domelementtype "1" - -domutils@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - dependencies: - is-obj "^1.0.0" - -duplexer@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.57: - version "1.3.59" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.59.tgz#6377db04d8d3991d6286c72ed5c3fde6f4aaf112" - -elliptic@^6.0.0: - version "6.4.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^3.0.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" - integrity sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24= - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.7" - -enhanced-resolve@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" - -entities@^1.1.1, entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" - -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - dependencies: - prr "~1.0.1" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - dependencies: - is-arrayish "^0.2.1" - -error@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" - dependencies: - string-template "~0.2.1" - xtend "~4.0.0" - -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escodegen@^1.9.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589" - dependencies: - esprima "^3.1.3" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-scope@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-utils@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" - -eslint-visitor-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" - -eslint@^5.3.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.4.0.tgz#d068ec03006bb9e06b429dc85f7e46c1b69fac62" - dependencies: - ajv "^6.5.0" - babel-code-frame "^6.26.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" - debug "^3.1.0" - doctrine "^2.1.0" - eslint-scope "^4.0.0" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^4.0.0" - esquery "^1.0.1" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" - ignore "^4.0.2" - imurmurhash "^0.1.4" - inquirer "^5.2.0" - is-resolvable "^1.1.0" - js-yaml "^3.11.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.5" - minimatch "^3.0.4" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" - progress "^2.0.0" - regexpp "^2.0.0" - require-uncached "^1.0.3" - semver "^5.5.0" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" - table "^4.0.3" - text-table "^0.2.0" - -espree@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-4.0.0.tgz#253998f20a0f82db5d866385799d912a83a36634" - dependencies: - acorn "^5.6.0" - acorn-jsx "^4.1.1" - -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - -esquery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - dependencies: - estraverse "^4.0.0" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - dependencies: - estraverse "^4.1.0" - -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -events@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - -eventsource@^0.1.3: - version "0.1.6" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" - dependencies: - original ">=0.0.5" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -exec-sh@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" - dependencies: - merge "^1.2.0" - -execall@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execall/-/execall-1.0.0.tgz#73d0904e395b3cab0658b08d09ec25307f29bb73" - dependencies: - clone-regexp "^1.0.0" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - dependencies: - homedir-polyfill "^1.0.1" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - -external-editor@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - -fast-glob@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.2.tgz#71723338ac9b4e0e2fff1d6748a2a13d5ed352bf" - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.0.1" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.1" - micromatch "^3.1.10" - -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - -faye-websocket@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.7.3.tgz#cc4074c7f4a4dfd03af54dd65c354b135132ce11" - dependencies: - websocket-driver ">=0.3.6" - -figgy-pudding@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" - integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - -file-loader@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" - integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== - dependencies: - loader-utils "^1.0.2" - schema-utils "^1.0.0" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -filesize@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.3.0.tgz#53149ea3460e3b2e024962a51648aa572cf98122" - -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -find-cache-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^2.0.0" - -find-cache-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-index@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -findup-sync@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" - dependencies: - detect-file "^1.0.0" - is-glob "^3.1.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -flat-cache@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" - dependencies: - circular-json "^0.3.1" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" - -flatten@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -for-in@^1.0.1, for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - dependencies: - map-cache "^0.2.2" - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-extra@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" - dependencies: - minipass "^2.2.1" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.0.0, fsevents@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" - dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - -glob2base@^0.0.12: - version "0.0.12" - resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" - dependencies: - find-index "^0.1.1" - -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.1, glob@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -globals@^11.1.0, globals@^11.7.0: - version "11.7.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" - dependencies: - array-union "^1.0.1" - dir-glob "^2.0.0" - fast-glob "^2.0.2" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - -globjoin@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" - -gonzales-pe@4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.2.3.tgz#41091703625433285e0aee3aa47829fc1fbeb6f2" - dependencies: - minimist "1.1.x" - -graceful-fs@^4.1.15: - version "4.1.15" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" - integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== - -graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -gzip-size@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" - dependencies: - duplexer "^0.1.1" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.5" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812" - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -homedir-polyfill@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" - dependencies: - parse-passwd "^1.0.0" - -hosted-git-info@^2.1.4: - version "2.7.1" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" - -html-comment-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" - -html-entities@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.0.tgz#41948caf85ce82fed36e4e6a0ed371a6664379e2" - -html-tags@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" - -htmlparser2@^3.9.2: - version "3.9.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" - dependencies: - domelementtype "^1.3.0" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^2.0.2" - -http-parser-js@>=0.4.0: - version "0.4.13" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - -iconv-lite@^0.4.17, iconv-lite@^0.4.4: - version "0.4.23" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - -icss-utils@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.0.tgz#339dbbffb9f8729a243b701e1c29d4cc58c52f0e" - integrity sha512-3DEun4VOeMvSczifM3F2cKQrDQ5Pj6WKhkOq6HD4QTnDUAq8MQRxy5TX6Sy1iY6WPBe4gQ3p5vTECjbIkglkkQ== - dependencies: - postcss "^7.0.14" - -ieee754@^1.1.4: - version "1.1.12" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - dependencies: - minimatch "^3.0.4" - -ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - -ignore@^4.0.0, ignore@^4.0.2: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - dependencies: - import-from "^2.1.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - dependencies: - resolve-from "^3.0.0" - -import-lazy@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - -ini@^1.3.4, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - -inquirer@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726" - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.1.0" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^5.5.2" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - -interpret@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - dependencies: - loose-envify "^1.0.0" - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - dependencies: - kind-of "^6.0.0" - -is-alphabetical@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.2.tgz#1fa6e49213cb7885b75d15862fb3f3d96c884f41" - -is-alphanumeric@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4" - -is-alphanumerical@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz#1138e9ae5040158dc6ff76b820acd6b7a181fd40" - dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.4, is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - dependencies: - kind-of "^6.0.0" - -is-decimal@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.2.tgz#894662d6a8709d307f3a276ca4339c8fa5dff0ff" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" - dependencies: - is-extglob "^2.1.1" - -is-hexadecimal@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz#b6e710d7d07bb66b98cb8cece5c9b4921deeb835" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - -is-path-in-cwd@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - dependencies: - path-is-inside "^1.0.1" - -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - dependencies: - isobject "^3.0.1" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - -is-resolvable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - -is-supported-regexp-flag@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz#21ee16518d2c1dd3edd3e9a0d57e50207ac364ca" - -is-svg@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" - dependencies: - html-comment-regex "^1.1.0" - -is-whitespace-character@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz#ede53b4c6f6fb3874533751ec9280d01928d03ed" - -is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - -is-word-character@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.2.tgz#46a5dac3f2a1840898b91e576cd40d493f3ae553" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - -javascript-stringify@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz#142d111f3a6e3dae8f4a9afd77d45855b5a9cce3" - -js-base64@^2.1.9: - version "2.4.8" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.8.tgz#57a9b130888f956834aa40c5b165ba59c758f033" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - -js-yaml@^3.11.0, js-yaml@^3.9.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^3.13.0: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@^2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -json-loader@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" - integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - -json3@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" - -json5@2.x: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== - dependencies: - minimist "^1.2.0" - -json5@^0.5.0, json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - -known-css-properties@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.6.1.tgz#31b5123ad03d8d1a3f36bd4155459c981173478b" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -livereload-js@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.3.0.tgz#c3ab22e8aaf5bf3505d80d098cbad67726548c9a" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -loader-runner@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" - -loader-utils@^1.0.2, loader-utils@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - -loader-utils@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lodash._reinterpolate@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - -lodash.some@^4.5.1: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - -lodash.template@^4.3.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" - dependencies: - lodash._reinterpolate "~3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" - dependencies: - lodash._reinterpolate "~3.0.0" - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - -lodash.upperfirst@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" - integrity sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984= - -lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: - version "4.17.10" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" - -log-symbols@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - dependencies: - chalk "^2.0.1" - -longest-streak@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.2.tgz#2421b6ba939a443bb9ffebf596585a50b4c38e2e" - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - dependencies: - pify "^3.0.0" - -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-error@1.x: - version "1.3.5" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" - integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== - -mamacro@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" - integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - dependencies: - object-visit "^1.0.0" - -markdown-escapes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.2.tgz#e639cbde7b99c841c0bacc8a07982873b46d2122" - -markdown-table@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.2.tgz#c78db948fa879903a41bce522e3b96f801c63786" - -math-expression-evaluator@^1.2.14: - version "1.2.17" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" - -math-random@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" - -mathml-tag-names@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.0.tgz#490b70e062ee24636536e3d9481e333733d00f2c" - -md5.js@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -mdast-util-compact@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.2.tgz#c12ebe16fffc84573d3e19767726de226e95f649" - dependencies: - unist-util-visit "^1.1.0" - -memory-fs@^0.4.0, memory-fs@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -meow@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - yargs-parser "^10.0.0" - -merge2@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.2.tgz#03212e3da8d86c4d8523cebd6318193414f94e34" - -merge@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" - -micromatch@^2.1.5, micromatch@^2.3.11: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime@^2.0.3: - version "2.3.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369" - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - -mini-css-extract-plugin@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz#ac0059b02b9692515a637115b0cc9fed3a35c7b0" - integrity sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw== - dependencies: - loader-utils "^1.1.0" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - -minimatch@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" - -minimatch@^3.0.2, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist-options@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@1.1.x: - version "1.1.3" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" - -minimist@^1.1.0, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - -minipass@^2.2.1, minipass@^2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957" - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" - dependencies: - minipass "^2.2.1" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@0.5.x, mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -mout@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mout/-/mout-1.1.0.tgz#0b29d41e6a80fa9e2d4a5be9d602e1d9d02177f6" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - -nan@^2.9.2: - version "2.10.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - -needle@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.2.tgz#1120ca4c41f2fcc6976fd28a8968afe239929418" - dependencies: - debug "^2.1.2" - iconv-lite "^0.4.4" - sax "^1.2.4" - -neo-async@^2.5.0: - version "2.5.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.2.tgz#489105ce7bc54e709d736b195f82135048c50fcc" - -nice-try@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" - -node-libs-browser@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^1.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.0" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.10.3" - vm-browserify "0.0.4" - -node-pre-gyp@^0.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-releases@^1.0.0-alpha.11: - version "1.0.0-alpha.11" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.11.tgz#73c810acc2e5b741a17ddfbb39dfca9ab9359d8a" - dependencies: - semver "^5.3.0" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - -normalize-selector@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03" - -normalize-url@^1.4.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -npm-bundled@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" - -npm-packlist@^1.1.6: - version "1.1.11" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - dependencies: - isobject "^3.0.0" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - dependencies: - isobject "^3.0.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - dependencies: - mimic-fn "^1.0.0" - -opn@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.1, optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -original@>=0.0.5: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - dependencies: - url-parse "^1.4.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@^0.1.3, osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" - integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-map@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pako@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" - -parallel-transform@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" - integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= - dependencies: - cyclist "~0.2.2" - inherits "^2.0.3" - readable-stream "^2.1.5" - -parse-asn1@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - -parse-entities@^1.0.2, parse-entities@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.1.2.tgz#9eaf719b29dc3bd62246b4332009072e01527777" - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-is-inside@^1.0.1, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - -path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - -path-parse@^1.0.5, path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - dependencies: - pify "^3.0.0" - -pbkdf2@^3.0.3: - version "3.0.16" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pify@^2.0.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - -pify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.0.tgz#db04c982b632fd0df9090d14aaf1c8413cadb695" - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - dependencies: - find-up "^2.1.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - -pofile@^1.0.9: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pofile/-/pofile-1.0.11.tgz#35aff58c17491d127a07336d5522ebc9df57c954" - -portfinder@^1.0.17: - version "1.0.20" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a" - integrity sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw== - dependencies: - async "^1.5.2" - debug "^2.2.0" - mkdirp "0.5.x" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - -postcss-calc@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" - dependencies: - postcss "^5.0.2" - postcss-message-helpers "^2.0.0" - reduce-css-calc "^1.2.6" - -postcss-colormin@^2.1.8: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" - dependencies: - colormin "^1.0.5" - postcss "^5.0.13" - postcss-value-parser "^3.2.3" - -postcss-convert-values@^2.3.4: - version "2.6.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" - dependencies: - postcss "^5.0.11" - postcss-value-parser "^3.1.2" - -postcss-css-variables@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/postcss-css-variables/-/postcss-css-variables-0.11.0.tgz#09562082fdf0b8e9d19417e32467453f7df34a7c" - integrity sha512-pjqWnJSy8zoentAhRIph/DiOX0EZmT/dpmVbpdSrCSdkdqstl2ViBlAfIIuHvHI+baTV8Gd+WzsVFjDZqVn4dg== - dependencies: - escape-string-regexp "^1.0.3" - extend "^3.0.1" - postcss "^6.0.8" - -postcss-discard-comments@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" - dependencies: - postcss "^5.0.14" - -postcss-discard-duplicates@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" - dependencies: - postcss "^5.0.4" - -postcss-discard-empty@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" - dependencies: - postcss "^5.0.14" - -postcss-discard-overridden@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" - dependencies: - postcss "^5.0.16" - -postcss-discard-unused@^2.2.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" - dependencies: - postcss "^5.0.14" - uniqs "^2.0.0" - -postcss-filter-plugins@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec" - dependencies: - postcss "^5.0.4" - -postcss-hexrgba@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-hexrgba/-/postcss-hexrgba-1.0.1.tgz#d82256b7b5116e5f582026fce549fec21db816e0" - integrity sha512-zFJ5XEoh6aD1clOCxHx2D2Vj2dzcr86t5OXgZKB0K2z0LWZlWhdVJV1lpJBRX075qhTSbKqqjemUHU+TSy9Buw== - dependencies: - postcss "^6.0.7" - -postcss-html@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.33.0.tgz#8ab6067d7a8a234e1937920b38760e3be1dca070" - dependencies: - htmlparser2 "^3.9.2" - -postcss-import@^11.0.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-11.1.0.tgz#55c9362c9192994ec68865d224419df1db2981f0" - dependencies: - postcss "^6.0.1" - postcss-value-parser "^3.2.3" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-import@^12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" - integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== - dependencies: - postcss "^7.0.1" - postcss-value-parser "^3.2.3" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-1.0.1.tgz#ffaf29226e399ea74b5dce02cab1729d7addbc7b" - dependencies: - camelcase-css "^1.0.1" - postcss "^6.0.11" - -postcss-jsx@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.33.0.tgz#433f8aadd6f3b0ee403a62b441bca8db9c87471c" - dependencies: - "@babel/core" "^7.0.0-rc.1" - optionalDependencies: - postcss-styled ">=0.33.0" - -postcss-less@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-2.0.0.tgz#5d190b8e057ca446d60fe2e2587ad791c9029fb8" - dependencies: - postcss "^5.2.16" - -postcss-load-config@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484" - dependencies: - cosmiconfig "^4.0.0" - import-cwd "^2.0.0" - -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-markdown@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/postcss-markdown/-/postcss-markdown-0.33.0.tgz#2d0462742ee108c9d6020780184b499630b8b33a" - dependencies: - remark "^9.0.0" - unist-util-find-all-after "^1.0.2" - -postcss-media-query-parser@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" - -postcss-merge-idents@^2.1.5: - version "2.1.7" - resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" - dependencies: - has "^1.0.1" - postcss "^5.0.10" - postcss-value-parser "^3.1.1" - -postcss-merge-longhand@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" - dependencies: - postcss "^5.0.4" - -postcss-merge-rules@^2.0.3: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" - dependencies: - browserslist "^1.5.2" - caniuse-api "^1.5.2" - postcss "^5.0.4" - postcss-selector-parser "^2.2.2" - vendors "^1.0.0" - -postcss-message-helpers@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" - -postcss-minify-font-values@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" - dependencies: - object-assign "^4.0.1" - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-minify-gradients@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" - dependencies: - postcss "^5.0.12" - postcss-value-parser "^3.3.0" - -postcss-minify-params@^1.0.4: - version "1.2.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.2" - postcss-value-parser "^3.0.2" - uniqs "^2.0.0" - -postcss-minify-selectors@^2.0.4: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" - dependencies: - alphanum-sort "^1.0.2" - has "^1.0.1" - postcss "^5.0.14" - postcss-selector-parser "^2.0.0" - -postcss-mixins@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/postcss-mixins/-/postcss-mixins-6.2.0.tgz#fa9d2c2166b2ae7745956c727ab9dd2de4b96a40" - dependencies: - globby "^6.1.0" - postcss "^6.0.13" - postcss-js "^1.0.1" - postcss-simple-vars "^4.1.0" - sugarss "^1.0.0" - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz#dd9953f6dd476b5fd1ef2d8830c8929760b56e63" - integrity sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - postcss-value-parser "^3.3.1" - -postcss-modules-scope@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz#ad3f5bf7856114f6fcab901b0502e2a2bc39d4eb" - integrity sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64" - integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w== - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^7.0.6" - -postcss-nested@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-4.1.2.tgz#8e0570f736bfb4be5136e31901bf2380b819a561" - integrity sha512-9bQFr2TezohU3KRSu9f6sfecXmf/x6RXDedl8CHF6fyuyVW7UqgNMRdWMHZQWuFY6Xqs2NYk+Fj4Z4vSOf7PQg== - dependencies: - postcss "^7.0.14" - postcss-selector-parser "^5.0.0" - -postcss-nesting@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-4.2.1.tgz#0483bce338b3f0828ced90ff530b29b98b00300d" - dependencies: - postcss "^6.0.11" - -postcss-normalize-charset@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" - dependencies: - postcss "^5.0.5" - -postcss-normalize-url@^3.0.7: - version "3.0.8" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^1.4.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - -postcss-ordered-values@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.1" - -postcss-reduce-idents@^2.2.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-reduce-initial@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" - dependencies: - postcss "^5.0.4" - -postcss-reduce-transforms@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" - dependencies: - has "^1.0.1" - postcss "^5.0.8" - postcss-value-parser "^3.0.1" - -postcss-reporter@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-5.0.0.tgz#a14177fd1342829d291653f2786efd67110332c3" - dependencies: - chalk "^2.0.1" - lodash "^4.17.4" - log-symbols "^2.0.0" - postcss "^6.0.8" - -postcss-resolve-nested-selector@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" - -postcss-safe-parser@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" - dependencies: - postcss "^7.0.0" - -postcss-sass@^0.3.0: - version "0.3.2" - resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.3.2.tgz#17f3074cecb28128b156f1a4407c6ad075d7e00c" - dependencies: - gonzales-pe "4.2.3" - postcss "6.0.22" - -postcss-scss@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.0.0.tgz#248b0a28af77ea7b32b1011aba0f738bda27dea1" - dependencies: - postcss "^7.0.0" - -postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" - dependencies: - dot-prop "^4.1.1" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== - dependencies: - cssesc "^2.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" - integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-simple-vars@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-simple-vars/-/postcss-simple-vars-4.1.0.tgz#043248cfef8d3f51b3486a28c09f8375dbf1b2f9" - dependencies: - postcss "^6.0.9" - -postcss-styled@>=0.33.0, postcss-styled@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/postcss-styled/-/postcss-styled-0.33.0.tgz#69be377584105a582fda7e4f76888e5b97eed737" - -postcss-svgo@^2.1.1: - version "2.1.6" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" - dependencies: - is-svg "^2.0.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - svgo "^0.7.0" - -postcss-syntax@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.33.0.tgz#59c0c678d2f9ecefa84c6ce9ef46fc805c54ab3a" - -postcss-unique-selectors@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" - -postcss-value-parser@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-zindex@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" - dependencies: - has "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss@6.0.22: - version "6.0.22" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.22.tgz#e23b78314905c3b90cbd61702121e7a78848f2a3" - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.8, postcss@^5.2.16: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^6.0.1, postcss@^6.0.11, postcss@^6.0.13, postcss@^6.0.14, postcss@^6.0.7, postcss@^6.0.8, postcss@^6.0.9: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -postcss@^7.0.0, postcss@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.2.tgz#7b5a109de356804e27f95a960bef0e4d5bc9bb18" - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.15" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.15.tgz#7f62bfff3437a8d358850792e1daee828e67e959" - integrity sha512-+avadY713SyQf0m5np7byFzAFZyhPhXyxwp8OVmdd5mKOxm0VzM2AJkKIgBro7gGVk4kYlCDvBVrSqhU5m8E+w== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - -process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - -progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - -public-encrypt@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - -qs@^6.4.0: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - -querystringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755" - -quick-lru@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" - -randomatic@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116" - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -raw-body@~1.1.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" - dependencies: - bytes "1" - string_decoder "0.10" - -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-dev-utils@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-0.5.2.tgz#50d0b962d3a94b6c2e8f2011ed6468e4124bc410" - dependencies: - ansi-html "0.0.5" - chalk "1.1.3" - escape-string-regexp "1.0.5" - filesize "3.3.0" - gzip-size "3.0.0" - html-entities "1.2.0" - opn "4.0.2" - recursive-readdir "2.1.1" - sockjs-client "1.0.1" - strip-ansi "3.0.1" - -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - dependencies: - pify "^2.3.0" - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - dependencies: - resolve "^1.1.6" - -recursive-readdir@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.1.1.tgz#a01cfc7f7f38a53ec096a096f63a50489c3e297c" - dependencies: - minimatch "3.0.3" - -redent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" - dependencies: - indent-string "^3.0.0" - strip-indent "^2.0.0" - -reduce-css-calc@^1.2.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" - dependencies: - balanced-match "^0.4.2" - math-expression-evaluator "^1.2.14" - reduce-function-call "^1.0.1" - -reduce-function-call@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" - dependencies: - balanced-match "^0.4.2" - -regenerate@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.0.tgz#b2a7534a85ca1b033bcf5ce9ff8e56d4e0755365" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - -remark-parse@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" - dependencies: - collapse-white-space "^1.0.2" - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - is-word-character "^1.0.0" - markdown-escapes "^1.0.0" - parse-entities "^1.1.0" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - trim "0.0.1" - trim-trailing-lines "^1.0.0" - unherit "^1.0.4" - unist-util-remove-position "^1.0.0" - vfile-location "^2.0.0" - xtend "^4.0.1" - -remark-stringify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-5.0.0.tgz#336d3a4d4a6a3390d933eeba62e8de4bd280afba" - dependencies: - ccount "^1.0.0" - is-alphanumeric "^1.0.0" - is-decimal "^1.0.0" - is-whitespace-character "^1.0.0" - longest-streak "^2.0.1" - markdown-escapes "^1.0.0" - markdown-table "^1.1.0" - mdast-util-compact "^1.0.0" - parse-entities "^1.0.2" - repeat-string "^1.5.4" - state-toggle "^1.0.0" - stringify-entities "^1.0.1" - unherit "^1.0.4" - xtend "^4.0.1" - -remark@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/remark/-/remark-9.0.0.tgz#c5cfa8ec535c73a67c4b0f12bfdbd3a67d8b2f60" - dependencies: - remark-parse "^5.0.0" - remark-stringify "^5.0.0" - unified "^6.0.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - -repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -replace-ext@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" - -require-from-string@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - -resolve@1.x: - version "1.10.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.1.tgz#664842ac960795bbe758221cdccda61fb64b5f18" - integrity sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA== - dependencies: - path-parse "^1.0.6" - -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2: - version "1.8.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" - dependencies: - path-parse "^1.0.5" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - -rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - dependencies: - glob "^7.0.5" - -rimraf@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - dependencies: - is-promise "^2.1.0" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -rxjs@^5.5.2: - version "5.5.11" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.11.tgz#f733027ca43e3bec6b994473be4ab98ad43ced87" - dependencies: - symbol-observable "1.0.1" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - -safe-json-parse@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - -sax@^1.2.4, sax@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: - version "5.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" - -semver@^5.0.1, semver@^5.5, semver@^5.6.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" - integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== - -serialize-javascript@^1.4.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" - integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA== - -set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - -shell-quote@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" - dependencies: - array-filter "~0.0.0" - array-map "~0.0.0" - array-reduce "~0.0.0" - jsonify "~0.0.0" - -shelljs@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.2.tgz#345b7df7763f4c2340d584abb532c5f752ca9e35" - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -slice-ansi@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" - dependencies: - is-fullwidth-code-point "^2.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.0.1.tgz#8943ae05b46547bc2054816c409002cf5e2fe026" - dependencies: - debug "^2.1.0" - eventsource "^0.1.3" - faye-websocket "~0.7.3" - inherits "^2.0.1" - json3 "^3.3.2" - url-parse "^1.0.1" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" - -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - -source-map-support@~0.5.10: - version "0.5.12" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" - integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - -spdx-correct@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" - -specificity@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.4.0.tgz#301b1ab5455987c37d6d94f8c956ef9d9fb48c1d" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== - dependencies: - figgy-pudding "^3.5.1" - -state-toggle@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.1.tgz#c3cb0974f40a6a0f8e905b96789eb41afa1cde3a" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stream-browserify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string_decoder@0.10: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -string_decoder@^1.0.0, string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - dependencies: - safe-buffer "~5.1.0" - -stringify-entities@^1.0.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-1.3.2.tgz#a98417e5471fd227b3e45d3db1861c11caf668f7" - dependencies: - character-entities-html4 "^1.0.0" - character-entities-legacy "^1.0.0" - is-alphanumerical "^1.0.0" - is-hexadecimal "^1.0.0" - -strip-ansi@3.0.1, strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - dependencies: - ansi-regex "^3.0.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -style-loader@^0.23.1: - version "0.23.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" - integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== - dependencies: - loader-utils "^1.1.0" - schema-utils "^1.0.0" - -style-search@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" - -stylelint@^9.3.0: - version "9.5.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-9.5.0.tgz#f7afb45342abc4acf28a8da8a48373e9f79c1fb4" - dependencies: - autoprefixer "^9.0.0" - balanced-match "^1.0.0" - chalk "^2.4.1" - cosmiconfig "^5.0.0" - debug "^3.0.0" - execall "^1.0.0" - file-entry-cache "^2.0.0" - get-stdin "^6.0.0" - globby "^8.0.0" - globjoin "^0.1.4" - html-tags "^2.0.0" - ignore "^4.0.0" - import-lazy "^3.1.0" - imurmurhash "^0.1.4" - known-css-properties "^0.6.0" - lodash "^4.17.4" - log-symbols "^2.0.0" - mathml-tag-names "^2.0.1" - meow "^5.0.0" - micromatch "^2.3.11" - normalize-selector "^0.2.0" - pify "^4.0.0" - postcss "^7.0.0" - postcss-html "^0.33.0" - postcss-jsx "^0.33.0" - postcss-less "^2.0.0" - postcss-markdown "^0.33.0" - postcss-media-query-parser "^0.2.3" - postcss-reporter "^5.0.0" - postcss-resolve-nested-selector "^0.1.1" - postcss-safe-parser "^4.0.0" - postcss-sass "^0.3.0" - postcss-scss "^2.0.0" - postcss-selector-parser "^3.1.0" - postcss-styled "^0.33.0" - postcss-syntax "^0.33.0" - postcss-value-parser "^3.3.0" - resolve-from "^4.0.0" - signal-exit "^3.0.2" - specificity "^0.4.0" - string-width "^2.1.0" - style-search "^0.1.0" - sugarss "^2.0.0" - svg-tags "^1.0.0" - table "^4.0.1" - -subarg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" - dependencies: - minimist "^1.1.0" - -sugarss@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-1.0.1.tgz#be826d9003e0f247735f92365dc3fd7f1bae9e44" - dependencies: - postcss "^6.0.14" - -sugarss@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz#ddd76e0124b297d40bf3cca31c8b22ecb43bc61d" - dependencies: - postcss "^7.0.2" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -svg-tags@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - -svgo@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" - dependencies: - coa "~1.0.1" - colors "~1.1.2" - csso "~2.3.1" - js-yaml "~3.7.0" - mkdirp "~0.5.1" - sax "~1.2.1" - whet.extend "~0.9.9" - -symbol-observable@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" - -table@^4.0.1, table@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" - dependencies: - ajv "^6.0.1" - ajv-keywords "^3.0.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" - string-width "^2.1.1" - -tapable@^0.2.7: - version "0.2.8" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" - -tapable@^1.0.0, tapable@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tar@^4: - version "4.4.6" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b" - dependencies: - chownr "^1.0.1" - fs-minipass "^1.2.5" - minipass "^2.3.3" - minizlib "^1.1.0" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.2" - -terser-webpack-plugin@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.3.tgz#3f98bc902fac3e5d0de730869f50668561262ec8" - integrity sha512-GOK7q85oAb/5kE12fMuLdn2btOS9OBZn4VsecpHDywoUC/jLhSAKOiYo0ezx7ss2EXPMzyEWFoE0s1WLE+4+oA== - dependencies: - cacache "^11.0.2" - find-cache-dir "^2.0.0" - schema-utils "^1.0.0" - serialize-javascript "^1.4.0" - source-map "^0.6.1" - terser "^3.16.1" - webpack-sources "^1.1.0" - worker-farm "^1.5.2" - -terser@^3.16.1: - version "3.17.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" - integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== - dependencies: - commander "^2.19.0" - source-map "~0.6.1" - source-map-support "~0.5.10" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through2@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -timers-browserify@^2.0.4: - version "2.0.10" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" - dependencies: - setimmediate "^1.0.4" - -tiny-lr@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" - dependencies: - body "^5.1.0" - debug "^3.1.0" - faye-websocket "~0.10.0" - livereload-js "^2.3.0" - object-assign "^4.1.0" - qs "^6.4.0" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - dependencies: - os-tmpdir "~1.0.2" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -trim-newlines@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - -trim-trailing-lines@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz#e0ec0810fd3c3f1730516b45f49083caaf2774d9" - -trim@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" - -trough@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.3.tgz#e29bd1614c6458d44869fc28b255ab7857ef7c24" - -ts-jest@^23.10.5: - version "23.10.5" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-23.10.5.tgz#cdb550df4466a30489bf70ba867615799f388dd5" - integrity sha512-MRCs9qnGoyKgFc8adDEntAOP64fWK1vZKnOYU1o2HxaqjdJvGqmkLCPCnVq1/If4zkUmEjKPnCiUisTrlX2p2A== - dependencies: - bs-logger "0.x" - buffer-from "1.x" - fast-json-stable-stringify "2.x" - json5 "2.x" - make-error "1.x" - mkdirp "0.x" - resolve "1.x" - semver "^5.5" - yargs-parser "10.x" - -ts-loader@^3: - version "3.5.0" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-3.5.0.tgz#151d004dcddb4cf8e381a3bf9d6b74c2d957a9c0" - integrity sha512-JTia3kObhTk36wPFgy0RnkZReiusYx7Le9IhcUWRrCTcFcr6Dy1zGsFd3x8DG4gevlbN65knI8W50FfoykXcng== - dependencies: - chalk "^2.3.0" - enhanced-resolve "^3.0.0" - loader-utils "^1.0.2" - micromatch "^3.1.4" - semver "^5.0.1" - -tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: - version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" - integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== - -tslint-config-prettier@^1.15.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz#75f140bde947d35d8f0d238e0ebf809d64592c37" - integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg== - -tslint-react@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/tslint-react/-/tslint-react-3.6.0.tgz#7f462c95c4a0afaae82507f06517ff02942196a1" - integrity sha512-AIv1QcsSnj7e9pFir6cJ6vIncTqxfqeFF3Lzh8SuuBljueYzEAtByuB6zMaD27BL0xhMEqsZ9s5eHuCONydjBw== - dependencies: - tsutils "^2.13.1" - -tslint@^5.11.0: - version "5.16.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.16.0.tgz#ae61f9c5a98d295b9a4f4553b1b1e831c1984d67" - integrity sha512-UxG2yNxJ5pgGwmMzPMYh/CCnCnh0HfPgtlVRDs1ykZklufFBL1ZoTlWFRz2NQjcoEiDoRp+JyT0lhBbbH/obyA== - dependencies: - "@babel/code-frame" "^7.0.0" - builtin-modules "^1.1.1" - chalk "^2.3.0" - commander "^2.12.1" - diff "^3.2.0" - glob "^7.1.1" - js-yaml "^3.13.0" - minimatch "^3.0.4" - mkdirp "^0.5.1" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.8.0" - tsutils "^2.29.0" - -tsutils@^2.13.1, tsutils@^2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" - integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== - dependencies: - tslib "^1.8.1" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typescript@^3.2.2: - version "3.4.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99" - integrity sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw== - -uglify-js@^3.0.0: - version "3.5.10" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.5.10.tgz#652bef39f86d9dbfd6674407ee05a5e2d372cf2d" - integrity sha512-/GTF0nosyPLbdJBd+AwYiZ+Hu5z8KXWnO0WCGt1BQ/u9Iamhejykqmz5o1OHJ53+VAk6xVxychonnApDjuqGsw== - dependencies: - commander "~2.20.0" - source-map "~0.6.1" - -uglifyjs-webpack-plugin@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-2.1.2.tgz#70e5c38fb2d35ee887949c2a0adb2656c23296d5" - integrity sha512-G1fJx2uOAAfvdZ77SVCzmFo6mv8uKaHoZBL9Qq/ciC8r6p0ANOL1uY85fIUiyWXKw5RzAaJYZfNSL58Or2hQ0A== - dependencies: - cacache "^11.2.0" - find-cache-dir "^2.0.0" - schema-utils "^1.0.0" - serialize-javascript "^1.4.0" - source-map "^0.6.1" - uglify-js "^3.0.0" - webpack-sources "^1.1.0" - worker-farm "^1.5.2" - -unherit@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.1.tgz#132748da3e88eab767e08fabfbb89c5e9d28628c" - dependencies: - inherits "^2.0.1" - xtend "^4.0.1" - -unified@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" - dependencies: - bail "^1.0.0" - extend "^3.0.0" - is-plain-obj "^1.1.0" - trough "^1.0.0" - vfile "^2.0.0" - x-is-string "^0.1.0" - -union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^0.4.3" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" - integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg== - dependencies: - imurmurhash "^0.1.4" - -unist-util-find-all-after@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-1.0.2.tgz#9be49cfbae5ca1566b27536670a92836bf2f8d6d" - dependencies: - unist-util-is "^2.0.0" - -unist-util-is@^2.0.0, unist-util-is@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-2.1.2.tgz#1193fa8f2bfbbb82150633f3a8d2eb9a1c1d55db" - -unist-util-remove-position@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz#86b5dad104d0bbfbeb1db5f5c92f3570575c12cb" - dependencies: - unist-util-visit "^1.1.0" - -unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" - -unist-util-visit-parents@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz#63fffc8929027bee04bfef7d2cce474f71cb6217" - dependencies: - unist-util-is "^2.1.2" - -unist-util-visit@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.0.tgz#1cb763647186dc26f5e1df5db6bd1e48b3cc2fb1" - dependencies: - unist-util-visit-parents "^2.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -untildify@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-2.1.0.tgz#17eb2807987f76952e9c0485fc311d06a826a2e0" - dependencies: - os-homedir "^1.0.0" - -upath@^1.0.5: - version "1.1.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - -url-loader@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.1.tgz#4d1f3b4f90dde89f02c008e662d604d7511167c1" - dependencies: - loader-utils "^1.1.0" - mime "^2.0.3" - schema-utils "^1.0.0" - -url-parse@^1.0.1, url-parse@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.3.tgz#bfaee455c889023219d757e045fa6a684ec36c15" - dependencies: - querystringify "^2.0.0" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - dependencies: - inherits "2.0.1" - -util@^0.10.3: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - dependencies: - inherits "2.0.3" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vendors@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801" - -vfile-location@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.3.tgz#083ba80e50968e8d420be49dd1ea9a992131df77" - -vfile-message@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.0.1.tgz#51a2ccd8a6b97a7980bb34efb9ebde9632e93677" - dependencies: - unist-util-stringify-position "^1.1.1" - -vfile@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" - dependencies: - is-buffer "^1.1.4" - replace-ext "1.0.0" - unist-util-stringify-position "^1.0.0" - vfile-message "^1.0.0" - -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - dependencies: - indexof "0.0.1" - -watch@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/watch/-/watch-1.0.2.tgz#340a717bde765726fa0aa07d721e0147a551df0c" - dependencies: - exec-sh "^0.2.0" - minimist "^1.2.0" - -watchpack@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== - dependencies: - chokidar "^2.0.2" - graceful-fs "^4.1.2" - neo-async "^2.5.0" - -webpack-livereload-plugin@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/webpack-livereload-plugin/-/webpack-livereload-plugin-2.2.0.tgz#47a19f318f9e83733c26265c445f80eb0a4436c6" - integrity sha512-sx9xA5mHoNOUgLQI0PmXT3KV9ecsVmUaTgr+fsoL69qAOHw/7VzkL1+ZMDQ8n0dPbWounswK6cBRSgMod7Nhgg== - dependencies: - portfinder "^1.0.17" - tiny-lr "^1.1.1" - -webpack-sources@^1.1.0, webpack-sources@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" - integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^4.29.3: - version "4.30.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.30.0.tgz#aca76ef75630a22c49fcc235b39b4c57591d33a9" - integrity sha512-4hgvO2YbAFUhyTdlR4FNyt2+YaYBYHavyzjCMbZzgglo02rlKi/pcsEzwCuCpsn1ryzIl1cq/u8ArIKu8JBYMg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/wasm-edit" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - acorn "^6.0.5" - acorn-dynamic-import "^4.0.0" - ajv "^6.1.0" - ajv-keywords "^3.1.0" - chrome-trace-event "^1.0.0" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.0" - json-parse-better-errors "^1.0.2" - loader-runner "^2.3.0" - loader-utils "^1.1.0" - memory-fs "~0.4.1" - micromatch "^3.1.8" - mkdirp "~0.5.0" - neo-async "^2.5.0" - node-libs-browser "^2.0.0" - schema-utils "^1.0.0" - tapable "^1.1.0" - terser-webpack-plugin "^1.1.0" - watchpack "^1.5.0" - webpack-sources "^1.3.0" - -websocket-driver@>=0.3.6, websocket-driver@>=0.5.1: - version "0.7.0" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" - dependencies: - http-parser-js ">=0.4.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - -whet.extend@~0.9.9: - version "0.9.9" - resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" - -which@^1.2.14, which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - dependencies: - string-width "^1.0.2 || 2" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -worker-farm@^1.5.2: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - dependencies: - mkdirp "^0.5.1" - -x-is-string@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yallist@^3.0.0, yallist@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" - -yargs-parser@10.x, yargs-parser@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" - dependencies: - camelcase "^4.1.0" \ No newline at end of file diff --git a/Resources/Private/JavaScript/CkStyles/tsconfig.json b/Resources/Private/JavaScript/CkStyles/tsconfig.json new file mode 100644 index 0000000..b3ee375 --- /dev/null +++ b/Resources/Private/JavaScript/CkStyles/tsconfig.json @@ -0,0 +1,40 @@ +{ + // Visit https://aka.ms/tsconfig to read more about this file + "compilerOptions": { + // File Layout + // "rootDir": "./src", + // "outDir": "./dist", + + // Environment Settings + // See also https://aka.ms/tsconfig/module + "module": "nodenext", + "target": "esnext", + "types": [], + // For nodejs: + // "lib": ["esnext"], + // "types": ["node"], + // and npm install -D @types/node + + // Other Outputs + "sourceMap": true, + "declaration": true, + "declarationMap": true, + + // Stricter Typechecking Options + "noUncheckedIndexedAccess": true, + "exactOptionalPropertyTypes": true, + + // Style Options + // "noImplicitReturns": true, + // "noImplicitOverride": true, + // "noUnusedLocals": true, + // "noUnusedParameters": true, + // "noFallthroughCasesInSwitch": true, + // "noPropertyAccessFromIndexSignature": true, + + // Recommended Options + "strict": true, + "moduleDetection": "force", + "skipLibCheck": true, + } +} From 8189c49cbbb1bf15319025e2d3eddeb1e89435eb Mon Sep 17 00:00:00 2001 From: Robert Baruck Date: Mon, 2 Mar 2026 19:57:23 +0100 Subject: [PATCH 2/8] REFACTOR: Add config options; TypeScript; Use CkEditor API for toolbar entries; Latest Neos9 compatibility # Conflicts: # Resources/Private/JavaScript/CkStyles/TODO.md --- Resources/Private/JavaScript/CkStyles/TODO.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Private/JavaScript/CkStyles/TODO.md b/Resources/Private/JavaScript/CkStyles/TODO.md index d0e666e..00bec3e 100644 --- a/Resources/Private/JavaScript/CkStyles/TODO.md +++ b/Resources/Private/JavaScript/CkStyles/TODO.md @@ -7,3 +7,4 @@ - Update Readme - Fix in-code TODOs - Think about duplication of information and logic +- !!! Update composer.json to require neos ui with the minimum version that provides the needed ckeditor exports in extensibilityMap.json From 265b51449104e1e294faa0b14bfea38d32521807 Mon Sep 17 00:00:00 2001 From: Robert Baruck Date: Tue, 3 Mar 2026 13:11:24 +0100 Subject: [PATCH 3/8] REFACTOR: Use utils and constants; adjust build & watch scripts; add prettier --- .gitignore | 3 +- .nvmrc | 2 +- Configuration/Settings.CkStyles.yaml | 43 + Configuration/Settings.yaml | 44 - .../Private/JavaScript/CkStyles/.editorconfig | 12 + Resources/Private/JavaScript/CkStyles/.nvmrc | 1 - .../JavaScript/CkStyles/.prettierrc.yaml | 2 + Resources/Private/JavaScript/CkStyles/TODO.md | 5 +- .../Private/JavaScript/CkStyles/build.js | 23 +- .../Private/JavaScript/CkStyles/global.d.ts | 2 +- .../Private/JavaScript/CkStyles/package.json | 8 +- .../CkStyles/src/BlockStyleCommand.ts | 125 +- .../CkStyles/src/BlockStyleEditing.ts | 248 +- .../CkStyles/src/InlineStylesCommand.ts | 212 +- .../CkStyles/src/InlineStylesEditing.ts | 254 +- .../JavaScript/CkStyles/src/configuration.ts | 66 +- .../Private/JavaScript/CkStyles/src/index.ts | 2 +- .../JavaScript/CkStyles/src/manifest.ts | 194 +- .../Private/JavaScript/CkStyles/src/utils.ts | 39 + .../Private/JavaScript/CkStyles/tsconfig.json | 24 +- .../Private/JavaScript/CkStyles/yarn.lock | 2114 +++++++++++++++++ build.sh | 3 +- composer.json | 3 +- watch.sh | 1 - 24 files changed, 2820 insertions(+), 610 deletions(-) create mode 100644 Configuration/Settings.CkStyles.yaml create mode 100644 Resources/Private/JavaScript/CkStyles/.editorconfig delete mode 100644 Resources/Private/JavaScript/CkStyles/.nvmrc create mode 100644 Resources/Private/JavaScript/CkStyles/.prettierrc.yaml create mode 100644 Resources/Private/JavaScript/CkStyles/src/utils.ts create mode 100644 Resources/Private/JavaScript/CkStyles/yarn.lock diff --git a/.gitignore b/.gitignore index effeffd..a8b1eb2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea node_modules -yarn.lock +yarn-error.log .DS_Store +tsconfig.tsbuildinfo diff --git a/.nvmrc b/.nvmrc index 9ddeeba..a4a7a41 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -14.19.1 +v24.14.0 diff --git a/Configuration/Settings.CkStyles.yaml b/Configuration/Settings.CkStyles.yaml new file mode 100644 index 0000000..2e3e355 --- /dev/null +++ b/Configuration/Settings.CkStyles.yaml @@ -0,0 +1,43 @@ +# An example configuration: +#TechDivision: +# CkStyles: +# InlineStyles: +# presets: +# 'fontColor': +# label: 'Font color' +# options: +# 'primary': +# label: 'Red' +# cssClass: 'my-class-red' +# 'secondary': +# label: 'Green' +# cssClass: 'my-class-green' +# '': +# label: 'unset color' +# cssClass: null +# 'fontSize': +# label: 'Font size' +# options: +# 'small': +# label: 'Small' +# cssClass: 'my-class-size-small' +# 'big': +# label: 'Large' +# cssClass: 'my-class-size-large' +# '': +# label: 'unset size' +# cssClass: null +# BlockStyles: +# presets: +# 'indent': +# label: 'Indentation' +# options: +# 'primary': +# label: '2 rem' +# cssClass: 'indent-2' +# 'secondary': +# label: '4 rem' +# cssClass: 'indent-4' +# '': +# label: 'remove indent' +# cssClass: null diff --git a/Configuration/Settings.yaml b/Configuration/Settings.yaml index c9d3a17..5d12c28 100644 --- a/Configuration/Settings.yaml +++ b/Configuration/Settings.yaml @@ -1,47 +1,3 @@ -# An example configuration: -#TechDivision: -# CkStyles: -# InlineStyles: -# presets: -# 'fontColor': -# label: 'Font color' -# options: -# 'primary': -# label: 'Red' -# cssClass: 'my-class-red' -# 'secondary': -# label: 'Green' -# cssClass: 'my-class-green' -# '': -# label: 'unset color' -# cssClass: null -# 'fontSize': -# label: 'Font size' -# options: -# 'small': -# label: 'Small' -# cssClass: 'my-class-size-small' -# 'big': -# label: 'Large' -# cssClass: 'my-class-size-large' -# '': -# label: 'unset size' -# cssClass: null -# BlockStyles: -# presets: -# 'indent': -# label: 'Indentation' -# options: -# 'primary': -# label: '2 rem' -# cssClass: 'indent-2' -# 'secondary': -# label: '4 rem' -# cssClass: 'indent-4' -# '': -# label: 'remove indent' -# cssClass: null - Neos: Neos: Ui: diff --git a/Resources/Private/JavaScript/CkStyles/.editorconfig b/Resources/Private/JavaScript/CkStyles/.editorconfig new file mode 100644 index 0000000..ec84c55 --- /dev/null +++ b/Resources/Private/JavaScript/CkStyles/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*.{ts,js}] +# Non-configurable Prettier behaviors +charset = utf-8 +insert_final_newline = true + +# Configurable Prettier behaviors +end_of_line = lf +indent_style = space +indent_size = 4 +max_line_length = 120 diff --git a/Resources/Private/JavaScript/CkStyles/.nvmrc b/Resources/Private/JavaScript/CkStyles/.nvmrc deleted file mode 100644 index a4a7a41..0000000 --- a/Resources/Private/JavaScript/CkStyles/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v24.14.0 diff --git a/Resources/Private/JavaScript/CkStyles/.prettierrc.yaml b/Resources/Private/JavaScript/CkStyles/.prettierrc.yaml new file mode 100644 index 0000000..dde8893 --- /dev/null +++ b/Resources/Private/JavaScript/CkStyles/.prettierrc.yaml @@ -0,0 +1,2 @@ +# WHY empty?: We use prettier's defaults and applicable settings from .editorconfig. +# WHY YAML format?: To be able to use comments like these. diff --git a/Resources/Private/JavaScript/CkStyles/TODO.md b/Resources/Private/JavaScript/CkStyles/TODO.md index 00bec3e..3f16b5f 100644 --- a/Resources/Private/JavaScript/CkStyles/TODO.md +++ b/Resources/Private/JavaScript/CkStyles/TODO.md @@ -3,8 +3,5 @@ - Enable translation - see https://codeberg.org/PackageFactory/PackageFactory.CkInlineImages/src/branch/main - and https://github.com/techdivision/ckstyles/pull/41 -- Understand and Check Command.isEnabled logic (https://github.com/techdivision/ckstyles/pull/44/changes) - Update Readme -- Fix in-code TODOs -- Think about duplication of information and logic -- !!! Update composer.json to require neos ui with the minimum version that provides the needed ckeditor exports in extensibilityMap.json +- !!! change outDir diff --git a/Resources/Private/JavaScript/CkStyles/build.js b/Resources/Private/JavaScript/CkStyles/build.js index 7f61b4e..813c5cb 100644 --- a/Resources/Private/JavaScript/CkStyles/build.js +++ b/Resources/Private/JavaScript/CkStyles/build.js @@ -1,6 +1,6 @@ -const esbuild = require('esbuild'); +const esbuild = require("esbuild"); const extensibilityMap = require("@neos-project/neos-ui-extensibility/extensibilityMap.json"); -const isWatch = process.argv.includes('--watch'); +const isWatch = process.argv.includes("--watch"); /** @type {import("esbuild").BuildOptions} */ const options = { @@ -11,22 +11,25 @@ const options = { legalComments: "linked", target: "es2020", entryPoints: { - "Plugin": "./src/index.ts", + Plugin: "./src/index.ts", }, outdir: "../../../../../Neos.NeosIo/Packages/Plugins/TechDivision.CkStyles/Resources/Public/JavaScript/CkStyles/", alias: { "@ckeditor/ckeditor5-ui/theme/components/form/form.css": "./empty.css", "@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css": "./empty.css", - ...extensibilityMap + ...extensibilityMap, }, loader: { - '.svg': 'text', - '.css': 'empty' - } -} + ".svg": "text", + ".css": "empty", + }, +}; if (isWatch) { - esbuild.context(options).then((ctx) => ctx.watch()) + (async () => { + const ctx = await esbuild.context(options); + await ctx.watch(); + })(); } else { - esbuild.build(options) + esbuild.build(options); } diff --git a/Resources/Private/JavaScript/CkStyles/global.d.ts b/Resources/Private/JavaScript/CkStyles/global.d.ts index 1c1d740..32f7956 100644 --- a/Resources/Private/JavaScript/CkStyles/global.d.ts +++ b/Resources/Private/JavaScript/CkStyles/global.d.ts @@ -1 +1 @@ -declare module '@neos-project/neos-ui-extensibility'; +declare module "@neos-project/neos-ui-extensibility"; diff --git a/Resources/Private/JavaScript/CkStyles/package.json b/Resources/Private/JavaScript/CkStyles/package.json index 45140ea..652a7e3 100644 --- a/Resources/Private/JavaScript/CkStyles/package.json +++ b/Resources/Private/JavaScript/CkStyles/package.json @@ -3,7 +3,9 @@ "license": "GNU GPLv3", "private": true, "scripts": { - "build": "node build.js" + "build": "tsc --noEmit && node build.js", + "watch": "concurrently -n 'TSC,ESBuild' 'tsc --noEmit --watch --incremental --preserveWatchOutput' 'node build.js --watch'", + "prettier:write": "prettier --write './**/*.{ts,js}'" }, "dependencies": { "@ckeditor/ckeditor5-core": "47.2.0", @@ -13,6 +15,8 @@ }, "devDependencies": { "esbuild": "^0.27.3", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "concurrently": "^9.2.1", + "prettier": "^3.8.1" } } diff --git a/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts b/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts index 44fa2d4..878b157 100644 --- a/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts +++ b/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts @@ -1,78 +1,81 @@ // Originally taken from https://raw.githubusercontent.com/ckeditor/ckeditor5/master/packages/ckeditor5-basic-styles/src/attributecommand.js and adjusted -import {Command, type Editor} from '@ckeditor/ckeditor5-core'; -import {first} from '@ckeditor/ckeditor5-utils'; +import { Command, type Editor } from "@ckeditor/ckeditor5-core"; /** * Set a key-value block style; e.g. "fontColor=red". */ export default class BlockStyleCommand extends Command { - declare public value: string[]; + declare public value: string[]; - /** - * The attribute that will be set by the command. - * @observable - * @readonly - */ - public readonly attributeKey: string; + /** + * The attribute that will be set by the command. + * @observable + * @readonly + */ + public readonly attributeKey: string; - /** - * @param {module:core/editor/editor~Editor} editor - * @param {String} attributeKey Attribute that will be set by the command. - */ - constructor(editor: Editor, attributeKey: string) { - super(editor); + /** + * @param {module:core/editor/editor~Editor} editor + * @param {String} attributeKey Attribute that will be set by the command. + */ + constructor(editor: Editor, attributeKey: string) { + super(editor); - this.attributeKey = attributeKey; - this.value = []; - } + this.attributeKey = attributeKey; + this.value = []; + } + + /** + * Updates the command's {@link #value} and {@link #isEnabled}. + */ + public override refresh(): void { + const model = this.editor.model; + const doc = model.document; + const schema = model.schema; + const blocks = Array.from(doc.selection.getSelectedBlocks()); + + // reset value and enabled state + this.value = []; + this.isEnabled = false; - /** - * Updates the command's {@link #value} and {@link #isEnabled}. - */ - public override refresh(): void { - const model = this.editor.model; - const doc = model.document; - const schema = model.schema; - const blocks = Array.from(doc.selection.getSelectedBlocks()); + for (const block of blocks) { + if (schema.checkAttribute(block, this.attributeKey)) { + // if at least one block allows the attribute, the command should be enabled + this.isEnabled = true; - const values: string[] = []; - for (const block of blocks) { - if (schema.checkAttribute(block, this.attributeKey)) { - const value = block.getAttribute(this.attributeKey); - if (typeof value === 'string' && !values.includes(value) && value !== '') { - values.push(value); + // if the block has the attribute and its value is one of the allowed values, add it to the command value + const value = block.getAttribute(this.attributeKey); + if (typeof value === "string" && this.value.includes(value) && value !== "") { + this.value.push(value); + } + } } - } } - this.value = values; - this.isEnabled = !!blocks; - } + /** + * Executes the command — sets the attribute to the desired value. If there is no desired valued, removes the + * attribute on each block. + * + * @fires execute + * @param {Object} [options] Command options. + * @param {String} [options.value] The value to be set; if null or not existing, the attribute will be removed. + */ + public override execute(options: { value?: any } = {}) { + const model = this.editor.model; + const doc = model.document; + const selection = doc.selection; - /** - * Executes the command — sets the attribute to the desired value. If there is no desired valued, removes the - * attribute on each block. - * - * @fires execute - * @param {Object} [options] Command options. - * @param {String} [options.value] The value to be set; if null or not existing, the attribute will be removed. - */ - execute(options: { value?: any } = {}) { - const model = this.editor.model; - const doc = model.document; - const selection = doc.selection; + const value = options.value; + const blocksToChange = selection.getSelectedBlocks(); - const value = options.value; - const blocksToChange = selection.getSelectedBlocks(); - - model.change(writer => { - for (const block of blocksToChange) { - if (value) { - writer.setAttribute(this.attributeKey, value, block); - } else { - writer.removeAttribute(this.attributeKey, block); - } - } - }); - } + model.change((writer) => { + for (const block of blocksToChange) { + if (value) { + writer.setAttribute(this.attributeKey, value, block); + } else { + writer.removeAttribute(this.attributeKey, block); + } + } + }); + } } diff --git a/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts b/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts index db97f9b..ac14e16 100644 --- a/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts +++ b/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts @@ -1,130 +1,138 @@ -import {Plugin, PluginConstructor} from '@ckeditor/ckeditor5-core'; -import BlockStyleCommand from "./BlockStyleCommand"; +import { Plugin, PluginConstructor } from "@ckeditor/ckeditor5-core"; import { - addListToDropdown, - ButtonExecuteEvent, - createDropdown, - ListDropdownItemDefinition, - UIModel + addListToDropdown, + ButtonExecuteEvent, + createDropdown, + ListDropdownItemDefinition, + UIModel } from "@ckeditor/ckeditor5-ui"; -import {Collection} from "@ckeditor/ckeditor5-utils"; +import { Collection } from "@ckeditor/ckeditor5-utils"; + +import BlockStyleCommand from "./BlockStyleCommand"; import { - CK_STYLES_BLOCK_STYLES_IDENTIFIER, - CkStylesPresetConfiguration, - CkStylesPresetIdentifier, - TECHDIVISION_CKSTYLES__NAME_SPACE + BLOCK_STYLING__ATTRIBUTE_PREFIX, + BLOCK_STYLING__COMMAND_PREFIX, + CK_STYLES_BLOCK_STYLES_IDENTIFIER, + type CkStylesPresetConfiguration, + type CkStylesPresetIdentifier, + TECHDIVISION_CKSTYLES__NAME_SPACE } from "./configuration"; +import { createAttributeKey, createCommandId, createDropdownId } from "./utils"; /** * FACTORY FUNCTION for the plugin * needs the current preset configuration as parameter. */ -export function createBlockStyleEditingPlugin(presetIdentifier: CkStylesPresetIdentifier, presetConfiguration: CkStylesPresetConfiguration): PluginConstructor { - return class BlockStyleEditing extends Plugin { - - public static get pluginName() { - return `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_BLOCK_STYLES_IDENTIFIER}:${presetIdentifier}`; - } - - init() { - const schema = this.editor.model.schema; - const optionIdentifiers = Object.keys(presetConfiguration.options); - const modelAttributeKey = `blockStyles-${presetIdentifier}`; - - schema.extend( - '$block', - {allowAttributes: modelAttributeKey} - ); - - // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html - schema.setAttributeProperties( - modelAttributeKey, - {isFormatting: true} - ); - - // Register model-view conversion - this.editor.conversion.attributeToAttribute({ - model: { - key: modelAttributeKey, - values: optionIdentifiers, - }, - view: optionIdentifiers.reduce((viewConfig: Record, optionIdentifier) => { - const options = presetConfiguration.options[optionIdentifier]!; - - if ('attribute' in options) { - viewConfig[optionIdentifier] = { - key: 'attribute', - value: options.attributeValue, - } - } else if ('cssClass' in options) { - viewConfig[optionIdentifier] = { - key: 'class', - value: options.cssClass, - } - } else { - throw new Error(`Invalid configuration for option ${optionIdentifier} in preset ${presetIdentifier}: either "attribute" and "attributeValue" or "cssClass" must be set.`); - } - - return viewConfig; - }, {}) - }); - - // Register command - const commandId = `blockStyles:${presetIdentifier}` - this.editor.commands.add(commandId, new BlockStyleCommand(this.editor, modelAttributeKey)); - - // Register dropdown in the UI - this.editor.ui.componentFactory.add( - `${commandId}_dropdown`, - (locale) => { - const dropdownView = createDropdown(locale); - const command = this.editor.commands.get(commandId) as BlockStyleCommand; - - if (!command) { - console.error(`Command ${commandId} not found for dropdown ${commandId}_dropdown`); - return dropdownView; - } - - dropdownView.buttonView.set({ - label: presetConfiguration.label, - withText: presetConfiguration.showLabel ?? true, - tooltip: true, - icon: presetConfiguration.icon ?? undefined, - }); - - dropdownView.bind('isEnabled').to(command, 'isEnabled', isEnabled => isEnabled); - - const itemCollection = new Collection(); - - Object.keys(presetConfiguration.options).forEach(optionIdentifier => { - const option = presetConfiguration.options[optionIdentifier]!; - const itemDefinition: ListDropdownItemDefinition = { - type: 'button', - model: new UIModel({ - commandValue: optionIdentifier, - label: option.label, - icon: option.icon ?? undefined, - withText: option.showLabel ?? true, - toggleable: true, - }) - }; - - itemDefinition.model.bind('isOn').to(command, 'value', (value) => value.includes(optionIdentifier)); - - itemCollection.add(itemDefinition); - }); - - addListToDropdown(dropdownView, itemCollection); - - // register execute event for dropdown - this.listenTo(dropdownView, 'execute', evt => { - const {commandValue} = evt.source as any; - this.editor.execute(commandId, {value: commandValue}); - this.editor.editing.view.focus(); - }); - - return dropdownView; - }); - } - } +export function createBlockStyleEditingPlugin( + presetIdentifier: CkStylesPresetIdentifier, + presetConfiguration: CkStylesPresetConfiguration, +): PluginConstructor { + return class BlockStyleEditing extends Plugin { + public static get pluginName() { + return `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_BLOCK_STYLES_IDENTIFIER}:${presetIdentifier}`; + } + + init() { + const schema = this.editor.model.schema; + const optionIdentifiers = Object.keys(presetConfiguration.options); + const modelAttributeKey = createAttributeKey(BLOCK_STYLING__ATTRIBUTE_PREFIX, presetIdentifier); + + schema.extend("$block", { allowAttributes: modelAttributeKey }); + + // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html + schema.setAttributeProperties(modelAttributeKey, { + isFormatting: true, + }); + + // Register model-view conversion + this.editor.conversion.attributeToAttribute({ + model: { + key: modelAttributeKey, + values: optionIdentifiers, + }, + view: optionIdentifiers.reduce((viewConfig: Record, optionIdentifier) => { + const options = presetConfiguration.options[optionIdentifier]!; + + if ("attribute" in options) { + viewConfig[optionIdentifier] = { + key: "attribute", + value: options.attributeValue, + }; + } else if ("cssClass" in options) { + viewConfig[optionIdentifier] = { + key: "class", + value: options.cssClass, + }; + } else { + throw new Error( + `Invalid configuration for option ${optionIdentifier} in preset ${presetIdentifier}: either "attribute" and "attributeValue" or "cssClass" must be set.`, + ); + } + + return viewConfig; + }, {}), + }); + + // Register command + const commandId = createCommandId(BLOCK_STYLING__COMMAND_PREFIX, presetIdentifier); + this.editor.commands.add(commandId, new BlockStyleCommand(this.editor, modelAttributeKey)); + + // Register dropdown in the UI + this.editor.ui.componentFactory.add( + createDropdownId(BLOCK_STYLING__COMMAND_PREFIX, presetIdentifier), + (locale) => { + const dropdownView = createDropdown(locale); + const command = this.editor.commands.get(commandId) as BlockStyleCommand; + + if (!command) { + console.error(`Command ${commandId} not found for dropdown ${commandId}_dropdown`); + return dropdownView; + } + + dropdownView.buttonView.set({ + label: presetConfiguration.label, + withText: presetConfiguration.showLabel ?? true, + tooltip: true, + icon: presetConfiguration.icon ?? undefined, + }); + + dropdownView.bind("isEnabled").to(command, "isEnabled", (isEnabled) => isEnabled); + + const itemCollection = new Collection(); + + Object.keys(presetConfiguration.options).forEach((optionIdentifier) => { + const option = presetConfiguration.options[optionIdentifier]!; + const itemDefinition: ListDropdownItemDefinition = { + type: "button", + model: new UIModel({ + commandValue: optionIdentifier, + label: option.label, + icon: option.icon ?? undefined, + withText: option.showLabel ?? true, + toggleable: true, + }), + }; + + itemDefinition.model + .bind("isOn") + .to(command, "value", (value) => value.includes(optionIdentifier)); + + itemCollection.add(itemDefinition); + }); + + addListToDropdown(dropdownView, itemCollection); + + // register execute event for dropdown + this.listenTo(dropdownView, "execute", (evt) => { + // no type info on evt.source so we cast it to the expected type + const { commandValue } = evt.source as { commandValue: string }; + this.editor.execute(commandId, { value: commandValue }); + this.editor.editing.view.focus(); + }); + + return dropdownView; + }, + ); + } + }; } diff --git a/Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.ts b/Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.ts index 9ae9446..e0927bb 100644 --- a/Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.ts +++ b/Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.ts @@ -1,128 +1,130 @@ // Originally taken from https://raw.githubusercontent.com/ckeditor/ckeditor5/master/packages/ckeditor5-basic-styles/src/attributecommand.js and adjusted -import {Command, type Editor} from '@ckeditor/ckeditor5-core'; +import { Command, type Editor } from "@ckeditor/ckeditor5-core"; /** * Set a key-value inline style; e.g. "fontColor=red". */ export default class InlineStylesCommand extends Command { - /** - * Flag indicating whether the command is active. The command is active when the - * {@link module:engine/model/selection~ModelSelection#hasAttribute selection has the attribute} which means that: - * - * * If the selection is not empty – That the attribute is set on the first node in the selection that allows this attribute. - * * If the selection is empty – That the selection has the attribute itself (which means that newly typed - * text will have this attribute, too). - * - * @observable - * @readonly - */ - declare public value: string | undefined; + /** + * Flag indicating whether the command is active. The command is active when the + * {@link module:engine/model/selection~ModelSelection#hasAttribute selection has the attribute} which means that: + * + * * If the selection is not empty – That the attribute is set on the first node in the selection that allows this attribute. + * * If the selection is empty – That the selection has the attribute itself (which means that newly typed + * text will have this attribute, too). + * + * @observable + * @readonly + */ + declare public value: string | undefined; - /** - * The attribute that will be set by the command. - */ - public readonly attributeKey: string; + /** + * The attribute that will be set by the command. + */ + public readonly attributeKey: string; - /** - * @param {module:core/editor/editor~Editor} editor - * @param attributeKey Attribute that will be set by the command. - */ - constructor(editor: Editor, attributeKey: string) { - super(editor); + /** + * @param {module:core/editor/editor~Editor} editor + * @param attributeKey Attribute that will be set by the command. + */ + constructor(editor: Editor, attributeKey: string) { + super(editor); - this.attributeKey = attributeKey; - this.value = undefined; - } - - /** - * Updates the command's {@link #value} and {@link #isEnabled} based on the current selection. - */ - public override refresh(): void { - const model = this.editor.model; - const doc = model.document; - - const value = this._getValueFromFirstAllowedNode(); - - if (typeof value === 'string') { - this.value = value; - } else { - this.value = undefined; + this.attributeKey = attributeKey; + this.value = undefined; } - this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, this.attributeKey); - } + /** + * Updates the command's {@link #value} and {@link #isEnabled} based on the current selection. + */ + public override refresh(): void { + const model = this.editor.model; + const doc = model.document; - /** - * Executes the command – applies the attribute to the selection or removes it from the selection. - * - * If the command is active (`value == true`), it will remove attributes. Otherwise, it will set attributes. - * - * The execution result differs, depending on the {@link module:engine/model/document~ModelDocument#selection}: - * - * * If the selection is on a range, the command applies the attribute to all nodes in that range - * (if they are allowed to have this attribute by the {@link module:engine/model/schema~ModelSchema schema}). - * * If the selection is collapsed in a non-empty node, the command applies the attribute to the - * {@link module:engine/model/document~ModelDocument#selection} itself (note that typed characters copy attributes from the selection). - * * If the selection is collapsed in an empty node, the command applies the attribute to the parent node of the selection (note - * that the selection inherits all attributes from a node if it is in an empty node). - * - * @fires execute - * @param options Command options. - * @param options.forceValue If set, it will force the command behavior. If `true`, - * the command will apply the attribute, otherwise the command will remove the attribute. - * If not set, the command will look for its current value to decide what it should do. - */ - public override execute(options: { value: any }): void { - const model = this.editor.model; - const doc = model.document; - const selection = doc.selection; - const value = options.value; + const value = this._getValueFromFirstAllowedNode(); - model.change(writer => { - if (selection.isCollapsed) { - if (value) { - // value is existing, we want to set the selection attribute to the value. - writer.setSelectionAttribute(this.attributeKey, value); + // reset value and enabled state + // We use undefined to prevent the "reset" option from being shown as active option in the UI when value resolves to empty string (no attribute set in selection). + if (typeof value === "string" && value !== "") { + this.value = value; } else { - writer.removeSelectionAttribute(this.attributeKey); + this.value = undefined; } - } else { - const ranges = model.schema.getValidRanges(selection.getRanges(), this.attributeKey); - for (const range of ranges) { - if (value) { - writer.setAttribute(this.attributeKey, value, range); - } else { - writer.removeAttribute(this.attributeKey, range); - } - } - } - }); - } + this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, this.attributeKey); + } + + /** + * Executes the command – applies the attribute to the selection or removes it from the selection. + * + * If the command is active (`value == true`), it will remove attributes. Otherwise, it will set attributes. + * + * The execution result differs, depending on the {@link module:engine/model/document~ModelDocument#selection}: + * + * * If the selection is on a range, the command applies the attribute to all nodes in that range + * (if they are allowed to have this attribute by the {@link module:engine/model/schema~ModelSchema schema}). + * * If the selection is collapsed in a non-empty node, the command applies the attribute to the + * {@link module:engine/model/document~ModelDocument#selection} itself (note that typed characters copy attributes from the selection). + * * If the selection is collapsed in an empty node, the command applies the attribute to the parent node of the selection (note + * that the selection inherits all attributes from a node if it is in an empty node). + * + * @fires execute + * @param options Command options. + * @param options.forceValue If set, it will force the command behavior. If `true`, + * the command will apply the attribute, otherwise the command will remove the attribute. + * If not set, the command will look for its current value to decide what it should do. + */ + public override execute(options: { value: any }): void { + const model = this.editor.model; + const doc = model.document; + const selection = doc.selection; + const value = options.value; - /** - * Checks the attribute value of the first node in the selection that allows the attribute. - * For the collapsed selection returns the selection attribute. - * - * @returns The attribute value. - */ - private _getValueFromFirstAllowedNode() { - const model = this.editor.model; - const schema = model.schema; - const selection = model.document.selection; + model.change((writer) => { + if (selection.isCollapsed) { + if (value) { + // value is existing, we want to set the selection attribute to the value. + writer.setSelectionAttribute(this.attributeKey, value); + } else { + writer.removeSelectionAttribute(this.attributeKey); + } + } else { + const ranges = model.schema.getValidRanges(selection.getRanges(), this.attributeKey); - if (selection.isCollapsed) { - return selection.getAttribute(this.attributeKey); + for (const range of ranges) { + if (value) { + writer.setAttribute(this.attributeKey, value, range); + } else { + writer.removeAttribute(this.attributeKey, range); + } + } + } + }); } - for (const range of selection.getRanges()) { - for (const item of range.getItems()) { - if (schema.checkAttribute(item, this.attributeKey)) { - return item.getAttribute(this.attributeKey); + /** + * Checks the attribute value of the first node in the selection that allows the attribute. + * For the collapsed selection returns the selection attribute. + * + * @returns The attribute value. + */ + private _getValueFromFirstAllowedNode() { + const model = this.editor.model; + const schema = model.schema; + const selection = model.document.selection; + + if (selection.isCollapsed) { + return selection.getAttribute(this.attributeKey); } - } - } - return undefined; - } + for (const range of selection.getRanges()) { + for (const item of range.getItems()) { + if (schema.checkAttribute(item, this.attributeKey)) { + return item.getAttribute(this.attributeKey); + } + } + } + + return undefined; + } } diff --git a/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts b/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts index 6359e8d..10c78ff 100644 --- a/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts +++ b/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts @@ -1,130 +1,142 @@ -import {Plugin, PluginConstructor} from '@ckeditor/ckeditor5-core'; +import { Plugin, PluginConstructor } from "@ckeditor/ckeditor5-core"; import { - addListToDropdown, - ButtonExecuteEvent, - createDropdown, - ListDropdownItemDefinition, - UIModel -} from '@ckeditor/ckeditor5-ui'; -import InlineStylesCommand from './InlineStylesCommand'; + addListToDropdown, + ButtonExecuteEvent, + createDropdown, + ListDropdownItemDefinition, + UIModel +} from "@ckeditor/ckeditor5-ui"; +import { Collection } from "@ckeditor/ckeditor5-utils"; + +import InlineStylesCommand from "./InlineStylesCommand"; import { - CK_STYLES_INLINE_STYLES_IDENTIFIER, - CkStylesPresetConfiguration, - CkStylesPresetIdentifier, - TECHDIVISION_CKSTYLES__NAME_SPACE + CK_STYLES_INLINE_STYLES_IDENTIFIER, + type CkStylesPresetConfiguration, + type CkStylesPresetIdentifier, + INLINE_STYLING__ATTRIBUTE_PREFIX, + INLINE_STYLING__COMMAND_PREFIX, + TECHDIVISION_CKSTYLES__NAME_SPACE } from "./configuration"; -import {Collection} from "@ckeditor/ckeditor5-utils"; +import { createAttributeKey, createCommandId, createDropdownId } from "./utils"; /** * FACTORY FUNCTION for the plugin * needs the current preset configuration as parameter. */ -export function createInlineEditStylePlugin(presetIdentifier: CkStylesPresetIdentifier, presetConfiguration: CkStylesPresetConfiguration): PluginConstructor { - return class InlineStylesEditing extends Plugin { - - public static get pluginName() { - return `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_INLINE_STYLES_IDENTIFIER}:${presetIdentifier}`; - } - - public init() { - const schema = this.editor.model.schema; - const optionIdentifiers = Object.keys(presetConfiguration.options); - const modelAttributeKey = `inlineStyles-${presetIdentifier}`; - - schema.extend( - '$text', - {allowAttributes: modelAttributeKey} - ); - - // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html - schema.setAttributeProperties( - modelAttributeKey, - {isFormatting: true} - ); - - // Register model-view conversion - this.editor.conversion.attributeToElement({ - model: { - key: modelAttributeKey, - values: optionIdentifiers - }, - view: optionIdentifiers.reduce((viewConfig: Record, optionIdentifier) => { - const options = presetConfiguration.options[optionIdentifier]!; - - if ('attribute' in options) { - viewConfig[optionIdentifier] = { - name: 'span', - attributes: {[options.attribute]: options.attributeValue} - } - } else if ('cssClass' in options) { - viewConfig[optionIdentifier] = { - name: 'span', - classes: options.cssClass, - } - } else { - console.error(`Invalid configuration for preset ${presetIdentifier} and option ${optionIdentifier}: either "attribute" and "attributeValue" or "cssClass" must be set.`); - } - - return viewConfig; - }, {}) - }); - - // Register command - const commandId = `inlineStyles:${presetIdentifier}`; - this.editor.commands.add(commandId, new InlineStylesCommand(this.editor, modelAttributeKey)); - - // Register dropdown in the UI - this.editor.ui.componentFactory.add( - `${commandId}_dropdown`, - (locale) => { - const dropdownView = createDropdown(locale); - const command = this.editor.commands.get(commandId) as InlineStylesCommand; - - if (!command) { - console.error(`Command ${commandId} not found for dropdown ${commandId}_dropdown`); - return dropdownView; - } - - dropdownView.buttonView.set({ - label: presetConfiguration.label, - withText: presetConfiguration.showLabel ?? true, - tooltip: true, - icon: presetConfiguration.icon ?? null - }); - - dropdownView.bind('isEnabled').to(command, 'isEnabled', isEnabled => isEnabled); - - const optionCollection = new Collection(); - - Object.keys(presetConfiguration.options).forEach(optionIdentifier => { - const option = presetConfiguration.options[optionIdentifier]!; - const optionDefinition: ListDropdownItemDefinition = { - type: 'button', - model: new UIModel({ - commandValue: optionIdentifier, - label: option.label, - icon: option.icon ?? null, - withText: option.showLabel ?? true, - toggleable: true, - }) - }; - - optionDefinition.model.bind('isOn').to(command, 'value', value => value === optionIdentifier); - - optionCollection.add(optionDefinition); - }); - - addListToDropdown(dropdownView, optionCollection); - - // register execute event for dropdown - this.listenTo(dropdownView, 'execute', evt => { - const {commandValue} = evt.source as any; - this.editor.execute(commandId, {value: commandValue}); - this.editor.editing.view.focus(); - }); - - return dropdownView; - }); - } - } +export function createInlineEditStylePlugin( + presetIdentifier: CkStylesPresetIdentifier, + presetConfiguration: CkStylesPresetConfiguration, +): PluginConstructor { + return class InlineStylesEditing extends Plugin { + public static get pluginName() { + return `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_INLINE_STYLES_IDENTIFIER}:${presetIdentifier}`; + } + + public init() { + const schema = this.editor.model.schema; + const optionIdentifiers = Object.keys(presetConfiguration.options); + const modelAttributeKey = createAttributeKey(INLINE_STYLING__ATTRIBUTE_PREFIX, presetIdentifier); + + schema.extend("$text", { allowAttributes: modelAttributeKey }); + + // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html + schema.setAttributeProperties(modelAttributeKey, { + isFormatting: true, + }); + + // Register model-view conversion + this.editor.conversion.attributeToElement({ + model: { + key: modelAttributeKey, + values: optionIdentifiers, + }, + view: optionIdentifiers.reduce((viewConfig: Record, optionIdentifier) => { + const options = presetConfiguration.options[optionIdentifier]!; + + if ("attribute" in options) { + viewConfig[optionIdentifier] = { + name: "span", + attributes: { + [options.attribute]: options.attributeValue, + }, + }; + } else if ("cssClass" in options) { + viewConfig[optionIdentifier] = { + name: "span", + classes: options.cssClass, + }; + } else { + console.error( + `Invalid configuration for preset ${presetIdentifier} and option ${optionIdentifier}: either "attribute" and "attributeValue" or "cssClass" must be set.`, + ); + } + + return viewConfig; + }, {}), + }); + + // Register command + const commandId = createCommandId(INLINE_STYLING__COMMAND_PREFIX, presetIdentifier); + this.editor.commands.add(commandId, new InlineStylesCommand(this.editor, modelAttributeKey)); + + // Register dropdown in the UI + this.editor.ui.componentFactory.add( + createDropdownId(INLINE_STYLING__COMMAND_PREFIX, presetIdentifier), + (locale) => { + const dropdownView = createDropdown(locale); + const command = this.editor.commands.get(commandId) as InlineStylesCommand; + + if (!command) { + console.error(`Command ${commandId} not found for dropdown ${commandId}_dropdown`); + return dropdownView; + } + + dropdownView.buttonView.set({ + label: presetConfiguration.label, + withText: presetConfiguration.showLabel ?? true, + tooltip: true, + icon: presetConfiguration.icon ?? null, + }); + + dropdownView.bind("isEnabled").to(command, "isEnabled", (isEnabled) => isEnabled); + + const optionCollection = new Collection(); + + Object.keys(presetConfiguration.options).forEach((optionIdentifier) => { + const option = presetConfiguration.options[optionIdentifier]!; + const optionDefinition: ListDropdownItemDefinition = { + type: "button", + model: new UIModel({ + commandValue: optionIdentifier, + label: option.label, + icon: option.icon ?? null, + withText: option.showLabel ?? true, + toggleable: true, + }), + }; + + optionDefinition.model.bind("isOn").to(command, "value", (value) => value === optionIdentifier); + + optionCollection.add(optionDefinition); + }); + + addListToDropdown(dropdownView, optionCollection); + + // register execute event for dropdown + this.listenTo(dropdownView, "execute", (evt) => { + // no type info on evt.source so we cast it to the expected type + const { commandValue } = evt.source as { + commandValue: string; + }; + this.editor.execute(commandId, { + value: commandValue, + }); + this.editor.editing.view.focus(); + }); + + return dropdownView; + }, + ); + } + }; } diff --git a/Resources/Private/JavaScript/CkStyles/src/configuration.ts b/Resources/Private/JavaScript/CkStyles/src/configuration.ts index 20dc4ac..f81286a 100644 --- a/Resources/Private/JavaScript/CkStyles/src/configuration.ts +++ b/Resources/Private/JavaScript/CkStyles/src/configuration.ts @@ -1,39 +1,47 @@ -export const TECHDIVISION_CKSTYLES__NAME_SPACE = 'TechDivision.CkStyles'; -export const CK_STYLES_INLINE_STYLES_IDENTIFIER = 'InlineStyles'; -export const CK_STYLES_BLOCK_STYLES_IDENTIFIER = 'BlockStyles'; +export const TECHDIVISION_CKSTYLES__NAME_SPACE = "TechDivision.CkStyles"; +// Block style constants +export const CK_STYLES_BLOCK_STYLES_IDENTIFIER = "BlockStyles"; +export const BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY = `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_BLOCK_STYLES_IDENTIFIER}`; +export const BLOCK_STYLING__EDITOR_OPTION_KEY = "blockStyling"; +export const BLOCK_STYLING__COMMAND_PREFIX = "blockStyle"; +export const BLOCK_STYLING__ATTRIBUTE_PREFIX = "blockStyles"; + +// Inline style constants +export const CK_STYLES_INLINE_STYLES_IDENTIFIER = "InlineStyles"; +export const INLINE_STYLING__FRONTEND_CONFIGURATION_KEY = `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_INLINE_STYLES_IDENTIFIER}`; +export const INLINE_STYLING__EDITOR_OPTION_KEY = "inlineStyling"; +export const INLINE_STYLING__COMMAND_PREFIX = "inlineStyle"; +export const INLINE_STYLING__ATTRIBUTE_PREFIX = "inlineStyles"; + +// configuration type representation of Configuration/Settings.CkStyles.yaml export type CkStylesPresetIdentifier = string; export type CkStylesPresetOptionIdentifier = string; export type CkStylesConfiguration = { - presets: Record; -} + presets: Record; +}; export type CkStylesPresetConfiguration = { - label: string; - icon?: string; - showLabel?: boolean; - options: Record; -} + label: string; + icon?: string; + showLabel?: boolean; + options: Record; +}; // either cssClass or attribute + attributeValue must be set, but not both export type CkStylesPresetOptionConfiguration = { - label: string; - icon?: string; - showLabel?: boolean; -} & ({ attribute: string; attributeValue: string } | { cssClass: string }) - - -export const INLINE_STYLING__FRONTEND_CONFIGURATION_KEY = `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_INLINE_STYLES_IDENTIFIER}`; -export const INLINE_STYLING__EDITOR_OPTION_KEY = 'inlineStyling'; - -export const BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY = `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_BLOCK_STYLES_IDENTIFIER}`; -export const BLOCK_STYLING__EDITOR_OPTION_KEY = 'blockStyling'; - -export function isPresetEnabled(editorOptions: Record | undefined, editorOptionKey: string, presetIdentifier: string): boolean { - return !!(editorOptions?.[editorOptionKey]?.[presetIdentifier]); -} - -export type NeosEditorOptions = { - editorOptions: Record -} + label: string; + icon?: string; + showLabel?: boolean; +} & ({ attribute: string; attributeValue: string } | { cssClass: string }); + +// configuration type representation of editorOptions of Neos NodeTypes +export type CkStylesNeosEditorOptions = { + [BLOCK_STYLING__EDITOR_OPTION_KEY]?: { + [presetIdentifier: CkStylesPresetIdentifier]: boolean; + }; + [INLINE_STYLING__EDITOR_OPTION_KEY]?: { + [presetIdentifier: CkStylesPresetIdentifier]: boolean; + }; +}; diff --git a/Resources/Private/JavaScript/CkStyles/src/index.ts b/Resources/Private/JavaScript/CkStyles/src/index.ts index a528a96..4ee4dde 100644 --- a/Resources/Private/JavaScript/CkStyles/src/index.ts +++ b/Resources/Private/JavaScript/CkStyles/src/index.ts @@ -1 +1 @@ -import './manifest'; +import "./manifest"; diff --git a/Resources/Private/JavaScript/CkStyles/src/manifest.ts b/Resources/Private/JavaScript/CkStyles/src/manifest.ts index a2f93a0..e7ff153 100644 --- a/Resources/Private/JavaScript/CkStyles/src/manifest.ts +++ b/Resources/Private/JavaScript/CkStyles/src/manifest.ts @@ -1,97 +1,107 @@ -import manifest from '@neos-project/neos-ui-extensibility'; -import {EditorConfig} from '@ckeditor/ckeditor5-core'; +import manifest from "@neos-project/neos-ui-extensibility"; +import { EditorConfig } from "@ckeditor/ckeditor5-core"; -import {createInlineEditStylePlugin} from './InlineStylesEditing'; -import {createBlockStyleEditingPlugin} from "./BlockStyleEditing"; +import { createInlineEditStylePlugin } from "./InlineStylesEditing"; +import { createBlockStyleEditingPlugin } from "./BlockStyleEditing"; import { - BLOCK_STYLING__EDITOR_OPTION_KEY, - BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY, - CkStylesConfiguration, - INLINE_STYLING__EDITOR_OPTION_KEY, - INLINE_STYLING__FRONTEND_CONFIGURATION_KEY, - isPresetEnabled, - NeosEditorOptions, - TECHDIVISION_CKSTYLES__NAME_SPACE + BLOCK_STYLING__COMMAND_PREFIX, + BLOCK_STYLING__EDITOR_OPTION_KEY, + BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY, + type CkStylesConfiguration, + type CkStylesNeosEditorOptions, + INLINE_STYLING__COMMAND_PREFIX, + INLINE_STYLING__EDITOR_OPTION_KEY, + INLINE_STYLING__FRONTEND_CONFIGURATION_KEY, + TECHDIVISION_CKSTYLES__NAME_SPACE, } from "./configuration"; +import { createDropdownId, isPresetEnabled } from "./utils"; manifest( - `${TECHDIVISION_CKSTYLES__NAME_SPACE}:Styles`, - {}, - (globalRegistry: any, {frontendConfiguration}: { frontendConfiguration: any }) => { - - const ckEditorRegistry = globalRegistry.get('ckEditor5'); - const config = ckEditorRegistry.get('config'); - - const inlineStyleConfiguration = frontendConfiguration[INLINE_STYLING__FRONTEND_CONFIGURATION_KEY] as CkStylesConfiguration | undefined; - const blockStyleConfiguration = frontendConfiguration[BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY] as CkStylesConfiguration | undefined; - - // Block style - if (blockStyleConfiguration) { - - Object.keys(blockStyleConfiguration.presets).forEach(presetIdentifier => { - - const blockStylePresetConfiguration = blockStyleConfiguration.presets[presetIdentifier]!; - - config.set( - `${BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY}_${presetIdentifier}`, - (ckEditorConfiguration: EditorConfig, {editorOptions}: { editorOptions: NeosEditorOptions }) => { - if (isPresetEnabled(editorOptions, BLOCK_STYLING__EDITOR_OPTION_KEY, presetIdentifier)) { - ckEditorConfiguration.plugins = ckEditorConfiguration.plugins ?? []; - ckEditorConfiguration.plugins.push(createBlockStyleEditingPlugin(presetIdentifier, blockStylePresetConfiguration)); - - // TODO: duplicated information.. find a better way - const toolbarItemId = `blockStyles:${presetIdentifier}_dropdown`; - - if (ckEditorConfiguration.toolbar === undefined) { - ckEditorConfiguration.toolbar = { - items: [toolbarItemId] - } - } else if (ckEditorConfiguration.toolbar instanceof Array) { - ckEditorConfiguration.toolbar.push(toolbarItemId); - } else { - ckEditorConfiguration.toolbar.items = ckEditorConfiguration.toolbar.items ?? []; - ckEditorConfiguration.toolbar.items.push(toolbarItemId); - } - } - - return ckEditorConfiguration; - }, - ); - }); - } - - //Inline Style - if (inlineStyleConfiguration) { - Object.keys(inlineStyleConfiguration.presets).forEach((presetIdentifier) => { - - const inlineStylePresetConfiguration = inlineStyleConfiguration.presets[presetIdentifier]!; - - config.set( - `${INLINE_STYLING__FRONTEND_CONFIGURATION_KEY}_${presetIdentifier}`, - (ckEditorConfiguration: EditorConfig, {editorOptions}: { editorOptions: NeosEditorOptions }) => { - if (isPresetEnabled(editorOptions, INLINE_STYLING__EDITOR_OPTION_KEY, presetIdentifier)) { - ckEditorConfiguration.plugins = ckEditorConfiguration.plugins ?? []; - ckEditorConfiguration.plugins.push(createInlineEditStylePlugin(presetIdentifier, inlineStylePresetConfiguration)); - - - // TODO: duplicated information.. find a better way - const toolbarItemId = `inlineStyles:${presetIdentifier}_dropdown`; - - if (ckEditorConfiguration.toolbar === undefined) { - ckEditorConfiguration.toolbar = { - items: [toolbarItemId] - } - } else if (ckEditorConfiguration.toolbar instanceof Array) { - ckEditorConfiguration.toolbar.push(toolbarItemId); - } else { - ckEditorConfiguration.toolbar.items = ckEditorConfiguration.toolbar.items ?? []; - ckEditorConfiguration.toolbar.items.push(toolbarItemId); - } - } - - return ckEditorConfiguration; - }, - ); - }); - } - }); + `${TECHDIVISION_CKSTYLES__NAME_SPACE}:Styles`, + {}, + (globalRegistry: any, { frontendConfiguration }: { frontendConfiguration: any }) => { + const ckEditorRegistry = globalRegistry.get("ckEditor5"); + const config = ckEditorRegistry.get("config"); + + const inlineStyleConfiguration = frontendConfiguration[INLINE_STYLING__FRONTEND_CONFIGURATION_KEY] as + | CkStylesConfiguration + | undefined; + const blockStyleConfiguration = frontendConfiguration[BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY] as + | CkStylesConfiguration + | undefined; + + // Block style + if (blockStyleConfiguration) { + Object.keys(blockStyleConfiguration.presets).forEach((presetIdentifier) => { + const blockStylePresetConfiguration = blockStyleConfiguration.presets[presetIdentifier]!; + + config.set( + `${BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY}_${presetIdentifier}`, + ( + ckEditorConfiguration: EditorConfig, + { editorOptions }: { editorOptions: CkStylesNeosEditorOptions }, + ) => { + if (isPresetEnabled(editorOptions, BLOCK_STYLING__EDITOR_OPTION_KEY, presetIdentifier)) { + ckEditorConfiguration.plugins = ckEditorConfiguration.plugins ?? []; + ckEditorConfiguration.plugins.push( + createBlockStyleEditingPlugin(presetIdentifier, blockStylePresetConfiguration), + ); + + const toolbarItemId = createDropdownId(BLOCK_STYLING__COMMAND_PREFIX, presetIdentifier); + + if (ckEditorConfiguration.toolbar === undefined) { + ckEditorConfiguration.toolbar = { + items: [toolbarItemId], + }; + } else if (Array.isArray(ckEditorConfiguration.toolbar)) { + ckEditorConfiguration.toolbar.push(toolbarItemId); + } else { + ckEditorConfiguration.toolbar.items = ckEditorConfiguration.toolbar.items ?? []; + ckEditorConfiguration.toolbar.items.push(toolbarItemId); + } + } + + return ckEditorConfiguration; + }, + ); + }); + } + + //Inline Style + if (inlineStyleConfiguration) { + Object.keys(inlineStyleConfiguration.presets).forEach((presetIdentifier) => { + const inlineStylePresetConfiguration = inlineStyleConfiguration.presets[presetIdentifier]!; + + config.set( + `${INLINE_STYLING__FRONTEND_CONFIGURATION_KEY}_${presetIdentifier}`, + ( + ckEditorConfiguration: EditorConfig, + { editorOptions }: { editorOptions: CkStylesNeosEditorOptions }, + ) => { + if (isPresetEnabled(editorOptions, INLINE_STYLING__EDITOR_OPTION_KEY, presetIdentifier)) { + ckEditorConfiguration.plugins = ckEditorConfiguration.plugins ?? []; + ckEditorConfiguration.plugins.push( + createInlineEditStylePlugin(presetIdentifier, inlineStylePresetConfiguration), + ); + + const toolbarItemId = createDropdownId(INLINE_STYLING__COMMAND_PREFIX, presetIdentifier); + + if (ckEditorConfiguration.toolbar === undefined) { + ckEditorConfiguration.toolbar = { + items: [toolbarItemId], + }; + } else if (Array.isArray(ckEditorConfiguration.toolbar)) { + ckEditorConfiguration.toolbar.push(toolbarItemId); + } else { + ckEditorConfiguration.toolbar.items = ckEditorConfiguration.toolbar.items ?? []; + ckEditorConfiguration.toolbar.items.push(toolbarItemId); + } + } + + return ckEditorConfiguration; + }, + ); + }); + } + }, +); diff --git a/Resources/Private/JavaScript/CkStyles/src/utils.ts b/Resources/Private/JavaScript/CkStyles/src/utils.ts new file mode 100644 index 0000000..4298a97 --- /dev/null +++ b/Resources/Private/JavaScript/CkStyles/src/utils.ts @@ -0,0 +1,39 @@ +import { + BLOCK_STYLING__ATTRIBUTE_PREFIX, + BLOCK_STYLING__COMMAND_PREFIX, + BLOCK_STYLING__EDITOR_OPTION_KEY, + type CkStylesNeosEditorOptions, + type CkStylesPresetIdentifier, + INLINE_STYLING__ATTRIBUTE_PREFIX, + INLINE_STYLING__COMMAND_PREFIX, + INLINE_STYLING__EDITOR_OPTION_KEY, +} from "./configuration"; + +export function isPresetEnabled( + editorOptions: CkStylesNeosEditorOptions | undefined, + editorOptionKey: typeof BLOCK_STYLING__EDITOR_OPTION_KEY | typeof INLINE_STYLING__EDITOR_OPTION_KEY, + presetIdentifier: CkStylesPresetIdentifier, +): boolean { + return !!editorOptions?.[editorOptionKey]?.[presetIdentifier]; +} + +export function createCommandId( + commandPrefix: typeof BLOCK_STYLING__COMMAND_PREFIX | typeof INLINE_STYLING__COMMAND_PREFIX, + presetIdentifier: CkStylesPresetIdentifier, +): string { + return `${commandPrefix}:${presetIdentifier}`; +} + +export function createDropdownId( + commandPrefix: typeof BLOCK_STYLING__COMMAND_PREFIX | typeof INLINE_STYLING__COMMAND_PREFIX, + presetIdentifier: CkStylesPresetIdentifier, +): string { + return `${createCommandId(commandPrefix, presetIdentifier)}_dropdown`; +} + +export function createAttributeKey( + attributePrefix: typeof BLOCK_STYLING__ATTRIBUTE_PREFIX | typeof INLINE_STYLING__ATTRIBUTE_PREFIX, + presetIdentifier: CkStylesPresetIdentifier, +): string { + return `${attributePrefix}-${presetIdentifier}`; +} diff --git a/Resources/Private/JavaScript/CkStyles/tsconfig.json b/Resources/Private/JavaScript/CkStyles/tsconfig.json index b3ee375..11d3a2f 100644 --- a/Resources/Private/JavaScript/CkStyles/tsconfig.json +++ b/Resources/Private/JavaScript/CkStyles/tsconfig.json @@ -2,18 +2,18 @@ // Visit https://aka.ms/tsconfig to read more about this file "compilerOptions": { // File Layout - // "rootDir": "./src", + "rootDir": "./src", + "noEmit": true, // "outDir": "./dist", // Environment Settings // See also https://aka.ms/tsconfig/module - "module": "nodenext", - "target": "esnext", + "module": "NodeNext", + "target": "ESNext", + "moduleResolution": "NodeNext", + "forceConsistentCasingInFileNames": true, "types": [], - // For nodejs: - // "lib": ["esnext"], - // "types": ["node"], - // and npm install -D @types/node + "lib": ["dom", "ESNext"], // Other Outputs "sourceMap": true, @@ -25,11 +25,11 @@ "exactOptionalPropertyTypes": true, // Style Options - // "noImplicitReturns": true, - // "noImplicitOverride": true, - // "noUnusedLocals": true, - // "noUnusedParameters": true, - // "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "noImplicitOverride": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, // "noPropertyAccessFromIndexSignature": true, // Recommended Options diff --git a/Resources/Private/JavaScript/CkStyles/yarn.lock b/Resources/Private/JavaScript/CkStyles/yarn.lock new file mode 100644 index 0000000..3e7e749 --- /dev/null +++ b/Resources/Private/JavaScript/CkStyles/yarn.lock @@ -0,0 +1,2114 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ckeditor/ckeditor5-adapter-ckfinder@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-adapter-ckfinder/-/ckeditor5-adapter-ckfinder-47.2.0.tgz#10ced491bd112a4633ed9f543b96eaf41e1bd807" + integrity sha512-zzuINBzWuheU76Ans9m59VCVMiljESoKxzpMh0aYu+M3YB5IDctOPU8pdOpXPIdBwoYv64+ioZE/T5TyZDckSw== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-upload" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-alignment@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-alignment/-/ckeditor5-alignment-47.2.0.tgz#64f527d7571acd543a3a9e74ed528a7b4aca0639" + integrity sha512-lfcJAC8yJOQux3t33ikJrWRsZvywLr2zmU6mDR96SuCmeCyAN3UGXzCNa8kWPExpFGV01ZR61EZkjTah8LP2sQ== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-autoformat@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-autoformat/-/ckeditor5-autoformat-47.2.0.tgz#78887a9ba872d806805fc4cde229414426de4128" + integrity sha512-d9ZwAB8JwWlgLK2Um+u3ctiCtv5bkBHGk/rSdXB6D/V7QHCl31NyPFYByxTyCOY9SsoNn1l/8zbJfvp89LJm2w== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-heading" "47.2.0" + "@ckeditor/ckeditor5-typing" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-autosave@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-autosave/-/ckeditor5-autosave-47.2.0.tgz#4cbc1af19d358e991b5f57c9c1dbbfd30de9ebb9" + integrity sha512-44nGL/M0qLURA1BEFkqZg6JzpjtvGyWJEluv728vb29JNQUGx0iNykjHBgtPX5s1Ztblx5ZwqFiuNiLkpmHptg== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-basic-styles@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-basic-styles/-/ckeditor5-basic-styles-47.2.0.tgz#ab1abe2306c6e6cec62393adc04b07997869351a" + integrity sha512-a8pPHq3CXmyxPPXPQZ8C92OOyBoCfpY8M30dS7et/dLXW3nuVo9VVLMw0vR1j+zcKXClp3+/odyw2/rxP+qntA== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-typing" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-block-quote@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-block-quote/-/ckeditor5-block-quote-47.2.0.tgz#39f9efd80f5a2b8cfa5ec438ee5bec25fd82f70f" + integrity sha512-BlFFfunyWpYcGhLsOmCR0yEz5VgrOmHREHQZIRcL6fKzXJwdpA/VFWPirotwF/QErJjguhhDZ5a3PBEnUAmW/A== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-enter" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-typing" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-bookmark@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-bookmark/-/ckeditor5-bookmark-47.2.0.tgz#b370892c4cbb4570c2c526546ff14dd37cfb3df6" + integrity sha512-FDFDZXm8MqktIt3x0WVrYFuXy9sxcCH31Cpa0/mV19lW8CzoCZCAfvXNzPWsz2eFo8qOsna2c/e55ax8OM/Ncg== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-link" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + "@ckeditor/ckeditor5-widget" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-ckbox@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-ckbox/-/ckeditor5-ckbox-47.2.0.tgz#98a3400167f62dfb080d83a8d753647debcb12a3" + integrity sha512-Cu+nJTXhcmdE8DWHoTY1nrrjxyG4pfxMrEcO/PNV28cojwtOQaWGt4EbWlXOfZZTEWlZO18JIw/YrxYXwx5mTA== + dependencies: + "@ckeditor/ckeditor5-cloud-services" "47.2.0" + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-image" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-upload" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + blurhash "2.0.5" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-ckfinder@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-ckfinder/-/ckeditor5-ckfinder-47.2.0.tgz#2f3be378adfa40d718d8a05d91fd304068f22943" + integrity sha512-nsxn9weZNwdplW/BHfEJ/rvb+wZj0KECN2Av9zFRekTxE1mp0hTShQ9MNlKImRQ4X2UV6bGN6+DXwJJIU0smlQ== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-image" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-clipboard@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-clipboard/-/ckeditor5-clipboard-47.2.0.tgz#668117643acceb343b764b07a26410ef70841ea7" + integrity sha512-x/ehXk+ga5tnumA8TenrZRU684DvpzzhTLfZScRxX3/3BJPYlFp7BWx60KJPQHKXYgb+I0qkQrgxuBXp83ed2g== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + "@ckeditor/ckeditor5-widget" "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-cloud-services@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-cloud-services/-/ckeditor5-cloud-services-47.2.0.tgz#119a004b2f7a72664c05351e6dd72dcc43d0d8fc" + integrity sha512-794mxJ8MFhz2SxSjlMSp4cZbyBBpVjinQ3GxOS5VqO7H4m/iT2hdSPJaWpML53soxpEoG/6ax4vVKe5d0+xoqA== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-code-block@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-code-block/-/ckeditor5-code-block-47.2.0.tgz#9fbeb02ff87a798d624d2c461a86ce7b9c5edc2d" + integrity sha512-8SH10L7i+wirkouDmg4MdBN4R3AZDyutsuSCwDPALoKSHQs7KlYB+8TJxcejt/dSBd0JWgrBi7rVu9Arkk3I1A== + dependencies: + "@ckeditor/ckeditor5-clipboard" "47.2.0" + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-enter" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-core@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-core/-/ckeditor5-core-47.2.0.tgz#90976e6e8b18008ead5c8a33fee690d8ddf297f0" + integrity sha512-NwUNa25g//ScxaVPASalcGfMDhUSv7nIpxC07oVv99zJjk64RTBr4TZHpjKLCVqN9gAn3phAtjtkxa2KOgOMtQ== + dependencies: + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + "@ckeditor/ckeditor5-watchdog" "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-easy-image@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-easy-image/-/ckeditor5-easy-image-47.2.0.tgz#03e8be382b9ab2a281dab18703bc66a1b4c9735f" + integrity sha512-lSnbiGDzYdu9GeOaYjVpowaZWDJbrb7NHCuUN5Af2474jXTDyYmG7qOm39fWEBlcxjMTzDR8fFzPcRNhOvSRRA== + dependencies: + "@ckeditor/ckeditor5-cloud-services" "47.2.0" + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-upload" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-editor-balloon@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-balloon/-/ckeditor5-editor-balloon-47.2.0.tgz#2207ec688750ad70dbbbd08f9a7f767be09c46fa" + integrity sha512-szIx59pnw6kgxYuAyqecMnSlwtwWu2q23XV4TpKF/V3NlHs9ZeIFusTX3icO8JLQR4ExsYa0bsYpabGdZdx2Ug== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-editor-classic@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-classic/-/ckeditor5-editor-classic-47.2.0.tgz#13c8b376341475940e8d42a642f598a453a0bf24" + integrity sha512-fYy4RKmvM4kYvUgCRuBdUqVLE8ts1Kj4q1Caaq5VZyBudmaj/RZqQBSdiu5pZgKMdj1oMaIQ5Gextg96iJ3LTw== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-editor-decoupled@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-decoupled/-/ckeditor5-editor-decoupled-47.2.0.tgz#7ed46a30eff38893d88094d4863709b2a77a9239" + integrity sha512-h1Yw6/XHeEe5aW/4VV0njAGe5nsuIBkARCun039noA+b2bq+Qb9bAExzaSHULf7nZW4HHVJMcYvb2HwcX8MZ6g== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-editor-inline@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-inline/-/ckeditor5-editor-inline-47.2.0.tgz#1c82e1713d7e03bb97904704fcc8c949aa0703f5" + integrity sha512-6kGG8Q4ggOim7KU/J3iMvmf5/faNjYL/ucg2RPMvzhH/eTqlZBlMdDid86b0YAW0fbKPvIIACifoOBHIGlcZyA== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-editor-multi-root@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-multi-root/-/ckeditor5-editor-multi-root-47.2.0.tgz#03dcca7fad6e91851e1cd128168049587df5833a" + integrity sha512-bIkPzkpLGznNnDLAuSkVNP+LfICLbUj80IdkVLB9KeXnuZ1WKYkLqBGfDv6y70iJnANAiiP6Z8EaucBNzfjS7g== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-emoji@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-emoji/-/ckeditor5-emoji-47.2.0.tgz#22b7809008dcf9fe0726b899d2f29edfe425a22f" + integrity sha512-pS1G0QVFOK2Z+BLrVmm6pVjFZRpkC95YgQeASuuIySLZBllYD3+tlys2lPt3el5PAd0IQB7s85XuTdbCXDFr6A== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-mention" "47.2.0" + "@ckeditor/ckeditor5-typing" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + fuzzysort "3.1.0" + +"@ckeditor/ckeditor5-engine@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-engine/-/ckeditor5-engine-47.2.0.tgz#578446d200a16d5f25de3a558085501f14a60f72" + integrity sha512-T3pFgycam60ytkbLOo2r99UPkbalLfzp4e6QrDVdZnloY7BO46zAbU5p3TqgfCdxODPhZh7srFGzANh6IsLMeg== + dependencies: + "@ckeditor/ckeditor5-utils" "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-enter@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-enter/-/ckeditor5-enter-47.2.0.tgz#775fc49e28c64c90d4286341f983982be3c2fda1" + integrity sha512-7ZHfrxDSs55IXgs5yAX6Nl8COY1dqefZ5HiWT/UM0cOP/4aMffp5I1yYYP7NVfBkTW9DlUoeAkHFTv2miTwclQ== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + +"@ckeditor/ckeditor5-essentials@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-essentials/-/ckeditor5-essentials-47.2.0.tgz#8b1850ddd0725709a4acf65d55bfe6ccbc39b227" + integrity sha512-d3hHtkuLhvI+RvsDU7cKFc/K9uD27Tvi4NVjALcN1Ybr0k8dkJFGU1nUwXuo6zcdqRnkIJMWxIR+cwteuMCGQg== + dependencies: + "@ckeditor/ckeditor5-clipboard" "47.2.0" + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-enter" "47.2.0" + "@ckeditor/ckeditor5-select-all" "47.2.0" + "@ckeditor/ckeditor5-typing" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-undo" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-find-and-replace@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-find-and-replace/-/ckeditor5-find-and-replace-47.2.0.tgz#d2fcc24d6be08d56c1e195bd03625e4acc2911c1" + integrity sha512-34Uzpbxi+/eJx/0CR9/T92wDaw67KLaYcm39+RY4OUCxC9EywEFruIJEg/M/Xu4iTVjdVKbpQ3ovGBuciiL1vQ== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-font@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-font/-/ckeditor5-font-47.2.0.tgz#19402eb3a8c397657e1f7767ddb807e63bc62009" + integrity sha512-X/AYeNHc3Hibd56OfPwOEdYRIGX3eWtGQ/qIAEVkS2xCEDPhM0fTHpLTEpDsMukw9NRAqmhnQHIp2amGaOwY8g== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-fullscreen@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-fullscreen/-/ckeditor5-fullscreen-47.2.0.tgz#7ac86bd80b3ff33ab600cc662cd35eb4b47936f5" + integrity sha512-Kf//0eQIuslGNVSbNkHXBELn/jZT+OsTIeo8PulZEbVI5do0vB/52w0F40rhgk8EudlGTxEmMOi0x/jrdR0MHg== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-editor-classic" "47.2.0" + "@ckeditor/ckeditor5-editor-decoupled" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-heading@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-heading/-/ckeditor5-heading-47.2.0.tgz#0487b8bb36936409d8cbf4da067ca18976b7f525" + integrity sha512-m1zSERVh7gdVXwLLYgcAsy7lkIOuadmA5YuwyPpR/g3oa0j1gcuNm5y/73MTOPflPUn0g0Y9DzocF2G1WY2NiQ== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-paragraph" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-highlight@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-highlight/-/ckeditor5-highlight-47.2.0.tgz#1e9c0d4c13602ba76dea0f03e4fc5fb0cbf4a1d3" + integrity sha512-Fp59HRybXJpJl/DtliMTjiVrIA95jmm0SptvXtIucD0hdP9ZX6TOFPTzrRl29LZGITNuYDulPqvNTpFoechRmQ== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-horizontal-line@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-horizontal-line/-/ckeditor5-horizontal-line-47.2.0.tgz#b0a10cff4f2dddb78e0c9a130a4790e8efb27302" + integrity sha512-/DHVMhI9vNs/NI+NQBbUXdzsXHj9hGKihtNDmbV5UP3Hy7l32Gv8k9nJVnBlDbBbHI6Wpxjj6GUxAiLZ46mc1Q== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + "@ckeditor/ckeditor5-widget" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-html-embed@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-html-embed/-/ckeditor5-html-embed-47.2.0.tgz#8dd20d32775aad62a21c1197d3209b5c438411cb" + integrity sha512-VhI789/KDKmQhz9nQqq64odOtLpwjJbPQ/Pf54J2d7AGDvbuNVkjAMVdj5xXXzb/nXdys6zM8lPQZfQGI/Ya8A== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + "@ckeditor/ckeditor5-widget" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-html-support@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-html-support/-/ckeditor5-html-support-47.2.0.tgz#d9bef384af7e4535b570a4d52acc539a1745d13e" + integrity sha512-IwaFBdv0qQQXfnA1LHL2BVQoioNJa9T8NIKDq2OG3mXg02jJvhJl84QADJ0ro36igjKsyfttsl8lM1pf00XAhA== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-enter" "47.2.0" + "@ckeditor/ckeditor5-heading" "47.2.0" + "@ckeditor/ckeditor5-image" "47.2.0" + "@ckeditor/ckeditor5-list" "47.2.0" + "@ckeditor/ckeditor5-remove-format" "47.2.0" + "@ckeditor/ckeditor5-table" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + "@ckeditor/ckeditor5-widget" "47.2.0" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-icons@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-icons/-/ckeditor5-icons-47.2.0.tgz#0721f47f2ea7e8ae729f44e5a9815cc87e30571d" + integrity sha512-9rxAWNQEjZBHyMBQ8XXwfa+ubPBzQntd+nkWBAGTK6ddqHZIaQLsiLrUAdR5tyKKK9tnTkwyx1jycGRspZnoxw== + +"@ckeditor/ckeditor5-image@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-image/-/ckeditor5-image-47.2.0.tgz#4c7a50a05cebccc9e084269cbac1e22524e85203" + integrity sha512-XbXvRS++kFku0l7GABhsribmQTBC/SOAfimDNKjg5rayhAXCfovys7YmmU0eicydpo4//fAaa8zvDYc8uXWZGA== + dependencies: + "@ckeditor/ckeditor5-clipboard" "47.2.0" + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-typing" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-undo" "47.2.0" + "@ckeditor/ckeditor5-upload" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + "@ckeditor/ckeditor5-widget" "47.2.0" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-indent@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-indent/-/ckeditor5-indent-47.2.0.tgz#39fef07c6b789fbcdb122ee37317f212b57ee92d" + integrity sha512-Q85+b+o+nonhJ/I9K9wB9XeZ5W8rS9k66VvoDHxL3jJ6g6C+oyEAOomooTDCvJvBgDN6vGpcwzznKp0Q8baoCQ== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-heading" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-list" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-language@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-language/-/ckeditor5-language-47.2.0.tgz#f31dfc03ef5f56985b6329875fca0e0200b86a6e" + integrity sha512-kc5MqQnvQtUPuvRJfdqXHQZNQyHVy/ZZv5laPY1AKrsKqc5SJO4y3v//4yHvdn45V4QKLwMOy4yC365Sdq0UpA== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-link@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-link/-/ckeditor5-link-47.2.0.tgz#72c6ba684db256d4a2bb481689236335435f7bcc" + integrity sha512-ijaF1Ic23FH9qulW2ZuaxecmdT0JuK/4XNkdaoRntloHiVZ/tFAu+o/6st/pDXfutDBmnEXwrNGVtzO/JTPhrw== + dependencies: + "@ckeditor/ckeditor5-clipboard" "47.2.0" + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-image" "47.2.0" + "@ckeditor/ckeditor5-typing" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + "@ckeditor/ckeditor5-widget" "47.2.0" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-list@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-list/-/ckeditor5-list-47.2.0.tgz#ec5940d8d8d941b9c9e7bb578ce72e64141e4fbe" + integrity sha512-PDjTQLn2CqrZ4XuAAJWY2vA5bkVu8UHKQZa1+ddfS4FbvfF2QR3eDX5axywpuaCb2Dm2ZQoqxpA5GQmt1fUehg== + dependencies: + "@ckeditor/ckeditor5-clipboard" "47.2.0" + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-enter" "47.2.0" + "@ckeditor/ckeditor5-font" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-typing" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-markdown-gfm@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-markdown-gfm/-/ckeditor5-markdown-gfm-47.2.0.tgz#2b88dc114bacf7fa03f9dbc0413a799657954343" + integrity sha512-mt47/GMxrsAL3u/aBjOuH5ETSLH0knoYJpchYb7sXzIuQlY7xPqvcONyD9700TAN30FV7qpOVKUqI7tRyLL5uA== + dependencies: + "@ckeditor/ckeditor5-clipboard" "47.2.0" + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@types/hast" "3.0.4" + ckeditor5 "47.2.0" + hast-util-from-dom "5.0.1" + hast-util-to-html "9.0.5" + hast-util-to-mdast "10.1.2" + hastscript "9.0.1" + rehype-dom-parse "5.0.2" + rehype-dom-stringify "4.0.2" + rehype-remark "10.0.1" + remark-breaks "4.0.0" + remark-gfm "4.0.1" + remark-parse "11.0.0" + remark-rehype "11.1.2" + remark-stringify "11.0.0" + unified "11.0.5" + unist-util-visit "5.0.0" + +"@ckeditor/ckeditor5-media-embed@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-media-embed/-/ckeditor5-media-embed-47.2.0.tgz#1bba0974808cd4c23a07a092030c136274b2873d" + integrity sha512-lATTMej9pBsZk4qm8cOqLXhmrCq/t+HpP/zg3DWnYbiD6zclO69PSJxD09l9NsyOo0YZb8SYAsVISoKNaIOr0A== + dependencies: + "@ckeditor/ckeditor5-clipboard" "47.2.0" + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-typing" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-undo" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + "@ckeditor/ckeditor5-widget" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-mention@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-mention/-/ckeditor5-mention-47.2.0.tgz#db7a21e6b4189f197c03398f0c2cf28dd0717d77" + integrity sha512-ZPvVwEQxcCUI0SvJa28JUULww/SCXiiZpfnMtaneMxsIOqesAFxPqMXA9HkyLotikuK1sezu5XzgJ2S5gdqw3A== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-typing" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-minimap@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-minimap/-/ckeditor5-minimap-47.2.0.tgz#a47b83ed042a528b25dc1e09c7e8830222640d7b" + integrity sha512-Th6HspywP3JeGBMRUmpAuIyFa8XtrpMiGdsjazlKcHaitT6bHBTzaTjaWVnOuVY3gBdFAKsalv2ZEk8vIPqkhg== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-page-break@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-page-break/-/ckeditor5-page-break-47.2.0.tgz#c08dfee03ffe14a0694a4f1bb14231c1eaeb8935" + integrity sha512-DosfUorg3wZ3a6yM/ymsJQ1E2Rbqi08RFOQ4oQLPPAi2VRdTLt0BiqQPFMKJmy2T2k5K4TLc7bs0s3E96aQyXg== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + "@ckeditor/ckeditor5-widget" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-paragraph@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-paragraph/-/ckeditor5-paragraph-47.2.0.tgz#7d5242d38b2986e9da627859ad4a744285801a44" + integrity sha512-x6nqRQjlAcOhirOE9umNdK8WckWcz7JPVU7IlPTzlrVAYCq+wiz6rgpuh4COUHnee4c31fF21On+OVyqgu7JvQ== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + +"@ckeditor/ckeditor5-paste-from-office@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-paste-from-office/-/ckeditor5-paste-from-office-47.2.0.tgz#3b0dccca78353dc477d5658d5877c06e91bfc04d" + integrity sha512-DGGNGNhl25ub8dFBKJF4jfMBoSSbF5uKzFShMNIaAVAagV6kkDWR0HJWAir5CuFrElzWTkPd0ZC5RNL76yTbtg== + dependencies: + "@ckeditor/ckeditor5-clipboard" "47.2.0" + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-remove-format@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-remove-format/-/ckeditor5-remove-format-47.2.0.tgz#d1631b3b7ba7d8560522e5cc4aa0c123cbd21432" + integrity sha512-CRWs7Osok8k3Oi2N7RvA12ECxi47wIyrDTsJ3lJYo8zDIbZdOXlv5o+In+mbsZ7lzNKLhKMAgRcF/PrGWcAaUg== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-restricted-editing@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-restricted-editing/-/ckeditor5-restricted-editing-47.2.0.tgz#6d5513f535db2570ec626b29fed997f7461e2ce9" + integrity sha512-ziFgoZCHaHzzrLeQ6XIlrcEazoGF6IC2+qzxGnO1A1NKY/8WVLmokKFLmUgDMnPLrhvz5Qqldj0dSS2pKhj6QQ== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-select-all@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-select-all/-/ckeditor5-select-all-47.2.0.tgz#61d2bb5c0dd4f16403828f0ae7bb7ce90f557e37" + integrity sha512-4kswe9jmKp6y1hTwWfJBxF8XuX1pgZxraAlm+ugJLhjsus/vGBVXBFNN7kH+RoNxC6tf1ZXly69dGTG4P/nXrg== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + +"@ckeditor/ckeditor5-show-blocks@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-show-blocks/-/ckeditor5-show-blocks-47.2.0.tgz#4096372e2bb52e04cc1d2316f6c36e266b948c43" + integrity sha512-eIzvA5zQEWNGVXhkCTYVfw32tpsFEx4nTPAVpsFEv0hb1sAMaOv5fIoFmwcx/C8CmN9sBiZtuovXGM5i/pwoTQ== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-source-editing@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-source-editing/-/ckeditor5-source-editing-47.2.0.tgz#6d521c9abdb79e8232279410a54654d73dff2a77" + integrity sha512-B82fbUiTBWYR3XTfUk/30Hsk9PAmPkmraKNJKGDoch0NXduPz8ehpCwbnrJdIvm7pozbgB11RjWzq56VcBX2Qw== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-theme-lark" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-special-characters@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-special-characters/-/ckeditor5-special-characters-47.2.0.tgz#08e4f476216d3a5fe9d359a38c1694c163ede818" + integrity sha512-aH1E1SEMRUF6gMdqPuFeDZvZRCUNJ/n8RWwXHFicsJArYDGOiATxVZQZbwk50duAsWcxxj0uTSHGwFXBL9evyQ== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-typing" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + +"@ckeditor/ckeditor5-style@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-style/-/ckeditor5-style-47.2.0.tgz#939b39f42db67dfa91c51ddde2efa9fc28dffc0d" + integrity sha512-XAIl8oNHpFxTRbGIE+2vpKLgrP3VnknUTyasvL/HeS3iUHKLDRlh9d3ghozhuUqQaF5rnkzUQEBv/fv+4u3Y7A== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-html-support" "47.2.0" + "@ckeditor/ckeditor5-list" "47.2.0" + "@ckeditor/ckeditor5-table" "47.2.0" + "@ckeditor/ckeditor5-typing" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-table@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-table/-/ckeditor5-table-47.2.0.tgz#d08098760bc5dca1289a98fcb06a3a6bccd0c4d1" + integrity sha512-zxNHpl4L7HsOLCYiKrbyyHoM2dMGetgP4eTjYyWfn9gf+ydVs7o+LJVN5bsWt3J4ToamCj5G7VHZUmqUcPbN6A== + dependencies: + "@ckeditor/ckeditor5-clipboard" "47.2.0" + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + "@ckeditor/ckeditor5-widget" "47.2.0" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-theme-lark@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-theme-lark/-/ckeditor5-theme-lark-47.2.0.tgz#10260a70b0c12f668593506e51ebd8b7eaa76dba" + integrity sha512-5Guefuo+Nllq4FMaFnLJlU/fICy2IQYw3T+0PTYjFqd59xTx6suwjv2ou41HKPfJ1b6NCbmkbhuaC59lGIfBtQ== + dependencies: + "@ckeditor/ckeditor5-ui" "47.2.0" + +"@ckeditor/ckeditor5-typing@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-typing/-/ckeditor5-typing-47.2.0.tgz#6f5ac014e3104cedc54cc79213d24ea871d24122" + integrity sha512-BDJLlaX9SHFUfZegOEW7ZeJ0o/TBgabINNxa3CwtGuGBLHUAQ3IAFJ0Cd6jHq12J2kRDwiXZzvvgMyCH7jeeUQ== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-ui@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-ui/-/ckeditor5-ui-47.2.0.tgz#e3d7f5ab66a5426f79afa560c1e01bfd41abf88c" + integrity sha512-/yd1/JmIqJybqBRZvk/QGzeY6DZlJvPtyEqq9Ay+U4bUftr2DOrfOikM62okepYRCCtMQ4nQk3c2eFmacfym2A== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-editor-multi-root" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + "@types/color-convert" "2.0.4" + color-convert "3.1.0" + color-parse "2.0.2" + es-toolkit "1.39.5" + vanilla-colorful "0.7.2" + +"@ckeditor/ckeditor5-undo@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-undo/-/ckeditor5-undo-47.2.0.tgz#94af4ec59d65f88dbb3500316784fa5ba897417e" + integrity sha512-smq5O3GdqJXB+9o54BTn/LyB52OHiW9ekzacOuMNxtuA/KBwHpdsPFMcGFGH04W9O0qUtSdt3fYC0i+SJjYAww== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + +"@ckeditor/ckeditor5-upload@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-upload/-/ckeditor5-upload-47.2.0.tgz#6c0caa82be97e1149c03a2d96da242d0a4a613ee" + integrity sha512-uE4FwVtmJ6UACDC9N+H6HHGhlpAF8Fk2QCF/iBboh4VqhlFbFjMbXCAbsWrDik6C/p9r4Iv+IEmbpjsRTD+9SQ== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + +"@ckeditor/ckeditor5-utils@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-utils/-/ckeditor5-utils-47.2.0.tgz#6d80dc08564d34db04b8799eff2897b9cc1d9e17" + integrity sha512-1b9SWtGuPZApm9065swh+fivxQMvuAsVXHuo26OGV2EnQK//w7kHsxKhVGJMzfHeuev5KvhJ2zdo8SUvePfBoA== + dependencies: + "@ckeditor/ckeditor5-ui" "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-watchdog@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-watchdog/-/ckeditor5-watchdog-47.2.0.tgz#67fc6af5205f8da246752e97d8a4e907cc18373f" + integrity sha512-C1AT7OqLBkPCUm4pjJe4n64qj+5vvMdQb2+lLMSz0SMsBqmYFrVYMlZWW4LjpaYUAYEmvTPcyDoqukBKRWNrRQ== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-editor-multi-root" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-widget@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-widget/-/ckeditor5-widget-47.2.0.tgz#3c38db32b0e4d2ec0e78a053fda04d68f2542bf5" + integrity sha512-1vhfdeVPNc6UtCPAC+aKDNIi0EDxpAJ7TudepJVLXnS752V5rnArjPrYBfH6dkpHYV920CuxxsoS1sSuVVMrkA== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-enter" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-typing" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + es-toolkit "1.39.5" + +"@ckeditor/ckeditor5-word-count@47.2.0": + version "47.2.0" + resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-word-count/-/ckeditor5-word-count-47.2.0.tgz#42577d55113f63c4953f7549f1eff8b7de653950" + integrity sha512-1ouy59G1Qxf6hTRnW9tSL7Xjsx8kGfTJvrH9mZWGIpmNo0pIM6Ts96U/qgr5RB0LbhYtqhbDq87F9QjMcfYUjQ== + dependencies: + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + ckeditor5 "47.2.0" + es-toolkit "1.39.5" + +"@esbuild/aix-ppc64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz#815b39267f9bffd3407ea6c376ac32946e24f8d2" + integrity sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg== + +"@esbuild/android-arm64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz#19b882408829ad8e12b10aff2840711b2da361e8" + integrity sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg== + +"@esbuild/android-arm@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.27.3.tgz#90be58de27915efa27b767fcbdb37a4470627d7b" + integrity sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA== + +"@esbuild/android-x64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.27.3.tgz#d7dcc976f16e01a9aaa2f9b938fbec7389f895ac" + integrity sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ== + +"@esbuild/darwin-arm64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz#9f6cac72b3a8532298a6a4493ed639a8988e8abd" + integrity sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg== + +"@esbuild/darwin-x64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz#ac61d645faa37fd650340f1866b0812e1fb14d6a" + integrity sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg== + +"@esbuild/freebsd-arm64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz#b8625689d73cf1830fe58c39051acdc12474ea1b" + integrity sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w== + +"@esbuild/freebsd-x64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz#07be7dd3c9d42fe0eccd2ab9f9ded780bc53bead" + integrity sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA== + +"@esbuild/linux-arm64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz#bf31918fe5c798586460d2b3d6c46ed2c01ca0b6" + integrity sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg== + +"@esbuild/linux-arm@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz#28493ee46abec1dc3f500223cd9f8d2df08f9d11" + integrity sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw== + +"@esbuild/linux-ia32@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz#750752a8b30b43647402561eea764d0a41d0ee29" + integrity sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg== + +"@esbuild/linux-loong64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz#a5a92813a04e71198c50f05adfaf18fc1e95b9ed" + integrity sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA== + +"@esbuild/linux-mips64el@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz#deb45d7fd2d2161eadf1fbc593637ed766d50bb1" + integrity sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw== + +"@esbuild/linux-ppc64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz#6f39ae0b8c4d3d2d61a65b26df79f6e12a1c3d78" + integrity sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA== + +"@esbuild/linux-riscv64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz#4c5c19c3916612ec8e3915187030b9df0b955c1d" + integrity sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ== + +"@esbuild/linux-s390x@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz#9ed17b3198fa08ad5ccaa9e74f6c0aff7ad0156d" + integrity sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw== + +"@esbuild/linux-x64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz#12383dcbf71b7cf6513e58b4b08d95a710bf52a5" + integrity sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA== + +"@esbuild/netbsd-arm64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz#dd0cb2fa543205fcd931df44f4786bfcce6df7d7" + integrity sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA== + +"@esbuild/netbsd-x64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz#028ad1807a8e03e155153b2d025b506c3787354b" + integrity sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA== + +"@esbuild/openbsd-arm64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz#e3c16ff3490c9b59b969fffca87f350ffc0e2af5" + integrity sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw== + +"@esbuild/openbsd-x64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz#c5a4693fcb03d1cbecbf8b422422468dfc0d2a8b" + integrity sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ== + +"@esbuild/openharmony-arm64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz#082082444f12db564a0775a41e1991c0e125055e" + integrity sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g== + +"@esbuild/sunos-x64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz#5ab036c53f929e8405c4e96e865a424160a1b537" + integrity sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA== + +"@esbuild/win32-arm64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz#38de700ef4b960a0045370c171794526e589862e" + integrity sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA== + +"@esbuild/win32-ia32@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz#451b93dc03ec5d4f38619e6cd64d9f9eff06f55c" + integrity sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q== + +"@esbuild/win32-x64@0.27.3": + version "0.27.3" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz#0eaf705c941a218a43dba8e09f1df1d6cd2f1f17" + integrity sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA== + +"@neos-project/neos-ui-extensibility@^9.1.4": + version "9.1.4" + resolved "https://registry.yarnpkg.com/@neos-project/neos-ui-extensibility/-/neos-ui-extensibility-9.1.4.tgz#dc862431440a46f0e68b6049f9a58e698f4580f0" + integrity sha512-BlKdqN8LnNziTwNqqsgD7mfFWerHvMMZ0kqKIpGPVEzqE5qr2WOv67EdJdy4pqxZ0Q18Kh1ofP8kHrWD7AJUEg== + +"@types/color-convert@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/color-convert/-/color-convert-2.0.4.tgz#843398ae71e951dc5415d202dfd5e43108823eeb" + integrity sha512-Ub1MmDdyZ7mX//g25uBAoH/mWGd9swVbt8BseymnaE18SU4po/PjmCrHxqIIRjBo3hV/vh1KGr0eMxUhp+t+dQ== + dependencies: + "@types/color-name" "^1.1.0" + +"@types/color-name@^1.1.0": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.5.tgz#3a3510c4e3661f7707c5ae9c67d726986e6e147d" + integrity sha512-j2K5UJqGTxeesj6oQuGpMgifpT5k9HprgQd8D1Y0lOFqKHl3PJu5GMeS4Y5EgjS55AE6OQxf8mPED9uaGbf4Cg== + +"@types/debug@^4.0.0": + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + +"@types/hast@3.0.4", "@types/hast@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" + integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== + dependencies: + "@types/unist" "*" + +"@types/mdast@^4.0.0": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" + integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== + dependencies: + "@types/unist" "*" + +"@types/ms@*": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" + integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== + +"@types/unist@*", "@types/unist@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" + integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== + +"@ungap/structured-clone@^1.0.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + +blurhash@2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-2.0.5.tgz#efde729fc14a2f03571a6aa91b49cba80d1abe4b" + integrity sha512-cRygWd7kGBQO3VEhPiTgq4Wc43ctsM+o46urrmPOiuAe+07fzlSB9OJVdpgDL0jPqXUVQ9ht7aq7kxOeJHRK+w== + +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + +chalk@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + +ckeditor5@47.2.0: + version "47.2.0" + resolved "https://registry.yarnpkg.com/ckeditor5/-/ckeditor5-47.2.0.tgz#8aeb6466c6dbb1d3b990f9a52c114fbe12fee498" + integrity sha512-mrG9UdpT4JC0I44vK1DV5UwfGhruEG/FMXIWwGv+LWYrKt4aLL/5NyNpW86UDO9YAFSaw6IdEcbJGC/WkMJJjA== + dependencies: + "@ckeditor/ckeditor5-adapter-ckfinder" "47.2.0" + "@ckeditor/ckeditor5-alignment" "47.2.0" + "@ckeditor/ckeditor5-autoformat" "47.2.0" + "@ckeditor/ckeditor5-autosave" "47.2.0" + "@ckeditor/ckeditor5-basic-styles" "47.2.0" + "@ckeditor/ckeditor5-block-quote" "47.2.0" + "@ckeditor/ckeditor5-bookmark" "47.2.0" + "@ckeditor/ckeditor5-ckbox" "47.2.0" + "@ckeditor/ckeditor5-ckfinder" "47.2.0" + "@ckeditor/ckeditor5-clipboard" "47.2.0" + "@ckeditor/ckeditor5-cloud-services" "47.2.0" + "@ckeditor/ckeditor5-code-block" "47.2.0" + "@ckeditor/ckeditor5-core" "47.2.0" + "@ckeditor/ckeditor5-easy-image" "47.2.0" + "@ckeditor/ckeditor5-editor-balloon" "47.2.0" + "@ckeditor/ckeditor5-editor-classic" "47.2.0" + "@ckeditor/ckeditor5-editor-decoupled" "47.2.0" + "@ckeditor/ckeditor5-editor-inline" "47.2.0" + "@ckeditor/ckeditor5-editor-multi-root" "47.2.0" + "@ckeditor/ckeditor5-emoji" "47.2.0" + "@ckeditor/ckeditor5-engine" "47.2.0" + "@ckeditor/ckeditor5-enter" "47.2.0" + "@ckeditor/ckeditor5-essentials" "47.2.0" + "@ckeditor/ckeditor5-find-and-replace" "47.2.0" + "@ckeditor/ckeditor5-font" "47.2.0" + "@ckeditor/ckeditor5-fullscreen" "47.2.0" + "@ckeditor/ckeditor5-heading" "47.2.0" + "@ckeditor/ckeditor5-highlight" "47.2.0" + "@ckeditor/ckeditor5-horizontal-line" "47.2.0" + "@ckeditor/ckeditor5-html-embed" "47.2.0" + "@ckeditor/ckeditor5-html-support" "47.2.0" + "@ckeditor/ckeditor5-icons" "47.2.0" + "@ckeditor/ckeditor5-image" "47.2.0" + "@ckeditor/ckeditor5-indent" "47.2.0" + "@ckeditor/ckeditor5-language" "47.2.0" + "@ckeditor/ckeditor5-link" "47.2.0" + "@ckeditor/ckeditor5-list" "47.2.0" + "@ckeditor/ckeditor5-markdown-gfm" "47.2.0" + "@ckeditor/ckeditor5-media-embed" "47.2.0" + "@ckeditor/ckeditor5-mention" "47.2.0" + "@ckeditor/ckeditor5-minimap" "47.2.0" + "@ckeditor/ckeditor5-page-break" "47.2.0" + "@ckeditor/ckeditor5-paragraph" "47.2.0" + "@ckeditor/ckeditor5-paste-from-office" "47.2.0" + "@ckeditor/ckeditor5-remove-format" "47.2.0" + "@ckeditor/ckeditor5-restricted-editing" "47.2.0" + "@ckeditor/ckeditor5-select-all" "47.2.0" + "@ckeditor/ckeditor5-show-blocks" "47.2.0" + "@ckeditor/ckeditor5-source-editing" "47.2.0" + "@ckeditor/ckeditor5-special-characters" "47.2.0" + "@ckeditor/ckeditor5-style" "47.2.0" + "@ckeditor/ckeditor5-table" "47.2.0" + "@ckeditor/ckeditor5-theme-lark" "47.2.0" + "@ckeditor/ckeditor5-typing" "47.2.0" + "@ckeditor/ckeditor5-ui" "47.2.0" + "@ckeditor/ckeditor5-undo" "47.2.0" + "@ckeditor/ckeditor5-upload" "47.2.0" + "@ckeditor/ckeditor5-utils" "47.2.0" + "@ckeditor/ckeditor5-watchdog" "47.2.0" + "@ckeditor/ckeditor5-widget" "47.2.0" + "@ckeditor/ckeditor5-word-count" "47.2.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +color-convert@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-3.1.0.tgz#ce16ebb832f9d7522649ed9e11bc0ccb9433a524" + integrity sha512-TVoqAq8ZDIpK5lsQY874DDnu65CSsc9vzq0wLpNQ6UMBq81GSZocVazPiBbYGzngzBOIRahpkTzCLVe2at4MfA== + dependencies: + color-name "^2.0.0" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-2.1.0.tgz#0b677385c1c4b4edfdeaf77e38fa338e3a40b693" + integrity sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-parse@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/color-parse/-/color-parse-2.0.2.tgz#37b46930424924060988edf25b24e6ffb4a1dc3f" + integrity sha512-eCtOz5w5ttWIUcaKLiktF+DxZO1R9KLNY/xhbV6CkhM7sR3GhVghmt6X6yOnzeaM24po+Z9/S1apbXMwA3Iepw== + dependencies: + color-name "^2.0.0" + +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + +concurrently@^9.2.1: + version "9.2.1" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-9.2.1.tgz#248ea21b95754947be2dad9c3e4b60f18ca4e44f" + integrity sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng== + dependencies: + chalk "4.1.2" + rxjs "7.8.2" + shell-quote "1.8.3" + supports-color "8.1.1" + tree-kill "1.2.2" + yargs "17.7.2" + +debug@^4.0.0: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" + +decode-named-character-reference@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz#3e40603760874c2e5867691b599d73a7da25b53f" + integrity sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q== + dependencies: + character-entities "^2.0.0" + +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +devlop@^1.0.0, devlop@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" + integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== + dependencies: + dequal "^2.0.0" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +es-toolkit@1.39.5: + version "1.39.5" + resolved "https://registry.yarnpkg.com/es-toolkit/-/es-toolkit-1.39.5.tgz#ee2a78a66aafb76c7345af0ea8c06722c78ef1fd" + integrity sha512-z9V0qU4lx1TBXDNFWfAASWk6RNU6c6+TJBKE+FLIg8u0XJ6Yw58Hi0yX8ftEouj6p1QARRlXLFfHbIli93BdQQ== + +esbuild@^0.27.3: + version "0.27.3" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.27.3.tgz#5859ca8e70a3af956b26895ce4954d7e73bd27a8" + integrity sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.27.3" + "@esbuild/android-arm" "0.27.3" + "@esbuild/android-arm64" "0.27.3" + "@esbuild/android-x64" "0.27.3" + "@esbuild/darwin-arm64" "0.27.3" + "@esbuild/darwin-x64" "0.27.3" + "@esbuild/freebsd-arm64" "0.27.3" + "@esbuild/freebsd-x64" "0.27.3" + "@esbuild/linux-arm" "0.27.3" + "@esbuild/linux-arm64" "0.27.3" + "@esbuild/linux-ia32" "0.27.3" + "@esbuild/linux-loong64" "0.27.3" + "@esbuild/linux-mips64el" "0.27.3" + "@esbuild/linux-ppc64" "0.27.3" + "@esbuild/linux-riscv64" "0.27.3" + "@esbuild/linux-s390x" "0.27.3" + "@esbuild/linux-x64" "0.27.3" + "@esbuild/netbsd-arm64" "0.27.3" + "@esbuild/netbsd-x64" "0.27.3" + "@esbuild/openbsd-arm64" "0.27.3" + "@esbuild/openbsd-x64" "0.27.3" + "@esbuild/openharmony-arm64" "0.27.3" + "@esbuild/sunos-x64" "0.27.3" + "@esbuild/win32-arm64" "0.27.3" + "@esbuild/win32-ia32" "0.27.3" + "@esbuild/win32-x64" "0.27.3" + +escalade@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +fuzzysort@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/fuzzysort/-/fuzzysort-3.1.0.tgz#4d7832d8fa48ad381753eaa7a7aae9927bdc10a8" + integrity sha512-sR9BNCjBg6LNgwvxlBd0sBABvQitkLzoVY9MYYROQVX/FvfJ4Mai9LsGhDgd8qYdds0bY77VzYd5iuB+v5rwQQ== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +hast-util-embedded@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-embedded/-/hast-util-embedded-3.0.0.tgz#be4477780fbbe079cdba22982e357a0de4ba853e" + integrity sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA== + dependencies: + "@types/hast" "^3.0.0" + hast-util-is-element "^3.0.0" + +hast-util-from-dom@5.0.1, hast-util-from-dom@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/hast-util-from-dom/-/hast-util-from-dom-5.0.1.tgz#c3c92fbd8d4e1c1625edeb3a773952b9e4ad64a8" + integrity sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q== + dependencies: + "@types/hast" "^3.0.0" + hastscript "^9.0.0" + web-namespaces "^2.0.0" + +hast-util-has-property@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-has-property/-/hast-util-has-property-3.0.0.tgz#4e595e3cddb8ce530ea92f6fc4111a818d8e7f93" + integrity sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-is-body-ok-link@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-3.0.1.tgz#ef63cb2f14f04ecf775139cd92bda5026380d8b4" + integrity sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-is-element@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz#6e31a6532c217e5b533848c7e52c9d9369ca0932" + integrity sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-minify-whitespace@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hast-util-minify-whitespace/-/hast-util-minify-whitespace-1.0.1.tgz#7588fd1a53f48f1d30406b81959dffc3650daf55" + integrity sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw== + dependencies: + "@types/hast" "^3.0.0" + hast-util-embedded "^3.0.0" + hast-util-is-element "^3.0.0" + hast-util-whitespace "^3.0.0" + unist-util-is "^6.0.0" + +hast-util-parse-selector@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz#352879fa86e25616036037dd8931fb5f34cb4a27" + integrity sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-phrasing@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/hast-util-phrasing/-/hast-util-phrasing-3.0.1.tgz#fa284c0cd4a82a0dd6020de8300a7b1ebffa1690" + integrity sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ== + dependencies: + "@types/hast" "^3.0.0" + hast-util-embedded "^3.0.0" + hast-util-has-property "^3.0.0" + hast-util-is-body-ok-link "^3.0.0" + hast-util-is-element "^3.0.0" + +hast-util-to-dom@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/hast-util-to-dom/-/hast-util-to-dom-4.0.1.tgz#d57a84b9d320c2ce3dd867cefd7dff34b83c2176" + integrity sha512-z1VE7sZ8uFzS2baF3LEflX1IPw2gSzrdo3QFEsyoi23MkCVY3FoE9x6nLgOgjwJu8VNWgo+07iaxtONhDzKrUQ== + dependencies: + "@types/hast" "^3.0.0" + property-information "^7.0.0" + web-namespaces "^2.0.0" + +hast-util-to-html@9.0.5, hast-util-to-html@^9.0.0: + version "9.0.5" + resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz#ccc673a55bb8e85775b08ac28380f72d47167005" + integrity sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-whitespace "^3.0.0" + html-void-elements "^3.0.0" + mdast-util-to-hast "^13.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + stringify-entities "^4.0.0" + zwitch "^2.0.4" + +hast-util-to-mdast@10.1.2, hast-util-to-mdast@^10.0.0: + version "10.1.2" + resolved "https://registry.yarnpkg.com/hast-util-to-mdast/-/hast-util-to-mdast-10.1.2.tgz#bc76f7f5f72f2cde4d6a66ad4cd0aba82bb79909" + integrity sha512-FiCRI7NmOvM4y+f5w32jPRzcxDIz+PUqDwEqn1A+1q2cdp3B8Gx7aVrXORdOKjMNDQsD1ogOr896+0jJHW1EFQ== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@ungap/structured-clone" "^1.0.0" + hast-util-phrasing "^3.0.0" + hast-util-to-html "^9.0.0" + hast-util-to-text "^4.0.0" + hast-util-whitespace "^3.0.0" + mdast-util-phrasing "^4.0.0" + mdast-util-to-hast "^13.0.0" + mdast-util-to-string "^4.0.0" + rehype-minify-whitespace "^6.0.0" + trim-trailing-lines "^2.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + +hast-util-to-text@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz#57b676931e71bf9cb852453678495b3080bfae3e" + integrity sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + hast-util-is-element "^3.0.0" + unist-util-find-after "^5.0.0" + +hast-util-whitespace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" + integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== + dependencies: + "@types/hast" "^3.0.0" + +hastscript@9.0.1, hastscript@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-9.0.1.tgz#dbc84bef6051d40084342c229c451cd9dc567dff" + integrity sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w== + dependencies: + "@types/hast" "^3.0.0" + comma-separated-tokens "^2.0.0" + hast-util-parse-selector "^4.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + +html-void-elements@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" + integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + +markdown-table@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.4.tgz#fe44d6d410ff9d6f2ea1797a3f60aa4d2b631c2a" + integrity sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw== + +mdast-util-find-and-replace@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz#70a3174c894e14df722abf43bc250cbae44b11df" + integrity sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg== + dependencies: + "@types/mdast" "^4.0.0" + escape-string-regexp "^5.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +mdast-util-from-markdown@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz#c95822b91aab75f18a4cbe8b2f51b873ed2cf0c7" + integrity sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + mdast-util-to-string "^4.0.0" + micromark "^4.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-decode-string "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + unist-util-stringify-position "^4.0.0" + +mdast-util-gfm-autolink-literal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz#abd557630337bd30a6d5a4bd8252e1c2dc0875d5" + integrity sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ== + dependencies: + "@types/mdast" "^4.0.0" + ccount "^2.0.0" + devlop "^1.0.0" + mdast-util-find-and-replace "^3.0.0" + micromark-util-character "^2.0.0" + +mdast-util-gfm-footnote@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz#7778e9d9ca3df7238cc2bd3fa2b1bf6a65b19403" + integrity sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.1.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + +mdast-util-gfm-strikethrough@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz#d44ef9e8ed283ac8c1165ab0d0dfd058c2764c16" + integrity sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz#7a435fb6223a72b0862b33afbd712b6dae878d38" + integrity sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + markdown-table "^3.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm-task-list-item@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz#e68095d2f8a4303ef24094ab642e1047b991a936" + integrity sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ== + dependencies: + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-gfm@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz#2cdf63b92c2a331406b0fb0db4c077c1b0331751" + integrity sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ== + dependencies: + mdast-util-from-markdown "^2.0.0" + mdast-util-gfm-autolink-literal "^2.0.0" + mdast-util-gfm-footnote "^2.0.0" + mdast-util-gfm-strikethrough "^2.0.0" + mdast-util-gfm-table "^2.0.0" + mdast-util-gfm-task-list-item "^2.0.0" + mdast-util-to-markdown "^2.0.0" + +mdast-util-newline-to-break@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-newline-to-break/-/mdast-util-newline-to-break-2.0.0.tgz#4e73ef621b6b1a590240336cfe6c29915e198df0" + integrity sha512-MbgeFca0hLYIEx/2zGsszCSEJJ1JSCdiY5xQxRcLDDGa8EPvlLPupJ4DSajbMPAnC0je8jfb9TiUATnxxrHUog== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-find-and-replace "^3.0.0" + +mdast-util-phrasing@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz#7cc0a8dec30eaf04b7b1a9661a92adb3382aa6e3" + integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== + dependencies: + "@types/mdast" "^4.0.0" + unist-util-is "^6.0.0" + +mdast-util-to-hast@^13.0.0: + version "13.2.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz#d7ff84ca499a57e2c060ae67548ad950e689a053" + integrity sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@ungap/structured-clone" "^1.0.0" + devlop "^1.0.0" + micromark-util-sanitize-uri "^2.0.0" + trim-lines "^3.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +mdast-util-to-markdown@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz#f910ffe60897f04bb4b7e7ee434486f76288361b" + integrity sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^4.0.0" + mdast-util-to-string "^4.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-decode-string "^2.0.0" + unist-util-visit "^5.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz#7a5121475556a04e7eddeb67b264aae79d312814" + integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== + dependencies: + "@types/mdast" "^4.0.0" + +micromark-core-commonmark@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz#c691630e485021a68cf28dbc2b2ca27ebf678cd4" + integrity sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg== + dependencies: + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-factory-destination "^2.0.0" + micromark-factory-label "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-title "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-html-tag-name "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-autolink-literal@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz#6286aee9686c4462c1e3552a9d505feddceeb935" + integrity sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-footnote@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz#4dab56d4e398b9853f6fe4efac4fc9361f3e0750" + integrity sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw== + dependencies: + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-strikethrough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz#86106df8b3a692b5f6a92280d3879be6be46d923" + integrity sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-classify-character "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-table@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz#fac70bcbf51fe65f5f44033118d39be8a9b5940b" + integrity sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm-tagfilter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz#f26d8a7807b5985fba13cf61465b58ca5ff7dc57" + integrity sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg== + dependencies: + micromark-util-types "^2.0.0" + +micromark-extension-gfm-task-list-item@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz#bcc34d805639829990ec175c3eea12bb5b781f2c" + integrity sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-extension-gfm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz#3e13376ab95dd7a5cfd0e29560dfe999657b3c5b" + integrity sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w== + dependencies: + micromark-extension-gfm-autolink-literal "^2.0.0" + micromark-extension-gfm-footnote "^2.0.0" + micromark-extension-gfm-strikethrough "^2.0.0" + micromark-extension-gfm-table "^2.0.0" + micromark-extension-gfm-tagfilter "^2.0.0" + micromark-extension-gfm-task-list-item "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-destination@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz#8fef8e0f7081f0474fbdd92deb50c990a0264639" + integrity sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-label@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz#5267efa97f1e5254efc7f20b459a38cb21058ba1" + integrity sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg== + dependencies: + devlop "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-space@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz#36d0212e962b2b3121f8525fc7a3c7c029f334fc" + integrity sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-title@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz#237e4aa5d58a95863f01032d9ee9b090f1de6e94" + integrity sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-whitespace@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz#06b26b2983c4d27bfcc657b33e25134d4868b0b1" + integrity sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ== + dependencies: + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-character@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz#2f987831a40d4c510ac261e89852c4e9703ccda6" + integrity sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-chunked@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz#47fbcd93471a3fccab86cff03847fc3552db1051" + integrity sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-classify-character@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz#d399faf9c45ca14c8b4be98b1ea481bced87b629" + integrity sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-combine-extensions@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz#2a0f490ab08bff5cc2fd5eec6dd0ca04f89b30a9" + integrity sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg== + dependencies: + micromark-util-chunked "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-decode-numeric-character-reference@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz#fcf15b660979388e6f118cdb6bf7d79d73d26fe5" + integrity sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-decode-string@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz#6cb99582e5d271e84efca8e61a807994d7161eb2" + integrity sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-encode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz#0d51d1c095551cfaac368326963cf55f15f540b8" + integrity sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw== + +micromark-util-html-tag-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz#e40403096481986b41c106627f98f72d4d10b825" + integrity sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA== + +micromark-util-normalize-identifier@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz#c30d77b2e832acf6526f8bf1aa47bc9c9438c16d" + integrity sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-resolve-all@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz#e1a2d62cdd237230a2ae11839027b19381e31e8b" + integrity sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg== + dependencies: + micromark-util-types "^2.0.0" + +micromark-util-sanitize-uri@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz#ab89789b818a58752b73d6b55238621b7faa8fd7" + integrity sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-subtokenize@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz#d8ade5ba0f3197a1cf6a2999fbbfe6357a1a19ee" + integrity sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-symbol@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz#e5da494e8eb2b071a0d08fb34f6cefec6c0a19b8" + integrity sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q== + +micromark-util-types@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.2.tgz#f00225f5f5a0ebc3254f96c36b6605c4b393908e" + integrity sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA== + +micromark@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.2.tgz#91395a3e1884a198e62116e33c9c568e39936fdb" + integrity sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + devlop "^1.0.0" + micromark-core-commonmark "^2.0.0" + micromark-factory-space "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-combine-extensions "^2.0.0" + micromark-util-decode-numeric-character-reference "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-normalize-identifier "^2.0.0" + micromark-util-resolve-all "^2.0.0" + micromark-util-sanitize-uri "^2.0.0" + micromark-util-subtokenize "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +prettier@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.1.tgz#edf48977cf991558f4fcbd8a3ba6015ba2a3a173" + integrity sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg== + +property-information@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.1.0.tgz#b622e8646e02b580205415586b40804d3e8bfd5d" + integrity sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ== + +rehype-dom-parse@5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/rehype-dom-parse/-/rehype-dom-parse-5.0.2.tgz#358c82e4733c53b3d31c5c0a9d0a15892f04a9fa" + integrity sha512-8CqP11KaqvtWsMqVEC2yM3cZWZsDNqqpr8nPvogjraLuh45stabgcpXadCAxu1n6JaUNJ/Xr3GIqXP7okbNqLg== + dependencies: + "@types/hast" "^3.0.0" + hast-util-from-dom "^5.0.0" + unified "^11.0.0" + +rehype-dom-stringify@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/rehype-dom-stringify/-/rehype-dom-stringify-4.0.2.tgz#8dfd1a7aec5202596f665c14c66f4ab33faac11c" + integrity sha512-2HVFYbtmm5W3C2j8QsV9lcHdIMc2Yn/ytlPKcSC85/tRx2haZbU8V67Wxyh8STT38ZClvKlZ993Me/Hw8g88Aw== + dependencies: + "@types/hast" "^3.0.0" + hast-util-to-dom "^4.0.0" + unified "^11.0.0" + +rehype-minify-whitespace@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/rehype-minify-whitespace/-/rehype-minify-whitespace-6.0.2.tgz#7dd234ce0775656ce6b6b0aad0a6093de29b2278" + integrity sha512-Zk0pyQ06A3Lyxhe9vGtOtzz3Z0+qZ5+7icZ/PL/2x1SHPbKao5oB/g/rlc6BCTajqBb33JcOe71Ye1oFsuYbnw== + dependencies: + "@types/hast" "^3.0.0" + hast-util-minify-whitespace "^1.0.0" + +rehype-remark@10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/rehype-remark/-/rehype-remark-10.0.1.tgz#f669fa68cfb8b5baaf4fa95476a923516111a43b" + integrity sha512-EmDndlb5NVwXGfUa4c9GPK+lXeItTilLhE6ADSaQuHr4JUlKw9MidzGzx4HpqZrNCt6vnHmEifXQiiA+CEnjYQ== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + hast-util-to-mdast "^10.0.0" + unified "^11.0.0" + vfile "^6.0.0" + +remark-breaks@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-breaks/-/remark-breaks-4.0.0.tgz#dcc19a2891733906f3b97eaa8acb8621e8da8852" + integrity sha512-IjEjJOkH4FuJvHZVIW0QCDWxcG96kCq7An/KVH2NfJe6rKZU2AsHeB3OEjPNRxi4QC34Xdx7I2KGYn6IpT7gxQ== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-newline-to-break "^2.0.0" + unified "^11.0.0" + +remark-gfm@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-4.0.1.tgz#33227b2a74397670d357bf05c098eaf8513f0d6b" + integrity sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-gfm "^3.0.0" + micromark-extension-gfm "^3.0.0" + remark-parse "^11.0.0" + remark-stringify "^11.0.0" + unified "^11.0.0" + +remark-parse@11.0.0, remark-parse@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-11.0.0.tgz#aa60743fcb37ebf6b069204eb4da304e40db45a1" + integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-from-markdown "^2.0.0" + micromark-util-types "^2.0.0" + unified "^11.0.0" + +remark-rehype@11.1.2: + version "11.1.2" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-11.1.2.tgz#2addaadda80ca9bd9aa0da763e74d16327683b37" + integrity sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + mdast-util-to-hast "^13.0.0" + unified "^11.0.0" + vfile "^6.0.0" + +remark-stringify@11.0.0, remark-stringify@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-11.0.0.tgz#4c5b01dd711c269df1aaae11743eb7e2e7636fd3" + integrity sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-to-markdown "^2.0.0" + unified "^11.0.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +rxjs@7.8.2: + version "7.8.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" + integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== + dependencies: + tslib "^2.1.0" + +shell-quote@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.3.tgz#55e40ef33cf5c689902353a3d8cd1a6725f08b4b" + integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw== + +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +stringify-entities@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" + integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +tree-kill@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + +trim-trailing-lines@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-2.1.0.tgz#9aac7e89b09cb35badf663de7133c6de164f86df" + integrity sha512-5UR5Biq4VlVOtzqkm2AZlgvSlDJtME46uV0br0gENbwN4l5+mMKT4b9gJKqWtuL2zAIqajGJGuvbCbcAJUZqBg== + +trough@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" + integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== + +tslib@^2.1.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +typescript@^5.9.3: + version "5.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== + +unified@11.0.5, unified@^11.0.0: + version "11.0.5" + resolved "https://registry.yarnpkg.com/unified/-/unified-11.0.5.tgz#f66677610a5c0a9ee90cab2b8d4d66037026d9e1" + integrity sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA== + dependencies: + "@types/unist" "^3.0.0" + bail "^2.0.0" + devlop "^1.0.0" + extend "^3.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^6.0.0" + +unist-util-find-after@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz#3fccc1b086b56f34c8b798e1ff90b5c54468e896" + integrity sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + +unist-util-is@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.1.tgz#d0a3f86f2dd0db7acd7d8c2478080b5c67f9c6a9" + integrity sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" + integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-stringify-position@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" + integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-visit-parents@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz#777df7fb98652ce16b4b7cd999d0a1a40efa3a02" + integrity sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + +unist-util-visit@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" + integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +unist-util-visit@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.1.0.tgz#9a2a28b0aa76a15e0da70a08a5863a2f060e2468" + integrity sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +vanilla-colorful@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/vanilla-colorful/-/vanilla-colorful-0.7.2.tgz#3fb1f4b9f15b797e20fd1ce8e0364f33b073f4a2" + integrity sha512-z2YZusTFC6KnLERx1cgoIRX2CjPRP0W75N+3CC6gbvdX5Ch47rZkEMGO2Xnf+IEmi3RiFLxS18gayMA27iU7Kg== + +vfile-message@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.3.tgz#87b44dddd7b70f0641c2e3ed0864ba73e2ea8df4" + integrity sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + +vfile@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.3.tgz#3652ab1c496531852bf55a6bac57af981ebc38ab" + integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== + dependencies: + "@types/unist" "^3.0.0" + vfile-message "^4.0.0" + +web-namespaces@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" + integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +zwitch@^2.0.0, zwitch@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== diff --git a/build.sh b/build.sh index 732395c..e6dbe50 100755 --- a/build.sh +++ b/build.sh @@ -1,6 +1,5 @@ - # installs dependencies yarn --cwd Resources/Private/JavaScript/CkStyles # builds the app -yarn --cwd Resources/Private/JavaScript/CkStyles build \ No newline at end of file +yarn --cwd Resources/Private/JavaScript/CkStyles build diff --git a/composer.json b/composer.json index 4e4e868..9416e50 100644 --- a/composer.json +++ b/composer.json @@ -14,8 +14,7 @@ } ], "require": { - "neos/neos-ui": ">=3.8 <10.0", - "neos/neos": "^7.0 || ^8.0 || ^9.0" + "neos/neos-ui": "^9.1.4" }, "extra": { "neos": { diff --git a/watch.sh b/watch.sh index 0e2f393..fe3016f 100755 --- a/watch.sh +++ b/watch.sh @@ -1,4 +1,3 @@ - # installs dependencies yarn --cwd Resources/Private/JavaScript/CkStyles From 3c2a3f3f11b5df02fae968fff0e96b525401fb70 Mon Sep 17 00:00:00 2001 From: Robert Baruck Date: Tue, 3 Mar 2026 17:54:24 +0100 Subject: [PATCH 4/8] FEATURE: Add ability to translate labels --- Resources/Private/JavaScript/CkStyles/TODO.md | 4 +--- .../Private/JavaScript/CkStyles/global.d.ts | 8 ++++++++ .../JavaScript/CkStyles/src/BlockStyleCommand.ts | 8 +++++--- .../JavaScript/CkStyles/src/BlockStyleEditing.ts | 16 ++++++++-------- .../CkStyles/src/InlineStylesEditing.ts | 14 +++++--------- .../Private/JavaScript/CkStyles/src/utils.ts | 16 ++++++++++++++++ 6 files changed, 43 insertions(+), 23 deletions(-) diff --git a/Resources/Private/JavaScript/CkStyles/TODO.md b/Resources/Private/JavaScript/CkStyles/TODO.md index 3f16b5f..d16a221 100644 --- a/Resources/Private/JavaScript/CkStyles/TODO.md +++ b/Resources/Private/JavaScript/CkStyles/TODO.md @@ -1,7 +1,5 @@ # TODO -- Enable translation - - see https://codeberg.org/PackageFactory/PackageFactory.CkInlineImages/src/branch/main - - and https://github.com/techdivision/ckstyles/pull/41 - Update Readme +- BUG: BlockStyleCommand does not know it's active - !!! change outDir diff --git a/Resources/Private/JavaScript/CkStyles/global.d.ts b/Resources/Private/JavaScript/CkStyles/global.d.ts index 32f7956..7d6ae18 100644 --- a/Resources/Private/JavaScript/CkStyles/global.d.ts +++ b/Resources/Private/JavaScript/CkStyles/global.d.ts @@ -1 +1,9 @@ declare module "@neos-project/neos-ui-extensibility"; +declare module "@neos-project/neos-ui-i18n" { + export function translate( + fullyQualifiedTranslationAddressAsString: string, + fallback: string | [string, string] = "", + parameters: Parameters = [], + quantity: number = 0, + ): string; +} diff --git a/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts b/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts index 878b157..cbe7d63 100644 --- a/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts +++ b/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts @@ -35,8 +35,8 @@ export default class BlockStyleCommand extends Command { const blocks = Array.from(doc.selection.getSelectedBlocks()); // reset value and enabled state - this.value = []; this.isEnabled = false; + const values: string[] = []; for (const block of blocks) { if (schema.checkAttribute(block, this.attributeKey)) { @@ -45,11 +45,13 @@ export default class BlockStyleCommand extends Command { // if the block has the attribute and its value is one of the allowed values, add it to the command value const value = block.getAttribute(this.attributeKey); - if (typeof value === "string" && this.value.includes(value) && value !== "") { - this.value.push(value); + if (typeof value === "string" && values.includes(value) && value !== "") { + values.push(value); } } } + + this.value = values; } /** diff --git a/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts b/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts index ac14e16..79bff0f 100644 --- a/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts +++ b/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts @@ -17,7 +17,7 @@ import { type CkStylesPresetIdentifier, TECHDIVISION_CKSTYLES__NAME_SPACE } from "./configuration"; -import { createAttributeKey, createCommandId, createDropdownId } from "./utils"; +import { createAttributeKey, createCommandId, createDropdownId, translateLabel } from "./utils"; /** * FACTORY FUNCTION for the plugin @@ -51,17 +51,17 @@ export function createBlockStyleEditingPlugin( values: optionIdentifiers, }, view: optionIdentifiers.reduce((viewConfig: Record, optionIdentifier) => { - const options = presetConfiguration.options[optionIdentifier]!; + const option = presetConfiguration.options[optionIdentifier]!; - if ("attribute" in options) { + if ("attribute" in option) { viewConfig[optionIdentifier] = { key: "attribute", - value: options.attributeValue, + value: option.attributeValue, }; - } else if ("cssClass" in options) { + } else if ("cssClass" in option) { viewConfig[optionIdentifier] = { key: "class", - value: options.cssClass, + value: option.cssClass, }; } else { throw new Error( @@ -90,7 +90,7 @@ export function createBlockStyleEditingPlugin( } dropdownView.buttonView.set({ - label: presetConfiguration.label, + label: translateLabel(presetConfiguration.label), withText: presetConfiguration.showLabel ?? true, tooltip: true, icon: presetConfiguration.icon ?? undefined, @@ -106,7 +106,7 @@ export function createBlockStyleEditingPlugin( type: "button", model: new UIModel({ commandValue: optionIdentifier, - label: option.label, + label: translateLabel(option.label), icon: option.icon ?? undefined, withText: option.showLabel ?? true, toggleable: true, diff --git a/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts b/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts index 10c78ff..64e264d 100644 --- a/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts +++ b/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts @@ -17,7 +17,7 @@ import { INLINE_STYLING__COMMAND_PREFIX, TECHDIVISION_CKSTYLES__NAME_SPACE } from "./configuration"; -import { createAttributeKey, createCommandId, createDropdownId } from "./utils"; +import { createAttributeKey, createCommandId, createDropdownId, translateLabel } from "./utils"; /** * FACTORY FUNCTION for the plugin @@ -92,7 +92,7 @@ export function createInlineEditStylePlugin( } dropdownView.buttonView.set({ - label: presetConfiguration.label, + label: translateLabel(presetConfiguration.label), withText: presetConfiguration.showLabel ?? true, tooltip: true, icon: presetConfiguration.icon ?? null, @@ -108,7 +108,7 @@ export function createInlineEditStylePlugin( type: "button", model: new UIModel({ commandValue: optionIdentifier, - label: option.label, + label: translateLabel(option.label), icon: option.icon ?? null, withText: option.showLabel ?? true, toggleable: true, @@ -125,12 +125,8 @@ export function createInlineEditStylePlugin( // register execute event for dropdown this.listenTo(dropdownView, "execute", (evt) => { // no type info on evt.source so we cast it to the expected type - const { commandValue } = evt.source as { - commandValue: string; - }; - this.editor.execute(commandId, { - value: commandValue, - }); + const { commandValue } = evt.source as { commandValue: string }; + this.editor.execute(commandId, { value: commandValue }); this.editor.editing.view.focus(); }); diff --git a/Resources/Private/JavaScript/CkStyles/src/utils.ts b/Resources/Private/JavaScript/CkStyles/src/utils.ts index 4298a97..27610ce 100644 --- a/Resources/Private/JavaScript/CkStyles/src/utils.ts +++ b/Resources/Private/JavaScript/CkStyles/src/utils.ts @@ -1,3 +1,5 @@ +import { translate } from "@neos-project/neos-ui-i18n"; + import { BLOCK_STYLING__ATTRIBUTE_PREFIX, BLOCK_STYLING__COMMAND_PREFIX, @@ -37,3 +39,17 @@ export function createAttributeKey( ): string { return `${attributePrefix}-${presetIdentifier}`; } + +const translationRegex = /^i18n\((.+)\)$/; + +export function translateLabel(label: string): string { + // If the label is in form "i18n(Trans:lation:Name.space)", treat it as a translation key and try to translate it. + const matches = label.match(translationRegex); + + if (matches?.[1]) { + const translationKey = matches[1]; + return translate(translationKey, label); + } + + return label; +} From 229b30c68d8b017ce80b6d3ad198b64a87ba89eb Mon Sep 17 00:00:00 2001 From: Robert Baruck Date: Wed, 4 Mar 2026 09:46:04 +0100 Subject: [PATCH 5/8] BUGFIX: Fix BlockStyle editing --- Resources/Private/JavaScript/CkStyles/TODO.md | 1 - Resources/Private/JavaScript/CkStyles/build.js | 5 +---- .../Private/JavaScript/CkStyles/src/BlockStyleCommand.ts | 8 ++++---- .../Private/JavaScript/CkStyles/src/BlockStyleEditing.ts | 6 ++---- .../JavaScript/CkStyles/src/InlineStylesEditing.ts | 4 +--- 5 files changed, 8 insertions(+), 16 deletions(-) diff --git a/Resources/Private/JavaScript/CkStyles/TODO.md b/Resources/Private/JavaScript/CkStyles/TODO.md index d16a221..8424f98 100644 --- a/Resources/Private/JavaScript/CkStyles/TODO.md +++ b/Resources/Private/JavaScript/CkStyles/TODO.md @@ -1,5 +1,4 @@ # TODO - Update Readme -- BUG: BlockStyleCommand does not know it's active - !!! change outDir diff --git a/Resources/Private/JavaScript/CkStyles/build.js b/Resources/Private/JavaScript/CkStyles/build.js index 813c5cb..2b48e36 100644 --- a/Resources/Private/JavaScript/CkStyles/build.js +++ b/Resources/Private/JavaScript/CkStyles/build.js @@ -26,10 +26,7 @@ const options = { }; if (isWatch) { - (async () => { - const ctx = await esbuild.context(options); - await ctx.watch(); - })(); + esbuild.context(options).then((ctx) => ctx.watch()) } else { esbuild.build(options); } diff --git a/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts b/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts index cbe7d63..207b8fe 100644 --- a/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts +++ b/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts @@ -36,7 +36,7 @@ export default class BlockStyleCommand extends Command { // reset value and enabled state this.isEnabled = false; - const values: string[] = []; + const valuesInCurrentSelection: string[] = []; for (const block of blocks) { if (schema.checkAttribute(block, this.attributeKey)) { @@ -45,13 +45,13 @@ export default class BlockStyleCommand extends Command { // if the block has the attribute and its value is one of the allowed values, add it to the command value const value = block.getAttribute(this.attributeKey); - if (typeof value === "string" && values.includes(value) && value !== "") { - values.push(value); + if (typeof value === "string" && !valuesInCurrentSelection.includes(value) && value !== "") { + valuesInCurrentSelection.push(value); } } } - this.value = values; + this.value = valuesInCurrentSelection; } /** diff --git a/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts b/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts index 79bff0f..a0c454c 100644 --- a/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts +++ b/Resources/Private/JavaScript/CkStyles/src/BlockStyleEditing.ts @@ -40,9 +40,7 @@ export function createBlockStyleEditingPlugin( schema.extend("$block", { allowAttributes: modelAttributeKey }); // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html - schema.setAttributeProperties(modelAttributeKey, { - isFormatting: true, - }); + schema.setAttributeProperties(modelAttributeKey, { isFormatting: true }); // Register model-view conversion this.editor.conversion.attributeToAttribute({ @@ -55,7 +53,7 @@ export function createBlockStyleEditingPlugin( if ("attribute" in option) { viewConfig[optionIdentifier] = { - key: "attribute", + key: option.attribute, value: option.attributeValue, }; } else if ("cssClass" in option) { diff --git a/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts b/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts index 64e264d..c783399 100644 --- a/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts +++ b/Resources/Private/JavaScript/CkStyles/src/InlineStylesEditing.ts @@ -40,9 +40,7 @@ export function createInlineEditStylePlugin( schema.extend("$text", { allowAttributes: modelAttributeKey }); // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html - schema.setAttributeProperties(modelAttributeKey, { - isFormatting: true, - }); + schema.setAttributeProperties(modelAttributeKey, { isFormatting: true }); // Register model-view conversion this.editor.conversion.attributeToElement({ From 5a8f3224f8f70be4aa40193c6ac9bc6825192eb0 Mon Sep 17 00:00:00 2001 From: Robert Baruck Date: Wed, 4 Mar 2026 11:34:07 +0100 Subject: [PATCH 6/8] Add video demonstration to README Added a video demonstration to the README. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 0299394..078e07f 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,10 @@ It is also possible to set a different attribute (for usage with placeholders fo ![Applying inline style](Documentation/assets/InlineStyleDemo.gif "Inline style") + + + + **Example output:** ![Example output](Documentation/assets/ExampleOutput.png "Example output") From fae10b09d067e00ce38076bba5885072b5b36ebd Mon Sep 17 00:00:00 2001 From: Robert Baruck Date: Wed, 4 Mar 2026 11:39:46 +0100 Subject: [PATCH 7/8] TASK: Clean up, bugfixes, documentation --- Configuration/Settings.CkStyles.yaml | 21 + README.md | 31 +- Resources/Private/JavaScript/CkStyles/TODO.md | 4 - .../Private/JavaScript/CkStyles/build.js | 2 +- .../CkStyles/src/BlockStyleCommand.ts | 7 +- .../CkStyles/src/InlineStylesCommand.ts | 3 +- .../JavaScript/CkStyles/src/manifest.ts | 8 +- .../Public/JavaScript/CkStyles/Plugin.js | 391 +----------------- .../Public/JavaScript/CkStyles/Plugin.js.map | 8 +- 9 files changed, 67 insertions(+), 408 deletions(-) delete mode 100644 Resources/Private/JavaScript/CkStyles/TODO.md diff --git a/Configuration/Settings.CkStyles.yaml b/Configuration/Settings.CkStyles.yaml index 2e3e355..3fe3204 100644 --- a/Configuration/Settings.CkStyles.yaml +++ b/Configuration/Settings.CkStyles.yaml @@ -4,10 +4,31 @@ # InlineStyles: # presets: # 'fontColor': +# # preset and option labels can be translated +# # example for translation: +# # label: i18n(My.Package:CkStyles:InlineStyles.fontColor.label) +# # This would look for the translation in "My.Package/Resources/Private/Translations//CkStyles.xlf" with the key "InlineStyles.fontColor.label" +# # Make sure the translation file is autoloaded via settings yaml: +# # Neos: +# # Neos: +# # userInterface: +# # translation: +# # autoInclude: +# # My.Package: +# # - 'CkStyles' # label: 'Font color' # options: # 'primary': # label: 'Red' +# # presets and options can have icons +# # The icon has to be svg markup. For example, you can use free icons from fontawesome (https://fontawesome.com/search?ic=free-collection) and use the svg markup. +# # example for icon: +# # icon: '' +# # The icon will be displayed in the button element of the dropdown/item. +# # In the example above the icon has some custom styling: It is styled with the same class as the option, so it will be displayed in the same color as the option. And some shadow for better visibility. +# icon: '' +# # presets and options can hide the label and only show the icon by setting showLabel to false. By default, the label is shown. +# showLabel: false # cssClass: 'my-class-red' # 'secondary': # label: 'Green' diff --git a/README.md b/README.md index 078e07f..12747b9 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,8 @@ It is also possible to set a different attribute (for usage with placeholders fo **Demo:** -![Applying inline style](Documentation/assets/InlineStyleDemo.gif "Inline style") - - - - **Example output:** ![Example output](Documentation/assets/ExampleOutput.png "Example output") @@ -54,14 +49,38 @@ TechDivision: InlineStyles: presets: 'fontColor': + # preset and option labels can be translated + # example for translation: + # label: i18n(My.Package:CkStyles:InlineStyles.fontColor.label) + # This would look for the translation in "My.Package/Resources/Private/Translations//CkStyles.xlf" with the key "InlineStyles.fontColor.label" + # Make sure the translation file is autoloaded via settings yaml: + # Neos: + # Neos: + # userInterface: + # translation: + # autoInclude: + # My.Package: + # - 'CkStyles' label: 'Font color' options: 'primary': label: 'Red' + # presets and options can have icons + # The icon has to be svg markup. For example, you can use free icons from fontawesome (https://fontawesome.com/search?ic=free-collection) and use the svg markup. + # example for icon: + # icon: '' + # The icon will be displayed in the button element of the dropdown/item. + # In the example above the icon has some custom styling: It is styled with the same class as the option, so it will be displayed in the same color as the option. And some shadow for better visibility. + icon: '' + # presets and options can hide the label and only show the icon by setting showLabel to false. By default, the label is shown. + showLabel: false cssClass: 'my-class-red' 'secondary': label: 'Green' cssClass: 'my-class-green' + '': + label: 'unset color' + cssClass: null 'fontSize': label: 'Font size' options: @@ -98,7 +117,7 @@ TechDivision: attributeValue: 'my-custom-attribute-value' ``` -Example: [Configuration/Settings.yaml](Configuration/Settings.yaml) +Example: [Configuration/Settings.CkStyles.yaml](Configuration/Settings.CkStyles.yaml) **What values are allowed for `cssClass` and/or `attributeValue`?** diff --git a/Resources/Private/JavaScript/CkStyles/TODO.md b/Resources/Private/JavaScript/CkStyles/TODO.md deleted file mode 100644 index 8424f98..0000000 --- a/Resources/Private/JavaScript/CkStyles/TODO.md +++ /dev/null @@ -1,4 +0,0 @@ -# TODO - -- Update Readme -- !!! change outDir diff --git a/Resources/Private/JavaScript/CkStyles/build.js b/Resources/Private/JavaScript/CkStyles/build.js index 2b48e36..2a78878 100644 --- a/Resources/Private/JavaScript/CkStyles/build.js +++ b/Resources/Private/JavaScript/CkStyles/build.js @@ -13,7 +13,7 @@ const options = { entryPoints: { Plugin: "./src/index.ts", }, - outdir: "../../../../../Neos.NeosIo/Packages/Plugins/TechDivision.CkStyles/Resources/Public/JavaScript/CkStyles/", + outdir: "../../../Public/JavaScript/CkStyles/", alias: { "@ckeditor/ckeditor5-ui/theme/components/form/form.css": "./empty.css", "@ckeditor/ckeditor5-ui/theme/components/responsive-form/responsiveform.css": "./empty.css", diff --git a/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts b/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts index 207b8fe..069447a 100644 --- a/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts +++ b/Resources/Private/JavaScript/CkStyles/src/BlockStyleCommand.ts @@ -67,8 +67,11 @@ export default class BlockStyleCommand extends Command { const doc = model.document; const selection = doc.selection; - const value = options.value; - const blocksToChange = selection.getSelectedBlocks(); + const blocksToChange = Array.from(selection.getSelectedBlocks()); + + // toggle the value: if all selected blocks already have the attribute with the same value, remove it; otherwise, set it for all selected blocks + const allBlocksHaveValue = blocksToChange.every(block => block.getAttribute(this.attributeKey) === options.value); + const value = allBlocksHaveValue ? undefined : options.value; model.change((writer) => { for (const block of blocksToChange) { diff --git a/Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.ts b/Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.ts index e0927bb..8aaff40 100644 --- a/Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.ts +++ b/Resources/Private/JavaScript/CkStyles/src/InlineStylesCommand.ts @@ -78,7 +78,8 @@ export default class InlineStylesCommand extends Command { const model = this.editor.model; const doc = model.document; const selection = doc.selection; - const value = options.value; + // toggle value: if the value is already set, remove it; otherwise, set it to the provided value + const value = this.value === options.value ? undefined : options.value; model.change((writer) => { if (selection.isCollapsed) { diff --git a/Resources/Private/JavaScript/CkStyles/src/manifest.ts b/Resources/Private/JavaScript/CkStyles/src/manifest.ts index e7ff153..1d13a32 100644 --- a/Resources/Private/JavaScript/CkStyles/src/manifest.ts +++ b/Resources/Private/JavaScript/CkStyles/src/manifest.ts @@ -54,10 +54,10 @@ manifest( items: [toolbarItemId], }; } else if (Array.isArray(ckEditorConfiguration.toolbar)) { - ckEditorConfiguration.toolbar.push(toolbarItemId); + ckEditorConfiguration.toolbar.push('|', toolbarItemId); } else { ckEditorConfiguration.toolbar.items = ckEditorConfiguration.toolbar.items ?? []; - ckEditorConfiguration.toolbar.items.push(toolbarItemId); + ckEditorConfiguration.toolbar.items.push('|', toolbarItemId); } } @@ -91,10 +91,10 @@ manifest( items: [toolbarItemId], }; } else if (Array.isArray(ckEditorConfiguration.toolbar)) { - ckEditorConfiguration.toolbar.push(toolbarItemId); + ckEditorConfiguration.toolbar.push('|', toolbarItemId); } else { ckEditorConfiguration.toolbar.items = ckEditorConfiguration.toolbar.items ?? []; - ckEditorConfiguration.toolbar.items.push(toolbarItemId); + ckEditorConfiguration.toolbar.items.push('|', toolbarItemId); } } diff --git a/Resources/Public/JavaScript/CkStyles/Plugin.js b/Resources/Public/JavaScript/CkStyles/Plugin.js index fbcebf7..e9149ce 100644 --- a/Resources/Public/JavaScript/CkStyles/Plugin.js +++ b/Resources/Public/JavaScript/CkStyles/Plugin.js @@ -1,389 +1,2 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./src/index.js"); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./node_modules/@neos-project/neos-ui-extensibility/dist/createConsumerApi.js": -/*!************************************************************************************!*\ - !*** ./node_modules/@neos-project/neos-ui-extensibility/dist/createConsumerApi.js ***! - \************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createConsumerApi;\n\nvar _manifest = __webpack_require__(/*! ./manifest */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/manifest.js\");\n\nvar _manifest2 = _interopRequireDefault(_manifest);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createReadOnlyValue = function createReadOnlyValue(value) {\n return {\n value: value,\n writable: false,\n enumerable: false,\n configurable: true\n };\n};\nfunction createConsumerApi(manifests, exposureMap) {\n var api = {};\n Object.keys(exposureMap).forEach(function (key) {\n Object.defineProperty(api, key, createReadOnlyValue(exposureMap[key]));\n });\n Object.defineProperty(api, '@manifest', createReadOnlyValue((0, _manifest2.default)(manifests)));\n Object.defineProperty(window, '@Neos:HostPluginAPI', createReadOnlyValue(api));\n}\n//# sourceMappingURL=createConsumerApi.js.map\n\n//# sourceURL=webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/createConsumerApi.js?"); - -/***/ }), - -/***/ "./node_modules/@neos-project/neos-ui-extensibility/dist/index.js": -/*!************************************************************************!*\ - !*** ./node_modules/@neos-project/neos-ui-extensibility/dist/index.js ***! - \************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SynchronousMetaRegistry = exports.SynchronousRegistry = exports.readFromConsumerApi = exports.createConsumerApi = undefined;\n\nvar _createConsumerApi = __webpack_require__(/*! ./createConsumerApi */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/createConsumerApi.js\");\n\nvar _createConsumerApi2 = _interopRequireDefault(_createConsumerApi);\n\nvar _readFromConsumerApi = __webpack_require__(/*! ./readFromConsumerApi */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/readFromConsumerApi.js\");\n\nvar _readFromConsumerApi2 = _interopRequireDefault(_readFromConsumerApi);\n\nvar _index = __webpack_require__(/*! ./registry/index */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/registry/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = (0, _readFromConsumerApi2.default)('manifest');\nexports.createConsumerApi = _createConsumerApi2.default;\nexports.readFromConsumerApi = _readFromConsumerApi2.default;\nexports.SynchronousRegistry = _index.SynchronousRegistry;\nexports.SynchronousMetaRegistry = _index.SynchronousMetaRegistry;\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/index.js?"); - -/***/ }), - -/***/ "./node_modules/@neos-project/neos-ui-extensibility/dist/manifest.js": -/*!***************************************************************************!*\ - !*** ./node_modules/@neos-project/neos-ui-extensibility/dist/manifest.js ***! - \***************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nexports.default = function (manifests) {\n return function (identifier, options, bootstrap) {\n manifests.push(_defineProperty({}, identifier, {\n options: options,\n bootstrap: bootstrap\n }));\n };\n};\n//# sourceMappingURL=manifest.js.map\n\n//# sourceURL=webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/manifest.js?"); - -/***/ }), - -/***/ "./node_modules/@neos-project/neos-ui-extensibility/dist/readFromConsumerApi.js": -/*!**************************************************************************************!*\ - !*** ./node_modules/@neos-project/neos-ui-extensibility/dist/readFromConsumerApi.js ***! - \**************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = readFromConsumerApi;\nfunction readFromConsumerApi(key) {\n return function () {\n if (window['@Neos:HostPluginAPI'] && window['@Neos:HostPluginAPI']['@' + key]) {\n var _window$NeosHostPlu;\n\n return (_window$NeosHostPlu = window['@Neos:HostPluginAPI'])['@' + key].apply(_window$NeosHostPlu, arguments);\n }\n throw new Error('You are trying to read from a consumer api that hasn\\'t been initialized yet!');\n };\n}\n//# sourceMappingURL=readFromConsumerApi.js.map\n\n//# sourceURL=webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/readFromConsumerApi.js?"); - -/***/ }), - -/***/ "./node_modules/@neos-project/neos-ui-extensibility/dist/registry/AbstractRegistry.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/@neos-project/neos-ui-extensibility/dist/registry/AbstractRegistry.js ***! - \********************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar AbstractRegistry = class AbstractRegistry {\n constructor(description) {\n this.SERIAL_VERSION_UID = 'd8a5aa78-978e-11e6-ae22-56b6b6499611';\n this.description = description;\n }\n};\n//# sourceMappingURL=AbstractRegistry.js.map\n\nexports.default = AbstractRegistry;\n\n//# sourceURL=webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/registry/AbstractRegistry.js?"); - -/***/ }), - -/***/ "./node_modules/@neos-project/neos-ui-extensibility/dist/registry/SynchronousMetaRegistry.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/@neos-project/neos-ui-extensibility/dist/registry/SynchronousMetaRegistry.js ***! - \***************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\n\nvar _SynchronousRegistry = __webpack_require__(/*! ./SynchronousRegistry */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/registry/SynchronousRegistry.js\");\n\nvar _SynchronousRegistry2 = _interopRequireDefault(_SynchronousRegistry);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SynchronousMetaRegistry = class SynchronousMetaRegistry extends _SynchronousRegistry2.default {\n set(key, value) {\n if (value.SERIAL_VERSION_UID !== 'd8a5aa78-978e-11e6-ae22-56b6b6499611') {\n throw new Error('You can only add registries to a meta registry');\n }\n return super.set(key, value);\n }\n};\n//# sourceMappingURL=SynchronousMetaRegistry.js.map\n\nexports.default = SynchronousMetaRegistry;\n\n//# sourceURL=webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/registry/SynchronousMetaRegistry.js?"); - -/***/ }), - -/***/ "./node_modules/@neos-project/neos-ui-extensibility/dist/registry/SynchronousRegistry.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/@neos-project/neos-ui-extensibility/dist/registry/SynchronousRegistry.js ***! - \***********************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\n\nvar _AbstractRegistry = __webpack_require__(/*! ./AbstractRegistry */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/registry/AbstractRegistry.js\");\n\nvar _AbstractRegistry2 = _interopRequireDefault(_AbstractRegistry);\n\nvar _positionalArraySorter = __webpack_require__(/*! @neos-project/positional-array-sorter */ \"./node_modules/@neos-project/positional-array-sorter/dist/positionalArraySorter.js\");\n\nvar _positionalArraySorter2 = _interopRequireDefault(_positionalArraySorter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SynchronousRegistry = class SynchronousRegistry extends _AbstractRegistry2.default {\n constructor(description) {\n super(description);\n this._registry = [];\n }\n set(key, value) {\n var position = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (typeof key !== 'string') {\n throw new Error('Key must be a string');\n }\n if (typeof position !== 'string' && typeof position !== 'number') {\n throw new Error('Position must be a string or a number');\n }\n var entry = { key: key, value: value };\n if (position) {\n entry.position = position;\n }\n var indexOfItemWithTheSameKey = this._registry.findIndex(function (item) {\n return item.key === key;\n });\n if (indexOfItemWithTheSameKey === -1) {\n this._registry.push(entry);\n } else {\n this._registry[indexOfItemWithTheSameKey] = entry;\n }\n return value;\n }\n get(key) {\n if (typeof key !== 'string') {\n console.error('Key must be a string');\n return null;\n }\n var result = this._registry.find(function (item) {\n return item.key === key;\n });\n return result ? result.value : null;\n }\n _getChildrenWrapped(searchKey) {\n var unsortedChildren = this._registry.filter(function (item) {\n return item.key.indexOf(searchKey + '/') === 0;\n });\n return (0, _positionalArraySorter2.default)(unsortedChildren);\n }\n getChildrenAsObject(searchKey) {\n var result = {};\n this._getChildrenWrapped(searchKey).forEach(function (item) {\n result[item.key] = item.value;\n });\n return result;\n }\n getChildren(searchKey) {\n return this._getChildrenWrapped(searchKey).map(function (item) {\n return item.value;\n });\n }\n has(key) {\n if (typeof key !== 'string') {\n console.error('Key must be a string');\n return false;\n }\n return Boolean(this._registry.find(function (item) {\n return item.key === key;\n }));\n }\n _getAllWrapped() {\n return (0, _positionalArraySorter2.default)(this._registry);\n }\n getAllAsObject() {\n var result = {};\n this._getAllWrapped().forEach(function (item) {\n result[item.key] = item.value;\n });\n return result;\n }\n getAllAsList() {\n return this._getAllWrapped().map(function (item) {\n return Object.assign({ id: item.key }, item.value);\n });\n }\n};\n//# sourceMappingURL=SynchronousRegistry.js.map\n\nexports.default = SynchronousRegistry;\n\n//# sourceURL=webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/registry/SynchronousRegistry.js?"); - -/***/ }), - -/***/ "./node_modules/@neos-project/neos-ui-extensibility/dist/registry/index.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/@neos-project/neos-ui-extensibility/dist/registry/index.js ***! - \*********************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SynchronousMetaRegistry = exports.SynchronousRegistry = undefined;\n\nvar _SynchronousRegistry = __webpack_require__(/*! ./SynchronousRegistry */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/registry/SynchronousRegistry.js\");\n\nvar _SynchronousRegistry2 = _interopRequireDefault(_SynchronousRegistry);\n\nvar _SynchronousMetaRegistry = __webpack_require__(/*! ./SynchronousMetaRegistry */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/registry/SynchronousMetaRegistry.js\");\n\nvar _SynchronousMetaRegistry2 = _interopRequireDefault(_SynchronousMetaRegistry);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.SynchronousRegistry = _SynchronousRegistry2.default;\nexports.SynchronousMetaRegistry = _SynchronousMetaRegistry2.default;\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/registry/index.js?"); - -/***/ }), - -/***/ "./node_modules/@neos-project/neos-ui-extensibility/dist/shims/neosProjectPackages/neos-ui-ckeditor5-bindings/index.js": -/*!*****************************************************************************************************************************!*\ - !*** ./node_modules/@neos-project/neos-ui-extensibility/dist/shims/neosProjectPackages/neos-ui-ckeditor5-bindings/index.js ***! - \*****************************************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _readFromConsumerApi = __webpack_require__(/*! ../../../readFromConsumerApi */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/readFromConsumerApi.js\");\n\nvar _readFromConsumerApi2 = _interopRequireDefault(_readFromConsumerApi);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = (0, _readFromConsumerApi2.default)('NeosProjectPackages')().CkEditorApi;\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/shims/neosProjectPackages/neos-ui-ckeditor5-bindings/index.js?"); - -/***/ }), - -/***/ "./node_modules/@neos-project/neos-ui-extensibility/dist/shims/neosProjectPackages/neos-ui-redux-store/index.js": -/*!**********************************************************************************************************************!*\ - !*** ./node_modules/@neos-project/neos-ui-extensibility/dist/shims/neosProjectPackages/neos-ui-redux-store/index.js ***! - \**********************************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _readFromConsumerApi = __webpack_require__(/*! ../../../readFromConsumerApi */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/readFromConsumerApi.js\");\n\nvar _readFromConsumerApi2 = _interopRequireDefault(_readFromConsumerApi);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = (0, _readFromConsumerApi2.default)('NeosProjectPackages')().NeosUiReduxStore;\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/shims/neosProjectPackages/neos-ui-redux-store/index.js?"); - -/***/ }), - -/***/ "./node_modules/@neos-project/neos-ui-extensibility/dist/shims/neosProjectPackages/react-ui-components/index.js": -/*!**********************************************************************************************************************!*\ - !*** ./node_modules/@neos-project/neos-ui-extensibility/dist/shims/neosProjectPackages/react-ui-components/index.js ***! - \**********************************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _readFromConsumerApi = __webpack_require__(/*! ../../../readFromConsumerApi */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/readFromConsumerApi.js\");\n\nvar _readFromConsumerApi2 = _interopRequireDefault(_readFromConsumerApi);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = (0, _readFromConsumerApi2.default)('NeosProjectPackages')().ReactUiComponents;\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/shims/neosProjectPackages/react-ui-components/index.js?"); - -/***/ }), - -/***/ "./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/ckeditor5-exports/index.js": -/*!*******************************************************************************************************!*\ - !*** ./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/ckeditor5-exports/index.js ***! - \*******************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _readFromConsumerApi = __webpack_require__(/*! ../../../readFromConsumerApi */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/readFromConsumerApi.js\");\n\nvar _readFromConsumerApi2 = _interopRequireDefault(_readFromConsumerApi);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = (0, _readFromConsumerApi2.default)('vendor')().CkEditor5;\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/ckeditor5-exports/index.js?"); - -/***/ }), - -/***/ "./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/prop-types/index.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/prop-types/index.js ***! - \************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _readFromConsumerApi = __webpack_require__(/*! ../../../readFromConsumerApi */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/readFromConsumerApi.js\");\n\nvar _readFromConsumerApi2 = _interopRequireDefault(_readFromConsumerApi);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = (0, _readFromConsumerApi2.default)('vendor')().PropTypes;\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/prop-types/index.js?"); - -/***/ }), - -/***/ "./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/react-redux/index.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/react-redux/index.js ***! - \*************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _readFromConsumerApi = __webpack_require__(/*! ../../../readFromConsumerApi */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/readFromConsumerApi.js\");\n\nvar _readFromConsumerApi2 = _interopRequireDefault(_readFromConsumerApi);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = (0, _readFromConsumerApi2.default)('vendor')().reactRedux;\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/react-redux/index.js?"); - -/***/ }), - -/***/ "./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/react/index.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/react/index.js ***! - \*******************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _readFromConsumerApi = __webpack_require__(/*! ../../../readFromConsumerApi */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/readFromConsumerApi.js\");\n\nvar _readFromConsumerApi2 = _interopRequireDefault(_readFromConsumerApi);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = (0, _readFromConsumerApi2.default)('vendor')().React;\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/react/index.js?"); - -/***/ }), - -/***/ "./node_modules/@neos-project/positional-array-sorter/dist/positionalArraySorter.js": -/*!******************************************************************************************!*\ - !*** ./node_modules/@neos-project/positional-array-sorter/dist/positionalArraySorter.js ***! - \******************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar positionalArraySorter = function positionalArraySorter(subject) {\n var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'position';\n var idKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'key';\n\n var positionAccessor = typeof position === 'string' ? function (value) {\n return value[position];\n } : position;\n var indexMapping = {};\n var middleKeys = {};\n var startKeys = {};\n var endKeys = {};\n var beforeKeys = {};\n var afterKeys = {};\n subject.forEach(function (item, index) {\n var key = item[idKey] ? item[idKey] : String(index);\n indexMapping[key] = index;\n var positionValue = positionAccessor(item);\n var position = String(positionValue ? positionValue : index);\n var invalid = false;\n if (position.startsWith('start')) {\n var weightMatch = position.match(/start\\s+(\\d+)/);\n var weight = weightMatch && weightMatch[1] ? Number(weightMatch[1]) : 0;\n if (!startKeys[weight]) {\n startKeys[weight] = [];\n }\n startKeys[weight].push(key);\n } else if (position.startsWith('end')) {\n var _weightMatch = position.match(/end\\s+(\\d+)/);\n var _weight = _weightMatch && _weightMatch[1] ? Number(_weightMatch[1]) : 0;\n if (!endKeys[_weight]) {\n endKeys[_weight] = [];\n }\n endKeys[_weight].push(key);\n } else if (position.startsWith('before')) {\n var match = position.match(/before\\s+(\\S+)(\\s+(\\d+))?/);\n if (!match) {\n invalid = true;\n } else {\n var reference = match[1];\n var _weight2 = match[3] ? Number(match[3]) : 0;\n if (!beforeKeys[reference]) {\n beforeKeys[reference] = {};\n }\n if (!beforeKeys[reference][_weight2]) {\n beforeKeys[reference][_weight2] = [];\n }\n beforeKeys[reference][_weight2].push(key);\n }\n } else if (position.startsWith('after')) {\n var _match = position.match(/after\\s+(\\S+)(\\s+(\\d+))?/);\n if (!_match) {\n invalid = true;\n } else {\n var _reference = _match[1];\n var _weight3 = _match[3] ? Number(_match[3]) : 0;\n if (!afterKeys[_reference]) {\n afterKeys[_reference] = {};\n }\n if (!afterKeys[_reference][_weight3]) {\n afterKeys[_reference][_weight3] = [];\n }\n afterKeys[_reference][_weight3].push(key);\n }\n } else {\n invalid = true;\n }\n if (invalid) {\n var numberPosition = parseFloat(position);\n if (isNaN(numberPosition) || !isFinite(numberPosition)) {\n numberPosition = index;\n }\n if (!middleKeys[numberPosition]) {\n middleKeys[numberPosition] = [];\n }\n middleKeys[numberPosition].push(key);\n }\n });\n var resultStart = [];\n var resultMiddle = [];\n var resultEnd = [];\n var processedKeys = [];\n var sortedWeights = function sortedWeights(dict, asc) {\n var weights = Object.keys(dict).map(function (x) {\n return Number(x);\n }).sort(function (a, b) {\n return a - b;\n });\n return asc ? weights : weights.reverse();\n };\n var addToResults = function addToResults(keys, result) {\n keys.forEach(function (key) {\n if (processedKeys.indexOf(key) >= 0) {\n return;\n }\n processedKeys.push(key);\n if (beforeKeys[key]) {\n var beforeWeights = sortedWeights(beforeKeys[key], true);\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = beforeWeights[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var i = _step.value;\n\n addToResults(beforeKeys[key][i], result);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n result.push(key);\n if (afterKeys[key]) {\n var afterWeights = sortedWeights(afterKeys[key], false);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = afterWeights[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _i = _step2.value;\n\n addToResults(afterKeys[key][_i], result);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n });\n };\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = sortedWeights(startKeys, false)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var i = _step3.value;\n\n addToResults(startKeys[i], resultStart);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = sortedWeights(middleKeys, true)[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var _i2 = _step4.value;\n\n addToResults(middleKeys[_i2], resultMiddle);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = sortedWeights(endKeys, true)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _i3 = _step5.value;\n\n addToResults(endKeys[_i3], resultEnd);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = Object.keys(beforeKeys)[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var key = _step6.value;\n\n if (processedKeys.indexOf(key) >= 0) {\n continue;\n }\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = sortedWeights(beforeKeys[key], false)[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var _i4 = _step8.value;\n\n addToResults(beforeKeys[key][_i4], resultStart);\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = Object.keys(afterKeys)[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var _key = _step7.value;\n\n if (processedKeys.indexOf(_key) >= 0) {\n continue;\n }\n var _iteratorNormalCompletion9 = true;\n var _didIteratorError9 = false;\n var _iteratorError9 = undefined;\n\n try {\n for (var _iterator9 = sortedWeights(afterKeys[_key], false)[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) {\n var _i5 = _step9.value;\n\n addToResults(afterKeys[_key][_i5], resultMiddle);\n }\n } catch (err) {\n _didIteratorError9 = true;\n _iteratorError9 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion9 && _iterator9.return) {\n _iterator9.return();\n }\n } finally {\n if (_didIteratorError9) {\n throw _iteratorError9;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n var sortedKeys = [].concat(resultStart, resultMiddle, resultEnd);\n return sortedKeys.map(function (key) {\n return indexMapping[key];\n }).map(function (i) {\n return subject[i];\n });\n};\nexports.default = positionalArraySorter;\n//# sourceMappingURL=positionalArraySorter.js.map\n\n//# sourceURL=webpack:///./node_modules/@neos-project/positional-array-sorter/dist/positionalArraySorter.js?"); - -/***/ }), - -/***/ "./src/BlockStyleCommand.js": -/*!**********************************!*\ - !*** ./src/BlockStyleCommand.js ***! - \**********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\n\nvar _ckeditor5Exports = __webpack_require__(/*! ckeditor5-exports */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/ckeditor5-exports/index.js\");\n\n/**\n * Set a key-value block style; e.g. \"fontColor=red\".\n */\n\nvar BlockStyleCommand = class BlockStyleCommand extends _ckeditor5Exports.Command {\n /**\n * @param {module:core/editor/editor~Editor} editor\n * @param {String} attributeKey Attribute that will be set by the command.\n */\n constructor(editor, attributeKey) {\n super(editor);\n\n /**\n * The attribute that will be set by the command.\n *\n * @readonly\n * @member {String}\n */\n this.attributeKey = attributeKey;\n\n /**\n * Flag indicating whether the command is active. The command is active when the\n * {@link module:engine/model/selection~Selection#hasAttribute selection has the attribute} which means that:\n *\n * @observable\n * @readonly\n * @member {Boolean} #value\n */\n }\n\n /**\n * Updates the command's {@link #value} and {@link #isEnabled}.\n */\n refresh() {\n var model = this.editor.model;\n var doc = model.document;\n var blocksToChange = Array.from(doc.selection.getSelectedBlocks());\n\n this.value = this._getValueFromBlockNode();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = blocksToChange[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var block = _step.value;\n\n if (model.schema.checkAttribute(block, this.attributeKey)) {\n this.isEnabled = true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n\n /**\n * Executes the command — sets the attribute to the desired value. If there is no desired valued, removes the\n * attribute on each block.\n *\n * @fires execute\n * @param {Object} [options] Command options.\n * @param {String} [options.value] The value to be set; if null or not existing, the attribute will be removed.\n */\n execute() {\n var _this = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var model = this.editor.model;\n var doc = model.document;\n var selection = doc.selection;\n var value = options.value;\n var blocksToChange = Array.from(selection.getSelectedBlocks());\n model.change(function (writer) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = blocksToChange[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var block = _step2.value;\n\n if (value) {\n writer.setAttribute(_this.attributeKey, value, block);\n } else {\n writer.removeAttribute(_this.attributeKey, block);\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n });\n }\n\n /**\n * Checks the attribute value of the parent block node(s)\n *\n * @private\n * @returns {String} The attribute value.\n */\n _getValueFromBlockNode() {\n var model = this.editor.model;\n var schema = model.schema;\n var selection = model.document.selection;\n var blocks = Array.from(selection.getSelectedBlocks());\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = blocks[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var block = _step3.value;\n\n if (schema.checkAttribute(block, this.attributeKey)) {\n return block.getAttribute(this.attributeKey);\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return undefined;\n }\n}; // Originally taken from https://raw.githubusercontent.com/ckeditor/ckeditor5/master/packages/ckeditor5-basic-styles/src/attributecommand.js and adjusted\n\nexports.default = BlockStyleCommand;\n\n//# sourceURL=webpack:///./src/BlockStyleCommand.js?"); - -/***/ }), - -/***/ "./src/BlockStyleEditing.js": -/*!**********************************!*\ - !*** ./src/BlockStyleEditing.js ***! - \**********************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ckeditor5Exports = __webpack_require__(/*! ckeditor5-exports */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/ckeditor5-exports/index.js\");\n\nvar _BlockStyleCommand = __webpack_require__(/*! ./BlockStyleCommand */ \"./src/BlockStyleCommand.js\");\n\nvar _BlockStyleCommand2 = _interopRequireDefault(_BlockStyleCommand);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * FACTORY FUNCTION for the plugin\n * needs the current preset configuration as parameter.\n */\nexports.default = function (presetIdentifier, presetConfiguration) {\n return class BlockStyleEditing extends _ckeditor5Exports.Plugin {\n init() {\n var schema = this.editor.model.schema;\n var modelAttributeKey = 'blockStyles-' + presetIdentifier;\n var optionIdentifiers = Object.keys(presetConfiguration.options);\n\n schema.extend('$block', { allowAttributes: modelAttributeKey });\n\n // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html\n schema.setAttributeProperties(modelAttributeKey, { isFormatting: true });\n\n // Model configuration\n var config = {\n model: {\n key: modelAttributeKey,\n values: optionIdentifiers\n },\n view: {}\n };\n\n // View configuration\n optionIdentifiers.forEach(function (optionIdentifier) {\n var options = presetConfiguration.options[optionIdentifier];\n var attribute = options.attribute || 'class';\n var attributeValues = attribute === options.attribute ? options.attributeValue : options.cssClass.split(' ');\n\n config.view[optionIdentifier] = {\n key: attribute,\n value: attributeValues\n };\n });\n\n // Convert the model to view correctly\n this.editor.conversion.attributeToAttribute(config);\n\n this.editor.commands.add('blockStyles:' + presetIdentifier, new _BlockStyleCommand2.default(this.editor, modelAttributeKey));\n }\n };\n};\n\n//# sourceURL=webpack:///./src/BlockStyleEditing.js?"); - -/***/ }), - -/***/ "./src/InlineStylesCommand.js": -/*!************************************!*\ - !*** ./src/InlineStylesCommand.js ***! - \************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\n\nvar _ckeditor5Exports = __webpack_require__(/*! ckeditor5-exports */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/ckeditor5-exports/index.js\");\n\n/**\n * Set a key-value inline style; e.g. \"fontColor=red\".\n *\n */\nvar InlineStylesCommand = class InlineStylesCommand extends _ckeditor5Exports.Command {\n /**\n * @param {module:core/editor/editor~Editor} editor\n * @param {String} attributeKey Attribute that will be set by the command.\n */\n constructor(editor, attributeKey) {\n super(editor);\n\n /**\n * The attribute that will be set by the command.\n *\n * @readonly\n * @member {String}\n */\n this.attributeKey = attributeKey;\n\n /**\n * Flag indicating whether the command is active. The command is active when the\n * {@link module:engine/model/selection~Selection#hasAttribute selection has the attribute} which means that:\n **\n * @observable\n * @readonly\n * @member {Boolean} #value\n */\n }\n\n /**\n * Updates the command's {@link #value} and {@link #isEnabled} based on the current selection.\n */\n refresh() {\n var model = this.editor.model;\n var doc = model.document;\n\n this.value = this._getValueFromFirstAllowedNode();\n this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, this.attributeKey);\n }\n\n /**\n * Executes the command — sets the attribute to the desired value. If there is no desired valued, removes the\n * attribute.\n *\n * @fires execute\n * @param {Object} [options] Command options.\n * @param {String} [options.value] The value to be set; if null or not existing, the attribute will be removed.\n */\n execute() {\n var _this = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var model = this.editor.model;\n var doc = model.document;\n var selection = doc.selection;\n var value = options.value;\n\n model.change(function (writer) {\n if (selection.isCollapsed) {\n if (value) {\n // value is existing, we want to set the selection attribute to the value.\n writer.setSelectionAttribute(_this.attributeKey, value);\n } else {\n writer.removeSelectionAttribute(_this.attributeKey);\n }\n } else {\n var ranges = model.schema.getValidRanges(selection.getRanges(), _this.attributeKey);\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = ranges[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var range = _step.value;\n\n if (value) {\n writer.setAttribute(_this.attributeKey, value, range);\n } else {\n writer.removeAttribute(_this.attributeKey, range);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n });\n }\n\n /**\n * Checks the attribute value of the first node in the selection that allows the attribute.\n * For the collapsed selection returns the selection attribute.\n *\n * @private\n * @returns {String} The attribute value.\n */\n _getValueFromFirstAllowedNode() {\n var model = this.editor.model;\n var schema = model.schema;\n var selection = model.document.selection;\n\n if (selection.isCollapsed) {\n return selection.getAttribute(this.attributeKey);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = selection.getRanges()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var range = _step2.value;\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = range.getItems()[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var item = _step3.value;\n\n if (schema.checkAttribute(item, this.attributeKey)) {\n return item.getAttribute(this.attributeKey);\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return undefined;\n }\n}; // Originally taken from https://raw.githubusercontent.com/ckeditor/ckeditor5/master/packages/ckeditor5-basic-styles/src/attributecommand.js and adjusted\n\nexports.default = InlineStylesCommand;\n\n//# sourceURL=webpack:///./src/InlineStylesCommand.js?"); - -/***/ }), - -/***/ "./src/InlineStylesEditing.js": -/*!************************************!*\ - !*** ./src/InlineStylesEditing.js ***! - \************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ckeditor5Exports = __webpack_require__(/*! ckeditor5-exports */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/ckeditor5-exports/index.js\");\n\nvar _InlineStylesCommand = __webpack_require__(/*! ./InlineStylesCommand */ \"./src/InlineStylesCommand.js\");\n\nvar _InlineStylesCommand2 = _interopRequireDefault(_InlineStylesCommand);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * FACTORY FUNCTION for the plugin\n * needs the current preset configuration as parameter.\n */\nexports.default = function (presetIdentifier, presetConfiguration) {\n return class InlineStylesEditing extends _ckeditor5Exports.Plugin {\n init() {\n var schema = this.editor.model.schema;\n var optionIdentifiers = Object.keys(presetConfiguration.options);\n var modelAttributeKey = 'inlineStyles-' + presetIdentifier;\n\n schema.extend('$text', { allowAttributes: modelAttributeKey });\n\n // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html\n schema.setAttributeProperties(modelAttributeKey, { isFormatting: true });\n\n // Model configuration\n var config = {\n model: {\n key: modelAttributeKey,\n values: optionIdentifiers\n },\n view: {}\n };\n\n // View configuration\n optionIdentifiers.forEach(function (optionIdentifier) {\n var options = presetConfiguration.options[optionIdentifier];\n var attribute = options.attribute;\n\n var classes = options.attributeValue || options.cssClass;\n\n config.view[optionIdentifier] = {\n name: 'span',\n attributes: _defineProperty({}, attribute ? attribute : 'class', classes)\n };\n });\n\n // Convert the model to view correctly\n this.editor.conversion.attributeToElement(config);\n\n this.editor.commands.add('inlineStyles:' + presetIdentifier, new _InlineStylesCommand2.default(this.editor, modelAttributeKey));\n }\n };\n};\n\n//# sourceURL=webpack:///./src/InlineStylesEditing.js?"); - -/***/ }), - -/***/ "./src/PresetType.js": -/*!***************************!*\ - !*** ./src/PresetType.js ***! - \***************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _propTypes = __webpack_require__(/*! prop-types */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/prop-types/index.js\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction attributeValueOrCssClass(props, propName, componentName) {\n if (props[propName] && typeof props[propName] !== 'string') {\n return new Error('Prop \\'' + propName + '\\' must be a string.');\n }\n if (!props.attributeValue && !props.cssClass) {\n return new Error('Either prop \\'attributeValue\\' or \\'cssClass\\' must be supplied to ' + componentName + '.');\n }\n}\n\nexports.default = _propTypes2.default.shape({\n label: _propTypes2.default.string.isRequired,\n\n // keys are the option values\n options: _propTypes2.default.objectOf(_propTypes2.default.shape({\n label: _propTypes2.default.string.isRequired,\n attribute: _propTypes2.default.string,\n attributeValue: attributeValueOrCssClass,\n cssClass: attributeValueOrCssClass\n }))\n});\n\n//# sourceURL=webpack:///./src/PresetType.js?"); - -/***/ }), - -/***/ "./src/components/BlockStyleSelector.js": -/*!**********************************************!*\ - !*** ./src/components/BlockStyleSelector.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _dec, _class, _class2, _temp;\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(/*! prop-types */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/prop-types/index.js\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactUiComponents = __webpack_require__(/*! @neos-project/react-ui-components */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/neosProjectPackages/react-ui-components/index.js\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/react-redux/index.js\");\n\nvar _PresetType = __webpack_require__(/*! ../PresetType */ \"./src/PresetType.js\");\n\nvar _PresetType2 = _interopRequireDefault(_PresetType);\n\nvar _neosUiReduxStore = __webpack_require__(/*! @neos-project/neos-ui-redux-store */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/neosProjectPackages/neos-ui-redux-store/index.js\");\n\nvar _neosUiCkeditor5Bindings = __webpack_require__(/*! @neos-project/neos-ui-ckeditor5-bindings */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/neosProjectPackages/neos-ui-ckeditor5-bindings/index.js\");\n\nvar CkEditorApi = _interopRequireWildcard(_neosUiCkeditor5Bindings);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BlockStyleSelector = (_dec = (0, _reactRedux.connect)(function (state) {\n return {\n formattingUnderCursor: _neosUiReduxStore.selectors.CR.Nodes.focusedNodePathSelector(state)\n };\n}), _dec(_class = (_temp = _class2 = class BlockStyleSelector extends _react.PureComponent {\n\n constructor() {\n super(...arguments);\n\n this.handleOnSelect = this.handleOnSelect.bind(this);\n }\n\n render() {\n var optionsForSelect = Object.entries(this.props.presetConfiguration.options).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n optionIdentifier = _ref2[0],\n optionConfiguration = _ref2[1];\n\n return {\n value: optionIdentifier,\n label: optionConfiguration.label\n };\n });\n\n if (optionsForSelect.length === 0) {\n return null;\n }\n\n var currentValue = this.props.formattingUnderCursor['blockStyles:' + this.props.presetIdentifier];\n\n return _react2.default.createElement(_reactUiComponents.SelectBox, {\n options: optionsForSelect,\n value: currentValue,\n allowEmpty: true,\n placeholder: this.props.presetConfiguration.label,\n onValueChange: this.handleOnSelect\n });\n }\n\n handleOnSelect(optionIdentifier) {\n CkEditorApi.executeCommand('blockStyles:' + this.props.presetIdentifier, { value: optionIdentifier });\n }\n}, _class2.propTypes = {\n // from outside props\n presetIdentifier: _propTypes2.default.string.isRequired,\n presetConfiguration: _PresetType2.default.isRequired,\n\n // from @connect\n formattingUnderCursor: _propTypes2.default.object\n}, _temp)) || _class);\nexports.default = BlockStyleSelector;\n\n//# sourceURL=webpack:///./src/components/BlockStyleSelector.js?"); - -/***/ }), - -/***/ "./src/components/InlineStyleSelector.js": -/*!***********************************************!*\ - !*** ./src/components/InlineStyleSelector.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _dec, _class, _class2, _temp;\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(/*! prop-types */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/prop-types/index.js\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactUiComponents = __webpack_require__(/*! @neos-project/react-ui-components */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/neosProjectPackages/react-ui-components/index.js\");\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/vendor/react-redux/index.js\");\n\nvar _PresetType = __webpack_require__(/*! ../PresetType */ \"./src/PresetType.js\");\n\nvar _PresetType2 = _interopRequireDefault(_PresetType);\n\nvar _neosUiReduxStore = __webpack_require__(/*! @neos-project/neos-ui-redux-store */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/neosProjectPackages/neos-ui-redux-store/index.js\");\n\nvar _neosUiCkeditor5Bindings = __webpack_require__(/*! @neos-project/neos-ui-ckeditor5-bindings */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/shims/neosProjectPackages/neos-ui-ckeditor5-bindings/index.js\");\n\nvar CkEditorApi = _interopRequireWildcard(_neosUiCkeditor5Bindings);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar InlineStyleSelector = (_dec = (0, _reactRedux.connect)(function (state) {\n return {\n formattingUnderCursor: _neosUiReduxStore.selectors.CR.Nodes.focusedNodePathSelector(state)\n };\n}), _dec(_class = (_temp = _class2 = class InlineStyleSelector extends _react.PureComponent {\n\n constructor() {\n super(...arguments);\n\n this.handleOnSelect = this.handleOnSelect.bind(this);\n }\n\n render() {\n var optionsForSelect = Object.entries(this.props.presetConfiguration.options).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n optionIdentifier = _ref2[0],\n optionConfiguration = _ref2[1];\n\n return {\n value: optionIdentifier,\n label: optionConfiguration.label\n };\n });\n\n if (optionsForSelect.length === 0) {\n return null;\n }\n\n var currentValue = this.props.formattingUnderCursor['inlineStyles:' + this.props.presetIdentifier];\n\n return _react2.default.createElement(_reactUiComponents.SelectBox, {\n options: optionsForSelect,\n value: currentValue,\n allowEmpty: true,\n placeholder: this.props.presetConfiguration.label,\n onValueChange: this.handleOnSelect\n });\n }\n\n handleOnSelect(optionIdentifier) {\n CkEditorApi.executeCommand('inlineStyles:' + this.props.presetIdentifier, { value: optionIdentifier });\n }\n}, _class2.propTypes = {\n // from outside props\n presetIdentifier: _propTypes2.default.string.isRequired,\n presetConfiguration: _PresetType2.default.isRequired,\n\n // from @connect\n formattingUnderCursor: _propTypes2.default.object\n}, _temp)) || _class);\nexports.default = InlineStyleSelector;\n\n//# sourceURL=webpack:///./src/components/InlineStyleSelector.js?"); - -/***/ }), - -/***/ "./src/index.js": -/*!**********************!*\ - !*** ./src/index.js ***! - \**********************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n__webpack_require__(/*! ./manifest */ \"./src/manifest.js\");\n\n//# sourceURL=webpack:///./src/index.js?"); - -/***/ }), - -/***/ "./src/manifest.js": -/*!*************************!*\ - !*** ./src/manifest.js ***! - \*************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _neosUiExtensibility = __webpack_require__(/*! @neos-project/neos-ui-extensibility */ \"./node_modules/@neos-project/neos-ui-extensibility/dist/index.js\");\n\nvar _neosUiExtensibility2 = _interopRequireDefault(_neosUiExtensibility);\n\nvar _InlineStylesEditing = __webpack_require__(/*! ./InlineStylesEditing */ \"./src/InlineStylesEditing.js\");\n\nvar _InlineStylesEditing2 = _interopRequireDefault(_InlineStylesEditing);\n\nvar _InlineStyleSelector = __webpack_require__(/*! ./components/InlineStyleSelector */ \"./src/components/InlineStyleSelector.js\");\n\nvar _InlineStyleSelector2 = _interopRequireDefault(_InlineStyleSelector);\n\nvar _BlockStyleEditing = __webpack_require__(/*! ./BlockStyleEditing */ \"./src/BlockStyleEditing.js\");\n\nvar _BlockStyleEditing2 = _interopRequireDefault(_BlockStyleEditing);\n\nvar _BlockStyleSelector = __webpack_require__(/*! ./components/BlockStyleSelector */ \"./src/components/BlockStyleSelector.js\");\n\nvar _BlockStyleSelector2 = _interopRequireDefault(_BlockStyleSelector);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(0, _neosUiExtensibility2.default)('TechDivision.CkStyles:Styles', {}, function (globalRegistry, _ref) {\n var frontendConfiguration = _ref.frontendConfiguration;\n\n\n var ckEditorRegistry = globalRegistry.get('ckEditor5');\n var richtextToolbar = ckEditorRegistry.get('richtextToolbar');\n var config = ckEditorRegistry.get('config');\n\n var inlineStyleConfiguration = frontendConfiguration['TechDivision.CkStyles:InlineStyles'];\n var blockStyleConfiguration = frontendConfiguration['TechDivision.CkStyles:BlockStyles'];\n\n // Block style\n if (blockStyleConfiguration) {\n\n Object.keys(blockStyleConfiguration.presets).forEach(function (presetIdentifier) {\n\n var blockStylePresetConfiguration = blockStyleConfiguration.presets[presetIdentifier];\n\n config.set('TechDivision.CkStyles:BlockStyles_' + presetIdentifier, function (ckEditorConfiguration, _ref2) {\n var editorOptions = _ref2.editorOptions;\n\n var editing = (0, _BlockStyleEditing2.default)(presetIdentifier, blockStylePresetConfiguration);\n ckEditorConfiguration.plugins = ckEditorConfiguration.plugins || [];\n ckEditorConfiguration.plugins.push(editing);\n return ckEditorConfiguration;\n });\n\n richtextToolbar.set('blockStyles_' + presetIdentifier, {\n component: _BlockStyleSelector2.default,\n // Display only if the preset is activated in NodeType.yaml for this node property\n isVisible: function isVisible(editorOptions, formattingUnderCursor) {\n var isVisible = false;\n if (editorOptions['blockStyling'] !== undefined && editorOptions['blockStyling'][presetIdentifier] !== undefined) {\n isVisible = editorOptions['blockStyling'][presetIdentifier];\n }\n return isVisible;\n },\n presetIdentifier: presetIdentifier,\n presetConfiguration: blockStylePresetConfiguration\n });\n });\n }\n\n //Inline Style\n if (inlineStyleConfiguration) {\n\n Object.keys(inlineStyleConfiguration.presets).forEach(function (presetIdentifier) {\n\n var inlineStylePresetConfiguration = inlineStyleConfiguration.presets[presetIdentifier];\n\n config.set('TechDivision.CkStyle:InlineStyles_' + presetIdentifier, function (ckEditorConfiguration, _ref3) {\n var editorOptions = _ref3.editorOptions;\n\n ckEditorConfiguration.plugins = ckEditorConfiguration.plugins || [];\n ckEditorConfiguration.plugins.push((0, _InlineStylesEditing2.default)(presetIdentifier, inlineStylePresetConfiguration));\n return ckEditorConfiguration;\n });\n\n richtextToolbar.set('inlineStyles_' + presetIdentifier, {\n component: _InlineStyleSelector2.default,\n // Display only if the preset is activated in NodeType.yaml for this node property\n isVisible: function isVisible(editorOptions, formattingUnderCursor) {\n var isVisible = false;\n if (editorOptions['inlineStyling'] !== undefined && editorOptions['inlineStyling'][presetIdentifier] !== undefined) {\n isVisible = editorOptions['inlineStyling'][presetIdentifier];\n }\n return isVisible;\n },\n presetIdentifier: presetIdentifier,\n presetConfiguration: inlineStylePresetConfiguration\n });\n });\n }\n});\n\n//# sourceURL=webpack:///./src/manifest.js?"); - -/***/ }) - -/******/ }); \ No newline at end of file +"use strict";(()=>{var it=Object.create;var Y=Object.defineProperty;var rt=Object.getOwnPropertyDescriptor;var lt=Object.getOwnPropertyNames;var at=Object.getPrototypeOf,ct=Object.prototype.hasOwnProperty;var ut=(o,t,n)=>t in o?Y(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n;var dt=(o,t)=>()=>(o&&(t=o(o=0)),t);var P=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports);var mt=(o,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of lt(t))!ct.call(o,l)&&l!==n&&Y(o,l,{get:()=>t[l],enumerable:!(r=rt(t,l))||r.enumerable});return o};var I=(o,t,n)=>(n=o!=null?it(at(o)):{},mt(t||!o||!o.__esModule?Y(n,"default",{value:o,enumerable:!0}):n,o));var A=(o,t,n)=>ut(o,typeof t!="symbol"?t+"":t,n);function m(o){return(...t)=>{if(window["@Neos:HostPluginAPI"]&&window["@Neos:HostPluginAPI"][`@${o}`])return window["@Neos:HostPluginAPI"][`@${o}`](...t);throw new Error("You are trying to read from a consumer api that hasn't been initialized yet!")}}var y=dt(()=>{});var f=P((ft,$)=>{y();$.exports=m("vendor")().CkEditor5Core});var D=P((Lt,M)=>{y();M.exports=m("vendor")().CkEditor5Ui});var x=P((Ot,V)=>{y();V.exports=m("vendor")().CkEditor5Utils});var J=P((Rt,q)=>{y();q.exports=m("NeosProjectPackages")().NeosUiI18n});y();var _t=m("manifest"),G=_t,{SynchronousRegistry:Nt,SynchronousMetaRegistry:Et}=m("NeosProjectPackages")().NeosUiRegistry;var W=I(f()),E=I(D()),Z=I(x());var X=I(f());var C=class extends X.Command{constructor(n,r){super(n);A(this,"attributeKey");this.attributeKey=r,this.value=void 0}refresh(){let n=this.editor.model,r=n.document,l=this._getValueFromFirstAllowedNode();typeof l=="string"&&l!==""?this.value=l:this.value=void 0,this.isEnabled=n.schema.checkAttributeInSelection(r.selection,this.attributeKey)}execute(n){let r=this.editor.model,c=r.document.selection,s=this.value===n.value?void 0:n.value;r.change(a=>{if(c.isCollapsed)s?a.setSelectionAttribute(this.attributeKey,s):a.removeSelectionAttribute(this.attributeKey);else{let e=r.schema.getValidRanges(c.getRanges(),this.attributeKey);for(let i of e)s?a.setAttribute(this.attributeKey,s,i):a.removeAttribute(this.attributeKey,i)}})}_getValueFromFirstAllowedNode(){let n=this.editor.model,r=n.schema,l=n.document.selection;if(l.isCollapsed)return l.getAttribute(this.attributeKey);for(let c of l.getRanges())for(let s of c.getItems())if(r.checkAttribute(s,this.attributeKey))return s.getAttribute(this.attributeKey)}};var p="TechDivision.CkStyles",k="BlockStyles",v=`${p}:${k}`,U="blockStyling",L="blockStyle",H="blockStyles",w="InlineStyles",F=`${p}:${w}`,j="inlineStyling",h="inlineStyle",z="inlineStyles";var Q=I(J());function B(o,t,n){return!!o?.[t]?.[n]}function O(o,t){return`${o}:${t}`}function b(o,t){return`${O(o,t)}_dropdown`}function K(o,t){return`${o}-${t}`}var It=/^i18n\((.+)\)$/;function N(o){let t=o.match(It);if(t?.[1]){let n=t[1];return(0,Q.translate)(n,o)}return o}function tt(o,t){return class extends W.Plugin{static get pluginName(){return`${p}:${w}:${o}`}init(){let r=this.editor.model.schema,l=Object.keys(t.options),c=K(z,o);r.extend("$text",{allowAttributes:c}),r.setAttributeProperties(c,{isFormatting:!0}),this.editor.conversion.attributeToElement({model:{key:c,values:l},view:l.reduce((a,e)=>{let i=t.options[e];return"attribute"in i?a[e]={name:"span",attributes:{[i.attribute]:i.attributeValue}}:"cssClass"in i?a[e]={name:"span",classes:i.cssClass}:console.error(`Invalid configuration for preset ${o} and option ${e}: either "attribute" and "attributeValue" or "cssClass" must be set.`),a},{})});let s=O(h,o);this.editor.commands.add(s,new C(this.editor,c)),this.editor.ui.componentFactory.add(b(h,o),a=>{let e=(0,E.createDropdown)(a),i=this.editor.commands.get(s);if(!i)return console.error(`Command ${s} not found for dropdown ${s}_dropdown`),e;e.buttonView.set({label:N(t.label),withText:t.showLabel??!0,tooltip:!0,icon:t.icon??null}),e.bind("isEnabled").to(i,"isEnabled",d=>d);let u=new Z.Collection;return Object.keys(t.options).forEach(d=>{let _=t.options[d],T={type:"button",model:new E.UIModel({commandValue:d,label:N(_.label),icon:_.icon??null,withText:_.showLabel??!0,toggleable:!0})};T.model.bind("isOn").to(i,"value",R=>R===d),u.add(T)}),(0,E.addListToDropdown)(e,u),this.listenTo(e,"execute",d=>{let{commandValue:_}=d.source;this.editor.execute(s,{value:_}),this.editor.editing.view.focus()}),e})}}}var ot=I(f()),S=I(D()),st=I(x());var et=I(f());var g=class extends et.Command{constructor(n,r){super(n);A(this,"attributeKey");this.attributeKey=r,this.value=[]}refresh(){let n=this.editor.model,r=n.document,l=n.schema,c=Array.from(r.selection.getSelectedBlocks());this.isEnabled=!1;let s=[];for(let a of c)if(l.checkAttribute(a,this.attributeKey)){this.isEnabled=!0;let e=a.getAttribute(this.attributeKey);typeof e=="string"&&!s.includes(e)&&e!==""&&s.push(e)}this.value=s}execute(n={}){let r=this.editor.model,c=r.document.selection,s=Array.from(c.getSelectedBlocks()),e=s.every(i=>i.getAttribute(this.attributeKey)===n.value)?void 0:n.value;r.change(i=>{for(let u of s)e?i.setAttribute(this.attributeKey,e,u):i.removeAttribute(this.attributeKey,u)})}};function nt(o,t){return class extends ot.Plugin{static get pluginName(){return`${p}:${k}:${o}`}init(){let r=this.editor.model.schema,l=Object.keys(t.options),c=K(H,o);r.extend("$block",{allowAttributes:c}),r.setAttributeProperties(c,{isFormatting:!0}),this.editor.conversion.attributeToAttribute({model:{key:c,values:l},view:l.reduce((a,e)=>{let i=t.options[e];if("attribute"in i)a[e]={key:i.attribute,value:i.attributeValue};else if("cssClass"in i)a[e]={key:"class",value:i.cssClass};else throw new Error(`Invalid configuration for option ${e} in preset ${o}: either "attribute" and "attributeValue" or "cssClass" must be set.`);return a},{})});let s=O(L,o);this.editor.commands.add(s,new g(this.editor,c)),this.editor.ui.componentFactory.add(b(L,o),a=>{let e=(0,S.createDropdown)(a),i=this.editor.commands.get(s);if(!i)return console.error(`Command ${s} not found for dropdown ${s}_dropdown`),e;e.buttonView.set({label:N(t.label),withText:t.showLabel??!0,tooltip:!0,icon:t.icon??void 0}),e.bind("isEnabled").to(i,"isEnabled",d=>d);let u=new st.Collection;return Object.keys(t.options).forEach(d=>{let _=t.options[d],T={type:"button",model:new S.UIModel({commandValue:d,label:N(_.label),icon:_.icon??void 0,withText:_.showLabel??!0,toggleable:!0})};T.model.bind("isOn").to(i,"value",R=>R.includes(d)),u.add(T)}),(0,S.addListToDropdown)(e,u),this.listenTo(e,"execute",d=>{let{commandValue:_}=d.source;this.editor.execute(s,{value:_}),this.editor.editing.view.focus()}),e})}}}G(`${p}:Styles`,{},(o,{frontendConfiguration:t})=>{let r=o.get("ckEditor5").get("config"),l=t[F],c=t[v];c&&Object.keys(c.presets).forEach(s=>{let a=c.presets[s];r.set(`${v}_${s}`,(e,{editorOptions:i})=>{if(B(i,U,s)){e.plugins=e.plugins??[],e.plugins.push(nt(s,a));let u=b(L,s);e.toolbar===void 0?e.toolbar={items:[u]}:Array.isArray(e.toolbar)?e.toolbar.push("|",u):(e.toolbar.items=e.toolbar.items??[],e.toolbar.items.push("|",u))}return e})}),l&&Object.keys(l.presets).forEach(s=>{let a=l.presets[s];r.set(`${F}_${s}`,(e,{editorOptions:i})=>{if(B(i,j,s)){e.plugins=e.plugins??[],e.plugins.push(tt(s,a));let u=b(h,s);e.toolbar===void 0?e.toolbar={items:[u]}:Array.isArray(e.toolbar)?e.toolbar.push("|",u):(e.toolbar.items=e.toolbar.items??[],e.toolbar.items.push("|",u))}return e})})});})(); +//# sourceMappingURL=Plugin.js.map diff --git a/Resources/Public/JavaScript/CkStyles/Plugin.js.map b/Resources/Public/JavaScript/CkStyles/Plugin.js.map index 959c769..ea1ceb5 100644 --- a/Resources/Public/JavaScript/CkStyles/Plugin.js.map +++ b/Resources/Public/JavaScript/CkStyles/Plugin.js.map @@ -1 +1,7 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/createConsumerApi.js","webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/index.js","webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/manifest.js","webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/readFromConsumerApi.js","webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/registry/AbstractRegistry.js","webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/registry/SynchronousMetaRegistry.js","webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/registry/SynchronousRegistry.js","webpack:///./node_modules/@neos-project/neos-ui-extensibility/dist/registry/index.js","webpack:///./node_modules/@neos-project/neos-ui-extensibility/src/shims/neosProjectPackages/neos-ui-ckeditor5-bindings/index.js","webpack:///./node_modules/@neos-project/neos-ui-extensibility/src/shims/neosProjectPackages/neos-ui-redux-store/index.js","webpack:///./node_modules/@neos-project/neos-ui-extensibility/src/shims/neosProjectPackages/react-ui-components/index.js","webpack:///./node_modules/@neos-project/neos-ui-extensibility/src/shims/vendor/ckeditor5-exports/index.js","webpack:///./node_modules/@neos-project/neos-ui-extensibility/src/shims/vendor/plow-js/index.js","webpack:///./node_modules/@neos-project/neos-ui-extensibility/src/shims/vendor/prop-types/index.js","webpack:///./node_modules/@neos-project/neos-ui-extensibility/src/shims/vendor/react-redux/index.js","webpack:///./node_modules/@neos-project/neos-ui-extensibility/src/shims/vendor/react/index.js","webpack:///./node_modules/@neos-project/positional-array-sorter/dist/positionalArraySorter.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./src/BlockStyleCommand.js","webpack:///./src/BlockStyleEditing.js","webpack:///./src/InlineStylesCommand.js","webpack:///./src/InlineStylesEditing.js","webpack:///./src/PresetType.js","webpack:///./src/components/BlockStyleSelector.js","webpack:///./src/components/InlineStyleSelector.js","webpack:///./src/index.js","webpack:///./src/manifest.js"],"names":["__importDefault","mod","__esModule","exports","manifest_1","require","createReadOnlyValue","value","writable","enumerable","configurable","createConsumerApi","manifests","exposureMap","api","Object","keys","forEach","key","defineProperty","window","SynchronousMetaRegistry","SynchronousRegistry","readFromConsumerApi","createConsumerApi_1","readFromConsumerApi_1","index_1","identifier","options","bootstrap","_a","push","__read","o","n","m","Symbol","iterator","i","call","r","ar","e","next","done","error","__spreadArray","to","from","pack","arguments","length","l","Array","prototype","slice","concat","args","_i","apply","Error","AbstractRegistry","description","SERIAL_VERSION_UID","__extends","extendStatics","d","b","setPrototypeOf","__proto__","p","hasOwnProperty","TypeError","String","__","constructor","create","SynchronousRegistry_1","_super","set","AbstractRegistry_1","positional_array_sorter_1","_this","_registry","position","entry","indexOfItemWithTheSameKey","findIndex","item","get","console","result","find","_getChildrenWrapped","searchKey","unsortedChildren","filter","indexOf","getChildrenAsObject","getChildren","map","has","Boolean","_getAllWrapped","getAllAsObject","getAllAsList","assign","id","SynchronousMetaRegistry_1","module","CkEditorApi","NeosUiReduxStore","ReactUiComponents","CkEditor5","plow","PropTypes","reactRedux","React","tslib_1","positionalArraySorter","subject","idKey","e_1","e_2","_b","e_3","_c","e_4","_d","e_5","_e","e_6","_f","e_7","_g","positionAccessor","indexMapping","middleKeys","startKeys","endKeys","beforeKeys","afterKeys","index","positionValue","invalid","startsWith","weightMatch","match","weight","Number","reference","numberPosition","parseFloat","isNaN","isFinite","resultStart","resultMiddle","resultEnd","processedKeys","sortedWeights","dict","asc","weights","x","sort","a","reverse","addToResults","e_8","e_9","beforeWeights","beforeWeights_1","__values","beforeWeights_1_1","e_8_1","afterWeights","afterWeights_1","afterWeights_1_1","e_9_1","_h","_j","e_1_1","_k","_l","e_2_1","_m","_o","e_3_1","_p","_q","_r","_s","e_5_1","e_4_1","_t","_u","_v","_w","e_7_1","e_6_1","sortedKeys","__spread","BlockStyleCommand","Command","editor","attributeKey","refresh","model","doc","document","blocksToChange","selection","getSelectedBlocks","_getValueFromBlockNode","block","schema","checkAttribute","isEnabled","execute","change","writer","setAttribute","removeAttribute","blocks","getAttribute","undefined","presetIdentifier","presetConfiguration","BlockStyleEditing","Plugin","init","modelAttributeKey","optionIdentifiers","extend","allowAttributes","setAttributeProperties","isFormatting","config","values","view","optionIdentifier","attribute","attributeValues","attributeValue","cssClass","split","conversion","attributeToAttribute","commands","add","InlineStylesCommand","_getValueFromFirstAllowedNode","checkAttributeInSelection","isCollapsed","setSelectionAttribute","removeSelectionAttribute","ranges","getValidRanges","getRanges","range","getItems","InlineStylesEditing","classes","name","attributes","attributeToElement","attributeValueOrCssClass","props","propName","componentName","shape","label","string","isRequired","objectOf","BlockStyleSelector","formattingUnderCursor","selectors","UI","ContentCanvas","PureComponent","handleOnSelect","bind","render","optionsForSelect","entries","optionConfiguration","currentValue","executeCommand","propTypes","PresetType","object","InlineStyleSelector","globalRegistry","frontendConfiguration","ckEditorRegistry","richtextToolbar","inlineStyleConfiguration","blockStyleConfiguration","presets","blockStylePresetConfiguration","ckEditorConfiguration","editorOptions","editing","plugins","component","isVisible","inlineStylePresetConfiguration"],"mappings":"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","file":"Plugin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.js\");\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nvar manifest_1 = __importDefault(require(\"./manifest\"));\nvar createReadOnlyValue = function (value) { return ({\n value: value,\n writable: false,\n enumerable: false,\n configurable: true\n}); };\nfunction createConsumerApi(manifests, exposureMap) {\n var api = {};\n Object.keys(exposureMap).forEach(function (key) {\n Object.defineProperty(api, key, createReadOnlyValue(exposureMap[key]));\n });\n Object.defineProperty(api, '@manifest', createReadOnlyValue((0, manifest_1[\"default\"])(manifests)));\n Object.defineProperty(window, '@Neos:HostPluginAPI', createReadOnlyValue(api));\n}\nexports[\"default\"] = createConsumerApi;\n//# sourceMappingURL=createConsumerApi.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nexports.SynchronousMetaRegistry = exports.SynchronousRegistry = exports.readFromConsumerApi = exports.createConsumerApi = void 0;\nvar createConsumerApi_1 = __importDefault(require(\"./createConsumerApi\"));\nexports.createConsumerApi = createConsumerApi_1[\"default\"];\nvar readFromConsumerApi_1 = __importDefault(require(\"./readFromConsumerApi\"));\nexports.readFromConsumerApi = readFromConsumerApi_1[\"default\"];\nvar index_1 = require(\"./registry/index\");\nexports.SynchronousRegistry = index_1.SynchronousRegistry;\nexports.SynchronousMetaRegistry = index_1.SynchronousMetaRegistry;\nexports[\"default\"] = (0, readFromConsumerApi_1[\"default\"])('manifest');\n//# sourceMappingURL=index.js.map","\"use strict\";\nexports.__esModule = true;\nexports[\"default\"] = (function (manifests) {\n return function (identifier, options, bootstrap) {\n var _a;\n manifests.push((_a = {},\n _a[identifier] = {\n options: options,\n bootstrap: bootstrap\n },\n _a));\n };\n});\n//# sourceMappingURL=manifest.js.map","\"use strict\";\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nexports.__esModule = true;\nfunction readFromConsumerApi(key) {\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (window['@Neos:HostPluginAPI'] && window['@Neos:HostPluginAPI'][\"@\".concat(key)]) {\n return (_a = window['@Neos:HostPluginAPI'])[\"@\".concat(key)].apply(_a, __spreadArray([], __read(args), false));\n }\n throw new Error('You are trying to read from a consumer api that hasn\\'t been initialized yet!');\n };\n}\nexports[\"default\"] = readFromConsumerApi;\n//# sourceMappingURL=readFromConsumerApi.js.map","\"use strict\";\nexports.__esModule = true;\nvar AbstractRegistry = (function () {\n function AbstractRegistry(description) {\n this.SERIAL_VERSION_UID = 'd8a5aa78-978e-11e6-ae22-56b6b6499611';\n this.description = description;\n }\n return AbstractRegistry;\n}());\nexports[\"default\"] = AbstractRegistry;\n//# sourceMappingURL=AbstractRegistry.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nvar SynchronousRegistry_1 = __importDefault(require(\"./SynchronousRegistry\"));\nvar SynchronousMetaRegistry = (function (_super) {\n __extends(SynchronousMetaRegistry, _super);\n function SynchronousMetaRegistry() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SynchronousMetaRegistry.prototype.set = function (key, value) {\n if (value.SERIAL_VERSION_UID !== 'd8a5aa78-978e-11e6-ae22-56b6b6499611') {\n throw new Error('You can only add registries to a meta registry');\n }\n return _super.prototype.set.call(this, key, value);\n };\n return SynchronousMetaRegistry;\n}(SynchronousRegistry_1[\"default\"]));\nexports[\"default\"] = SynchronousMetaRegistry;\n//# sourceMappingURL=SynchronousMetaRegistry.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nvar AbstractRegistry_1 = __importDefault(require(\"./AbstractRegistry\"));\nvar positional_array_sorter_1 = __importDefault(require(\"@neos-project/positional-array-sorter\"));\nvar SynchronousRegistry = (function (_super) {\n __extends(SynchronousRegistry, _super);\n function SynchronousRegistry(description) {\n var _this = _super.call(this, description) || this;\n _this._registry = [];\n return _this;\n }\n SynchronousRegistry.prototype.set = function (key, value, position) {\n if (position === void 0) { position = 0; }\n if (typeof key !== 'string') {\n throw new Error('Key must be a string');\n }\n if (typeof position !== 'string' && typeof position !== 'number') {\n throw new Error('Position must be a string or a number');\n }\n var entry = { key: key, value: value };\n if (position) {\n entry.position = position;\n }\n var indexOfItemWithTheSameKey = this._registry.findIndex(function (item) { return item.key === key; });\n if (indexOfItemWithTheSameKey === -1) {\n this._registry.push(entry);\n }\n else {\n this._registry[indexOfItemWithTheSameKey] = entry;\n }\n return value;\n };\n SynchronousRegistry.prototype.get = function (key) {\n if (typeof key !== 'string') {\n console.error('Key must be a string');\n return null;\n }\n var result = this._registry.find(function (item) { return item.key === key; });\n return result ? result.value : null;\n };\n SynchronousRegistry.prototype._getChildrenWrapped = function (searchKey) {\n var unsortedChildren = this._registry.filter(function (item) { return item.key.indexOf(searchKey + '/') === 0; });\n return (0, positional_array_sorter_1[\"default\"])(unsortedChildren);\n };\n SynchronousRegistry.prototype.getChildrenAsObject = function (searchKey) {\n var result = {};\n this._getChildrenWrapped(searchKey).forEach(function (item) {\n result[item.key] = item.value;\n });\n return result;\n };\n SynchronousRegistry.prototype.getChildren = function (searchKey) {\n return this._getChildrenWrapped(searchKey).map(function (item) { return item.value; });\n };\n SynchronousRegistry.prototype.has = function (key) {\n if (typeof key !== 'string') {\n console.error('Key must be a string');\n return false;\n }\n return Boolean(this._registry.find(function (item) { return item.key === key; }));\n };\n SynchronousRegistry.prototype._getAllWrapped = function () {\n return (0, positional_array_sorter_1[\"default\"])(this._registry);\n };\n SynchronousRegistry.prototype.getAllAsObject = function () {\n var result = {};\n this._getAllWrapped().forEach(function (item) {\n result[item.key] = item.value;\n });\n return result;\n };\n SynchronousRegistry.prototype.getAllAsList = function () {\n return this._getAllWrapped().map(function (item) { return Object.assign({ id: item.key }, item.value); });\n };\n return SynchronousRegistry;\n}(AbstractRegistry_1[\"default\"]));\nexports[\"default\"] = SynchronousRegistry;\n//# sourceMappingURL=SynchronousRegistry.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nexports.SynchronousMetaRegistry = exports.SynchronousRegistry = void 0;\nvar SynchronousRegistry_1 = __importDefault(require(\"./SynchronousRegistry\"));\nexports.SynchronousRegistry = SynchronousRegistry_1[\"default\"];\nvar SynchronousMetaRegistry_1 = __importDefault(require(\"./SynchronousMetaRegistry\"));\nexports.SynchronousMetaRegistry = SynchronousMetaRegistry_1[\"default\"];\n//# sourceMappingURL=index.js.map","import readFromConsumerApi from '../../../../dist/readFromConsumerApi';\n\nmodule.exports = readFromConsumerApi('NeosProjectPackages')().CkEditorApi;\n","import readFromConsumerApi from '../../../../dist/readFromConsumerApi';\n\nmodule.exports = readFromConsumerApi('NeosProjectPackages')().NeosUiReduxStore;\n","import readFromConsumerApi from '../../../../dist/readFromConsumerApi';\n\nmodule.exports = readFromConsumerApi('NeosProjectPackages')().ReactUiComponents;\n","import readFromConsumerApi from '../../../../dist/readFromConsumerApi';\n\nmodule.exports = readFromConsumerApi('vendor')().CkEditor5;\n","import readFromConsumerApi from '../../../../dist/readFromConsumerApi';\n\nmodule.exports = readFromConsumerApi('vendor')().plow;\n","import readFromConsumerApi from '../../../../dist/readFromConsumerApi';\n\nmodule.exports = readFromConsumerApi('vendor')().PropTypes;\n","import readFromConsumerApi from '../../../../dist/readFromConsumerApi';\n\nmodule.exports = readFromConsumerApi('vendor')().reactRedux;\n","import readFromConsumerApi from '../../../../dist/readFromConsumerApi';\n\nmodule.exports = readFromConsumerApi('vendor')().React;\n","\"use strict\";\nexports.__esModule = true;\nvar tslib_1 = require(\"tslib\");\nvar positionalArraySorter = function (subject, position, idKey) {\n var e_1, _a, e_2, _b, e_3, _c, e_4, _d, e_5, _e, e_6, _f, e_7, _g;\n if (position === void 0) { position = 'position'; }\n if (idKey === void 0) { idKey = 'key'; }\n var positionAccessor = typeof position === 'string' ? function (value) { return value[position]; } : position;\n var indexMapping = {};\n var middleKeys = {};\n var startKeys = {};\n var endKeys = {};\n var beforeKeys = {};\n var afterKeys = {};\n subject.forEach(function (item, index) {\n var key = item[idKey] ? item[idKey] : String(index);\n indexMapping[key] = index;\n var positionValue = positionAccessor(item);\n var position = String(positionValue ? positionValue : index);\n var invalid = false;\n if (position.startsWith('start')) {\n var weightMatch = position.match(/start\\s+(\\d+)/);\n var weight = weightMatch && weightMatch[1] ? Number(weightMatch[1]) : 0;\n if (!startKeys[weight]) {\n startKeys[weight] = [];\n }\n startKeys[weight].push(key);\n }\n else if (position.startsWith('end')) {\n var weightMatch = position.match(/end\\s+(\\d+)/);\n var weight = weightMatch && weightMatch[1] ? Number(weightMatch[1]) : 0;\n if (!endKeys[weight]) {\n endKeys[weight] = [];\n }\n endKeys[weight].push(key);\n }\n else if (position.startsWith('before')) {\n var match = position.match(/before\\s+(\\S+)(\\s+(\\d+))?/);\n if (!match) {\n invalid = true;\n }\n else {\n var reference = match[1];\n var weight = match[3] ? Number(match[3]) : 0;\n if (!beforeKeys[reference]) {\n beforeKeys[reference] = {};\n }\n if (!beforeKeys[reference][weight]) {\n beforeKeys[reference][weight] = [];\n }\n beforeKeys[reference][weight].push(key);\n }\n }\n else if (position.startsWith('after')) {\n var match = position.match(/after\\s+(\\S+)(\\s+(\\d+))?/);\n if (!match) {\n invalid = true;\n }\n else {\n var reference = match[1];\n var weight = match[3] ? Number(match[3]) : 0;\n if (!afterKeys[reference]) {\n afterKeys[reference] = {};\n }\n if (!afterKeys[reference][weight]) {\n afterKeys[reference][weight] = [];\n }\n afterKeys[reference][weight].push(key);\n }\n }\n else {\n invalid = true;\n }\n if (invalid) {\n var numberPosition = parseFloat(position);\n if (isNaN(numberPosition) || !isFinite(numberPosition)) {\n numberPosition = index;\n }\n if (!middleKeys[numberPosition]) {\n middleKeys[numberPosition] = [];\n }\n middleKeys[numberPosition].push(key);\n }\n });\n var resultStart = [];\n var resultMiddle = [];\n var resultEnd = [];\n var processedKeys = [];\n var sortedWeights = function (dict, asc) {\n var weights = Object.keys(dict).map(function (x) { return Number(x); }).sort(function (a, b) { return a - b; });\n return asc ? weights : weights.reverse();\n };\n var addToResults = function (keys, result) {\n keys.forEach(function (key) {\n var e_8, _a, e_9, _b;\n if (processedKeys.indexOf(key) >= 0) {\n return;\n }\n processedKeys.push(key);\n if (beforeKeys[key]) {\n var beforeWeights = sortedWeights(beforeKeys[key], true);\n try {\n for (var beforeWeights_1 = tslib_1.__values(beforeWeights), beforeWeights_1_1 = beforeWeights_1.next(); !beforeWeights_1_1.done; beforeWeights_1_1 = beforeWeights_1.next()) {\n var i = beforeWeights_1_1.value;\n addToResults(beforeKeys[key][i], result);\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (beforeWeights_1_1 && !beforeWeights_1_1.done && (_a = beforeWeights_1[\"return\"])) _a.call(beforeWeights_1);\n }\n finally { if (e_8) throw e_8.error; }\n }\n }\n result.push(key);\n if (afterKeys[key]) {\n var afterWeights = sortedWeights(afterKeys[key], false);\n try {\n for (var afterWeights_1 = tslib_1.__values(afterWeights), afterWeights_1_1 = afterWeights_1.next(); !afterWeights_1_1.done; afterWeights_1_1 = afterWeights_1.next()) {\n var i = afterWeights_1_1.value;\n addToResults(afterKeys[key][i], result);\n }\n }\n catch (e_9_1) { e_9 = { error: e_9_1 }; }\n finally {\n try {\n if (afterWeights_1_1 && !afterWeights_1_1.done && (_b = afterWeights_1[\"return\"])) _b.call(afterWeights_1);\n }\n finally { if (e_9) throw e_9.error; }\n }\n }\n });\n };\n try {\n for (var _h = tslib_1.__values(sortedWeights(startKeys, false)), _j = _h.next(); !_j.done; _j = _h.next()) {\n var i = _j.value;\n addToResults(startKeys[i], resultStart);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_j && !_j.done && (_a = _h[\"return\"])) _a.call(_h);\n }\n finally { if (e_1) throw e_1.error; }\n }\n try {\n for (var _k = tslib_1.__values(sortedWeights(middleKeys, true)), _l = _k.next(); !_l.done; _l = _k.next()) {\n var i = _l.value;\n addToResults(middleKeys[i], resultMiddle);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_l && !_l.done && (_b = _k[\"return\"])) _b.call(_k);\n }\n finally { if (e_2) throw e_2.error; }\n }\n try {\n for (var _m = tslib_1.__values(sortedWeights(endKeys, true)), _o = _m.next(); !_o.done; _o = _m.next()) {\n var i = _o.value;\n addToResults(endKeys[i], resultEnd);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_o && !_o.done && (_c = _m[\"return\"])) _c.call(_m);\n }\n finally { if (e_3) throw e_3.error; }\n }\n try {\n for (var _p = tslib_1.__values(Object.keys(beforeKeys)), _q = _p.next(); !_q.done; _q = _p.next()) {\n var key = _q.value;\n if (processedKeys.indexOf(key) >= 0) {\n continue;\n }\n try {\n for (var _r = (e_5 = void 0, tslib_1.__values(sortedWeights(beforeKeys[key], false))), _s = _r.next(); !_s.done; _s = _r.next()) {\n var i = _s.value;\n addToResults(beforeKeys[key][i], resultStart);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_s && !_s.done && (_e = _r[\"return\"])) _e.call(_r);\n }\n finally { if (e_5) throw e_5.error; }\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_q && !_q.done && (_d = _p[\"return\"])) _d.call(_p);\n }\n finally { if (e_4) throw e_4.error; }\n }\n try {\n for (var _t = tslib_1.__values(Object.keys(afterKeys)), _u = _t.next(); !_u.done; _u = _t.next()) {\n var key = _u.value;\n if (processedKeys.indexOf(key) >= 0) {\n continue;\n }\n try {\n for (var _v = (e_7 = void 0, tslib_1.__values(sortedWeights(afterKeys[key], false))), _w = _v.next(); !_w.done; _w = _v.next()) {\n var i = _w.value;\n addToResults(afterKeys[key][i], resultMiddle);\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_w && !_w.done && (_g = _v[\"return\"])) _g.call(_v);\n }\n finally { if (e_7) throw e_7.error; }\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_u && !_u.done && (_f = _t[\"return\"])) _f.call(_t);\n }\n finally { if (e_6) throw e_6.error; }\n }\n var sortedKeys = tslib_1.__spread(resultStart, resultMiddle, resultEnd);\n return sortedKeys.map(function (key) { return indexMapping[key]; }).map(function (i) { return subject[i]; });\n};\nexports[\"default\"] = positionalArraySorter;\n//# sourceMappingURL=positionalArraySorter.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// Originally taken from https://raw.githubusercontent.com/ckeditor/ckeditor5/master/packages/ckeditor5-basic-styles/src/attributecommand.js and adjusted\nimport {Command} from 'ckeditor5-exports';\n\n/**\n * Set a key-value block style; e.g. \"fontColor=red\".\n */\n\nexport default class BlockStyleCommand extends Command {\n /**\n * @param {module:core/editor/editor~Editor} editor\n * @param {String} attributeKey Attribute that will be set by the command.\n */\n constructor(editor, attributeKey) {\n super(editor);\n\n /**\n * The attribute that will be set by the command.\n *\n * @readonly\n * @member {String}\n */\n this.attributeKey = attributeKey;\n\n /**\n * Flag indicating whether the command is active. The command is active when the\n * {@link module:engine/model/selection~Selection#hasAttribute selection has the attribute} which means that:\n *\n * @observable\n * @readonly\n * @member {Boolean} #value\n */\n }\n\n /**\n * Updates the command's {@link #value} and {@link #isEnabled}.\n */\n refresh() {\n const model = this.editor.model;\n const doc = model.document;\n const blocksToChange = Array.from(doc.selection.getSelectedBlocks());\n\n this.value = this._getValueFromBlockNode();\n for (const block of blocksToChange) {\n if (model.schema.checkAttribute(block, this.attributeKey)) {\n this.isEnabled = true;\n }\n }\n }\n\n /**\n * Executes the command — sets the attribute to the desired value. If there is no desired valued, removes the\n * attribute on each block.\n *\n * @fires execute\n * @param {Object} [options] Command options.\n * @param {String} [options.value] The value to be set; if null or not existing, the attribute will be removed.\n */\n execute(options = {}) {\n const model = this.editor.model;\n const doc = model.document;\n const selection = doc.selection;\n const value = options.value;\n const blocksToChange = Array.from(selection.getSelectedBlocks());\n model.change(writer => {\n for (const block of blocksToChange) {\n if (value) {\n writer.setAttribute(this.attributeKey, value, block);\n } else {\n writer.removeAttribute(this.attributeKey, block);\n }\n }\n });\n }\n\n /**\n * Checks the attribute value of the parent block node(s)\n *\n * @private\n * @returns {String} The attribute value.\n */\n _getValueFromBlockNode() {\n const model = this.editor.model;\n const schema = model.schema;\n const selection = model.document.selection;\n const blocks = Array.from(selection.getSelectedBlocks());\n\n for (const block of blocks) {\n if (schema.checkAttribute(block, this.attributeKey)) {\n return block.getAttribute(this.attributeKey);\n }\n }\n\n return undefined;\n }\n}\n","import {Plugin, Paragraph} from 'ckeditor5-exports';\nimport BlockStyleCommand from \"./BlockStyleCommand\";\n\n/**\n * FACTORY FUNCTION for the plugin\n * needs the current preset configuration as parameter.\n */\nexport default (presetIdentifier, presetConfiguration) =>\n class BlockStyleEditing extends Plugin {\n init() {\n const schema = this.editor.model.schema;\n const modelAttributeKey = `blockStyles-${presetIdentifier}`;\n const optionIdentifiers = Object.keys(presetConfiguration.options);\n\n schema.extend(\n '$block',\n {allowAttributes: modelAttributeKey}\n );\n\n // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html\n schema.setAttributeProperties(\n modelAttributeKey,\n {isFormatting: true}\n );\n\n // Model configuration\n const config = {\n model: {\n key: modelAttributeKey,\n values: optionIdentifiers,\n },\n view: {}\n };\n\n // View configuration\n optionIdentifiers.forEach(optionIdentifier => {\n const options = presetConfiguration.options[optionIdentifier];\n const attribute = options.attribute || 'class';\n const attributeValues = (attribute === options.attribute) ? options.attributeValue : (options.cssClass).split(' ');\n\n config.view[optionIdentifier] = {\n key: attribute,\n value: attributeValues\n }\n });\n\n // Convert the model to view correctly\n this.editor.conversion.attributeToAttribute(config);\n\n this.editor.commands.add(`blockStyles:${presetIdentifier}`, new BlockStyleCommand(this.editor, modelAttributeKey));\n }\n };\n","// Originally taken from https://raw.githubusercontent.com/ckeditor/ckeditor5/master/packages/ckeditor5-basic-styles/src/attributecommand.js and adjusted\nimport {Command} from 'ckeditor5-exports';\n\n/**\n * Set a key-value inline style; e.g. \"fontColor=red\".\n *\n */\nexport default class InlineStylesCommand extends Command {\n /**\n * @param {module:core/editor/editor~Editor} editor\n * @param {String} attributeKey Attribute that will be set by the command.\n */\n constructor(editor, attributeKey) {\n super(editor);\n\n /**\n * The attribute that will be set by the command.\n *\n * @readonly\n * @member {String}\n */\n this.attributeKey = attributeKey;\n\n /**\n * Flag indicating whether the command is active. The command is active when the\n * {@link module:engine/model/selection~Selection#hasAttribute selection has the attribute} which means that:\n **\n * @observable\n * @readonly\n * @member {Boolean} #value\n */\n }\n\n /**\n * Updates the command's {@link #value} and {@link #isEnabled} based on the current selection.\n */\n refresh() {\n const model = this.editor.model;\n const doc = model.document;\n\n this.value = this._getValueFromFirstAllowedNode();\n this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, this.attributeKey);\n }\n\n /**\n * Executes the command — sets the attribute to the desired value. If there is no desired valued, removes the\n * attribute.\n *\n * @fires execute\n * @param {Object} [options] Command options.\n * @param {String} [options.value] The value to be set; if null or not existing, the attribute will be removed.\n */\n execute(options = {}) {\n const model = this.editor.model;\n const doc = model.document;\n const selection = doc.selection;\n const value = options.value;\n\n model.change(writer => {\n if (selection.isCollapsed) {\n if (value) {\n // value is existing, we want to set the selection attribute to the value.\n writer.setSelectionAttribute(this.attributeKey, value);\n } else {\n writer.removeSelectionAttribute(this.attributeKey);\n }\n } else {\n const ranges = model.schema.getValidRanges(selection.getRanges(), this.attributeKey);\n\n for (const range of ranges) {\n if (value) {\n writer.setAttribute(this.attributeKey, value, range);\n } else {\n writer.removeAttribute(this.attributeKey, range);\n }\n }\n }\n });\n }\n\n /**\n * Checks the attribute value of the first node in the selection that allows the attribute.\n * For the collapsed selection returns the selection attribute.\n *\n * @private\n * @returns {String} The attribute value.\n */\n _getValueFromFirstAllowedNode() {\n const model = this.editor.model;\n const schema = model.schema;\n const selection = model.document.selection;\n\n if (selection.isCollapsed) {\n return selection.getAttribute(this.attributeKey);\n }\n\n for (const range of selection.getRanges()) {\n for (const item of range.getItems()) {\n if (schema.checkAttribute(item, this.attributeKey)) {\n return item.getAttribute(this.attributeKey);\n }\n }\n }\n\n return undefined;\n }\n}\n","import {Plugin} from 'ckeditor5-exports';\nimport InlineStylesCommand from './InlineStylesCommand';\n\n/**\n * FACTORY FUNCTION for the plugin\n * needs the current preset configuration as parameter.\n */\nexport default (presetIdentifier, presetConfiguration) =>\n class InlineStylesEditing extends Plugin {\n init() {\n const schema = this.editor.model.schema;\n const optionIdentifiers = Object.keys(presetConfiguration.options);\n const modelAttributeKey = `inlineStyles-${presetIdentifier}`;\n\n schema.extend(\n '$text',\n {allowAttributes: modelAttributeKey}\n );\n\n // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html\n schema.setAttributeProperties(\n modelAttributeKey,\n {isFormatting: true}\n );\n\n // Model configuration\n const config = {\n model: {\n key: modelAttributeKey,\n values: optionIdentifiers\n },\n view: {}\n };\n\n // View configuration\n optionIdentifiers.forEach(optionIdentifier => {\n const options = presetConfiguration.options[optionIdentifier];\n const {attribute} = options;\n const classes = options.attributeValue || options.cssClass;\n\n config.view[optionIdentifier] = {\n name: 'span',\n attributes: {[attribute ? attribute : 'class']: classes}\n }\n });\n\n // Convert the model to view correctly\n this.editor.conversion.attributeToElement(config);\n\n this.editor.commands.add(`inlineStyles:${presetIdentifier}`, new InlineStylesCommand(this.editor, modelAttributeKey));\n }\n };\n","import PropTypes from 'prop-types';\n\nfunction attributeValueOrCssClass(props, propName, componentName) {\n if (props[propName] && typeof props[propName] !== 'string') {\n return new Error(`Prop '${propName}' must be a string.`);\n }\n if (!props.attributeValue && !props.cssClass) {\n return new Error(`Either prop 'attributeValue' or 'cssClass' must be supplied to ${componentName}.`);\n }\n}\n\nexport default PropTypes.shape({\n label: PropTypes.string.isRequired,\n\n // keys are the option values\n options: PropTypes.objectOf(PropTypes.shape({\n label: PropTypes.string.isRequired,\n attribute: PropTypes.string,\n attributeValue: attributeValueOrCssClass,\n cssClass: attributeValueOrCssClass,\n })),\n});","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport {SelectBox} from '@neos-project/react-ui-components';\nimport {connect} from 'react-redux';\nimport {$transform} from 'plow-js';\nimport PresetType from '../PresetType';\n\nimport {selectors} from '@neos-project/neos-ui-redux-store';\nimport * as CkEditorApi from '@neos-project/neos-ui-ckeditor5-bindings';\n\n@connect($transform({\n formattingUnderCursor: selectors.UI.ContentCanvas.formattingUnderCursor\n}))\nexport default class BlockStyleSelector extends PureComponent {\n static propTypes = {\n // from outside props\n presetIdentifier: PropTypes.string.isRequired,\n presetConfiguration: PresetType.isRequired,\n\n // from @connect\n formattingUnderCursor: PropTypes.object\n };\n\n constructor(...args) {\n super(...args);\n\n this.handleOnSelect = this.handleOnSelect.bind(this);\n }\n\n render() {\n const optionsForSelect = Object.entries(this.props.presetConfiguration.options)\n .map(([optionIdentifier, optionConfiguration]) => ({\n value: optionIdentifier,\n label: optionConfiguration.label\n }));\n\n if (optionsForSelect.length === 0) {\n return null;\n }\n\n const currentValue = this.props.formattingUnderCursor[`blockStyles:${this.props.presetIdentifier}`];\n\n return (\n \n );\n }\n\n handleOnSelect(optionIdentifier) {\n CkEditorApi.executeCommand(\n `blockStyles:${this.props.presetIdentifier}`,\n {value: optionIdentifier}\n );\n }\n}\n","import React, {PureComponent} from 'react';\nimport PropTypes from 'prop-types';\nimport {SelectBox} from '@neos-project/react-ui-components';\nimport {connect} from 'react-redux';\nimport {$transform} from 'plow-js';\nimport PresetType from '../PresetType';\n\nimport {selectors} from '@neos-project/neos-ui-redux-store';\nimport * as CkEditorApi from '@neos-project/neos-ui-ckeditor5-bindings';\n\n@connect($transform({\n formattingUnderCursor: selectors.UI.ContentCanvas.formattingUnderCursor\n}))\nexport default class InlineStyleSelector extends PureComponent {\n static propTypes = {\n // from outside props\n presetIdentifier: PropTypes.string.isRequired,\n presetConfiguration: PresetType.isRequired,\n\n // from @connect\n formattingUnderCursor: PropTypes.object\n };\n\n constructor(...args) {\n super(...args);\n\n this.handleOnSelect = this.handleOnSelect.bind(this);\n }\n\n render() {\n const optionsForSelect = Object.entries(this.props.presetConfiguration.options)\n .map(([optionIdentifier, optionConfiguration]) => ({\n value: optionIdentifier,\n label: optionConfiguration.label\n }));\n\n if (optionsForSelect.length === 0) {\n return null;\n }\n\n const currentValue = this.props.formattingUnderCursor[`inlineStyles:${this.props.presetIdentifier}`];\n\n return (\n \n );\n }\n\n handleOnSelect(optionIdentifier) {\n CkEditorApi.executeCommand(\n `inlineStyles:${this.props.presetIdentifier}`,\n {value: optionIdentifier}\n );\n }\n}\n","require('./manifest');","import manifest from '@neos-project/neos-ui-extensibility';\nimport {$get} from 'plow-js';\n\nimport InlineStylesEditing from './InlineStylesEditing';\nimport InlineStyleSelector from './components/InlineStyleSelector';\n\nimport BlockStyleEditing from \"./BlockStyleEditing\";\nimport BlockStyleSelector from \"./components/BlockStyleSelector\";\n\nmanifest('TechDivision.CkStyles:Styles', {}, (globalRegistry, {frontendConfiguration}) => {\n\n const ckEditorRegistry = globalRegistry.get('ckEditor5');\n const richtextToolbar = ckEditorRegistry.get('richtextToolbar');\n const config = ckEditorRegistry.get('config');\n\n const inlineStyleConfiguration = frontendConfiguration['TechDivision.CkStyles:InlineStyles'];\n const blockStyleConfiguration = frontendConfiguration['TechDivision.CkStyles:BlockStyles'];\n\n // Block style\n if (blockStyleConfiguration) {\n\n Object.keys(blockStyleConfiguration.presets).forEach(presetIdentifier => {\n\n const blockStylePresetConfiguration = blockStyleConfiguration.presets[presetIdentifier];\n\n config.set(`TechDivision.CkStyles:BlockStyles_${presetIdentifier}`, (ckEditorConfiguration, {editorOptions}) => {\n const editing = BlockStyleEditing(presetIdentifier, blockStylePresetConfiguration);\n ckEditorConfiguration.plugins = ckEditorConfiguration.plugins || [];\n ckEditorConfiguration.plugins.push(editing);\n return ckEditorConfiguration;\n });\n\n richtextToolbar.set(`blockStyles_${presetIdentifier}`, {\n component: BlockStyleSelector,\n // Display only if the preset is activated in NodeType.yaml for this node property\n isVisible: function (editorOptions, formattingUnderCursor) {\n var isVisible = false;\n if (editorOptions['blockStyling'] !== undefined && editorOptions['blockStyling'][presetIdentifier] !== undefined) {\n isVisible = editorOptions['blockStyling'][presetIdentifier];\n }\n return isVisible;\n },\n presetIdentifier: presetIdentifier,\n presetConfiguration: blockStylePresetConfiguration\n });\n\n });\n }\n\n //Inline Style\n if (inlineStyleConfiguration) {\n\n Object.keys(inlineStyleConfiguration.presets).forEach((presetIdentifier) => {\n\n const inlineStylePresetConfiguration = inlineStyleConfiguration.presets[presetIdentifier];\n\n config.set(`TechDivision.CkStyle:InlineStyles_${presetIdentifier}`, (ckEditorConfiguration, {editorOptions}) => {\n ckEditorConfiguration.plugins = ckEditorConfiguration.plugins || [];\n ckEditorConfiguration.plugins.push(InlineStylesEditing(presetIdentifier, inlineStylePresetConfiguration));\n return ckEditorConfiguration;\n });\n\n richtextToolbar.set(`inlineStyles_${presetIdentifier}`, {\n component: InlineStyleSelector,\n // Display only if the preset is activated in NodeType.yaml for this node property\n isVisible: function (editorOptions, formattingUnderCursor) {\n var isVisible = false;\n if (editorOptions['inlineStyling'] !== undefined && editorOptions['inlineStyling'][presetIdentifier] !== undefined) {\n isVisible = editorOptions['inlineStyling'][presetIdentifier];\n }\n return isVisible;\n },\n presetIdentifier: presetIdentifier,\n presetConfiguration: inlineStylePresetConfiguration\n });\n });\n }\n});\n"],"sourceRoot":""} \ No newline at end of file +{ + "version": 3, + "sources": ["../../../Private/JavaScript/CkStyles/node_modules/@neos-project/neos-ui-extensibility/src/readFromConsumerApi.ts", "../../../Private/JavaScript/CkStyles/node_modules/@neos-project/neos-ui-extensibility/src/shims/vendor/ckeditor5-core/index.js", "../../../Private/JavaScript/CkStyles/node_modules/@neos-project/neos-ui-extensibility/src/shims/vendor/ckeditor5-ui/index.js", "../../../Private/JavaScript/CkStyles/node_modules/@neos-project/neos-ui-extensibility/src/shims/vendor/ckeditor5-utils/index.js", "../../../Private/JavaScript/CkStyles/node_modules/@neos-project/neos-ui-extensibility/src/shims/neosProjectPackages/neos-ui-i18n/index.js", "../../../Private/JavaScript/CkStyles/node_modules/@neos-project/neos-ui-extensibility/plugin-api.js", "../../../Private/JavaScript/CkStyles/src/InlineStylesEditing.ts", "../../../Private/JavaScript/CkStyles/src/InlineStylesCommand.ts", "../../../Private/JavaScript/CkStyles/src/configuration.ts", "../../../Private/JavaScript/CkStyles/src/utils.ts", "../../../Private/JavaScript/CkStyles/src/BlockStyleEditing.ts", "../../../Private/JavaScript/CkStyles/src/BlockStyleCommand.ts", "../../../Private/JavaScript/CkStyles/src/manifest.ts"], + "sourcesContent": [null, null, null, null, null, "/**\n * This file is the entry point for neos ui plugins.\n * Require it via import '@neos-project/neos-ui-extensibility'\n *\n * **Internals**\n * This file wired via the \"publishConfig.main\" but not used for building the Neos.Ui itself.\n * The internal methods createConsumerApi() and readFromConsumerApi() are this way not exposed to plugins.\n * Also, the readFromConsumerApi() call below to expose the \"SynchronousRegistry\" does not work in our host code.\n */\n\nimport readFromConsumerApi from './dist/readFromConsumerApi';\n\n/**\n * Central function exposed to register a JavaScript package.\n *\n * import manifest from '@neos-project/neos-ui-extensibility'\n *\n * manifest('@my-vendor/my-plugin', {}, (globalRegistry, {store}) => {\n * // ...\n * })\n */\nconst manifest = readFromConsumerApi('manifest');\nexport default manifest;\n\n/**\n * @deprecated legacy code to support `import {SynchronousRegistry} from '@neos-project/neos-ui-extensibility'` please use `import {SynchronousRegistry} from '@neos-project/neos-ui-registry'` instead!\n */\nconst {SynchronousRegistry, SynchronousMetaRegistry} = readFromConsumerApi('NeosProjectPackages')().NeosUiRegistry;\nexport { SynchronousRegistry, SynchronousMetaRegistry };\n", "import { Plugin, PluginConstructor } from \"@ckeditor/ckeditor5-core\";\nimport {\n addListToDropdown,\n ButtonExecuteEvent,\n createDropdown,\n ListDropdownItemDefinition,\n UIModel\n} from \"@ckeditor/ckeditor5-ui\";\nimport { Collection } from \"@ckeditor/ckeditor5-utils\";\n\nimport InlineStylesCommand from \"./InlineStylesCommand\";\nimport {\n CK_STYLES_INLINE_STYLES_IDENTIFIER,\n type CkStylesPresetConfiguration,\n type CkStylesPresetIdentifier,\n INLINE_STYLING__ATTRIBUTE_PREFIX,\n INLINE_STYLING__COMMAND_PREFIX,\n TECHDIVISION_CKSTYLES__NAME_SPACE\n} from \"./configuration\";\nimport { createAttributeKey, createCommandId, createDropdownId, translateLabel } from \"./utils\";\n\n/**\n * FACTORY FUNCTION for the plugin\n * needs the current preset configuration as parameter.\n */\nexport function createInlineEditStylePlugin(\n presetIdentifier: CkStylesPresetIdentifier,\n presetConfiguration: CkStylesPresetConfiguration,\n): PluginConstructor {\n return class InlineStylesEditing extends Plugin {\n public static get pluginName() {\n return `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_INLINE_STYLES_IDENTIFIER}:${presetIdentifier}`;\n }\n\n public init() {\n const schema = this.editor.model.schema;\n const optionIdentifiers = Object.keys(presetConfiguration.options);\n const modelAttributeKey = createAttributeKey(INLINE_STYLING__ATTRIBUTE_PREFIX, presetIdentifier);\n\n schema.extend(\"$text\", { allowAttributes: modelAttributeKey });\n\n // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html\n schema.setAttributeProperties(modelAttributeKey, { isFormatting: true });\n\n // Register model-view conversion\n this.editor.conversion.attributeToElement({\n model: {\n key: modelAttributeKey,\n values: optionIdentifiers,\n },\n view: optionIdentifiers.reduce((viewConfig: Record, optionIdentifier) => {\n const options = presetConfiguration.options[optionIdentifier]!;\n\n if (\"attribute\" in options) {\n viewConfig[optionIdentifier] = {\n name: \"span\",\n attributes: {\n [options.attribute]: options.attributeValue,\n },\n };\n } else if (\"cssClass\" in options) {\n viewConfig[optionIdentifier] = {\n name: \"span\",\n classes: options.cssClass,\n };\n } else {\n console.error(\n `Invalid configuration for preset ${presetIdentifier} and option ${optionIdentifier}: either \"attribute\" and \"attributeValue\" or \"cssClass\" must be set.`,\n );\n }\n\n return viewConfig;\n }, {}),\n });\n\n // Register command\n const commandId = createCommandId(INLINE_STYLING__COMMAND_PREFIX, presetIdentifier);\n this.editor.commands.add(commandId, new InlineStylesCommand(this.editor, modelAttributeKey));\n\n // Register dropdown in the UI\n this.editor.ui.componentFactory.add(\n createDropdownId(INLINE_STYLING__COMMAND_PREFIX, presetIdentifier),\n (locale) => {\n const dropdownView = createDropdown(locale);\n const command = this.editor.commands.get(commandId) as InlineStylesCommand;\n\n if (!command) {\n console.error(`Command ${commandId} not found for dropdown ${commandId}_dropdown`);\n return dropdownView;\n }\n\n dropdownView.buttonView.set({\n label: translateLabel(presetConfiguration.label),\n withText: presetConfiguration.showLabel ?? true,\n tooltip: true,\n icon: presetConfiguration.icon ?? null,\n });\n\n dropdownView.bind(\"isEnabled\").to(command, \"isEnabled\", (isEnabled) => isEnabled);\n\n const optionCollection = new Collection();\n\n Object.keys(presetConfiguration.options).forEach((optionIdentifier) => {\n const option = presetConfiguration.options[optionIdentifier]!;\n const optionDefinition: ListDropdownItemDefinition = {\n type: \"button\",\n model: new UIModel({\n commandValue: optionIdentifier,\n label: translateLabel(option.label),\n icon: option.icon ?? null,\n withText: option.showLabel ?? true,\n toggleable: true,\n }),\n };\n\n optionDefinition.model.bind(\"isOn\").to(command, \"value\", (value) => value === optionIdentifier);\n\n optionCollection.add(optionDefinition);\n });\n\n addListToDropdown(dropdownView, optionCollection);\n\n // register execute event for dropdown\n this.listenTo(dropdownView, \"execute\", (evt) => {\n // no type info on evt.source so we cast it to the expected type\n const { commandValue } = evt.source as { commandValue: string };\n this.editor.execute(commandId, { value: commandValue });\n this.editor.editing.view.focus();\n });\n\n return dropdownView;\n },\n );\n }\n };\n}\n", "// Originally taken from https://raw.githubusercontent.com/ckeditor/ckeditor5/master/packages/ckeditor5-basic-styles/src/attributecommand.js and adjusted\nimport { Command, type Editor } from \"@ckeditor/ckeditor5-core\";\n\n/**\n * Set a key-value inline style; e.g. \"fontColor=red\".\n */\nexport default class InlineStylesCommand extends Command {\n /**\n * Flag indicating whether the command is active. The command is active when the\n * {@link module:engine/model/selection~ModelSelection#hasAttribute selection has the attribute} which means that:\n *\n * * If the selection is not empty – That the attribute is set on the first node in the selection that allows this attribute.\n * * If the selection is empty – That the selection has the attribute itself (which means that newly typed\n * text will have this attribute, too).\n *\n * @observable\n * @readonly\n */\n declare public value: string | undefined;\n\n /**\n * The attribute that will be set by the command.\n */\n public readonly attributeKey: string;\n\n /**\n * @param {module:core/editor/editor~Editor} editor\n * @param attributeKey Attribute that will be set by the command.\n */\n constructor(editor: Editor, attributeKey: string) {\n super(editor);\n\n this.attributeKey = attributeKey;\n this.value = undefined;\n }\n\n /**\n * Updates the command's {@link #value} and {@link #isEnabled} based on the current selection.\n */\n public override refresh(): void {\n const model = this.editor.model;\n const doc = model.document;\n\n const value = this._getValueFromFirstAllowedNode();\n\n // reset value and enabled state\n // We use undefined to prevent the \"reset\" option from being shown as active option in the UI when value resolves to empty string (no attribute set in selection).\n if (typeof value === \"string\" && value !== \"\") {\n this.value = value;\n } else {\n this.value = undefined;\n }\n\n this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, this.attributeKey);\n }\n\n /**\n * Executes the command – applies the attribute to the selection or removes it from the selection.\n *\n * If the command is active (`value == true`), it will remove attributes. Otherwise, it will set attributes.\n *\n * The execution result differs, depending on the {@link module:engine/model/document~ModelDocument#selection}:\n *\n * * If the selection is on a range, the command applies the attribute to all nodes in that range\n * (if they are allowed to have this attribute by the {@link module:engine/model/schema~ModelSchema schema}).\n * * If the selection is collapsed in a non-empty node, the command applies the attribute to the\n * {@link module:engine/model/document~ModelDocument#selection} itself (note that typed characters copy attributes from the selection).\n * * If the selection is collapsed in an empty node, the command applies the attribute to the parent node of the selection (note\n * that the selection inherits all attributes from a node if it is in an empty node).\n *\n * @fires execute\n * @param options Command options.\n * @param options.forceValue If set, it will force the command behavior. If `true`,\n * the command will apply the attribute, otherwise the command will remove the attribute.\n * If not set, the command will look for its current value to decide what it should do.\n */\n public override execute(options: { value: any }): void {\n const model = this.editor.model;\n const doc = model.document;\n const selection = doc.selection;\n // toggle value: if the value is already set, remove it; otherwise, set it to the provided value\n const value = this.value === options.value ? undefined : options.value;\n\n model.change((writer) => {\n if (selection.isCollapsed) {\n if (value) {\n // value is existing, we want to set the selection attribute to the value.\n writer.setSelectionAttribute(this.attributeKey, value);\n } else {\n writer.removeSelectionAttribute(this.attributeKey);\n }\n } else {\n const ranges = model.schema.getValidRanges(selection.getRanges(), this.attributeKey);\n\n for (const range of ranges) {\n if (value) {\n writer.setAttribute(this.attributeKey, value, range);\n } else {\n writer.removeAttribute(this.attributeKey, range);\n }\n }\n }\n });\n }\n\n /**\n * Checks the attribute value of the first node in the selection that allows the attribute.\n * For the collapsed selection returns the selection attribute.\n *\n * @returns The attribute value.\n */\n private _getValueFromFirstAllowedNode() {\n const model = this.editor.model;\n const schema = model.schema;\n const selection = model.document.selection;\n\n if (selection.isCollapsed) {\n return selection.getAttribute(this.attributeKey);\n }\n\n for (const range of selection.getRanges()) {\n for (const item of range.getItems()) {\n if (schema.checkAttribute(item, this.attributeKey)) {\n return item.getAttribute(this.attributeKey);\n }\n }\n }\n\n return undefined;\n }\n}\n", "export const TECHDIVISION_CKSTYLES__NAME_SPACE = \"TechDivision.CkStyles\";\n\n// Block style constants\nexport const CK_STYLES_BLOCK_STYLES_IDENTIFIER = \"BlockStyles\";\nexport const BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY = `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_BLOCK_STYLES_IDENTIFIER}`;\nexport const BLOCK_STYLING__EDITOR_OPTION_KEY = \"blockStyling\";\nexport const BLOCK_STYLING__COMMAND_PREFIX = \"blockStyle\";\nexport const BLOCK_STYLING__ATTRIBUTE_PREFIX = \"blockStyles\";\n\n// Inline style constants\nexport const CK_STYLES_INLINE_STYLES_IDENTIFIER = \"InlineStyles\";\nexport const INLINE_STYLING__FRONTEND_CONFIGURATION_KEY = `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_INLINE_STYLES_IDENTIFIER}`;\nexport const INLINE_STYLING__EDITOR_OPTION_KEY = \"inlineStyling\";\nexport const INLINE_STYLING__COMMAND_PREFIX = \"inlineStyle\";\nexport const INLINE_STYLING__ATTRIBUTE_PREFIX = \"inlineStyles\";\n\n// configuration type representation of Configuration/Settings.CkStyles.yaml\nexport type CkStylesPresetIdentifier = string;\nexport type CkStylesPresetOptionIdentifier = string;\n\nexport type CkStylesConfiguration = {\n presets: Record;\n};\n\nexport type CkStylesPresetConfiguration = {\n label: string;\n icon?: string;\n showLabel?: boolean;\n options: Record;\n};\n\n// either cssClass or attribute + attributeValue must be set, but not both\nexport type CkStylesPresetOptionConfiguration = {\n label: string;\n icon?: string;\n showLabel?: boolean;\n} & ({ attribute: string; attributeValue: string } | { cssClass: string });\n\n// configuration type representation of editorOptions of Neos NodeTypes\nexport type CkStylesNeosEditorOptions = {\n [BLOCK_STYLING__EDITOR_OPTION_KEY]?: {\n [presetIdentifier: CkStylesPresetIdentifier]: boolean;\n };\n [INLINE_STYLING__EDITOR_OPTION_KEY]?: {\n [presetIdentifier: CkStylesPresetIdentifier]: boolean;\n };\n};\n", "import { translate } from \"@neos-project/neos-ui-i18n\";\n\nimport {\n BLOCK_STYLING__ATTRIBUTE_PREFIX,\n BLOCK_STYLING__COMMAND_PREFIX,\n BLOCK_STYLING__EDITOR_OPTION_KEY,\n type CkStylesNeosEditorOptions,\n type CkStylesPresetIdentifier,\n INLINE_STYLING__ATTRIBUTE_PREFIX,\n INLINE_STYLING__COMMAND_PREFIX,\n INLINE_STYLING__EDITOR_OPTION_KEY,\n} from \"./configuration\";\n\nexport function isPresetEnabled(\n editorOptions: CkStylesNeosEditorOptions | undefined,\n editorOptionKey: typeof BLOCK_STYLING__EDITOR_OPTION_KEY | typeof INLINE_STYLING__EDITOR_OPTION_KEY,\n presetIdentifier: CkStylesPresetIdentifier,\n): boolean {\n return !!editorOptions?.[editorOptionKey]?.[presetIdentifier];\n}\n\nexport function createCommandId(\n commandPrefix: typeof BLOCK_STYLING__COMMAND_PREFIX | typeof INLINE_STYLING__COMMAND_PREFIX,\n presetIdentifier: CkStylesPresetIdentifier,\n): string {\n return `${commandPrefix}:${presetIdentifier}`;\n}\n\nexport function createDropdownId(\n commandPrefix: typeof BLOCK_STYLING__COMMAND_PREFIX | typeof INLINE_STYLING__COMMAND_PREFIX,\n presetIdentifier: CkStylesPresetIdentifier,\n): string {\n return `${createCommandId(commandPrefix, presetIdentifier)}_dropdown`;\n}\n\nexport function createAttributeKey(\n attributePrefix: typeof BLOCK_STYLING__ATTRIBUTE_PREFIX | typeof INLINE_STYLING__ATTRIBUTE_PREFIX,\n presetIdentifier: CkStylesPresetIdentifier,\n): string {\n return `${attributePrefix}-${presetIdentifier}`;\n}\n\nconst translationRegex = /^i18n\\((.+)\\)$/;\n\nexport function translateLabel(label: string): string {\n // If the label is in form \"i18n(Trans:lation:Name.space)\", treat it as a translation key and try to translate it.\n const matches = label.match(translationRegex);\n\n if (matches?.[1]) {\n const translationKey = matches[1];\n return translate(translationKey, label);\n }\n\n return label;\n}\n", "import { Plugin, PluginConstructor } from \"@ckeditor/ckeditor5-core\";\nimport {\n addListToDropdown,\n ButtonExecuteEvent,\n createDropdown,\n ListDropdownItemDefinition,\n UIModel\n} from \"@ckeditor/ckeditor5-ui\";\nimport { Collection } from \"@ckeditor/ckeditor5-utils\";\n\nimport BlockStyleCommand from \"./BlockStyleCommand\";\nimport {\n BLOCK_STYLING__ATTRIBUTE_PREFIX,\n BLOCK_STYLING__COMMAND_PREFIX,\n CK_STYLES_BLOCK_STYLES_IDENTIFIER,\n type CkStylesPresetConfiguration,\n type CkStylesPresetIdentifier,\n TECHDIVISION_CKSTYLES__NAME_SPACE\n} from \"./configuration\";\nimport { createAttributeKey, createCommandId, createDropdownId, translateLabel } from \"./utils\";\n\n/**\n * FACTORY FUNCTION for the plugin\n * needs the current preset configuration as parameter.\n */\nexport function createBlockStyleEditingPlugin(\n presetIdentifier: CkStylesPresetIdentifier,\n presetConfiguration: CkStylesPresetConfiguration,\n): PluginConstructor {\n return class BlockStyleEditing extends Plugin {\n public static get pluginName() {\n return `${TECHDIVISION_CKSTYLES__NAME_SPACE}:${CK_STYLES_BLOCK_STYLES_IDENTIFIER}:${presetIdentifier}`;\n }\n\n init() {\n const schema = this.editor.model.schema;\n const optionIdentifiers = Object.keys(presetConfiguration.options);\n const modelAttributeKey = createAttributeKey(BLOCK_STYLING__ATTRIBUTE_PREFIX, presetIdentifier);\n\n schema.extend(\"$block\", { allowAttributes: modelAttributeKey });\n\n // https://ckeditor.com/docs/ckeditor5/latest/features/remove-format.html\n schema.setAttributeProperties(modelAttributeKey, { isFormatting: true });\n\n // Register model-view conversion\n this.editor.conversion.attributeToAttribute({\n model: {\n key: modelAttributeKey,\n values: optionIdentifiers,\n },\n view: optionIdentifiers.reduce((viewConfig: Record, optionIdentifier) => {\n const option = presetConfiguration.options[optionIdentifier]!;\n\n if (\"attribute\" in option) {\n viewConfig[optionIdentifier] = {\n key: option.attribute,\n value: option.attributeValue,\n };\n } else if (\"cssClass\" in option) {\n viewConfig[optionIdentifier] = {\n key: \"class\",\n value: option.cssClass,\n };\n } else {\n throw new Error(\n `Invalid configuration for option ${optionIdentifier} in preset ${presetIdentifier}: either \"attribute\" and \"attributeValue\" or \"cssClass\" must be set.`,\n );\n }\n\n return viewConfig;\n }, {}),\n });\n\n // Register command\n const commandId = createCommandId(BLOCK_STYLING__COMMAND_PREFIX, presetIdentifier);\n this.editor.commands.add(commandId, new BlockStyleCommand(this.editor, modelAttributeKey));\n\n // Register dropdown in the UI\n this.editor.ui.componentFactory.add(\n createDropdownId(BLOCK_STYLING__COMMAND_PREFIX, presetIdentifier),\n (locale) => {\n const dropdownView = createDropdown(locale);\n const command = this.editor.commands.get(commandId) as BlockStyleCommand;\n\n if (!command) {\n console.error(`Command ${commandId} not found for dropdown ${commandId}_dropdown`);\n return dropdownView;\n }\n\n dropdownView.buttonView.set({\n label: translateLabel(presetConfiguration.label),\n withText: presetConfiguration.showLabel ?? true,\n tooltip: true,\n icon: presetConfiguration.icon ?? undefined,\n });\n\n dropdownView.bind(\"isEnabled\").to(command, \"isEnabled\", (isEnabled) => isEnabled);\n\n const itemCollection = new Collection();\n\n Object.keys(presetConfiguration.options).forEach((optionIdentifier) => {\n const option = presetConfiguration.options[optionIdentifier]!;\n const itemDefinition: ListDropdownItemDefinition = {\n type: \"button\",\n model: new UIModel({\n commandValue: optionIdentifier,\n label: translateLabel(option.label),\n icon: option.icon ?? undefined,\n withText: option.showLabel ?? true,\n toggleable: true,\n }),\n };\n\n itemDefinition.model\n .bind(\"isOn\")\n .to(command, \"value\", (value) => value.includes(optionIdentifier));\n\n itemCollection.add(itemDefinition);\n });\n\n addListToDropdown(dropdownView, itemCollection);\n\n // register execute event for dropdown\n this.listenTo(dropdownView, \"execute\", (evt) => {\n // no type info on evt.source so we cast it to the expected type\n const { commandValue } = evt.source as { commandValue: string };\n this.editor.execute(commandId, { value: commandValue });\n this.editor.editing.view.focus();\n });\n\n return dropdownView;\n },\n );\n }\n };\n}\n", "// Originally taken from https://raw.githubusercontent.com/ckeditor/ckeditor5/master/packages/ckeditor5-basic-styles/src/attributecommand.js and adjusted\nimport { Command, type Editor } from \"@ckeditor/ckeditor5-core\";\n\n/**\n * Set a key-value block style; e.g. \"fontColor=red\".\n */\nexport default class BlockStyleCommand extends Command {\n declare public value: string[];\n\n /**\n * The attribute that will be set by the command.\n * @observable\n * @readonly\n */\n public readonly attributeKey: string;\n\n /**\n * @param {module:core/editor/editor~Editor} editor\n * @param {String} attributeKey Attribute that will be set by the command.\n */\n constructor(editor: Editor, attributeKey: string) {\n super(editor);\n\n this.attributeKey = attributeKey;\n this.value = [];\n }\n\n /**\n * Updates the command's {@link #value} and {@link #isEnabled}.\n */\n public override refresh(): void {\n const model = this.editor.model;\n const doc = model.document;\n const schema = model.schema;\n const blocks = Array.from(doc.selection.getSelectedBlocks());\n\n // reset value and enabled state\n this.isEnabled = false;\n const valuesInCurrentSelection: string[] = [];\n\n for (const block of blocks) {\n if (schema.checkAttribute(block, this.attributeKey)) {\n // if at least one block allows the attribute, the command should be enabled\n this.isEnabled = true;\n\n // if the block has the attribute and its value is one of the allowed values, add it to the command value\n const value = block.getAttribute(this.attributeKey);\n if (typeof value === \"string\" && !valuesInCurrentSelection.includes(value) && value !== \"\") {\n valuesInCurrentSelection.push(value);\n }\n }\n }\n\n this.value = valuesInCurrentSelection;\n }\n\n /**\n * Executes the command — sets the attribute to the desired value. If there is no desired valued, removes the\n * attribute on each block.\n *\n * @fires execute\n * @param {Object} [options] Command options.\n * @param {String} [options.value] The value to be set; if null or not existing, the attribute will be removed.\n */\n public override execute(options: { value?: any } = {}) {\n const model = this.editor.model;\n const doc = model.document;\n const selection = doc.selection;\n\n const blocksToChange = Array.from(selection.getSelectedBlocks());\n\n // toggle the value: if all selected blocks already have the attribute with the same value, remove it; otherwise, set it for all selected blocks\n const allBlocksHaveValue = blocksToChange.every(block => block.getAttribute(this.attributeKey) === options.value);\n const value = allBlocksHaveValue ? undefined : options.value;\n\n model.change((writer) => {\n for (const block of blocksToChange) {\n if (value) {\n writer.setAttribute(this.attributeKey, value, block);\n } else {\n writer.removeAttribute(this.attributeKey, block);\n }\n }\n });\n }\n}\n", "import manifest from \"@neos-project/neos-ui-extensibility\";\nimport { EditorConfig } from \"@ckeditor/ckeditor5-core\";\n\nimport { createInlineEditStylePlugin } from \"./InlineStylesEditing\";\nimport { createBlockStyleEditingPlugin } from \"./BlockStyleEditing\";\nimport {\n BLOCK_STYLING__COMMAND_PREFIX,\n BLOCK_STYLING__EDITOR_OPTION_KEY,\n BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY,\n type CkStylesConfiguration,\n type CkStylesNeosEditorOptions,\n INLINE_STYLING__COMMAND_PREFIX,\n INLINE_STYLING__EDITOR_OPTION_KEY,\n INLINE_STYLING__FRONTEND_CONFIGURATION_KEY,\n TECHDIVISION_CKSTYLES__NAME_SPACE,\n} from \"./configuration\";\nimport { createDropdownId, isPresetEnabled } from \"./utils\";\n\nmanifest(\n `${TECHDIVISION_CKSTYLES__NAME_SPACE}:Styles`,\n {},\n (globalRegistry: any, { frontendConfiguration }: { frontendConfiguration: any }) => {\n const ckEditorRegistry = globalRegistry.get(\"ckEditor5\");\n const config = ckEditorRegistry.get(\"config\");\n\n const inlineStyleConfiguration = frontendConfiguration[INLINE_STYLING__FRONTEND_CONFIGURATION_KEY] as\n | CkStylesConfiguration\n | undefined;\n const blockStyleConfiguration = frontendConfiguration[BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY] as\n | CkStylesConfiguration\n | undefined;\n\n // Block style\n if (blockStyleConfiguration) {\n Object.keys(blockStyleConfiguration.presets).forEach((presetIdentifier) => {\n const blockStylePresetConfiguration = blockStyleConfiguration.presets[presetIdentifier]!;\n\n config.set(\n `${BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY}_${presetIdentifier}`,\n (\n ckEditorConfiguration: EditorConfig,\n { editorOptions }: { editorOptions: CkStylesNeosEditorOptions },\n ) => {\n if (isPresetEnabled(editorOptions, BLOCK_STYLING__EDITOR_OPTION_KEY, presetIdentifier)) {\n ckEditorConfiguration.plugins = ckEditorConfiguration.plugins ?? [];\n ckEditorConfiguration.plugins.push(\n createBlockStyleEditingPlugin(presetIdentifier, blockStylePresetConfiguration),\n );\n\n const toolbarItemId = createDropdownId(BLOCK_STYLING__COMMAND_PREFIX, presetIdentifier);\n\n if (ckEditorConfiguration.toolbar === undefined) {\n ckEditorConfiguration.toolbar = {\n items: [toolbarItemId],\n };\n } else if (Array.isArray(ckEditorConfiguration.toolbar)) {\n ckEditorConfiguration.toolbar.push('|', toolbarItemId);\n } else {\n ckEditorConfiguration.toolbar.items = ckEditorConfiguration.toolbar.items ?? [];\n ckEditorConfiguration.toolbar.items.push('|', toolbarItemId);\n }\n }\n\n return ckEditorConfiguration;\n },\n );\n });\n }\n\n //Inline Style\n if (inlineStyleConfiguration) {\n Object.keys(inlineStyleConfiguration.presets).forEach((presetIdentifier) => {\n const inlineStylePresetConfiguration = inlineStyleConfiguration.presets[presetIdentifier]!;\n\n config.set(\n `${INLINE_STYLING__FRONTEND_CONFIGURATION_KEY}_${presetIdentifier}`,\n (\n ckEditorConfiguration: EditorConfig,\n { editorOptions }: { editorOptions: CkStylesNeosEditorOptions },\n ) => {\n if (isPresetEnabled(editorOptions, INLINE_STYLING__EDITOR_OPTION_KEY, presetIdentifier)) {\n ckEditorConfiguration.plugins = ckEditorConfiguration.plugins ?? [];\n ckEditorConfiguration.plugins.push(\n createInlineEditStylePlugin(presetIdentifier, inlineStylePresetConfiguration),\n );\n\n const toolbarItemId = createDropdownId(INLINE_STYLING__COMMAND_PREFIX, presetIdentifier);\n\n if (ckEditorConfiguration.toolbar === undefined) {\n ckEditorConfiguration.toolbar = {\n items: [toolbarItemId],\n };\n } else if (Array.isArray(ckEditorConfiguration.toolbar)) {\n ckEditorConfiguration.toolbar.push('|', toolbarItemId);\n } else {\n ckEditorConfiguration.toolbar.items = ckEditorConfiguration.toolbar.items ?? [];\n ckEditorConfiguration.toolbar.items.push('|', toolbarItemId);\n }\n }\n\n return ckEditorConfiguration;\n },\n );\n });\n }\n },\n);\n"], + "mappings": "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", + "names": ["readFromConsumerApi", "key", "args", "init_readFromConsumerApi", "__esmMin", "require_ckeditor5_core", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_ckeditor5_ui", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_ckeditor5_utils", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "require_neos_ui_i18n", "__commonJSMin", "exports", "module", "init_readFromConsumerApi", "readFromConsumerApi", "init_readFromConsumerApi", "manifest", "readFromConsumerApi", "plugin_api_default", "SynchronousRegistry", "SynchronousMetaRegistry", "import_ckeditor5_core", "import_ckeditor5_ui", "import_ckeditor5_utils", "import_ckeditor5_core", "InlineStylesCommand", "editor", "attributeKey", "__publicField", "model", "doc", "value", "options", "selection", "writer", "ranges", "range", "schema", "item", "TECHDIVISION_CKSTYLES__NAME_SPACE", "CK_STYLES_BLOCK_STYLES_IDENTIFIER", "BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY", "BLOCK_STYLING__EDITOR_OPTION_KEY", "BLOCK_STYLING__COMMAND_PREFIX", "BLOCK_STYLING__ATTRIBUTE_PREFIX", "CK_STYLES_INLINE_STYLES_IDENTIFIER", "INLINE_STYLING__FRONTEND_CONFIGURATION_KEY", "INLINE_STYLING__EDITOR_OPTION_KEY", "INLINE_STYLING__COMMAND_PREFIX", "INLINE_STYLING__ATTRIBUTE_PREFIX", "import_neos_ui_i18n", "isPresetEnabled", "editorOptions", "editorOptionKey", "presetIdentifier", "createCommandId", "commandPrefix", "createDropdownId", "createAttributeKey", "attributePrefix", "translationRegex", "translateLabel", "label", "matches", "translationKey", "createInlineEditStylePlugin", "presetIdentifier", "presetConfiguration", "TECHDIVISION_CKSTYLES__NAME_SPACE", "CK_STYLES_INLINE_STYLES_IDENTIFIER", "schema", "optionIdentifiers", "modelAttributeKey", "createAttributeKey", "INLINE_STYLING__ATTRIBUTE_PREFIX", "viewConfig", "optionIdentifier", "options", "commandId", "createCommandId", "INLINE_STYLING__COMMAND_PREFIX", "InlineStylesCommand", "createDropdownId", "locale", "dropdownView", "command", "translateLabel", "isEnabled", "optionCollection", "option", "optionDefinition", "value", "evt", "commandValue", "import_ckeditor5_core", "import_ckeditor5_ui", "import_ckeditor5_utils", "import_ckeditor5_core", "BlockStyleCommand", "editor", "attributeKey", "__publicField", "model", "doc", "schema", "blocks", "valuesInCurrentSelection", "block", "value", "options", "selection", "blocksToChange", "writer", "createBlockStyleEditingPlugin", "presetIdentifier", "presetConfiguration", "TECHDIVISION_CKSTYLES__NAME_SPACE", "CK_STYLES_BLOCK_STYLES_IDENTIFIER", "schema", "optionIdentifiers", "modelAttributeKey", "createAttributeKey", "BLOCK_STYLING__ATTRIBUTE_PREFIX", "viewConfig", "optionIdentifier", "option", "commandId", "createCommandId", "BLOCK_STYLING__COMMAND_PREFIX", "BlockStyleCommand", "createDropdownId", "locale", "dropdownView", "command", "translateLabel", "isEnabled", "itemCollection", "itemDefinition", "value", "evt", "commandValue", "plugin_api_default", "TECHDIVISION_CKSTYLES__NAME_SPACE", "globalRegistry", "frontendConfiguration", "config", "inlineStyleConfiguration", "INLINE_STYLING__FRONTEND_CONFIGURATION_KEY", "blockStyleConfiguration", "BLOCK_STYLING__FRONTEND_CONFIGURATION_KEY", "presetIdentifier", "blockStylePresetConfiguration", "ckEditorConfiguration", "editorOptions", "isPresetEnabled", "BLOCK_STYLING__EDITOR_OPTION_KEY", "createBlockStyleEditingPlugin", "toolbarItemId", "createDropdownId", "BLOCK_STYLING__COMMAND_PREFIX", "inlineStylePresetConfiguration", "INLINE_STYLING__EDITOR_OPTION_KEY", "createInlineEditStylePlugin", "INLINE_STYLING__COMMAND_PREFIX"] +} From b9eaefa10f4bc45ec5db51f384ec1a047eca457a Mon Sep 17 00:00:00 2001 From: Robert Baruck Date: Wed, 4 Mar 2026 11:46:22 +0100 Subject: [PATCH 8/8] Update demo video link in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 12747b9..07ca22b 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ It is also possible to set a different attribute (for usage with placeholders fo **Demo:** - + **Example output:**