@ckeditor/ckeditor5-ckbox 41.2.0 → 41.3.0-alpha.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/content-index.css +4 -0
- package/dist/editor-index.css +31 -0
- package/dist/index.css +55 -0
- package/dist/index.css.map +1 -0
- package/dist/index.js +1713 -0
- package/dist/index.js.map +1 -0
- package/dist/types/augmentation.d.ts +32 -0
- package/dist/types/ckbox.d.ts +33 -0
- package/dist/types/ckboxcommand.d.ts +114 -0
- package/dist/types/ckboxconfig.d.ts +325 -0
- package/dist/types/ckboxediting.d.ts +54 -0
- package/dist/types/ckboximageedit/ckboximageeditcommand.d.ts +97 -0
- package/dist/types/ckboximageedit/ckboximageeditediting.d.ts +28 -0
- package/dist/types/ckboximageedit/ckboximageeditui.d.ts +24 -0
- package/dist/types/ckboximageedit/utils.d.ts +10 -0
- package/dist/types/ckboximageedit.d.ts +24 -0
- package/dist/types/ckboxui.d.ts +21 -0
- package/dist/types/ckboxuploadadapter.d.ts +33 -0
- package/dist/types/ckboxutils.d.ts +50 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/utils.d.ts +63 -0
- package/package.json +3 -2
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["index.js","../src/ckboxui.ts","../src/utils.ts","../src/ckboxcommand.ts","../src/ckboxutils.ts","../src/ckboxuploadadapter.ts","../src/ckboxediting.ts","../src/ckbox.ts","../src/ckboximageedit/utils.ts","../src/ckboximageedit/ckboximageeditcommand.ts","../src/ckboximageedit/ckboximageeditediting.ts","../src/ckboximageedit/ckboximageeditui.ts","../src/ckboximageedit.ts"],"names":[],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin, icons, Command, PendingActions } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ButtonView, Notification } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { Range } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { createElement, toMap, CKEditorError, logError, global, abortableDebounce, retry } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { decode } from 'blurhash';\nimport { FileRepository } from '@ckeditor/ckeditor5-upload/dist/index.js';\nimport { isEqual } from 'lodash-es';\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ckbox/ckboxui\n */\n/**\n * The CKBoxUI plugin. It introduces the `'ckbox'` toolbar button.\n */\nclass CKBoxUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'CKBoxUI';\n }\n /**\n * @inheritDoc\n */\n afterInit() {\n const editor = this.editor;\n // Do not register the `ckbox` button if the command does not exist.\n // This might happen when CKBox library is not loaded on the page.\n if (!editor.commands.get('ckbox')) {\n return;\n }\n const t = editor.t;\n const componentFactory = editor.ui.componentFactory;\n componentFactory.add('ckbox', locale => {\n const command = editor.commands.get('ckbox');\n const button = new ButtonView(locale);\n button.set({\n label: t('Open file manager'),\n icon: icons.browseFiles,\n tooltip: true\n });\n button.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n button.on('execute', () => {\n editor.execute('ckbox');\n });\n return button;\n });\n if (editor.plugins.has('ImageInsertUI')) {\n const imageInsertUI = editor.plugins.get('ImageInsertUI');\n imageInsertUI.registerIntegration({\n name: 'assetManager',\n observable: () => editor.commands.get('ckbox'),\n buttonViewCreator: () => {\n const button = this.editor.ui.componentFactory.create('ckbox');\n button.icon = icons.imageAssetManager;\n button.bind('label').to(imageInsertUI, 'isImageSelected', isImageSelected => isImageSelected ?\n t('Replace image with file manager') :\n t('Insert image with file manager'));\n return button;\n },\n formViewCreator: () => {\n const button = this.editor.ui.componentFactory.create('ckbox');\n button.icon = icons.imageAssetManager;\n button.withText = true;\n button.bind('label').to(imageInsertUI, 'isImageSelected', isImageSelected => isImageSelected ?\n t('Replace with file manager') :\n t('Insert with file manager'));\n button.on('execute', () => {\n imageInsertUI.dropdownView.isOpen = false;\n });\n return button;\n }\n });\n }\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * Converts image source set provided by the CKBox into an object containing:\n * - responsive URLs for the \"webp\" image format,\n * - one fallback URL for browsers that do not support the \"webp\" format.\n */\nfunction getImageUrls(imageUrls) {\n const responsiveUrls = [];\n let maxWidth = 0;\n for (const key in imageUrls) {\n const width = parseInt(key, 10);\n if (!isNaN(width)) {\n if (width > maxWidth) {\n maxWidth = width;\n }\n responsiveUrls.push(`${imageUrls[key]} ${key}w`);\n }\n }\n const imageSources = [{\n srcset: responsiveUrls.join(','),\n sizes: `(max-width: ${maxWidth}px) 100vw, ${maxWidth}px`,\n type: 'image/webp'\n }];\n return {\n imageFallbackUrl: imageUrls.default,\n imageSources\n };\n}\n/**\n * Returns a workspace id to use for communication with the CKBox service.\n *\n * @param defaultWorkspaceId The default workspace to use taken from editor config.\n */\nfunction getWorkspaceId(token, defaultWorkspaceId) {\n const [, binaryTokenPayload] = token.value.split('.');\n const payload = JSON.parse(atob(binaryTokenPayload));\n const workspaces = (payload.auth && payload.auth.ckbox && payload.auth.ckbox.workspaces) || [payload.aud];\n if (!defaultWorkspaceId) {\n return workspaces[0];\n }\n const role = payload.auth && payload.auth.ckbox && payload.auth.ckbox.role;\n if (role == 'superadmin' || workspaces.includes(defaultWorkspaceId)) {\n return defaultWorkspaceId;\n }\n return null;\n}\n/**\n * Default resolution for decoding blurhash values.\n * Relatively small values must be used in order to ensure acceptable performance.\n */\nconst BLUR_RESOLUTION = 32;\n/**\n * Generates an image data URL from its `blurhash` representation.\n */\nfunction blurHashToDataUrl(hash) {\n if (!hash) {\n return;\n }\n try {\n const resolutionInPx = `${BLUR_RESOLUTION}px`;\n const canvas = document.createElement('canvas');\n canvas.setAttribute('width', resolutionInPx);\n canvas.setAttribute('height', resolutionInPx);\n const ctx = canvas.getContext('2d');\n /* istanbul ignore next -- @preserve */\n if (!ctx) {\n return;\n }\n const imageData = ctx.createImageData(BLUR_RESOLUTION, BLUR_RESOLUTION);\n const decoded = decode(hash, BLUR_RESOLUTION, BLUR_RESOLUTION);\n imageData.data.set(decoded);\n ctx.putImageData(imageData, 0, 0);\n return canvas.toDataURL();\n }\n catch (e) {\n return undefined;\n }\n}\n/**\n * Sends the HTTP request.\n *\n * @internal\n * @param config.url the URL where the request will be sent.\n * @param config.method The HTTP method.\n * @param config.data Additional data to send.\n * @param config.onUploadProgress A callback informing about the upload progress.\n */\nfunction sendHttpRequest({ url, method = 'GET', data, onUploadProgress, signal, authorization }) {\n const xhr = new XMLHttpRequest();\n xhr.open(method, url.toString());\n xhr.setRequestHeader('Authorization', authorization);\n xhr.setRequestHeader('CKBox-Version', 'CKEditor 5');\n xhr.responseType = 'json';\n // The callback is attached to the `signal#abort` event.\n const abortCallback = () => {\n xhr.abort();\n };\n return new Promise((resolve, reject) => {\n signal.throwIfAborted();\n signal.addEventListener('abort', abortCallback);\n xhr.addEventListener('loadstart', () => {\n signal.addEventListener('abort', abortCallback);\n });\n xhr.addEventListener('loadend', () => {\n signal.removeEventListener('abort', abortCallback);\n });\n xhr.addEventListener('error', () => {\n reject();\n });\n xhr.addEventListener('abort', () => {\n reject();\n });\n xhr.addEventListener('load', () => {\n const response = xhr.response;\n if (!response || response.statusCode >= 400) {\n return reject(response && response.message);\n }\n resolve(response);\n });\n /* istanbul ignore else -- @preserve */\n if (onUploadProgress) {\n xhr.upload.addEventListener('progress', evt => {\n onUploadProgress(evt);\n });\n }\n // Send the request.\n xhr.send(data);\n });\n}\nconst MIME_TO_EXTENSION = {\n 'image/gif': 'gif',\n 'image/jpeg': 'jpg',\n 'image/png': 'png',\n 'image/webp': 'webp',\n 'image/bmp': 'bmp',\n 'image/tiff': 'tiff'\n};\n/**\n * Returns an extension a typical file in the specified `mimeType` format would have.\n */\nfunction convertMimeTypeToExtension(mimeType) {\n return MIME_TO_EXTENSION[mimeType];\n}\n/**\n * Tries to fetch the given `url` and returns 'content-type' of the response.\n */\nasync function getContentTypeOfUrl(url, options) {\n try {\n const response = await fetch(url, {\n method: 'HEAD',\n cache: 'force-cache',\n ...options\n });\n if (!response.ok) {\n return '';\n }\n return response.headers.get('content-type') || '';\n }\n catch {\n return '';\n }\n}\n/**\n * Returns an extension from the given value.\n */\nfunction getFileExtension(file) {\n const fileName = file.name;\n const extensionRegExp = /\\.(?<ext>[^.]+)$/;\n const match = fileName.match(extensionRegExp);\n return match.groups.ext.toLowerCase();\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n// Defines the waiting time (in milliseconds) for inserting the chosen asset into the model. The chosen asset is temporarily stored in the\n// `CKBoxCommand#_chosenAssets` and it is removed from there automatically after this time. See `CKBoxCommand#_chosenAssets` for more\n// details.\nconst ASSET_INSERTION_WAIT_TIMEOUT = 1000;\n/**\n * The CKBox command. It is used by the {@link module:ckbox/ckboxediting~CKBoxEditing CKBox editing feature} to open the CKBox file manager.\n * The file manager allows inserting an image or a link to a file into the editor content.\n *\n * ```ts\n * editor.execute( 'ckbox' );\n * ```\n *\n * **Note:** This command uses other features to perform the following tasks:\n * - To insert images it uses the {@link module:image/image/insertimagecommand~InsertImageCommand 'insertImage'} command from the\n * {@link module:image/image~Image Image feature}.\n * - To insert links to other files it uses the {@link module:link/linkcommand~LinkCommand 'link'} command from the\n * {@link module:link/link~Link Link feature}.\n */\nclass CKBoxCommand extends Command {\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n /**\n * A set of all chosen assets. They are stored temporarily and they are automatically removed 1 second after being chosen.\n * Chosen assets have to be \"remembered\" for a while to be able to map the given asset with the element inserted into the model.\n * This association map is then used to set the ID on the model element.\n *\n * All chosen assets are automatically removed after the timeout, because (theoretically) it may happen that they will never be\n * inserted into the model, even if the {@link module:link/linkcommand~LinkCommand `'link'`} command or the\n * {@link module:image/image/insertimagecommand~InsertImageCommand `'insertImage'`} command is enabled. Such a case may arise when\n * another plugin blocks the command execution. Then, in order not to keep the chosen (but not inserted) assets forever, we delete\n * them automatically to prevent memory leakage. The 1 second timeout is enough to insert the asset into the model and extract the\n * ID from the chosen asset.\n *\n * The assets are stored only if\n * the {@link module:ckbox/ckboxconfig~CKBoxConfig#ignoreDataId `config.ckbox.ignoreDataId`} option is set to `false` (by default).\n *\n * @internal\n */\n this._chosenAssets = new Set();\n /**\n * The DOM element that acts as a mounting point for the CKBox dialog.\n */\n this._wrapper = null;\n this._initListeners();\n }\n /**\n * @inheritDoc\n */\n refresh() {\n this.value = this._getValue();\n this.isEnabled = this._checkEnabled();\n }\n /**\n * @inheritDoc\n */\n execute() {\n this.fire('ckbox:open');\n }\n /**\n * Indicates if the CKBox dialog is already opened.\n *\n * @protected\n * @returns {Boolean}\n */\n _getValue() {\n return this._wrapper !== null;\n }\n /**\n * Checks whether the command can be enabled in the current context.\n */\n _checkEnabled() {\n const imageCommand = this.editor.commands.get('insertImage');\n const linkCommand = this.editor.commands.get('link');\n if (!imageCommand.isEnabled && !linkCommand.isEnabled) {\n return false;\n }\n return true;\n }\n /**\n * Creates the options object for the CKBox dialog.\n *\n * @returns The object with properties:\n * - theme The theme for CKBox dialog.\n * - language The language for CKBox dialog.\n * - tokenUrl The token endpoint URL.\n * - serviceOrigin The base URL of the API service.\n * - forceDemoLabel Whether to force \"Powered by CKBox\" link.\n * - dialog.onClose The callback function invoked after closing the CKBox dialog.\n * - assets.onChoose The callback function invoked after choosing the assets.\n */\n _prepareOptions() {\n const editor = this.editor;\n const ckboxConfig = editor.config.get('ckbox');\n return {\n theme: ckboxConfig.theme,\n language: ckboxConfig.language,\n tokenUrl: ckboxConfig.tokenUrl,\n serviceOrigin: ckboxConfig.serviceOrigin,\n forceDemoLabel: ckboxConfig.forceDemoLabel,\n dialog: {\n onClose: () => this.fire('ckbox:close')\n },\n assets: {\n onChoose: (assets) => this.fire('ckbox:choose', assets)\n }\n };\n }\n /**\n * Initializes various event listeners for the `ckbox:*` events, because all functionality of the `ckbox` command is event-based.\n */\n _initListeners() {\n const editor = this.editor;\n const model = editor.model;\n const shouldInsertDataId = !editor.config.get('ckbox.ignoreDataId');\n // Refresh the command after firing the `ckbox:*` event.\n this.on('ckbox', () => {\n this.refresh();\n }, { priority: 'low' });\n // Handle opening of the CKBox dialog.\n this.on('ckbox:open', () => {\n if (!this.isEnabled || this.value) {\n return;\n }\n this._wrapper = createElement(document, 'div', { class: 'ck ckbox-wrapper' });\n document.body.appendChild(this._wrapper);\n window.CKBox.mount(this._wrapper, this._prepareOptions());\n });\n // Handle closing of the CKBox dialog.\n this.on('ckbox:close', () => {\n if (!this.value) {\n return;\n }\n this._wrapper.remove();\n this._wrapper = null;\n editor.editing.view.focus();\n });\n // Handle choosing the assets.\n this.on('ckbox:choose', (evt, assets) => {\n if (!this.isEnabled) {\n return;\n }\n const imageCommand = editor.commands.get('insertImage');\n const linkCommand = editor.commands.get('link');\n const assetsToProcess = prepareAssets({\n assets,\n isImageAllowed: imageCommand.isEnabled,\n isLinkAllowed: linkCommand.isEnabled\n });\n const assetsCount = assetsToProcess.length;\n if (assetsCount === 0) {\n return;\n }\n // All assets are inserted in one undo step.\n model.change(writer => {\n for (const asset of assetsToProcess) {\n const isLastAsset = asset === assetsToProcess[assetsCount - 1];\n const isSingleAsset = assetsCount === 1;\n this._insertAsset(asset, isLastAsset, writer, isSingleAsset);\n // If asset ID must be set for the inserted model element, store the asset temporarily and remove it automatically\n // after the timeout.\n if (shouldInsertDataId) {\n setTimeout(() => this._chosenAssets.delete(asset), ASSET_INSERTION_WAIT_TIMEOUT);\n this._chosenAssets.add(asset);\n }\n }\n });\n editor.editing.view.focus();\n });\n // Clean up after the editor is destroyed.\n this.listenTo(editor, 'destroy', () => {\n this.fire('ckbox:close');\n this._chosenAssets.clear();\n });\n }\n /**\n * Inserts the asset into the model.\n *\n * @param asset The asset to be inserted.\n * @param isLastAsset Indicates if the current asset is the last one from the chosen set.\n * @param writer An instance of the model writer.\n * @param isSingleAsset It's true when only one asset is processed.\n */\n _insertAsset(asset, isLastAsset, writer, isSingleAsset) {\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n // Remove the `linkHref` attribute to not affect the asset to be inserted.\n writer.removeSelectionAttribute('linkHref');\n if (asset.type === 'image') {\n this._insertImage(asset);\n }\n else {\n this._insertLink(asset, writer, isSingleAsset);\n }\n // Except for the last chosen asset, move the selection to the end of the current range to avoid overwriting other, already\n // inserted assets.\n if (!isLastAsset) {\n writer.setSelection(selection.getLastPosition());\n }\n }\n /**\n * Inserts the image by calling the `insertImage` command.\n *\n * @param asset The asset to be inserted.\n */\n _insertImage(asset) {\n const editor = this.editor;\n const { imageFallbackUrl, imageSources, imageTextAlternative, imageWidth, imageHeight, imagePlaceholder } = asset.attributes;\n editor.execute('insertImage', {\n source: {\n src: imageFallbackUrl,\n sources: imageSources,\n alt: imageTextAlternative,\n width: imageWidth,\n height: imageHeight,\n ...(imagePlaceholder ? { placeholder: imagePlaceholder } : null)\n }\n });\n }\n /**\n * Inserts the link to the asset by calling the `link` command.\n *\n * @param asset The asset to be inserted.\n * @param writer An instance of the model writer.\n * @param isSingleAsset It's true when only one asset is processed.\n */\n _insertLink(asset, writer, isSingleAsset) {\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n const { linkName, linkHref } = asset.attributes;\n // If the selection is collapsed, insert the asset name as the link label and select it.\n if (selection.isCollapsed) {\n const selectionAttributes = toMap(selection.getAttributes());\n const textNode = writer.createText(linkName, selectionAttributes);\n if (!isSingleAsset) {\n const selectionLastPosition = selection.getLastPosition();\n const parentElement = selectionLastPosition.parent;\n // Insert new `paragraph` when selection is not in an empty `paragraph`.\n if (!(parentElement.name === 'paragraph' && parentElement.isEmpty)) {\n editor.execute('insertParagraph', {\n position: selectionLastPosition\n });\n }\n const range = model.insertContent(textNode);\n writer.setSelection(range);\n editor.execute('link', linkHref);\n return;\n }\n const range = model.insertContent(textNode);\n writer.setSelection(range);\n }\n editor.execute('link', linkHref);\n }\n}\n/**\n * Parses the chosen assets into the internal data format. Filters out chosen assets that are not allowed.\n */\nfunction prepareAssets({ assets, isImageAllowed, isLinkAllowed }) {\n return assets\n .map(asset => isImage(asset) ?\n {\n id: asset.data.id,\n type: 'image',\n attributes: prepareImageAssetAttributes(asset)\n } :\n {\n id: asset.data.id,\n type: 'link',\n attributes: prepareLinkAssetAttributes(asset)\n })\n .filter(asset => asset.type === 'image' ? isImageAllowed : isLinkAllowed);\n}\n/**\n * Parses the assets attributes into the internal data format.\n *\n * @internal\n */\nfunction prepareImageAssetAttributes(asset) {\n const { imageFallbackUrl, imageSources } = getImageUrls(asset.data.imageUrls);\n const { description, width, height, blurHash } = asset.data.metadata;\n const imagePlaceholder = blurHashToDataUrl(blurHash);\n return {\n imageFallbackUrl,\n imageSources,\n imageTextAlternative: description || '',\n imageWidth: width,\n imageHeight: height,\n ...(imagePlaceholder ? { imagePlaceholder } : null)\n };\n}\n/**\n * Parses the assets attributes into the internal data format.\n *\n * @param origin The base URL for assets inserted into the editor.\n */\nfunction prepareLinkAssetAttributes(asset) {\n return {\n linkName: asset.data.name,\n linkHref: getAssetUrl(asset)\n };\n}\n/**\n * Checks whether the asset is an image.\n */\nfunction isImage(asset) {\n const metadata = asset.data.metadata;\n if (!metadata) {\n return false;\n }\n return metadata.width && metadata.height;\n}\n/**\n * Creates the URL for the asset.\n *\n * @param origin The base URL for assets inserted into the editor.\n */\nfunction getAssetUrl(asset) {\n const url = new URL(asset.data.url);\n url.searchParams.set('download', 'true');\n return url.toString();\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nconst DEFAULT_CKBOX_THEME_NAME = 'lark';\n/**\n * The CKBox utilities plugin.\n */\nclass CKBoxUtils extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'CKBoxUtils';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return ['CloudServices'];\n }\n /**\n * @inheritDoc\n */\n async init() {\n const editor = this.editor;\n const hasConfiguration = !!editor.config.get('ckbox');\n const isLibraryLoaded = !!window.CKBox;\n // Proceed with plugin initialization only when the integrator intentionally wants to use it, i.e. when the `config.ckbox` exists or\n // the CKBox JavaScript library is loaded.\n if (!hasConfiguration && !isLibraryLoaded) {\n return;\n }\n editor.config.define('ckbox', {\n serviceOrigin: 'https://api.ckbox.io',\n defaultUploadCategories: null,\n ignoreDataId: false,\n language: editor.locale.uiLanguage,\n theme: DEFAULT_CKBOX_THEME_NAME,\n tokenUrl: editor.config.get('cloudServices.tokenUrl')\n });\n const cloudServices = editor.plugins.get('CloudServices');\n const cloudServicesTokenUrl = editor.config.get('cloudServices.tokenUrl');\n const ckboxTokenUrl = editor.config.get('ckbox.tokenUrl');\n if (!ckboxTokenUrl) {\n /**\n * The {@link module:ckbox/ckboxconfig~CKBoxConfig#tokenUrl `config.ckbox.tokenUrl`} or the\n * {@link module:cloud-services/cloudservicesconfig~CloudServicesConfig#tokenUrl `config.cloudServices.tokenUrl`}\n * configuration is required for the CKBox plugin.\n *\n * ```ts\n * ClassicEditor.create( document.createElement( 'div' ), {\n * \tckbox: {\n * \t\ttokenUrl: \"YOUR_TOKEN_URL\"\n * \t\t// ...\n * \t}\n * \t// ...\n * } );\n * ```\n *\n * @error ckbox-plugin-missing-token-url\n */\n throw new CKEditorError('ckbox-plugin-missing-token-url', this);\n }\n if (ckboxTokenUrl == cloudServicesTokenUrl) {\n this._token = cloudServices.token;\n }\n else {\n this._token = await cloudServices.registerTokenUrl(ckboxTokenUrl);\n }\n }\n /**\n * Returns a token used by the CKBox plugin for communication with the CKBox service.\n */\n getToken() {\n return this._token;\n }\n /**\n * The ID of workspace to use when uploading an image.\n */\n getWorkspaceId() {\n const t = this.editor.t;\n const cannotAccessDefaultWorkspaceError = t('Cannot access default workspace.');\n const defaultWorkspaceId = this.editor.config.get('ckbox.defaultUploadWorkspaceId');\n const workspaceId = getWorkspaceId(this._token, defaultWorkspaceId);\n if (workspaceId == null) {\n /**\n * The user is not authorized to access the workspace defined in the`ckbox.defaultUploadWorkspaceId` configuration.\n *\n * @error ckbox-access-default-workspace-error\n */\n logError('ckbox-access-default-workspace-error');\n throw cannotAccessDefaultWorkspaceError;\n }\n return workspaceId;\n }\n /**\n * Resolves a promise with an object containing a category with which the uploaded file is associated or an error code.\n */\n async getCategoryIdForFile(fileOrUrl, options) {\n const t = this.editor.t;\n const cannotFindCategoryError = t('Cannot determine a category for the uploaded file.');\n const defaultCategories = this.editor.config.get('ckbox.defaultUploadCategories');\n const allCategoriesPromise = this._getAvailableCategories(options);\n const extension = typeof fileOrUrl == 'string' ?\n convertMimeTypeToExtension(await getContentTypeOfUrl(fileOrUrl, options)) :\n getFileExtension(fileOrUrl);\n const allCategories = await allCategoriesPromise;\n // Couldn't fetch all categories. Perhaps the authorization token is invalid.\n if (!allCategories) {\n throw cannotFindCategoryError;\n }\n // If a user specifies the plugin configuration, find the first category that accepts the uploaded file.\n if (defaultCategories) {\n const userCategory = Object.keys(defaultCategories).find(category => {\n return defaultCategories[category].find(e => e.toLowerCase() == extension);\n });\n // If found, return its ID if the category exists on the server side.\n if (userCategory) {\n const serverCategory = allCategories.find(category => category.id === userCategory || category.name === userCategory);\n if (!serverCategory) {\n throw cannotFindCategoryError;\n }\n return serverCategory.id;\n }\n }\n // Otherwise, find the first category that accepts the uploaded file and returns its ID.\n const category = allCategories.find(category => category.extensions.find(e => e.toLowerCase() == extension));\n if (!category) {\n throw cannotFindCategoryError;\n }\n return category.id;\n }\n /**\n * Resolves a promise with an array containing available categories with which the uploaded file can be associated.\n *\n * If the API returns limited results, the method will collect all items.\n */\n async _getAvailableCategories(options) {\n const ITEMS_PER_REQUEST = 50;\n const editor = this.editor;\n const token = this._token;\n const { signal } = options;\n const serviceOrigin = editor.config.get('ckbox.serviceOrigin');\n const workspaceId = this.getWorkspaceId();\n try {\n const result = [];\n let offset = 0;\n let remainingItems;\n do {\n const data = await fetchCategories(offset);\n result.push(...data.items);\n remainingItems = data.totalCount - (offset + ITEMS_PER_REQUEST);\n offset += ITEMS_PER_REQUEST;\n } while (remainingItems > 0);\n return result;\n }\n catch {\n signal.throwIfAborted();\n /**\n * Fetching a list of available categories with which an uploaded file can be associated failed.\n *\n * @error ckbox-fetch-category-http-error\n */\n logError('ckbox-fetch-category-http-error');\n return undefined;\n }\n function fetchCategories(offset) {\n const categoryUrl = new URL('categories', serviceOrigin);\n categoryUrl.searchParams.set('limit', ITEMS_PER_REQUEST.toString());\n categoryUrl.searchParams.set('offset', offset.toString());\n categoryUrl.searchParams.set('workspaceId', workspaceId);\n return sendHttpRequest({\n url: categoryUrl,\n signal,\n authorization: token.value\n });\n }\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/* globals AbortController, FormData, URL, window */\n/**\n * @module ckbox/ckboxuploadadapter\n */\n/**\n * A plugin that enables file uploads in CKEditor 5 using the CKBox server–side connector.\n * See the {@glink features/file-management/ckbox CKBox file manager integration} guide to learn how to configure\n * and use this feature as well as find out more about the full integration with the file manager\n * provided by the {@link module:ckbox/ckbox~CKBox} plugin.\n *\n * Check out the {@glink features/images/image-upload/image-upload Image upload overview} guide to learn about\n * other ways to upload images into CKEditor 5.\n */\nclass CKBoxUploadAdapter extends Plugin {\n /**\n * @inheritDoc\n */\n static get requires() {\n return ['ImageUploadEditing', 'ImageUploadProgress', FileRepository, CKBoxEditing];\n }\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'CKBoxUploadAdapter';\n }\n /**\n * @inheritDoc\n */\n async afterInit() {\n const editor = this.editor;\n const hasConfiguration = !!editor.config.get('ckbox');\n const isLibraryLoaded = !!window.CKBox;\n // Editor supports only one upload adapter. Register the CKBox upload adapter (and potentially overwrite other one) only when the\n // integrator intentionally wants to use the CKBox plugin, i.e. when the `config.ckbox` exists or the CKBox JavaScript library is\n // loaded.\n if (!hasConfiguration && !isLibraryLoaded) {\n return;\n }\n const fileRepository = editor.plugins.get(FileRepository);\n const ckboxUtils = editor.plugins.get(CKBoxUtils);\n fileRepository.createUploadAdapter = loader => new Adapter(loader, editor, ckboxUtils);\n const shouldInsertDataId = !editor.config.get('ckbox.ignoreDataId');\n const imageUploadEditing = editor.plugins.get('ImageUploadEditing');\n // Mark uploaded assets with the `ckboxImageId` attribute. Its value represents an ID in CKBox.\n if (shouldInsertDataId) {\n imageUploadEditing.on('uploadComplete', (evt, { imageElement, data }) => {\n editor.model.change(writer => {\n writer.setAttribute('ckboxImageId', data.ckboxImageId, imageElement);\n });\n });\n }\n }\n}\n/**\n * Upload adapter for CKBox.\n */\nclass Adapter {\n /**\n * Creates a new adapter instance.\n */\n constructor(loader, editor, ckboxUtils) {\n this.loader = loader;\n this.token = ckboxUtils.getToken();\n this.ckboxUtils = ckboxUtils;\n this.editor = editor;\n this.controller = new AbortController();\n this.serviceOrigin = editor.config.get('ckbox.serviceOrigin');\n }\n /**\n * Starts the upload process.\n *\n * @see module:upload/filerepository~UploadAdapter#upload\n */\n async upload() {\n const ckboxUtils = this.ckboxUtils;\n const t = this.editor.t;\n const file = (await this.loader.file);\n const category = await ckboxUtils.getCategoryIdForFile(file, { signal: this.controller.signal });\n const uploadUrl = new URL('assets', this.serviceOrigin);\n const formData = new FormData();\n uploadUrl.searchParams.set('workspaceId', ckboxUtils.getWorkspaceId());\n formData.append('categoryId', category);\n formData.append('file', file);\n const requestConfig = {\n method: 'POST',\n url: uploadUrl,\n data: formData,\n onUploadProgress: (evt) => {\n /* istanbul ignore else -- @preserve */\n if (evt.lengthComputable) {\n this.loader.uploadTotal = evt.total;\n this.loader.uploaded = evt.loaded;\n }\n },\n signal: this.controller.signal,\n authorization: this.token.value\n };\n return sendHttpRequest(requestConfig)\n .then(async (data) => {\n const imageUrls = getImageUrls(data.imageUrls);\n return {\n ckboxImageId: data.id,\n default: imageUrls.imageFallbackUrl,\n sources: imageUrls.imageSources\n };\n })\n .catch(() => {\n const genericError = t('Cannot upload file:') + ` ${file.name}.`;\n return Promise.reject(genericError);\n });\n }\n /**\n * Aborts the upload process.\n *\n * @see module:upload/filerepository~UploadAdapter#abort\n */\n abort() {\n this.controller.abort();\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * The CKBox editing feature. It introduces the {@link module:ckbox/ckboxcommand~CKBoxCommand CKBox command} and\n * {@link module:ckbox/ckboxuploadadapter~CKBoxUploadAdapter CKBox upload adapter}.\n */\nclass CKBoxEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'CKBoxEditing';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return ['LinkEditing', 'PictureEditing', CKBoxUploadAdapter, CKBoxUtils];\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n if (!this._shouldBeInitialised()) {\n return;\n }\n this._checkImagePlugins();\n // Registering the `ckbox` command makes sense only if the CKBox library is loaded, as the `ckbox` command opens the CKBox dialog.\n if (isLibraryLoaded()) {\n editor.commands.add('ckbox', new CKBoxCommand(editor));\n }\n }\n /**\n * @inheritDoc\n */\n afterInit() {\n const editor = this.editor;\n if (!this._shouldBeInitialised()) {\n return;\n }\n // Extending the schema, registering converters and applying fixers only make sense if the configuration option to assign\n // the assets ID with the model elements is enabled.\n if (!editor.config.get('ckbox.ignoreDataId')) {\n this._initSchema();\n this._initConversion();\n this._initFixers();\n }\n }\n /**\n * Returns true only when the integrator intentionally wants to use the plugin, i.e. when the `config.ckbox` exists or\n * the CKBox JavaScript library is loaded.\n */\n _shouldBeInitialised() {\n const editor = this.editor;\n const hasConfiguration = !!editor.config.get('ckbox');\n return hasConfiguration || isLibraryLoaded();\n }\n /**\n * Checks if at least one image plugin is loaded.\n */\n _checkImagePlugins() {\n const editor = this.editor;\n if (!editor.plugins.has('ImageBlockEditing') && !editor.plugins.has('ImageInlineEditing')) {\n /**\n * The CKBox feature requires one of the following plugins to be loaded to work correctly:\n *\n * * {@link module:image/imageblock~ImageBlock},\n * * {@link module:image/imageinline~ImageInline},\n * * {@link module:image/image~Image} (loads both `ImageBlock` and `ImageInline`)\n *\n * Please make sure your editor configuration is correct.\n *\n * @error ckbox-plugin-image-feature-missing\n * @param {module:core/editor/editor~Editor} editor\n */\n logError('ckbox-plugin-image-feature-missing', editor);\n }\n }\n /**\n * Extends the schema to allow the `ckboxImageId` and `ckboxLinkId` attributes for links and images.\n */\n _initSchema() {\n const editor = this.editor;\n const schema = editor.model.schema;\n schema.extend('$text', { allowAttributes: 'ckboxLinkId' });\n if (schema.isRegistered('imageBlock')) {\n schema.extend('imageBlock', { allowAttributes: ['ckboxImageId', 'ckboxLinkId'] });\n }\n if (schema.isRegistered('imageInline')) {\n schema.extend('imageInline', { allowAttributes: ['ckboxImageId', 'ckboxLinkId'] });\n }\n schema.addAttributeCheck((context, attributeName) => {\n const isLink = !!context.last.getAttribute('linkHref');\n if (!isLink && attributeName === 'ckboxLinkId') {\n return false;\n }\n });\n }\n /**\n * Configures the upcast and downcast conversions for the `ckboxImageId` and `ckboxLinkId` attributes.\n */\n _initConversion() {\n const editor = this.editor;\n // Convert `ckboxLinkId` => `data-ckbox-resource-id`.\n editor.conversion.for('downcast').add(dispatcher => {\n // Due to custom converters for linked block images, handle the `ckboxLinkId` attribute manually.\n dispatcher.on('attribute:ckboxLinkId:imageBlock', (evt, data, conversionApi) => {\n const { writer, mapper, consumable } = conversionApi;\n if (!consumable.consume(data.item, evt.name)) {\n return;\n }\n const viewFigure = mapper.toViewElement(data.item);\n const linkInImage = [...viewFigure.getChildren()]\n .find((child) => child.name === 'a');\n // No link inside an image - no conversion needed.\n if (!linkInImage) {\n return;\n }\n if (data.item.hasAttribute('ckboxLinkId')) {\n writer.setAttribute('data-ckbox-resource-id', data.item.getAttribute('ckboxLinkId'), linkInImage);\n }\n else {\n writer.removeAttribute('data-ckbox-resource-id', linkInImage);\n }\n }, { priority: 'low' });\n dispatcher.on('attribute:ckboxLinkId', (evt, data, conversionApi) => {\n const { writer, mapper, consumable } = conversionApi;\n if (!consumable.consume(data.item, evt.name)) {\n return;\n }\n // Remove the previous attribute value if it was applied.\n if (data.attributeOldValue) {\n const viewElement = createLinkElement(writer, data.attributeOldValue);\n writer.unwrap(mapper.toViewRange(data.range), viewElement);\n }\n // Add the new attribute value if specified in a model element.\n if (data.attributeNewValue) {\n const viewElement = createLinkElement(writer, data.attributeNewValue);\n if (data.item.is('selection')) {\n const viewSelection = writer.document.selection;\n writer.wrap(viewSelection.getFirstRange(), viewElement);\n }\n else {\n writer.wrap(mapper.toViewRange(data.range), viewElement);\n }\n }\n }, { priority: 'low' });\n });\n // Convert `data-ckbox-resource-id` => `ckboxLinkId`.\n //\n // The helper conversion does not handle all cases, so take care of the `data-ckbox-resource-id` attribute manually for images\n // and links.\n editor.conversion.for('upcast').add(dispatcher => {\n dispatcher.on('element:a', (evt, data, conversionApi) => {\n const { writer, consumable } = conversionApi;\n // Upcast the `data-ckbox-resource-id` attribute only for valid link elements.\n if (!data.viewItem.getAttribute('href')) {\n return;\n }\n const consumableAttributes = { attributes: ['data-ckbox-resource-id'] };\n if (!consumable.consume(data.viewItem, consumableAttributes)) {\n return;\n }\n const attributeValue = data.viewItem.getAttribute('data-ckbox-resource-id');\n // Missing the `data-ckbox-resource-id` attribute.\n if (!attributeValue) {\n return;\n }\n if (data.modelRange) {\n // If the `<a>` element contains more than single children (e.g. a linked image), set the `ckboxLinkId` for each\n // allowed child.\n for (let item of data.modelRange.getItems()) {\n if (item.is('$textProxy')) {\n item = item.textNode;\n }\n // Do not copy the `ckboxLinkId` attribute when wrapping an element in a block element, e.g. when\n // auto-paragraphing.\n if (shouldUpcastAttributeForNode(item)) {\n writer.setAttribute('ckboxLinkId', attributeValue, item);\n }\n }\n }\n else {\n // Otherwise, just set the `ckboxLinkId` for the model element.\n const modelElement = data.modelCursor.nodeBefore || data.modelCursor.parent;\n writer.setAttribute('ckboxLinkId', attributeValue, modelElement);\n }\n }, { priority: 'low' });\n });\n // Convert `ckboxImageId` => `data-ckbox-resource-id`.\n editor.conversion.for('downcast').attributeToAttribute({\n model: 'ckboxImageId',\n view: 'data-ckbox-resource-id'\n });\n // Convert `data-ckbox-resource-id` => `ckboxImageId`.\n editor.conversion.for('upcast').elementToAttribute({\n model: {\n key: 'ckboxImageId',\n value: (viewElement) => viewElement.getAttribute('data-ckbox-resource-id')\n },\n view: {\n attributes: {\n 'data-ckbox-resource-id': /[\\s\\S]+/\n }\n }\n });\n const replaceImageSourceCommand = editor.commands.get('replaceImageSource');\n if (replaceImageSourceCommand) {\n this.listenTo(replaceImageSourceCommand, 'cleanupImage', (_, [writer, image]) => {\n writer.removeAttribute('ckboxImageId', image);\n });\n }\n }\n /**\n * Registers post-fixers that add or remove the `ckboxLinkId` and `ckboxImageId` attributes.\n */\n _initFixers() {\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n // Registers the post-fixer to sync the asset ID with the model elements.\n model.document.registerPostFixer(syncDataIdPostFixer(editor));\n // Registers the post-fixer to remove the `ckboxLinkId` attribute from the model selection.\n model.document.registerPostFixer(injectSelectionPostFixer(selection));\n }\n}\n/**\n * A post-fixer that synchronizes the asset ID with the model element.\n */\nfunction syncDataIdPostFixer(editor) {\n return (writer) => {\n let changed = false;\n const model = editor.model;\n const ckboxCommand = editor.commands.get('ckbox');\n // The ID from chosen assets are stored in the `CKBoxCommand#_chosenAssets`. If there is no command, it makes no sense to check\n // for changes in the model.\n if (!ckboxCommand) {\n return changed;\n }\n for (const entry of model.document.differ.getChanges()) {\n if (entry.type !== 'insert' && entry.type !== 'attribute') {\n continue;\n }\n const range = entry.type === 'insert' ?\n new Range(entry.position, entry.position.getShiftedBy(entry.length)) :\n entry.range;\n const isLinkHrefAttributeRemoval = entry.type === 'attribute' &&\n entry.attributeKey === 'linkHref' &&\n entry.attributeNewValue === null;\n for (const item of range.getItems()) {\n // If the `linkHref` attribute has been removed, sync the change with the `ckboxLinkId` attribute.\n if (isLinkHrefAttributeRemoval && item.hasAttribute('ckboxLinkId')) {\n writer.removeAttribute('ckboxLinkId', item);\n changed = true;\n continue;\n }\n // Otherwise, the change concerns either a new model element or an attribute change. Try to find the assets for the modified\n // model element.\n const assets = findAssetsForItem(item, ckboxCommand._chosenAssets);\n for (const asset of assets) {\n const attributeName = asset.type === 'image' ? 'ckboxImageId' : 'ckboxLinkId';\n if (asset.id === item.getAttribute(attributeName)) {\n continue;\n }\n writer.setAttribute(attributeName, asset.id, item);\n changed = true;\n }\n }\n }\n return changed;\n };\n}\n/**\n * A post-fixer that removes the `ckboxLinkId` from the selection if it does not represent a link anymore.\n */\nfunction injectSelectionPostFixer(selection) {\n return (writer) => {\n const shouldRemoveLinkIdAttribute = !selection.hasAttribute('linkHref') && selection.hasAttribute('ckboxLinkId');\n if (shouldRemoveLinkIdAttribute) {\n writer.removeSelectionAttribute('ckboxLinkId');\n return true;\n }\n return false;\n };\n}\n/**\n * Tries to find the asset that is associated with the model element by comparing the attributes:\n * - the image fallback URL with the `src` attribute for images,\n * - the link URL with the `href` attribute for links.\n *\n * For any model element, zero, one or more than one asset can be found (e.g. a linked image may be associated with the link asset and the\n * image asset).\n */\nfunction findAssetsForItem(item, assets) {\n const isImageElement = item.is('element', 'imageInline') || item.is('element', 'imageBlock');\n const isLinkElement = item.hasAttribute('linkHref');\n return [...assets].filter(asset => {\n if (asset.type === 'image' && isImageElement) {\n return asset.attributes.imageFallbackUrl === item.getAttribute('src');\n }\n if (asset.type === 'link' && isLinkElement) {\n return asset.attributes.linkHref === item.getAttribute('linkHref');\n }\n });\n}\n/**\n * Creates view link element with the requested ID.\n */\nfunction createLinkElement(writer, id) {\n // Priority equal 5 is needed to merge adjacent `<a>` elements together.\n const viewElement = writer.createAttributeElement('a', { 'data-ckbox-resource-id': id }, { priority: 5 });\n writer.setCustomProperty('link', true, viewElement);\n return viewElement;\n}\n/**\n * Checks if the model element may have the `ckboxLinkId` attribute.\n */\nfunction shouldUpcastAttributeForNode(node) {\n if (node.is('$text')) {\n return true;\n }\n if (node.is('element', 'imageInline') || node.is('element', 'imageBlock')) {\n return true;\n }\n return false;\n}\n/**\n * Returns true if the CKBox library is loaded, false otherwise.\n */\nfunction isLibraryLoaded() {\n return !!window.CKBox;\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ckbox/ckbox\n */\n/**\n * The CKBox feature, a bridge between the CKEditor 5 WYSIWYG editor and the CKBox file manager and uploader.\n *\n * This is a \"glue\" plugin which enables:\n *\n * * {@link module:ckbox/ckboxediting~CKBoxEditing},\n * * {@link module:ckbox/ckboxui~CKBoxUI},\n *\n * See the {@glink features/file-management/ckbox CKBox integration} guide to learn how to configure and use this feature.\n *\n * Check out the {@glink features/images/image-upload/image-upload Image upload} guide to learn about other ways to upload\n * images into CKEditor 5.\n */\nclass CKBox extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'CKBox';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [CKBoxEditing, CKBoxUI];\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ckbox/ckboximageedit/utils\n */\n/**\n * @internal\n */\nfunction createEditabilityChecker(allowExternalImagesEditing) {\n const checkUrl = createUrlChecker(allowExternalImagesEditing);\n return element => {\n const isImageElement = element.is('element', 'imageInline') ||\n element.is('element', 'imageBlock');\n if (!isImageElement) {\n return false;\n }\n if (element.hasAttribute('ckboxImageId')) {\n return true;\n }\n if (element.hasAttribute('src')) {\n return checkUrl(element.getAttribute('src'));\n }\n return false;\n };\n}\nfunction createUrlChecker(allowExternalImagesEditing) {\n if (Array.isArray(allowExternalImagesEditing)) {\n const urlMatchers = allowExternalImagesEditing.map(createUrlChecker);\n return src => urlMatchers.some(matcher => matcher(src));\n }\n if (allowExternalImagesEditing == 'origin') {\n const origin = global.window.location.origin;\n return src => new URL(src, global.document.baseURI).origin == origin;\n }\n if (typeof allowExternalImagesEditing == 'function') {\n return allowExternalImagesEditing;\n }\n if (allowExternalImagesEditing instanceof RegExp) {\n return src => !!(src.match(allowExternalImagesEditing) ||\n src.replace(/^https?:\\/\\//, '').match(allowExternalImagesEditing));\n }\n return () => false;\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/* globals document, console, AbortController, URL, window */\n/**\n * @module ckbox/ckboximageedit/ckboximageeditcommand\n */\n/**\n * The CKBox edit image command.\n *\n * Opens the CKBox dialog for editing the image.\n */\nclass CKBoxImageEditCommand extends Command {\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n /**\n * The DOM element that acts as a mounting point for the CKBox Edit Image dialog.\n */\n this._wrapper = null;\n /**\n * The states of image processing in progress.\n */\n this._processInProgress = new Set();\n this.value = false;\n this._canEdit = createEditabilityChecker(editor.config.get('ckbox.allowExternalImagesEditing'));\n this._prepareOptions = abortableDebounce((signal, state) => this._prepareOptionsAbortable(signal, state));\n this._prepareListeners();\n }\n /**\n * @inheritDoc\n */\n refresh() {\n const editor = this.editor;\n this.value = this._getValue();\n const selectedElement = editor.model.document.selection.getSelectedElement();\n this.isEnabled =\n !!selectedElement &&\n this._canEdit(selectedElement) &&\n !this._checkIfElementIsBeingProcessed(selectedElement);\n }\n /**\n * Opens the CKBox Image Editor dialog for editing the image.\n */\n execute() {\n if (this._getValue()) {\n return;\n }\n const wrapper = createElement(document, 'div', { class: 'ck ckbox-wrapper' });\n this._wrapper = wrapper;\n this.value = true;\n document.body.appendChild(this._wrapper);\n const imageElement = this.editor.model.document.selection.getSelectedElement();\n const processingState = {\n element: imageElement,\n controller: new AbortController()\n };\n this._prepareOptions(processingState).then(options => window.CKBox.mountImageEditor(wrapper, options), error => {\n const editor = this.editor;\n const t = editor.t;\n const notification = editor.plugins.get(Notification);\n notification.showWarning(t('Failed to determine category of edited image.'), {\n namespace: 'ckbox'\n });\n console.error(error);\n this._handleImageEditorClose();\n });\n }\n /**\n * @inheritDoc\n */\n destroy() {\n this._handleImageEditorClose();\n this._prepareOptions.abort();\n for (const state of this._processInProgress.values()) {\n state.controller.abort();\n }\n super.destroy();\n }\n /**\n * Indicates if the CKBox Image Editor dialog is already opened.\n */\n _getValue() {\n return this._wrapper !== null;\n }\n /**\n * Creates the options object for the CKBox Image Editor dialog.\n */\n async _prepareOptionsAbortable(signal, state) {\n const editor = this.editor;\n const ckboxConfig = editor.config.get('ckbox');\n const ckboxUtils = editor.plugins.get(CKBoxUtils);\n const { element } = state;\n let imageMountOptions;\n const ckboxImageId = element.getAttribute('ckboxImageId');\n if (ckboxImageId) {\n imageMountOptions = {\n assetId: ckboxImageId\n };\n }\n else {\n const imageUrl = new URL(element.getAttribute('src'), document.baseURI).href;\n const uploadCategoryId = await ckboxUtils.getCategoryIdForFile(imageUrl, { signal });\n imageMountOptions = {\n imageUrl,\n uploadCategoryId\n };\n }\n return {\n ...imageMountOptions,\n imageEditing: {\n allowOverwrite: false\n },\n tokenUrl: ckboxConfig.tokenUrl,\n ...(ckboxConfig.serviceOrigin && { serviceOrigin: ckboxConfig.serviceOrigin }),\n onClose: () => this._handleImageEditorClose(),\n onSave: (asset) => this._handleImageEditorSave(state, asset)\n };\n }\n /**\n * Initializes event lister for an event of removing an image.\n */\n _prepareListeners() {\n // Abort editing processing when the image has been removed.\n this.listenTo(this.editor.model.document, 'change:data', () => {\n const processingStates = this._getProcessingStatesOfDeletedImages();\n processingStates.forEach(processingState => {\n processingState.controller.abort();\n });\n });\n }\n /**\n * Gets processing states of images that have been deleted in the mean time.\n */\n _getProcessingStatesOfDeletedImages() {\n const states = [];\n for (const state of this._processInProgress.values()) {\n if (state.element.root.rootName == '$graveyard') {\n states.push(state);\n }\n }\n return states;\n }\n _checkIfElementIsBeingProcessed(selectedElement) {\n for (const { element } of this._processInProgress) {\n if (isEqual(element, selectedElement)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Closes the CKBox Image Editor dialog.\n */\n _handleImageEditorClose() {\n if (!this._wrapper) {\n return;\n }\n this._wrapper.remove();\n this._wrapper = null;\n this.editor.editing.view.focus();\n this.refresh();\n }\n /**\n * Save edited image. In case server respond with \"success\" replace with edited image,\n * otherwise show notification error.\n */\n _handleImageEditorSave(state, asset) {\n const t = this.editor.locale.t;\n const notification = this.editor.plugins.get(Notification);\n const pendingActions = this.editor.plugins.get(PendingActions);\n const action = pendingActions.add(t('Processing the edited image.'));\n this._processInProgress.add(state);\n this._showImageProcessingIndicator(state.element, asset);\n this.refresh();\n this._waitForAssetProcessed(asset.data.id, state.controller.signal)\n .then(asset => {\n this._replaceImage(state.element, asset);\n }, error => {\n // Remove processing indicator. It was added only to ViewElement.\n this.editor.editing.reconvertItem(state.element);\n if (state.controller.signal.aborted) {\n return;\n }\n if (!error || error instanceof CKEditorError) {\n notification.showWarning(t('Server failed to process the image.'), {\n namespace: 'ckbox'\n });\n }\n else {\n console.error(error);\n }\n }).finally(() => {\n this._processInProgress.delete(state);\n pendingActions.remove(action);\n this.refresh();\n });\n }\n /**\n * Get asset's status on server. If server responds with \"success\" status then\n * image is already proceeded and ready for saving.\n */\n async _getAssetStatusFromServer(id, signal) {\n const ckboxUtils = this.editor.plugins.get(CKBoxUtils);\n const url = new URL('assets/' + id, this.editor.config.get('ckbox.serviceOrigin'));\n const response = await sendHttpRequest({\n url,\n signal,\n authorization: ckboxUtils.getToken().value\n });\n const status = response.metadata.metadataProcessingStatus;\n if (!status || status == 'queued') {\n /**\n * Image has not been processed yet.\n *\n * @error ckbox-image-not-processed\n */\n throw new CKEditorError('ckbox-image-not-processed');\n }\n return { data: { ...response } };\n }\n /**\n * Waits for an asset to be processed.\n * It retries retrieving asset status from the server in case of failure.\n */\n async _waitForAssetProcessed(id, signal) {\n const result = await retry(() => this._getAssetStatusFromServer(id, signal), {\n signal,\n maxAttempts: 5\n });\n if (result.data.metadata.metadataProcessingStatus != 'success') {\n /**\n * The image processing failed.\n *\n * @error ckbox-image-processing-failed\n */\n throw new CKEditorError('ckbox-image-processing-failed');\n }\n return result;\n }\n /**\n * Shows processing indicator while image is processing.\n *\n * @param asset Data about certain asset.\n */\n _showImageProcessingIndicator(element, asset) {\n const editor = this.editor;\n editor.editing.view.change(writer => {\n const imageElementView = editor.editing.mapper.toViewElement(element);\n const imageUtils = this.editor.plugins.get('ImageUtils');\n const img = imageUtils.findViewImgElement(imageElementView);\n writer.removeStyle('aspect-ratio', img);\n writer.setAttribute('width', asset.data.metadata.width, img);\n writer.setAttribute('height', asset.data.metadata.height, img);\n writer.setStyle('width', `${asset.data.metadata.width}px`, img);\n writer.setStyle('height', `${asset.data.metadata.height}px`, img);\n writer.addClass('image-processing', imageElementView);\n });\n }\n /**\n * Replace the edited image with the new one.\n */\n _replaceImage(element, asset) {\n const editor = this.editor;\n const { imageFallbackUrl, imageSources, imageWidth, imageHeight, imagePlaceholder } = prepareImageAssetAttributes(asset);\n const previousSelectionRanges = Array.from(editor.model.document.selection.getRanges());\n editor.model.change(writer => {\n writer.setSelection(element, 'on');\n editor.execute('insertImage', {\n source: {\n src: imageFallbackUrl,\n sources: imageSources,\n width: imageWidth,\n height: imageHeight,\n ...(imagePlaceholder ? { placeholder: imagePlaceholder } : null),\n ...(element.hasAttribute('alt') ? { alt: element.getAttribute('alt') } : null)\n }\n });\n const previousChildren = element.getChildren();\n element = editor.model.document.selection.getSelectedElement();\n for (const child of previousChildren) {\n writer.append(writer.cloneElement(child), element);\n }\n writer.setAttribute('ckboxImageId', asset.data.id, element);\n writer.setSelection(previousSelectionRanges);\n });\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ckbox/ckboximageedit/ckboximageeditediting\n */\n/**\n * The CKBox image edit editing plugin.\n */\nclass CKBoxImageEditEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'CKBoxImageEditEditing';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [CKBoxEditing, CKBoxUtils, PendingActions, Notification, 'ImageUtils', 'ImageEditing'];\n }\n /**\n * @inheritDoc\n */\n init() {\n const { editor } = this;\n editor.commands.add('ckboxImageEdit', new CKBoxImageEditCommand(editor));\n }\n}\n\nvar ckboxImageEditIcon = \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M1.201 1C.538 1 0 1.47 0 2.1v14.363c0 .64.534 1.037 1.186 1.037H5.06l5.058-5.078L6.617 9.15a.696.696 0 0 0-.957-.033L1.5 13.6V2.5h15v4.354a3.478 3.478 0 0 1 1.5.049V2.1c0-.63-.547-1.1-1.2-1.1H1.202Zm11.713 2.803a2.147 2.147 0 0 0-2.049 1.992 2.14 2.14 0 0 0 1.28 2.096 2.13 2.13 0 0 0 2.642-3.11 2.129 2.129 0 0 0-1.873-.978ZM8.089 17.635v2.388h2.389l7.046-7.046-2.39-2.39-7.045 7.048Zm11.282-6.507a.637.637 0 0 0 .139-.692.603.603 0 0 0-.139-.205l-1.49-1.488a.63.63 0 0 0-.899 0l-1.166 1.163 2.39 2.39 1.165-1.168Z\\\"/></svg>\";\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ckbox/ckboximageedit/ckboximageeditui\n */\n/**\n * The UI plugin of the CKBox image edit feature.\n *\n * It registers the `'ckboxImageEdit'` UI button in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}\n * that allows you to open the CKBox dialog and edit the image.\n */\nclass CKBoxImageEditUI extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'CKBoxImageEditUI';\n }\n /**\n * @inheritDoc\n */\n init() {\n const editor = this.editor;\n editor.ui.componentFactory.add('ckboxImageEdit', locale => {\n const command = editor.commands.get('ckboxImageEdit');\n const view = new ButtonView(locale);\n const t = locale.t;\n view.set({\n label: t('Edit image'),\n icon: ckboxImageEditIcon,\n tooltip: true\n });\n view.bind('isOn').to(command, 'value', command, 'isEnabled', (value, isEnabled) => value && isEnabled);\n view.bind('isEnabled').to(command);\n // Execute the command.\n this.listenTo(view, 'execute', () => {\n editor.execute('ckboxImageEdit');\n editor.editing.view.focus();\n });\n return view;\n });\n }\n}\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ckbox/ckboximageedit\n */\n/**\n * The CKBox image edit feature.\n */\nclass CKBoxImageEdit extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'CKBoxImageEdit';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [CKBoxImageEditEditing, CKBoxImageEditUI];\n }\n}\n\nexport { CKBox, CKBoxEditing, CKBoxImageEdit, CKBoxImageEditEditing, CKBoxImageEditUI, CKBoxUI };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckboxui\n */\n\nimport { icons, Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView } from 'ckeditor5/src/ui.js';\n\nimport type { ImageInsertUI } from '@ckeditor/ckeditor5-image';\n\nimport type CKBoxCommand from './ckboxcommand.js';\n\n/**\n * The CKBoxUI plugin. It introduces the `'ckbox'` toolbar button.\n */\nexport default class CKBoxUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\n\t\t// Do not register the `ckbox` button if the command does not exist.\n\t\t// This might happen when CKBox library is not loaded on the page.\n\t\tif ( !editor.commands.get( 'ckbox' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst t = editor.t;\n\t\tconst componentFactory = editor.ui.componentFactory;\n\n\t\tcomponentFactory.add( 'ckbox', locale => {\n\t\t\tconst command: CKBoxCommand = editor.commands.get( 'ckbox' )!;\n\t\t\tconst button = new ButtonView( locale );\n\n\t\t\tbutton.set( {\n\t\t\t\tlabel: t( 'Open file manager' ),\n\t\t\t\ticon: icons.browseFiles,\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\tbutton.bind( 'isOn', 'isEnabled' ).to( command, 'value', 'isEnabled' );\n\n\t\t\tbutton.on( 'execute', () => {\n\t\t\t\teditor.execute( 'ckbox' );\n\t\t\t} );\n\n\t\t\treturn button;\n\t\t} );\n\n\t\tif ( editor.plugins.has( 'ImageInsertUI' ) ) {\n\t\t\tconst imageInsertUI: ImageInsertUI = editor.plugins.get( 'ImageInsertUI' );\n\n\t\t\timageInsertUI.registerIntegration( {\n\t\t\t\tname: 'assetManager',\n\t\t\t\tobservable: () => editor.commands.get( 'ckbox' )!,\n\n\t\t\t\tbuttonViewCreator: () => {\n\t\t\t\t\tconst button = this.editor.ui.componentFactory.create( 'ckbox' ) as ButtonView;\n\n\t\t\t\t\tbutton.icon = icons.imageAssetManager;\n\t\t\t\t\tbutton.bind( 'label' ).to( imageInsertUI, 'isImageSelected', isImageSelected => isImageSelected ?\n\t\t\t\t\t\tt( 'Replace image with file manager' ) :\n\t\t\t\t\t\tt( 'Insert image with file manager' )\n\t\t\t\t\t);\n\n\t\t\t\t\treturn button;\n\t\t\t\t},\n\n\t\t\t\tformViewCreator: () => {\n\t\t\t\t\tconst button = this.editor.ui.componentFactory.create( 'ckbox' ) as ButtonView;\n\n\t\t\t\t\tbutton.icon = icons.imageAssetManager;\n\t\t\t\t\tbutton.withText = true;\n\t\t\t\t\tbutton.bind( 'label' ).to( imageInsertUI, 'isImageSelected', isImageSelected => isImageSelected ?\n\t\t\t\t\t\tt( 'Replace with file manager' ) :\n\t\t\t\t\t\tt( 'Insert with file manager' )\n\t\t\t\t\t);\n\n\t\t\t\t\tbutton.on( 'execute', () => {\n\t\t\t\t\t\timageInsertUI.dropdownView!.isOpen = false;\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn button;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* global atob */\n\n/**\n * @module ckbox/utils\n */\n\nimport type { InitializedToken } from '@ckeditor/ckeditor5-cloud-services';\nimport type { CKBoxImageUrls } from './ckboxconfig.js';\n\nimport { decode } from 'blurhash';\n\n/**\n * Converts image source set provided by the CKBox into an object containing:\n * - responsive URLs for the \"webp\" image format,\n * - one fallback URL for browsers that do not support the \"webp\" format.\n */\nexport function getImageUrls( imageUrls: CKBoxImageUrls ): {\n\timageFallbackUrl: string;\n\timageSources: Array<{\n\t\tsrcset: string;\n\t\tsizes: string;\n\t\ttype: string;\n\t}>;\n} {\n\tconst responsiveUrls: Array<string> = [];\n\tlet maxWidth = 0;\n\n\tfor ( const key in imageUrls ) {\n\t\tconst width = parseInt( key, 10 );\n\n\t\tif ( !isNaN( width ) ) {\n\t\t\tif ( width > maxWidth ) {\n\t\t\t\tmaxWidth = width;\n\t\t\t}\n\n\t\t\tresponsiveUrls.push( `${ imageUrls[ key ] } ${ key }w` );\n\t\t}\n\t}\n\n\tconst imageSources = [ {\n\t\tsrcset: responsiveUrls.join( ',' ),\n\t\tsizes: `(max-width: ${ maxWidth }px) 100vw, ${ maxWidth }px`,\n\t\ttype: 'image/webp'\n\t} ];\n\n\treturn {\n\t\timageFallbackUrl: imageUrls.default,\n\t\timageSources\n\t};\n}\n\n/**\n * Returns a workspace id to use for communication with the CKBox service.\n *\n * @param defaultWorkspaceId The default workspace to use taken from editor config.\n */\nexport function getWorkspaceId( token: InitializedToken, defaultWorkspaceId?: string ): string | null {\n\tconst [ , binaryTokenPayload ] = token.value.split( '.' );\n\tconst payload = JSON.parse( atob( binaryTokenPayload ) );\n\tconst workspaces = ( payload.auth && payload.auth.ckbox && payload.auth.ckbox.workspaces ) || [ payload.aud ];\n\n\tif ( !defaultWorkspaceId ) {\n\t\treturn workspaces[ 0 ];\n\t}\n\n\tconst role = payload.auth && payload.auth.ckbox && payload.auth.ckbox.role;\n\n\tif ( role == 'superadmin' || workspaces.includes( defaultWorkspaceId ) ) {\n\t\treturn defaultWorkspaceId;\n\t}\n\n\treturn null;\n}\n\n/**\n * Default resolution for decoding blurhash values.\n * Relatively small values must be used in order to ensure acceptable performance.\n */\nconst BLUR_RESOLUTION = 32;\n\n/**\n * Generates an image data URL from its `blurhash` representation.\n */\nexport function blurHashToDataUrl( hash?: string ): string | undefined {\n\tif ( !hash ) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tconst resolutionInPx = `${ BLUR_RESOLUTION }px`;\n\t\tconst canvas = document.createElement( 'canvas' );\n\n\t\tcanvas.setAttribute( 'width', resolutionInPx );\n\t\tcanvas.setAttribute( 'height', resolutionInPx );\n\n\t\tconst ctx = canvas.getContext( '2d' );\n\n\t\t/* istanbul ignore next -- @preserve */\n\t\tif ( !ctx ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst imageData = ctx.createImageData( BLUR_RESOLUTION, BLUR_RESOLUTION );\n\t\tconst decoded = decode( hash, BLUR_RESOLUTION, BLUR_RESOLUTION );\n\n\t\timageData.data.set( decoded );\n\t\tctx.putImageData( imageData, 0, 0 );\n\n\t\treturn canvas.toDataURL();\n\t} catch ( e ) {\n\t\treturn undefined;\n\t}\n}\n\n/**\n * Sends the HTTP request.\n *\n * @internal\n * @param config.url the URL where the request will be sent.\n * @param config.method The HTTP method.\n * @param config.data Additional data to send.\n * @param config.onUploadProgress A callback informing about the upload progress.\n */\nexport function sendHttpRequest( {\n\turl,\n\tmethod = 'GET',\n\tdata,\n\tonUploadProgress,\n\tsignal,\n\tauthorization\n}: {\n\turl: URL;\n\tsignal: AbortSignal;\n\tauthorization: string;\n\tmethod?: 'GET' | 'POST';\n\tdata?: FormData | null;\n\tonUploadProgress?: ( evt: ProgressEvent ) => void;\n} ): Promise<any> {\n\tconst xhr = new XMLHttpRequest();\n\n\txhr.open( method, url.toString() );\n\txhr.setRequestHeader( 'Authorization', authorization );\n\txhr.setRequestHeader( 'CKBox-Version', 'CKEditor 5' );\n\txhr.responseType = 'json';\n\n\t// The callback is attached to the `signal#abort` event.\n\tconst abortCallback = () => {\n\t\txhr.abort();\n\t};\n\n\treturn new Promise<any>( ( resolve, reject ) => {\n\t\tsignal.throwIfAborted();\n\t\tsignal.addEventListener( 'abort', abortCallback );\n\n\t\txhr.addEventListener( 'loadstart', () => {\n\t\t\tsignal.addEventListener( 'abort', abortCallback );\n\t\t} );\n\n\t\txhr.addEventListener( 'loadend', () => {\n\t\t\tsignal.removeEventListener( 'abort', abortCallback );\n\t\t} );\n\n\t\txhr.addEventListener( 'error', () => {\n\t\t\treject();\n\t\t} );\n\n\t\txhr.addEventListener( 'abort', () => {\n\t\t\treject();\n\t\t} );\n\n\t\txhr.addEventListener( 'load', () => {\n\t\t\tconst response = xhr.response;\n\n\t\t\tif ( !response || response.statusCode >= 400 ) {\n\t\t\t\treturn reject( response && response.message );\n\t\t\t}\n\n\t\t\tresolve( response );\n\t\t} );\n\n\t\t/* istanbul ignore else -- @preserve */\n\t\tif ( onUploadProgress ) {\n\t\t\txhr.upload.addEventListener( 'progress', evt => {\n\t\t\t\tonUploadProgress( evt );\n\t\t\t} );\n\t\t}\n\n\t\t// Send the request.\n\t\txhr.send( data );\n\t} );\n}\n\nconst MIME_TO_EXTENSION: Record<string, string> = {\n\t'image/gif': 'gif',\n\t'image/jpeg': 'jpg',\n\t'image/png': 'png',\n\t'image/webp': 'webp',\n\t'image/bmp': 'bmp',\n\t'image/tiff': 'tiff'\n};\n\n/**\n * Returns an extension a typical file in the specified `mimeType` format would have.\n */\nexport function convertMimeTypeToExtension( mimeType: string ): string {\n\treturn MIME_TO_EXTENSION[ mimeType ];\n}\n\n/**\n * Tries to fetch the given `url` and returns 'content-type' of the response.\n */\nexport async function getContentTypeOfUrl( url: string, options: { signal: AbortSignal } ): Promise<string> {\n\ttry {\n\t\tconst response = await fetch( url, {\n\t\t\tmethod: 'HEAD',\n\t\t\tcache: 'force-cache',\n\t\t\t...options\n\t\t} );\n\n\t\tif ( !response.ok ) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn response.headers.get( 'content-type' ) || '';\n\t} catch {\n\t\treturn '';\n\t}\n}\n\n/**\n * Returns an extension from the given value.\n */\nexport function getFileExtension( file: File ): string {\n\tconst fileName = file.name;\n\tconst extensionRegExp = /\\.(?<ext>[^.]+)$/;\n\tconst match = fileName.match( extensionRegExp );\n\n\treturn match!.groups!.ext.toLowerCase();\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* global document, window, setTimeout, URL */\n\n/**\n * @module ckbox/ckboxcommand\n */\n\nimport type { Writer } from 'ckeditor5/src/engine.js';\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport { createElement, toMap } from 'ckeditor5/src/utils.js';\n\nimport type {\n\tCKBoxAssetDefinition,\n\tCKBoxAssetImageAttributesDefinition,\n\tCKBoxAssetImageDefinition,\n\tCKBoxAssetLinkAttributesDefinition,\n\tCKBoxAssetLinkDefinition,\n\tCKBoxRawAssetDefinition\n} from './ckboxconfig.js';\n\nimport { blurHashToDataUrl, getImageUrls } from './utils.js';\n\n// Defines the waiting time (in milliseconds) for inserting the chosen asset into the model. The chosen asset is temporarily stored in the\n// `CKBoxCommand#_chosenAssets` and it is removed from there automatically after this time. See `CKBoxCommand#_chosenAssets` for more\n// details.\nconst ASSET_INSERTION_WAIT_TIMEOUT = 1000;\n\n/**\n * The CKBox command. It is used by the {@link module:ckbox/ckboxediting~CKBoxEditing CKBox editing feature} to open the CKBox file manager.\n * The file manager allows inserting an image or a link to a file into the editor content.\n *\n * ```ts\n * editor.execute( 'ckbox' );\n * ```\n *\n * **Note:** This command uses other features to perform the following tasks:\n * - To insert images it uses the {@link module:image/image/insertimagecommand~InsertImageCommand 'insertImage'} command from the\n * {@link module:image/image~Image Image feature}.\n * - To insert links to other files it uses the {@link module:link/linkcommand~LinkCommand 'link'} command from the\n * {@link module:link/link~Link Link feature}.\n */\nexport default class CKBoxCommand extends Command {\n\tdeclare public value: boolean;\n\n\t/**\n\t * A set of all chosen assets. They are stored temporarily and they are automatically removed 1 second after being chosen.\n\t * Chosen assets have to be \"remembered\" for a while to be able to map the given asset with the element inserted into the model.\n\t * This association map is then used to set the ID on the model element.\n\t *\n\t * All chosen assets are automatically removed after the timeout, because (theoretically) it may happen that they will never be\n\t * inserted into the model, even if the {@link module:link/linkcommand~LinkCommand `'link'`} command or the\n\t * {@link module:image/image/insertimagecommand~InsertImageCommand `'insertImage'`} command is enabled. Such a case may arise when\n\t * another plugin blocks the command execution. Then, in order not to keep the chosen (but not inserted) assets forever, we delete\n\t * them automatically to prevent memory leakage. The 1 second timeout is enough to insert the asset into the model and extract the\n\t * ID from the chosen asset.\n\t *\n\t * The assets are stored only if\n\t * the {@link module:ckbox/ckboxconfig~CKBoxConfig#ignoreDataId `config.ckbox.ignoreDataId`} option is set to `false` (by default).\n\t *\n\t * @internal\n\t */\n\tpublic readonly _chosenAssets = new Set<CKBoxAssetDefinition>();\n\n\t/**\n\t * The DOM element that acts as a mounting point for the CKBox dialog.\n\t */\n\tprivate _wrapper: Element | null = null;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis._initListeners();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tthis.value = this._getValue();\n\t\tthis.isEnabled = this._checkEnabled();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute(): void {\n\t\tthis.fire<CKBoxEvent<'open'>>( 'ckbox:open' );\n\t}\n\n\t/**\n\t * Indicates if the CKBox dialog is already opened.\n\t *\n\t * @protected\n\t * @returns {Boolean}\n\t */\n\tprivate _getValue(): boolean {\n\t\treturn this._wrapper !== null;\n\t}\n\n\t/**\n\t * Checks whether the command can be enabled in the current context.\n\t */\n\tprivate _checkEnabled() {\n\t\tconst imageCommand = this.editor.commands.get( 'insertImage' )!;\n\t\tconst linkCommand = this.editor.commands.get( 'link' )!;\n\n\t\tif ( !imageCommand.isEnabled && !linkCommand.isEnabled ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Creates the options object for the CKBox dialog.\n\t *\n\t * @returns The object with properties:\n\t * - theme The theme for CKBox dialog.\n\t * - language The language for CKBox dialog.\n\t * - tokenUrl The token endpoint URL.\n\t * - serviceOrigin The base URL of the API service.\n\t * - forceDemoLabel Whether to force \"Powered by CKBox\" link.\n\t * - dialog.onClose The callback function invoked after closing the CKBox dialog.\n\t * - assets.onChoose The callback function invoked after choosing the assets.\n\t */\n\tprivate _prepareOptions() {\n\t\tconst editor = this.editor;\n\t\tconst ckboxConfig = editor.config.get( 'ckbox' )!;\n\n\t\treturn {\n\t\t\ttheme: ckboxConfig.theme,\n\t\t\tlanguage: ckboxConfig.language,\n\t\t\ttokenUrl: ckboxConfig.tokenUrl,\n\t\t\tserviceOrigin: ckboxConfig.serviceOrigin,\n\t\t\tforceDemoLabel: ckboxConfig.forceDemoLabel,\n\t\t\tdialog: {\n\t\t\t\tonClose: () => this.fire<CKBoxEvent<'close'>>( 'ckbox:close' )\n\t\t\t},\n\t\t\tassets: {\n\t\t\t\tonChoose: ( assets: Array<CKBoxRawAssetDefinition> ) => this.fire<CKBoxEvent<'choose'>>( 'ckbox:choose', assets )\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Initializes various event listeners for the `ckbox:*` events, because all functionality of the `ckbox` command is event-based.\n\t */\n\tprivate _initListeners() {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst shouldInsertDataId = !editor.config.get( 'ckbox.ignoreDataId' );\n\n\t\t// Refresh the command after firing the `ckbox:*` event.\n\t\tthis.on<CKBoxEvent>( 'ckbox', () => {\n\t\t\tthis.refresh();\n\t\t}, { priority: 'low' } );\n\n\t\t// Handle opening of the CKBox dialog.\n\t\tthis.on<CKBoxEvent<'open'>>( 'ckbox:open', () => {\n\t\t\tif ( !this.isEnabled || this.value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._wrapper = createElement( document, 'div', { class: 'ck ckbox-wrapper' } );\n\t\t\tdocument.body.appendChild( this._wrapper );\n\n\t\t\twindow.CKBox.mount( this._wrapper, this._prepareOptions() );\n\t\t} );\n\n\t\t// Handle closing of the CKBox dialog.\n\t\tthis.on<CKBoxEvent<'close'>>( 'ckbox:close', () => {\n\t\t\tif ( !this.value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._wrapper!.remove();\n\t\t\tthis._wrapper = null;\n\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\t// Handle choosing the assets.\n\t\tthis.on<CKBoxEvent<'choose'>>( 'ckbox:choose', ( evt, assets ) => {\n\t\t\tif ( !this.isEnabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst imageCommand = editor.commands.get( 'insertImage' )!;\n\t\t\tconst linkCommand = editor.commands.get( 'link' )!;\n\n\t\t\tconst assetsToProcess = prepareAssets( {\n\t\t\t\tassets,\n\t\t\t\tisImageAllowed: imageCommand.isEnabled,\n\t\t\t\tisLinkAllowed: linkCommand.isEnabled\n\t\t\t} );\n\n\t\t\tconst assetsCount = assetsToProcess.length;\n\n\t\t\tif ( assetsCount === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// All assets are inserted in one undo step.\n\t\t\tmodel.change( writer => {\n\t\t\t\tfor ( const asset of assetsToProcess ) {\n\t\t\t\t\tconst isLastAsset = asset === assetsToProcess[ assetsCount - 1 ];\n\t\t\t\t\tconst isSingleAsset = assetsCount === 1;\n\n\t\t\t\t\tthis._insertAsset( asset, isLastAsset, writer, isSingleAsset );\n\n\t\t\t\t\t// If asset ID must be set for the inserted model element, store the asset temporarily and remove it automatically\n\t\t\t\t\t// after the timeout.\n\t\t\t\t\tif ( shouldInsertDataId ) {\n\t\t\t\t\t\tsetTimeout( () => this._chosenAssets.delete( asset ), ASSET_INSERTION_WAIT_TIMEOUT );\n\n\t\t\t\t\t\tthis._chosenAssets.add( asset );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\t// Clean up after the editor is destroyed.\n\t\tthis.listenTo( editor, 'destroy', () => {\n\t\t\tthis.fire<CKBoxEvent<'close'>>( 'ckbox:close' );\n\t\t\tthis._chosenAssets.clear();\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts the asset into the model.\n\t *\n\t * @param asset The asset to be inserted.\n\t * @param isLastAsset Indicates if the current asset is the last one from the chosen set.\n\t * @param writer An instance of the model writer.\n\t * @param isSingleAsset It's true when only one asset is processed.\n\t */\n\tprivate _insertAsset(\n\t\tasset: CKBoxAssetDefinition,\n\t\tisLastAsset: boolean,\n\t\twriter: Writer,\n\t\tisSingleAsset: boolean\n\t) {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\n\t\t// Remove the `linkHref` attribute to not affect the asset to be inserted.\n\t\twriter.removeSelectionAttribute( 'linkHref' );\n\n\t\tif ( asset.type === 'image' ) {\n\t\t\tthis._insertImage( asset );\n\t\t} else {\n\t\t\tthis._insertLink( asset, writer, isSingleAsset );\n\t\t}\n\n\t\t// Except for the last chosen asset, move the selection to the end of the current range to avoid overwriting other, already\n\t\t// inserted assets.\n\t\tif ( !isLastAsset ) {\n\t\t\twriter.setSelection( selection.getLastPosition() );\n\t\t}\n\t}\n\n\t/**\n\t * Inserts the image by calling the `insertImage` command.\n\t *\n\t * @param asset The asset to be inserted.\n\t */\n\tprivate _insertImage( asset: CKBoxAssetImageDefinition ) {\n\t\tconst editor = this.editor;\n\t\tconst {\n\t\t\timageFallbackUrl,\n\t\t\timageSources,\n\t\t\timageTextAlternative,\n\t\t\timageWidth,\n\t\t\timageHeight,\n\t\t\timagePlaceholder\n\t\t} = asset.attributes;\n\n\t\teditor.execute( 'insertImage', {\n\t\t\tsource: {\n\t\t\t\tsrc: imageFallbackUrl,\n\t\t\t\tsources: imageSources,\n\t\t\t\talt: imageTextAlternative,\n\t\t\t\twidth: imageWidth,\n\t\t\t\theight: imageHeight,\n\t\t\t\t...( imagePlaceholder ? { placeholder: imagePlaceholder } : null )\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts the link to the asset by calling the `link` command.\n\t *\n\t * @param asset The asset to be inserted.\n\t * @param writer An instance of the model writer.\n\t * @param isSingleAsset It's true when only one asset is processed.\n\t */\n\tprivate _insertLink( asset: CKBoxAssetLinkDefinition, writer: Writer, isSingleAsset: boolean ): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst { linkName, linkHref } = asset.attributes;\n\n\t\t// If the selection is collapsed, insert the asset name as the link label and select it.\n\t\tif ( selection.isCollapsed ) {\n\t\t\tconst selectionAttributes = toMap( selection.getAttributes() );\n\t\t\tconst textNode = writer.createText( linkName, selectionAttributes );\n\n\t\t\tif ( !isSingleAsset ) {\n\t\t\t\tconst selectionLastPosition = selection.getLastPosition()!;\n\t\t\t\tconst parentElement = selectionLastPosition.parent;\n\n\t\t\t\t// Insert new `paragraph` when selection is not in an empty `paragraph`.\n\t\t\t\tif ( !( parentElement.name === 'paragraph' && parentElement.isEmpty ) ) {\n\t\t\t\t\teditor.execute( 'insertParagraph', {\n\t\t\t\t\t\tposition: selectionLastPosition\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tconst range = model.insertContent( textNode );\n\n\t\t\t\twriter.setSelection( range );\n\t\t\t\teditor.execute( 'link', linkHref );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst range = model.insertContent( textNode );\n\n\t\t\twriter.setSelection( range );\n\t\t}\n\n\t\teditor.execute( 'link', linkHref );\n\t}\n}\n\n/**\n * Parses the chosen assets into the internal data format. Filters out chosen assets that are not allowed.\n */\nfunction prepareAssets(\n\t{ assets, isImageAllowed, isLinkAllowed }: {\n\t\tassets: Array<CKBoxRawAssetDefinition>;\n\t\tisImageAllowed: boolean;\n\t\tisLinkAllowed: boolean;\n\t}\n): Array<CKBoxAssetDefinition> {\n\treturn assets\n\t\t.map( asset => isImage( asset ) ?\n\t\t\t{\n\t\t\t\tid: asset.data.id,\n\t\t\t\ttype: 'image',\n\t\t\t\tattributes: prepareImageAssetAttributes( asset )\n\t\t\t} as const :\n\t\t\t{\n\t\t\t\tid: asset.data.id,\n\t\t\t\ttype: 'link',\n\t\t\t\tattributes: prepareLinkAssetAttributes( asset )\n\t\t\t} as const\n\t\t)\n\t\t.filter( asset => asset.type === 'image' ? isImageAllowed : isLinkAllowed );\n}\n\n/**\n * Parses the assets attributes into the internal data format.\n *\n * @internal\n */\nexport function prepareImageAssetAttributes( asset: CKBoxRawAssetDefinition ): CKBoxAssetImageAttributesDefinition {\n\tconst { imageFallbackUrl, imageSources } = getImageUrls( asset.data.imageUrls! );\n\tconst { description, width, height, blurHash } = asset.data.metadata!;\n\tconst imagePlaceholder = blurHashToDataUrl( blurHash );\n\n\treturn {\n\t\timageFallbackUrl,\n\t\timageSources,\n\t\timageTextAlternative: description || '',\n\t\timageWidth: width,\n\t\timageHeight: height,\n\t\t...( imagePlaceholder ? { imagePlaceholder } : null )\n\t};\n}\n\n/**\n * Parses the assets attributes into the internal data format.\n *\n * @param origin The base URL for assets inserted into the editor.\n */\nfunction prepareLinkAssetAttributes( asset: CKBoxRawAssetDefinition ): CKBoxAssetLinkAttributesDefinition {\n\treturn {\n\t\tlinkName: asset.data.name,\n\t\tlinkHref: getAssetUrl( asset )\n\t};\n}\n\n/**\n * Checks whether the asset is an image.\n */\nfunction isImage( asset: CKBoxRawAssetDefinition ) {\n\tconst metadata = asset.data.metadata;\n\n\tif ( !metadata ) {\n\t\treturn false;\n\t}\n\n\treturn metadata.width && metadata.height;\n}\n\n/**\n * Creates the URL for the asset.\n *\n * @param origin The base URL for assets inserted into the editor.\n */\nfunction getAssetUrl( asset: CKBoxRawAssetDefinition ) {\n\tconst url = new URL( asset.data.url );\n\n\turl.searchParams.set( 'download', 'true' );\n\n\treturn url.toString();\n}\n\n/**\n * Fired when the command is executed, the dialog is closed or the assets are chosen.\n *\n * @eventName ~CKBoxCommand#ckbox\n */\ntype CKBoxEvent<Name extends '' | 'choose' | 'open' | 'close' = ''> = {\n\tname: Name extends '' ? 'ckbox' : `ckbox:${ Name }`;\n\targs: Name extends 'choose' ? [ assets: Array<CKBoxRawAssetDefinition> ] : [];\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals window */\n\n/**\n * @module ckbox/ckboxutils\n */\n\nimport type { CloudServices, InitializedToken } from '@ckeditor/ckeditor5-cloud-services';\nimport { CKEditorError, logError } from 'ckeditor5/src/utils.js';\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport {\n\tconvertMimeTypeToExtension,\n\tgetContentTypeOfUrl,\n\tgetFileExtension,\n\tgetWorkspaceId,\n\tsendHttpRequest\n} from './utils.js';\n\nconst DEFAULT_CKBOX_THEME_NAME = 'lark';\n\n/**\n * The CKBox utilities plugin.\n */\nexport default class CKBoxUtils extends Plugin {\n\t/**\n\t * CKEditor Cloud Services access token.\n\t */\n\tprivate _token!: InitializedToken;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxUtils' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ 'CloudServices' ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic async init(): Promise<void> {\n\t\tconst editor = this.editor;\n\t\tconst hasConfiguration = !!editor.config.get( 'ckbox' );\n\t\tconst isLibraryLoaded = !!window.CKBox;\n\n\t\t// Proceed with plugin initialization only when the integrator intentionally wants to use it, i.e. when the `config.ckbox` exists or\n\t\t// the CKBox JavaScript library is loaded.\n\t\tif ( !hasConfiguration && !isLibraryLoaded ) {\n\t\t\treturn;\n\t\t}\n\n\t\teditor.config.define( 'ckbox', {\n\t\t\tserviceOrigin: 'https://api.ckbox.io',\n\t\t\tdefaultUploadCategories: null,\n\t\t\tignoreDataId: false,\n\t\t\tlanguage: editor.locale.uiLanguage,\n\t\t\ttheme: DEFAULT_CKBOX_THEME_NAME,\n\t\t\ttokenUrl: editor.config.get( 'cloudServices.tokenUrl' )\n\t\t} );\n\n\t\tconst cloudServices: CloudServices = editor.plugins.get( 'CloudServices' );\n\t\tconst cloudServicesTokenUrl = editor.config.get( 'cloudServices.tokenUrl' );\n\t\tconst ckboxTokenUrl = editor.config.get( 'ckbox.tokenUrl' );\n\n\t\tif ( !ckboxTokenUrl ) {\n\t\t\t/**\n\t\t\t * The {@link module:ckbox/ckboxconfig~CKBoxConfig#tokenUrl `config.ckbox.tokenUrl`} or the\n\t\t\t * {@link module:cloud-services/cloudservicesconfig~CloudServicesConfig#tokenUrl `config.cloudServices.tokenUrl`}\n\t\t\t * configuration is required for the CKBox plugin.\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * ClassicEditor.create( document.createElement( 'div' ), {\n\t\t\t * \tckbox: {\n\t\t\t * \t\ttokenUrl: \"YOUR_TOKEN_URL\"\n\t\t\t * \t\t// ...\n\t\t\t * \t}\n\t\t\t * \t// ...\n\t\t\t * } );\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @error ckbox-plugin-missing-token-url\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'ckbox-plugin-missing-token-url', this );\n\t\t}\n\n\t\tif ( ckboxTokenUrl == cloudServicesTokenUrl ) {\n\t\t\tthis._token = cloudServices.token!;\n\t\t} else {\n\t\t\tthis._token = await cloudServices.registerTokenUrl( ckboxTokenUrl );\n\t\t}\n\t}\n\n\t/**\n\t * Returns a token used by the CKBox plugin for communication with the CKBox service.\n\t */\n\tpublic getToken(): InitializedToken {\n\t\treturn this._token;\n\t}\n\n\t/**\n\t * The ID of workspace to use when uploading an image.\n\t */\n\tpublic getWorkspaceId(): string {\n\t\tconst t = this.editor.t;\n\t\tconst cannotAccessDefaultWorkspaceError = t( 'Cannot access default workspace.' );\n\t\tconst defaultWorkspaceId = this.editor.config.get( 'ckbox.defaultUploadWorkspaceId' );\n\t\tconst workspaceId = getWorkspaceId( this._token, defaultWorkspaceId );\n\n\t\tif ( workspaceId == null ) {\n\t\t\t/**\n\t\t\t * The user is not authorized to access the workspace defined in the`ckbox.defaultUploadWorkspaceId` configuration.\n\t\t\t *\n\t\t\t * @error ckbox-access-default-workspace-error\n\t\t\t */\n\t\t\tlogError( 'ckbox-access-default-workspace-error' );\n\n\t\t\tthrow cannotAccessDefaultWorkspaceError;\n\t\t}\n\n\t\treturn workspaceId;\n\t}\n\n\t/**\n\t * Resolves a promise with an object containing a category with which the uploaded file is associated or an error code.\n\t */\n\tpublic async getCategoryIdForFile( fileOrUrl: File | string, options: { signal: AbortSignal } ): Promise<string> {\n\t\tconst t = this.editor.t;\n\t\tconst cannotFindCategoryError = t( 'Cannot determine a category for the uploaded file.' );\n\n\t\tconst defaultCategories = this.editor.config.get( 'ckbox.defaultUploadCategories' );\n\n\t\tconst allCategoriesPromise = this._getAvailableCategories( options );\n\n\t\tconst extension = typeof fileOrUrl == 'string' ?\n\t\t\tconvertMimeTypeToExtension( await getContentTypeOfUrl( fileOrUrl, options ) ) :\n\t\t\tgetFileExtension( fileOrUrl );\n\n\t\tconst allCategories = await allCategoriesPromise;\n\n\t\t// Couldn't fetch all categories. Perhaps the authorization token is invalid.\n\t\tif ( !allCategories ) {\n\t\t\tthrow cannotFindCategoryError;\n\t\t}\n\n\t\t// If a user specifies the plugin configuration, find the first category that accepts the uploaded file.\n\t\tif ( defaultCategories ) {\n\t\t\tconst userCategory = Object.keys( defaultCategories ).find( category => {\n\t\t\t\treturn defaultCategories[ category ].find( e => e.toLowerCase() == extension );\n\t\t\t} );\n\n\t\t\t// If found, return its ID if the category exists on the server side.\n\t\t\tif ( userCategory ) {\n\t\t\t\tconst serverCategory = allCategories.find( category => category.id === userCategory || category.name === userCategory );\n\n\t\t\t\tif ( !serverCategory ) {\n\t\t\t\t\tthrow cannotFindCategoryError;\n\t\t\t\t}\n\n\t\t\t\treturn serverCategory.id;\n\t\t\t}\n\t\t}\n\n\t\t// Otherwise, find the first category that accepts the uploaded file and returns its ID.\n\t\tconst category = allCategories.find( category => category.extensions.find( e => e.toLowerCase() == extension ) );\n\n\t\tif ( !category ) {\n\t\t\tthrow cannotFindCategoryError;\n\t\t}\n\n\t\treturn category.id;\n\t}\n\n\t/**\n\t * Resolves a promise with an array containing available categories with which the uploaded file can be associated.\n\t *\n\t * If the API returns limited results, the method will collect all items.\n\t */\n\tprivate async _getAvailableCategories( options: { signal: AbortSignal } ): Promise<Array<AvailableCategory> | undefined> {\n\t\tconst ITEMS_PER_REQUEST = 50;\n\n\t\tconst editor = this.editor;\n\t\tconst token = this._token;\n\t\tconst { signal } = options;\n\t\tconst serviceOrigin = editor.config.get( 'ckbox.serviceOrigin' )!;\n\t\tconst workspaceId = this.getWorkspaceId();\n\n\t\ttry {\n\t\t\tconst result: Array<AvailableCategory> = [];\n\n\t\t\tlet offset = 0;\n\t\t\tlet remainingItems: number;\n\n\t\t\tdo {\n\t\t\t\tconst data = await fetchCategories( offset );\n\n\t\t\t\tresult.push( ...data.items );\n\t\t\t\tremainingItems = data.totalCount - ( offset + ITEMS_PER_REQUEST );\n\t\t\t\toffset += ITEMS_PER_REQUEST;\n\t\t\t} while ( remainingItems > 0 );\n\n\t\t\treturn result;\n\t\t} catch {\n\t\t\tsignal.throwIfAborted();\n\n\t\t\t/**\n\t\t\t * Fetching a list of available categories with which an uploaded file can be associated failed.\n\t\t\t *\n\t\t\t * @error ckbox-fetch-category-http-error\n\t\t\t */\n\t\t\tlogError( 'ckbox-fetch-category-http-error' );\n\n\t\t\treturn undefined;\n\t\t}\n\n\t\tfunction fetchCategories( offset: number ): Promise<{ totalCount: number; items: Array<AvailableCategory> }> {\n\t\t\tconst categoryUrl = new URL( 'categories', serviceOrigin );\n\n\t\t\tcategoryUrl.searchParams.set( 'limit', ITEMS_PER_REQUEST.toString() );\n\t\t\tcategoryUrl.searchParams.set( 'offset', offset.toString() );\n\t\t\tcategoryUrl.searchParams.set( 'workspaceId', workspaceId );\n\n\t\t\treturn sendHttpRequest( {\n\t\t\t\turl: categoryUrl,\n\t\t\t\tsignal,\n\t\t\t\tauthorization: token.value\n\t\t\t} );\n\t\t}\n\t}\n}\n\ninterface AvailableCategory {\n\tid: string;\n\tname: string;\n\textensions: Array<string>;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals AbortController, FormData, URL, window */\n\n/**\n * @module ckbox/ckboxuploadadapter\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport {\n\tFileRepository,\n\ttype FileLoader,\n\ttype UploadAdapter,\n\ttype UploadResponse\n} from 'ckeditor5/src/upload.js';\n\nimport type { InitializedToken } from '@ckeditor/ckeditor5-cloud-services';\nimport type { ImageUploadCompleteEvent, ImageUploadEditing } from '@ckeditor/ckeditor5-image';\n\nimport CKBoxEditing from './ckboxediting.js';\nimport {\n\tgetImageUrls,\n\tsendHttpRequest\n} from './utils.js';\nimport CKBoxUtils from './ckboxutils.js';\n\n/**\n * A plugin that enables file uploads in CKEditor 5 using the CKBox server–side connector.\n * See the {@glink features/file-management/ckbox CKBox file manager integration} guide to learn how to configure\n * and use this feature as well as find out more about the full integration with the file manager\n * provided by the {@link module:ckbox/ckbox~CKBox} plugin.\n *\n * Check out the {@glink features/images/image-upload/image-upload Image upload overview} guide to learn about\n * other ways to upload images into CKEditor 5.\n */\nexport default class CKBoxUploadAdapter extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ 'ImageUploadEditing', 'ImageUploadProgress', FileRepository, CKBoxEditing ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxUploadAdapter' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic async afterInit(): Promise<void> {\n\t\tconst editor = this.editor;\n\n\t\tconst hasConfiguration = !!editor.config.get( 'ckbox' );\n\t\tconst isLibraryLoaded = !!window.CKBox;\n\n\t\t// Editor supports only one upload adapter. Register the CKBox upload adapter (and potentially overwrite other one) only when the\n\t\t// integrator intentionally wants to use the CKBox plugin, i.e. when the `config.ckbox` exists or the CKBox JavaScript library is\n\t\t// loaded.\n\t\tif ( !hasConfiguration && !isLibraryLoaded ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst fileRepository = editor.plugins.get( FileRepository );\n\t\tconst ckboxUtils = editor.plugins.get( CKBoxUtils );\n\n\t\tfileRepository.createUploadAdapter = loader => new Adapter( loader, editor, ckboxUtils );\n\n\t\tconst shouldInsertDataId = !editor.config.get( 'ckbox.ignoreDataId' );\n\t\tconst imageUploadEditing: ImageUploadEditing = editor.plugins.get( 'ImageUploadEditing' );\n\n\t\t// Mark uploaded assets with the `ckboxImageId` attribute. Its value represents an ID in CKBox.\n\t\tif ( shouldInsertDataId ) {\n\t\t\timageUploadEditing.on<ImageUploadCompleteEvent>( 'uploadComplete', ( evt, { imageElement, data } ) => {\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\twriter.setAttribute( 'ckboxImageId', data.ckboxImageId, imageElement );\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Upload adapter for CKBox.\n */\nclass Adapter implements UploadAdapter {\n\t/**\n\t * FileLoader instance to use during the upload.\n\t */\n\tpublic loader: FileLoader;\n\n\t/**\n\t * CKEditor Cloud Services access token.\n\t */\n\tpublic token: InitializedToken;\n\n\t/**\n\t * The editor instance.\n\t */\n\tpublic editor: Editor;\n\n\t/**\n\t * The abort controller for aborting asynchronous processes.\n\t */\n\tpublic controller: AbortController;\n\n\t/**\n\t * The base URL where all requests should be sent.\n\t */\n\tpublic serviceOrigin: string;\n\n\t/**\n\t * The reference to CKBoxUtils plugin.\n\t */\n\tpublic ckboxUtils: CKBoxUtils;\n\n\t/**\n\t * Creates a new adapter instance.\n\t */\n\tconstructor( loader: FileLoader, editor: Editor, ckboxUtils: CKBoxUtils ) {\n\t\tthis.loader = loader;\n\t\tthis.token = ckboxUtils.getToken();\n\t\tthis.ckboxUtils = ckboxUtils;\n\t\tthis.editor = editor;\n\t\tthis.controller = new AbortController();\n\n\t\tthis.serviceOrigin = editor.config.get( 'ckbox.serviceOrigin' )!;\n\t}\n\n\t/**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */\n\tpublic async upload(): Promise<UploadResponse> {\n\t\tconst ckboxUtils = this.ckboxUtils;\n\n\t\tconst t = this.editor.t;\n\t\tconst file = ( await this.loader.file )!;\n\t\tconst category = await ckboxUtils.getCategoryIdForFile( file, { signal: this.controller.signal } );\n\n\t\tconst uploadUrl = new URL( 'assets', this.serviceOrigin );\n\t\tconst formData = new FormData();\n\n\t\tuploadUrl.searchParams.set( 'workspaceId', ckboxUtils.getWorkspaceId() );\n\n\t\tformData.append( 'categoryId', category );\n\t\tformData.append( 'file', file );\n\n\t\tconst requestConfig = {\n\t\t\tmethod: 'POST',\n\t\t\turl: uploadUrl,\n\t\t\tdata: formData,\n\t\t\tonUploadProgress: ( evt: ProgressEvent ) => {\n\t\t\t\t/* istanbul ignore else -- @preserve */\n\t\t\t\tif ( evt.lengthComputable ) {\n\t\t\t\t\tthis.loader.uploadTotal = evt.total;\n\t\t\t\t\tthis.loader.uploaded = evt.loaded;\n\t\t\t\t}\n\t\t\t},\n\t\t\tsignal: this.controller.signal,\n\t\t\tauthorization: this.token.value\n\t\t} as const;\n\n\t\treturn sendHttpRequest( requestConfig )\n\t\t\t.then( async data => {\n\t\t\t\tconst imageUrls = getImageUrls( data.imageUrls );\n\n\t\t\t\treturn {\n\t\t\t\t\tckboxImageId: data.id,\n\t\t\t\t\tdefault: imageUrls.imageFallbackUrl,\n\t\t\t\t\tsources: imageUrls.imageSources\n\t\t\t\t};\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\tconst genericError = t( 'Cannot upload file:' ) + ` ${ file.name }.`;\n\n\t\t\t\treturn Promise.reject( genericError );\n\t\t\t} );\n\t}\n\n\t/**\n\t * Aborts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#abort\n\t */\n\tpublic abort(): void {\n\t\tthis.controller.abort();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals window */\n\n/**\n * @module ckbox/ckboxediting\n */\n\nimport type { InitializedToken } from '@ckeditor/ckeditor5-cloud-services';\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport {\n\tRange,\n\ttype DocumentSelection,\n\ttype DowncastAttributeEvent,\n\ttype DowncastWriter,\n\ttype Element,\n\ttype Item,\n\ttype Node,\n\ttype UpcastElementEvent,\n\ttype ViewElement,\n\ttype Writer\n} from 'ckeditor5/src/engine.js';\nimport { logError, type DecoratedMethodEvent } from 'ckeditor5/src/utils.js';\n\nimport type { CKBoxAssetDefinition } from './ckboxconfig.js';\n\nimport CKBoxCommand from './ckboxcommand.js';\nimport CKBoxUploadAdapter from './ckboxuploadadapter.js';\nimport CKBoxUtils from './ckboxutils.js';\n\nimport type { ReplaceImageSourceCommand } from '@ckeditor/ckeditor5-image';\n\n/**\n * The CKBox editing feature. It introduces the {@link module:ckbox/ckboxcommand~CKBoxCommand CKBox command} and\n * {@link module:ckbox/ckboxuploadadapter~CKBoxUploadAdapter CKBox upload adapter}.\n */\nexport default class CKBoxEditing extends Plugin {\n\t/**\n\t * CKEditor Cloud Services access token.\n\t */\n\tprivate _token!: InitializedToken;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ 'LinkEditing', 'PictureEditing', CKBoxUploadAdapter, CKBoxUtils ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\tif ( !this._shouldBeInitialised() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._checkImagePlugins();\n\n\t\t// Registering the `ckbox` command makes sense only if the CKBox library is loaded, as the `ckbox` command opens the CKBox dialog.\n\t\tif ( isLibraryLoaded() ) {\n\t\t\teditor.commands.add( 'ckbox', new CKBoxCommand( editor ) );\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\n\t\tif ( !this._shouldBeInitialised() ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Extending the schema, registering converters and applying fixers only make sense if the configuration option to assign\n\t\t// the assets ID with the model elements is enabled.\n\t\tif ( !editor.config.get( 'ckbox.ignoreDataId' ) ) {\n\t\t\tthis._initSchema();\n\t\t\tthis._initConversion();\n\t\t\tthis._initFixers();\n\t\t}\n\t}\n\n\t/**\n\t * Returns true only when the integrator intentionally wants to use the plugin, i.e. when the `config.ckbox` exists or\n\t * the CKBox JavaScript library is loaded.\n\t */\n\tprivate _shouldBeInitialised(): boolean {\n\t\tconst editor = this.editor;\n\t\tconst hasConfiguration = !!editor.config.get( 'ckbox' );\n\n\t\treturn hasConfiguration || isLibraryLoaded();\n\t}\n\n\t/**\n\t * Checks if at least one image plugin is loaded.\n\t */\n\tprivate _checkImagePlugins() {\n\t\tconst editor = this.editor;\n\n\t\tif ( !editor.plugins.has( 'ImageBlockEditing' ) && !editor.plugins.has( 'ImageInlineEditing' ) ) {\n\t\t\t/**\n\t\t\t * The CKBox feature requires one of the following plugins to be loaded to work correctly:\n\t\t\t *\n\t\t\t * * {@link module:image/imageblock~ImageBlock},\n\t\t\t * * {@link module:image/imageinline~ImageInline},\n\t\t\t * * {@link module:image/image~Image} (loads both `ImageBlock` and `ImageInline`)\n\t\t\t *\n\t\t\t * Please make sure your editor configuration is correct.\n\t\t\t *\n\t\t\t * @error ckbox-plugin-image-feature-missing\n\t\t\t * @param {module:core/editor/editor~Editor} editor\n\t\t\t */\n\t\t\tlogError( 'ckbox-plugin-image-feature-missing', editor );\n\t\t}\n\t}\n\n\t/**\n\t * Extends the schema to allow the `ckboxImageId` and `ckboxLinkId` attributes for links and images.\n\t */\n\tprivate _initSchema() {\n\t\tconst editor = this.editor;\n\t\tconst schema = editor.model.schema;\n\n\t\tschema.extend( '$text', { allowAttributes: 'ckboxLinkId' } );\n\n\t\tif ( schema.isRegistered( 'imageBlock' ) ) {\n\t\t\tschema.extend( 'imageBlock', { allowAttributes: [ 'ckboxImageId', 'ckboxLinkId' ] } );\n\t\t}\n\n\t\tif ( schema.isRegistered( 'imageInline' ) ) {\n\t\t\tschema.extend( 'imageInline', { allowAttributes: [ 'ckboxImageId', 'ckboxLinkId' ] } );\n\t\t}\n\n\t\tschema.addAttributeCheck( ( context, attributeName ) => {\n\t\t\tconst isLink = !!context.last.getAttribute( 'linkHref' );\n\n\t\t\tif ( !isLink && attributeName === 'ckboxLinkId' ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Configures the upcast and downcast conversions for the `ckboxImageId` and `ckboxLinkId` attributes.\n\t */\n\tprivate _initConversion() {\n\t\tconst editor = this.editor;\n\n\t\t// Convert `ckboxLinkId` => `data-ckbox-resource-id`.\n\t\teditor.conversion.for( 'downcast' ).add( dispatcher => {\n\t\t\t// Due to custom converters for linked block images, handle the `ckboxLinkId` attribute manually.\n\t\t\tdispatcher.on<DowncastAttributeEvent<Element>>( 'attribute:ckboxLinkId:imageBlock', ( evt, data, conversionApi ) => {\n\t\t\t\tconst { writer, mapper, consumable } = conversionApi;\n\n\t\t\t\tif ( !consumable.consume( data.item, evt.name ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst viewFigure = mapper.toViewElement( data.item );\n\t\t\t\tconst linkInImage = [ ...viewFigure!.getChildren() ]\n\t\t\t\t\t.find( ( child: any ) => child.name === 'a' ) as ViewElement | undefined;\n\n\t\t\t\t// No link inside an image - no conversion needed.\n\t\t\t\tif ( !linkInImage ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( data.item.hasAttribute( 'ckboxLinkId' ) ) {\n\t\t\t\t\twriter.setAttribute( 'data-ckbox-resource-id', data.item.getAttribute( 'ckboxLinkId' ), linkInImage );\n\t\t\t\t} else {\n\t\t\t\t\twriter.removeAttribute( 'data-ckbox-resource-id', linkInImage );\n\t\t\t\t}\n\t\t\t}, { priority: 'low' } );\n\n\t\t\tdispatcher.on<DowncastAttributeEvent>( 'attribute:ckboxLinkId', ( evt, data, conversionApi ) => {\n\t\t\t\tconst { writer, mapper, consumable } = conversionApi;\n\n\t\t\t\tif ( !consumable.consume( data.item, evt.name ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Remove the previous attribute value if it was applied.\n\t\t\t\tif ( data.attributeOldValue ) {\n\t\t\t\t\tconst viewElement = createLinkElement( writer, data.attributeOldValue as string );\n\n\t\t\t\t\twriter.unwrap( mapper.toViewRange( data.range ), viewElement );\n\t\t\t\t}\n\n\t\t\t\t// Add the new attribute value if specified in a model element.\n\t\t\t\tif ( data.attributeNewValue ) {\n\t\t\t\t\tconst viewElement = createLinkElement( writer, data.attributeNewValue as string );\n\n\t\t\t\t\tif ( data.item.is( 'selection' ) ) {\n\t\t\t\t\t\tconst viewSelection = writer.document.selection;\n\n\t\t\t\t\t\twriter.wrap( viewSelection.getFirstRange()!, viewElement );\n\t\t\t\t\t} else {\n\t\t\t\t\t\twriter.wrap( mapper.toViewRange( data.range ), viewElement );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, { priority: 'low' } );\n\t\t} );\n\n\t\t// Convert `data-ckbox-resource-id` => `ckboxLinkId`.\n\t\t//\n\t\t// The helper conversion does not handle all cases, so take care of the `data-ckbox-resource-id` attribute manually for images\n\t\t// and links.\n\t\teditor.conversion.for( 'upcast' ).add( dispatcher => {\n\t\t\tdispatcher.on<UpcastElementEvent>( 'element:a', ( evt, data, conversionApi ) => {\n\t\t\t\tconst { writer, consumable } = conversionApi;\n\n\t\t\t\t// Upcast the `data-ckbox-resource-id` attribute only for valid link elements.\n\t\t\t\tif ( !data.viewItem.getAttribute( 'href' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst consumableAttributes = { attributes: [ 'data-ckbox-resource-id' ] };\n\n\t\t\t\tif ( !consumable.consume( data.viewItem, consumableAttributes ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst attributeValue = data.viewItem.getAttribute( 'data-ckbox-resource-id' );\n\n\t\t\t\t// Missing the `data-ckbox-resource-id` attribute.\n\t\t\t\tif ( !attributeValue ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( data.modelRange ) {\n\t\t\t\t\t// If the `<a>` element contains more than single children (e.g. a linked image), set the `ckboxLinkId` for each\n\t\t\t\t\t// allowed child.\n\t\t\t\t\tfor ( let item of data.modelRange.getItems() ) {\n\t\t\t\t\t\tif ( item.is( '$textProxy' ) ) {\n\t\t\t\t\t\t\titem = item.textNode;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Do not copy the `ckboxLinkId` attribute when wrapping an element in a block element, e.g. when\n\t\t\t\t\t\t// auto-paragraphing.\n\t\t\t\t\t\tif ( shouldUpcastAttributeForNode( item ) ) {\n\t\t\t\t\t\t\twriter.setAttribute( 'ckboxLinkId', attributeValue, item );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Otherwise, just set the `ckboxLinkId` for the model element.\n\t\t\t\t\tconst modelElement = data.modelCursor.nodeBefore || data.modelCursor.parent;\n\n\t\t\t\t\twriter.setAttribute( 'ckboxLinkId', attributeValue, modelElement as Element );\n\t\t\t\t}\n\t\t\t}, { priority: 'low' } );\n\t\t} );\n\n\t\t// Convert `ckboxImageId` => `data-ckbox-resource-id`.\n\t\teditor.conversion.for( 'downcast' ).attributeToAttribute( {\n\t\t\tmodel: 'ckboxImageId',\n\t\t\tview: 'data-ckbox-resource-id'\n\t\t} );\n\n\t\t// Convert `data-ckbox-resource-id` => `ckboxImageId`.\n\t\teditor.conversion.for( 'upcast' ).elementToAttribute( {\n\t\t\tmodel: {\n\t\t\t\tkey: 'ckboxImageId',\n\t\t\t\tvalue: ( viewElement: ViewElement ) => viewElement.getAttribute( 'data-ckbox-resource-id' )\n\t\t\t},\n\t\t\tview: {\n\t\t\t\tattributes: {\n\t\t\t\t\t'data-ckbox-resource-id': /[\\s\\S]+/\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tconst replaceImageSourceCommand = editor.commands.get( 'replaceImageSource' );\n\n\t\tif ( replaceImageSourceCommand ) {\n\t\t\tthis.listenTo<DecoratedMethodEvent<ReplaceImageSourceCommand, 'cleanupImage'>>(\n\t\t\t\treplaceImageSourceCommand,\n\t\t\t\t'cleanupImage',\n\t\t\t\t( _, [ writer, image ] ) => {\n\t\t\t\t\twriter.removeAttribute( 'ckboxImageId', image );\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Registers post-fixers that add or remove the `ckboxLinkId` and `ckboxImageId` attributes.\n\t */\n\tprivate _initFixers() {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\n\t\t// Registers the post-fixer to sync the asset ID with the model elements.\n\t\tmodel.document.registerPostFixer( syncDataIdPostFixer( editor ) );\n\n\t\t// Registers the post-fixer to remove the `ckboxLinkId` attribute from the model selection.\n\t\tmodel.document.registerPostFixer( injectSelectionPostFixer( selection ) );\n\t}\n}\n\n/**\n * A post-fixer that synchronizes the asset ID with the model element.\n */\nfunction syncDataIdPostFixer( editor: Editor ) {\n\treturn ( writer: Writer ) => {\n\t\tlet changed = false;\n\n\t\tconst model = editor.model;\n\t\tconst ckboxCommand: CKBoxCommand = editor.commands.get( 'ckbox' )!;\n\n\t\t// The ID from chosen assets are stored in the `CKBoxCommand#_chosenAssets`. If there is no command, it makes no sense to check\n\t\t// for changes in the model.\n\t\tif ( !ckboxCommand ) {\n\t\t\treturn changed;\n\t\t}\n\n\t\tfor ( const entry of model.document.differ.getChanges() ) {\n\t\t\tif ( entry.type !== 'insert' && entry.type !== 'attribute' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst range = entry.type === 'insert' ?\n\t\t\t\tnew Range( entry.position, entry.position.getShiftedBy( entry.length ) ) :\n\t\t\t\tentry.range;\n\n\t\t\tconst isLinkHrefAttributeRemoval = entry.type === 'attribute' &&\n\t\t\t\tentry.attributeKey === 'linkHref' &&\n\t\t\t\tentry.attributeNewValue === null;\n\n\t\t\tfor ( const item of range.getItems() ) {\n\t\t\t\t// If the `linkHref` attribute has been removed, sync the change with the `ckboxLinkId` attribute.\n\t\t\t\tif ( isLinkHrefAttributeRemoval && item.hasAttribute( 'ckboxLinkId' ) ) {\n\t\t\t\t\twriter.removeAttribute( 'ckboxLinkId', item );\n\n\t\t\t\t\tchanged = true;\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Otherwise, the change concerns either a new model element or an attribute change. Try to find the assets for the modified\n\t\t\t\t// model element.\n\t\t\t\tconst assets = findAssetsForItem( item, ckboxCommand._chosenAssets );\n\n\t\t\t\tfor ( const asset of assets ) {\n\t\t\t\t\tconst attributeName = asset.type === 'image' ? 'ckboxImageId' : 'ckboxLinkId';\n\n\t\t\t\t\tif ( asset.id === item.getAttribute( attributeName ) ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\twriter.setAttribute( attributeName, asset.id, item );\n\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn changed;\n\t};\n}\n\n/**\n * A post-fixer that removes the `ckboxLinkId` from the selection if it does not represent a link anymore.\n */\nfunction injectSelectionPostFixer( selection: DocumentSelection ) {\n\treturn ( writer: Writer ) => {\n\t\tconst shouldRemoveLinkIdAttribute = !selection.hasAttribute( 'linkHref' ) && selection.hasAttribute( 'ckboxLinkId' );\n\n\t\tif ( shouldRemoveLinkIdAttribute ) {\n\t\t\twriter.removeSelectionAttribute( 'ckboxLinkId' );\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n}\n\n/**\n * Tries to find the asset that is associated with the model element by comparing the attributes:\n * - the image fallback URL with the `src` attribute for images,\n * - the link URL with the `href` attribute for links.\n *\n * For any model element, zero, one or more than one asset can be found (e.g. a linked image may be associated with the link asset and the\n * image asset).\n */\nfunction findAssetsForItem( item: Item, assets: Set<CKBoxAssetDefinition> ) {\n\tconst isImageElement = item.is( 'element', 'imageInline' ) || item.is( 'element', 'imageBlock' );\n\tconst isLinkElement = item.hasAttribute( 'linkHref' );\n\n\treturn [ ...assets ].filter( asset => {\n\t\tif ( asset.type === 'image' && isImageElement ) {\n\t\t\treturn asset.attributes.imageFallbackUrl === item.getAttribute( 'src' );\n\t\t}\n\n\t\tif ( asset.type === 'link' && isLinkElement ) {\n\t\t\treturn asset.attributes.linkHref === item.getAttribute( 'linkHref' );\n\t\t}\n\t} );\n}\n\n/**\n * Creates view link element with the requested ID.\n */\nfunction createLinkElement( writer: DowncastWriter, id: string ) {\n\t// Priority equal 5 is needed to merge adjacent `<a>` elements together.\n\tconst viewElement = writer.createAttributeElement( 'a', { 'data-ckbox-resource-id': id }, { priority: 5 } );\n\n\twriter.setCustomProperty( 'link', true, viewElement );\n\n\treturn viewElement;\n}\n\n/**\n * Checks if the model element may have the `ckboxLinkId` attribute.\n */\nfunction shouldUpcastAttributeForNode( node: Node ) {\n\tif ( node.is( '$text' ) ) {\n\t\treturn true;\n\t}\n\n\tif ( node.is( 'element', 'imageInline' ) || node.is( 'element', 'imageBlock' ) ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Returns true if the CKBox library is loaded, false otherwise.\n */\nfunction isLibraryLoaded(): boolean {\n\treturn !!window.CKBox;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckbox\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport CKBoxUI from './ckboxui.js';\nimport CKBoxEditing from './ckboxediting.js';\n\n/**\n * The CKBox feature, a bridge between the CKEditor 5 WYSIWYG editor and the CKBox file manager and uploader.\n *\n * This is a \"glue\" plugin which enables:\n *\n * * {@link module:ckbox/ckboxediting~CKBoxEditing},\n * * {@link module:ckbox/ckboxui~CKBoxUI},\n *\n * See the {@glink features/file-management/ckbox CKBox integration} guide to learn how to configure and use this feature.\n *\n * Check out the {@glink features/images/image-upload/image-upload Image upload} guide to learn about other ways to upload\n * images into CKEditor 5.\n */\nexport default class CKBox extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBox' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ CKBoxEditing, CKBoxUI ] as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckboximageedit/utils\n */\n\nimport { global } from 'ckeditor5/src/utils.js';\n\nimport type { Element } from 'ckeditor5/src/engine.js';\nimport type { CKBoxConfig } from '../ckboxconfig.js';\n\n/**\n * @internal\n */\nexport function createEditabilityChecker(\n\tallowExternalImagesEditing: CKBoxConfig[ 'allowExternalImagesEditing' ]\n): ( element: Element ) => boolean {\n\tconst checkUrl = createUrlChecker( allowExternalImagesEditing );\n\n\treturn element => {\n\t\tconst isImageElement =\n\t\t\telement.is( 'element', 'imageInline' ) ||\n\t\t\telement.is( 'element', 'imageBlock' );\n\n\t\tif ( !isImageElement ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( element.hasAttribute( 'ckboxImageId' ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( element.hasAttribute( 'src' ) ) {\n\t\t\treturn checkUrl( element.getAttribute( 'src' ) as string );\n\t\t}\n\n\t\treturn false;\n\t};\n}\n\nfunction createUrlChecker(\n\tallowExternalImagesEditing: CKBoxConfig[ 'allowExternalImagesEditing' ]\n): ( src: string ) => boolean {\n\tif ( Array.isArray( allowExternalImagesEditing ) ) {\n\t\tconst urlMatchers = allowExternalImagesEditing.map( createUrlChecker );\n\n\t\treturn src => urlMatchers.some( matcher => matcher( src ) );\n\t}\n\n\tif ( allowExternalImagesEditing == 'origin' ) {\n\t\tconst origin = global.window.location.origin;\n\n\t\treturn src => new URL( src, global.document.baseURI ).origin == origin;\n\t}\n\n\tif ( typeof allowExternalImagesEditing == 'function' ) {\n\t\treturn allowExternalImagesEditing;\n\t}\n\n\tif ( allowExternalImagesEditing instanceof RegExp ) {\n\t\treturn src => !!(\n\t\t\tsrc.match( allowExternalImagesEditing ) ||\n\t\t\tsrc.replace( /^https?:\\/\\//, '' ).match( allowExternalImagesEditing )\n\t\t);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst shouldBeUndefned: undefined = allowExternalImagesEditing;\n\n\treturn () => false;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals document, console, AbortController, URL, window */\n\n/**\n * @module ckbox/ckboximageedit/ckboximageeditcommand\n */\n\nimport { Command, PendingActions, type Editor } from 'ckeditor5/src/core.js';\nimport { CKEditorError, abortableDebounce, createElement, retry, type AbortableFunc } from 'ckeditor5/src/utils.js';\nimport type { Element as ModelElement } from 'ckeditor5/src/engine.js';\nimport { Notification } from 'ckeditor5/src/ui.js';\nimport { isEqual } from 'lodash-es';\n\nimport { sendHttpRequest } from '../utils.js';\nimport { prepareImageAssetAttributes } from '../ckboxcommand.js';\nimport type { CKBoxRawAssetDefinition, CKBoxRawAssetDataDefinition } from '../ckboxconfig.js';\n\nimport type { ImageUtils } from '@ckeditor/ckeditor5-image';\nimport { createEditabilityChecker } from './utils.js';\nimport CKBoxUtils from '../ckboxutils.js';\n\n/**\n * The CKBox edit image command.\n *\n * Opens the CKBox dialog for editing the image.\n */\nexport default class CKBoxImageEditCommand extends Command {\n\t/**\n\t * Flag indicating whether the command is active, i.e. dialog is open.\n\t */\n\tdeclare public value: boolean;\n\n\t/**\n\t * The DOM element that acts as a mounting point for the CKBox Edit Image dialog.\n\t */\n\tprivate _wrapper: Element | null = null;\n\n\t/**\n\t * The states of image processing in progress.\n\t */\n\tprivate _processInProgress = new Set<ProcessingState>();\n\n\t/**\n\t * Determines if the element can be edited.\n\t */\n\tprivate _canEdit: ( element: ModelElement ) => boolean;\n\n\t/**\n\t * A wrapper function to prepare mount options. Ensures that at most one preparation is in-flight.\n\t */\n\tprivate _prepareOptions: AbortableFunc<[ ProcessingState ], Promise<Record<string, unknown>>>;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis.value = false;\n\n\t\tthis._canEdit = createEditabilityChecker( editor.config.get( 'ckbox.allowExternalImagesEditing' ) );\n\t\tthis._prepareOptions = abortableDebounce( ( signal, state ) => this._prepareOptionsAbortable( signal, state ) );\n\n\t\tthis._prepareListeners();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst editor = this.editor;\n\n\t\tthis.value = this._getValue();\n\n\t\tconst selectedElement = editor.model.document.selection.getSelectedElement();\n\n\t\tthis.isEnabled =\n\t\t\t!!selectedElement &&\n\t\t\tthis._canEdit( selectedElement ) &&\n\t\t\t!this._checkIfElementIsBeingProcessed( selectedElement );\n\t}\n\n\t/**\n\t * Opens the CKBox Image Editor dialog for editing the image.\n\t */\n\tpublic override execute(): void {\n\t\tif ( this._getValue() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst wrapper = createElement( document, 'div', { class: 'ck ckbox-wrapper' } );\n\n\t\tthis._wrapper = wrapper;\n\t\tthis.value = true;\n\n\t\tdocument.body.appendChild( this._wrapper );\n\n\t\tconst imageElement = this.editor.model.document.selection.getSelectedElement()!;\n\n\t\tconst processingState: ProcessingState = {\n\t\t\telement: imageElement,\n\t\t\tcontroller: new AbortController()\n\t\t};\n\n\t\tthis._prepareOptions( processingState ).then(\n\t\t\toptions => window.CKBox.mountImageEditor( wrapper, options ),\n\t\t\terror => {\n\t\t\t\tconst editor = this.editor;\n\t\t\t\tconst t = editor.t;\n\t\t\t\tconst notification = editor.plugins.get( Notification );\n\n\t\t\t\tnotification.showWarning( t( 'Failed to determine category of edited image.' ), {\n\t\t\t\t\tnamespace: 'ckbox'\n\t\t\t\t} );\n\t\t\t\tconsole.error( error );\n\t\t\t\tthis._handleImageEditorClose();\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tthis._handleImageEditorClose();\n\n\t\tthis._prepareOptions.abort();\n\n\t\tfor ( const state of this._processInProgress.values() ) {\n\t\t\tstate.controller.abort();\n\t\t}\n\n\t\tsuper.destroy();\n\t}\n\n\t/**\n\t * Indicates if the CKBox Image Editor dialog is already opened.\n\t */\n\tprivate _getValue(): boolean {\n\t\treturn this._wrapper !== null;\n\t}\n\n\t/**\n\t * Creates the options object for the CKBox Image Editor dialog.\n\t */\n\tprivate async _prepareOptionsAbortable( signal: AbortSignal, state: ProcessingState ) {\n\t\tconst editor = this.editor;\n\t\tconst ckboxConfig = editor.config.get( 'ckbox' )!;\n\t\tconst ckboxUtils = editor.plugins.get( CKBoxUtils );\n\t\tconst { element } = state;\n\n\t\tlet imageMountOptions;\n\t\tconst ckboxImageId = element.getAttribute( 'ckboxImageId' );\n\n\t\tif ( ckboxImageId ) {\n\t\t\timageMountOptions = {\n\t\t\t\tassetId: ckboxImageId\n\t\t\t};\n\t\t} else {\n\t\t\tconst imageUrl = new URL( element.getAttribute( 'src' ) as string, document.baseURI ).href;\n\t\t\tconst uploadCategoryId = await ckboxUtils.getCategoryIdForFile( imageUrl, { signal } );\n\n\t\t\timageMountOptions = {\n\t\t\t\timageUrl,\n\t\t\t\tuploadCategoryId\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\t...imageMountOptions,\n\t\t\timageEditing: {\n\t\t\t\tallowOverwrite: false\n\t\t\t},\n\t\t\ttokenUrl: ckboxConfig.tokenUrl,\n\t\t\t...( ckboxConfig.serviceOrigin && { serviceOrigin: ckboxConfig.serviceOrigin } ),\n\t\t\tonClose: () => this._handleImageEditorClose(),\n\t\t\tonSave: ( asset: CKBoxRawAssetDefinition ) => this._handleImageEditorSave( state, asset )\n\t\t};\n\t}\n\n\t/**\n\t * Initializes event lister for an event of removing an image.\n\t */\n\tprivate _prepareListeners(): void {\n\t\t// Abort editing processing when the image has been removed.\n\t\tthis.listenTo( this.editor.model.document, 'change:data', () => {\n\t\t\tconst processingStates = this._getProcessingStatesOfDeletedImages();\n\n\t\t\tprocessingStates.forEach( processingState => {\n\t\t\t\tprocessingState.controller.abort();\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Gets processing states of images that have been deleted in the mean time.\n\t */\n\tprivate _getProcessingStatesOfDeletedImages(): Array<ProcessingState> {\n\t\tconst states: Array<ProcessingState> = [];\n\n\t\tfor ( const state of this._processInProgress.values() ) {\n\t\t\tif ( state.element.root.rootName == '$graveyard' ) {\n\t\t\t\tstates.push( state );\n\t\t\t}\n\t\t}\n\n\t\treturn states;\n\t}\n\n\tprivate _checkIfElementIsBeingProcessed( selectedElement: ModelElement ) {\n\t\tfor ( const { element } of this._processInProgress ) {\n\t\t\tif ( isEqual( element, selectedElement ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Closes the CKBox Image Editor dialog.\n\t */\n\tprivate _handleImageEditorClose() {\n\t\tif ( !this._wrapper ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._wrapper.remove();\n\t\tthis._wrapper = null;\n\n\t\tthis.editor.editing.view.focus();\n\n\t\tthis.refresh();\n\t}\n\n\t/**\n\t * Save edited image. In case server respond with \"success\" replace with edited image,\n\t * otherwise show notification error.\n\t */\n\tprivate _handleImageEditorSave( state: ProcessingState, asset: CKBoxRawAssetDefinition ) {\n\t\tconst t = this.editor.locale.t;\n\t\tconst notification = this.editor.plugins.get( Notification );\n\t\tconst pendingActions = this.editor.plugins.get( PendingActions );\n\t\tconst action = pendingActions.add( t( 'Processing the edited image.' ) );\n\n\t\tthis._processInProgress.add( state );\n\t\tthis._showImageProcessingIndicator( state.element, asset );\n\t\tthis.refresh();\n\n\t\tthis._waitForAssetProcessed( asset.data.id, state.controller.signal )\n\t\t\t.then(\n\t\t\t\tasset => {\n\t\t\t\t\tthis._replaceImage( state.element, asset );\n\t\t\t\t},\n\t\t\t\terror => {\n\t\t\t\t\t// Remove processing indicator. It was added only to ViewElement.\n\t\t\t\t\tthis.editor.editing.reconvertItem( state.element );\n\n\t\t\t\t\tif ( state.controller.signal.aborted ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !error || error instanceof CKEditorError ) {\n\t\t\t\t\t\tnotification.showWarning( t( 'Server failed to process the image.' ), {\n\t\t\t\t\t\t\tnamespace: 'ckbox'\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.error( error );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t).finally( () => {\n\t\t\t\tthis._processInProgress.delete( state );\n\t\t\t\tpendingActions.remove( action );\n\t\t\t\tthis.refresh();\n\t\t\t} );\n\t}\n\n\t/**\n\t * Get asset's status on server. If server responds with \"success\" status then\n\t * image is already proceeded and ready for saving.\n\t */\n\tprivate async _getAssetStatusFromServer( id: string, signal: AbortSignal ): Promise<CKBoxRawAssetDefinition> {\n\t\tconst ckboxUtils = this.editor.plugins.get( CKBoxUtils );\n\n\t\tconst url = new URL( 'assets/' + id, this.editor.config.get( 'ckbox.serviceOrigin' )! );\n\t\tconst response: CKBoxRawAssetDataDefinition = await sendHttpRequest( {\n\t\t\turl,\n\t\t\tsignal,\n\t\t\tauthorization: ckboxUtils.getToken().value\n\t\t} );\n\t\tconst status = response.metadata!.metadataProcessingStatus;\n\n\t\tif ( !status || status == 'queued' ) {\n\t\t\t/**\n\t\t\t * Image has not been processed yet.\n\t\t\t *\n\t\t\t * @error ckbox-image-not-processed\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'ckbox-image-not-processed' );\n\t\t}\n\n\t\treturn { data: { ...response } };\n\t}\n\n\t/**\n\t * Waits for an asset to be processed.\n\t * It retries retrieving asset status from the server in case of failure.\n\t */\n\tprivate async _waitForAssetProcessed( id: string, signal: AbortSignal ): Promise<CKBoxRawAssetDefinition> {\n\t\tconst result = await retry(\n\t\t\t() => this._getAssetStatusFromServer( id, signal ),\n\t\t\t{\n\t\t\t\tsignal,\n\t\t\t\tmaxAttempts: 5\n\t\t\t}\n\t\t);\n\n\t\tif ( result.data.metadata!.metadataProcessingStatus != 'success' ) {\n\t\t\t/**\n\t\t\t * The image processing failed.\n\t\t\t *\n\t\t\t * @error ckbox-image-processing-failed\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'ckbox-image-processing-failed' );\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * Shows processing indicator while image is processing.\n\t *\n\t * @param asset Data about certain asset.\n\t */\n\tprivate _showImageProcessingIndicator( element: ModelElement, asset: CKBoxRawAssetDefinition ): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.editing.view.change( writer => {\n\t\t\tconst imageElementView = editor.editing.mapper.toViewElement( element )!;\n\t\t\tconst imageUtils: ImageUtils = this.editor.plugins.get( 'ImageUtils' );\n\t\t\tconst img = imageUtils.findViewImgElement( imageElementView )!;\n\n\t\t\twriter.removeStyle( 'aspect-ratio', img );\n\t\t\twriter.setAttribute( 'width', asset.data.metadata!.width, img );\n\t\t\twriter.setAttribute( 'height', asset.data.metadata!.height, img );\n\n\t\t\twriter.setStyle( 'width', `${ asset.data.metadata!.width }px`, img );\n\t\t\twriter.setStyle( 'height', `${ asset.data.metadata!.height }px`, img );\n\n\t\t\twriter.addClass( 'image-processing', imageElementView );\n\t\t} );\n\t}\n\n\t/**\n\t * Replace the edited image with the new one.\n\t */\n\tprivate _replaceImage( element: ModelElement, asset: CKBoxRawAssetDefinition ) {\n\t\tconst editor = this.editor;\n\n\t\tconst {\n\t\t\timageFallbackUrl,\n\t\t\timageSources,\n\t\t\timageWidth,\n\t\t\timageHeight,\n\t\t\timagePlaceholder\n\t\t} = prepareImageAssetAttributes( asset );\n\n\t\tconst previousSelectionRanges = Array.from( editor.model.document.selection.getRanges() );\n\n\t\teditor.model.change( writer => {\n\t\t\twriter.setSelection( element, 'on' );\n\n\t\t\teditor.execute( 'insertImage', {\n\t\t\t\tsource: {\n\t\t\t\t\tsrc: imageFallbackUrl,\n\t\t\t\t\tsources: imageSources,\n\t\t\t\t\twidth: imageWidth,\n\t\t\t\t\theight: imageHeight,\n\t\t\t\t\t...( imagePlaceholder ? { placeholder: imagePlaceholder } : null ),\n\t\t\t\t\t...( element.hasAttribute( 'alt' ) ? { alt: element.getAttribute( 'alt' ) } : null )\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tconst previousChildren = element.getChildren();\n\n\t\t\telement = editor.model.document.selection.getSelectedElement()!;\n\n\t\t\tfor ( const child of previousChildren ) {\n\t\t\t\twriter.append( writer.cloneElement( child as ModelElement ), element );\n\t\t\t}\n\n\t\t\twriter.setAttribute( 'ckboxImageId', asset.data.id, element );\n\n\t\t\twriter.setSelection( previousSelectionRanges );\n\t\t} );\n\t}\n}\n\ninterface ProcessingState {\n\telement: ModelElement;\n\tcontroller: AbortController;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckboximageedit/ckboximageeditediting\n */\n\nimport { PendingActions, Plugin } from 'ckeditor5/src/core.js';\nimport { Notification } from 'ckeditor5/src/ui.js';\nimport CKBoxImageEditCommand from './ckboximageeditcommand.js';\nimport CKBoxEditing from '../ckboxediting.js';\nimport CKBoxUtils from '../ckboxutils.js';\n\n/**\n * The CKBox image edit editing plugin.\n */\nexport default class CKBoxImageEditEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxImageEditEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ CKBoxEditing, CKBoxUtils, PendingActions, Notification, 'ImageUtils', 'ImageEditing' ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst { editor } = this;\n\n\t\teditor.commands.add( 'ckboxImageEdit', new CKBoxImageEditCommand( editor ) );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckboximageedit/ckboximageeditui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView } from 'ckeditor5/src/ui.js';\n\nimport ckboxImageEditIcon from '../../theme/icons/ckbox-image-edit.svg';\n\n/**\n * The UI plugin of the CKBox image edit feature.\n *\n * It registers the `'ckboxImageEdit'` UI button in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}\n * that allows you to open the CKBox dialog and edit the image.\n */\nexport default class CKBoxImageEditUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxImageEditUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( 'ckboxImageEdit', locale => {\n\t\t\tconst command = editor.commands.get( 'ckboxImageEdit' )!;\n\t\t\tconst view = new ButtonView( locale );\n\t\t\tconst t = locale.t;\n\n\t\t\tview.set( {\n\t\t\t\tlabel: t( 'Edit image' ),\n\t\t\t\ticon: ckboxImageEditIcon,\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\tview.bind( 'isOn' ).to( command, 'value', command, 'isEnabled', ( value, isEnabled ) => value && isEnabled );\n\t\t\tview.bind( 'isEnabled' ).to( command );\n\n\t\t\t// Execute the command.\n\t\t\tthis.listenTo( view, 'execute', () => {\n\t\t\t\teditor.execute( 'ckboxImageEdit' );\n\t\t\t\teditor.editing.view.focus();\n\t\t\t} );\n\n\t\t\treturn view;\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckboximageedit\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport CKBoxImageEditEditing from './ckboximageedit/ckboximageeditediting.js';\nimport CKBoxImageEditUI from './ckboximageedit/ckboximageeditui.js';\n\nimport '../theme/ckboximageedit.css';\n\n/**\n * The CKBox image edit feature.\n */\nexport default class CKBoxImageEdit extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxImageEdit' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ CKBoxImageEditEditing, CKBoxImageEditUI ] as const;\n\t}\n}\n"]}
|