@ckeditor/ckeditor5-ckbox 46.0.0-alpha.3 → 46.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js.map +1 -1
- package/package.json +10 -10
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","isOfficialPlugin","afterInit","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","bind","to","on","execute","t","button","ButtonView","icon","IconBrowseFiles","label","tooltip","imageInsertUI","IconImageAssetManager","isImageSelected","withText","dropdownView","isOpen","MenuBarMenuListItemButtonView","type","translateVariableKey","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","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","_initListeners","refresh","_getValue","isEnabled","_checkEnabled","fire","imageCommand","linkCommand","_prepareOptions","ckboxConfig","config","dialog","categories","theme","language","tokenUrl","serviceOrigin","forceDemoLabel","choosableFileExtensions","assets","onChoose","onClose","height","icons","openLastView","startupFolderId","startupCategoryId","hideMaximizeButton","componentsHideTimeout","dialogMinimizeTimeout","model","shouldInsertDataId","downloadableFilesConfig","priority","class","body","appendChild","window","CKBox","mount","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","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","isDownloadableAsset","searchParams","DEFAULT_CKBOX_THEME_NAME","CKBoxUtils","_token","requires","init","hasConfiguration","isLibraryLoaded","define","defaultUploadCategories","ignoreDataId","uiLanguage","cloudServices","cloudServicesTokenUrl","ckboxTokenUrl","CKEditorError","registerTokenUrl","then","_authorizePrivateCategoriesAccess","getToken","cannotAccessDefaultWorkspaceError","workspaceId","logError","getCategoryIdForFile","fileOrUrl","cannotFindCategoryError","defaultCategories","allCategoriesPromise","_getAvailableCategories","extension","allCategories","userCategory","Object","keys","find","category","e","serverCategory","extensions","ITEMS_PER_REQUEST","result","offset","remainingItems","fetchCategories","items","totalCount","categoryUrl","String","serviceUrl","formData","FormData","credentials","mode","CKBoxUploadAdapter","FileRepository","CKBoxEditing","fileRepository","ckboxUtils","createUploadAdapter","loader","Adapter","imageUploadEditing","imageElement","ckboxImageId","controller","AbortController","uploadUrl","append","requestConfig","lengthComputable","uploadTotal","total","uploaded","loaded","catch","genericError","COMMAND_FORCE_DISABLE_ID","_shouldBeInitialised","_checkImagePlugins","isUploadPermissionGranted","isCreateAssetAllowed","_blockImageCommands","_initSchema","_initConversion","_initFixers","uploadImageCommand","imageEditingCommand","isAccessAllowed","forceDisabled","schema","extend","allowAttributes","isRegistered","addAttributeCheck","context","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","ModelRange","getShiftedBy","isLinkHrefAttributeRemoval","attributeKey","findAssetsForItem","attributeName","shouldRemoveLinkIdAttribute","isImageElement","isLinkElement","createAttributeElement","setCustomProperty","node","origin","values","some","createEditabilityChecker","allowExternalImagesEditing","checkUrl","createUrlChecker","element","Array","isArray","urlMatchers","matcher","global","location","baseURI","RegExp","replace","CKBoxImageEditCommand","_processInProgress","_canEdit","_updateUiDelayed","delay","update","abortableDebounce","state","_prepareOptionsAbortable","_prepareListeners","selectedElement","getSelectedElement","_checkIfElementIsBeingProcessed","wrapper","processingState","mountImageEditor","error","notification","Notification","showWarning","namespace","console","_handleImageEditorClose","destroy","cancel","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","imageType","previousChildren","cloneElement","CKBoxImageEditEditing","CKBoxImageEditUI","IconCkboxImageEdit","CKBoxImageEdit"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin, Command, PendingActions } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ButtonView, MenuBarMenuListItemButtonView, Notification } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { IconBrowseFiles, IconImageAssetManager, IconCkboxImageEdit } from '@ckeditor/ckeditor5-icons/dist/index.js';\nimport { ModelRange } 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 'es-toolkit/compat';\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 */ static get isOfficialPlugin() {\n return true;\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 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 = IconBrowseFiles;\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 = IconImageAssetManager;\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 = IconImageAssetManager;\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 = IconBrowseFiles;\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 // Use t() stored in a variable with a different name to reuse existing translations from another package.\n const translateVariableKey = this.editor.locale.t;\n const t = this.editor.locale.t;\n const button = this._createButton(MenuBarMenuListItemButtonView);\n button.icon = IconImageAssetManager;\n button.withText = true;\n switch(type){\n case 'insertOnly':\n button.label = translateVariableKey('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 *\n * @internal\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 * @internal\n */ function getWorkspaceId(token, defaultWorkspaceId) {\n const [, binaryTokenPayload] = token.value.split('.');\n const payload = JSON.parse(atob(binaryTokenPayload));\n const workspaces = payload.auth?.ckbox?.workspaces || [\n payload.aud\n ];\n if (!defaultWorkspaceId) {\n return workspaces[0];\n }\n if (payload.auth?.ckbox?.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 *\n * @internal\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 {\n return undefined;\n }\n}\n/**\n * Sends the HTTP request.\n *\n * @internal\n * @param options Configuration options\n * @param options.url The URL where the request will be sent.\n * @param options.signal The AbortSignal to abort the request when needed.\n * @param options.authorization The authorization token for the request.\n * @param options.method The HTTP method (default: 'GET').\n * @param options.data Additional data to send.\n * @param options.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 *\n * @internal\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 *\n * @internal\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 *\n * @internal\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 * - assets.onChoose The callback function invoked after choosing the assets.\n\t * - dialog.onClose The callback function invoked after closing the CKBox dialog.\n\t * - dialog.width The dialog width in pixels.\n\t * - dialog.height The dialog height in pixels.\n\t * - categories.icons Allows setting custom icons for categories.\n\t * - view.openLastView Sets if the last view visited by the user will be reopened\n\t * on the next startup.\n\t * - view.startupFolderId Sets the ID of the folder that will be opened on startup.\n\t * - view.startupCategoryId Sets the ID of the category that will be opened on startup.\n\t * - view.hideMaximizeButton Sets whether to hide the ‘Maximize’ button.\n\t * - view.componentsHideTimeout Sets timeout after which upload components are hidden\n\t * after completed upload.\n\t * - view.dialogMinimizeTimeout Sets timeout after which upload dialog is minimized\n\t * after completed upload.\n\t */ _prepareOptions() {\n const editor = this.editor;\n const ckboxConfig = editor.config.get('ckbox');\n const dialog = ckboxConfig.dialog;\n const categories = ckboxConfig.categories;\n const view = ckboxConfig.view;\n const upload = ckboxConfig.upload;\n return {\n theme: ckboxConfig.theme,\n language: ckboxConfig.language,\n tokenUrl: ckboxConfig.tokenUrl,\n serviceOrigin: ckboxConfig.serviceOrigin,\n forceDemoLabel: ckboxConfig.forceDemoLabel,\n choosableFileExtensions: ckboxConfig.choosableFileExtensions,\n assets: {\n onChoose: (assets)=>this.fire('ckbox:choose', assets)\n },\n dialog: {\n onClose: ()=>this.fire('ckbox:close'),\n width: dialog && dialog.width,\n height: dialog && dialog.height\n },\n categories: categories && {\n icons: categories.icons\n },\n view: view && {\n openLastView: view.openLastView,\n startupFolderId: view.startupFolderId,\n startupCategoryId: view.startupCategoryId,\n hideMaximizeButton: view.hideMaximizeButton\n },\n upload: upload && {\n componentsHideTimeout: upload.componentsHideTimeout,\n dialogMinimizeTimeout: upload.dialogMinimizeTimeout\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 const downloadableFilesConfig = editor.config.get('ckbox.downloadableFiles');\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 downloadableFilesConfig,\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({ downloadableFilesConfig, 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, downloadableFilesConfig)\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 asset The asset to prepare the attributes for.\n * @param config The CKBox download asset configuration.\n */ function prepareLinkAssetAttributes(asset, config) {\n return {\n linkName: asset.data.name,\n linkHref: getAssetUrl(asset, config)\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 asset The asset to create the URL for.\n * @param config The CKBox download asset configuration.\n */ function getAssetUrl(asset, config) {\n const url = new URL(asset.data.url);\n if (isDownloadableAsset(asset, config)) {\n url.searchParams.set('download', 'true');\n }\n return url.toString();\n}\n/**\n * Determines if download should be enabled for given asset based on configuration.\n *\n * @param asset The asset to check.\n * @param config The CKBox download asset configuration.\n */ function isDownloadableAsset(asset, config) {\n if (typeof config === 'function') {\n return config(asset);\n }\n return true;\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 isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n 'CloudServices'\n ];\n }\n /**\n\t * @inheritDoc\n\t */ 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 = Promise.resolve(cloudServices.token);\n } else {\n this._token = cloudServices.registerTokenUrl(ckboxTokenUrl);\n }\n // Grant access to private categories after token is fetched. This is done within the same promise chain\n // to ensure all services using the token have access to private categories.\n // This step is critical as previewing images from private categories requires proper cookies.\n this._token = this._token.then(async (token)=>{\n await this._authorizePrivateCategoriesAccess(token.value);\n return token;\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 */ async 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(await 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 = await 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 async function fetchCategories(offset) {\n const categoryUrl = new URL('categories', serviceOrigin);\n categoryUrl.searchParams.set('limit', String(ITEMS_PER_REQUEST));\n categoryUrl.searchParams.set('offset', String(offset));\n categoryUrl.searchParams.set('workspaceId', workspaceId);\n return sendHttpRequest({\n url: categoryUrl,\n signal,\n authorization: (await token).value\n });\n }\n }\n /**\n\t * Authorize private categories access to the CKBox service. Request sets cookie for the current domain,\n\t * that allows user to preview images from private categories.\n\t */ async _authorizePrivateCategoriesAccess(token) {\n const serviceUrl = this.editor.config.get('ckbox.serviceOrigin');\n const formData = new FormData();\n formData.set('token', token);\n await fetch(`${serviceUrl}/categories/authorizePrivateAccess`, {\n method: 'POST',\n credentials: 'include',\n mode: 'no-cors',\n body: formData\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 */ static get isOfficialPlugin() {\n return true;\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', await 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: (await 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\nconst COMMAND_FORCE_DISABLE_ID = 'NoPermission';\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 * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\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 // Promise is not handled intentionally. Errors should be displayed in console if there are so.\n isUploadPermissionGranted(editor).then((isCreateAssetAllowed)=>{\n if (!isCreateAssetAllowed) {\n this._blockImageCommands();\n }\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 * Blocks `uploadImage` and `ckboxImageEdit` commands.\n\t */ _blockImageCommands() {\n const editor = this.editor;\n const uploadImageCommand = editor.commands.get('uploadImage');\n const imageEditingCommand = editor.commands.get('ckboxImageEdit');\n if (uploadImageCommand) {\n uploadImageCommand.isAccessAllowed = false;\n uploadImageCommand.forceDisabled(COMMAND_FORCE_DISABLE_ID);\n }\n if (imageEditingCommand) {\n imageEditingCommand.forceDisabled(COMMAND_FORCE_DISABLE_ID);\n }\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 The editor instance.\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)=>{\n // Don't allow `ckboxLinkId` on elements which do not have `linkHref` attribute.\n if (!context.last.getAttribute('linkHref')) {\n return false;\n }\n }, 'ckboxLinkId');\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 ModelRange(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 * Checks is access allowed to upload assets.\n */ async function isUploadPermissionGranted(editor) {\n const ckboxUtils = editor.plugins.get(CKBoxUtils);\n const origin = editor.config.get('ckbox.serviceOrigin');\n const url = new URL('permissions', origin);\n const { value } = await ckboxUtils.getToken();\n const response = await sendHttpRequest({\n url,\n authorization: value,\n signal: new AbortController().signal // Aborting is unnecessary.\n });\n return Object.values(response).some((category)=>category['asset:create']);\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 isOfficialPlugin() {\n return true;\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: (await 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 imageType: element.is('element', 'imageInline') ? 'imageInline' : null,\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 isOfficialPlugin() {\n return true;\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\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 */ static get isOfficialPlugin() {\n return true;\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 uploadImageCommand = editor.commands.get('uploadImage');\n const view = new ButtonView(locale);\n const t = locale.t;\n view.set({\n icon: IconCkboxImageEdit,\n tooltip: true\n });\n view.bind('label').to(uploadImageCommand, 'isAccessAllowed', (isAccessAllowed)=>isAccessAllowed ? t('Edit image') : t('You have no image editing permissions.'));\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 isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n CKBoxImageEditEditing,\n CKBoxImageEditUI\n ];\n }\n}\n\nexport { CKBox, CKBoxCommand, CKBoxEditing, CKBoxImageEdit, CKBoxImageEditCommand, CKBoxImageEditEditing, CKBoxImageEditUI, CKBoxUI, CKBoxUploadAdapter, CKBoxUtils, convertMimeTypeToExtension as _ckBoxConvertMimeTypeToExtension, blurHashToDataUrl as _ckboxBlurHashToDataUrl, createEditabilityChecker as _createCKBoxEditabilityChecker, getContentTypeOfUrl as _getCKBoxContentTypeOfUrl, getFileExtension as _getCKBoxFileExtension, getImageUrls as _getCKBoxImageUrls, getWorkspaceId as _getCKBoxWorkspaceId, prepareImageAssetAttributes as _prepareCKBoxImageAssetAttributes, sendHttpRequest as _sendCKBoxHttpRequest };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module ckbox/ckboxui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\nimport { IconBrowseFiles, IconImageAssetManager } from 'ckeditor5/src/icons.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 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 static override get isOfficialPlugin(): true {\n\t\treturn true;\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\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 = IconBrowseFiles;\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 = IconImageAssetManager;\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 = IconImageAssetManager;\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 = IconBrowseFiles;\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\t// Use t() stored in a variable with a different name to reuse existing translations from another package.\n\t\tconst translateVariableKey = this.editor.locale.t;\n\t\tconst t = this.editor.locale.t;\n\t\tconst button = this._createButton( MenuBarMenuListItemButtonView );\n\n\t\tbutton.icon = IconImageAssetManager;\n\t\tbutton.withText = true;\n\n\t\tswitch ( type ) {\n\t\t\tcase 'insertOnly':\n\t\t\t\tbutton.label = translateVariableKey( '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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\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 *\n * @internal\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 * @internal\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?.ckbox?.workspaces || [ payload.aud ];\n\n\tif ( !defaultWorkspaceId ) {\n\t\treturn workspaces[ 0 ];\n\t}\n\n\tif ( payload.auth?.ckbox?.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 *\n * @internal\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 {\n\t\treturn undefined;\n\t}\n}\n\n/**\n * Sends the HTTP request.\n *\n * @internal\n * @param options Configuration options\n * @param options.url The URL where the request will be sent.\n * @param options.signal The AbortSignal to abort the request when needed.\n * @param options.authorization The authorization token for the request.\n * @param options.method The HTTP method (default: 'GET').\n * @param options.data Additional data to send.\n * @param options.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 *\n * @internal\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 *\n * @internal\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 *\n * @internal\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module ckbox/ckboxcommand\n */\n\nimport type { ModelWriter } 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\tCKBoxConfig,\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 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 * - assets.onChoose The callback function invoked after choosing the assets.\n\t * - dialog.onClose The callback function invoked after closing the CKBox dialog.\n\t * - dialog.width The dialog width in pixels.\n\t * - dialog.height The dialog height in pixels.\n\t * - categories.icons Allows setting custom icons for categories.\n\t * - view.openLastView Sets if the last view visited by the user will be reopened\n\t * on the next startup.\n\t * - view.startupFolderId Sets the ID of the folder that will be opened on startup.\n\t * - view.startupCategoryId Sets the ID of the category that will be opened on startup.\n\t * - view.hideMaximizeButton Sets whether to hide the ‘Maximize’ button.\n\t * - view.componentsHideTimeout Sets timeout after which upload components are hidden\n\t * after completed upload.\n\t * - view.dialogMinimizeTimeout Sets timeout after which upload dialog is minimized\n\t * after completed upload.\n\t */\n\tprivate _prepareOptions() {\n\t\tconst editor = this.editor;\n\t\tconst ckboxConfig = editor.config.get( 'ckbox' )!;\n\n\t\tconst dialog = ckboxConfig.dialog;\n\t\tconst categories = ckboxConfig.categories;\n\t\tconst view = ckboxConfig.view;\n\t\tconst upload = ckboxConfig.upload;\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\tchoosableFileExtensions: ckboxConfig.choosableFileExtensions,\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\tdialog: {\n\t\t\t\tonClose: () => this.fire<CKBoxEvent<'close'>>( 'ckbox:close' ),\n\t\t\t\twidth: dialog && dialog.width,\n\t\t\t\theight: dialog && dialog.height\n\t\t\t},\n\t\t\tcategories: categories && {\n\t\t\t\ticons: categories.icons\n\t\t\t},\n\t\t\tview: view && {\n\t\t\t\topenLastView: view.openLastView,\n\t\t\t\tstartupFolderId: view.startupFolderId,\n\t\t\t\tstartupCategoryId: view.startupCategoryId,\n\t\t\t\thideMaximizeButton: view.hideMaximizeButton\n\t\t\t},\n\t\t\tupload: upload && {\n\t\t\t\tcomponentsHideTimeout: upload.componentsHideTimeout,\n\t\t\t\tdialogMinimizeTimeout: upload.dialogMinimizeTimeout\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\t\tconst downloadableFilesConfig = editor.config.get( 'ckbox.downloadableFiles' );\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\tdownloadableFilesConfig,\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: ModelWriter,\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: ModelWriter, 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{ downloadableFilesConfig, assets, isImageAllowed, isLinkAllowed }: {\n\t\tdownloadableFilesConfig: CKBoxConfig[ 'downloadableFiles' ];\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, downloadableFilesConfig )\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 asset The asset to prepare the attributes for.\n * @param config The CKBox download asset configuration.\n */\nfunction prepareLinkAssetAttributes(\n\tasset: CKBoxRawAssetDefinition,\n\tconfig: CKBoxConfig[ 'downloadableFiles' ]\n): CKBoxAssetLinkAttributesDefinition {\n\treturn {\n\t\tlinkName: asset.data.name,\n\t\tlinkHref: getAssetUrl( asset, config )\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 asset The asset to create the URL for.\n * @param config The CKBox download asset configuration.\n */\nfunction getAssetUrl( asset: CKBoxRawAssetDefinition, config: CKBoxConfig[ 'downloadableFiles' ] ) {\n\tconst url = new URL( asset.data.url );\n\n\tif ( isDownloadableAsset( asset, config ) ) {\n\t\turl.searchParams.set( 'download', 'true' );\n\t}\n\n\treturn url.toString();\n}\n\n/**\n * Determines if download should be enabled for given asset based on configuration.\n *\n * @param asset The asset to check.\n * @param config The CKBox download asset configuration.\n */\nfunction isDownloadableAsset(\n\tasset: CKBoxRawAssetDefinition,\n\tconfig: CKBoxConfig[ 'downloadableFiles' ]\n): boolean {\n\tif ( typeof config === 'function' ) {\n\t\treturn config( asset );\n\t}\n\n\treturn true;\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\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 class CKBoxUtils extends Plugin {\n\t/**\n\t * CKEditor Cloud Services access token.\n\t */\n\tprivate _token!: Promise<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 override get isOfficialPlugin(): true {\n\t\treturn true;\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 init(): 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 = Promise.resolve( cloudServices.token! );\n\t\t} else {\n\t\t\tthis._token = cloudServices.registerTokenUrl( ckboxTokenUrl );\n\t\t}\n\n\t\t// Grant access to private categories after token is fetched. This is done within the same promise chain\n\t\t// to ensure all services using the token have access to private categories.\n\t\t// This step is critical as previewing images from private categories requires proper cookies.\n\t\tthis._token = this._token.then( async token => {\n\t\t\tawait this._authorizePrivateCategoriesAccess( token.value );\n\t\t\treturn token;\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(): Promise<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 async getWorkspaceId(): Promise<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( await 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 = await 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\tasync function 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', String( ITEMS_PER_REQUEST ) );\n\t\t\tcategoryUrl.searchParams.set( 'offset', String( offset ) );\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: ( await token ).value\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Authorize private categories access to the CKBox service. Request sets cookie for the current domain,\n\t * that allows user to preview images from private categories.\n\t */\n\tprivate async _authorizePrivateCategoriesAccess( token: string ): Promise<void> {\n\t\tconst serviceUrl = this.editor.config.get( 'ckbox.serviceOrigin' )!;\n\t\tconst formData = new FormData();\n\n\t\tformData.set( 'token', token );\n\n\t\tawait fetch( `${ serviceUrl }/categories/authorizePrivateAccess`, {\n\t\t\tmethod: 'POST',\n\t\t\tcredentials: 'include',\n\t\t\tmode: 'no-cors',\n\t\t\tbody: formData\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\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 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 static override get isOfficialPlugin(): true {\n\t\treturn true;\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: Promise<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', await 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: ( await 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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module ckbox/ckboxediting\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport {\n\tModelRange,\n\ttype ModelDocumentSelection,\n\ttype DowncastAttributeEvent,\n\ttype ViewDowncastWriter,\n\ttype ModelElement,\n\ttype ModelItem,\n\ttype ModelNode,\n\ttype UpcastElementEvent,\n\ttype ViewElement,\n\ttype ModelWriter\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';\nimport { sendHttpRequest } from './utils.js';\n\nconst COMMAND_FORCE_DISABLE_ID = 'NoPermission';\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 class CKBoxEditing extends Plugin {\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 override get isOfficialPlugin(): true {\n\t\treturn true;\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\n\t\t// Promise is not handled intentionally. Errors should be displayed in console if there are so.\n\t\tisUploadPermissionGranted( editor ).then( isCreateAssetAllowed => {\n\t\t\tif ( !isCreateAssetAllowed ) {\n\t\t\t\tthis._blockImageCommands();\n\t\t\t}\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 * Blocks `uploadImage` and `ckboxImageEdit` commands.\n\t */\n\tprivate _blockImageCommands(): void {\n\t\tconst editor = this.editor;\n\t\tconst uploadImageCommand = editor.commands.get( 'uploadImage' );\n\t\tconst imageEditingCommand = editor.commands.get( 'ckboxImageEdit' );\n\n\t\tif ( uploadImageCommand ) {\n\t\t\tuploadImageCommand.isAccessAllowed = false;\n\t\t\tuploadImageCommand.forceDisabled( COMMAND_FORCE_DISABLE_ID );\n\t\t}\n\n\t\tif ( imageEditingCommand ) {\n\t\t\timageEditingCommand.forceDisabled( COMMAND_FORCE_DISABLE_ID );\n\t\t}\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 The editor instance.\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 => {\n\t\t\t// Don't allow `ckboxLinkId` on elements which do not have `linkHref` attribute.\n\t\t\tif ( !context.last.getAttribute( 'linkHref' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}, 'ckboxLinkId' );\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<ModelElement>>( '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 ModelElement );\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: ModelWriter ) => {\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 ModelRange( 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: ModelDocumentSelection ) {\n\treturn ( writer: ModelWriter ) => {\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: ModelItem, 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: ViewDowncastWriter, 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: ModelNode ) {\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/**\n * Checks is access allowed to upload assets.\n */\nasync function isUploadPermissionGranted( editor: Editor ): Promise<boolean> {\n\tconst ckboxUtils = editor.plugins.get( CKBoxUtils );\n\tconst origin = editor.config.get( 'ckbox.serviceOrigin' );\n\n\tconst url = new URL( 'permissions', origin );\n\tconst { value } = await ckboxUtils.getToken();\n\n\tconst response = ( await sendHttpRequest( {\n\t\turl,\n\t\tauthorization: value,\n\t\tsignal: ( new AbortController() ).signal // Aborting is unnecessary.\n\t} ) ) as Record<string, CategoryPermission>;\n\n\treturn Object.values( response ).some( category => category[ 'asset:create' ] );\n}\n\ntype CategoryPermission = {\n\t[ key: string ]: boolean;\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\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 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 override get isOfficialPlugin(): true {\n\t\treturn true;\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module ckbox/ckboximageedit/utils\n */\n\nimport { global } from 'ckeditor5/src/utils.js';\n\nimport type { ModelElement } 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: ModelElement ) => 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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\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 { ModelElement } from 'ckeditor5/src/engine.js';\nimport { Notification } from 'ckeditor5/src/ui.js';\nimport { isEqual } from 'es-toolkit/compat';\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 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: ( await 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\timageType: element.is( 'element', 'imageInline' ) ? 'imageInline' : null,\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\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 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 override get isOfficialPlugin(): true {\n\t\treturn true;\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module ckbox/ckboximageedit/ckboximageeditui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView } from 'ckeditor5/src/ui.js';\nimport { IconCkboxImageEdit } from 'ckeditor5/src/icons.js';\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 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 static override get isOfficialPlugin(): true {\n\t\treturn true;\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 uploadImageCommand = editor.commands.get( 'uploadImage' )!;\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\ticon: IconCkboxImageEdit,\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\tview.bind( 'label' ).to( uploadImageCommand, 'isAccessAllowed', isAccessAllowed => isAccessAllowed ?\n\t\t\t\tt( 'Edit image' ) :\n\t\t\t\tt( 'You have no image editing permissions.' )\n\t\t\t);\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\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 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 override get isOfficialPlugin(): true {\n\t\treturn true;\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","isOfficialPlugin","afterInit","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","bind","to","on","execute","t","button","ButtonView","icon","IconBrowseFiles","label","tooltip","imageInsertUI","IconImageAssetManager","isImageSelected","withText","dropdownView","isOpen","MenuBarMenuListItemButtonView","type","translateVariableKey","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","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","_initListeners","refresh","_getValue","isEnabled","_checkEnabled","fire","imageCommand","linkCommand","_prepareOptions","ckboxConfig","config","dialog","categories","theme","language","tokenUrl","serviceOrigin","forceDemoLabel","choosableFileExtensions","assets","onChoose","onClose","height","icons","openLastView","startupFolderId","startupCategoryId","hideMaximizeButton","componentsHideTimeout","dialogMinimizeTimeout","model","shouldInsertDataId","downloadableFilesConfig","priority","class","body","appendChild","window","CKBox","mount","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","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","isDownloadableAsset","searchParams","DEFAULT_CKBOX_THEME_NAME","CKBoxUtils","_token","requires","init","hasConfiguration","isLibraryLoaded","define","defaultUploadCategories","ignoreDataId","uiLanguage","cloudServices","cloudServicesTokenUrl","ckboxTokenUrl","CKEditorError","registerTokenUrl","then","_authorizePrivateCategoriesAccess","getToken","cannotAccessDefaultWorkspaceError","workspaceId","logError","getCategoryIdForFile","fileOrUrl","cannotFindCategoryError","defaultCategories","allCategoriesPromise","_getAvailableCategories","extension","allCategories","userCategory","Object","keys","find","category","e","serverCategory","extensions","ITEMS_PER_REQUEST","result","offset","remainingItems","fetchCategories","items","totalCount","categoryUrl","String","serviceUrl","formData","FormData","credentials","mode","CKBoxUploadAdapter","FileRepository","CKBoxEditing","fileRepository","ckboxUtils","createUploadAdapter","loader","Adapter","imageUploadEditing","imageElement","ckboxImageId","controller","AbortController","uploadUrl","append","requestConfig","lengthComputable","uploadTotal","total","uploaded","loaded","catch","genericError","COMMAND_FORCE_DISABLE_ID","_shouldBeInitialised","_checkImagePlugins","isUploadPermissionGranted","isCreateAssetAllowed","_blockImageCommands","_initSchema","_initConversion","_initFixers","uploadImageCommand","imageEditingCommand","isAccessAllowed","forceDisabled","schema","extend","allowAttributes","isRegistered","addAttributeCheck","context","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","ModelRange","getShiftedBy","isLinkHrefAttributeRemoval","attributeKey","findAssetsForItem","attributeName","shouldRemoveLinkIdAttribute","isImageElement","isLinkElement","createAttributeElement","setCustomProperty","node","origin","values","some","createEditabilityChecker","allowExternalImagesEditing","checkUrl","createUrlChecker","element","Array","isArray","urlMatchers","matcher","global","location","baseURI","RegExp","replace","CKBoxImageEditCommand","_processInProgress","_canEdit","_updateUiDelayed","delay","update","abortableDebounce","state","_prepareOptionsAbortable","_prepareListeners","selectedElement","getSelectedElement","_checkIfElementIsBeingProcessed","wrapper","processingState","mountImageEditor","error","notification","Notification","showWarning","namespace","console","_handleImageEditorClose","destroy","cancel","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","imageType","previousChildren","cloneElement","CKBoxImageEditEditing","CKBoxImageEditUI","IconCkboxImageEdit","CKBoxImageEdit"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Plugin, Command, PendingActions } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ButtonView, MenuBarMenuListItemButtonView, Notification } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { IconBrowseFiles, IconImageAssetManager, IconCkboxImageEdit } from '@ckeditor/ckeditor5-icons/dist/index.js';\nimport { ModelRange } 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 'es-toolkit/compat';\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 */ static get isOfficialPlugin() {\n return true;\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 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 = IconBrowseFiles;\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 = IconImageAssetManager;\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 = IconImageAssetManager;\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 = IconBrowseFiles;\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 // Use t() stored in a variable with a different name to reuse existing translations from another package.\n const translateVariableKey = this.editor.locale.t;\n const t = this.editor.locale.t;\n const button = this._createButton(MenuBarMenuListItemButtonView);\n button.icon = IconImageAssetManager;\n button.withText = true;\n switch(type){\n case 'insertOnly':\n button.label = translateVariableKey('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 *\n * @internal\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 * @internal\n */ function getWorkspaceId(token, defaultWorkspaceId) {\n const [, binaryTokenPayload] = token.value.split('.');\n const payload = JSON.parse(atob(binaryTokenPayload));\n const workspaces = payload.auth?.ckbox?.workspaces || [\n payload.aud\n ];\n if (!defaultWorkspaceId) {\n return workspaces[0];\n }\n if (payload.auth?.ckbox?.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 *\n * @internal\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 {\n return undefined;\n }\n}\n/**\n * Sends the HTTP request.\n *\n * @internal\n * @param options Configuration options\n * @param options.url The URL where the request will be sent.\n * @param options.signal The AbortSignal to abort the request when needed.\n * @param options.authorization The authorization token for the request.\n * @param options.method The HTTP method (default: 'GET').\n * @param options.data Additional data to send.\n * @param options.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 *\n * @internal\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 *\n * @internal\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 *\n * @internal\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 * - assets.onChoose The callback function invoked after choosing the assets.\n\t * - dialog.onClose The callback function invoked after closing the CKBox dialog.\n\t * - dialog.width The dialog width in pixels.\n\t * - dialog.height The dialog height in pixels.\n\t * - categories.icons Allows setting custom icons for categories.\n\t * - view.openLastView Sets if the last view visited by the user will be reopened\n\t * on the next startup.\n\t * - view.startupFolderId Sets the ID of the folder that will be opened on startup.\n\t * - view.startupCategoryId Sets the ID of the category that will be opened on startup.\n\t * - view.hideMaximizeButton Sets whether to hide the ‘Maximize’ button.\n\t * - view.componentsHideTimeout Sets timeout after which upload components are hidden\n\t * after completed upload.\n\t * - view.dialogMinimizeTimeout Sets timeout after which upload dialog is minimized\n\t * after completed upload.\n\t */ _prepareOptions() {\n const editor = this.editor;\n const ckboxConfig = editor.config.get('ckbox');\n const dialog = ckboxConfig.dialog;\n const categories = ckboxConfig.categories;\n const view = ckboxConfig.view;\n const upload = ckboxConfig.upload;\n return {\n theme: ckboxConfig.theme,\n language: ckboxConfig.language,\n tokenUrl: ckboxConfig.tokenUrl,\n serviceOrigin: ckboxConfig.serviceOrigin,\n forceDemoLabel: ckboxConfig.forceDemoLabel,\n choosableFileExtensions: ckboxConfig.choosableFileExtensions,\n assets: {\n onChoose: (assets)=>this.fire('ckbox:choose', assets)\n },\n dialog: {\n onClose: ()=>this.fire('ckbox:close'),\n width: dialog && dialog.width,\n height: dialog && dialog.height\n },\n categories: categories && {\n icons: categories.icons\n },\n view: view && {\n openLastView: view.openLastView,\n startupFolderId: view.startupFolderId,\n startupCategoryId: view.startupCategoryId,\n hideMaximizeButton: view.hideMaximizeButton\n },\n upload: upload && {\n componentsHideTimeout: upload.componentsHideTimeout,\n dialogMinimizeTimeout: upload.dialogMinimizeTimeout\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 const downloadableFilesConfig = editor.config.get('ckbox.downloadableFiles');\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 downloadableFilesConfig,\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({ downloadableFilesConfig, 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, downloadableFilesConfig)\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 asset The asset to prepare the attributes for.\n * @param config The CKBox download asset configuration.\n */ function prepareLinkAssetAttributes(asset, config) {\n return {\n linkName: asset.data.name,\n linkHref: getAssetUrl(asset, config)\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 asset The asset to create the URL for.\n * @param config The CKBox download asset configuration.\n */ function getAssetUrl(asset, config) {\n const url = new URL(asset.data.url);\n if (isDownloadableAsset(asset, config)) {\n url.searchParams.set('download', 'true');\n }\n return url.toString();\n}\n/**\n * Determines if download should be enabled for given asset based on configuration.\n *\n * @param asset The asset to check.\n * @param config The CKBox download asset configuration.\n */ function isDownloadableAsset(asset, config) {\n if (typeof config === 'function') {\n return config(asset);\n }\n return true;\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 isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n 'CloudServices'\n ];\n }\n /**\n\t * @inheritDoc\n\t */ 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 = Promise.resolve(cloudServices.token);\n } else {\n this._token = cloudServices.registerTokenUrl(ckboxTokenUrl);\n }\n // Grant access to private categories after token is fetched. This is done within the same promise chain\n // to ensure all services using the token have access to private categories.\n // This step is critical as previewing images from private categories requires proper cookies.\n this._token = this._token.then(async (token)=>{\n await this._authorizePrivateCategoriesAccess(token.value);\n return token;\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 */ async 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(await 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 = await 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 async function fetchCategories(offset) {\n const categoryUrl = new URL('categories', serviceOrigin);\n categoryUrl.searchParams.set('limit', String(ITEMS_PER_REQUEST));\n categoryUrl.searchParams.set('offset', String(offset));\n categoryUrl.searchParams.set('workspaceId', workspaceId);\n return sendHttpRequest({\n url: categoryUrl,\n signal,\n authorization: (await token).value\n });\n }\n }\n /**\n\t * Authorize private categories access to the CKBox service. Request sets cookie for the current domain,\n\t * that allows user to preview images from private categories.\n\t */ async _authorizePrivateCategoriesAccess(token) {\n const serviceUrl = this.editor.config.get('ckbox.serviceOrigin');\n const formData = new FormData();\n formData.set('token', token);\n await fetch(`${serviceUrl}/categories/authorizePrivateAccess`, {\n method: 'POST',\n credentials: 'include',\n mode: 'no-cors',\n body: formData\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 */ static get isOfficialPlugin() {\n return true;\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', await 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: (await 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\nconst COMMAND_FORCE_DISABLE_ID = 'NoPermission';\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 * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\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 // Promise is not handled intentionally. Errors should be displayed in console if there are so.\n isUploadPermissionGranted(editor).then((isCreateAssetAllowed)=>{\n if (!isCreateAssetAllowed) {\n this._blockImageCommands();\n }\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 * Blocks `uploadImage` and `ckboxImageEdit` commands.\n\t */ _blockImageCommands() {\n const editor = this.editor;\n const uploadImageCommand = editor.commands.get('uploadImage');\n const imageEditingCommand = editor.commands.get('ckboxImageEdit');\n if (uploadImageCommand) {\n uploadImageCommand.isAccessAllowed = false;\n uploadImageCommand.forceDisabled(COMMAND_FORCE_DISABLE_ID);\n }\n if (imageEditingCommand) {\n imageEditingCommand.forceDisabled(COMMAND_FORCE_DISABLE_ID);\n }\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 The editor instance.\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)=>{\n // Don't allow `ckboxLinkId` on elements which do not have `linkHref` attribute.\n if (!context.last.getAttribute('linkHref')) {\n return false;\n }\n }, 'ckboxLinkId');\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 ModelRange(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 * Checks is access allowed to upload assets.\n */ async function isUploadPermissionGranted(editor) {\n const ckboxUtils = editor.plugins.get(CKBoxUtils);\n const origin = editor.config.get('ckbox.serviceOrigin');\n const url = new URL('permissions', origin);\n const { value } = await ckboxUtils.getToken();\n const response = await sendHttpRequest({\n url,\n authorization: value,\n signal: new AbortController().signal // Aborting is unnecessary.\n });\n return Object.values(response).some((category)=>category['asset:create']);\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 isOfficialPlugin() {\n return true;\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: (await 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 imageType: element.is('element', 'imageInline') ? 'imageInline' : null,\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 isOfficialPlugin() {\n return true;\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\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 */ static get isOfficialPlugin() {\n return true;\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 uploadImageCommand = editor.commands.get('uploadImage');\n const view = new ButtonView(locale);\n const t = locale.t;\n view.set({\n icon: IconCkboxImageEdit,\n tooltip: true\n });\n view.bind('label').to(uploadImageCommand, 'isAccessAllowed', (isAccessAllowed)=>isAccessAllowed ? t('Edit image') : t('You have no image editing permissions.'));\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 isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n CKBoxImageEditEditing,\n CKBoxImageEditUI\n ];\n }\n}\n\nexport { CKBox, CKBoxCommand, CKBoxEditing, CKBoxImageEdit, CKBoxImageEditCommand, CKBoxImageEditEditing, CKBoxImageEditUI, CKBoxUI, CKBoxUploadAdapter, CKBoxUtils, convertMimeTypeToExtension as _ckBoxConvertMimeTypeToExtension, blurHashToDataUrl as _ckboxBlurHashToDataUrl, createEditabilityChecker as _createCKBoxEditabilityChecker, getContentTypeOfUrl as _getCKBoxContentTypeOfUrl, getFileExtension as _getCKBoxFileExtension, getImageUrls as _getCKBoxImageUrls, getWorkspaceId as _getCKBoxWorkspaceId, prepareImageAssetAttributes as _prepareCKBoxImageAssetAttributes, sendHttpRequest as _sendCKBoxHttpRequest };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module ckbox/ckboxui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\nimport { IconBrowseFiles, IconImageAssetManager } from 'ckeditor5/src/icons.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 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 static override get isOfficialPlugin(): true {\n\t\treturn true;\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\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 = IconBrowseFiles;\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 = IconImageAssetManager;\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 = IconImageAssetManager;\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 = IconBrowseFiles;\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\t// Use t() stored in a variable with a different name to reuse existing translations from another package.\n\t\tconst translateVariableKey = this.editor.locale.t;\n\t\tconst t = this.editor.locale.t;\n\t\tconst button = this._createButton( MenuBarMenuListItemButtonView );\n\n\t\tbutton.icon = IconImageAssetManager;\n\t\tbutton.withText = true;\n\n\t\tswitch ( type ) {\n\t\t\tcase 'insertOnly':\n\t\t\t\tbutton.label = translateVariableKey( '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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\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 *\n * @internal\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 * @internal\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?.ckbox?.workspaces || [ payload.aud ];\n\n\tif ( !defaultWorkspaceId ) {\n\t\treturn workspaces[ 0 ];\n\t}\n\n\tif ( payload.auth?.ckbox?.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 *\n * @internal\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 {\n\t\treturn undefined;\n\t}\n}\n\n/**\n * Sends the HTTP request.\n *\n * @internal\n * @param options Configuration options\n * @param options.url The URL where the request will be sent.\n * @param options.signal The AbortSignal to abort the request when needed.\n * @param options.authorization The authorization token for the request.\n * @param options.method The HTTP method (default: 'GET').\n * @param options.data Additional data to send.\n * @param options.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 *\n * @internal\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 *\n * @internal\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 *\n * @internal\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module ckbox/ckboxcommand\n */\n\nimport type { ModelWriter } 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\tCKBoxConfig,\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 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 * - assets.onChoose The callback function invoked after choosing the assets.\n\t * - dialog.onClose The callback function invoked after closing the CKBox dialog.\n\t * - dialog.width The dialog width in pixels.\n\t * - dialog.height The dialog height in pixels.\n\t * - categories.icons Allows setting custom icons for categories.\n\t * - view.openLastView Sets if the last view visited by the user will be reopened\n\t * on the next startup.\n\t * - view.startupFolderId Sets the ID of the folder that will be opened on startup.\n\t * - view.startupCategoryId Sets the ID of the category that will be opened on startup.\n\t * - view.hideMaximizeButton Sets whether to hide the ‘Maximize’ button.\n\t * - view.componentsHideTimeout Sets timeout after which upload components are hidden\n\t * after completed upload.\n\t * - view.dialogMinimizeTimeout Sets timeout after which upload dialog is minimized\n\t * after completed upload.\n\t */\n\tprivate _prepareOptions() {\n\t\tconst editor = this.editor;\n\t\tconst ckboxConfig = editor.config.get( 'ckbox' )!;\n\n\t\tconst dialog = ckboxConfig.dialog;\n\t\tconst categories = ckboxConfig.categories;\n\t\tconst view = ckboxConfig.view;\n\t\tconst upload = ckboxConfig.upload;\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\tchoosableFileExtensions: ckboxConfig.choosableFileExtensions,\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\tdialog: {\n\t\t\t\tonClose: () => this.fire<CKBoxEvent<'close'>>( 'ckbox:close' ),\n\t\t\t\twidth: dialog && dialog.width,\n\t\t\t\theight: dialog && dialog.height\n\t\t\t},\n\t\t\tcategories: categories && {\n\t\t\t\ticons: categories.icons\n\t\t\t},\n\t\t\tview: view && {\n\t\t\t\topenLastView: view.openLastView,\n\t\t\t\tstartupFolderId: view.startupFolderId,\n\t\t\t\tstartupCategoryId: view.startupCategoryId,\n\t\t\t\thideMaximizeButton: view.hideMaximizeButton\n\t\t\t},\n\t\t\tupload: upload && {\n\t\t\t\tcomponentsHideTimeout: upload.componentsHideTimeout,\n\t\t\t\tdialogMinimizeTimeout: upload.dialogMinimizeTimeout\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\t\tconst downloadableFilesConfig = editor.config.get( 'ckbox.downloadableFiles' );\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\tdownloadableFilesConfig,\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: ModelWriter,\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: ModelWriter, 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{ downloadableFilesConfig, assets, isImageAllowed, isLinkAllowed }: {\n\t\tdownloadableFilesConfig: CKBoxConfig[ 'downloadableFiles' ];\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, downloadableFilesConfig )\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 asset The asset to prepare the attributes for.\n * @param config The CKBox download asset configuration.\n */\nfunction prepareLinkAssetAttributes(\n\tasset: CKBoxRawAssetDefinition,\n\tconfig: CKBoxConfig[ 'downloadableFiles' ]\n): CKBoxAssetLinkAttributesDefinition {\n\treturn {\n\t\tlinkName: asset.data.name,\n\t\tlinkHref: getAssetUrl( asset, config )\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 asset The asset to create the URL for.\n * @param config The CKBox download asset configuration.\n */\nfunction getAssetUrl( asset: CKBoxRawAssetDefinition, config: CKBoxConfig[ 'downloadableFiles' ] ) {\n\tconst url = new URL( asset.data.url );\n\n\tif ( isDownloadableAsset( asset, config ) ) {\n\t\turl.searchParams.set( 'download', 'true' );\n\t}\n\n\treturn url.toString();\n}\n\n/**\n * Determines if download should be enabled for given asset based on configuration.\n *\n * @param asset The asset to check.\n * @param config The CKBox download asset configuration.\n */\nfunction isDownloadableAsset(\n\tasset: CKBoxRawAssetDefinition,\n\tconfig: CKBoxConfig[ 'downloadableFiles' ]\n): boolean {\n\tif ( typeof config === 'function' ) {\n\t\treturn config( asset );\n\t}\n\n\treturn true;\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\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 class CKBoxUtils extends Plugin {\n\t/**\n\t * CKEditor Cloud Services access token.\n\t */\n\tprivate _token!: Promise<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 override get isOfficialPlugin(): true {\n\t\treturn true;\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 init(): 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 = Promise.resolve( cloudServices.token! );\n\t\t} else {\n\t\t\tthis._token = cloudServices.registerTokenUrl( ckboxTokenUrl );\n\t\t}\n\n\t\t// Grant access to private categories after token is fetched. This is done within the same promise chain\n\t\t// to ensure all services using the token have access to private categories.\n\t\t// This step is critical as previewing images from private categories requires proper cookies.\n\t\tthis._token = this._token.then( async token => {\n\t\t\tawait this._authorizePrivateCategoriesAccess( token.value );\n\t\t\treturn token;\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(): Promise<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 async getWorkspaceId(): Promise<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( await 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 = await 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\tasync function 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', String( ITEMS_PER_REQUEST ) );\n\t\t\tcategoryUrl.searchParams.set( 'offset', String( offset ) );\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: ( await token ).value\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Authorize private categories access to the CKBox service. Request sets cookie for the current domain,\n\t * that allows user to preview images from private categories.\n\t */\n\tprivate async _authorizePrivateCategoriesAccess( token: string ): Promise<void> {\n\t\tconst serviceUrl = this.editor.config.get( 'ckbox.serviceOrigin' )!;\n\t\tconst formData = new FormData();\n\n\t\tformData.set( 'token', token );\n\n\t\tawait fetch( `${ serviceUrl }/categories/authorizePrivateAccess`, {\n\t\t\tmethod: 'POST',\n\t\t\tcredentials: 'include',\n\t\t\tmode: 'no-cors',\n\t\t\tbody: formData\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\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 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 static override get isOfficialPlugin(): true {\n\t\treturn true;\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: Promise<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', await 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: ( await 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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module ckbox/ckboxediting\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport {\n\tModelRange,\n\ttype ModelDocumentSelection,\n\ttype DowncastAttributeEvent,\n\ttype ViewDowncastWriter,\n\ttype ModelElement,\n\ttype ModelItem,\n\ttype ModelNode,\n\ttype UpcastElementEvent,\n\ttype ViewElement,\n\ttype ModelWriter\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';\nimport { sendHttpRequest } from './utils.js';\n\nconst COMMAND_FORCE_DISABLE_ID = 'NoPermission';\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 class CKBoxEditing extends Plugin {\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 override get isOfficialPlugin(): true {\n\t\treturn true;\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\n\t\t// Promise is not handled intentionally. Errors should be displayed in console if there are so.\n\t\tisUploadPermissionGranted( editor ).then( isCreateAssetAllowed => {\n\t\t\tif ( !isCreateAssetAllowed ) {\n\t\t\t\tthis._blockImageCommands();\n\t\t\t}\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 * Blocks `uploadImage` and `ckboxImageEdit` commands.\n\t */\n\tprivate _blockImageCommands(): void {\n\t\tconst editor = this.editor;\n\t\tconst uploadImageCommand = editor.commands.get( 'uploadImage' );\n\t\tconst imageEditingCommand = editor.commands.get( 'ckboxImageEdit' );\n\n\t\tif ( uploadImageCommand ) {\n\t\t\tuploadImageCommand.isAccessAllowed = false;\n\t\t\tuploadImageCommand.forceDisabled( COMMAND_FORCE_DISABLE_ID );\n\t\t}\n\n\t\tif ( imageEditingCommand ) {\n\t\t\timageEditingCommand.forceDisabled( COMMAND_FORCE_DISABLE_ID );\n\t\t}\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 The editor instance.\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 => {\n\t\t\t// Don't allow `ckboxLinkId` on elements which do not have `linkHref` attribute.\n\t\t\tif ( !context.last.getAttribute( 'linkHref' ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}, 'ckboxLinkId' );\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<ModelElement>>( '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 ModelElement );\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: ModelWriter ) => {\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 ModelRange( 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: ModelDocumentSelection ) {\n\treturn ( writer: ModelWriter ) => {\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: ModelItem, 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: ViewDowncastWriter, 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: ModelNode ) {\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/**\n * Checks is access allowed to upload assets.\n */\nasync function isUploadPermissionGranted( editor: Editor ): Promise<boolean> {\n\tconst ckboxUtils = editor.plugins.get( CKBoxUtils );\n\tconst origin = editor.config.get( 'ckbox.serviceOrigin' );\n\n\tconst url = new URL( 'permissions', origin );\n\tconst { value } = await ckboxUtils.getToken();\n\n\tconst response = ( await sendHttpRequest( {\n\t\turl,\n\t\tauthorization: value,\n\t\tsignal: ( new AbortController() ).signal // Aborting is unnecessary.\n\t} ) ) as Record<string, CategoryPermission>;\n\n\treturn Object.values( response ).some( category => category[ 'asset:create' ] );\n}\n\ntype CategoryPermission = {\n\t[ key: string ]: boolean;\n};\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\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 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 override get isOfficialPlugin(): true {\n\t\treturn true;\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module ckbox/ckboximageedit/utils\n */\n\nimport { global } from 'ckeditor5/src/utils.js';\n\nimport type { ModelElement } 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: ModelElement ) => 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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\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 { ModelElement } from 'ckeditor5/src/engine.js';\nimport { Notification } from 'ckeditor5/src/ui.js';\nimport { isEqual } from 'es-toolkit/compat';\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 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: ( await 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\timageType: element.is( 'element', 'imageInline' ) ? 'imageInline' : null,\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\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 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 override get isOfficialPlugin(): true {\n\t\treturn true;\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module ckbox/ckboximageedit/ckboximageeditui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView } from 'ckeditor5/src/ui.js';\nimport { IconCkboxImageEdit } from 'ckeditor5/src/icons.js';\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 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 static override get isOfficialPlugin(): true {\n\t\treturn true;\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 uploadImageCommand = editor.commands.get( 'uploadImage' )!;\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\ticon: IconCkboxImageEdit,\n\t\t\t\ttooltip: true\n\t\t\t} );\n\n\t\t\tview.bind( 'label' ).to( uploadImageCommand, 'isAccessAllowed', isAccessAllowed => isAccessAllowed ?\n\t\t\t\tt( 'Edit image' ) :\n\t\t\t\tt( 'You have no image editing permissions.' )\n\t\t\t);\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-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\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 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 override get isOfficialPlugin(): true {\n\t\treturn true;\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"]}
|