@ckeditor/ckeditor5-ckbox 41.4.2 → 42.0.0-alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +6 -0
- package/build/ckbox.js +1 -1
- package/dist/index.js +419 -282
- package/dist/index.js.map +1 -1
- package/dist/types/ckboximageedit/ckboximageeditcommand.d.ts +8 -0
- package/dist/types/ckboxui.d.ts +29 -2
- package/package.json +2 -2
- package/src/ckboximageedit/ckboximageeditcommand.d.ts +8 -0
- package/src/ckboximageedit/ckboximageeditcommand.js +11 -1
- package/src/ckboxui.d.ts +29 -2
- package/src/ckboxui.js +82 -36
package/dist/index.js.map
CHANGED
@@ -1 +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":["CKBoxUI","Plugin","pluginName","afterInit","editor","commands","get","t","componentFactory","ui","add","button","_createButton","ButtonView","tooltip","MenuBarMenuListItemButtonView","plugins","has","imageInsertUI","registerIntegration","name","observable","buttonViewCreator","create","icon","icons","imageAssetManager","bind","to","isImageSelected","formViewCreator","withText","on","dropdownView","isOpen","ButtonClass","locale","view","command","set","label","browseFiles","execute","getImageUrls","imageUrls","responsiveUrls","maxWidth","key","width","parseInt","isNaN","push","imageSources","srcset","join","sizes","type","imageFallbackUrl","default","getWorkspaceId","token","defaultWorkspaceId","binaryTokenPayload","value","split","payload","JSON","parse","atob","workspaces","auth","ckbox","aud","role","includes","BLUR_RESOLUTION","blurHashToDataUrl","hash","resolutionInPx","canvas","document","createElement","setAttribute","ctx","getContext","imageData","createImageData","decoded","decode","data","putImageData","toDataURL","e","undefined","sendHttpRequest","url","method","onUploadProgress","signal","authorization","xhr","XMLHttpRequest","open","toString","setRequestHeader","responseType","abortCallback","abort","Promise","resolve","reject","throwIfAborted","addEventListener","removeEventListener","response","statusCode","message","upload","evt","send","MIME_TO_EXTENSION","convertMimeTypeToExtension","mimeType","getContentTypeOfUrl","options","fetch","cache","ok","headers","getFileExtension","file","fileName","extensionRegExp","match","groups","ext","toLowerCase","ASSET_INSERTION_WAIT_TIMEOUT","CKBoxCommand","Command","refresh","_getValue","isEnabled","_checkEnabled","fire","_wrapper","imageCommand","linkCommand","_prepareOptions","ckboxConfig","config","theme","language","tokenUrl","serviceOrigin","forceDemoLabel","dialog","onClose","assets","onChoose","_initListeners","model","shouldInsertDataId","priority","class","body","appendChild","window","CKBox","mount","remove","editing","focus","assetsToProcess","prepareAssets","isImageAllowed","isLinkAllowed","assetsCount","length","change","writer","asset","isLastAsset","isSingleAsset","_insertAsset","setTimeout","_chosenAssets","delete","listenTo","clear","selection","removeSelectionAttribute","_insertImage","_insertLink","setSelection","getLastPosition","imageTextAlternative","imageWidth","imageHeight","imagePlaceholder","attributes","source","src","sources","alt","height","placeholder","linkName","linkHref","isCollapsed","selectionAttributes","toMap","getAttributes","textNode","createText","selectionLastPosition","parentElement","parent","isEmpty","position","range","insertContent","constructor","Set","map","isImage","id","prepareImageAssetAttributes","prepareLinkAssetAttributes","filter","description","blurHash","metadata","getAssetUrl","URL","searchParams","DEFAULT_CKBOX_THEME_NAME","CKBoxUtils","requires","init","hasConfiguration","isLibraryLoaded","define","defaultUploadCategories","ignoreDataId","uiLanguage","cloudServices","cloudServicesTokenUrl","ckboxTokenUrl","CKEditorError","_token","registerTokenUrl","getToken","cannotAccessDefaultWorkspaceError","workspaceId","logError","getCategoryIdForFile","fileOrUrl","cannotFindCategoryError","defaultCategories","allCategoriesPromise","_getAvailableCategories","extension","allCategories","userCategory","Object","keys","find","category","serverCategory","extensions","ITEMS_PER_REQUEST","result","offset","remainingItems","fetchCategories","items","totalCount","categoryUrl","CKBoxUploadAdapter","FileRepository","CKBoxEditing","fileRepository","ckboxUtils","createUploadAdapter","loader","Adapter","imageUploadEditing","imageElement","ckboxImageId","controller","uploadUrl","formData","FormData","append","requestConfig","lengthComputable","uploadTotal","total","uploaded","loaded","then","catch","genericError","AbortController","_shouldBeInitialised","_checkImagePlugins","_initSchema","_initConversion","_initFixers","schema","extend","allowAttributes","isRegistered","addAttributeCheck","context","attributeName","isLink","last","getAttribute","conversion","for","dispatcher","conversionApi","mapper","consumable","consume","item","viewFigure","toViewElement","linkInImage","getChildren","child","hasAttribute","removeAttribute","attributeOldValue","viewElement","createLinkElement","unwrap","toViewRange","attributeNewValue","is","viewSelection","wrap","getFirstRange","viewItem","consumableAttributes","attributeValue","modelRange","getItems","shouldUpcastAttributeForNode","modelElement","modelCursor","nodeBefore","attributeToAttribute","elementToAttribute","replaceImageSourceCommand","_","image","registerPostFixer","syncDataIdPostFixer","injectSelectionPostFixer","changed","ckboxCommand","entry","differ","getChanges","Range","getShiftedBy","isLinkHrefAttributeRemoval","attributeKey","findAssetsForItem","shouldRemoveLinkIdAttribute","isImageElement","isLinkElement","createAttributeElement","setCustomProperty","node","createEditabilityChecker","allowExternalImagesEditing","checkUrl","createUrlChecker","element","Array","isArray","urlMatchers","some","matcher","origin","global","location","baseURI","RegExp","replace","CKBoxImageEditCommand","selectedElement","getSelectedElement","_canEdit","_checkIfElementIsBeingProcessed","wrapper","processingState","mountImageEditor","error","notification","Notification","showWarning","namespace","console","_handleImageEditorClose","destroy","state","_processInProgress","values","_prepareOptionsAbortable","imageMountOptions","assetId","imageUrl","href","uploadCategoryId","imageEditing","allowOverwrite","onSave","_handleImageEditorSave","_prepareListeners","processingStates","_getProcessingStatesOfDeletedImages","forEach","states","root","rootName","isEqual","pendingActions","PendingActions","action","_showImageProcessingIndicator","_waitForAssetProcessed","_replaceImage","reconvertItem","aborted","finally","_getAssetStatusFromServer","status","metadataProcessingStatus","retry","maxAttempts","imageElementView","imageUtils","img","findViewImgElement","removeStyle","setStyle","addClass","previousSelectionRanges","from","getRanges","previousChildren","cloneElement","abortableDebounce","CKBoxImageEditEditing","CKBoxImageEditUI","ckboxImageEditIcon","CKBoxImageEdit"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin, icons, Command, PendingActions } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ButtonView, MenuBarMenuListItemButtonView, Notification } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { Range } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { createElement, toMap, CKEditorError, logError, global, retry, abortableDebounce } 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\nclass CKBoxUI extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'CKBoxUI';\n }\n /**\n * @inheritDoc\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', ()=>{\n const button = this._createButton(ButtonView);\n button.tooltip = true;\n return button;\n });\n componentFactory.add('menuBar:ckbox', ()=>this._createButton(MenuBarMenuListItemButtonView));\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 ? t('Replace image with file manager') : 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 ? t('Replace with file manager') : t('Insert with file manager'));\n button.on('execute', ()=>{\n imageInsertUI.dropdownView.isOpen = false;\n });\n return button;\n }\n });\n }\n }\n /**\n * Creates a button for CKBox command to use either in toolbar or in menu bar.\n */ _createButton(ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const view = new ButtonClass(locale);\n const command = editor.commands.get('ckbox');\n const t = locale.t;\n view.set({\n label: t('Open file manager'),\n icon: icons.browseFiles\n });\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n view.on('execute', ()=>{\n editor.execute('ckbox');\n });\n return view;\n }\n}\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 */ function 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 {\n srcset: responsiveUrls.join(','),\n sizes: `(max-width: ${maxWidth}px) 100vw, ${maxWidth}px`,\n type: 'image/webp'\n }\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 */ function 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 || [\n payload.aud\n ];\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 */ const BLUR_RESOLUTION = 32;\n/**\n * Generates an image data URL from its `blurhash` representation.\n */ function 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 */ 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 } 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 */ function 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 */ 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 */ function 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 */ async 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 } catch {\n return '';\n }\n}\n/**\n * Returns an extension from the given value.\n */ function getFileExtension(file) {\n const fileName = file.name;\n const extensionRegExp = RegExp(\"\\\\.(?<ext>[^.]+)$\");\n const match = fileName.match(extensionRegExp);\n return match.groups.ext.toLowerCase();\n}\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;\nclass CKBoxCommand extends Command {\n /**\n * @inheritDoc\n */ refresh() {\n this.value = this._getValue();\n this.isEnabled = this._checkEnabled();\n }\n /**\n * @inheritDoc\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 */ _getValue() {\n return this._wrapper !== null;\n }\n /**\n * Checks whether the command can be enabled in the current context.\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 */ _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 */ _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 }, {\n priority: 'low'\n });\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', {\n class: 'ck ckbox-wrapper'\n });\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 */ _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 } 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 */ _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 ? {\n placeholder: imagePlaceholder\n } : 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 */ _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 * @inheritDoc\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 */ this._chosenAssets = new Set();\n /**\n * The DOM element that acts as a mounting point for the CKBox dialog.\n */ this._wrapper = null;\n this._initListeners();\n }\n}\n/**\n * Parses the chosen assets into the internal data format. Filters out chosen assets that are not allowed.\n */ function prepareAssets({ assets, isImageAllowed, isLinkAllowed }) {\n return assets.map((asset)=>isImage(asset) ? {\n id: asset.data.id,\n type: 'image',\n attributes: prepareImageAssetAttributes(asset)\n } : {\n id: asset.data.id,\n type: 'link',\n attributes: prepareLinkAssetAttributes(asset)\n }).filter((asset)=>asset.type === 'image' ? isImageAllowed : isLinkAllowed);\n}\n/**\n * Parses the assets attributes into the internal data format.\n *\n * @internal\n */ function 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 ? {\n imagePlaceholder\n } : 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 */ function 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 */ function 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 */ function getAssetUrl(asset) {\n const url = new URL(asset.data.url);\n url.searchParams.set('download', 'true');\n return url.toString();\n}\n\nconst DEFAULT_CKBOX_THEME_NAME = 'lark';\nclass CKBoxUtils extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'CKBoxUtils';\n }\n /**\n * @inheritDoc\n */ static get requires() {\n return [\n 'CloudServices'\n ];\n }\n /**\n * @inheritDoc\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 */ throw new CKEditorError('ckbox-plugin-missing-token-url', this);\n }\n if (ckboxTokenUrl == cloudServicesTokenUrl) {\n this._token = cloudServices.token;\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 */ getToken() {\n return this._token;\n }\n /**\n * The ID of workspace to use when uploading an image.\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 */ 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 */ 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' ? convertMimeTypeToExtension(await getContentTypeOfUrl(fileOrUrl, options)) : 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 */ 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 } 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 */ 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\nclass CKBoxUploadAdapter extends Plugin {\n /**\n * @inheritDoc\n */ static get requires() {\n return [\n 'ImageUploadEditing',\n 'ImageUploadProgress',\n FileRepository,\n CKBoxEditing\n ];\n }\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'CKBoxUploadAdapter';\n }\n /**\n * @inheritDoc\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 */ class Adapter {\n /**\n * Starts the upload process.\n *\n * @see module:upload/filerepository~UploadAdapter#upload\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, {\n signal: this.controller.signal\n });\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 */ 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).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 }).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 */ abort() {\n this.controller.abort();\n }\n /**\n * Creates a new adapter instance.\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\nclass CKBoxEditing extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'CKBoxEditing';\n }\n /**\n * @inheritDoc\n */ static get requires() {\n return [\n 'LinkEditing',\n 'PictureEditing',\n CKBoxUploadAdapter,\n CKBoxUtils\n ];\n }\n /**\n * @inheritDoc\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 */ 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 */ _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 */ _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 */ 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 */ _initSchema() {\n const editor = this.editor;\n const schema = editor.model.schema;\n schema.extend('$text', {\n allowAttributes: 'ckboxLinkId'\n });\n if (schema.isRegistered('imageBlock')) {\n schema.extend('imageBlock', {\n allowAttributes: [\n 'ckboxImageId',\n 'ckboxLinkId'\n ]\n });\n }\n if (schema.isRegistered('imageInline')) {\n schema.extend('imageInline', {\n allowAttributes: [\n 'ckboxImageId',\n 'ckboxLinkId'\n ]\n });\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 */ _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 = [\n ...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 } else {\n writer.removeAttribute('data-ckbox-resource-id', linkInImage);\n }\n }, {\n priority: 'low'\n });\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 } else {\n writer.wrap(mapper.toViewRange(data.range), viewElement);\n }\n }\n }, {\n priority: 'low'\n });\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 = {\n attributes: [\n 'data-ckbox-resource-id'\n ]\n };\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 } 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 }, {\n priority: 'low'\n });\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 */ _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 */ function 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' ? new Range(entry.position, entry.position.getShiftedBy(entry.length)) : entry.range;\n const isLinkHrefAttributeRemoval = entry.type === 'attribute' && entry.attributeKey === 'linkHref' && 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 */ function 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 */ function findAssetsForItem(item, assets) {\n const isImageElement = item.is('element', 'imageInline') || item.is('element', 'imageBlock');\n const isLinkElement = item.hasAttribute('linkHref');\n return [\n ...assets\n ].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 */ function createLinkElement(writer, id) {\n // Priority equal 5 is needed to merge adjacent `<a>` elements together.\n const viewElement = writer.createAttributeElement('a', {\n 'data-ckbox-resource-id': id\n }, {\n priority: 5\n });\n writer.setCustomProperty('link', true, viewElement);\n return viewElement;\n}\n/**\n * Checks if the model element may have the `ckboxLinkId` attribute.\n */ function 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 */ function isLibraryLoaded() {\n return !!window.CKBox;\n}\n\nclass CKBox extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'CKBox';\n }\n /**\n * @inheritDoc\n */ static get requires() {\n return [\n CKBoxEditing,\n CKBoxUI\n ];\n }\n}\n\n/**\n * @internal\n */ function createEditabilityChecker(allowExternalImagesEditing) {\n const checkUrl = createUrlChecker(allowExternalImagesEditing);\n return (element)=>{\n const isImageElement = element.is('element', 'imageInline') || 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) || src.replace(/^https?:\\/\\//, '').match(allowExternalImagesEditing));\n }\n return ()=>false;\n}\n\nclass CKBoxImageEditCommand extends Command {\n /**\n * @inheritDoc\n */ refresh() {\n const editor = this.editor;\n this.value = this._getValue();\n const selectedElement = editor.model.document.selection.getSelectedElement();\n this.isEnabled = !!selectedElement && this._canEdit(selectedElement) && !this._checkIfElementIsBeingProcessed(selectedElement);\n }\n /**\n * Opens the CKBox Image Editor dialog for editing the image.\n */ execute() {\n if (this._getValue()) {\n return;\n }\n const wrapper = createElement(document, 'div', {\n class: 'ck ckbox-wrapper'\n });\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 */ 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 */ _getValue() {\n return this._wrapper !== null;\n }\n /**\n * Creates the options object for the CKBox Image Editor dialog.\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 } else {\n const imageUrl = new URL(element.getAttribute('src'), document.baseURI).href;\n const uploadCategoryId = await ckboxUtils.getCategoryIdForFile(imageUrl, {\n signal\n });\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 && {\n serviceOrigin: ckboxConfig.serviceOrigin\n },\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 */ _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 */ _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 */ _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 */ _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).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 } 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 */ 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 */ throw new CKEditorError('ckbox-image-not-processed');\n }\n return {\n data: {\n ...response\n }\n };\n }\n /**\n * Waits for an asset to be processed.\n * It retries retrieving asset status from the server in case of failure.\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 */ 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 */ _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 */ _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 ? {\n placeholder: imagePlaceholder\n } : null,\n ...element.hasAttribute('alt') ? {\n alt: element.getAttribute('alt')\n } : 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 * @inheritDoc\n */ constructor(editor){\n super(editor);\n /**\n * The DOM element that acts as a mounting point for the CKBox Edit Image dialog.\n */ this._wrapper = null;\n /**\n * The states of image processing in progress.\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\nclass CKBoxImageEditEditing extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'CKBoxImageEditEditing';\n }\n /**\n * @inheritDoc\n */ static get requires() {\n return [\n CKBoxEditing,\n CKBoxUtils,\n PendingActions,\n Notification,\n 'ImageUtils',\n 'ImageEditing'\n ];\n }\n /**\n * @inheritDoc\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\nclass CKBoxImageEditUI extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'CKBoxImageEditUI';\n }\n /**\n * @inheritDoc\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\nclass CKBoxImageEdit extends Plugin {\n /**\n * @inheritDoc\n */ static get pluginName() {\n return 'CKBoxImageEdit';\n }\n /**\n * @inheritDoc\n */ static get requires() {\n return [\n CKBoxImageEditEditing,\n CKBoxImageEditUI\n ];\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, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\n\nimport type { ImageInsertUI } from '@ckeditor/ckeditor5-image';\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', () => {\n\t\t\tconst button = this._createButton( ButtonView );\n\n\t\t\tbutton.tooltip = true;\n\n\t\t\treturn button;\n\t\t} );\n\n\t\tcomponentFactory.add( 'menuBar:ckbox', () => this._createButton( MenuBarMenuListItemButtonView ) );\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\t/**\n\t * Creates a button for CKBox command to use either in toolbar or in menu bar.\n\t */\n\tprivate _createButton<T extends typeof ButtonView | typeof MenuBarMenuListItemButtonView>( ButtonClass: T ): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst view = new ButtonClass( locale ) as InstanceType<T>;\n\t\tconst command = editor.commands.get( 'ckbox' )!;\n\t\tconst t = locale.t;\n\n\t\tview.set( {\n\t\t\tlabel: t( 'Open file manager' ),\n\t\t\ticon: icons.browseFiles\n\t\t} );\n\n\t\tview.bind( 'isOn', 'isEnabled' ).to( command, 'value', 'isEnabled' );\n\n\t\tview.on( 'execute', () => {\n\t\t\teditor.execute( 'ckbox' );\n\t\t} );\n\n\t\treturn view;\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"]}
|
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":["CKBoxUI","Plugin","pluginName","editor","commands","get","ui","componentFactory","add","_createFileToolbarButton","_createFileMenuBarButton","plugins","has","registerIntegration","name","observable","buttonViewCreator","_createImageToolbarButton","formViewCreator","_createImageDropdownButton","menuBarButtonViewCreator","isOnly","_createImageMenuBarButton","_createButton","ButtonClass","locale","view","command","t","bind","to","on","execute","button","ButtonView","icon","icons","browseFiles","label","tooltip","imageInsertUI","imageAssetManager","isImageSelected","withText","dropdownView","isOpen","MenuBarMenuListItemButtonView","type","getImageUrls","imageUrls","responsiveUrls","maxWidth","key","width","parseInt","isNaN","push","imageSources","srcset","join","sizes","imageFallbackUrl","default","getWorkspaceId","token","defaultWorkspaceId","binaryTokenPayload","value","split","payload","JSON","parse","atob","workspaces","auth","ckbox","aud","role","includes","BLUR_RESOLUTION","blurHashToDataUrl","hash","resolutionInPx","canvas","document","createElement","setAttribute","ctx","getContext","imageData","createImageData","decoded","decode","data","set","putImageData","toDataURL","e","undefined","sendHttpRequest","url","method","onUploadProgress","signal","authorization","xhr","XMLHttpRequest","open","toString","setRequestHeader","responseType","abortCallback","abort","Promise","resolve","reject","throwIfAborted","addEventListener","removeEventListener","response","statusCode","message","upload","evt","send","MIME_TO_EXTENSION","convertMimeTypeToExtension","mimeType","getContentTypeOfUrl","options","fetch","cache","ok","headers","getFileExtension","file","fileName","extensionRegExp","match","groups","ext","toLowerCase","ASSET_INSERTION_WAIT_TIMEOUT","CKBoxCommand","Command","_chosenAssets","Set","_wrapper","constructor","_initListeners","_getValue","isEnabled","_checkEnabled","fire","imageCommand","linkCommand","ckboxConfig","config","theme","language","tokenUrl","serviceOrigin","forceDemoLabel","dialog","onClose","assets","onChoose","model","shouldInsertDataId","refresh","priority","class","body","appendChild","window","CKBox","mount","_prepareOptions","remove","editing","focus","assetsToProcess","prepareAssets","isImageAllowed","isLinkAllowed","assetsCount","length","change","writer","asset","isLastAsset","isSingleAsset","_insertAsset","setTimeout","delete","listenTo","clear","selection","removeSelectionAttribute","_insertImage","_insertLink","setSelection","getLastPosition","imageTextAlternative","imageWidth","imageHeight","imagePlaceholder","attributes","source","src","sources","alt","height","placeholder","linkName","linkHref","isCollapsed","selectionAttributes","toMap","getAttributes","textNode","createText","selectionLastPosition","parentElement","parent","isEmpty","position","range","insertContent","map","isImage","id","prepareImageAssetAttributes","prepareLinkAssetAttributes","filter","description","blurHash","metadata","getAssetUrl","URL","searchParams","DEFAULT_CKBOX_THEME_NAME","CKBoxUtils","requires","init","hasConfiguration","isLibraryLoaded","define","defaultUploadCategories","ignoreDataId","uiLanguage","cloudServices","cloudServicesTokenUrl","ckboxTokenUrl","CKEditorError","_token","registerTokenUrl","cannotAccessDefaultWorkspaceError","workspaceId","logError","getCategoryIdForFile","fileOrUrl","cannotFindCategoryError","defaultCategories","allCategoriesPromise","_getAvailableCategories","extension","allCategories","userCategory","Object","keys","find","category","serverCategory","extensions","ITEMS_PER_REQUEST","result","offset","remainingItems","fetchCategories","items","totalCount","categoryUrl","CKBoxUploadAdapter","FileRepository","CKBoxEditing","afterInit","fileRepository","ckboxUtils","createUploadAdapter","loader","Adapter","imageUploadEditing","imageElement","ckboxImageId","getToken","controller","AbortController","uploadUrl","formData","FormData","append","requestConfig","lengthComputable","uploadTotal","total","uploaded","loaded","then","catch","genericError","_shouldBeInitialised","_checkImagePlugins","_initSchema","_initConversion","_initFixers","schema","extend","allowAttributes","isRegistered","addAttributeCheck","context","attributeName","isLink","last","getAttribute","conversion","for","dispatcher","conversionApi","mapper","consumable","consume","item","viewFigure","toViewElement","linkInImage","getChildren","child","hasAttribute","removeAttribute","attributeOldValue","viewElement","createLinkElement","unwrap","toViewRange","attributeNewValue","is","viewSelection","wrap","getFirstRange","viewItem","consumableAttributes","attributeValue","modelRange","getItems","shouldUpcastAttributeForNode","modelElement","modelCursor","nodeBefore","attributeToAttribute","elementToAttribute","replaceImageSourceCommand","_","image","registerPostFixer","syncDataIdPostFixer","injectSelectionPostFixer","changed","ckboxCommand","entry","differ","getChanges","Range","getShiftedBy","isLinkHrefAttributeRemoval","attributeKey","findAssetsForItem","shouldRemoveLinkIdAttribute","isImageElement","isLinkElement","createAttributeElement","setCustomProperty","node","createEditabilityChecker","allowExternalImagesEditing","checkUrl","createUrlChecker","element","Array","isArray","urlMatchers","some","matcher","origin","global","location","baseURI","RegExp","replace","CKBoxImageEditCommand","_processInProgress","_updateUiDelayed","delay","update","_canEdit","abortableDebounce","state","_prepareOptionsAbortable","_prepareListeners","selectedElement","getSelectedElement","_checkIfElementIsBeingProcessed","wrapper","processingState","mountImageEditor","error","notification","Notification","showWarning","namespace","console","_handleImageEditorClose","cancel","values","destroy","imageMountOptions","assetId","imageUrl","href","uploadCategoryId","imageEditing","allowOverwrite","onSave","_handleImageEditorSave","processingStates","_getProcessingStatesOfDeletedImages","forEach","states","root","rootName","isEqual","pendingActions","PendingActions","action","_showImageProcessingIndicator","_waitForAssetProcessed","_replaceImage","reconvertItem","aborted","finally","_getAssetStatusFromServer","status","metadataProcessingStatus","retry","maxAttempts","imageElementView","imageUtils","img","findViewImgElement","removeStyle","setStyle","addClass","previousSelectionRanges","from","getRanges","previousChildren","cloneElement","CKBoxImageEditEditing","CKBoxImageEditUI","ckboxImageEditIcon","CKBoxImageEdit"],"mappings":"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CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnnB;AWvkDA,CAAA,CAAA,CAAA;AXykDA,CAAC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","file":"index.js.map","sourcesContent":["import { Plugin, icons, Command, PendingActions } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ButtonView, MenuBarMenuListItemButtonView, Notification } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { Range } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { createElement, toMap, CKEditorError, logError, global, delay, 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 * Introduces UI components for the `CKBox` plugin.\n *\n * The plugin introduces two UI components to the {@link module:ui/componentfactory~ComponentFactory UI component factory}:\n *\n * * the `'ckbox'` toolbar button,\n * * the `'menuBar:ckbox'` menu bar component, which is by default added to the `'Insert'` menu.\n *\n * It also integrates with the `insertImage` toolbar component and `menuBar:insertImage` menu component.\n */ class CKBoxUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxUI';\n }\n /**\n\t * @inheritDoc\n\t */ 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 editor.ui.componentFactory.add('ckbox', ()=>this._createFileToolbarButton());\n editor.ui.componentFactory.add('menuBar:ckbox', ()=>this._createFileMenuBarButton());\n if (editor.plugins.has('ImageInsertUI')) {\n editor.plugins.get('ImageInsertUI').registerIntegration({\n name: 'assetManager',\n observable: ()=>editor.commands.get('ckbox'),\n buttonViewCreator: ()=>this._createImageToolbarButton(),\n formViewCreator: ()=>this._createImageDropdownButton(),\n menuBarButtonViewCreator: (isOnly)=>this._createImageMenuBarButton(isOnly ? 'insertOnly' : 'insertNested')\n });\n }\n }\n /**\n\t * Creates the base for various kinds of the button component provided by this feature.\n\t */ _createButton(ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const view = new ButtonClass(locale);\n const command = editor.commands.get('ckbox');\n locale.t;\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n view.on('execute', ()=>{\n editor.execute('ckbox');\n });\n return view;\n }\n /**\n\t * Creates a simple toolbar button for files management, with an icon and a tooltip.\n\t */ _createFileToolbarButton() {\n const t = this.editor.locale.t;\n const button = this._createButton(ButtonView);\n button.icon = icons.browseFiles;\n button.label = t('Open file manager');\n button.tooltip = true;\n return button;\n }\n /**\n\t * Creates a simple toolbar button for images management, with an icon and a tooltip.\n\t */ _createImageToolbarButton() {\n const t = this.editor.locale.t;\n const imageInsertUI = this.editor.plugins.get('ImageInsertUI');\n const button = this._createButton(ButtonView);\n button.icon = icons.imageAssetManager;\n button.bind('label').to(imageInsertUI, 'isImageSelected', (isImageSelected)=>isImageSelected ? t('Replace image with file manager') : t('Insert image with file manager'));\n button.tooltip = true;\n return button;\n }\n /**\n\t * Creates a button for images management for the dropdown view, with an icon, text and no tooltip.\n\t */ _createImageDropdownButton() {\n const t = this.editor.locale.t;\n const imageInsertUI = this.editor.plugins.get('ImageInsertUI');\n const button = this._createButton(ButtonView);\n button.icon = icons.imageAssetManager;\n button.withText = true;\n button.bind('label').to(imageInsertUI, 'isImageSelected', (isImageSelected)=>isImageSelected ? t('Replace with file manager') : t('Insert with file manager'));\n button.on('execute', ()=>{\n imageInsertUI.dropdownView.isOpen = false;\n });\n return button;\n }\n /**\n\t * Creates a button for files management for the menu bar.\n\t */ _createFileMenuBarButton() {\n const t = this.editor.locale.t;\n const button = this._createButton(MenuBarMenuListItemButtonView);\n button.icon = icons.browseFiles;\n button.withText = true;\n button.label = t('File');\n return button;\n }\n /**\n\t * Creates a button for images management for the menu bar.\n\t */ _createImageMenuBarButton(type) {\n const t = this.editor.locale.t;\n const button = this._createButton(MenuBarMenuListItemButtonView);\n button.icon = icons.imageAssetManager;\n button.withText = true;\n switch(type){\n case 'insertOnly':\n button.label = t('Image');\n break;\n case 'insertNested':\n button.label = t('With file manager');\n break;\n }\n return button;\n }\n}\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 */ function 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 {\n srcset: responsiveUrls.join(','),\n sizes: `(max-width: ${maxWidth}px) 100vw, ${maxWidth}px`,\n type: 'image/webp'\n }\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 */ function 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 || [\n payload.aud\n ];\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 */ const BLUR_RESOLUTION = 32;\n/**\n * Generates an image data URL from its `blurhash` representation.\n */ function 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 */ 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 } 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 */ function 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 */ 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 */ function 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 */ async 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 } catch {\n return '';\n }\n}\n/**\n * Returns an extension from the given value.\n */ function 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// 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 */ class CKBoxCommand extends Command {\n /**\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 */ _chosenAssets = new Set();\n /**\n\t * The DOM element that acts as a mounting point for the CKBox dialog.\n\t */ _wrapper = null;\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this._initListeners();\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n this.value = this._getValue();\n this.isEnabled = this._checkEnabled();\n }\n /**\n\t * @inheritDoc\n\t */ execute() {\n this.fire('ckbox:open');\n }\n /**\n\t * Indicates if the CKBox dialog is already opened.\n\t *\n\t * @protected\n\t * @returns {Boolean}\n\t */ _getValue() {\n return this._wrapper !== null;\n }\n /**\n\t * Checks whether the command can be enabled in the current context.\n\t */ _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\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 */ _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\t * Initializes various event listeners for the `ckbox:*` events, because all functionality of the `ckbox` command is event-based.\n\t */ _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 }, {\n priority: 'low'\n });\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', {\n class: 'ck ckbox-wrapper'\n });\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\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 */ _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 } 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\t * Inserts the image by calling the `insertImage` command.\n\t *\n\t * @param asset The asset to be inserted.\n\t */ _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 ? {\n placeholder: imagePlaceholder\n } : null\n }\n });\n }\n /**\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 */ _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 */ function prepareAssets({ assets, isImageAllowed, isLinkAllowed }) {\n return assets.map((asset)=>isImage(asset) ? {\n id: asset.data.id,\n type: 'image',\n attributes: prepareImageAssetAttributes(asset)\n } : {\n id: asset.data.id,\n type: 'link',\n attributes: prepareLinkAssetAttributes(asset)\n }).filter((asset)=>asset.type === 'image' ? isImageAllowed : isLinkAllowed);\n}\n/**\n * Parses the assets attributes into the internal data format.\n *\n * @internal\n */ function 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 ? {\n imagePlaceholder\n } : 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 */ function 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 */ function 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 */ function getAssetUrl(asset) {\n const url = new URL(asset.data.url);\n url.searchParams.set('download', 'true');\n return url.toString();\n}\n\nconst DEFAULT_CKBOX_THEME_NAME = 'lark';\n/**\n * The CKBox utilities plugin.\n */ class CKBoxUtils extends Plugin {\n /**\n\t * CKEditor Cloud Services access token.\n\t */ _token;\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxUtils';\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n 'CloudServices'\n ];\n }\n /**\n\t * @inheritDoc\n\t */ 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\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 */ throw new CKEditorError('ckbox-plugin-missing-token-url', this);\n }\n if (ckboxTokenUrl == cloudServicesTokenUrl) {\n this._token = cloudServices.token;\n } else {\n this._token = await cloudServices.registerTokenUrl(ckboxTokenUrl);\n }\n }\n /**\n\t * Returns a token used by the CKBox plugin for communication with the CKBox service.\n\t */ getToken() {\n return this._token;\n }\n /**\n\t * The ID of workspace to use when uploading an image.\n\t */ 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\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 */ logError('ckbox-access-default-workspace-error');\n throw cannotAccessDefaultWorkspaceError;\n }\n return workspaceId;\n }\n /**\n\t * Resolves a promise with an object containing a category with which the uploaded file is associated or an error code.\n\t */ 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' ? convertMimeTypeToExtension(await getContentTypeOfUrl(fileOrUrl, options)) : 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\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 */ 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 } catch {\n signal.throwIfAborted();\n /**\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 */ 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 * 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 */ class CKBoxUploadAdapter extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n 'ImageUploadEditing',\n 'ImageUploadProgress',\n FileRepository,\n CKBoxEditing\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxUploadAdapter';\n }\n /**\n\t * @inheritDoc\n\t */ 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 */ class Adapter {\n /**\n\t * FileLoader instance to use during the upload.\n\t */ loader;\n /**\n\t * CKEditor Cloud Services access token.\n\t */ token;\n /**\n\t * The editor instance.\n\t */ editor;\n /**\n\t * The abort controller for aborting asynchronous processes.\n\t */ controller;\n /**\n\t * The base URL where all requests should be sent.\n\t */ serviceOrigin;\n /**\n\t * The reference to CKBoxUtils plugin.\n\t */ ckboxUtils;\n /**\n\t * Creates a new adapter instance.\n\t */ 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\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */ 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, {\n signal: this.controller.signal\n });\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 */ 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).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 }).catch(()=>{\n const genericError = t('Cannot upload file:') + ` ${file.name}.`;\n return Promise.reject(genericError);\n });\n }\n /**\n\t * Aborts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#abort\n\t */ abort() {\n this.controller.abort();\n }\n}\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 */ class CKBoxEditing extends Plugin {\n /**\n\t * CKEditor Cloud Services access token.\n\t */ _token;\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n 'LinkEditing',\n 'PictureEditing',\n CKBoxUploadAdapter,\n CKBoxUtils\n ];\n }\n /**\n\t * @inheritDoc\n\t */ 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\t * @inheritDoc\n\t */ 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\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 */ _shouldBeInitialised() {\n const editor = this.editor;\n const hasConfiguration = !!editor.config.get('ckbox');\n return hasConfiguration || isLibraryLoaded();\n }\n /**\n\t * Checks if at least one image plugin is loaded.\n\t */ _checkImagePlugins() {\n const editor = this.editor;\n if (!editor.plugins.has('ImageBlockEditing') && !editor.plugins.has('ImageInlineEditing')) {\n /**\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 */ logError('ckbox-plugin-image-feature-missing', editor);\n }\n }\n /**\n\t * Extends the schema to allow the `ckboxImageId` and `ckboxLinkId` attributes for links and images.\n\t */ _initSchema() {\n const editor = this.editor;\n const schema = editor.model.schema;\n schema.extend('$text', {\n allowAttributes: 'ckboxLinkId'\n });\n if (schema.isRegistered('imageBlock')) {\n schema.extend('imageBlock', {\n allowAttributes: [\n 'ckboxImageId',\n 'ckboxLinkId'\n ]\n });\n }\n if (schema.isRegistered('imageInline')) {\n schema.extend('imageInline', {\n allowAttributes: [\n 'ckboxImageId',\n 'ckboxLinkId'\n ]\n });\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\t * Configures the upcast and downcast conversions for the `ckboxImageId` and `ckboxLinkId` attributes.\n\t */ _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 = [\n ...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 } else {\n writer.removeAttribute('data-ckbox-resource-id', linkInImage);\n }\n }, {\n priority: 'low'\n });\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 } else {\n writer.wrap(mapper.toViewRange(data.range), viewElement);\n }\n }\n }, {\n priority: 'low'\n });\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 = {\n attributes: [\n 'data-ckbox-resource-id'\n ]\n };\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 } 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 }, {\n priority: 'low'\n });\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\t * Registers post-fixers that add or remove the `ckboxLinkId` and `ckboxImageId` attributes.\n\t */ _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 */ function 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' ? new Range(entry.position, entry.position.getShiftedBy(entry.length)) : entry.range;\n const isLinkHrefAttributeRemoval = entry.type === 'attribute' && entry.attributeKey === 'linkHref' && 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 */ function 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 */ function findAssetsForItem(item, assets) {\n const isImageElement = item.is('element', 'imageInline') || item.is('element', 'imageBlock');\n const isLinkElement = item.hasAttribute('linkHref');\n return [\n ...assets\n ].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 */ function createLinkElement(writer, id) {\n // Priority equal 5 is needed to merge adjacent `<a>` elements together.\n const viewElement = writer.createAttributeElement('a', {\n 'data-ckbox-resource-id': id\n }, {\n priority: 5\n });\n writer.setCustomProperty('link', true, viewElement);\n return viewElement;\n}\n/**\n * Checks if the model element may have the `ckboxLinkId` attribute.\n */ function 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 */ function isLibraryLoaded() {\n return !!window.CKBox;\n}\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 */ class CKBox extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBox';\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n CKBoxEditing,\n CKBoxUI\n ];\n }\n}\n\n/**\n * @internal\n */ function createEditabilityChecker(allowExternalImagesEditing) {\n const checkUrl = createUrlChecker(allowExternalImagesEditing);\n return (element)=>{\n const isImageElement = element.is('element', 'imageInline') || 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) || src.replace(/^https?:\\/\\//, '').match(allowExternalImagesEditing));\n }\n return ()=>false;\n}\n\n/**\n * The CKBox edit image command.\n *\n * Opens the CKBox dialog for editing the image.\n */ class CKBoxImageEditCommand extends Command {\n /**\n\t * The DOM element that acts as a mounting point for the CKBox Edit Image dialog.\n\t */ _wrapper = null;\n /**\n\t * The states of image processing in progress.\n\t */ _processInProgress = new Set();\n /**\n\t * Determines if the element can be edited.\n\t */ _canEdit;\n /**\n\t * A wrapper function to prepare mount options. Ensures that at most one preparation is in-flight.\n\t */ _prepareOptions;\n /**\n\t* CKBox's onClose function runs before the final cleanup, potentially causing\n\t* page layout changes after it finishes. To address this, we use a setTimeout hack\n\t* to ensure that floating elements on the page maintain their correct position.\n\t*\n\t* See: https://github.com/ckeditor/ckeditor5/issues/16153.\n\t*/ _updateUiDelayed = delay(()=>this.editor.ui.update(), 0);\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\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\t * @inheritDoc\n\t */ refresh() {\n const editor = this.editor;\n this.value = this._getValue();\n const selectedElement = editor.model.document.selection.getSelectedElement();\n this.isEnabled = !!selectedElement && this._canEdit(selectedElement) && !this._checkIfElementIsBeingProcessed(selectedElement);\n }\n /**\n\t * Opens the CKBox Image Editor dialog for editing the image.\n\t */ execute() {\n if (this._getValue()) {\n return;\n }\n const wrapper = createElement(document, 'div', {\n class: 'ck ckbox-wrapper'\n });\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\t * @inheritDoc\n\t */ destroy() {\n this._handleImageEditorClose();\n this._prepareOptions.abort();\n this._updateUiDelayed.cancel();\n for (const state of this._processInProgress.values()){\n state.controller.abort();\n }\n super.destroy();\n }\n /**\n\t * Indicates if the CKBox Image Editor dialog is already opened.\n\t */ _getValue() {\n return this._wrapper !== null;\n }\n /**\n\t * Creates the options object for the CKBox Image Editor dialog.\n\t */ 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 } else {\n const imageUrl = new URL(element.getAttribute('src'), document.baseURI).href;\n const uploadCategoryId = await ckboxUtils.getCategoryIdForFile(imageUrl, {\n signal\n });\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 && {\n serviceOrigin: ckboxConfig.serviceOrigin\n },\n onClose: ()=>this._handleImageEditorClose(),\n onSave: (asset)=>this._handleImageEditorSave(state, asset)\n };\n }\n /**\n\t * Initializes event lister for an event of removing an image.\n\t */ _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\t * Gets processing states of images that have been deleted in the mean time.\n\t */ _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\t * Closes the CKBox Image Editor dialog.\n\t */ _handleImageEditorClose() {\n if (!this._wrapper) {\n return;\n }\n this._wrapper.remove();\n this._wrapper = null;\n this.editor.editing.view.focus();\n this._updateUiDelayed();\n this.refresh();\n }\n /**\n\t * Save edited image. In case server respond with \"success\" replace with edited image,\n\t * otherwise show notification error.\n\t */ _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).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 } else {\n console.error(error);\n }\n }).finally(()=>{\n this._processInProgress.delete(state);\n pendingActions.remove(action);\n this.refresh();\n });\n }\n /**\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 */ 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\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 */ throw new CKEditorError('ckbox-image-not-processed');\n }\n return {\n data: {\n ...response\n }\n };\n }\n /**\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 */ 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\t\t\t * The image processing failed.\n\t\t\t *\n\t\t\t * @error ckbox-image-processing-failed\n\t\t\t */ throw new CKEditorError('ckbox-image-processing-failed');\n }\n return result;\n }\n /**\n\t * Shows processing indicator while image is processing.\n\t *\n\t * @param asset Data about certain asset.\n\t */ _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\t * Replace the edited image with the new one.\n\t */ _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 ? {\n placeholder: imagePlaceholder\n } : null,\n ...element.hasAttribute('alt') ? {\n alt: element.getAttribute('alt')\n } : 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 * The CKBox image edit editing plugin.\n */ class CKBoxImageEditEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxImageEditEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n CKBoxEditing,\n CKBoxUtils,\n PendingActions,\n Notification,\n 'ImageUtils',\n 'ImageEditing'\n ];\n }\n /**\n\t * @inheritDoc\n\t */ 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 * 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 */ class CKBoxImageEditUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxImageEditUI';\n }\n /**\n\t * @inheritDoc\n\t */ 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 * The CKBox image edit feature.\n */ class CKBoxImageEdit extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxImageEdit';\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n CKBoxImageEditEditing,\n CKBoxImageEditUI\n ];\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, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\n\nimport type { ImageInsertUI } from '@ckeditor/ckeditor5-image';\n\n/**\n * Introduces UI components for the `CKBox` plugin.\n *\n * The plugin introduces two UI components to the {@link module:ui/componentfactory~ComponentFactory UI component factory}:\n *\n * * the `'ckbox'` toolbar button,\n * * the `'menuBar:ckbox'` menu bar component, which is by default added to the `'Insert'` menu.\n *\n * It also integrates with the `insertImage` toolbar component and `menuBar:insertImage` menu component.\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\teditor.ui.componentFactory.add( 'ckbox', () => this._createFileToolbarButton() );\n\t\teditor.ui.componentFactory.add( 'menuBar:ckbox', () => this._createFileMenuBarButton() );\n\n\t\tif ( editor.plugins.has( 'ImageInsertUI' ) ) {\n\t\t\teditor.plugins.get( 'ImageInsertUI' ).registerIntegration( {\n\t\t\t\tname: 'assetManager',\n\t\t\t\tobservable: () => editor.commands.get( 'ckbox' )!,\n\t\t\t\tbuttonViewCreator: () => this._createImageToolbarButton(),\n\t\t\t\tformViewCreator: () => this._createImageDropdownButton(),\n\t\t\t\tmenuBarButtonViewCreator: isOnly => this._createImageMenuBarButton( isOnly ? 'insertOnly' : 'insertNested' )\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Creates the base for various kinds of the button component provided by this feature.\n\t */\n\tprivate _createButton<T extends typeof ButtonView | typeof MenuBarMenuListItemButtonView>( ButtonClass: T ): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst view = new ButtonClass( locale ) as InstanceType<T>;\n\t\tconst command = editor.commands.get( 'ckbox' )!;\n\t\tconst t = locale.t;\n\n\t\tview.bind( 'isOn', 'isEnabled' ).to( command, 'value', 'isEnabled' );\n\n\t\tview.on( 'execute', () => {\n\t\t\teditor.execute( 'ckbox' );\n\t\t} );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Creates a simple toolbar button for files management, with an icon and a tooltip.\n\t */\n\tprivate _createFileToolbarButton(): ButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst button = this._createButton( ButtonView );\n\n\t\tbutton.icon = icons.browseFiles;\n\t\tbutton.label = t( 'Open file manager' );\n\t\tbutton.tooltip = true;\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Creates a simple toolbar button for images management, with an icon and a tooltip.\n\t */\n\tprivate _createImageToolbarButton(): ButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst imageInsertUI: ImageInsertUI = this.editor.plugins.get( 'ImageInsertUI' );\n\n\t\tconst button = this._createButton( ButtonView );\n\n\t\tbutton.icon = icons.imageAssetManager;\n\t\tbutton.bind( 'label' ).to(\n\t\t\timageInsertUI,\n\t\t\t'isImageSelected',\n\t\t\tisImageSelected => isImageSelected ? t( 'Replace image with file manager' ) : t( 'Insert image with file manager' )\n\t\t);\n\t\tbutton.tooltip = true;\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Creates a button for images management for the dropdown view, with an icon, text and no tooltip.\n\t */\n\tprivate _createImageDropdownButton(): ButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst imageInsertUI: ImageInsertUI = this.editor.plugins.get( 'ImageInsertUI' );\n\n\t\tconst button = this._createButton( ButtonView );\n\n\t\tbutton.icon = icons.imageAssetManager;\n\t\tbutton.withText = true;\n\t\tbutton.bind( 'label' ).to(\n\t\t\timageInsertUI,\n\t\t\t'isImageSelected',\n\t\t\tisImageSelected => isImageSelected ? t( 'Replace with file manager' ) : t( 'Insert with file manager' )\n\t\t);\n\n\t\tbutton.on( 'execute', () => {\n\t\t\timageInsertUI.dropdownView!.isOpen = false;\n\t\t} );\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Creates a button for files management for the menu bar.\n\t */\n\tprivate _createFileMenuBarButton(): MenuBarMenuListItemButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst button = this._createButton( MenuBarMenuListItemButtonView );\n\n\t\tbutton.icon = icons.browseFiles;\n\t\tbutton.withText = true;\n\t\tbutton.label = t( 'File' );\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Creates a button for images management for the menu bar.\n\t */\n\tprivate _createImageMenuBarButton( type: 'insertOnly' | 'insertNested' ): MenuBarMenuListItemButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst button = this._createButton( MenuBarMenuListItemButtonView );\n\n\t\tbutton.icon = icons.imageAssetManager;\n\t\tbutton.withText = true;\n\n\t\tswitch ( type ) {\n\t\t\tcase 'insertOnly':\n\t\t\t\tbutton.label = t( 'Image' );\n\t\t\t\tbreak;\n\t\t\tcase 'insertNested':\n\t\t\t\tbutton.label = t( 'With file manager' );\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn button;\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 {\n\tCKEditorError,\n\tabortableDebounce,\n\tcreateElement,\n\tretry,\n\tdelay,\n\ttype AbortableFunc\n} 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* CKBox's onClose function runs before the final cleanup, potentially causing\n\t* page layout changes after it finishes. To address this, we use a setTimeout hack\n\t* to ensure that floating elements on the page maintain their correct position.\n\t*\n\t* See: https://github.com/ckeditor/ckeditor5/issues/16153.\n\t*/\n\tprivate _updateUiDelayed = delay( () => this.editor.ui.update(), 0 );\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\tthis._updateUiDelayed.cancel();\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._updateUiDelayed();\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"]}
|