@ckeditor/ckeditor5-ckbox 43.1.0 → 43.2.0-alpha.0
Sign up to get free protection for your applications and to get access to all the features.
- package/build/ckbox.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
- package/src/ckboximageedit/ckboximageeditcommand.js +1 -0
- package/src/ckboxui.js +0 -1
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","editor","commands","get","ui","componentFactory","add","_createFileToolbarButton","_createFileMenuBarButton","plugins","has","registerIntegration","name","observable","buttonViewCreator","_createImageToolbarButton","formViewCreator","_createImageDropdownButton","menuBarButtonViewCreator","isOnly","_createImageMenuBarButton","_createButton","ButtonClass","locale","view","command","t","bind","to","on","execute","button","ButtonView","icon","icons","browseFiles","label","tooltip","imageInsertUI","imageAssetManager","isImageSelected","withText","dropdownView","isOpen","MenuBarMenuListItemButtonView","type","getImageUrls","imageUrls","responsiveUrls","maxWidth","key","width","parseInt","isNaN","push","imageSources","srcset","join","sizes","imageFallbackUrl","default","getWorkspaceId","token","defaultWorkspaceId","binaryTokenPayload","value","split","payload","JSON","parse","atob","workspaces","auth","ckbox","aud","role","includes","BLUR_RESOLUTION","blurHashToDataUrl","hash","resolutionInPx","canvas","document","createElement","setAttribute","ctx","getContext","imageData","createImageData","decoded","decode","data","set","putImageData","toDataURL","e","undefined","sendHttpRequest","url","method","onUploadProgress","signal","authorization","xhr","XMLHttpRequest","open","toString","setRequestHeader","responseType","abortCallback","abort","Promise","resolve","reject","throwIfAborted","addEventListener","removeEventListener","response","statusCode","message","upload","evt","send","MIME_TO_EXTENSION","convertMimeTypeToExtension","mimeType","getContentTypeOfUrl","options","fetch","cache","ok","headers","getFileExtension","file","fileName","extensionRegExp","match","groups","ext","toLowerCase","ASSET_INSERTION_WAIT_TIMEOUT","CKBoxCommand","Command","_chosenAssets","Set","_wrapper","constructor","_initListeners","_getValue","isEnabled","_checkEnabled","fire","imageCommand","linkCommand","ckboxConfig","config","dialog","categories","theme","language","tokenUrl","serviceOrigin","forceDemoLabel","choosableFileExtensions","assets","onChoose","onClose","height","openLastView","startupFolderId","startupCategoryId","hideMaximizeButton","componentsHideTimeout","dialogMinimizeTimeout","model","shouldInsertDataId","refresh","priority","class","body","appendChild","window","CKBox","mount","_prepareOptions","remove","editing","focus","assetsToProcess","prepareAssets","isImageAllowed","isLinkAllowed","assetsCount","length","change","writer","asset","isLastAsset","isSingleAsset","_insertAsset","setTimeout","delete","listenTo","clear","selection","removeSelectionAttribute","_insertImage","_insertLink","setSelection","getLastPosition","imageTextAlternative","imageWidth","imageHeight","imagePlaceholder","attributes","source","src","sources","alt","placeholder","linkName","linkHref","isCollapsed","selectionAttributes","toMap","getAttributes","textNode","createText","selectionLastPosition","parentElement","parent","isEmpty","position","range","insertContent","map","isImage","id","prepareImageAssetAttributes","prepareLinkAssetAttributes","filter","description","blurHash","metadata","getAssetUrl","URL","searchParams","DEFAULT_CKBOX_THEME_NAME","CKBoxUtils","requires","hasConfiguration","isLibraryLoaded","define","defaultUploadCategories","ignoreDataId","uiLanguage","cloudServices","cloudServicesTokenUrl","ckboxTokenUrl","CKEditorError","_token","registerTokenUrl","cannotAccessDefaultWorkspaceError","workspaceId","logError","getCategoryIdForFile","fileOrUrl","cannotFindCategoryError","defaultCategories","allCategoriesPromise","_getAvailableCategories","extension","allCategories","userCategory","Object","keys","find","category","serverCategory","extensions","ITEMS_PER_REQUEST","result","offset","remainingItems","fetchCategories","items","totalCount","categoryUrl","String","CKBoxUploadAdapter","FileRepository","CKBoxEditing","afterInit","fileRepository","ckboxUtils","createUploadAdapter","loader","Adapter","imageUploadEditing","imageElement","ckboxImageId","getToken","controller","AbortController","uploadUrl","formData","FormData","append","requestConfig","lengthComputable","uploadTotal","total","uploaded","loaded","then","catch","genericError","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","Range","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","_updateUiDelayed","delay","update","_canEdit","abortableDebounce","state","_prepareOptionsAbortable","_prepareListeners","selectedElement","getSelectedElement","_checkIfElementIsBeingProcessed","wrapper","processingState","mountImageEditor","error","notification","Notification","showWarning","namespace","console","_handleImageEditorClose","cancel","destroy","imageMountOptions","assetId","imageUrl","href","uploadCategoryId","imageEditing","allowOverwrite","onSave","_handleImageEditorSave","processingStates","_getProcessingStatesOfDeletedImages","forEach","states","root","rootName","isEqual","pendingActions","PendingActions","action","_showImageProcessingIndicator","_waitForAssetProcessed","_replaceImage","reconvertItem","aborted","finally","_getAssetStatusFromServer","status","metadataProcessingStatus","retry","maxAttempts","imageElementView","imageUtils","img","findViewImgElement","removeStyle","setStyle","addClass","previousSelectionRanges","from","getRanges","previousChildren","cloneElement","CKBoxImageEditEditing","CKBoxImageEditUI","ckboxImageEditIcon","CKBoxImageEdit"],"mappings":"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AAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,G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","file":"index.js.map","sourcesContent":["import { Plugin, icons, Command, PendingActions } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ButtonView, MenuBarMenuListItemButtonView, Notification } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { Range } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { createElement, toMap, CKEditorError, logError, global, delay, abortableDebounce, retry } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { decode } from 'blurhash';\nimport { FileRepository } from '@ckeditor/ckeditor5-upload/dist/index.js';\nimport { isEqual } from 'lodash-es';\n\n/**\n * Introduces UI components for the `CKBox` plugin.\n *\n * The plugin introduces two UI components to the {@link module:ui/componentfactory~ComponentFactory UI component factory}:\n *\n * * the `'ckbox'` toolbar button,\n * * the `'menuBar:ckbox'` menu bar component, which is by default added to the `'Insert'` menu.\n *\n * It also integrates with the `insertImage` toolbar component and `menuBar:insertImage` menu component.\n */ class CKBoxUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxUI';\n }\n /**\n\t * @inheritDoc\n\t */ afterInit() {\n const editor = this.editor;\n // Do not register the `ckbox` button if the command does not exist.\n // This might happen when CKBox library is not loaded on the page.\n if (!editor.commands.get('ckbox')) {\n return;\n }\n editor.ui.componentFactory.add('ckbox', ()=>this._createFileToolbarButton());\n editor.ui.componentFactory.add('menuBar:ckbox', ()=>this._createFileMenuBarButton());\n if (editor.plugins.has('ImageInsertUI')) {\n editor.plugins.get('ImageInsertUI').registerIntegration({\n name: 'assetManager',\n observable: ()=>editor.commands.get('ckbox'),\n buttonViewCreator: ()=>this._createImageToolbarButton(),\n formViewCreator: ()=>this._createImageDropdownButton(),\n menuBarButtonViewCreator: (isOnly)=>this._createImageMenuBarButton(isOnly ? 'insertOnly' : 'insertNested')\n });\n }\n }\n /**\n\t * Creates the base for various kinds of the button component provided by this feature.\n\t */ _createButton(ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const view = new ButtonClass(locale);\n const command = editor.commands.get('ckbox');\n locale.t;\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n view.on('execute', ()=>{\n editor.execute('ckbox');\n });\n return view;\n }\n /**\n\t * Creates a simple toolbar button for files management, with an icon and a tooltip.\n\t */ _createFileToolbarButton() {\n const t = this.editor.locale.t;\n const button = this._createButton(ButtonView);\n button.icon = icons.browseFiles;\n button.label = t('Open file manager');\n button.tooltip = true;\n return button;\n }\n /**\n\t * Creates a simple toolbar button for images management, with an icon and a tooltip.\n\t */ _createImageToolbarButton() {\n const t = this.editor.locale.t;\n const imageInsertUI = this.editor.plugins.get('ImageInsertUI');\n const button = this._createButton(ButtonView);\n button.icon = icons.imageAssetManager;\n button.bind('label').to(imageInsertUI, 'isImageSelected', (isImageSelected)=>isImageSelected ? t('Replace image with file manager') : t('Insert image with file manager'));\n button.tooltip = true;\n return button;\n }\n /**\n\t * Creates a button for images management for the dropdown view, with an icon, text and no tooltip.\n\t */ _createImageDropdownButton() {\n const t = this.editor.locale.t;\n const imageInsertUI = this.editor.plugins.get('ImageInsertUI');\n const button = this._createButton(ButtonView);\n button.icon = icons.imageAssetManager;\n button.withText = true;\n button.bind('label').to(imageInsertUI, 'isImageSelected', (isImageSelected)=>isImageSelected ? t('Replace with file manager') : t('Insert with file manager'));\n button.on('execute', ()=>{\n imageInsertUI.dropdownView.isOpen = false;\n });\n return button;\n }\n /**\n\t * Creates a button for files management for the menu bar.\n\t */ _createFileMenuBarButton() {\n const t = this.editor.locale.t;\n const button = this._createButton(MenuBarMenuListItemButtonView);\n button.icon = icons.browseFiles;\n button.withText = true;\n button.label = t('File');\n return button;\n }\n /**\n\t * Creates a button for images management for the menu bar.\n\t */ _createImageMenuBarButton(type) {\n const t = this.editor.locale.t;\n const button = this._createButton(MenuBarMenuListItemButtonView);\n button.icon = icons.imageAssetManager;\n button.withText = true;\n switch(type){\n case 'insertOnly':\n button.label = t('Image');\n break;\n case 'insertNested':\n button.label = t('With file manager');\n break;\n }\n return button;\n }\n}\n\n/**\n * Converts image source set provided by the CKBox into an object containing:\n * - responsive URLs for the \"webp\" image format,\n * - one fallback URL for browsers that do not support the \"webp\" format.\n */ function getImageUrls(imageUrls) {\n const responsiveUrls = [];\n let maxWidth = 0;\n for(const key in imageUrls){\n const width = parseInt(key, 10);\n if (!isNaN(width)) {\n if (width > maxWidth) {\n maxWidth = width;\n }\n responsiveUrls.push(`${imageUrls[key]} ${key}w`);\n }\n }\n const imageSources = [\n {\n srcset: responsiveUrls.join(','),\n sizes: `(max-width: ${maxWidth}px) 100vw, ${maxWidth}px`,\n type: 'image/webp'\n }\n ];\n return {\n imageFallbackUrl: imageUrls.default,\n imageSources\n };\n}\n/**\n * Returns a workspace id to use for communication with the CKBox service.\n *\n * @param defaultWorkspaceId The default workspace to use taken from editor config.\n */ function getWorkspaceId(token, defaultWorkspaceId) {\n const [, binaryTokenPayload] = token.value.split('.');\n const payload = JSON.parse(atob(binaryTokenPayload));\n const workspaces = payload.auth && payload.auth.ckbox && payload.auth.ckbox.workspaces || [\n payload.aud\n ];\n if (!defaultWorkspaceId) {\n return workspaces[0];\n }\n const role = payload.auth && payload.auth.ckbox && payload.auth.ckbox.role;\n if (role == 'superadmin' || workspaces.includes(defaultWorkspaceId)) {\n return defaultWorkspaceId;\n }\n return null;\n}\n/**\n * Default resolution for decoding blurhash values.\n * Relatively small values must be used in order to ensure acceptable performance.\n */ const BLUR_RESOLUTION = 32;\n/**\n * Generates an image data URL from its `blurhash` representation.\n */ function blurHashToDataUrl(hash) {\n if (!hash) {\n return;\n }\n try {\n const resolutionInPx = `${BLUR_RESOLUTION}px`;\n const canvas = document.createElement('canvas');\n canvas.setAttribute('width', resolutionInPx);\n canvas.setAttribute('height', resolutionInPx);\n const ctx = canvas.getContext('2d');\n /* istanbul ignore next -- @preserve */ if (!ctx) {\n return;\n }\n const imageData = ctx.createImageData(BLUR_RESOLUTION, BLUR_RESOLUTION);\n const decoded = decode(hash, BLUR_RESOLUTION, BLUR_RESOLUTION);\n imageData.data.set(decoded);\n ctx.putImageData(imageData, 0, 0);\n return canvas.toDataURL();\n } catch (e) {\n return undefined;\n }\n}\n/**\n * Sends the HTTP request.\n *\n * @internal\n * @param config.url the URL where the request will be sent.\n * @param config.method The HTTP method.\n * @param config.data Additional data to send.\n * @param config.onUploadProgress A callback informing about the upload progress.\n */ function sendHttpRequest({ url, method = 'GET', data, onUploadProgress, signal, authorization }) {\n const xhr = new XMLHttpRequest();\n xhr.open(method, url.toString());\n xhr.setRequestHeader('Authorization', authorization);\n xhr.setRequestHeader('CKBox-Version', 'CKEditor 5');\n xhr.responseType = 'json';\n // The callback is attached to the `signal#abort` event.\n const abortCallback = ()=>{\n xhr.abort();\n };\n return new Promise((resolve, reject)=>{\n signal.throwIfAborted();\n signal.addEventListener('abort', abortCallback);\n xhr.addEventListener('loadstart', ()=>{\n signal.addEventListener('abort', abortCallback);\n });\n xhr.addEventListener('loadend', ()=>{\n signal.removeEventListener('abort', abortCallback);\n });\n xhr.addEventListener('error', ()=>{\n reject();\n });\n xhr.addEventListener('abort', ()=>{\n reject();\n });\n xhr.addEventListener('load', ()=>{\n const response = xhr.response;\n if (!response || response.statusCode >= 400) {\n return reject(response && response.message);\n }\n resolve(response);\n });\n /* istanbul ignore else -- @preserve */ if (onUploadProgress) {\n xhr.upload.addEventListener('progress', (evt)=>{\n onUploadProgress(evt);\n });\n }\n // Send the request.\n xhr.send(data);\n });\n}\nconst MIME_TO_EXTENSION = {\n 'image/gif': 'gif',\n 'image/jpeg': 'jpg',\n 'image/png': 'png',\n 'image/webp': 'webp',\n 'image/bmp': 'bmp',\n 'image/tiff': 'tiff'\n};\n/**\n * Returns an extension a typical file in the specified `mimeType` format would have.\n */ function convertMimeTypeToExtension(mimeType) {\n return MIME_TO_EXTENSION[mimeType];\n}\n/**\n * Tries to fetch the given `url` and returns 'content-type' of the response.\n */ async function getContentTypeOfUrl(url, options) {\n try {\n const response = await fetch(url, {\n method: 'HEAD',\n cache: 'force-cache',\n ...options\n });\n if (!response.ok) {\n return '';\n }\n return response.headers.get('content-type') || '';\n } catch {\n return '';\n }\n}\n/**\n * Returns an extension from the given value.\n */ function getFileExtension(file) {\n const fileName = file.name;\n const extensionRegExp = /\\.(?<ext>[^.]+)$/;\n const match = fileName.match(extensionRegExp);\n return match.groups.ext.toLowerCase();\n}\n\n// Defines the waiting time (in milliseconds) for inserting the chosen asset into the model. The chosen asset is temporarily stored in the\n// `CKBoxCommand#_chosenAssets` and it is removed from there automatically after this time. See `CKBoxCommand#_chosenAssets` for more\n// details.\nconst ASSET_INSERTION_WAIT_TIMEOUT = 1000;\n/**\n * The CKBox command. It is used by the {@link module:ckbox/ckboxediting~CKBoxEditing CKBox editing feature} to open the CKBox file manager.\n * The file manager allows inserting an image or a link to a file into the editor content.\n *\n * ```ts\n * editor.execute( 'ckbox' );\n * ```\n *\n * **Note:** This command uses other features to perform the following tasks:\n * - To insert images it uses the {@link module:image/image/insertimagecommand~InsertImageCommand 'insertImage'} command from the\n * {@link module:image/image~Image Image feature}.\n * - To insert links to other files it uses the {@link module:link/linkcommand~LinkCommand 'link'} command from the\n * {@link module:link/link~Link Link feature}.\n */ class CKBoxCommand extends Command {\n /**\n\t * A set of all chosen assets. They are stored temporarily and they are automatically removed 1 second after being chosen.\n\t * Chosen assets have to be \"remembered\" for a while to be able to map the given asset with the element inserted into the model.\n\t * This association map is then used to set the ID on the model element.\n\t *\n\t * All chosen assets are automatically removed after the timeout, because (theoretically) it may happen that they will never be\n\t * inserted into the model, even if the {@link module:link/linkcommand~LinkCommand `'link'`} command or the\n\t * {@link module:image/image/insertimagecommand~InsertImageCommand `'insertImage'`} command is enabled. Such a case may arise when\n\t * another plugin blocks the command execution. Then, in order not to keep the chosen (but not inserted) assets forever, we delete\n\t * them automatically to prevent memory leakage. The 1 second timeout is enough to insert the asset into the model and extract the\n\t * ID from the chosen asset.\n\t *\n\t * The assets are stored only if\n\t * the {@link module:ckbox/ckboxconfig~CKBoxConfig#ignoreDataId `config.ckbox.ignoreDataId`} option is set to `false` (by default).\n\t *\n\t * @internal\n\t */ _chosenAssets = new Set();\n /**\n\t * The DOM element that acts as a mounting point for the CKBox dialog.\n\t */ _wrapper = null;\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this._initListeners();\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n this.value = this._getValue();\n this.isEnabled = this._checkEnabled();\n }\n /**\n\t * @inheritDoc\n\t */ execute() {\n this.fire('ckbox:open');\n }\n /**\n\t * Indicates if the CKBox dialog is already opened.\n\t *\n\t * @protected\n\t * @returns {Boolean}\n\t */ _getValue() {\n return this._wrapper !== null;\n }\n /**\n\t * Checks whether the command can be enabled in the current context.\n\t */ _checkEnabled() {\n const imageCommand = this.editor.commands.get('insertImage');\n const linkCommand = this.editor.commands.get('link');\n if (!imageCommand.isEnabled && !linkCommand.isEnabled) {\n return false;\n }\n return true;\n }\n /**\n\t * Creates the options object for the CKBox dialog.\n\t *\n\t * @returns The object with properties:\n\t * - theme The theme for CKBox dialog.\n\t * - language The language for CKBox dialog.\n\t * - tokenUrl The token endpoint URL.\n\t * - serviceOrigin The base URL of the API service.\n\t * - forceDemoLabel Whether to force \"Powered by CKBox\" link.\n\t * - 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 // Refresh the command after firing the `ckbox:*` event.\n this.on('ckbox', ()=>{\n this.refresh();\n }, {\n priority: 'low'\n });\n // Handle opening of the CKBox dialog.\n this.on('ckbox:open', ()=>{\n if (!this.isEnabled || this.value) {\n return;\n }\n this._wrapper = createElement(document, 'div', {\n class: 'ck ckbox-wrapper'\n });\n document.body.appendChild(this._wrapper);\n window.CKBox.mount(this._wrapper, this._prepareOptions());\n });\n // Handle closing of the CKBox dialog.\n this.on('ckbox:close', ()=>{\n if (!this.value) {\n return;\n }\n this._wrapper.remove();\n this._wrapper = null;\n editor.editing.view.focus();\n });\n // Handle choosing the assets.\n this.on('ckbox:choose', (evt, assets)=>{\n if (!this.isEnabled) {\n return;\n }\n const imageCommand = editor.commands.get('insertImage');\n const linkCommand = editor.commands.get('link');\n const assetsToProcess = prepareAssets({\n assets,\n isImageAllowed: imageCommand.isEnabled,\n isLinkAllowed: linkCommand.isEnabled\n });\n const assetsCount = assetsToProcess.length;\n if (assetsCount === 0) {\n return;\n }\n // All assets are inserted in one undo step.\n model.change((writer)=>{\n for (const asset of assetsToProcess){\n const isLastAsset = asset === assetsToProcess[assetsCount - 1];\n const isSingleAsset = assetsCount === 1;\n this._insertAsset(asset, isLastAsset, writer, isSingleAsset);\n // If asset ID must be set for the inserted model element, store the asset temporarily and remove it automatically\n // after the timeout.\n if (shouldInsertDataId) {\n setTimeout(()=>this._chosenAssets.delete(asset), ASSET_INSERTION_WAIT_TIMEOUT);\n this._chosenAssets.add(asset);\n }\n }\n });\n editor.editing.view.focus();\n });\n // Clean up after the editor is destroyed.\n this.listenTo(editor, 'destroy', ()=>{\n this.fire('ckbox:close');\n this._chosenAssets.clear();\n });\n }\n /**\n\t * Inserts the asset into the model.\n\t *\n\t * @param asset The asset to be inserted.\n\t * @param isLastAsset Indicates if the current asset is the last one from the chosen set.\n\t * @param writer An instance of the model writer.\n\t * @param isSingleAsset It's true when only one asset is processed.\n\t */ _insertAsset(asset, isLastAsset, writer, isSingleAsset) {\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n // Remove the `linkHref` attribute to not affect the asset to be inserted.\n writer.removeSelectionAttribute('linkHref');\n if (asset.type === 'image') {\n this._insertImage(asset);\n } else {\n this._insertLink(asset, writer, isSingleAsset);\n }\n // Except for the last chosen asset, move the selection to the end of the current range to avoid overwriting other, already\n // inserted assets.\n if (!isLastAsset) {\n writer.setSelection(selection.getLastPosition());\n }\n }\n /**\n\t * Inserts the image by calling the `insertImage` command.\n\t *\n\t * @param asset The asset to be inserted.\n\t */ _insertImage(asset) {\n const editor = this.editor;\n const { imageFallbackUrl, imageSources, imageTextAlternative, imageWidth, imageHeight, imagePlaceholder } = asset.attributes;\n editor.execute('insertImage', {\n source: {\n src: imageFallbackUrl,\n sources: imageSources,\n alt: imageTextAlternative,\n width: imageWidth,\n height: imageHeight,\n ...imagePlaceholder ? {\n placeholder: imagePlaceholder\n } : null\n }\n });\n }\n /**\n\t * Inserts the link to the asset by calling the `link` command.\n\t *\n\t * @param asset The asset to be inserted.\n\t * @param writer An instance of the model writer.\n\t * @param isSingleAsset It's true when only one asset is processed.\n\t */ _insertLink(asset, writer, isSingleAsset) {\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n const { linkName, linkHref } = asset.attributes;\n // If the selection is collapsed, insert the asset name as the link label and select it.\n if (selection.isCollapsed) {\n const selectionAttributes = toMap(selection.getAttributes());\n const textNode = writer.createText(linkName, selectionAttributes);\n if (!isSingleAsset) {\n const selectionLastPosition = selection.getLastPosition();\n const parentElement = selectionLastPosition.parent;\n // Insert new `paragraph` when selection is not in an empty `paragraph`.\n if (!(parentElement.name === 'paragraph' && parentElement.isEmpty)) {\n editor.execute('insertParagraph', {\n position: selectionLastPosition\n });\n }\n const range = model.insertContent(textNode);\n writer.setSelection(range);\n editor.execute('link', linkHref);\n return;\n }\n const range = model.insertContent(textNode);\n writer.setSelection(range);\n }\n editor.execute('link', linkHref);\n }\n}\n/**\n * Parses the chosen assets into the internal data format. Filters out chosen assets that are not allowed.\n */ function prepareAssets({ assets, isImageAllowed, isLinkAllowed }) {\n return assets.map((asset)=>isImage(asset) ? {\n id: asset.data.id,\n type: 'image',\n attributes: prepareImageAssetAttributes(asset)\n } : {\n id: asset.data.id,\n type: 'link',\n attributes: prepareLinkAssetAttributes(asset)\n }).filter((asset)=>asset.type === 'image' ? isImageAllowed : isLinkAllowed);\n}\n/**\n * Parses the assets attributes into the internal data format.\n *\n * @internal\n */ function prepareImageAssetAttributes(asset) {\n const { imageFallbackUrl, imageSources } = getImageUrls(asset.data.imageUrls);\n const { description, width, height, blurHash } = asset.data.metadata;\n const imagePlaceholder = blurHashToDataUrl(blurHash);\n return {\n imageFallbackUrl,\n imageSources,\n imageTextAlternative: description || '',\n imageWidth: width,\n imageHeight: height,\n ...imagePlaceholder ? {\n imagePlaceholder\n } : null\n };\n}\n/**\n * Parses the assets attributes into the internal data format.\n *\n * @param origin The base URL for assets inserted into the editor.\n */ function prepareLinkAssetAttributes(asset) {\n return {\n linkName: asset.data.name,\n linkHref: getAssetUrl(asset)\n };\n}\n/**\n * Checks whether the asset is an image.\n */ function isImage(asset) {\n const metadata = asset.data.metadata;\n if (!metadata) {\n return false;\n }\n return metadata.width && metadata.height;\n}\n/**\n * Creates the URL for the asset.\n *\n * @param origin The base URL for assets inserted into the editor.\n */ function getAssetUrl(asset) {\n const url = new URL(asset.data.url);\n url.searchParams.set('download', 'true');\n return url.toString();\n}\n\nconst DEFAULT_CKBOX_THEME_NAME = 'lark';\n/**\n * The CKBox utilities plugin.\n */ class CKBoxUtils extends Plugin {\n /**\n\t * CKEditor Cloud Services access token.\n\t */ _token;\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxUtils';\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n 'CloudServices'\n ];\n }\n /**\n\t * @inheritDoc\n\t */ 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 }\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\n/**\n * A plugin that enables file uploads in CKEditor 5 using the CKBox server–side connector.\n * See the {@glink features/file-management/ckbox CKBox file manager integration} guide to learn how to configure\n * and use this feature as well as find out more about the full integration with the file manager\n * provided by the {@link module:ckbox/ckbox~CKBox} plugin.\n *\n * Check out the {@glink features/images/image-upload/image-upload Image upload overview} guide to learn about\n * other ways to upload images into CKEditor 5.\n */ class CKBoxUploadAdapter extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n 'ImageUploadEditing',\n 'ImageUploadProgress',\n FileRepository,\n CKBoxEditing\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxUploadAdapter';\n }\n /**\n\t * @inheritDoc\n\t */ async afterInit() {\n const editor = this.editor;\n const hasConfiguration = !!editor.config.get('ckbox');\n const isLibraryLoaded = !!window.CKBox;\n // Editor supports only one upload adapter. Register the CKBox upload adapter (and potentially overwrite other one) only when the\n // integrator intentionally wants to use the CKBox plugin, i.e. when the `config.ckbox` exists or the CKBox JavaScript library is\n // loaded.\n if (!hasConfiguration && !isLibraryLoaded) {\n return;\n }\n const fileRepository = editor.plugins.get(FileRepository);\n const ckboxUtils = editor.plugins.get(CKBoxUtils);\n fileRepository.createUploadAdapter = (loader)=>new Adapter(loader, editor, ckboxUtils);\n const shouldInsertDataId = !editor.config.get('ckbox.ignoreDataId');\n const imageUploadEditing = editor.plugins.get('ImageUploadEditing');\n // Mark uploaded assets with the `ckboxImageId` attribute. Its value represents an ID in CKBox.\n if (shouldInsertDataId) {\n imageUploadEditing.on('uploadComplete', (evt, { imageElement, data })=>{\n editor.model.change((writer)=>{\n writer.setAttribute('ckboxImageId', data.ckboxImageId, imageElement);\n });\n });\n }\n }\n}\n/**\n * Upload adapter for CKBox.\n */ class Adapter {\n /**\n\t * FileLoader instance to use during the upload.\n\t */ loader;\n /**\n\t * CKEditor Cloud Services access token.\n\t */ token;\n /**\n\t * The editor instance.\n\t */ editor;\n /**\n\t * The abort controller for aborting asynchronous processes.\n\t */ controller;\n /**\n\t * The base URL where all requests should be sent.\n\t */ serviceOrigin;\n /**\n\t * The reference to CKBoxUtils plugin.\n\t */ ckboxUtils;\n /**\n\t * Creates a new adapter instance.\n\t */ constructor(loader, editor, ckboxUtils){\n this.loader = loader;\n this.token = ckboxUtils.getToken();\n this.ckboxUtils = ckboxUtils;\n this.editor = editor;\n this.controller = new AbortController();\n this.serviceOrigin = editor.config.get('ckbox.serviceOrigin');\n }\n /**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */ async upload() {\n const ckboxUtils = this.ckboxUtils;\n const t = this.editor.t;\n const file = await this.loader.file;\n const category = await ckboxUtils.getCategoryIdForFile(file, {\n signal: this.controller.signal\n });\n const uploadUrl = new URL('assets', this.serviceOrigin);\n const formData = new FormData();\n uploadUrl.searchParams.set('workspaceId', 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 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\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 Range(entry.position, entry.position.getShiftedBy(entry.length)) : entry.range;\n const isLinkHrefAttributeRemoval = entry.type === 'attribute' && entry.attributeKey === 'linkHref' && entry.attributeNewValue === null;\n for (const item of range.getItems()){\n // If the `linkHref` attribute has been removed, sync the change with the `ckboxLinkId` attribute.\n if (isLinkHrefAttributeRemoval && item.hasAttribute('ckboxLinkId')) {\n writer.removeAttribute('ckboxLinkId', item);\n changed = true;\n continue;\n }\n // Otherwise, the change concerns either a new model element or an attribute change. Try to find the assets for the modified\n // model element.\n const assets = findAssetsForItem(item, ckboxCommand._chosenAssets);\n for (const asset of assets){\n const attributeName = asset.type === 'image' ? 'ckboxImageId' : 'ckboxLinkId';\n if (asset.id === item.getAttribute(attributeName)) {\n continue;\n }\n writer.setAttribute(attributeName, asset.id, item);\n changed = true;\n }\n }\n }\n return changed;\n };\n}\n/**\n * A post-fixer that removes the `ckboxLinkId` from the selection if it does not represent a link anymore.\n */ function injectSelectionPostFixer(selection) {\n return (writer)=>{\n const shouldRemoveLinkIdAttribute = !selection.hasAttribute('linkHref') && selection.hasAttribute('ckboxLinkId');\n if (shouldRemoveLinkIdAttribute) {\n writer.removeSelectionAttribute('ckboxLinkId');\n return true;\n }\n return false;\n };\n}\n/**\n * Tries to find the asset that is associated with the model element by comparing the attributes:\n * - the image fallback URL with the `src` attribute for images,\n * - the link URL with the `href` attribute for links.\n *\n * For any model element, zero, one or more than one asset can be found (e.g. a linked image may be associated with the link asset and the\n * image asset).\n */ function findAssetsForItem(item, assets) {\n const isImageElement = item.is('element', 'imageInline') || item.is('element', 'imageBlock');\n const isLinkElement = item.hasAttribute('linkHref');\n return [\n ...assets\n ].filter((asset)=>{\n if (asset.type === 'image' && isImageElement) {\n return asset.attributes.imageFallbackUrl === item.getAttribute('src');\n }\n if (asset.type === 'link' && isLinkElement) {\n return asset.attributes.linkHref === item.getAttribute('linkHref');\n }\n });\n}\n/**\n * Creates view link element with the requested ID.\n */ function createLinkElement(writer, id) {\n // Priority equal 5 is needed to merge adjacent `<a>` elements together.\n const viewElement = writer.createAttributeElement('a', {\n 'data-ckbox-resource-id': id\n }, {\n priority: 5\n });\n writer.setCustomProperty('link', true, viewElement);\n return viewElement;\n}\n/**\n * Checks if the model element may have the `ckboxLinkId` attribute.\n */ function shouldUpcastAttributeForNode(node) {\n if (node.is('$text')) {\n return true;\n }\n if (node.is('element', 'imageInline') || node.is('element', 'imageBlock')) {\n return true;\n }\n return false;\n}\n/**\n * Returns true if the CKBox library is loaded, false otherwise.\n */ function isLibraryLoaded() {\n return !!window.CKBox;\n}\n/**\n * 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 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 source: {\n src: imageFallbackUrl,\n sources: imageSources,\n width: imageWidth,\n height: imageHeight,\n ...imagePlaceholder ? {\n placeholder: imagePlaceholder\n } : null,\n ...element.hasAttribute('alt') ? {\n alt: element.getAttribute('alt')\n } : null\n }\n });\n const previousChildren = element.getChildren();\n element = editor.model.document.selection.getSelectedElement();\n for (const child of previousChildren){\n writer.append(writer.cloneElement(child), element);\n }\n writer.setAttribute('ckboxImageId', asset.data.id, element);\n writer.setSelection(previousSelectionRanges);\n });\n }\n}\n\n/**\n * The CKBox image edit editing plugin.\n */ class CKBoxImageEditEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxImageEditEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n CKBoxEditing,\n CKBoxUtils,\n PendingActions,\n Notification,\n 'ImageUtils',\n 'ImageEditing'\n ];\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const { editor } = this;\n editor.commands.add('ckboxImageEdit', new CKBoxImageEditCommand(editor));\n }\n}\n\nvar ckboxImageEditIcon = \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M1.201 1C.538 1 0 1.47 0 2.1v14.363c0 .64.534 1.037 1.186 1.037H5.06l5.058-5.078L6.617 9.15a.696.696 0 0 0-.957-.033L1.5 13.6V2.5h15v4.354a3.478 3.478 0 0 1 1.5.049V2.1c0-.63-.547-1.1-1.2-1.1H1.202Zm11.713 2.803a2.147 2.147 0 0 0-2.049 1.992 2.14 2.14 0 0 0 1.28 2.096 2.13 2.13 0 0 0 2.642-3.11 2.129 2.129 0 0 0-1.873-.978ZM8.089 17.635v2.388h2.389l7.046-7.046-2.39-2.39-7.045 7.048Zm11.282-6.507a.637.637 0 0 0 .139-.692.603.603 0 0 0-.139-.205l-1.49-1.488a.63.63 0 0 0-.899 0l-1.166 1.163 2.39 2.39 1.165-1.168Z\\\"/></svg>\";\n\n/**\n * The UI plugin of the CKBox image edit feature.\n *\n * It registers the `'ckboxImageEdit'` UI button in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}\n * that allows you to open the CKBox dialog and edit the image.\n */ class CKBoxImageEditUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxImageEditUI';\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.ui.componentFactory.add('ckboxImageEdit', (locale)=>{\n const command = editor.commands.get('ckboxImageEdit');\n const uploadImageCommand = editor.commands.get('uploadImage');\n const view = new ButtonView(locale);\n const t = locale.t;\n view.set({\n icon: ckboxImageEditIcon,\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 requires() {\n return [\n CKBoxImageEditEditing,\n CKBoxImageEditUI\n ];\n }\n}\n\nexport { CKBox, CKBoxEditing, CKBoxImageEdit, CKBoxImageEditEditing, CKBoxImageEditUI, CKBoxUI };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckboxui\n */\n\nimport { icons, Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\n\nimport type { ImageInsertUI } from '@ckeditor/ckeditor5-image';\n\n/**\n * Introduces UI components for the `CKBox` plugin.\n *\n * The plugin introduces two UI components to the {@link module:ui/componentfactory~ComponentFactory UI component factory}:\n *\n * * the `'ckbox'` toolbar button,\n * * the `'menuBar:ckbox'` menu bar component, which is by default added to the `'Insert'` menu.\n *\n * It also integrates with the `insertImage` toolbar component and `menuBar:insertImage` menu component.\n */\nexport default class CKBoxUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\n\t\t// Do not register the `ckbox` button if the command does not exist.\n\t\t// This might happen when CKBox library is not loaded on the page.\n\t\tif ( !editor.commands.get( 'ckbox' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\teditor.ui.componentFactory.add( 'ckbox', () => this._createFileToolbarButton() );\n\t\teditor.ui.componentFactory.add( 'menuBar:ckbox', () => this._createFileMenuBarButton() );\n\n\t\tif ( editor.plugins.has( 'ImageInsertUI' ) ) {\n\t\t\teditor.plugins.get( 'ImageInsertUI' ).registerIntegration( {\n\t\t\t\tname: 'assetManager',\n\t\t\t\tobservable: () => editor.commands.get( 'ckbox' )!,\n\t\t\t\tbuttonViewCreator: () => this._createImageToolbarButton(),\n\t\t\t\tformViewCreator: () => this._createImageDropdownButton(),\n\t\t\t\tmenuBarButtonViewCreator: isOnly => this._createImageMenuBarButton( isOnly ? 'insertOnly' : 'insertNested' )\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Creates the base for various kinds of the button component provided by this feature.\n\t */\n\tprivate _createButton<T extends typeof ButtonView | typeof MenuBarMenuListItemButtonView>( ButtonClass: T ): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst view = new ButtonClass( locale ) as InstanceType<T>;\n\t\tconst command = editor.commands.get( 'ckbox' )!;\n\t\tconst t = locale.t;\n\n\t\tview.bind( 'isOn', 'isEnabled' ).to( command, 'value', 'isEnabled' );\n\n\t\tview.on( 'execute', () => {\n\t\t\teditor.execute( 'ckbox' );\n\t\t} );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Creates a simple toolbar button for files management, with an icon and a tooltip.\n\t */\n\tprivate _createFileToolbarButton(): ButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst button = this._createButton( ButtonView );\n\n\t\tbutton.icon = icons.browseFiles;\n\t\tbutton.label = t( 'Open file manager' );\n\t\tbutton.tooltip = true;\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Creates a simple toolbar button for images management, with an icon and a tooltip.\n\t */\n\tprivate _createImageToolbarButton(): ButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst imageInsertUI: ImageInsertUI = this.editor.plugins.get( 'ImageInsertUI' );\n\n\t\tconst button = this._createButton( ButtonView );\n\n\t\tbutton.icon = icons.imageAssetManager;\n\t\tbutton.bind( 'label' ).to(\n\t\t\timageInsertUI,\n\t\t\t'isImageSelected',\n\t\t\tisImageSelected => isImageSelected ? t( 'Replace image with file manager' ) : t( 'Insert image with file manager' )\n\t\t);\n\t\tbutton.tooltip = true;\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Creates a button for images management for the dropdown view, with an icon, text and no tooltip.\n\t */\n\tprivate _createImageDropdownButton(): ButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst imageInsertUI: ImageInsertUI = this.editor.plugins.get( 'ImageInsertUI' );\n\n\t\tconst button = this._createButton( ButtonView );\n\n\t\tbutton.icon = icons.imageAssetManager;\n\t\tbutton.withText = true;\n\t\tbutton.bind( 'label' ).to(\n\t\t\timageInsertUI,\n\t\t\t'isImageSelected',\n\t\t\tisImageSelected => isImageSelected ? t( 'Replace with file manager' ) : t( 'Insert with file manager' )\n\t\t);\n\n\t\tbutton.on( 'execute', () => {\n\t\t\timageInsertUI.dropdownView!.isOpen = false;\n\t\t} );\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Creates a button for files management for the menu bar.\n\t */\n\tprivate _createFileMenuBarButton(): MenuBarMenuListItemButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst button = this._createButton( MenuBarMenuListItemButtonView );\n\n\t\tbutton.icon = icons.browseFiles;\n\t\tbutton.withText = true;\n\t\tbutton.label = t( 'File' );\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Creates a button for images management for the menu bar.\n\t */\n\tprivate _createImageMenuBarButton( type: 'insertOnly' | 'insertNested' ): MenuBarMenuListItemButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst button = this._createButton( MenuBarMenuListItemButtonView );\n\n\t\tbutton.icon = icons.imageAssetManager;\n\t\tbutton.withText = true;\n\n\t\tswitch ( type ) {\n\t\t\tcase 'insertOnly':\n\t\t\t\tbutton.label = t( 'Image' );\n\t\t\t\tbreak;\n\t\t\tcase 'insertNested':\n\t\t\t\tbutton.label = t( 'With file manager' );\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn button;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* global atob */\n\n/**\n * @module ckbox/utils\n */\n\nimport type { InitializedToken } from '@ckeditor/ckeditor5-cloud-services';\nimport type { CKBoxImageUrls } from './ckboxconfig.js';\n\nimport { decode } from 'blurhash';\n\n/**\n * Converts image source set provided by the CKBox into an object containing:\n * - responsive URLs for the \"webp\" image format,\n * - one fallback URL for browsers that do not support the \"webp\" format.\n */\nexport function getImageUrls( imageUrls: CKBoxImageUrls ): {\n\timageFallbackUrl: string;\n\timageSources: Array<{\n\t\tsrcset: string;\n\t\tsizes: string;\n\t\ttype: string;\n\t}>;\n} {\n\tconst responsiveUrls: Array<string> = [];\n\tlet maxWidth = 0;\n\n\tfor ( const key in imageUrls ) {\n\t\tconst width = parseInt( key, 10 );\n\n\t\tif ( !isNaN( width ) ) {\n\t\t\tif ( width > maxWidth ) {\n\t\t\t\tmaxWidth = width;\n\t\t\t}\n\n\t\t\tresponsiveUrls.push( `${ imageUrls[ key ] } ${ key }w` );\n\t\t}\n\t}\n\n\tconst imageSources = [ {\n\t\tsrcset: responsiveUrls.join( ',' ),\n\t\tsizes: `(max-width: ${ maxWidth }px) 100vw, ${ maxWidth }px`,\n\t\ttype: 'image/webp'\n\t} ];\n\n\treturn {\n\t\timageFallbackUrl: imageUrls.default,\n\t\timageSources\n\t};\n}\n\n/**\n * Returns a workspace id to use for communication with the CKBox service.\n *\n * @param defaultWorkspaceId The default workspace to use taken from editor config.\n */\nexport function getWorkspaceId( token: InitializedToken, defaultWorkspaceId?: string ): string | null {\n\tconst [ , binaryTokenPayload ] = token.value.split( '.' );\n\tconst payload = JSON.parse( atob( binaryTokenPayload ) );\n\tconst workspaces = ( payload.auth && payload.auth.ckbox && payload.auth.ckbox.workspaces ) || [ payload.aud ];\n\n\tif ( !defaultWorkspaceId ) {\n\t\treturn workspaces[ 0 ];\n\t}\n\n\tconst role = payload.auth && payload.auth.ckbox && payload.auth.ckbox.role;\n\n\tif ( role == 'superadmin' || workspaces.includes( defaultWorkspaceId ) ) {\n\t\treturn defaultWorkspaceId;\n\t}\n\n\treturn null;\n}\n\n/**\n * Default resolution for decoding blurhash values.\n * Relatively small values must be used in order to ensure acceptable performance.\n */\nconst BLUR_RESOLUTION = 32;\n\n/**\n * Generates an image data URL from its `blurhash` representation.\n */\nexport function blurHashToDataUrl( hash?: string ): string | undefined {\n\tif ( !hash ) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tconst resolutionInPx = `${ BLUR_RESOLUTION }px`;\n\t\tconst canvas = document.createElement( 'canvas' );\n\n\t\tcanvas.setAttribute( 'width', resolutionInPx );\n\t\tcanvas.setAttribute( 'height', resolutionInPx );\n\n\t\tconst ctx = canvas.getContext( '2d' );\n\n\t\t/* istanbul ignore next -- @preserve */\n\t\tif ( !ctx ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst imageData = ctx.createImageData( BLUR_RESOLUTION, BLUR_RESOLUTION );\n\t\tconst decoded = decode( hash, BLUR_RESOLUTION, BLUR_RESOLUTION );\n\n\t\timageData.data.set( decoded );\n\t\tctx.putImageData( imageData, 0, 0 );\n\n\t\treturn canvas.toDataURL();\n\t} catch ( e ) {\n\t\treturn undefined;\n\t}\n}\n\n/**\n * Sends the HTTP request.\n *\n * @internal\n * @param config.url the URL where the request will be sent.\n * @param config.method The HTTP method.\n * @param config.data Additional data to send.\n * @param config.onUploadProgress A callback informing about the upload progress.\n */\nexport function sendHttpRequest( {\n\turl,\n\tmethod = 'GET',\n\tdata,\n\tonUploadProgress,\n\tsignal,\n\tauthorization\n}: {\n\turl: URL;\n\tsignal: AbortSignal;\n\tauthorization: string;\n\tmethod?: 'GET' | 'POST';\n\tdata?: FormData | null;\n\tonUploadProgress?: ( evt: ProgressEvent ) => void;\n} ): Promise<any> {\n\tconst xhr = new XMLHttpRequest();\n\n\txhr.open( method, url.toString() );\n\txhr.setRequestHeader( 'Authorization', authorization );\n\txhr.setRequestHeader( 'CKBox-Version', 'CKEditor 5' );\n\txhr.responseType = 'json';\n\n\t// The callback is attached to the `signal#abort` event.\n\tconst abortCallback = () => {\n\t\txhr.abort();\n\t};\n\n\treturn new Promise<any>( ( resolve, reject ) => {\n\t\tsignal.throwIfAborted();\n\t\tsignal.addEventListener( 'abort', abortCallback );\n\n\t\txhr.addEventListener( 'loadstart', () => {\n\t\t\tsignal.addEventListener( 'abort', abortCallback );\n\t\t} );\n\n\t\txhr.addEventListener( 'loadend', () => {\n\t\t\tsignal.removeEventListener( 'abort', abortCallback );\n\t\t} );\n\n\t\txhr.addEventListener( 'error', () => {\n\t\t\treject();\n\t\t} );\n\n\t\txhr.addEventListener( 'abort', () => {\n\t\t\treject();\n\t\t} );\n\n\t\txhr.addEventListener( 'load', () => {\n\t\t\tconst response = xhr.response;\n\n\t\t\tif ( !response || response.statusCode >= 400 ) {\n\t\t\t\treturn reject( response && response.message );\n\t\t\t}\n\n\t\t\tresolve( response );\n\t\t} );\n\n\t\t/* istanbul ignore else -- @preserve */\n\t\tif ( onUploadProgress ) {\n\t\t\txhr.upload.addEventListener( 'progress', evt => {\n\t\t\t\tonUploadProgress( evt );\n\t\t\t} );\n\t\t}\n\n\t\t// Send the request.\n\t\txhr.send( data );\n\t} );\n}\n\nconst MIME_TO_EXTENSION: Record<string, string> = {\n\t'image/gif': 'gif',\n\t'image/jpeg': 'jpg',\n\t'image/png': 'png',\n\t'image/webp': 'webp',\n\t'image/bmp': 'bmp',\n\t'image/tiff': 'tiff'\n};\n\n/**\n * Returns an extension a typical file in the specified `mimeType` format would have.\n */\nexport function convertMimeTypeToExtension( mimeType: string ): string {\n\treturn MIME_TO_EXTENSION[ mimeType ];\n}\n\n/**\n * Tries to fetch the given `url` and returns 'content-type' of the response.\n */\nexport async function getContentTypeOfUrl( url: string, options: { signal: AbortSignal } ): Promise<string> {\n\ttry {\n\t\tconst response = await fetch( url, {\n\t\t\tmethod: 'HEAD',\n\t\t\tcache: 'force-cache',\n\t\t\t...options\n\t\t} );\n\n\t\tif ( !response.ok ) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn response.headers.get( 'content-type' ) || '';\n\t} catch {\n\t\treturn '';\n\t}\n}\n\n/**\n * Returns an extension from the given value.\n */\nexport function getFileExtension( file: File ): string {\n\tconst fileName = file.name;\n\tconst extensionRegExp = /\\.(?<ext>[^.]+)$/;\n\tconst match = fileName.match( extensionRegExp );\n\n\treturn match!.groups!.ext.toLowerCase();\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* global document, window, setTimeout, URL */\n\n/**\n * @module ckbox/ckboxcommand\n */\n\nimport type { Writer } from 'ckeditor5/src/engine.js';\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport { createElement, toMap } from 'ckeditor5/src/utils.js';\n\nimport type {\n\tCKBoxAssetDefinition,\n\tCKBoxAssetImageAttributesDefinition,\n\tCKBoxAssetImageDefinition,\n\tCKBoxAssetLinkAttributesDefinition,\n\tCKBoxAssetLinkDefinition,\n\tCKBoxRawAssetDefinition\n} from './ckboxconfig.js';\n\nimport { blurHashToDataUrl, getImageUrls } from './utils.js';\n\n// Defines the waiting time (in milliseconds) for inserting the chosen asset into the model. The chosen asset is temporarily stored in the\n// `CKBoxCommand#_chosenAssets` and it is removed from there automatically after this time. See `CKBoxCommand#_chosenAssets` for more\n// details.\nconst ASSET_INSERTION_WAIT_TIMEOUT = 1000;\n\n/**\n * The CKBox command. It is used by the {@link module:ckbox/ckboxediting~CKBoxEditing CKBox editing feature} to open the CKBox file manager.\n * The file manager allows inserting an image or a link to a file into the editor content.\n *\n * ```ts\n * editor.execute( 'ckbox' );\n * ```\n *\n * **Note:** This command uses other features to perform the following tasks:\n * - To insert images it uses the {@link module:image/image/insertimagecommand~InsertImageCommand 'insertImage'} command from the\n * {@link module:image/image~Image Image feature}.\n * - To insert links to other files it uses the {@link module:link/linkcommand~LinkCommand 'link'} command from the\n * {@link module:link/link~Link Link feature}.\n */\nexport default class CKBoxCommand extends Command {\n\tdeclare public value: boolean;\n\n\t/**\n\t * A set of all chosen assets. They are stored temporarily and they are automatically removed 1 second after being chosen.\n\t * Chosen assets have to be \"remembered\" for a while to be able to map the given asset with the element inserted into the model.\n\t * This association map is then used to set the ID on the model element.\n\t *\n\t * All chosen assets are automatically removed after the timeout, because (theoretically) it may happen that they will never be\n\t * inserted into the model, even if the {@link module:link/linkcommand~LinkCommand `'link'`} command or the\n\t * {@link module:image/image/insertimagecommand~InsertImageCommand `'insertImage'`} command is enabled. Such a case may arise when\n\t * another plugin blocks the command execution. Then, in order not to keep the chosen (but not inserted) assets forever, we delete\n\t * them automatically to prevent memory leakage. The 1 second timeout is enough to insert the asset into the model and extract the\n\t * ID from the chosen asset.\n\t *\n\t * The assets are stored only if\n\t * the {@link module:ckbox/ckboxconfig~CKBoxConfig#ignoreDataId `config.ckbox.ignoreDataId`} option is set to `false` (by default).\n\t *\n\t * @internal\n\t */\n\tpublic readonly _chosenAssets = new Set<CKBoxAssetDefinition>();\n\n\t/**\n\t * The DOM element that acts as a mounting point for the CKBox dialog.\n\t */\n\tprivate _wrapper: Element | null = null;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis._initListeners();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tthis.value = this._getValue();\n\t\tthis.isEnabled = this._checkEnabled();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute(): void {\n\t\tthis.fire<CKBoxEvent<'open'>>( 'ckbox:open' );\n\t}\n\n\t/**\n\t * Indicates if the CKBox dialog is already opened.\n\t *\n\t * @protected\n\t * @returns {Boolean}\n\t */\n\tprivate _getValue(): boolean {\n\t\treturn this._wrapper !== null;\n\t}\n\n\t/**\n\t * Checks whether the command can be enabled in the current context.\n\t */\n\tprivate _checkEnabled() {\n\t\tconst imageCommand = this.editor.commands.get( 'insertImage' )!;\n\t\tconst linkCommand = this.editor.commands.get( 'link' )!;\n\n\t\tif ( !imageCommand.isEnabled && !linkCommand.isEnabled ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Creates the options object for the CKBox dialog.\n\t *\n\t * @returns The object with properties:\n\t * - theme The theme for CKBox dialog.\n\t * - language The language for CKBox dialog.\n\t * - tokenUrl The token endpoint URL.\n\t * - serviceOrigin The base URL of the API service.\n\t * - forceDemoLabel Whether to force \"Powered by CKBox\" link.\n\t * - 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\n\t\t// Refresh the command after firing the `ckbox:*` event.\n\t\tthis.on<CKBoxEvent>( 'ckbox', () => {\n\t\t\tthis.refresh();\n\t\t}, { priority: 'low' } );\n\n\t\t// Handle opening of the CKBox dialog.\n\t\tthis.on<CKBoxEvent<'open'>>( 'ckbox:open', () => {\n\t\t\tif ( !this.isEnabled || this.value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._wrapper = createElement( document, 'div', { class: 'ck ckbox-wrapper' } );\n\t\t\tdocument.body.appendChild( this._wrapper );\n\n\t\t\twindow.CKBox.mount( this._wrapper, this._prepareOptions() );\n\t\t} );\n\n\t\t// Handle closing of the CKBox dialog.\n\t\tthis.on<CKBoxEvent<'close'>>( 'ckbox:close', () => {\n\t\t\tif ( !this.value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._wrapper!.remove();\n\t\t\tthis._wrapper = null;\n\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\t// Handle choosing the assets.\n\t\tthis.on<CKBoxEvent<'choose'>>( 'ckbox:choose', ( evt, assets ) => {\n\t\t\tif ( !this.isEnabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst imageCommand = editor.commands.get( 'insertImage' )!;\n\t\t\tconst linkCommand = editor.commands.get( 'link' )!;\n\n\t\t\tconst assetsToProcess = prepareAssets( {\n\t\t\t\tassets,\n\t\t\t\tisImageAllowed: imageCommand.isEnabled,\n\t\t\t\tisLinkAllowed: linkCommand.isEnabled\n\t\t\t} );\n\n\t\t\tconst assetsCount = assetsToProcess.length;\n\n\t\t\tif ( assetsCount === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// All assets are inserted in one undo step.\n\t\t\tmodel.change( writer => {\n\t\t\t\tfor ( const asset of assetsToProcess ) {\n\t\t\t\t\tconst isLastAsset = asset === assetsToProcess[ assetsCount - 1 ];\n\t\t\t\t\tconst isSingleAsset = assetsCount === 1;\n\n\t\t\t\t\tthis._insertAsset( asset, isLastAsset, writer, isSingleAsset );\n\n\t\t\t\t\t// If asset ID must be set for the inserted model element, store the asset temporarily and remove it automatically\n\t\t\t\t\t// after the timeout.\n\t\t\t\t\tif ( shouldInsertDataId ) {\n\t\t\t\t\t\tsetTimeout( () => this._chosenAssets.delete( asset ), ASSET_INSERTION_WAIT_TIMEOUT );\n\n\t\t\t\t\t\tthis._chosenAssets.add( asset );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\t// Clean up after the editor is destroyed.\n\t\tthis.listenTo( editor, 'destroy', () => {\n\t\t\tthis.fire<CKBoxEvent<'close'>>( 'ckbox:close' );\n\t\t\tthis._chosenAssets.clear();\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts the asset into the model.\n\t *\n\t * @param asset The asset to be inserted.\n\t * @param isLastAsset Indicates if the current asset is the last one from the chosen set.\n\t * @param writer An instance of the model writer.\n\t * @param isSingleAsset It's true when only one asset is processed.\n\t */\n\tprivate _insertAsset(\n\t\tasset: CKBoxAssetDefinition,\n\t\tisLastAsset: boolean,\n\t\twriter: Writer,\n\t\tisSingleAsset: boolean\n\t) {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\n\t\t// Remove the `linkHref` attribute to not affect the asset to be inserted.\n\t\twriter.removeSelectionAttribute( 'linkHref' );\n\n\t\tif ( asset.type === 'image' ) {\n\t\t\tthis._insertImage( asset );\n\t\t} else {\n\t\t\tthis._insertLink( asset, writer, isSingleAsset );\n\t\t}\n\n\t\t// Except for the last chosen asset, move the selection to the end of the current range to avoid overwriting other, already\n\t\t// inserted assets.\n\t\tif ( !isLastAsset ) {\n\t\t\twriter.setSelection( selection.getLastPosition() );\n\t\t}\n\t}\n\n\t/**\n\t * Inserts the image by calling the `insertImage` command.\n\t *\n\t * @param asset The asset to be inserted.\n\t */\n\tprivate _insertImage( asset: CKBoxAssetImageDefinition ) {\n\t\tconst editor = this.editor;\n\t\tconst {\n\t\t\timageFallbackUrl,\n\t\t\timageSources,\n\t\t\timageTextAlternative,\n\t\t\timageWidth,\n\t\t\timageHeight,\n\t\t\timagePlaceholder\n\t\t} = asset.attributes;\n\n\t\teditor.execute( 'insertImage', {\n\t\t\tsource: {\n\t\t\t\tsrc: imageFallbackUrl,\n\t\t\t\tsources: imageSources,\n\t\t\t\talt: imageTextAlternative,\n\t\t\t\twidth: imageWidth,\n\t\t\t\theight: imageHeight,\n\t\t\t\t...( imagePlaceholder ? { placeholder: imagePlaceholder } : null )\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts the link to the asset by calling the `link` command.\n\t *\n\t * @param asset The asset to be inserted.\n\t * @param writer An instance of the model writer.\n\t * @param isSingleAsset It's true when only one asset is processed.\n\t */\n\tprivate _insertLink( asset: CKBoxAssetLinkDefinition, writer: Writer, isSingleAsset: boolean ): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst { linkName, linkHref } = asset.attributes;\n\n\t\t// If the selection is collapsed, insert the asset name as the link label and select it.\n\t\tif ( selection.isCollapsed ) {\n\t\t\tconst selectionAttributes = toMap( selection.getAttributes() );\n\t\t\tconst textNode = writer.createText( linkName, selectionAttributes );\n\n\t\t\tif ( !isSingleAsset ) {\n\t\t\t\tconst selectionLastPosition = selection.getLastPosition()!;\n\t\t\t\tconst parentElement = selectionLastPosition.parent;\n\n\t\t\t\t// Insert new `paragraph` when selection is not in an empty `paragraph`.\n\t\t\t\tif ( !( parentElement.name === 'paragraph' && parentElement.isEmpty ) ) {\n\t\t\t\t\teditor.execute( 'insertParagraph', {\n\t\t\t\t\t\tposition: selectionLastPosition\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tconst range = model.insertContent( textNode );\n\n\t\t\t\twriter.setSelection( range );\n\t\t\t\teditor.execute( 'link', linkHref );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst range = model.insertContent( textNode );\n\n\t\t\twriter.setSelection( range );\n\t\t}\n\n\t\teditor.execute( 'link', linkHref );\n\t}\n}\n\n/**\n * Parses the chosen assets into the internal data format. Filters out chosen assets that are not allowed.\n */\nfunction prepareAssets(\n\t{ assets, isImageAllowed, isLinkAllowed }: {\n\t\tassets: Array<CKBoxRawAssetDefinition>;\n\t\tisImageAllowed: boolean;\n\t\tisLinkAllowed: boolean;\n\t}\n): Array<CKBoxAssetDefinition> {\n\treturn assets\n\t\t.map( asset => isImage( asset ) ?\n\t\t\t{\n\t\t\t\tid: asset.data.id,\n\t\t\t\ttype: 'image',\n\t\t\t\tattributes: prepareImageAssetAttributes( asset )\n\t\t\t} as const :\n\t\t\t{\n\t\t\t\tid: asset.data.id,\n\t\t\t\ttype: 'link',\n\t\t\t\tattributes: prepareLinkAssetAttributes( asset )\n\t\t\t} as const\n\t\t)\n\t\t.filter( asset => asset.type === 'image' ? isImageAllowed : isLinkAllowed );\n}\n\n/**\n * Parses the assets attributes into the internal data format.\n *\n * @internal\n */\nexport function prepareImageAssetAttributes( asset: CKBoxRawAssetDefinition ): CKBoxAssetImageAttributesDefinition {\n\tconst { imageFallbackUrl, imageSources } = getImageUrls( asset.data.imageUrls! );\n\tconst { description, width, height, blurHash } = asset.data.metadata!;\n\tconst imagePlaceholder = blurHashToDataUrl( blurHash );\n\n\treturn {\n\t\timageFallbackUrl,\n\t\timageSources,\n\t\timageTextAlternative: description || '',\n\t\timageWidth: width,\n\t\timageHeight: height,\n\t\t...( imagePlaceholder ? { imagePlaceholder } : null )\n\t};\n}\n\n/**\n * Parses the assets attributes into the internal data format.\n *\n * @param origin The base URL for assets inserted into the editor.\n */\nfunction prepareLinkAssetAttributes( asset: CKBoxRawAssetDefinition ): CKBoxAssetLinkAttributesDefinition {\n\treturn {\n\t\tlinkName: asset.data.name,\n\t\tlinkHref: getAssetUrl( asset )\n\t};\n}\n\n/**\n * Checks whether the asset is an image.\n */\nfunction isImage( asset: CKBoxRawAssetDefinition ) {\n\tconst metadata = asset.data.metadata;\n\n\tif ( !metadata ) {\n\t\treturn false;\n\t}\n\n\treturn metadata.width && metadata.height;\n}\n\n/**\n * Creates the URL for the asset.\n *\n * @param origin The base URL for assets inserted into the editor.\n */\nfunction getAssetUrl( asset: CKBoxRawAssetDefinition ) {\n\tconst url = new URL( asset.data.url );\n\n\turl.searchParams.set( 'download', 'true' );\n\n\treturn url.toString();\n}\n\n/**\n * Fired when the command is executed, the dialog is closed or the assets are chosen.\n *\n * @eventName ~CKBoxCommand#ckbox\n */\ntype CKBoxEvent<Name extends '' | 'choose' | 'open' | 'close' = ''> = {\n\tname: Name extends '' ? 'ckbox' : `ckbox:${ Name }`;\n\targs: Name extends 'choose' ? [ assets: Array<CKBoxRawAssetDefinition> ] : [];\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals window */\n\n/**\n * @module ckbox/ckboxutils\n */\n\nimport type { CloudServices, InitializedToken } from '@ckeditor/ckeditor5-cloud-services';\nimport { CKEditorError, logError } from 'ckeditor5/src/utils.js';\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport {\n\tconvertMimeTypeToExtension,\n\tgetContentTypeOfUrl,\n\tgetFileExtension,\n\tgetWorkspaceId,\n\tsendHttpRequest\n} from './utils.js';\n\nconst DEFAULT_CKBOX_THEME_NAME = 'lark';\n\n/**\n * The CKBox utilities plugin.\n */\nexport default class CKBoxUtils extends Plugin {\n\t/**\n\t * CKEditor Cloud Services access token.\n\t */\n\tprivate _token!: 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 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\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\ninterface AvailableCategory {\n\tid: string;\n\tname: string;\n\textensions: Array<string>;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals AbortController, FormData, URL, window */\n\n/**\n * @module ckbox/ckboxuploadadapter\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport {\n\tFileRepository,\n\ttype FileLoader,\n\ttype UploadAdapter,\n\ttype UploadResponse\n} from 'ckeditor5/src/upload.js';\n\nimport type { InitializedToken } from '@ckeditor/ckeditor5-cloud-services';\nimport type { ImageUploadCompleteEvent, ImageUploadEditing } from '@ckeditor/ckeditor5-image';\n\nimport CKBoxEditing from './ckboxediting.js';\nimport {\n\tgetImageUrls,\n\tsendHttpRequest\n} from './utils.js';\nimport CKBoxUtils from './ckboxutils.js';\n\n/**\n * A plugin that enables file uploads in CKEditor 5 using the CKBox server–side connector.\n * See the {@glink features/file-management/ckbox CKBox file manager integration} guide to learn how to configure\n * and use this feature as well as find out more about the full integration with the file manager\n * provided by the {@link module:ckbox/ckbox~CKBox} plugin.\n *\n * Check out the {@glink features/images/image-upload/image-upload Image upload overview} guide to learn about\n * other ways to upload images into CKEditor 5.\n */\nexport default class CKBoxUploadAdapter extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ 'ImageUploadEditing', 'ImageUploadProgress', FileRepository, CKBoxEditing ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxUploadAdapter' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic async afterInit(): Promise<void> {\n\t\tconst editor = this.editor;\n\n\t\tconst hasConfiguration = !!editor.config.get( 'ckbox' );\n\t\tconst isLibraryLoaded = !!window.CKBox;\n\n\t\t// Editor supports only one upload adapter. Register the CKBox upload adapter (and potentially overwrite other one) only when the\n\t\t// integrator intentionally wants to use the CKBox plugin, i.e. when the `config.ckbox` exists or the CKBox JavaScript library is\n\t\t// loaded.\n\t\tif ( !hasConfiguration && !isLibraryLoaded ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst fileRepository = editor.plugins.get( FileRepository );\n\t\tconst ckboxUtils = editor.plugins.get( CKBoxUtils );\n\n\t\tfileRepository.createUploadAdapter = loader => new Adapter( loader, editor, ckboxUtils );\n\n\t\tconst shouldInsertDataId = !editor.config.get( 'ckbox.ignoreDataId' );\n\t\tconst imageUploadEditing: ImageUploadEditing = editor.plugins.get( 'ImageUploadEditing' );\n\n\t\t// Mark uploaded assets with the `ckboxImageId` attribute. Its value represents an ID in CKBox.\n\t\tif ( shouldInsertDataId ) {\n\t\t\timageUploadEditing.on<ImageUploadCompleteEvent>( 'uploadComplete', ( evt, { imageElement, data } ) => {\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\twriter.setAttribute( 'ckboxImageId', data.ckboxImageId, imageElement );\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Upload adapter for CKBox.\n */\nclass Adapter implements UploadAdapter {\n\t/**\n\t * FileLoader instance to use during the upload.\n\t */\n\tpublic loader: FileLoader;\n\n\t/**\n\t * CKEditor Cloud Services access token.\n\t */\n\tpublic token: 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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals window */\n\n/**\n * @module ckbox/ckboxediting\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport {\n\tRange,\n\ttype DocumentSelection,\n\ttype DowncastAttributeEvent,\n\ttype DowncastWriter,\n\ttype Element,\n\ttype Item,\n\ttype Node,\n\ttype UpcastElementEvent,\n\ttype ViewElement,\n\ttype Writer\n} from 'ckeditor5/src/engine.js';\nimport { logError, type DecoratedMethodEvent } from 'ckeditor5/src/utils.js';\n\nimport type { CKBoxAssetDefinition } from './ckboxconfig.js';\n\nimport CKBoxCommand from './ckboxcommand.js';\nimport CKBoxUploadAdapter from './ckboxuploadadapter.js';\nimport CKBoxUtils from './ckboxutils.js';\n\nimport type { ReplaceImageSourceCommand } from '@ckeditor/ckeditor5-image';\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 default 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 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\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<Element>>( 'attribute:ckboxLinkId:imageBlock', ( evt, data, conversionApi ) => {\n\t\t\t\tconst { writer, mapper, consumable } = conversionApi;\n\n\t\t\t\tif ( !consumable.consume( data.item, evt.name ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst viewFigure = mapper.toViewElement( data.item );\n\t\t\t\tconst linkInImage = [ ...viewFigure!.getChildren() ]\n\t\t\t\t\t.find( ( child: any ) => child.name === 'a' ) as ViewElement | undefined;\n\n\t\t\t\t// No link inside an image - no conversion needed.\n\t\t\t\tif ( !linkInImage ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( data.item.hasAttribute( 'ckboxLinkId' ) ) {\n\t\t\t\t\twriter.setAttribute( 'data-ckbox-resource-id', data.item.getAttribute( 'ckboxLinkId' ), linkInImage );\n\t\t\t\t} else {\n\t\t\t\t\twriter.removeAttribute( 'data-ckbox-resource-id', linkInImage );\n\t\t\t\t}\n\t\t\t}, { priority: 'low' } );\n\n\t\t\tdispatcher.on<DowncastAttributeEvent>( 'attribute:ckboxLinkId', ( evt, data, conversionApi ) => {\n\t\t\t\tconst { writer, mapper, consumable } = conversionApi;\n\n\t\t\t\tif ( !consumable.consume( data.item, evt.name ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Remove the previous attribute value if it was applied.\n\t\t\t\tif ( data.attributeOldValue ) {\n\t\t\t\t\tconst viewElement = createLinkElement( writer, data.attributeOldValue as string );\n\n\t\t\t\t\twriter.unwrap( mapper.toViewRange( data.range ), viewElement );\n\t\t\t\t}\n\n\t\t\t\t// Add the new attribute value if specified in a model element.\n\t\t\t\tif ( data.attributeNewValue ) {\n\t\t\t\t\tconst viewElement = createLinkElement( writer, data.attributeNewValue as string );\n\n\t\t\t\t\tif ( data.item.is( 'selection' ) ) {\n\t\t\t\t\t\tconst viewSelection = writer.document.selection;\n\n\t\t\t\t\t\twriter.wrap( viewSelection.getFirstRange()!, viewElement );\n\t\t\t\t\t} else {\n\t\t\t\t\t\twriter.wrap( mapper.toViewRange( data.range ), viewElement );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, { priority: 'low' } );\n\t\t} );\n\n\t\t// Convert `data-ckbox-resource-id` => `ckboxLinkId`.\n\t\t//\n\t\t// The helper conversion does not handle all cases, so take care of the `data-ckbox-resource-id` attribute manually for images\n\t\t// and links.\n\t\teditor.conversion.for( 'upcast' ).add( dispatcher => {\n\t\t\tdispatcher.on<UpcastElementEvent>( 'element:a', ( evt, data, conversionApi ) => {\n\t\t\t\tconst { writer, consumable } = conversionApi;\n\n\t\t\t\t// Upcast the `data-ckbox-resource-id` attribute only for valid link elements.\n\t\t\t\tif ( !data.viewItem.getAttribute( 'href' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst consumableAttributes = { attributes: [ 'data-ckbox-resource-id' ] };\n\n\t\t\t\tif ( !consumable.consume( data.viewItem, consumableAttributes ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst attributeValue = data.viewItem.getAttribute( 'data-ckbox-resource-id' );\n\n\t\t\t\t// Missing the `data-ckbox-resource-id` attribute.\n\t\t\t\tif ( !attributeValue ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( data.modelRange ) {\n\t\t\t\t\t// If the `<a>` element contains more than single children (e.g. a linked image), set the `ckboxLinkId` for each\n\t\t\t\t\t// allowed child.\n\t\t\t\t\tfor ( let item of data.modelRange.getItems() ) {\n\t\t\t\t\t\tif ( item.is( '$textProxy' ) ) {\n\t\t\t\t\t\t\titem = item.textNode;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Do not copy the `ckboxLinkId` attribute when wrapping an element in a block element, e.g. when\n\t\t\t\t\t\t// auto-paragraphing.\n\t\t\t\t\t\tif ( shouldUpcastAttributeForNode( item ) ) {\n\t\t\t\t\t\t\twriter.setAttribute( 'ckboxLinkId', attributeValue, item );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Otherwise, just set the `ckboxLinkId` for the model element.\n\t\t\t\t\tconst modelElement = data.modelCursor.nodeBefore || data.modelCursor.parent;\n\n\t\t\t\t\twriter.setAttribute( 'ckboxLinkId', attributeValue, modelElement as Element );\n\t\t\t\t}\n\t\t\t}, { priority: 'low' } );\n\t\t} );\n\n\t\t// Convert `ckboxImageId` => `data-ckbox-resource-id`.\n\t\teditor.conversion.for( 'downcast' ).attributeToAttribute( {\n\t\t\tmodel: 'ckboxImageId',\n\t\t\tview: 'data-ckbox-resource-id'\n\t\t} );\n\n\t\t// Convert `data-ckbox-resource-id` => `ckboxImageId`.\n\t\teditor.conversion.for( 'upcast' ).elementToAttribute( {\n\t\t\tmodel: {\n\t\t\t\tkey: 'ckboxImageId',\n\t\t\t\tvalue: ( viewElement: ViewElement ) => viewElement.getAttribute( 'data-ckbox-resource-id' )\n\t\t\t},\n\t\t\tview: {\n\t\t\t\tattributes: {\n\t\t\t\t\t'data-ckbox-resource-id': /[\\s\\S]+/\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tconst replaceImageSourceCommand = editor.commands.get( 'replaceImageSource' );\n\n\t\tif ( replaceImageSourceCommand ) {\n\t\t\tthis.listenTo<DecoratedMethodEvent<ReplaceImageSourceCommand, 'cleanupImage'>>(\n\t\t\t\treplaceImageSourceCommand,\n\t\t\t\t'cleanupImage',\n\t\t\t\t( _, [ writer, image ] ) => {\n\t\t\t\t\twriter.removeAttribute( 'ckboxImageId', image );\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Registers post-fixers that add or remove the `ckboxLinkId` and `ckboxImageId` attributes.\n\t */\n\tprivate _initFixers() {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\n\t\t// Registers the post-fixer to sync the asset ID with the model elements.\n\t\tmodel.document.registerPostFixer( syncDataIdPostFixer( editor ) );\n\n\t\t// Registers the post-fixer to remove the `ckboxLinkId` attribute from the model selection.\n\t\tmodel.document.registerPostFixer( injectSelectionPostFixer( selection ) );\n\t}\n}\n\n/**\n * A post-fixer that synchronizes the asset ID with the model element.\n */\nfunction syncDataIdPostFixer( editor: Editor ) {\n\treturn ( writer: Writer ) => {\n\t\tlet changed = false;\n\n\t\tconst model = editor.model;\n\t\tconst ckboxCommand: CKBoxCommand = editor.commands.get( 'ckbox' )!;\n\n\t\t// The ID from chosen assets are stored in the `CKBoxCommand#_chosenAssets`. If there is no command, it makes no sense to check\n\t\t// for changes in the model.\n\t\tif ( !ckboxCommand ) {\n\t\t\treturn changed;\n\t\t}\n\n\t\tfor ( const entry of model.document.differ.getChanges() ) {\n\t\t\tif ( entry.type !== 'insert' && entry.type !== 'attribute' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst range = entry.type === 'insert' ?\n\t\t\t\tnew Range( entry.position, entry.position.getShiftedBy( entry.length ) ) :\n\t\t\t\tentry.range;\n\n\t\t\tconst isLinkHrefAttributeRemoval = entry.type === 'attribute' &&\n\t\t\t\tentry.attributeKey === 'linkHref' &&\n\t\t\t\tentry.attributeNewValue === null;\n\n\t\t\tfor ( const item of range.getItems() ) {\n\t\t\t\t// If the `linkHref` attribute has been removed, sync the change with the `ckboxLinkId` attribute.\n\t\t\t\tif ( isLinkHrefAttributeRemoval && item.hasAttribute( 'ckboxLinkId' ) ) {\n\t\t\t\t\twriter.removeAttribute( 'ckboxLinkId', item );\n\n\t\t\t\t\tchanged = true;\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Otherwise, the change concerns either a new model element or an attribute change. Try to find the assets for the modified\n\t\t\t\t// model element.\n\t\t\t\tconst assets = findAssetsForItem( item, ckboxCommand._chosenAssets );\n\n\t\t\t\tfor ( const asset of assets ) {\n\t\t\t\t\tconst attributeName = asset.type === 'image' ? 'ckboxImageId' : 'ckboxLinkId';\n\n\t\t\t\t\tif ( asset.id === item.getAttribute( attributeName ) ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\twriter.setAttribute( attributeName, asset.id, item );\n\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn changed;\n\t};\n}\n\n/**\n * A post-fixer that removes the `ckboxLinkId` from the selection if it does not represent a link anymore.\n */\nfunction injectSelectionPostFixer( selection: DocumentSelection ) {\n\treturn ( writer: Writer ) => {\n\t\tconst shouldRemoveLinkIdAttribute = !selection.hasAttribute( 'linkHref' ) && selection.hasAttribute( 'ckboxLinkId' );\n\n\t\tif ( shouldRemoveLinkIdAttribute ) {\n\t\t\twriter.removeSelectionAttribute( 'ckboxLinkId' );\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n}\n\n/**\n * Tries to find the asset that is associated with the model element by comparing the attributes:\n * - the image fallback URL with the `src` attribute for images,\n * - the link URL with the `href` attribute for links.\n *\n * For any model element, zero, one or more than one asset can be found (e.g. a linked image may be associated with the link asset and the\n * image asset).\n */\nfunction findAssetsForItem( item: Item, assets: Set<CKBoxAssetDefinition> ) {\n\tconst isImageElement = item.is( 'element', 'imageInline' ) || item.is( 'element', 'imageBlock' );\n\tconst isLinkElement = item.hasAttribute( 'linkHref' );\n\n\treturn [ ...assets ].filter( asset => {\n\t\tif ( asset.type === 'image' && isImageElement ) {\n\t\t\treturn asset.attributes.imageFallbackUrl === item.getAttribute( 'src' );\n\t\t}\n\n\t\tif ( asset.type === 'link' && isLinkElement ) {\n\t\t\treturn asset.attributes.linkHref === item.getAttribute( 'linkHref' );\n\t\t}\n\t} );\n}\n\n/**\n * Creates view link element with the requested ID.\n */\nfunction createLinkElement( writer: DowncastWriter, id: string ) {\n\t// Priority equal 5 is needed to merge adjacent `<a>` elements together.\n\tconst viewElement = writer.createAttributeElement( 'a', { 'data-ckbox-resource-id': id }, { priority: 5 } );\n\n\twriter.setCustomProperty( 'link', true, viewElement );\n\n\treturn viewElement;\n}\n\n/**\n * Checks if the model element may have the `ckboxLinkId` attribute.\n */\nfunction shouldUpcastAttributeForNode( node: Node ) {\n\tif ( node.is( '$text' ) ) {\n\t\treturn true;\n\t}\n\n\tif ( node.is( 'element', 'imageInline' ) || node.is( 'element', 'imageBlock' ) ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Returns true if the CKBox library is loaded, false otherwise.\n */\nfunction isLibraryLoaded(): boolean {\n\treturn !!window.CKBox;\n}\n\n/**\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckbox\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport CKBoxUI from './ckboxui.js';\nimport CKBoxEditing from './ckboxediting.js';\n\n/**\n * The CKBox feature, a bridge between the CKEditor 5 WYSIWYG editor and the CKBox file manager and uploader.\n *\n * This is a \"glue\" plugin which enables:\n *\n * * {@link module:ckbox/ckboxediting~CKBoxEditing},\n * * {@link module:ckbox/ckboxui~CKBoxUI},\n *\n * See the {@glink features/file-management/ckbox CKBox integration} guide to learn how to configure and use this feature.\n *\n * Check out the {@glink features/images/image-upload/image-upload Image upload} guide to learn about other ways to upload\n * images into CKEditor 5.\n */\nexport default class CKBox extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBox' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ CKBoxEditing, CKBoxUI ] as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckboximageedit/utils\n */\n\nimport { global } from 'ckeditor5/src/utils.js';\n\nimport type { Element } from 'ckeditor5/src/engine.js';\nimport type { CKBoxConfig } from '../ckboxconfig.js';\n\n/**\n * @internal\n */\nexport function createEditabilityChecker(\n\tallowExternalImagesEditing: CKBoxConfig[ 'allowExternalImagesEditing' ]\n): ( element: Element ) => boolean {\n\tconst checkUrl = createUrlChecker( allowExternalImagesEditing );\n\n\treturn element => {\n\t\tconst isImageElement =\n\t\t\telement.is( 'element', 'imageInline' ) ||\n\t\t\telement.is( 'element', 'imageBlock' );\n\n\t\tif ( !isImageElement ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( element.hasAttribute( 'ckboxImageId' ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( element.hasAttribute( 'src' ) ) {\n\t\t\treturn checkUrl( element.getAttribute( 'src' ) as string );\n\t\t}\n\n\t\treturn false;\n\t};\n}\n\nfunction createUrlChecker(\n\tallowExternalImagesEditing: CKBoxConfig[ 'allowExternalImagesEditing' ]\n): ( src: string ) => boolean {\n\tif ( Array.isArray( allowExternalImagesEditing ) ) {\n\t\tconst urlMatchers = allowExternalImagesEditing.map( createUrlChecker );\n\n\t\treturn src => urlMatchers.some( matcher => matcher( src ) );\n\t}\n\n\tif ( allowExternalImagesEditing == 'origin' ) {\n\t\tconst origin = global.window.location.origin;\n\n\t\treturn src => new URL( src, global.document.baseURI ).origin == origin;\n\t}\n\n\tif ( typeof allowExternalImagesEditing == 'function' ) {\n\t\treturn allowExternalImagesEditing;\n\t}\n\n\tif ( allowExternalImagesEditing instanceof RegExp ) {\n\t\treturn src => !!(\n\t\t\tsrc.match( allowExternalImagesEditing ) ||\n\t\t\tsrc.replace( /^https?:\\/\\//, '' ).match( allowExternalImagesEditing )\n\t\t);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst shouldBeUndefned: undefined = allowExternalImagesEditing;\n\n\treturn () => false;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals document, console, AbortController, URL, window */\n\n/**\n * @module ckbox/ckboximageedit/ckboximageeditcommand\n */\n\nimport { Command, PendingActions, type Editor } from 'ckeditor5/src/core.js';\nimport {\n\tCKEditorError,\n\tabortableDebounce,\n\tcreateElement,\n\tretry,\n\tdelay,\n\ttype AbortableFunc\n} from 'ckeditor5/src/utils.js';\nimport type { Element as ModelElement } from 'ckeditor5/src/engine.js';\nimport { Notification } from 'ckeditor5/src/ui.js';\nimport { isEqual } from 'lodash-es';\n\nimport { sendHttpRequest } from '../utils.js';\nimport { prepareImageAssetAttributes } from '../ckboxcommand.js';\nimport type { CKBoxRawAssetDefinition, CKBoxRawAssetDataDefinition } from '../ckboxconfig.js';\n\nimport type { ImageUtils } from '@ckeditor/ckeditor5-image';\nimport { createEditabilityChecker } from './utils.js';\nimport CKBoxUtils from '../ckboxutils.js';\n\n/**\n * The CKBox edit image command.\n *\n * Opens the CKBox dialog for editing the image.\n */\nexport default class CKBoxImageEditCommand extends Command {\n\t/**\n\t * Flag indicating whether the command is active, i.e. dialog is open.\n\t */\n\tdeclare public value: boolean;\n\n\t/**\n\t * The DOM element that acts as a mounting point for the CKBox Edit Image dialog.\n\t */\n\tprivate _wrapper: Element | null = null;\n\n\t/**\n\t * The states of image processing in progress.\n\t */\n\tprivate _processInProgress = new Set<ProcessingState>();\n\n\t/**\n\t * Determines if the element can be edited.\n\t */\n\tprivate _canEdit: ( element: ModelElement ) => boolean;\n\n\t/**\n\t * A wrapper function to prepare mount options. Ensures that at most one preparation is in-flight.\n\t */\n\tprivate _prepareOptions: AbortableFunc<[ ProcessingState ], Promise<Record<string, unknown>>>;\n\n\t/**\n\t* CKBox's onClose function runs before the final cleanup, potentially causing\n\t* page layout changes after it finishes. To address this, we use a setTimeout hack\n\t* to ensure that floating elements on the page maintain their correct position.\n\t*\n\t* See: https://github.com/ckeditor/ckeditor5/issues/16153.\n\t*/\n\tprivate _updateUiDelayed = delay( () => this.editor.ui.update(), 0 );\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis.value = false;\n\n\t\tthis._canEdit = createEditabilityChecker( editor.config.get( 'ckbox.allowExternalImagesEditing' ) );\n\t\tthis._prepareOptions = abortableDebounce( ( signal, state ) => this._prepareOptionsAbortable( signal, state ) );\n\n\t\tthis._prepareListeners();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst editor = this.editor;\n\n\t\tthis.value = this._getValue();\n\n\t\tconst selectedElement = editor.model.document.selection.getSelectedElement();\n\n\t\tthis.isEnabled =\n\t\t\t!!selectedElement &&\n\t\t\tthis._canEdit( selectedElement ) &&\n\t\t\t!this._checkIfElementIsBeingProcessed( selectedElement );\n\t}\n\n\t/**\n\t * Opens the CKBox Image Editor dialog for editing the image.\n\t */\n\tpublic override execute(): void {\n\t\tif ( this._getValue() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst wrapper = createElement( document, 'div', { class: 'ck ckbox-wrapper' } );\n\n\t\tthis._wrapper = wrapper;\n\t\tthis.value = true;\n\n\t\tdocument.body.appendChild( this._wrapper );\n\n\t\tconst imageElement = this.editor.model.document.selection.getSelectedElement()!;\n\n\t\tconst processingState: ProcessingState = {\n\t\t\telement: imageElement,\n\t\t\tcontroller: new AbortController()\n\t\t};\n\n\t\tthis._prepareOptions( processingState ).then(\n\t\t\toptions => window.CKBox.mountImageEditor( wrapper, options ),\n\t\t\terror => {\n\t\t\t\tconst editor = this.editor;\n\t\t\t\tconst t = editor.t;\n\t\t\t\tconst notification = editor.plugins.get( Notification );\n\n\t\t\t\tnotification.showWarning( t( 'Failed to determine category of edited image.' ), {\n\t\t\t\t\tnamespace: 'ckbox'\n\t\t\t\t} );\n\t\t\t\tconsole.error( error );\n\t\t\t\tthis._handleImageEditorClose();\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tthis._handleImageEditorClose();\n\n\t\tthis._prepareOptions.abort();\n\n\t\tthis._updateUiDelayed.cancel();\n\n\t\tfor ( const state of this._processInProgress.values() ) {\n\t\t\tstate.controller.abort();\n\t\t}\n\n\t\tsuper.destroy();\n\t}\n\n\t/**\n\t * Indicates if the CKBox Image Editor dialog is already opened.\n\t */\n\tprivate _getValue(): boolean {\n\t\treturn this._wrapper !== null;\n\t}\n\n\t/**\n\t * Creates the options object for the CKBox Image Editor dialog.\n\t */\n\tprivate async _prepareOptionsAbortable( signal: AbortSignal, state: ProcessingState ) {\n\t\tconst editor = this.editor;\n\t\tconst ckboxConfig = editor.config.get( 'ckbox' )!;\n\t\tconst ckboxUtils = editor.plugins.get( CKBoxUtils );\n\t\tconst { element } = state;\n\n\t\tlet imageMountOptions;\n\t\tconst ckboxImageId = element.getAttribute( 'ckboxImageId' );\n\n\t\tif ( ckboxImageId ) {\n\t\t\timageMountOptions = {\n\t\t\t\tassetId: ckboxImageId\n\t\t\t};\n\t\t} else {\n\t\t\tconst imageUrl = new URL( element.getAttribute( 'src' ) as string, document.baseURI ).href;\n\t\t\tconst uploadCategoryId = await ckboxUtils.getCategoryIdForFile( imageUrl, { signal } );\n\n\t\t\timageMountOptions = {\n\t\t\t\timageUrl,\n\t\t\t\tuploadCategoryId\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\t...imageMountOptions,\n\t\t\timageEditing: {\n\t\t\t\tallowOverwrite: false\n\t\t\t},\n\t\t\ttokenUrl: ckboxConfig.tokenUrl,\n\t\t\t...( ckboxConfig.serviceOrigin && { serviceOrigin: ckboxConfig.serviceOrigin } ),\n\t\t\tonClose: () => this._handleImageEditorClose(),\n\t\t\tonSave: ( asset: CKBoxRawAssetDefinition ) => this._handleImageEditorSave( state, asset )\n\t\t};\n\t}\n\n\t/**\n\t * Initializes event lister for an event of removing an image.\n\t */\n\tprivate _prepareListeners(): void {\n\t\t// Abort editing processing when the image has been removed.\n\t\tthis.listenTo( this.editor.model.document, 'change:data', () => {\n\t\t\tconst processingStates = this._getProcessingStatesOfDeletedImages();\n\n\t\t\tprocessingStates.forEach( processingState => {\n\t\t\t\tprocessingState.controller.abort();\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Gets processing states of images that have been deleted in the mean time.\n\t */\n\tprivate _getProcessingStatesOfDeletedImages(): Array<ProcessingState> {\n\t\tconst states: Array<ProcessingState> = [];\n\n\t\tfor ( const state of this._processInProgress.values() ) {\n\t\t\tif ( state.element.root.rootName == '$graveyard' ) {\n\t\t\t\tstates.push( state );\n\t\t\t}\n\t\t}\n\n\t\treturn states;\n\t}\n\n\tprivate _checkIfElementIsBeingProcessed( selectedElement: ModelElement ) {\n\t\tfor ( const { element } of this._processInProgress ) {\n\t\t\tif ( isEqual( element, selectedElement ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Closes the CKBox Image Editor dialog.\n\t */\n\tprivate _handleImageEditorClose() {\n\t\tif ( !this._wrapper ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._wrapper.remove();\n\t\tthis._wrapper = null;\n\n\t\tthis.editor.editing.view.focus();\n\n\t\tthis._updateUiDelayed();\n\n\t\tthis.refresh();\n\t}\n\n\t/**\n\t * Save edited image. In case server respond with \"success\" replace with edited image,\n\t * otherwise show notification error.\n\t */\n\tprivate _handleImageEditorSave( state: ProcessingState, asset: CKBoxRawAssetDefinition ) {\n\t\tconst t = this.editor.locale.t;\n\t\tconst notification = this.editor.plugins.get( Notification );\n\t\tconst pendingActions = this.editor.plugins.get( PendingActions );\n\t\tconst action = pendingActions.add( t( 'Processing the edited image.' ) );\n\n\t\tthis._processInProgress.add( state );\n\t\tthis._showImageProcessingIndicator( state.element, asset );\n\t\tthis.refresh();\n\n\t\tthis._waitForAssetProcessed( asset.data.id, state.controller.signal )\n\t\t\t.then(\n\t\t\t\tasset => {\n\t\t\t\t\tthis._replaceImage( state.element, asset );\n\t\t\t\t},\n\t\t\t\terror => {\n\t\t\t\t\t// Remove processing indicator. It was added only to ViewElement.\n\t\t\t\t\tthis.editor.editing.reconvertItem( state.element );\n\n\t\t\t\t\tif ( state.controller.signal.aborted ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !error || error instanceof CKEditorError ) {\n\t\t\t\t\t\tnotification.showWarning( t( 'Server failed to process the image.' ), {\n\t\t\t\t\t\t\tnamespace: 'ckbox'\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.error( error );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t).finally( () => {\n\t\t\t\tthis._processInProgress.delete( state );\n\t\t\t\tpendingActions.remove( action );\n\t\t\t\tthis.refresh();\n\t\t\t} );\n\t}\n\n\t/**\n\t * Get asset's status on server. If server responds with \"success\" status then\n\t * image is already proceeded and ready for saving.\n\t */\n\tprivate async _getAssetStatusFromServer( id: string, signal: AbortSignal ): Promise<CKBoxRawAssetDefinition> {\n\t\tconst ckboxUtils = this.editor.plugins.get( CKBoxUtils );\n\n\t\tconst url = new URL( 'assets/' + id, this.editor.config.get( 'ckbox.serviceOrigin' )! );\n\t\tconst response: CKBoxRawAssetDataDefinition = await sendHttpRequest( {\n\t\t\turl,\n\t\t\tsignal,\n\t\t\tauthorization: ( 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\tsource: {\n\t\t\t\t\tsrc: imageFallbackUrl,\n\t\t\t\t\tsources: imageSources,\n\t\t\t\t\twidth: imageWidth,\n\t\t\t\t\theight: imageHeight,\n\t\t\t\t\t...( imagePlaceholder ? { placeholder: imagePlaceholder } : null ),\n\t\t\t\t\t...( element.hasAttribute( 'alt' ) ? { alt: element.getAttribute( 'alt' ) } : null )\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tconst previousChildren = element.getChildren();\n\n\t\t\telement = editor.model.document.selection.getSelectedElement()!;\n\n\t\t\tfor ( const child of previousChildren ) {\n\t\t\t\twriter.append( writer.cloneElement( child as ModelElement ), element );\n\t\t\t}\n\n\t\t\twriter.setAttribute( 'ckboxImageId', asset.data.id, element );\n\n\t\t\twriter.setSelection( previousSelectionRanges );\n\t\t} );\n\t}\n}\n\ninterface ProcessingState {\n\telement: ModelElement;\n\tcontroller: AbortController;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckboximageedit/ckboximageeditediting\n */\n\nimport { PendingActions, Plugin } from 'ckeditor5/src/core.js';\nimport { Notification } from 'ckeditor5/src/ui.js';\nimport CKBoxImageEditCommand from './ckboximageeditcommand.js';\nimport CKBoxEditing from '../ckboxediting.js';\nimport CKBoxUtils from '../ckboxutils.js';\n\n/**\n * The CKBox image edit editing plugin.\n */\nexport default class CKBoxImageEditEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxImageEditEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ CKBoxEditing, CKBoxUtils, PendingActions, Notification, 'ImageUtils', 'ImageEditing' ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst { editor } = this;\n\n\t\teditor.commands.add( 'ckboxImageEdit', new CKBoxImageEditCommand( editor ) );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckboximageedit/ckboximageeditui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView } from 'ckeditor5/src/ui.js';\n\nimport ckboxImageEditIcon from '../../theme/icons/ckbox-image-edit.svg';\n\n/**\n * The UI plugin of the CKBox image edit feature.\n *\n * It registers the `'ckboxImageEdit'` UI button in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}\n * that allows you to open the CKBox dialog and edit the image.\n */\nexport default class CKBoxImageEditUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxImageEditUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( 'ckboxImageEdit', locale => {\n\t\t\tconst command = editor.commands.get( 'ckboxImageEdit' )!;\n\t\t\tconst 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: ckboxImageEditIcon,\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckboximageedit\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport CKBoxImageEditEditing from './ckboximageedit/ckboximageeditediting.js';\nimport CKBoxImageEditUI from './ckboximageedit/ckboximageeditui.js';\n\nimport '../theme/ckboximageedit.css';\n\n/**\n * The CKBox image edit feature.\n */\nexport default class CKBoxImageEdit extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxImageEdit' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ CKBoxImageEditEditing, CKBoxImageEditUI ] as const;\n\t}\n}\n"]}
|
1
|
+
{"version":3,"sources":["index.js","../src/ckboxui.ts","../src/utils.ts","../src/ckboxcommand.ts","../src/ckboxutils.ts","../src/ckboxuploadadapter.ts","../src/ckboxediting.ts","../src/ckbox.ts","../src/ckboximageedit/utils.ts","../src/ckboximageedit/ckboximageeditcommand.ts","../src/ckboximageedit/ckboximageeditediting.ts","../src/ckboximageedit/ckboximageeditui.ts","../src/ckboximageedit.ts"],"names":["CKBoxUI","Plugin","pluginName","editor","commands","get","ui","componentFactory","add","_createFileToolbarButton","_createFileMenuBarButton","plugins","has","registerIntegration","name","observable","buttonViewCreator","_createImageToolbarButton","formViewCreator","_createImageDropdownButton","menuBarButtonViewCreator","isOnly","_createImageMenuBarButton","_createButton","ButtonClass","locale","view","command","bind","to","on","execute","t","button","ButtonView","icon","icons","browseFiles","label","tooltip","imageInsertUI","imageAssetManager","isImageSelected","withText","dropdownView","isOpen","MenuBarMenuListItemButtonView","type","getImageUrls","imageUrls","responsiveUrls","maxWidth","key","width","parseInt","isNaN","push","imageSources","srcset","join","sizes","imageFallbackUrl","default","getWorkspaceId","token","defaultWorkspaceId","binaryTokenPayload","value","split","payload","JSON","parse","atob","workspaces","auth","ckbox","aud","role","includes","BLUR_RESOLUTION","blurHashToDataUrl","hash","resolutionInPx","canvas","document","createElement","setAttribute","ctx","getContext","imageData","createImageData","decoded","decode","data","set","putImageData","toDataURL","e","undefined","sendHttpRequest","url","method","onUploadProgress","signal","authorization","xhr","XMLHttpRequest","open","toString","setRequestHeader","responseType","abortCallback","abort","Promise","resolve","reject","throwIfAborted","addEventListener","removeEventListener","response","statusCode","message","upload","evt","send","MIME_TO_EXTENSION","convertMimeTypeToExtension","mimeType","getContentTypeOfUrl","options","fetch","cache","ok","headers","getFileExtension","file","fileName","extensionRegExp","match","groups","ext","toLowerCase","ASSET_INSERTION_WAIT_TIMEOUT","CKBoxCommand","Command","_chosenAssets","Set","_wrapper","constructor","_initListeners","_getValue","isEnabled","_checkEnabled","fire","imageCommand","linkCommand","ckboxConfig","config","dialog","categories","theme","language","tokenUrl","serviceOrigin","forceDemoLabel","choosableFileExtensions","assets","onChoose","onClose","height","openLastView","startupFolderId","startupCategoryId","hideMaximizeButton","componentsHideTimeout","dialogMinimizeTimeout","model","shouldInsertDataId","refresh","priority","class","body","appendChild","window","CKBox","mount","_prepareOptions","remove","editing","focus","assetsToProcess","prepareAssets","isImageAllowed","isLinkAllowed","assetsCount","length","change","writer","asset","isLastAsset","isSingleAsset","_insertAsset","setTimeout","delete","listenTo","clear","selection","removeSelectionAttribute","_insertImage","_insertLink","setSelection","getLastPosition","imageTextAlternative","imageWidth","imageHeight","imagePlaceholder","attributes","source","src","sources","alt","placeholder","linkName","linkHref","isCollapsed","selectionAttributes","toMap","getAttributes","textNode","createText","selectionLastPosition","parentElement","parent","isEmpty","position","range","insertContent","map","isImage","id","prepareImageAssetAttributes","prepareLinkAssetAttributes","filter","description","blurHash","metadata","getAssetUrl","URL","searchParams","DEFAULT_CKBOX_THEME_NAME","CKBoxUtils","requires","hasConfiguration","isLibraryLoaded","define","defaultUploadCategories","ignoreDataId","uiLanguage","cloudServices","cloudServicesTokenUrl","ckboxTokenUrl","CKEditorError","_token","registerTokenUrl","cannotAccessDefaultWorkspaceError","workspaceId","logError","getCategoryIdForFile","fileOrUrl","cannotFindCategoryError","defaultCategories","allCategoriesPromise","_getAvailableCategories","extension","allCategories","userCategory","Object","keys","find","category","serverCategory","extensions","ITEMS_PER_REQUEST","result","offset","remainingItems","fetchCategories","items","totalCount","categoryUrl","String","CKBoxUploadAdapter","FileRepository","CKBoxEditing","afterInit","fileRepository","ckboxUtils","createUploadAdapter","loader","Adapter","imageUploadEditing","imageElement","ckboxImageId","getToken","controller","AbortController","uploadUrl","formData","FormData","append","requestConfig","lengthComputable","uploadTotal","total","uploaded","loaded","then","catch","genericError","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","Range","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","_updateUiDelayed","delay","update","_canEdit","abortableDebounce","state","_prepareOptionsAbortable","_prepareListeners","selectedElement","getSelectedElement","_checkIfElementIsBeingProcessed","wrapper","processingState","mountImageEditor","error","notification","Notification","showWarning","namespace","console","_handleImageEditorClose","cancel","destroy","imageMountOptions","assetId","imageUrl","href","uploadCategoryId","imageEditing","allowOverwrite","onSave","_handleImageEditorSave","processingStates","_getProcessingStatesOfDeletedImages","forEach","states","root","rootName","isEqual","pendingActions","PendingActions","action","_showImageProcessingIndicator","_waitForAssetProcessed","_replaceImage","reconvertItem","aborted","finally","_getAssetStatusFromServer","status","metadataProcessingStatus","retry","maxAttempts","imageElementView","imageUtils","img","findViewImgElement","removeStyle","setStyle","addClass","previousSelectionRanges","from","getRanges","imageType","previousChildren","cloneElement","CKBoxImageEditEditing","CKBoxImageEditUI","ckboxImageEditIcon","CKBoxImageEdit"],"mappings":"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AAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnnB;AWvoDA,CAAA,CAAA,CAAA;AXyoDA,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AACjD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC;AACtI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/D,CAAC,CAAC,CAAC,CWvoDY,KAAMke,CAAAA,gBAAyBpe,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,CAAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AXwoDD,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;AWtoDb,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAkBC,UAAa,CAAA,CAAA,CAAA,CAAA;AXuoDhC,CWtoDE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,CAAA,gBAAA,CAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AXsoDD,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;AWpoDb,CAAA,CAAA,CAAA,CAAA,CACD,IAAoB,CAAA,CAAA,CAAA,CAAA;AXqoDrB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CWpoDL,KAAA,CAAMC,MAAAA,CAAAA,CAAAA,CAAS,IAAI,CAACA,MAAM,CAAA;AAE1BA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOG,EAAE,CAACC,gBAAgB,CAACC,GAAG,CAAE,CAAA,cAAA,CAAA,CAAA,CAAkBiB,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAME,OAAUxB,CAAAA,CAAAA,CAAAA,MAAAA,CAAOC,QAAQ,CAACC,GAAG,CAAE,CAAA,cAAA,CAAA,CAAA,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMmU,kBAAqBrU,CAAAA,CAAAA,CAAAA,MAAAA,CAAOC,QAAQ,CAACC,GAAG,CAAE,CAAA,WAAA,CAAA,CAAA,CAAA;AXooDnD,CWnoDG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMqB,IAAAA,CAAO,CAAA,CAAA,GAAA,CAAIQ,UAAYT,CAAAA,MAAAA,CAAAA,CAAAA;AXooDhC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CWnoDR,KAAA,CAAMO,CAAAA,CAAAA,CAAAA,CAAIP,MAAAA,CAAOO,CAAC,CAAA;AAElBN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAKoE,GAAG,CAAE,CAAA;AXmoDb,CWloDI3D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAMmc,CAAAA,CAAAA,kBAAAA,CAAAA;AXmoDV,CWloDI/b,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAS,CAAA,CAAA,IAAA;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAKE,IAAI,CAAE,CAAUC,KAAAA,CAAAA,CAAAA,CAAAA,EAAE,CAAE2S,kBAAAA,CAAoB,CAAA,CAAA,eAAA,CAAmBE,CAAAA,CAAAA,CAAAA,eAAmBA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA,CAAAA,CAClF1S,CAAG,CAAA,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA,CACHA,CAAAA,CAAAA,CAAG,CAAA,CAAA,GAAA,CAAA,IAAA,CAAA,EAAA,CAAA,KAAA,CAAA,OAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEJN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAKE,IAAI,CAAE,CAAA,IAAA,CAASC,CAAAA,CAAAA,EAAE,CAAEF,OAAAA,CAAAA,CAAS,CAASA,KAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAS,CAAA,CAAA,SAAA,CAAa,CAAA,CAAA,CAAEwC,KAAOoF,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA,CAAepF,KAASoF,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAAA,CAAAA;AACjG7H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAKE,IAAI,CAAE,CAAA,SAAA,CAAcC,CAAAA,CAAAA,EAAE,CAAEF,OAAAA,CAAAA,CAAAA;AX+nDhC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AW5nDhC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACiL,QAAQ,CAAElL,IAAAA,CAAM,CAAA,CAAA,OAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/BvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO4B,OAAO,CAAE,CAAA,cAAA,CAAA,CAAA,CAAA;AAChB5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOyL,OAAO,CAAClK,IAAI,CAACmK,KAAK,CAAA,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AX8nDH,CW5nDG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAOnK,IAAAA,CAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA;AX6nDA;AY1qDA,CAAA,CAAA,CAAA;AZ4qDA,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AAChC,CAAC,CAAC,CAAC,CY1qDY,KAAM6c,CAAAA,cAAuBte,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,CAAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AZ2qDD,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;AYzqDb,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAkBC,UAAa,CAAA,CAAA,CAAA,CAAA;AZ0qDhC,CYzqDE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,CAAA,cAAA,CAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AZyqDD,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;AYvqDb,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAkByP,QAAW,CAAA,CAAA,CAAA,CAAA;AZwqD9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CYvqDL,MAAO,CAAA,CAAA;AAAEyO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,qBAAAA,CAAAA;AAAuBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAAA;AAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA;AZ2qDA;AACA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACjG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG","file":"index.js.map","sourcesContent":["import { Plugin, icons, Command, PendingActions } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ButtonView, MenuBarMenuListItemButtonView, Notification } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { Range } from '@ckeditor/ckeditor5-engine/dist/index.js';\nimport { createElement, toMap, CKEditorError, logError, global, delay, abortableDebounce, retry } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { decode } from 'blurhash';\nimport { FileRepository } from '@ckeditor/ckeditor5-upload/dist/index.js';\nimport { isEqual } from 'lodash-es';\n\n/**\n * Introduces UI components for the `CKBox` plugin.\n *\n * The plugin introduces two UI components to the {@link module:ui/componentfactory~ComponentFactory UI component factory}:\n *\n * * the `'ckbox'` toolbar button,\n * * the `'menuBar:ckbox'` menu bar component, which is by default added to the `'Insert'` menu.\n *\n * It also integrates with the `insertImage` toolbar component and `menuBar:insertImage` menu component.\n */ class CKBoxUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxUI';\n }\n /**\n\t * @inheritDoc\n\t */ afterInit() {\n const editor = this.editor;\n // Do not register the `ckbox` button if the command does not exist.\n // This might happen when CKBox library is not loaded on the page.\n if (!editor.commands.get('ckbox')) {\n return;\n }\n editor.ui.componentFactory.add('ckbox', ()=>this._createFileToolbarButton());\n editor.ui.componentFactory.add('menuBar:ckbox', ()=>this._createFileMenuBarButton());\n if (editor.plugins.has('ImageInsertUI')) {\n editor.plugins.get('ImageInsertUI').registerIntegration({\n name: 'assetManager',\n observable: ()=>editor.commands.get('ckbox'),\n buttonViewCreator: ()=>this._createImageToolbarButton(),\n formViewCreator: ()=>this._createImageDropdownButton(),\n menuBarButtonViewCreator: (isOnly)=>this._createImageMenuBarButton(isOnly ? 'insertOnly' : 'insertNested')\n });\n }\n }\n /**\n\t * Creates the base for various kinds of the button component provided by this feature.\n\t */ _createButton(ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const view = new ButtonClass(locale);\n const command = editor.commands.get('ckbox');\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n view.on('execute', ()=>{\n editor.execute('ckbox');\n });\n return view;\n }\n /**\n\t * Creates a simple toolbar button for files management, with an icon and a tooltip.\n\t */ _createFileToolbarButton() {\n const t = this.editor.locale.t;\n const button = this._createButton(ButtonView);\n button.icon = icons.browseFiles;\n button.label = t('Open file manager');\n button.tooltip = true;\n return button;\n }\n /**\n\t * Creates a simple toolbar button for images management, with an icon and a tooltip.\n\t */ _createImageToolbarButton() {\n const t = this.editor.locale.t;\n const imageInsertUI = this.editor.plugins.get('ImageInsertUI');\n const button = this._createButton(ButtonView);\n button.icon = icons.imageAssetManager;\n button.bind('label').to(imageInsertUI, 'isImageSelected', (isImageSelected)=>isImageSelected ? t('Replace image with file manager') : t('Insert image with file manager'));\n button.tooltip = true;\n return button;\n }\n /**\n\t * Creates a button for images management for the dropdown view, with an icon, text and no tooltip.\n\t */ _createImageDropdownButton() {\n const t = this.editor.locale.t;\n const imageInsertUI = this.editor.plugins.get('ImageInsertUI');\n const button = this._createButton(ButtonView);\n button.icon = icons.imageAssetManager;\n button.withText = true;\n button.bind('label').to(imageInsertUI, 'isImageSelected', (isImageSelected)=>isImageSelected ? t('Replace with file manager') : t('Insert with file manager'));\n button.on('execute', ()=>{\n imageInsertUI.dropdownView.isOpen = false;\n });\n return button;\n }\n /**\n\t * Creates a button for files management for the menu bar.\n\t */ _createFileMenuBarButton() {\n const t = this.editor.locale.t;\n const button = this._createButton(MenuBarMenuListItemButtonView);\n button.icon = icons.browseFiles;\n button.withText = true;\n button.label = t('File');\n return button;\n }\n /**\n\t * Creates a button for images management for the menu bar.\n\t */ _createImageMenuBarButton(type) {\n const t = this.editor.locale.t;\n const button = this._createButton(MenuBarMenuListItemButtonView);\n button.icon = icons.imageAssetManager;\n button.withText = true;\n switch(type){\n case 'insertOnly':\n button.label = t('Image');\n break;\n case 'insertNested':\n button.label = t('With file manager');\n break;\n }\n return button;\n }\n}\n\n/**\n * Converts image source set provided by the CKBox into an object containing:\n * - responsive URLs for the \"webp\" image format,\n * - one fallback URL for browsers that do not support the \"webp\" format.\n */ function getImageUrls(imageUrls) {\n const responsiveUrls = [];\n let maxWidth = 0;\n for(const key in imageUrls){\n const width = parseInt(key, 10);\n if (!isNaN(width)) {\n if (width > maxWidth) {\n maxWidth = width;\n }\n responsiveUrls.push(`${imageUrls[key]} ${key}w`);\n }\n }\n const imageSources = [\n {\n srcset: responsiveUrls.join(','),\n sizes: `(max-width: ${maxWidth}px) 100vw, ${maxWidth}px`,\n type: 'image/webp'\n }\n ];\n return {\n imageFallbackUrl: imageUrls.default,\n imageSources\n };\n}\n/**\n * Returns a workspace id to use for communication with the CKBox service.\n *\n * @param defaultWorkspaceId The default workspace to use taken from editor config.\n */ function getWorkspaceId(token, defaultWorkspaceId) {\n const [, binaryTokenPayload] = token.value.split('.');\n const payload = JSON.parse(atob(binaryTokenPayload));\n const workspaces = payload.auth && payload.auth.ckbox && payload.auth.ckbox.workspaces || [\n payload.aud\n ];\n if (!defaultWorkspaceId) {\n return workspaces[0];\n }\n const role = payload.auth && payload.auth.ckbox && payload.auth.ckbox.role;\n if (role == 'superadmin' || workspaces.includes(defaultWorkspaceId)) {\n return defaultWorkspaceId;\n }\n return null;\n}\n/**\n * Default resolution for decoding blurhash values.\n * Relatively small values must be used in order to ensure acceptable performance.\n */ const BLUR_RESOLUTION = 32;\n/**\n * Generates an image data URL from its `blurhash` representation.\n */ function blurHashToDataUrl(hash) {\n if (!hash) {\n return;\n }\n try {\n const resolutionInPx = `${BLUR_RESOLUTION}px`;\n const canvas = document.createElement('canvas');\n canvas.setAttribute('width', resolutionInPx);\n canvas.setAttribute('height', resolutionInPx);\n const ctx = canvas.getContext('2d');\n /* istanbul ignore next -- @preserve */ if (!ctx) {\n return;\n }\n const imageData = ctx.createImageData(BLUR_RESOLUTION, BLUR_RESOLUTION);\n const decoded = decode(hash, BLUR_RESOLUTION, BLUR_RESOLUTION);\n imageData.data.set(decoded);\n ctx.putImageData(imageData, 0, 0);\n return canvas.toDataURL();\n } catch (e) {\n return undefined;\n }\n}\n/**\n * Sends the HTTP request.\n *\n * @internal\n * @param config.url the URL where the request will be sent.\n * @param config.method The HTTP method.\n * @param config.data Additional data to send.\n * @param config.onUploadProgress A callback informing about the upload progress.\n */ function sendHttpRequest({ url, method = 'GET', data, onUploadProgress, signal, authorization }) {\n const xhr = new XMLHttpRequest();\n xhr.open(method, url.toString());\n xhr.setRequestHeader('Authorization', authorization);\n xhr.setRequestHeader('CKBox-Version', 'CKEditor 5');\n xhr.responseType = 'json';\n // The callback is attached to the `signal#abort` event.\n const abortCallback = ()=>{\n xhr.abort();\n };\n return new Promise((resolve, reject)=>{\n signal.throwIfAborted();\n signal.addEventListener('abort', abortCallback);\n xhr.addEventListener('loadstart', ()=>{\n signal.addEventListener('abort', abortCallback);\n });\n xhr.addEventListener('loadend', ()=>{\n signal.removeEventListener('abort', abortCallback);\n });\n xhr.addEventListener('error', ()=>{\n reject();\n });\n xhr.addEventListener('abort', ()=>{\n reject();\n });\n xhr.addEventListener('load', ()=>{\n const response = xhr.response;\n if (!response || response.statusCode >= 400) {\n return reject(response && response.message);\n }\n resolve(response);\n });\n /* istanbul ignore else -- @preserve */ if (onUploadProgress) {\n xhr.upload.addEventListener('progress', (evt)=>{\n onUploadProgress(evt);\n });\n }\n // Send the request.\n xhr.send(data);\n });\n}\nconst MIME_TO_EXTENSION = {\n 'image/gif': 'gif',\n 'image/jpeg': 'jpg',\n 'image/png': 'png',\n 'image/webp': 'webp',\n 'image/bmp': 'bmp',\n 'image/tiff': 'tiff'\n};\n/**\n * Returns an extension a typical file in the specified `mimeType` format would have.\n */ function convertMimeTypeToExtension(mimeType) {\n return MIME_TO_EXTENSION[mimeType];\n}\n/**\n * Tries to fetch the given `url` and returns 'content-type' of the response.\n */ async function getContentTypeOfUrl(url, options) {\n try {\n const response = await fetch(url, {\n method: 'HEAD',\n cache: 'force-cache',\n ...options\n });\n if (!response.ok) {\n return '';\n }\n return response.headers.get('content-type') || '';\n } catch {\n return '';\n }\n}\n/**\n * Returns an extension from the given value.\n */ function getFileExtension(file) {\n const fileName = file.name;\n const extensionRegExp = /\\.(?<ext>[^.]+)$/;\n const match = fileName.match(extensionRegExp);\n return match.groups.ext.toLowerCase();\n}\n\n// Defines the waiting time (in milliseconds) for inserting the chosen asset into the model. The chosen asset is temporarily stored in the\n// `CKBoxCommand#_chosenAssets` and it is removed from there automatically after this time. See `CKBoxCommand#_chosenAssets` for more\n// details.\nconst ASSET_INSERTION_WAIT_TIMEOUT = 1000;\n/**\n * The CKBox command. It is used by the {@link module:ckbox/ckboxediting~CKBoxEditing CKBox editing feature} to open the CKBox file manager.\n * The file manager allows inserting an image or a link to a file into the editor content.\n *\n * ```ts\n * editor.execute( 'ckbox' );\n * ```\n *\n * **Note:** This command uses other features to perform the following tasks:\n * - To insert images it uses the {@link module:image/image/insertimagecommand~InsertImageCommand 'insertImage'} command from the\n * {@link module:image/image~Image Image feature}.\n * - To insert links to other files it uses the {@link module:link/linkcommand~LinkCommand 'link'} command from the\n * {@link module:link/link~Link Link feature}.\n */ class CKBoxCommand extends Command {\n /**\n\t * A set of all chosen assets. They are stored temporarily and they are automatically removed 1 second after being chosen.\n\t * Chosen assets have to be \"remembered\" for a while to be able to map the given asset with the element inserted into the model.\n\t * This association map is then used to set the ID on the model element.\n\t *\n\t * All chosen assets are automatically removed after the timeout, because (theoretically) it may happen that they will never be\n\t * inserted into the model, even if the {@link module:link/linkcommand~LinkCommand `'link'`} command or the\n\t * {@link module:image/image/insertimagecommand~InsertImageCommand `'insertImage'`} command is enabled. Such a case may arise when\n\t * another plugin blocks the command execution. Then, in order not to keep the chosen (but not inserted) assets forever, we delete\n\t * them automatically to prevent memory leakage. The 1 second timeout is enough to insert the asset into the model and extract the\n\t * ID from the chosen asset.\n\t *\n\t * The assets are stored only if\n\t * the {@link module:ckbox/ckboxconfig~CKBoxConfig#ignoreDataId `config.ckbox.ignoreDataId`} option is set to `false` (by default).\n\t *\n\t * @internal\n\t */ _chosenAssets = new Set();\n /**\n\t * The DOM element that acts as a mounting point for the CKBox dialog.\n\t */ _wrapper = null;\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this._initListeners();\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n this.value = this._getValue();\n this.isEnabled = this._checkEnabled();\n }\n /**\n\t * @inheritDoc\n\t */ execute() {\n this.fire('ckbox:open');\n }\n /**\n\t * Indicates if the CKBox dialog is already opened.\n\t *\n\t * @protected\n\t * @returns {Boolean}\n\t */ _getValue() {\n return this._wrapper !== null;\n }\n /**\n\t * Checks whether the command can be enabled in the current context.\n\t */ _checkEnabled() {\n const imageCommand = this.editor.commands.get('insertImage');\n const linkCommand = this.editor.commands.get('link');\n if (!imageCommand.isEnabled && !linkCommand.isEnabled) {\n return false;\n }\n return true;\n }\n /**\n\t * Creates the options object for the CKBox dialog.\n\t *\n\t * @returns The object with properties:\n\t * - theme The theme for CKBox dialog.\n\t * - language The language for CKBox dialog.\n\t * - tokenUrl The token endpoint URL.\n\t * - serviceOrigin The base URL of the API service.\n\t * - forceDemoLabel Whether to force \"Powered by CKBox\" link.\n\t * - 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 // Refresh the command after firing the `ckbox:*` event.\n this.on('ckbox', ()=>{\n this.refresh();\n }, {\n priority: 'low'\n });\n // Handle opening of the CKBox dialog.\n this.on('ckbox:open', ()=>{\n if (!this.isEnabled || this.value) {\n return;\n }\n this._wrapper = createElement(document, 'div', {\n class: 'ck ckbox-wrapper'\n });\n document.body.appendChild(this._wrapper);\n window.CKBox.mount(this._wrapper, this._prepareOptions());\n });\n // Handle closing of the CKBox dialog.\n this.on('ckbox:close', ()=>{\n if (!this.value) {\n return;\n }\n this._wrapper.remove();\n this._wrapper = null;\n editor.editing.view.focus();\n });\n // Handle choosing the assets.\n this.on('ckbox:choose', (evt, assets)=>{\n if (!this.isEnabled) {\n return;\n }\n const imageCommand = editor.commands.get('insertImage');\n const linkCommand = editor.commands.get('link');\n const assetsToProcess = prepareAssets({\n assets,\n isImageAllowed: imageCommand.isEnabled,\n isLinkAllowed: linkCommand.isEnabled\n });\n const assetsCount = assetsToProcess.length;\n if (assetsCount === 0) {\n return;\n }\n // All assets are inserted in one undo step.\n model.change((writer)=>{\n for (const asset of assetsToProcess){\n const isLastAsset = asset === assetsToProcess[assetsCount - 1];\n const isSingleAsset = assetsCount === 1;\n this._insertAsset(asset, isLastAsset, writer, isSingleAsset);\n // If asset ID must be set for the inserted model element, store the asset temporarily and remove it automatically\n // after the timeout.\n if (shouldInsertDataId) {\n setTimeout(()=>this._chosenAssets.delete(asset), ASSET_INSERTION_WAIT_TIMEOUT);\n this._chosenAssets.add(asset);\n }\n }\n });\n editor.editing.view.focus();\n });\n // Clean up after the editor is destroyed.\n this.listenTo(editor, 'destroy', ()=>{\n this.fire('ckbox:close');\n this._chosenAssets.clear();\n });\n }\n /**\n\t * Inserts the asset into the model.\n\t *\n\t * @param asset The asset to be inserted.\n\t * @param isLastAsset Indicates if the current asset is the last one from the chosen set.\n\t * @param writer An instance of the model writer.\n\t * @param isSingleAsset It's true when only one asset is processed.\n\t */ _insertAsset(asset, isLastAsset, writer, isSingleAsset) {\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n // Remove the `linkHref` attribute to not affect the asset to be inserted.\n writer.removeSelectionAttribute('linkHref');\n if (asset.type === 'image') {\n this._insertImage(asset);\n } else {\n this._insertLink(asset, writer, isSingleAsset);\n }\n // Except for the last chosen asset, move the selection to the end of the current range to avoid overwriting other, already\n // inserted assets.\n if (!isLastAsset) {\n writer.setSelection(selection.getLastPosition());\n }\n }\n /**\n\t * Inserts the image by calling the `insertImage` command.\n\t *\n\t * @param asset The asset to be inserted.\n\t */ _insertImage(asset) {\n const editor = this.editor;\n const { imageFallbackUrl, imageSources, imageTextAlternative, imageWidth, imageHeight, imagePlaceholder } = asset.attributes;\n editor.execute('insertImage', {\n source: {\n src: imageFallbackUrl,\n sources: imageSources,\n alt: imageTextAlternative,\n width: imageWidth,\n height: imageHeight,\n ...imagePlaceholder ? {\n placeholder: imagePlaceholder\n } : null\n }\n });\n }\n /**\n\t * Inserts the link to the asset by calling the `link` command.\n\t *\n\t * @param asset The asset to be inserted.\n\t * @param writer An instance of the model writer.\n\t * @param isSingleAsset It's true when only one asset is processed.\n\t */ _insertLink(asset, writer, isSingleAsset) {\n const editor = this.editor;\n const model = editor.model;\n const selection = model.document.selection;\n const { linkName, linkHref } = asset.attributes;\n // If the selection is collapsed, insert the asset name as the link label and select it.\n if (selection.isCollapsed) {\n const selectionAttributes = toMap(selection.getAttributes());\n const textNode = writer.createText(linkName, selectionAttributes);\n if (!isSingleAsset) {\n const selectionLastPosition = selection.getLastPosition();\n const parentElement = selectionLastPosition.parent;\n // Insert new `paragraph` when selection is not in an empty `paragraph`.\n if (!(parentElement.name === 'paragraph' && parentElement.isEmpty)) {\n editor.execute('insertParagraph', {\n position: selectionLastPosition\n });\n }\n const range = model.insertContent(textNode);\n writer.setSelection(range);\n editor.execute('link', linkHref);\n return;\n }\n const range = model.insertContent(textNode);\n writer.setSelection(range);\n }\n editor.execute('link', linkHref);\n }\n}\n/**\n * Parses the chosen assets into the internal data format. Filters out chosen assets that are not allowed.\n */ function prepareAssets({ assets, isImageAllowed, isLinkAllowed }) {\n return assets.map((asset)=>isImage(asset) ? {\n id: asset.data.id,\n type: 'image',\n attributes: prepareImageAssetAttributes(asset)\n } : {\n id: asset.data.id,\n type: 'link',\n attributes: prepareLinkAssetAttributes(asset)\n }).filter((asset)=>asset.type === 'image' ? isImageAllowed : isLinkAllowed);\n}\n/**\n * Parses the assets attributes into the internal data format.\n *\n * @internal\n */ function prepareImageAssetAttributes(asset) {\n const { imageFallbackUrl, imageSources } = getImageUrls(asset.data.imageUrls);\n const { description, width, height, blurHash } = asset.data.metadata;\n const imagePlaceholder = blurHashToDataUrl(blurHash);\n return {\n imageFallbackUrl,\n imageSources,\n imageTextAlternative: description || '',\n imageWidth: width,\n imageHeight: height,\n ...imagePlaceholder ? {\n imagePlaceholder\n } : null\n };\n}\n/**\n * Parses the assets attributes into the internal data format.\n *\n * @param origin The base URL for assets inserted into the editor.\n */ function prepareLinkAssetAttributes(asset) {\n return {\n linkName: asset.data.name,\n linkHref: getAssetUrl(asset)\n };\n}\n/**\n * Checks whether the asset is an image.\n */ function isImage(asset) {\n const metadata = asset.data.metadata;\n if (!metadata) {\n return false;\n }\n return metadata.width && metadata.height;\n}\n/**\n * Creates the URL for the asset.\n *\n * @param origin The base URL for assets inserted into the editor.\n */ function getAssetUrl(asset) {\n const url = new URL(asset.data.url);\n url.searchParams.set('download', 'true');\n return url.toString();\n}\n\nconst DEFAULT_CKBOX_THEME_NAME = 'lark';\n/**\n * The CKBox utilities plugin.\n */ class CKBoxUtils extends Plugin {\n /**\n\t * CKEditor Cloud Services access token.\n\t */ _token;\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxUtils';\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n 'CloudServices'\n ];\n }\n /**\n\t * @inheritDoc\n\t */ 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 }\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\n/**\n * A plugin that enables file uploads in CKEditor 5 using the CKBox server–side connector.\n * See the {@glink features/file-management/ckbox CKBox file manager integration} guide to learn how to configure\n * and use this feature as well as find out more about the full integration with the file manager\n * provided by the {@link module:ckbox/ckbox~CKBox} plugin.\n *\n * Check out the {@glink features/images/image-upload/image-upload Image upload overview} guide to learn about\n * other ways to upload images into CKEditor 5.\n */ class CKBoxUploadAdapter extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n 'ImageUploadEditing',\n 'ImageUploadProgress',\n FileRepository,\n CKBoxEditing\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxUploadAdapter';\n }\n /**\n\t * @inheritDoc\n\t */ async afterInit() {\n const editor = this.editor;\n const hasConfiguration = !!editor.config.get('ckbox');\n const isLibraryLoaded = !!window.CKBox;\n // Editor supports only one upload adapter. Register the CKBox upload adapter (and potentially overwrite other one) only when the\n // integrator intentionally wants to use the CKBox plugin, i.e. when the `config.ckbox` exists or the CKBox JavaScript library is\n // loaded.\n if (!hasConfiguration && !isLibraryLoaded) {\n return;\n }\n const fileRepository = editor.plugins.get(FileRepository);\n const ckboxUtils = editor.plugins.get(CKBoxUtils);\n fileRepository.createUploadAdapter = (loader)=>new Adapter(loader, editor, ckboxUtils);\n const shouldInsertDataId = !editor.config.get('ckbox.ignoreDataId');\n const imageUploadEditing = editor.plugins.get('ImageUploadEditing');\n // Mark uploaded assets with the `ckboxImageId` attribute. Its value represents an ID in CKBox.\n if (shouldInsertDataId) {\n imageUploadEditing.on('uploadComplete', (evt, { imageElement, data })=>{\n editor.model.change((writer)=>{\n writer.setAttribute('ckboxImageId', data.ckboxImageId, imageElement);\n });\n });\n }\n }\n}\n/**\n * Upload adapter for CKBox.\n */ class Adapter {\n /**\n\t * FileLoader instance to use during the upload.\n\t */ loader;\n /**\n\t * CKEditor Cloud Services access token.\n\t */ token;\n /**\n\t * The editor instance.\n\t */ editor;\n /**\n\t * The abort controller for aborting asynchronous processes.\n\t */ controller;\n /**\n\t * The base URL where all requests should be sent.\n\t */ serviceOrigin;\n /**\n\t * The reference to CKBoxUtils plugin.\n\t */ ckboxUtils;\n /**\n\t * Creates a new adapter instance.\n\t */ constructor(loader, editor, ckboxUtils){\n this.loader = loader;\n this.token = ckboxUtils.getToken();\n this.ckboxUtils = ckboxUtils;\n this.editor = editor;\n this.controller = new AbortController();\n this.serviceOrigin = editor.config.get('ckbox.serviceOrigin');\n }\n /**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */ async upload() {\n const ckboxUtils = this.ckboxUtils;\n const t = this.editor.t;\n const file = await this.loader.file;\n const category = await ckboxUtils.getCategoryIdForFile(file, {\n signal: this.controller.signal\n });\n const uploadUrl = new URL('assets', this.serviceOrigin);\n const formData = new FormData();\n uploadUrl.searchParams.set('workspaceId', 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 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\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 Range(entry.position, entry.position.getShiftedBy(entry.length)) : entry.range;\n const isLinkHrefAttributeRemoval = entry.type === 'attribute' && entry.attributeKey === 'linkHref' && entry.attributeNewValue === null;\n for (const item of range.getItems()){\n // If the `linkHref` attribute has been removed, sync the change with the `ckboxLinkId` attribute.\n if (isLinkHrefAttributeRemoval && item.hasAttribute('ckboxLinkId')) {\n writer.removeAttribute('ckboxLinkId', item);\n changed = true;\n continue;\n }\n // Otherwise, the change concerns either a new model element or an attribute change. Try to find the assets for the modified\n // model element.\n const assets = findAssetsForItem(item, ckboxCommand._chosenAssets);\n for (const asset of assets){\n const attributeName = asset.type === 'image' ? 'ckboxImageId' : 'ckboxLinkId';\n if (asset.id === item.getAttribute(attributeName)) {\n continue;\n }\n writer.setAttribute(attributeName, asset.id, item);\n changed = true;\n }\n }\n }\n return changed;\n };\n}\n/**\n * A post-fixer that removes the `ckboxLinkId` from the selection if it does not represent a link anymore.\n */ function injectSelectionPostFixer(selection) {\n return (writer)=>{\n const shouldRemoveLinkIdAttribute = !selection.hasAttribute('linkHref') && selection.hasAttribute('ckboxLinkId');\n if (shouldRemoveLinkIdAttribute) {\n writer.removeSelectionAttribute('ckboxLinkId');\n return true;\n }\n return false;\n };\n}\n/**\n * Tries to find the asset that is associated with the model element by comparing the attributes:\n * - the image fallback URL with the `src` attribute for images,\n * - the link URL with the `href` attribute for links.\n *\n * For any model element, zero, one or more than one asset can be found (e.g. a linked image may be associated with the link asset and the\n * image asset).\n */ function findAssetsForItem(item, assets) {\n const isImageElement = item.is('element', 'imageInline') || item.is('element', 'imageBlock');\n const isLinkElement = item.hasAttribute('linkHref');\n return [\n ...assets\n ].filter((asset)=>{\n if (asset.type === 'image' && isImageElement) {\n return asset.attributes.imageFallbackUrl === item.getAttribute('src');\n }\n if (asset.type === 'link' && isLinkElement) {\n return asset.attributes.linkHref === item.getAttribute('linkHref');\n }\n });\n}\n/**\n * Creates view link element with the requested ID.\n */ function createLinkElement(writer, id) {\n // Priority equal 5 is needed to merge adjacent `<a>` elements together.\n const viewElement = writer.createAttributeElement('a', {\n 'data-ckbox-resource-id': id\n }, {\n priority: 5\n });\n writer.setCustomProperty('link', true, viewElement);\n return viewElement;\n}\n/**\n * Checks if the model element may have the `ckboxLinkId` attribute.\n */ function shouldUpcastAttributeForNode(node) {\n if (node.is('$text')) {\n return true;\n }\n if (node.is('element', 'imageInline') || node.is('element', 'imageBlock')) {\n return true;\n }\n return false;\n}\n/**\n * Returns true if the CKBox library is loaded, false otherwise.\n */ function isLibraryLoaded() {\n return !!window.CKBox;\n}\n/**\n * 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 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 requires() {\n return [\n CKBoxEditing,\n CKBoxUtils,\n PendingActions,\n Notification,\n 'ImageUtils',\n 'ImageEditing'\n ];\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const { editor } = this;\n editor.commands.add('ckboxImageEdit', new CKBoxImageEditCommand(editor));\n }\n}\n\nvar ckboxImageEditIcon = \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M1.201 1C.538 1 0 1.47 0 2.1v14.363c0 .64.534 1.037 1.186 1.037H5.06l5.058-5.078L6.617 9.15a.696.696 0 0 0-.957-.033L1.5 13.6V2.5h15v4.354a3.478 3.478 0 0 1 1.5.049V2.1c0-.63-.547-1.1-1.2-1.1H1.202Zm11.713 2.803a2.147 2.147 0 0 0-2.049 1.992 2.14 2.14 0 0 0 1.28 2.096 2.13 2.13 0 0 0 2.642-3.11 2.129 2.129 0 0 0-1.873-.978ZM8.089 17.635v2.388h2.389l7.046-7.046-2.39-2.39-7.045 7.048Zm11.282-6.507a.637.637 0 0 0 .139-.692.603.603 0 0 0-.139-.205l-1.49-1.488a.63.63 0 0 0-.899 0l-1.166 1.163 2.39 2.39 1.165-1.168Z\\\"/></svg>\";\n\n/**\n * The UI plugin of the CKBox image edit feature.\n *\n * It registers the `'ckboxImageEdit'` UI button in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}\n * that allows you to open the CKBox dialog and edit the image.\n */ class CKBoxImageEditUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxImageEditUI';\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.ui.componentFactory.add('ckboxImageEdit', (locale)=>{\n const command = editor.commands.get('ckboxImageEdit');\n const uploadImageCommand = editor.commands.get('uploadImage');\n const view = new ButtonView(locale);\n const t = locale.t;\n view.set({\n icon: ckboxImageEditIcon,\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 requires() {\n return [\n CKBoxImageEditEditing,\n CKBoxImageEditUI\n ];\n }\n}\n\nexport { CKBox, CKBoxEditing, CKBoxImageEdit, CKBoxImageEditEditing, CKBoxImageEditUI, CKBoxUI };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckboxui\n */\n\nimport { icons, Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\n\nimport type { ImageInsertUI } from '@ckeditor/ckeditor5-image';\n\n/**\n * Introduces UI components for the `CKBox` plugin.\n *\n * The plugin introduces two UI components to the {@link module:ui/componentfactory~ComponentFactory UI component factory}:\n *\n * * the `'ckbox'` toolbar button,\n * * the `'menuBar:ckbox'` menu bar component, which is by default added to the `'Insert'` menu.\n *\n * It also integrates with the `insertImage` toolbar component and `menuBar:insertImage` menu component.\n */\nexport default class CKBoxUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\n\t\t// Do not register the `ckbox` button if the command does not exist.\n\t\t// This might happen when CKBox library is not loaded on the page.\n\t\tif ( !editor.commands.get( 'ckbox' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\teditor.ui.componentFactory.add( 'ckbox', () => this._createFileToolbarButton() );\n\t\teditor.ui.componentFactory.add( 'menuBar:ckbox', () => this._createFileMenuBarButton() );\n\n\t\tif ( editor.plugins.has( 'ImageInsertUI' ) ) {\n\t\t\teditor.plugins.get( 'ImageInsertUI' ).registerIntegration( {\n\t\t\t\tname: 'assetManager',\n\t\t\t\tobservable: () => editor.commands.get( 'ckbox' )!,\n\t\t\t\tbuttonViewCreator: () => this._createImageToolbarButton(),\n\t\t\t\tformViewCreator: () => this._createImageDropdownButton(),\n\t\t\t\tmenuBarButtonViewCreator: isOnly => this._createImageMenuBarButton( isOnly ? 'insertOnly' : 'insertNested' )\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Creates the base for various kinds of the button component provided by this feature.\n\t */\n\tprivate _createButton<T extends typeof ButtonView | typeof MenuBarMenuListItemButtonView>( ButtonClass: T ): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst view = new ButtonClass( locale ) as InstanceType<T>;\n\t\tconst command = editor.commands.get( 'ckbox' )!;\n\n\t\tview.bind( 'isOn', 'isEnabled' ).to( command, 'value', 'isEnabled' );\n\n\t\tview.on( 'execute', () => {\n\t\t\teditor.execute( 'ckbox' );\n\t\t} );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Creates a simple toolbar button for files management, with an icon and a tooltip.\n\t */\n\tprivate _createFileToolbarButton(): ButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst button = this._createButton( ButtonView );\n\n\t\tbutton.icon = icons.browseFiles;\n\t\tbutton.label = t( 'Open file manager' );\n\t\tbutton.tooltip = true;\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Creates a simple toolbar button for images management, with an icon and a tooltip.\n\t */\n\tprivate _createImageToolbarButton(): ButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst imageInsertUI: ImageInsertUI = this.editor.plugins.get( 'ImageInsertUI' );\n\n\t\tconst button = this._createButton( ButtonView );\n\n\t\tbutton.icon = icons.imageAssetManager;\n\t\tbutton.bind( 'label' ).to(\n\t\t\timageInsertUI,\n\t\t\t'isImageSelected',\n\t\t\tisImageSelected => isImageSelected ? t( 'Replace image with file manager' ) : t( 'Insert image with file manager' )\n\t\t);\n\t\tbutton.tooltip = true;\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Creates a button for images management for the dropdown view, with an icon, text and no tooltip.\n\t */\n\tprivate _createImageDropdownButton(): ButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst imageInsertUI: ImageInsertUI = this.editor.plugins.get( 'ImageInsertUI' );\n\n\t\tconst button = this._createButton( ButtonView );\n\n\t\tbutton.icon = icons.imageAssetManager;\n\t\tbutton.withText = true;\n\t\tbutton.bind( 'label' ).to(\n\t\t\timageInsertUI,\n\t\t\t'isImageSelected',\n\t\t\tisImageSelected => isImageSelected ? t( 'Replace with file manager' ) : t( 'Insert with file manager' )\n\t\t);\n\n\t\tbutton.on( 'execute', () => {\n\t\t\timageInsertUI.dropdownView!.isOpen = false;\n\t\t} );\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Creates a button for files management for the menu bar.\n\t */\n\tprivate _createFileMenuBarButton(): MenuBarMenuListItemButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst button = this._createButton( MenuBarMenuListItemButtonView );\n\n\t\tbutton.icon = icons.browseFiles;\n\t\tbutton.withText = true;\n\t\tbutton.label = t( 'File' );\n\n\t\treturn button;\n\t}\n\n\t/**\n\t * Creates a button for images management for the menu bar.\n\t */\n\tprivate _createImageMenuBarButton( type: 'insertOnly' | 'insertNested' ): MenuBarMenuListItemButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst button = this._createButton( MenuBarMenuListItemButtonView );\n\n\t\tbutton.icon = icons.imageAssetManager;\n\t\tbutton.withText = true;\n\n\t\tswitch ( type ) {\n\t\t\tcase 'insertOnly':\n\t\t\t\tbutton.label = t( 'Image' );\n\t\t\t\tbreak;\n\t\t\tcase 'insertNested':\n\t\t\t\tbutton.label = t( 'With file manager' );\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn button;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* global atob */\n\n/**\n * @module ckbox/utils\n */\n\nimport type { InitializedToken } from '@ckeditor/ckeditor5-cloud-services';\nimport type { CKBoxImageUrls } from './ckboxconfig.js';\n\nimport { decode } from 'blurhash';\n\n/**\n * Converts image source set provided by the CKBox into an object containing:\n * - responsive URLs for the \"webp\" image format,\n * - one fallback URL for browsers that do not support the \"webp\" format.\n */\nexport function getImageUrls( imageUrls: CKBoxImageUrls ): {\n\timageFallbackUrl: string;\n\timageSources: Array<{\n\t\tsrcset: string;\n\t\tsizes: string;\n\t\ttype: string;\n\t}>;\n} {\n\tconst responsiveUrls: Array<string> = [];\n\tlet maxWidth = 0;\n\n\tfor ( const key in imageUrls ) {\n\t\tconst width = parseInt( key, 10 );\n\n\t\tif ( !isNaN( width ) ) {\n\t\t\tif ( width > maxWidth ) {\n\t\t\t\tmaxWidth = width;\n\t\t\t}\n\n\t\t\tresponsiveUrls.push( `${ imageUrls[ key ] } ${ key }w` );\n\t\t}\n\t}\n\n\tconst imageSources = [ {\n\t\tsrcset: responsiveUrls.join( ',' ),\n\t\tsizes: `(max-width: ${ maxWidth }px) 100vw, ${ maxWidth }px`,\n\t\ttype: 'image/webp'\n\t} ];\n\n\treturn {\n\t\timageFallbackUrl: imageUrls.default,\n\t\timageSources\n\t};\n}\n\n/**\n * Returns a workspace id to use for communication with the CKBox service.\n *\n * @param defaultWorkspaceId The default workspace to use taken from editor config.\n */\nexport function getWorkspaceId( token: InitializedToken, defaultWorkspaceId?: string ): string | null {\n\tconst [ , binaryTokenPayload ] = token.value.split( '.' );\n\tconst payload = JSON.parse( atob( binaryTokenPayload ) );\n\tconst workspaces = ( payload.auth && payload.auth.ckbox && payload.auth.ckbox.workspaces ) || [ payload.aud ];\n\n\tif ( !defaultWorkspaceId ) {\n\t\treturn workspaces[ 0 ];\n\t}\n\n\tconst role = payload.auth && payload.auth.ckbox && payload.auth.ckbox.role;\n\n\tif ( role == 'superadmin' || workspaces.includes( defaultWorkspaceId ) ) {\n\t\treturn defaultWorkspaceId;\n\t}\n\n\treturn null;\n}\n\n/**\n * Default resolution for decoding blurhash values.\n * Relatively small values must be used in order to ensure acceptable performance.\n */\nconst BLUR_RESOLUTION = 32;\n\n/**\n * Generates an image data URL from its `blurhash` representation.\n */\nexport function blurHashToDataUrl( hash?: string ): string | undefined {\n\tif ( !hash ) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tconst resolutionInPx = `${ BLUR_RESOLUTION }px`;\n\t\tconst canvas = document.createElement( 'canvas' );\n\n\t\tcanvas.setAttribute( 'width', resolutionInPx );\n\t\tcanvas.setAttribute( 'height', resolutionInPx );\n\n\t\tconst ctx = canvas.getContext( '2d' );\n\n\t\t/* istanbul ignore next -- @preserve */\n\t\tif ( !ctx ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst imageData = ctx.createImageData( BLUR_RESOLUTION, BLUR_RESOLUTION );\n\t\tconst decoded = decode( hash, BLUR_RESOLUTION, BLUR_RESOLUTION );\n\n\t\timageData.data.set( decoded );\n\t\tctx.putImageData( imageData, 0, 0 );\n\n\t\treturn canvas.toDataURL();\n\t} catch ( e ) {\n\t\treturn undefined;\n\t}\n}\n\n/**\n * Sends the HTTP request.\n *\n * @internal\n * @param config.url the URL where the request will be sent.\n * @param config.method The HTTP method.\n * @param config.data Additional data to send.\n * @param config.onUploadProgress A callback informing about the upload progress.\n */\nexport function sendHttpRequest( {\n\turl,\n\tmethod = 'GET',\n\tdata,\n\tonUploadProgress,\n\tsignal,\n\tauthorization\n}: {\n\turl: URL;\n\tsignal: AbortSignal;\n\tauthorization: string;\n\tmethod?: 'GET' | 'POST';\n\tdata?: FormData | null;\n\tonUploadProgress?: ( evt: ProgressEvent ) => void;\n} ): Promise<any> {\n\tconst xhr = new XMLHttpRequest();\n\n\txhr.open( method, url.toString() );\n\txhr.setRequestHeader( 'Authorization', authorization );\n\txhr.setRequestHeader( 'CKBox-Version', 'CKEditor 5' );\n\txhr.responseType = 'json';\n\n\t// The callback is attached to the `signal#abort` event.\n\tconst abortCallback = () => {\n\t\txhr.abort();\n\t};\n\n\treturn new Promise<any>( ( resolve, reject ) => {\n\t\tsignal.throwIfAborted();\n\t\tsignal.addEventListener( 'abort', abortCallback );\n\n\t\txhr.addEventListener( 'loadstart', () => {\n\t\t\tsignal.addEventListener( 'abort', abortCallback );\n\t\t} );\n\n\t\txhr.addEventListener( 'loadend', () => {\n\t\t\tsignal.removeEventListener( 'abort', abortCallback );\n\t\t} );\n\n\t\txhr.addEventListener( 'error', () => {\n\t\t\treject();\n\t\t} );\n\n\t\txhr.addEventListener( 'abort', () => {\n\t\t\treject();\n\t\t} );\n\n\t\txhr.addEventListener( 'load', () => {\n\t\t\tconst response = xhr.response;\n\n\t\t\tif ( !response || response.statusCode >= 400 ) {\n\t\t\t\treturn reject( response && response.message );\n\t\t\t}\n\n\t\t\tresolve( response );\n\t\t} );\n\n\t\t/* istanbul ignore else -- @preserve */\n\t\tif ( onUploadProgress ) {\n\t\t\txhr.upload.addEventListener( 'progress', evt => {\n\t\t\t\tonUploadProgress( evt );\n\t\t\t} );\n\t\t}\n\n\t\t// Send the request.\n\t\txhr.send( data );\n\t} );\n}\n\nconst MIME_TO_EXTENSION: Record<string, string> = {\n\t'image/gif': 'gif',\n\t'image/jpeg': 'jpg',\n\t'image/png': 'png',\n\t'image/webp': 'webp',\n\t'image/bmp': 'bmp',\n\t'image/tiff': 'tiff'\n};\n\n/**\n * Returns an extension a typical file in the specified `mimeType` format would have.\n */\nexport function convertMimeTypeToExtension( mimeType: string ): string {\n\treturn MIME_TO_EXTENSION[ mimeType ];\n}\n\n/**\n * Tries to fetch the given `url` and returns 'content-type' of the response.\n */\nexport async function getContentTypeOfUrl( url: string, options: { signal: AbortSignal } ): Promise<string> {\n\ttry {\n\t\tconst response = await fetch( url, {\n\t\t\tmethod: 'HEAD',\n\t\t\tcache: 'force-cache',\n\t\t\t...options\n\t\t} );\n\n\t\tif ( !response.ok ) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn response.headers.get( 'content-type' ) || '';\n\t} catch {\n\t\treturn '';\n\t}\n}\n\n/**\n * Returns an extension from the given value.\n */\nexport function getFileExtension( file: File ): string {\n\tconst fileName = file.name;\n\tconst extensionRegExp = /\\.(?<ext>[^.]+)$/;\n\tconst match = fileName.match( extensionRegExp );\n\n\treturn match!.groups!.ext.toLowerCase();\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* global document, window, setTimeout, URL */\n\n/**\n * @module ckbox/ckboxcommand\n */\n\nimport type { Writer } from 'ckeditor5/src/engine.js';\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport { createElement, toMap } from 'ckeditor5/src/utils.js';\n\nimport type {\n\tCKBoxAssetDefinition,\n\tCKBoxAssetImageAttributesDefinition,\n\tCKBoxAssetImageDefinition,\n\tCKBoxAssetLinkAttributesDefinition,\n\tCKBoxAssetLinkDefinition,\n\tCKBoxRawAssetDefinition\n} from './ckboxconfig.js';\n\nimport { blurHashToDataUrl, getImageUrls } from './utils.js';\n\n// Defines the waiting time (in milliseconds) for inserting the chosen asset into the model. The chosen asset is temporarily stored in the\n// `CKBoxCommand#_chosenAssets` and it is removed from there automatically after this time. See `CKBoxCommand#_chosenAssets` for more\n// details.\nconst ASSET_INSERTION_WAIT_TIMEOUT = 1000;\n\n/**\n * The CKBox command. It is used by the {@link module:ckbox/ckboxediting~CKBoxEditing CKBox editing feature} to open the CKBox file manager.\n * The file manager allows inserting an image or a link to a file into the editor content.\n *\n * ```ts\n * editor.execute( 'ckbox' );\n * ```\n *\n * **Note:** This command uses other features to perform the following tasks:\n * - To insert images it uses the {@link module:image/image/insertimagecommand~InsertImageCommand 'insertImage'} command from the\n * {@link module:image/image~Image Image feature}.\n * - To insert links to other files it uses the {@link module:link/linkcommand~LinkCommand 'link'} command from the\n * {@link module:link/link~Link Link feature}.\n */\nexport default class CKBoxCommand extends Command {\n\tdeclare public value: boolean;\n\n\t/**\n\t * A set of all chosen assets. They are stored temporarily and they are automatically removed 1 second after being chosen.\n\t * Chosen assets have to be \"remembered\" for a while to be able to map the given asset with the element inserted into the model.\n\t * This association map is then used to set the ID on the model element.\n\t *\n\t * All chosen assets are automatically removed after the timeout, because (theoretically) it may happen that they will never be\n\t * inserted into the model, even if the {@link module:link/linkcommand~LinkCommand `'link'`} command or the\n\t * {@link module:image/image/insertimagecommand~InsertImageCommand `'insertImage'`} command is enabled. Such a case may arise when\n\t * another plugin blocks the command execution. Then, in order not to keep the chosen (but not inserted) assets forever, we delete\n\t * them automatically to prevent memory leakage. The 1 second timeout is enough to insert the asset into the model and extract the\n\t * ID from the chosen asset.\n\t *\n\t * The assets are stored only if\n\t * the {@link module:ckbox/ckboxconfig~CKBoxConfig#ignoreDataId `config.ckbox.ignoreDataId`} option is set to `false` (by default).\n\t *\n\t * @internal\n\t */\n\tpublic readonly _chosenAssets = new Set<CKBoxAssetDefinition>();\n\n\t/**\n\t * The DOM element that acts as a mounting point for the CKBox dialog.\n\t */\n\tprivate _wrapper: Element | null = null;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis._initListeners();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tthis.value = this._getValue();\n\t\tthis.isEnabled = this._checkEnabled();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override execute(): void {\n\t\tthis.fire<CKBoxEvent<'open'>>( 'ckbox:open' );\n\t}\n\n\t/**\n\t * Indicates if the CKBox dialog is already opened.\n\t *\n\t * @protected\n\t * @returns {Boolean}\n\t */\n\tprivate _getValue(): boolean {\n\t\treturn this._wrapper !== null;\n\t}\n\n\t/**\n\t * Checks whether the command can be enabled in the current context.\n\t */\n\tprivate _checkEnabled() {\n\t\tconst imageCommand = this.editor.commands.get( 'insertImage' )!;\n\t\tconst linkCommand = this.editor.commands.get( 'link' )!;\n\n\t\tif ( !imageCommand.isEnabled && !linkCommand.isEnabled ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Creates the options object for the CKBox dialog.\n\t *\n\t * @returns The object with properties:\n\t * - theme The theme for CKBox dialog.\n\t * - language The language for CKBox dialog.\n\t * - tokenUrl The token endpoint URL.\n\t * - serviceOrigin The base URL of the API service.\n\t * - forceDemoLabel Whether to force \"Powered by CKBox\" link.\n\t * - 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\n\t\t// Refresh the command after firing the `ckbox:*` event.\n\t\tthis.on<CKBoxEvent>( 'ckbox', () => {\n\t\t\tthis.refresh();\n\t\t}, { priority: 'low' } );\n\n\t\t// Handle opening of the CKBox dialog.\n\t\tthis.on<CKBoxEvent<'open'>>( 'ckbox:open', () => {\n\t\t\tif ( !this.isEnabled || this.value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._wrapper = createElement( document, 'div', { class: 'ck ckbox-wrapper' } );\n\t\t\tdocument.body.appendChild( this._wrapper );\n\n\t\t\twindow.CKBox.mount( this._wrapper, this._prepareOptions() );\n\t\t} );\n\n\t\t// Handle closing of the CKBox dialog.\n\t\tthis.on<CKBoxEvent<'close'>>( 'ckbox:close', () => {\n\t\t\tif ( !this.value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._wrapper!.remove();\n\t\t\tthis._wrapper = null;\n\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\t// Handle choosing the assets.\n\t\tthis.on<CKBoxEvent<'choose'>>( 'ckbox:choose', ( evt, assets ) => {\n\t\t\tif ( !this.isEnabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst imageCommand = editor.commands.get( 'insertImage' )!;\n\t\t\tconst linkCommand = editor.commands.get( 'link' )!;\n\n\t\t\tconst assetsToProcess = prepareAssets( {\n\t\t\t\tassets,\n\t\t\t\tisImageAllowed: imageCommand.isEnabled,\n\t\t\t\tisLinkAllowed: linkCommand.isEnabled\n\t\t\t} );\n\n\t\t\tconst assetsCount = assetsToProcess.length;\n\n\t\t\tif ( assetsCount === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// All assets are inserted in one undo step.\n\t\t\tmodel.change( writer => {\n\t\t\t\tfor ( const asset of assetsToProcess ) {\n\t\t\t\t\tconst isLastAsset = asset === assetsToProcess[ assetsCount - 1 ];\n\t\t\t\t\tconst isSingleAsset = assetsCount === 1;\n\n\t\t\t\t\tthis._insertAsset( asset, isLastAsset, writer, isSingleAsset );\n\n\t\t\t\t\t// If asset ID must be set for the inserted model element, store the asset temporarily and remove it automatically\n\t\t\t\t\t// after the timeout.\n\t\t\t\t\tif ( shouldInsertDataId ) {\n\t\t\t\t\t\tsetTimeout( () => this._chosenAssets.delete( asset ), ASSET_INSERTION_WAIT_TIMEOUT );\n\n\t\t\t\t\t\tthis._chosenAssets.add( asset );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\t// Clean up after the editor is destroyed.\n\t\tthis.listenTo( editor, 'destroy', () => {\n\t\t\tthis.fire<CKBoxEvent<'close'>>( 'ckbox:close' );\n\t\t\tthis._chosenAssets.clear();\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts the asset into the model.\n\t *\n\t * @param asset The asset to be inserted.\n\t * @param isLastAsset Indicates if the current asset is the last one from the chosen set.\n\t * @param writer An instance of the model writer.\n\t * @param isSingleAsset It's true when only one asset is processed.\n\t */\n\tprivate _insertAsset(\n\t\tasset: CKBoxAssetDefinition,\n\t\tisLastAsset: boolean,\n\t\twriter: Writer,\n\t\tisSingleAsset: boolean\n\t) {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\n\t\t// Remove the `linkHref` attribute to not affect the asset to be inserted.\n\t\twriter.removeSelectionAttribute( 'linkHref' );\n\n\t\tif ( asset.type === 'image' ) {\n\t\t\tthis._insertImage( asset );\n\t\t} else {\n\t\t\tthis._insertLink( asset, writer, isSingleAsset );\n\t\t}\n\n\t\t// Except for the last chosen asset, move the selection to the end of the current range to avoid overwriting other, already\n\t\t// inserted assets.\n\t\tif ( !isLastAsset ) {\n\t\t\twriter.setSelection( selection.getLastPosition() );\n\t\t}\n\t}\n\n\t/**\n\t * Inserts the image by calling the `insertImage` command.\n\t *\n\t * @param asset The asset to be inserted.\n\t */\n\tprivate _insertImage( asset: CKBoxAssetImageDefinition ) {\n\t\tconst editor = this.editor;\n\t\tconst {\n\t\t\timageFallbackUrl,\n\t\t\timageSources,\n\t\t\timageTextAlternative,\n\t\t\timageWidth,\n\t\t\timageHeight,\n\t\t\timagePlaceholder\n\t\t} = asset.attributes;\n\n\t\teditor.execute( 'insertImage', {\n\t\t\tsource: {\n\t\t\t\tsrc: imageFallbackUrl,\n\t\t\t\tsources: imageSources,\n\t\t\t\talt: imageTextAlternative,\n\t\t\t\twidth: imageWidth,\n\t\t\t\theight: imageHeight,\n\t\t\t\t...( imagePlaceholder ? { placeholder: imagePlaceholder } : null )\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts the link to the asset by calling the `link` command.\n\t *\n\t * @param asset The asset to be inserted.\n\t * @param writer An instance of the model writer.\n\t * @param isSingleAsset It's true when only one asset is processed.\n\t */\n\tprivate _insertLink( asset: CKBoxAssetLinkDefinition, writer: Writer, isSingleAsset: boolean ): void {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\t\tconst { linkName, linkHref } = asset.attributes;\n\n\t\t// If the selection is collapsed, insert the asset name as the link label and select it.\n\t\tif ( selection.isCollapsed ) {\n\t\t\tconst selectionAttributes = toMap( selection.getAttributes() );\n\t\t\tconst textNode = writer.createText( linkName, selectionAttributes );\n\n\t\t\tif ( !isSingleAsset ) {\n\t\t\t\tconst selectionLastPosition = selection.getLastPosition()!;\n\t\t\t\tconst parentElement = selectionLastPosition.parent;\n\n\t\t\t\t// Insert new `paragraph` when selection is not in an empty `paragraph`.\n\t\t\t\tif ( !( parentElement.name === 'paragraph' && parentElement.isEmpty ) ) {\n\t\t\t\t\teditor.execute( 'insertParagraph', {\n\t\t\t\t\t\tposition: selectionLastPosition\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tconst range = model.insertContent( textNode );\n\n\t\t\t\twriter.setSelection( range );\n\t\t\t\teditor.execute( 'link', linkHref );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst range = model.insertContent( textNode );\n\n\t\t\twriter.setSelection( range );\n\t\t}\n\n\t\teditor.execute( 'link', linkHref );\n\t}\n}\n\n/**\n * Parses the chosen assets into the internal data format. Filters out chosen assets that are not allowed.\n */\nfunction prepareAssets(\n\t{ assets, isImageAllowed, isLinkAllowed }: {\n\t\tassets: Array<CKBoxRawAssetDefinition>;\n\t\tisImageAllowed: boolean;\n\t\tisLinkAllowed: boolean;\n\t}\n): Array<CKBoxAssetDefinition> {\n\treturn assets\n\t\t.map( asset => isImage( asset ) ?\n\t\t\t{\n\t\t\t\tid: asset.data.id,\n\t\t\t\ttype: 'image',\n\t\t\t\tattributes: prepareImageAssetAttributes( asset )\n\t\t\t} as const :\n\t\t\t{\n\t\t\t\tid: asset.data.id,\n\t\t\t\ttype: 'link',\n\t\t\t\tattributes: prepareLinkAssetAttributes( asset )\n\t\t\t} as const\n\t\t)\n\t\t.filter( asset => asset.type === 'image' ? isImageAllowed : isLinkAllowed );\n}\n\n/**\n * Parses the assets attributes into the internal data format.\n *\n * @internal\n */\nexport function prepareImageAssetAttributes( asset: CKBoxRawAssetDefinition ): CKBoxAssetImageAttributesDefinition {\n\tconst { imageFallbackUrl, imageSources } = getImageUrls( asset.data.imageUrls! );\n\tconst { description, width, height, blurHash } = asset.data.metadata!;\n\tconst imagePlaceholder = blurHashToDataUrl( blurHash );\n\n\treturn {\n\t\timageFallbackUrl,\n\t\timageSources,\n\t\timageTextAlternative: description || '',\n\t\timageWidth: width,\n\t\timageHeight: height,\n\t\t...( imagePlaceholder ? { imagePlaceholder } : null )\n\t};\n}\n\n/**\n * Parses the assets attributes into the internal data format.\n *\n * @param origin The base URL for assets inserted into the editor.\n */\nfunction prepareLinkAssetAttributes( asset: CKBoxRawAssetDefinition ): CKBoxAssetLinkAttributesDefinition {\n\treturn {\n\t\tlinkName: asset.data.name,\n\t\tlinkHref: getAssetUrl( asset )\n\t};\n}\n\n/**\n * Checks whether the asset is an image.\n */\nfunction isImage( asset: CKBoxRawAssetDefinition ) {\n\tconst metadata = asset.data.metadata;\n\n\tif ( !metadata ) {\n\t\treturn false;\n\t}\n\n\treturn metadata.width && metadata.height;\n}\n\n/**\n * Creates the URL for the asset.\n *\n * @param origin The base URL for assets inserted into the editor.\n */\nfunction getAssetUrl( asset: CKBoxRawAssetDefinition ) {\n\tconst url = new URL( asset.data.url );\n\n\turl.searchParams.set( 'download', 'true' );\n\n\treturn url.toString();\n}\n\n/**\n * Fired when the command is executed, the dialog is closed or the assets are chosen.\n *\n * @eventName ~CKBoxCommand#ckbox\n */\ntype CKBoxEvent<Name extends '' | 'choose' | 'open' | 'close' = ''> = {\n\tname: Name extends '' ? 'ckbox' : `ckbox:${ Name }`;\n\targs: Name extends 'choose' ? [ assets: Array<CKBoxRawAssetDefinition> ] : [];\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals window */\n\n/**\n * @module ckbox/ckboxutils\n */\n\nimport type { CloudServices, InitializedToken } from '@ckeditor/ckeditor5-cloud-services';\nimport { CKEditorError, logError } from 'ckeditor5/src/utils.js';\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport {\n\tconvertMimeTypeToExtension,\n\tgetContentTypeOfUrl,\n\tgetFileExtension,\n\tgetWorkspaceId,\n\tsendHttpRequest\n} from './utils.js';\n\nconst DEFAULT_CKBOX_THEME_NAME = 'lark';\n\n/**\n * The CKBox utilities plugin.\n */\nexport default class CKBoxUtils extends Plugin {\n\t/**\n\t * CKEditor Cloud Services access token.\n\t */\n\tprivate _token!: 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 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\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\ninterface AvailableCategory {\n\tid: string;\n\tname: string;\n\textensions: Array<string>;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals AbortController, FormData, URL, window */\n\n/**\n * @module ckbox/ckboxuploadadapter\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport {\n\tFileRepository,\n\ttype FileLoader,\n\ttype UploadAdapter,\n\ttype UploadResponse\n} from 'ckeditor5/src/upload.js';\n\nimport type { InitializedToken } from '@ckeditor/ckeditor5-cloud-services';\nimport type { ImageUploadCompleteEvent, ImageUploadEditing } from '@ckeditor/ckeditor5-image';\n\nimport CKBoxEditing from './ckboxediting.js';\nimport {\n\tgetImageUrls,\n\tsendHttpRequest\n} from './utils.js';\nimport CKBoxUtils from './ckboxutils.js';\n\n/**\n * A plugin that enables file uploads in CKEditor 5 using the CKBox server–side connector.\n * See the {@glink features/file-management/ckbox CKBox file manager integration} guide to learn how to configure\n * and use this feature as well as find out more about the full integration with the file manager\n * provided by the {@link module:ckbox/ckbox~CKBox} plugin.\n *\n * Check out the {@glink features/images/image-upload/image-upload Image upload overview} guide to learn about\n * other ways to upload images into CKEditor 5.\n */\nexport default class CKBoxUploadAdapter extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ 'ImageUploadEditing', 'ImageUploadProgress', FileRepository, CKBoxEditing ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxUploadAdapter' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic async afterInit(): Promise<void> {\n\t\tconst editor = this.editor;\n\n\t\tconst hasConfiguration = !!editor.config.get( 'ckbox' );\n\t\tconst isLibraryLoaded = !!window.CKBox;\n\n\t\t// Editor supports only one upload adapter. Register the CKBox upload adapter (and potentially overwrite other one) only when the\n\t\t// integrator intentionally wants to use the CKBox plugin, i.e. when the `config.ckbox` exists or the CKBox JavaScript library is\n\t\t// loaded.\n\t\tif ( !hasConfiguration && !isLibraryLoaded ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst fileRepository = editor.plugins.get( FileRepository );\n\t\tconst ckboxUtils = editor.plugins.get( CKBoxUtils );\n\n\t\tfileRepository.createUploadAdapter = loader => new Adapter( loader, editor, ckboxUtils );\n\n\t\tconst shouldInsertDataId = !editor.config.get( 'ckbox.ignoreDataId' );\n\t\tconst imageUploadEditing: ImageUploadEditing = editor.plugins.get( 'ImageUploadEditing' );\n\n\t\t// Mark uploaded assets with the `ckboxImageId` attribute. Its value represents an ID in CKBox.\n\t\tif ( shouldInsertDataId ) {\n\t\t\timageUploadEditing.on<ImageUploadCompleteEvent>( 'uploadComplete', ( evt, { imageElement, data } ) => {\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\twriter.setAttribute( 'ckboxImageId', data.ckboxImageId, imageElement );\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Upload adapter for CKBox.\n */\nclass Adapter implements UploadAdapter {\n\t/**\n\t * FileLoader instance to use during the upload.\n\t */\n\tpublic loader: FileLoader;\n\n\t/**\n\t * CKEditor Cloud Services access token.\n\t */\n\tpublic token: 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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals window */\n\n/**\n * @module ckbox/ckboxediting\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport {\n\tRange,\n\ttype DocumentSelection,\n\ttype DowncastAttributeEvent,\n\ttype DowncastWriter,\n\ttype Element,\n\ttype Item,\n\ttype Node,\n\ttype UpcastElementEvent,\n\ttype ViewElement,\n\ttype Writer\n} from 'ckeditor5/src/engine.js';\nimport { logError, type DecoratedMethodEvent } from 'ckeditor5/src/utils.js';\n\nimport type { CKBoxAssetDefinition } from './ckboxconfig.js';\n\nimport CKBoxCommand from './ckboxcommand.js';\nimport CKBoxUploadAdapter from './ckboxuploadadapter.js';\nimport CKBoxUtils from './ckboxutils.js';\n\nimport type { ReplaceImageSourceCommand } from '@ckeditor/ckeditor5-image';\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 default 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 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\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<Element>>( 'attribute:ckboxLinkId:imageBlock', ( evt, data, conversionApi ) => {\n\t\t\t\tconst { writer, mapper, consumable } = conversionApi;\n\n\t\t\t\tif ( !consumable.consume( data.item, evt.name ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst viewFigure = mapper.toViewElement( data.item );\n\t\t\t\tconst linkInImage = [ ...viewFigure!.getChildren() ]\n\t\t\t\t\t.find( ( child: any ) => child.name === 'a' ) as ViewElement | undefined;\n\n\t\t\t\t// No link inside an image - no conversion needed.\n\t\t\t\tif ( !linkInImage ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( data.item.hasAttribute( 'ckboxLinkId' ) ) {\n\t\t\t\t\twriter.setAttribute( 'data-ckbox-resource-id', data.item.getAttribute( 'ckboxLinkId' ), linkInImage );\n\t\t\t\t} else {\n\t\t\t\t\twriter.removeAttribute( 'data-ckbox-resource-id', linkInImage );\n\t\t\t\t}\n\t\t\t}, { priority: 'low' } );\n\n\t\t\tdispatcher.on<DowncastAttributeEvent>( 'attribute:ckboxLinkId', ( evt, data, conversionApi ) => {\n\t\t\t\tconst { writer, mapper, consumable } = conversionApi;\n\n\t\t\t\tif ( !consumable.consume( data.item, evt.name ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Remove the previous attribute value if it was applied.\n\t\t\t\tif ( data.attributeOldValue ) {\n\t\t\t\t\tconst viewElement = createLinkElement( writer, data.attributeOldValue as string );\n\n\t\t\t\t\twriter.unwrap( mapper.toViewRange( data.range ), viewElement );\n\t\t\t\t}\n\n\t\t\t\t// Add the new attribute value if specified in a model element.\n\t\t\t\tif ( data.attributeNewValue ) {\n\t\t\t\t\tconst viewElement = createLinkElement( writer, data.attributeNewValue as string );\n\n\t\t\t\t\tif ( data.item.is( 'selection' ) ) {\n\t\t\t\t\t\tconst viewSelection = writer.document.selection;\n\n\t\t\t\t\t\twriter.wrap( viewSelection.getFirstRange()!, viewElement );\n\t\t\t\t\t} else {\n\t\t\t\t\t\twriter.wrap( mapper.toViewRange( data.range ), viewElement );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, { priority: 'low' } );\n\t\t} );\n\n\t\t// Convert `data-ckbox-resource-id` => `ckboxLinkId`.\n\t\t//\n\t\t// The helper conversion does not handle all cases, so take care of the `data-ckbox-resource-id` attribute manually for images\n\t\t// and links.\n\t\teditor.conversion.for( 'upcast' ).add( dispatcher => {\n\t\t\tdispatcher.on<UpcastElementEvent>( 'element:a', ( evt, data, conversionApi ) => {\n\t\t\t\tconst { writer, consumable } = conversionApi;\n\n\t\t\t\t// Upcast the `data-ckbox-resource-id` attribute only for valid link elements.\n\t\t\t\tif ( !data.viewItem.getAttribute( 'href' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst consumableAttributes = { attributes: [ 'data-ckbox-resource-id' ] };\n\n\t\t\t\tif ( !consumable.consume( data.viewItem, consumableAttributes ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst attributeValue = data.viewItem.getAttribute( 'data-ckbox-resource-id' );\n\n\t\t\t\t// Missing the `data-ckbox-resource-id` attribute.\n\t\t\t\tif ( !attributeValue ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( data.modelRange ) {\n\t\t\t\t\t// If the `<a>` element contains more than single children (e.g. a linked image), set the `ckboxLinkId` for each\n\t\t\t\t\t// allowed child.\n\t\t\t\t\tfor ( let item of data.modelRange.getItems() ) {\n\t\t\t\t\t\tif ( item.is( '$textProxy' ) ) {\n\t\t\t\t\t\t\titem = item.textNode;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Do not copy the `ckboxLinkId` attribute when wrapping an element in a block element, e.g. when\n\t\t\t\t\t\t// auto-paragraphing.\n\t\t\t\t\t\tif ( shouldUpcastAttributeForNode( item ) ) {\n\t\t\t\t\t\t\twriter.setAttribute( 'ckboxLinkId', attributeValue, item );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Otherwise, just set the `ckboxLinkId` for the model element.\n\t\t\t\t\tconst modelElement = data.modelCursor.nodeBefore || data.modelCursor.parent;\n\n\t\t\t\t\twriter.setAttribute( 'ckboxLinkId', attributeValue, modelElement as Element );\n\t\t\t\t}\n\t\t\t}, { priority: 'low' } );\n\t\t} );\n\n\t\t// Convert `ckboxImageId` => `data-ckbox-resource-id`.\n\t\teditor.conversion.for( 'downcast' ).attributeToAttribute( {\n\t\t\tmodel: 'ckboxImageId',\n\t\t\tview: 'data-ckbox-resource-id'\n\t\t} );\n\n\t\t// Convert `data-ckbox-resource-id` => `ckboxImageId`.\n\t\teditor.conversion.for( 'upcast' ).elementToAttribute( {\n\t\t\tmodel: {\n\t\t\t\tkey: 'ckboxImageId',\n\t\t\t\tvalue: ( viewElement: ViewElement ) => viewElement.getAttribute( 'data-ckbox-resource-id' )\n\t\t\t},\n\t\t\tview: {\n\t\t\t\tattributes: {\n\t\t\t\t\t'data-ckbox-resource-id': /[\\s\\S]+/\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tconst replaceImageSourceCommand = editor.commands.get( 'replaceImageSource' );\n\n\t\tif ( replaceImageSourceCommand ) {\n\t\t\tthis.listenTo<DecoratedMethodEvent<ReplaceImageSourceCommand, 'cleanupImage'>>(\n\t\t\t\treplaceImageSourceCommand,\n\t\t\t\t'cleanupImage',\n\t\t\t\t( _, [ writer, image ] ) => {\n\t\t\t\t\twriter.removeAttribute( 'ckboxImageId', image );\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Registers post-fixers that add or remove the `ckboxLinkId` and `ckboxImageId` attributes.\n\t */\n\tprivate _initFixers() {\n\t\tconst editor = this.editor;\n\t\tconst model = editor.model;\n\t\tconst selection = model.document.selection;\n\n\t\t// Registers the post-fixer to sync the asset ID with the model elements.\n\t\tmodel.document.registerPostFixer( syncDataIdPostFixer( editor ) );\n\n\t\t// Registers the post-fixer to remove the `ckboxLinkId` attribute from the model selection.\n\t\tmodel.document.registerPostFixer( injectSelectionPostFixer( selection ) );\n\t}\n}\n\n/**\n * A post-fixer that synchronizes the asset ID with the model element.\n */\nfunction syncDataIdPostFixer( editor: Editor ) {\n\treturn ( writer: Writer ) => {\n\t\tlet changed = false;\n\n\t\tconst model = editor.model;\n\t\tconst ckboxCommand: CKBoxCommand = editor.commands.get( 'ckbox' )!;\n\n\t\t// The ID from chosen assets are stored in the `CKBoxCommand#_chosenAssets`. If there is no command, it makes no sense to check\n\t\t// for changes in the model.\n\t\tif ( !ckboxCommand ) {\n\t\t\treturn changed;\n\t\t}\n\n\t\tfor ( const entry of model.document.differ.getChanges() ) {\n\t\t\tif ( entry.type !== 'insert' && entry.type !== 'attribute' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst range = entry.type === 'insert' ?\n\t\t\t\tnew Range( entry.position, entry.position.getShiftedBy( entry.length ) ) :\n\t\t\t\tentry.range;\n\n\t\t\tconst isLinkHrefAttributeRemoval = entry.type === 'attribute' &&\n\t\t\t\tentry.attributeKey === 'linkHref' &&\n\t\t\t\tentry.attributeNewValue === null;\n\n\t\t\tfor ( const item of range.getItems() ) {\n\t\t\t\t// If the `linkHref` attribute has been removed, sync the change with the `ckboxLinkId` attribute.\n\t\t\t\tif ( isLinkHrefAttributeRemoval && item.hasAttribute( 'ckboxLinkId' ) ) {\n\t\t\t\t\twriter.removeAttribute( 'ckboxLinkId', item );\n\n\t\t\t\t\tchanged = true;\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Otherwise, the change concerns either a new model element or an attribute change. Try to find the assets for the modified\n\t\t\t\t// model element.\n\t\t\t\tconst assets = findAssetsForItem( item, ckboxCommand._chosenAssets );\n\n\t\t\t\tfor ( const asset of assets ) {\n\t\t\t\t\tconst attributeName = asset.type === 'image' ? 'ckboxImageId' : 'ckboxLinkId';\n\n\t\t\t\t\tif ( asset.id === item.getAttribute( attributeName ) ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\twriter.setAttribute( attributeName, asset.id, item );\n\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn changed;\n\t};\n}\n\n/**\n * A post-fixer that removes the `ckboxLinkId` from the selection if it does not represent a link anymore.\n */\nfunction injectSelectionPostFixer( selection: DocumentSelection ) {\n\treturn ( writer: Writer ) => {\n\t\tconst shouldRemoveLinkIdAttribute = !selection.hasAttribute( 'linkHref' ) && selection.hasAttribute( 'ckboxLinkId' );\n\n\t\tif ( shouldRemoveLinkIdAttribute ) {\n\t\t\twriter.removeSelectionAttribute( 'ckboxLinkId' );\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n}\n\n/**\n * Tries to find the asset that is associated with the model element by comparing the attributes:\n * - the image fallback URL with the `src` attribute for images,\n * - the link URL with the `href` attribute for links.\n *\n * For any model element, zero, one or more than one asset can be found (e.g. a linked image may be associated with the link asset and the\n * image asset).\n */\nfunction findAssetsForItem( item: Item, assets: Set<CKBoxAssetDefinition> ) {\n\tconst isImageElement = item.is( 'element', 'imageInline' ) || item.is( 'element', 'imageBlock' );\n\tconst isLinkElement = item.hasAttribute( 'linkHref' );\n\n\treturn [ ...assets ].filter( asset => {\n\t\tif ( asset.type === 'image' && isImageElement ) {\n\t\t\treturn asset.attributes.imageFallbackUrl === item.getAttribute( 'src' );\n\t\t}\n\n\t\tif ( asset.type === 'link' && isLinkElement ) {\n\t\t\treturn asset.attributes.linkHref === item.getAttribute( 'linkHref' );\n\t\t}\n\t} );\n}\n\n/**\n * Creates view link element with the requested ID.\n */\nfunction createLinkElement( writer: DowncastWriter, id: string ) {\n\t// Priority equal 5 is needed to merge adjacent `<a>` elements together.\n\tconst viewElement = writer.createAttributeElement( 'a', { 'data-ckbox-resource-id': id }, { priority: 5 } );\n\n\twriter.setCustomProperty( 'link', true, viewElement );\n\n\treturn viewElement;\n}\n\n/**\n * Checks if the model element may have the `ckboxLinkId` attribute.\n */\nfunction shouldUpcastAttributeForNode( node: Node ) {\n\tif ( node.is( '$text' ) ) {\n\t\treturn true;\n\t}\n\n\tif ( node.is( 'element', 'imageInline' ) || node.is( 'element', 'imageBlock' ) ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n/**\n * Returns true if the CKBox library is loaded, false otherwise.\n */\nfunction isLibraryLoaded(): boolean {\n\treturn !!window.CKBox;\n}\n\n/**\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckbox\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport CKBoxUI from './ckboxui.js';\nimport CKBoxEditing from './ckboxediting.js';\n\n/**\n * The CKBox feature, a bridge between the CKEditor 5 WYSIWYG editor and the CKBox file manager and uploader.\n *\n * This is a \"glue\" plugin which enables:\n *\n * * {@link module:ckbox/ckboxediting~CKBoxEditing},\n * * {@link module:ckbox/ckboxui~CKBoxUI},\n *\n * See the {@glink features/file-management/ckbox CKBox integration} guide to learn how to configure and use this feature.\n *\n * Check out the {@glink features/images/image-upload/image-upload Image upload} guide to learn about other ways to upload\n * images into CKEditor 5.\n */\nexport default class CKBox extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBox' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ CKBoxEditing, CKBoxUI ] as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckboximageedit/utils\n */\n\nimport { global } from 'ckeditor5/src/utils.js';\n\nimport type { Element } from 'ckeditor5/src/engine.js';\nimport type { CKBoxConfig } from '../ckboxconfig.js';\n\n/**\n * @internal\n */\nexport function createEditabilityChecker(\n\tallowExternalImagesEditing: CKBoxConfig[ 'allowExternalImagesEditing' ]\n): ( element: Element ) => boolean {\n\tconst checkUrl = createUrlChecker( allowExternalImagesEditing );\n\n\treturn element => {\n\t\tconst isImageElement =\n\t\t\telement.is( 'element', 'imageInline' ) ||\n\t\t\telement.is( 'element', 'imageBlock' );\n\n\t\tif ( !isImageElement ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( element.hasAttribute( 'ckboxImageId' ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( element.hasAttribute( 'src' ) ) {\n\t\t\treturn checkUrl( element.getAttribute( 'src' ) as string );\n\t\t}\n\n\t\treturn false;\n\t};\n}\n\nfunction createUrlChecker(\n\tallowExternalImagesEditing: CKBoxConfig[ 'allowExternalImagesEditing' ]\n): ( src: string ) => boolean {\n\tif ( Array.isArray( allowExternalImagesEditing ) ) {\n\t\tconst urlMatchers = allowExternalImagesEditing.map( createUrlChecker );\n\n\t\treturn src => urlMatchers.some( matcher => matcher( src ) );\n\t}\n\n\tif ( allowExternalImagesEditing == 'origin' ) {\n\t\tconst origin = global.window.location.origin;\n\n\t\treturn src => new URL( src, global.document.baseURI ).origin == origin;\n\t}\n\n\tif ( typeof allowExternalImagesEditing == 'function' ) {\n\t\treturn allowExternalImagesEditing;\n\t}\n\n\tif ( allowExternalImagesEditing instanceof RegExp ) {\n\t\treturn src => !!(\n\t\t\tsrc.match( allowExternalImagesEditing ) ||\n\t\t\tsrc.replace( /^https?:\\/\\//, '' ).match( allowExternalImagesEditing )\n\t\t);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst shouldBeUndefned: undefined = allowExternalImagesEditing;\n\n\treturn () => false;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals document, console, AbortController, URL, window */\n\n/**\n * @module ckbox/ckboximageedit/ckboximageeditcommand\n */\n\nimport { Command, PendingActions, type Editor } from 'ckeditor5/src/core.js';\nimport {\n\tCKEditorError,\n\tabortableDebounce,\n\tcreateElement,\n\tretry,\n\tdelay,\n\ttype AbortableFunc\n} from 'ckeditor5/src/utils.js';\nimport type { Element as ModelElement } from 'ckeditor5/src/engine.js';\nimport { Notification } from 'ckeditor5/src/ui.js';\nimport { isEqual } from 'lodash-es';\n\nimport { sendHttpRequest } from '../utils.js';\nimport { prepareImageAssetAttributes } from '../ckboxcommand.js';\nimport type { CKBoxRawAssetDefinition, CKBoxRawAssetDataDefinition } from '../ckboxconfig.js';\n\nimport type { ImageUtils } from '@ckeditor/ckeditor5-image';\nimport { createEditabilityChecker } from './utils.js';\nimport CKBoxUtils from '../ckboxutils.js';\n\n/**\n * The CKBox edit image command.\n *\n * Opens the CKBox dialog for editing the image.\n */\nexport default class CKBoxImageEditCommand extends Command {\n\t/**\n\t * Flag indicating whether the command is active, i.e. dialog is open.\n\t */\n\tdeclare public value: boolean;\n\n\t/**\n\t * The DOM element that acts as a mounting point for the CKBox Edit Image dialog.\n\t */\n\tprivate _wrapper: Element | null = null;\n\n\t/**\n\t * The states of image processing in progress.\n\t */\n\tprivate _processInProgress = new Set<ProcessingState>();\n\n\t/**\n\t * Determines if the element can be edited.\n\t */\n\tprivate _canEdit: ( element: ModelElement ) => boolean;\n\n\t/**\n\t * A wrapper function to prepare mount options. Ensures that at most one preparation is in-flight.\n\t */\n\tprivate _prepareOptions: AbortableFunc<[ ProcessingState ], Promise<Record<string, unknown>>>;\n\n\t/**\n\t* CKBox's onClose function runs before the final cleanup, potentially causing\n\t* page layout changes after it finishes. To address this, we use a setTimeout hack\n\t* to ensure that floating elements on the page maintain their correct position.\n\t*\n\t* See: https://github.com/ckeditor/ckeditor5/issues/16153.\n\t*/\n\tprivate _updateUiDelayed = delay( () => this.editor.ui.update(), 0 );\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis.value = false;\n\n\t\tthis._canEdit = createEditabilityChecker( editor.config.get( 'ckbox.allowExternalImagesEditing' ) );\n\t\tthis._prepareOptions = abortableDebounce( ( signal, state ) => this._prepareOptionsAbortable( signal, state ) );\n\n\t\tthis._prepareListeners();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override refresh(): void {\n\t\tconst editor = this.editor;\n\n\t\tthis.value = this._getValue();\n\n\t\tconst selectedElement = editor.model.document.selection.getSelectedElement();\n\n\t\tthis.isEnabled =\n\t\t\t!!selectedElement &&\n\t\t\tthis._canEdit( selectedElement ) &&\n\t\t\t!this._checkIfElementIsBeingProcessed( selectedElement );\n\t}\n\n\t/**\n\t * Opens the CKBox Image Editor dialog for editing the image.\n\t */\n\tpublic override execute(): void {\n\t\tif ( this._getValue() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst wrapper = createElement( document, 'div', { class: 'ck ckbox-wrapper' } );\n\n\t\tthis._wrapper = wrapper;\n\t\tthis.value = true;\n\n\t\tdocument.body.appendChild( this._wrapper );\n\n\t\tconst imageElement = this.editor.model.document.selection.getSelectedElement()!;\n\n\t\tconst processingState: ProcessingState = {\n\t\t\telement: imageElement,\n\t\t\tcontroller: new AbortController()\n\t\t};\n\n\t\tthis._prepareOptions( processingState ).then(\n\t\t\toptions => window.CKBox.mountImageEditor( wrapper, options ),\n\t\t\terror => {\n\t\t\t\tconst editor = this.editor;\n\t\t\t\tconst t = editor.t;\n\t\t\t\tconst notification = editor.plugins.get( Notification );\n\n\t\t\t\tnotification.showWarning( t( 'Failed to determine category of edited image.' ), {\n\t\t\t\t\tnamespace: 'ckbox'\n\t\t\t\t} );\n\t\t\t\tconsole.error( error );\n\t\t\t\tthis._handleImageEditorClose();\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tthis._handleImageEditorClose();\n\n\t\tthis._prepareOptions.abort();\n\n\t\tthis._updateUiDelayed.cancel();\n\n\t\tfor ( const state of this._processInProgress.values() ) {\n\t\t\tstate.controller.abort();\n\t\t}\n\n\t\tsuper.destroy();\n\t}\n\n\t/**\n\t * Indicates if the CKBox Image Editor dialog is already opened.\n\t */\n\tprivate _getValue(): boolean {\n\t\treturn this._wrapper !== null;\n\t}\n\n\t/**\n\t * Creates the options object for the CKBox Image Editor dialog.\n\t */\n\tprivate async _prepareOptionsAbortable( signal: AbortSignal, state: ProcessingState ) {\n\t\tconst editor = this.editor;\n\t\tconst ckboxConfig = editor.config.get( 'ckbox' )!;\n\t\tconst ckboxUtils = editor.plugins.get( CKBoxUtils );\n\t\tconst { element } = state;\n\n\t\tlet imageMountOptions;\n\t\tconst ckboxImageId = element.getAttribute( 'ckboxImageId' );\n\n\t\tif ( ckboxImageId ) {\n\t\t\timageMountOptions = {\n\t\t\t\tassetId: ckboxImageId\n\t\t\t};\n\t\t} else {\n\t\t\tconst imageUrl = new URL( element.getAttribute( 'src' ) as string, document.baseURI ).href;\n\t\t\tconst uploadCategoryId = await ckboxUtils.getCategoryIdForFile( imageUrl, { signal } );\n\n\t\t\timageMountOptions = {\n\t\t\t\timageUrl,\n\t\t\t\tuploadCategoryId\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\t...imageMountOptions,\n\t\t\timageEditing: {\n\t\t\t\tallowOverwrite: false\n\t\t\t},\n\t\t\ttokenUrl: ckboxConfig.tokenUrl,\n\t\t\t...( ckboxConfig.serviceOrigin && { serviceOrigin: ckboxConfig.serviceOrigin } ),\n\t\t\tonClose: () => this._handleImageEditorClose(),\n\t\t\tonSave: ( asset: CKBoxRawAssetDefinition ) => this._handleImageEditorSave( state, asset )\n\t\t};\n\t}\n\n\t/**\n\t * Initializes event lister for an event of removing an image.\n\t */\n\tprivate _prepareListeners(): void {\n\t\t// Abort editing processing when the image has been removed.\n\t\tthis.listenTo( this.editor.model.document, 'change:data', () => {\n\t\t\tconst processingStates = this._getProcessingStatesOfDeletedImages();\n\n\t\t\tprocessingStates.forEach( processingState => {\n\t\t\t\tprocessingState.controller.abort();\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Gets processing states of images that have been deleted in the mean time.\n\t */\n\tprivate _getProcessingStatesOfDeletedImages(): Array<ProcessingState> {\n\t\tconst states: Array<ProcessingState> = [];\n\n\t\tfor ( const state of this._processInProgress.values() ) {\n\t\t\tif ( state.element.root.rootName == '$graveyard' ) {\n\t\t\t\tstates.push( state );\n\t\t\t}\n\t\t}\n\n\t\treturn states;\n\t}\n\n\tprivate _checkIfElementIsBeingProcessed( selectedElement: ModelElement ) {\n\t\tfor ( const { element } of this._processInProgress ) {\n\t\t\tif ( isEqual( element, selectedElement ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Closes the CKBox Image Editor dialog.\n\t */\n\tprivate _handleImageEditorClose() {\n\t\tif ( !this._wrapper ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._wrapper.remove();\n\t\tthis._wrapper = null;\n\n\t\tthis.editor.editing.view.focus();\n\n\t\tthis._updateUiDelayed();\n\n\t\tthis.refresh();\n\t}\n\n\t/**\n\t * Save edited image. In case server respond with \"success\" replace with edited image,\n\t * otherwise show notification error.\n\t */\n\tprivate _handleImageEditorSave( state: ProcessingState, asset: CKBoxRawAssetDefinition ) {\n\t\tconst t = this.editor.locale.t;\n\t\tconst notification = this.editor.plugins.get( Notification );\n\t\tconst pendingActions = this.editor.plugins.get( PendingActions );\n\t\tconst action = pendingActions.add( t( 'Processing the edited image.' ) );\n\n\t\tthis._processInProgress.add( state );\n\t\tthis._showImageProcessingIndicator( state.element, asset );\n\t\tthis.refresh();\n\n\t\tthis._waitForAssetProcessed( asset.data.id, state.controller.signal )\n\t\t\t.then(\n\t\t\t\tasset => {\n\t\t\t\t\tthis._replaceImage( state.element, asset );\n\t\t\t\t},\n\t\t\t\terror => {\n\t\t\t\t\t// Remove processing indicator. It was added only to ViewElement.\n\t\t\t\t\tthis.editor.editing.reconvertItem( state.element );\n\n\t\t\t\t\tif ( state.controller.signal.aborted ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !error || error instanceof CKEditorError ) {\n\t\t\t\t\t\tnotification.showWarning( t( 'Server failed to process the image.' ), {\n\t\t\t\t\t\t\tnamespace: 'ckbox'\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.error( error );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t).finally( () => {\n\t\t\t\tthis._processInProgress.delete( state );\n\t\t\t\tpendingActions.remove( action );\n\t\t\t\tthis.refresh();\n\t\t\t} );\n\t}\n\n\t/**\n\t * Get asset's status on server. If server responds with \"success\" status then\n\t * image is already proceeded and ready for saving.\n\t */\n\tprivate async _getAssetStatusFromServer( id: string, signal: AbortSignal ): Promise<CKBoxRawAssetDefinition> {\n\t\tconst ckboxUtils = this.editor.plugins.get( CKBoxUtils );\n\n\t\tconst url = new URL( 'assets/' + id, this.editor.config.get( 'ckbox.serviceOrigin' )! );\n\t\tconst response: CKBoxRawAssetDataDefinition = await sendHttpRequest( {\n\t\t\turl,\n\t\t\tsignal,\n\t\t\tauthorization: ( 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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckboximageedit/ckboximageeditediting\n */\n\nimport { PendingActions, Plugin } from 'ckeditor5/src/core.js';\nimport { Notification } from 'ckeditor5/src/ui.js';\nimport CKBoxImageEditCommand from './ckboximageeditcommand.js';\nimport CKBoxEditing from '../ckboxediting.js';\nimport CKBoxUtils from '../ckboxutils.js';\n\n/**\n * The CKBox image edit editing plugin.\n */\nexport default class CKBoxImageEditEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxImageEditEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ CKBoxEditing, CKBoxUtils, PendingActions, Notification, 'ImageUtils', 'ImageEditing' ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst { editor } = this;\n\n\t\teditor.commands.add( 'ckboxImageEdit', new CKBoxImageEditCommand( editor ) );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckboximageedit/ckboximageeditui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView } from 'ckeditor5/src/ui.js';\n\nimport ckboxImageEditIcon from '../../theme/icons/ckbox-image-edit.svg';\n\n/**\n * The UI plugin of the CKBox image edit feature.\n *\n * It registers the `'ckboxImageEdit'` UI button in the editor's {@link module:ui/componentfactory~ComponentFactory component factory}\n * that allows you to open the CKBox dialog and edit the image.\n */\nexport default class CKBoxImageEditUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxImageEditUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( 'ckboxImageEdit', locale => {\n\t\t\tconst command = editor.commands.get( 'ckboxImageEdit' )!;\n\t\t\tconst 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: ckboxImageEditIcon,\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-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ckbox/ckboximageedit\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport CKBoxImageEditEditing from './ckboximageedit/ckboximageeditediting.js';\nimport CKBoxImageEditUI from './ckboximageedit/ckboximageeditui.js';\n\nimport '../theme/ckboximageedit.css';\n\n/**\n * The CKBox image edit feature.\n */\nexport default class CKBoxImageEdit extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'CKBoxImageEdit' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ CKBoxImageEditEditing, CKBoxImageEditUI ] as const;\n\t}\n}\n"]}
|