@ckeditor/ckeditor5-ckbox 43.3.0-alpha.5 → 43.3.0-alpha.6

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js","../src/ckboxui.ts","../src/utils.ts","../src/ckboxcommand.ts","../src/ckboxutils.ts","../src/ckboxuploadadapter.ts","../src/ckboxediting.ts","../src/ckbox.ts","../src/ckboximageedit/utils.ts","../src/ckboximageedit/ckboximageeditcommand.ts","../src/ckboximageedit/ckboximageeditediting.ts","../src/ckboximageedit/ckboximageeditui.ts","../src/ckboximageedit.ts"],"names":["CKBoxUI","Plugin","pluginName","isOfficialPlugin","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","translateVariableKey","getImageUrls","imageUrls","responsiveUrls","maxWidth","key","width","parseInt","isNaN","push","imageSources","srcset","join","sizes","imageFallbackUrl","default","getWorkspaceId","token","defaultWorkspaceId","binaryTokenPayload","value","split","payload","JSON","parse","atob","workspaces","auth","ckbox","aud","role","includes","BLUR_RESOLUTION","blurHashToDataUrl","hash","resolutionInPx","canvas","document","createElement","setAttribute","ctx","getContext","imageData","createImageData","decoded","decode","data","set","putImageData","toDataURL","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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AAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,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,E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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 */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ afterInit() {\n const editor = this.editor;\n // Do not register the `ckbox` button if the command does not exist.\n // This might happen when CKBox library is not loaded on the page.\n if (!editor.commands.get('ckbox')) {\n return;\n }\n editor.ui.componentFactory.add('ckbox', ()=>this._createFileToolbarButton());\n editor.ui.componentFactory.add('menuBar:ckbox', ()=>this._createFileMenuBarButton());\n if (editor.plugins.has('ImageInsertUI')) {\n editor.plugins.get('ImageInsertUI').registerIntegration({\n name: 'assetManager',\n observable: ()=>editor.commands.get('ckbox'),\n buttonViewCreator: ()=>this._createImageToolbarButton(),\n formViewCreator: ()=>this._createImageDropdownButton(),\n menuBarButtonViewCreator: (isOnly)=>this._createImageMenuBarButton(isOnly ? 'insertOnly' : 'insertNested')\n });\n }\n }\n /**\n\t * Creates the base for various kinds of the button component provided by this feature.\n\t */ _createButton(ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const view = new ButtonClass(locale);\n const command = editor.commands.get('ckbox');\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n view.on('execute', ()=>{\n editor.execute('ckbox');\n });\n return view;\n }\n /**\n\t * Creates a simple toolbar button for files management, with an icon and a tooltip.\n\t */ _createFileToolbarButton() {\n const t = this.editor.locale.t;\n const button = this._createButton(ButtonView);\n button.icon = 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 // Use t() stored in a variable with a different name to reuse existing translations from another package.\n const translateVariableKey = this.editor.locale.t;\n const t = this.editor.locale.t;\n const button = this._createButton(MenuBarMenuListItemButtonView);\n button.icon = icons.imageAssetManager;\n button.withText = true;\n switch(type){\n case 'insertOnly':\n button.label = translateVariableKey('Image');\n break;\n case 'insertNested':\n button.label = t('With file manager');\n break;\n }\n return button;\n }\n}\n\n/**\n * Converts image source set provided by the CKBox into an object containing:\n * - responsive URLs for the \"webp\" image format,\n * - one fallback URL for browsers that do not support the \"webp\" format.\n */ 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 isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n 'CloudServices'\n ];\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const hasConfiguration = !!editor.config.get('ckbox');\n const isLibraryLoaded = !!window.CKBox;\n // Proceed with plugin initialization only when the integrator intentionally wants to use it, i.e. when the `config.ckbox` exists or\n // the CKBox JavaScript library is loaded.\n if (!hasConfiguration && !isLibraryLoaded) {\n return;\n }\n editor.config.define('ckbox', {\n serviceOrigin: 'https://api.ckbox.io',\n defaultUploadCategories: null,\n ignoreDataId: false,\n language: editor.locale.uiLanguage,\n theme: DEFAULT_CKBOX_THEME_NAME,\n tokenUrl: editor.config.get('cloudServices.tokenUrl')\n });\n const cloudServices = editor.plugins.get('CloudServices');\n const cloudServicesTokenUrl = editor.config.get('cloudServices.tokenUrl');\n const ckboxTokenUrl = editor.config.get('ckbox.tokenUrl');\n if (!ckboxTokenUrl) {\n /**\n\t\t\t * The {@link module:ckbox/ckboxconfig~CKBoxConfig#tokenUrl `config.ckbox.tokenUrl`} or the\n\t\t\t * {@link module:cloud-services/cloudservicesconfig~CloudServicesConfig#tokenUrl `config.cloudServices.tokenUrl`}\n\t\t\t * configuration is required for the CKBox plugin.\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * ClassicEditor.create( document.createElement( 'div' ), {\n\t\t\t * \tckbox: {\n\t\t\t * \t\ttokenUrl: \"YOUR_TOKEN_URL\"\n\t\t\t * \t\t// ...\n\t\t\t * \t}\n\t\t\t * \t// ...\n\t\t\t * } );\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @error ckbox-plugin-missing-token-url\n\t\t\t */ throw new CKEditorError('ckbox-plugin-missing-token-url', this);\n }\n if (ckboxTokenUrl == cloudServicesTokenUrl) {\n this._token = Promise.resolve(cloudServices.token);\n } else {\n this._token = cloudServices.registerTokenUrl(ckboxTokenUrl);\n }\n }\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 */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ async afterInit() {\n const editor = this.editor;\n const hasConfiguration = !!editor.config.get('ckbox');\n const isLibraryLoaded = !!window.CKBox;\n // Editor supports only one upload adapter. Register the CKBox upload adapter (and potentially overwrite other one) only when the\n // integrator intentionally wants to use the CKBox plugin, i.e. when the `config.ckbox` exists or the CKBox JavaScript library is\n // loaded.\n if (!hasConfiguration && !isLibraryLoaded) {\n return;\n }\n const fileRepository = editor.plugins.get(FileRepository);\n const ckboxUtils = editor.plugins.get(CKBoxUtils);\n fileRepository.createUploadAdapter = (loader)=>new Adapter(loader, editor, ckboxUtils);\n const shouldInsertDataId = !editor.config.get('ckbox.ignoreDataId');\n const imageUploadEditing = editor.plugins.get('ImageUploadEditing');\n // Mark uploaded assets with the `ckboxImageId` attribute. Its value represents an ID in CKBox.\n if (shouldInsertDataId) {\n imageUploadEditing.on('uploadComplete', (evt, { imageElement, data })=>{\n editor.model.change((writer)=>{\n writer.setAttribute('ckboxImageId', data.ckboxImageId, imageElement);\n });\n });\n }\n }\n}\n/**\n * Upload adapter for CKBox.\n */ class Adapter {\n /**\n\t * FileLoader instance to use during the upload.\n\t */ loader;\n /**\n\t * CKEditor Cloud Services access token.\n\t */ token;\n /**\n\t * The editor instance.\n\t */ editor;\n /**\n\t * The abort controller for aborting asynchronous processes.\n\t */ controller;\n /**\n\t * The base URL where all requests should be sent.\n\t */ serviceOrigin;\n /**\n\t * The reference to CKBoxUtils plugin.\n\t */ ckboxUtils;\n /**\n\t * Creates a new adapter instance.\n\t */ constructor(loader, editor, ckboxUtils){\n this.loader = loader;\n this.token = ckboxUtils.getToken();\n this.ckboxUtils = ckboxUtils;\n this.editor = editor;\n this.controller = new AbortController();\n this.serviceOrigin = editor.config.get('ckbox.serviceOrigin');\n }\n /**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */ async upload() {\n const ckboxUtils = this.ckboxUtils;\n const t = this.editor.t;\n const file = await this.loader.file;\n const category = await ckboxUtils.getCategoryIdForFile(file, {\n signal: this.controller.signal\n });\n const uploadUrl = new URL('assets', this.serviceOrigin);\n const formData = new FormData();\n uploadUrl.searchParams.set('workspaceId', await ckboxUtils.getWorkspaceId());\n formData.append('categoryId', category);\n formData.append('file', file);\n const requestConfig = {\n method: 'POST',\n url: uploadUrl,\n data: formData,\n onUploadProgress: (evt)=>{\n /* istanbul ignore else -- @preserve */ if (evt.lengthComputable) {\n this.loader.uploadTotal = evt.total;\n this.loader.uploaded = evt.loaded;\n }\n },\n signal: this.controller.signal,\n authorization: (await this.token).value\n };\n return sendHttpRequest(requestConfig).then(async (data)=>{\n const imageUrls = getImageUrls(data.imageUrls);\n return {\n ckboxImageId: data.id,\n default: imageUrls.imageFallbackUrl,\n sources: imageUrls.imageSources\n };\n }).catch(()=>{\n const genericError = t('Cannot upload file:') + ` ${file.name}.`;\n return Promise.reject(genericError);\n });\n }\n /**\n\t * Aborts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#abort\n\t */ abort() {\n this.controller.abort();\n }\n}\n\nconst COMMAND_FORCE_DISABLE_ID = 'NoPermission';\n/**\n * The CKBox editing feature. It introduces the {@link module:ckbox/ckboxcommand~CKBoxCommand CKBox command} and\n * {@link module:ckbox/ckboxuploadadapter~CKBoxUploadAdapter CKBox upload adapter}.\n */ class CKBoxEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n 'LinkEditing',\n 'PictureEditing',\n CKBoxUploadAdapter,\n CKBoxUtils\n ];\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n if (!this._shouldBeInitialised()) {\n return;\n }\n this._checkImagePlugins();\n // Registering the `ckbox` command makes sense only if the CKBox library is loaded, as the `ckbox` command opens the CKBox dialog.\n if (isLibraryLoaded()) {\n editor.commands.add('ckbox', new CKBoxCommand(editor));\n }\n // Promise is not handled intentionally. Errors should be displayed in console if there are so.\n isUploadPermissionGranted(editor).then((isCreateAssetAllowed)=>{\n if (!isCreateAssetAllowed) {\n this._blockImageCommands();\n }\n });\n }\n /**\n\t * @inheritDoc\n\t */ afterInit() {\n const editor = this.editor;\n if (!this._shouldBeInitialised()) {\n return;\n }\n // Extending the schema, registering converters and applying fixers only make sense if the configuration option to assign\n // the assets ID with the model elements is enabled.\n if (!editor.config.get('ckbox.ignoreDataId')) {\n this._initSchema();\n this._initConversion();\n this._initFixers();\n }\n }\n /**\n\t * Returns true only when the integrator intentionally wants to use the plugin, i.e. when the `config.ckbox` exists or\n\t * the CKBox JavaScript library is loaded.\n\t */ _shouldBeInitialised() {\n const editor = this.editor;\n const hasConfiguration = !!editor.config.get('ckbox');\n return hasConfiguration || isLibraryLoaded();\n }\n /**\n\t * Blocks `uploadImage` and `ckboxImageEdit` commands.\n\t */ _blockImageCommands() {\n const editor = this.editor;\n const uploadImageCommand = editor.commands.get('uploadImage');\n const imageEditingCommand = editor.commands.get('ckboxImageEdit');\n if (uploadImageCommand) {\n uploadImageCommand.isAccessAllowed = false;\n uploadImageCommand.forceDisabled(COMMAND_FORCE_DISABLE_ID);\n }\n if (imageEditingCommand) {\n imageEditingCommand.forceDisabled(COMMAND_FORCE_DISABLE_ID);\n }\n }\n /**\n\t * Checks if at least one image plugin is loaded.\n\t */ _checkImagePlugins() {\n const editor = this.editor;\n if (!editor.plugins.has('ImageBlockEditing') && !editor.plugins.has('ImageInlineEditing')) {\n /**\n\t\t\t * The CKBox feature requires one of the following plugins to be loaded to work correctly:\n\t\t\t *\n\t\t\t * * {@link module:image/imageblock~ImageBlock},\n\t\t\t * * {@link module:image/imageinline~ImageInline},\n\t\t\t * * {@link module:image/image~Image} (loads both `ImageBlock` and `ImageInline`)\n\t\t\t *\n\t\t\t * Please make sure your editor configuration is correct.\n\t\t\t *\n\t\t\t * @error ckbox-plugin-image-feature-missing\n\t\t\t * @param {module:core/editor/editor~Editor} editor\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 isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n CKBoxEditing,\n CKBoxUI\n ];\n }\n}\n\n/**\n * @internal\n */ function createEditabilityChecker(allowExternalImagesEditing) {\n const checkUrl = createUrlChecker(allowExternalImagesEditing);\n return (element)=>{\n const isImageElement = element.is('element', 'imageInline') || element.is('element', 'imageBlock');\n if (!isImageElement) {\n return false;\n }\n if (element.hasAttribute('ckboxImageId')) {\n return true;\n }\n if (element.hasAttribute('src')) {\n return checkUrl(element.getAttribute('src'));\n }\n return false;\n };\n}\nfunction createUrlChecker(allowExternalImagesEditing) {\n if (Array.isArray(allowExternalImagesEditing)) {\n const urlMatchers = allowExternalImagesEditing.map(createUrlChecker);\n return (src)=>urlMatchers.some((matcher)=>matcher(src));\n }\n if (allowExternalImagesEditing == 'origin') {\n const origin = global.window.location.origin;\n return (src)=>new URL(src, global.document.baseURI).origin == origin;\n }\n if (typeof allowExternalImagesEditing == 'function') {\n return allowExternalImagesEditing;\n }\n if (allowExternalImagesEditing instanceof RegExp) {\n return (src)=>!!(src.match(allowExternalImagesEditing) || src.replace(/^https?:\\/\\//, '').match(allowExternalImagesEditing));\n }\n return ()=>false;\n}\n\n/**\n * The CKBox edit image command.\n *\n * Opens the CKBox dialog for editing the image.\n */ class CKBoxImageEditCommand extends Command {\n /**\n\t * The DOM element that acts as a mounting point for the CKBox Edit Image dialog.\n\t */ _wrapper = null;\n /**\n\t * The states of image processing in progress.\n\t */ _processInProgress = new Set();\n /**\n\t * Determines if the element can be edited.\n\t */ _canEdit;\n /**\n\t * A wrapper function to prepare mount options. Ensures that at most one preparation is in-flight.\n\t */ _prepareOptions;\n /**\n\t* CKBox's onClose function runs before the final cleanup, potentially causing\n\t* page layout changes after it finishes. To address this, we use a setTimeout hack\n\t* to ensure that floating elements on the page maintain their correct position.\n\t*\n\t* See: https://github.com/ckeditor/ckeditor5/issues/16153.\n\t*/ _updateUiDelayed = delay(()=>this.editor.ui.update(), 0);\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this.value = false;\n this._canEdit = createEditabilityChecker(editor.config.get('ckbox.allowExternalImagesEditing'));\n this._prepareOptions = abortableDebounce((signal, state)=>this._prepareOptionsAbortable(signal, state));\n this._prepareListeners();\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const editor = this.editor;\n this.value = this._getValue();\n const selectedElement = editor.model.document.selection.getSelectedElement();\n this.isEnabled = !!selectedElement && this._canEdit(selectedElement) && !this._checkIfElementIsBeingProcessed(selectedElement);\n }\n /**\n\t * Opens the CKBox Image Editor dialog for editing the image.\n\t */ execute() {\n if (this._getValue()) {\n return;\n }\n const wrapper = createElement(document, 'div', {\n class: 'ck ckbox-wrapper'\n });\n this._wrapper = wrapper;\n this.value = true;\n document.body.appendChild(this._wrapper);\n const imageElement = this.editor.model.document.selection.getSelectedElement();\n const processingState = {\n element: imageElement,\n controller: new AbortController()\n };\n this._prepareOptions(processingState).then((options)=>window.CKBox.mountImageEditor(wrapper, options), (error)=>{\n const editor = this.editor;\n const t = editor.t;\n const notification = editor.plugins.get(Notification);\n notification.showWarning(t('Failed to determine category of edited image.'), {\n namespace: 'ckbox'\n });\n console.error(error);\n this._handleImageEditorClose();\n });\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n this._handleImageEditorClose();\n this._prepareOptions.abort();\n this._updateUiDelayed.cancel();\n for (const state of this._processInProgress.values()){\n state.controller.abort();\n }\n super.destroy();\n }\n /**\n\t * Indicates if the CKBox Image Editor dialog is already opened.\n\t */ _getValue() {\n return this._wrapper !== null;\n }\n /**\n\t * Creates the options object for the CKBox Image Editor dialog.\n\t */ async _prepareOptionsAbortable(signal, state) {\n const editor = this.editor;\n const ckboxConfig = editor.config.get('ckbox');\n const ckboxUtils = editor.plugins.get(CKBoxUtils);\n const { element } = state;\n let imageMountOptions;\n const ckboxImageId = element.getAttribute('ckboxImageId');\n if (ckboxImageId) {\n imageMountOptions = {\n assetId: ckboxImageId\n };\n } else {\n const imageUrl = new URL(element.getAttribute('src'), document.baseURI).href;\n const uploadCategoryId = await ckboxUtils.getCategoryIdForFile(imageUrl, {\n signal\n });\n imageMountOptions = {\n imageUrl,\n uploadCategoryId\n };\n }\n return {\n ...imageMountOptions,\n imageEditing: {\n allowOverwrite: false\n },\n tokenUrl: ckboxConfig.tokenUrl,\n ...ckboxConfig.serviceOrigin && {\n serviceOrigin: ckboxConfig.serviceOrigin\n },\n onClose: ()=>this._handleImageEditorClose(),\n onSave: (asset)=>this._handleImageEditorSave(state, asset)\n };\n }\n /**\n\t * Initializes event lister for an event of removing an image.\n\t */ _prepareListeners() {\n // Abort editing processing when the image has been removed.\n this.listenTo(this.editor.model.document, 'change:data', ()=>{\n const processingStates = this._getProcessingStatesOfDeletedImages();\n processingStates.forEach((processingState)=>{\n processingState.controller.abort();\n });\n });\n }\n /**\n\t * Gets processing states of images that have been deleted in the mean time.\n\t */ _getProcessingStatesOfDeletedImages() {\n const states = [];\n for (const state of this._processInProgress.values()){\n if (state.element.root.rootName == '$graveyard') {\n states.push(state);\n }\n }\n return states;\n }\n _checkIfElementIsBeingProcessed(selectedElement) {\n for (const { element } of this._processInProgress){\n if (isEqual(element, selectedElement)) {\n return true;\n }\n }\n return false;\n }\n /**\n\t * Closes the CKBox Image Editor dialog.\n\t */ _handleImageEditorClose() {\n if (!this._wrapper) {\n return;\n }\n this._wrapper.remove();\n this._wrapper = null;\n this.editor.editing.view.focus();\n this._updateUiDelayed();\n this.refresh();\n }\n /**\n\t * Save edited image. In case server respond with \"success\" replace with edited image,\n\t * otherwise show notification error.\n\t */ _handleImageEditorSave(state, asset) {\n const t = this.editor.locale.t;\n const notification = this.editor.plugins.get(Notification);\n const pendingActions = this.editor.plugins.get(PendingActions);\n const action = pendingActions.add(t('Processing the edited image.'));\n this._processInProgress.add(state);\n this._showImageProcessingIndicator(state.element, asset);\n this.refresh();\n this._waitForAssetProcessed(asset.data.id, state.controller.signal).then((asset)=>{\n this._replaceImage(state.element, asset);\n }, (error)=>{\n // Remove processing indicator. It was added only to ViewElement.\n this.editor.editing.reconvertItem(state.element);\n if (state.controller.signal.aborted) {\n return;\n }\n if (!error || error instanceof CKEditorError) {\n notification.showWarning(t('Server failed to process the image.'), {\n namespace: 'ckbox'\n });\n } else {\n console.error(error);\n }\n }).finally(()=>{\n this._processInProgress.delete(state);\n pendingActions.remove(action);\n this.refresh();\n });\n }\n /**\n\t * Get asset's status on server. If server responds with \"success\" status then\n\t * image is already proceeded and ready for saving.\n\t */ async _getAssetStatusFromServer(id, signal) {\n const ckboxUtils = this.editor.plugins.get(CKBoxUtils);\n const url = new URL('assets/' + id, this.editor.config.get('ckbox.serviceOrigin'));\n const response = await sendHttpRequest({\n url,\n signal,\n authorization: (await ckboxUtils.getToken()).value\n });\n const status = response.metadata.metadataProcessingStatus;\n if (!status || status == 'queued') {\n /**\n\t\t\t * Image has not been processed yet.\n\t\t\t *\n\t\t\t * @error ckbox-image-not-processed\n\t\t\t */ throw new CKEditorError('ckbox-image-not-processed');\n }\n return {\n data: {\n ...response\n }\n };\n }\n /**\n\t * Waits for an asset to be processed.\n\t * It retries retrieving asset status from the server in case of failure.\n\t */ async _waitForAssetProcessed(id, signal) {\n const result = await retry(()=>this._getAssetStatusFromServer(id, signal), {\n signal,\n maxAttempts: 5\n });\n if (result.data.metadata.metadataProcessingStatus != 'success') {\n /**\n\t\t\t * The image processing failed.\n\t\t\t *\n\t\t\t * @error ckbox-image-processing-failed\n\t\t\t */ throw new CKEditorError('ckbox-image-processing-failed');\n }\n return result;\n }\n /**\n\t * Shows processing indicator while image is processing.\n\t *\n\t * @param asset Data about certain asset.\n\t */ _showImageProcessingIndicator(element, asset) {\n const editor = this.editor;\n editor.editing.view.change((writer)=>{\n const imageElementView = editor.editing.mapper.toViewElement(element);\n const imageUtils = this.editor.plugins.get('ImageUtils');\n const img = imageUtils.findViewImgElement(imageElementView);\n writer.removeStyle('aspect-ratio', img);\n writer.setAttribute('width', asset.data.metadata.width, img);\n writer.setAttribute('height', asset.data.metadata.height, img);\n writer.setStyle('width', `${asset.data.metadata.width}px`, img);\n writer.setStyle('height', `${asset.data.metadata.height}px`, img);\n writer.addClass('image-processing', imageElementView);\n });\n }\n /**\n\t * Replace the edited image with the new one.\n\t */ _replaceImage(element, asset) {\n const editor = this.editor;\n const { imageFallbackUrl, imageSources, imageWidth, imageHeight, imagePlaceholder } = prepareImageAssetAttributes(asset);\n const previousSelectionRanges = Array.from(editor.model.document.selection.getRanges());\n editor.model.change((writer)=>{\n writer.setSelection(element, 'on');\n editor.execute('insertImage', {\n imageType: element.is('element', 'imageInline') ? 'imageInline' : null,\n source: {\n src: imageFallbackUrl,\n sources: imageSources,\n width: imageWidth,\n height: imageHeight,\n ...imagePlaceholder ? {\n placeholder: imagePlaceholder\n } : null,\n ...element.hasAttribute('alt') ? {\n alt: element.getAttribute('alt')\n } : null\n }\n });\n const previousChildren = element.getChildren();\n element = editor.model.document.selection.getSelectedElement();\n for (const child of previousChildren){\n writer.append(writer.cloneElement(child), element);\n }\n writer.setAttribute('ckboxImageId', asset.data.id, element);\n writer.setSelection(previousSelectionRanges);\n });\n }\n}\n\n/**\n * The CKBox image edit editing plugin.\n */ class CKBoxImageEditEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxImageEditEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n CKBoxEditing,\n CKBoxUtils,\n PendingActions,\n Notification,\n 'ImageUtils',\n 'ImageEditing'\n ];\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const { editor } = this;\n editor.commands.add('ckboxImageEdit', new CKBoxImageEditCommand(editor));\n }\n}\n\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 */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.ui.componentFactory.add('ckboxImageEdit', (locale)=>{\n const command = editor.commands.get('ckboxImageEdit');\n const uploadImageCommand = editor.commands.get('uploadImage');\n const view = new ButtonView(locale);\n const t = locale.t;\n view.set({\n icon: 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 isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n CKBoxImageEditEditing,\n CKBoxImageEditUI\n ];\n }\n}\n\nexport { CKBox, 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 static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\n\t\t// Do not register the `ckbox` button if the command does not exist.\n\t\t// This might happen when CKBox library is not loaded on the page.\n\t\tif ( !editor.commands.get( 'ckbox' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\teditor.ui.componentFactory.add( 'ckbox', () => this._createFileToolbarButton() );\n\t\teditor.ui.componentFactory.add( 'menuBar:ckbox', () => this._createFileMenuBarButton() );\n\n\t\tif ( editor.plugins.has( 'ImageInsertUI' ) ) {\n\t\t\teditor.plugins.get( 'ImageInsertUI' ).registerIntegration( {\n\t\t\t\tname: 'assetManager',\n\t\t\t\tobservable: () => editor.commands.get( 'ckbox' )!,\n\t\t\t\tbuttonViewCreator: () => this._createImageToolbarButton(),\n\t\t\t\tformViewCreator: () => this._createImageDropdownButton(),\n\t\t\t\tmenuBarButtonViewCreator: isOnly => this._createImageMenuBarButton( isOnly ? 'insertOnly' : 'insertNested' )\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Creates the base for various kinds of the button component provided by this feature.\n\t */\n\tprivate _createButton<T extends typeof ButtonView | typeof MenuBarMenuListItemButtonView>( ButtonClass: T ): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst view = new ButtonClass( locale ) as InstanceType<T>;\n\t\tconst command = editor.commands.get( 'ckbox' )!;\n\n\t\tview.bind( 'isOn', 'isEnabled' ).to( command, 'value', 'isEnabled' );\n\n\t\tview.on( 'execute', () => {\n\t\t\teditor.execute( 'ckbox' );\n\t\t} );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Creates a simple toolbar button for files management, with an icon and a tooltip.\n\t */\n\tprivate _createFileToolbarButton(): ButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst button = this._createButton( ButtonView );\n\n\t\tbutton.icon = 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\t// Use t() stored in a variable with a different name to reuse existing translations from another package.\n\t\tconst translateVariableKey = this.editor.locale.t;\n\t\tconst t = this.editor.locale.t;\n\t\tconst button = this._createButton( MenuBarMenuListItemButtonView );\n\n\t\tbutton.icon = icons.imageAssetManager;\n\t\tbutton.withText = true;\n\n\t\tswitch ( type ) {\n\t\t\tcase 'insertOnly':\n\t\t\t\tbutton.label = translateVariableKey( 'Image' );\n\t\t\t\tbreak;\n\t\t\tcase 'insertNested':\n\t\t\t\tbutton.label = t( 'With file manager' );\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn button;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-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 override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ 'CloudServices' ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst hasConfiguration = !!editor.config.get( 'ckbox' );\n\t\tconst isLibraryLoaded = !!window.CKBox;\n\n\t\t// Proceed with plugin initialization only when the integrator intentionally wants to use it, i.e. when the `config.ckbox` exists or\n\t\t// the CKBox JavaScript library is loaded.\n\t\tif ( !hasConfiguration && !isLibraryLoaded ) {\n\t\t\treturn;\n\t\t}\n\n\t\teditor.config.define( 'ckbox', {\n\t\t\tserviceOrigin: 'https://api.ckbox.io',\n\t\t\tdefaultUploadCategories: null,\n\t\t\tignoreDataId: false,\n\t\t\tlanguage: editor.locale.uiLanguage,\n\t\t\ttheme: DEFAULT_CKBOX_THEME_NAME,\n\t\t\ttokenUrl: editor.config.get( 'cloudServices.tokenUrl' )\n\t\t} );\n\n\t\tconst cloudServices: CloudServices = editor.plugins.get( 'CloudServices' );\n\t\tconst cloudServicesTokenUrl = editor.config.get( 'cloudServices.tokenUrl' );\n\t\tconst ckboxTokenUrl = editor.config.get( 'ckbox.tokenUrl' );\n\n\t\tif ( !ckboxTokenUrl ) {\n\t\t\t/**\n\t\t\t * The {@link module:ckbox/ckboxconfig~CKBoxConfig#tokenUrl `config.ckbox.tokenUrl`} or the\n\t\t\t * {@link module:cloud-services/cloudservicesconfig~CloudServicesConfig#tokenUrl `config.cloudServices.tokenUrl`}\n\t\t\t * configuration is required for the CKBox plugin.\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * ClassicEditor.create( document.createElement( 'div' ), {\n\t\t\t * \tckbox: {\n\t\t\t * \t\ttokenUrl: \"YOUR_TOKEN_URL\"\n\t\t\t * \t\t// ...\n\t\t\t * \t}\n\t\t\t * \t// ...\n\t\t\t * } );\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @error ckbox-plugin-missing-token-url\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'ckbox-plugin-missing-token-url', this );\n\t\t}\n\n\t\tif ( ckboxTokenUrl == cloudServicesTokenUrl ) {\n\t\t\tthis._token = Promise.resolve( cloudServices.token! );\n\t\t} else {\n\t\t\tthis._token = cloudServices.registerTokenUrl( ckboxTokenUrl );\n\t\t}\n\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 static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic async afterInit(): Promise<void> {\n\t\tconst editor = this.editor;\n\n\t\tconst hasConfiguration = !!editor.config.get( 'ckbox' );\n\t\tconst isLibraryLoaded = !!window.CKBox;\n\n\t\t// Editor supports only one upload adapter. Register the CKBox upload adapter (and potentially overwrite other one) only when the\n\t\t// integrator intentionally wants to use the CKBox plugin, i.e. when the `config.ckbox` exists or the CKBox JavaScript library is\n\t\t// loaded.\n\t\tif ( !hasConfiguration && !isLibraryLoaded ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst fileRepository = editor.plugins.get( FileRepository );\n\t\tconst ckboxUtils = editor.plugins.get( CKBoxUtils );\n\n\t\tfileRepository.createUploadAdapter = loader => new Adapter( loader, editor, ckboxUtils );\n\n\t\tconst shouldInsertDataId = !editor.config.get( 'ckbox.ignoreDataId' );\n\t\tconst imageUploadEditing: ImageUploadEditing = editor.plugins.get( 'ImageUploadEditing' );\n\n\t\t// Mark uploaded assets with the `ckboxImageId` attribute. Its value represents an ID in CKBox.\n\t\tif ( shouldInsertDataId ) {\n\t\t\timageUploadEditing.on<ImageUploadCompleteEvent>( 'uploadComplete', ( evt, { imageElement, data } ) => {\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\twriter.setAttribute( 'ckboxImageId', data.ckboxImageId, imageElement );\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Upload adapter for CKBox.\n */\nclass Adapter implements UploadAdapter {\n\t/**\n\t * FileLoader instance to use during the upload.\n\t */\n\tpublic loader: FileLoader;\n\n\t/**\n\t * CKEditor Cloud Services access token.\n\t */\n\tpublic token: Promise<InitializedToken>;\n\n\t/**\n\t * The editor instance.\n\t */\n\tpublic editor: Editor;\n\n\t/**\n\t * The abort controller for aborting asynchronous processes.\n\t */\n\tpublic controller: AbortController;\n\n\t/**\n\t * The base URL where all requests should be sent.\n\t */\n\tpublic serviceOrigin: string;\n\n\t/**\n\t * The reference to CKBoxUtils plugin.\n\t */\n\tpublic ckboxUtils: CKBoxUtils;\n\n\t/**\n\t * Creates a new adapter instance.\n\t */\n\tconstructor( loader: FileLoader, editor: Editor, ckboxUtils: CKBoxUtils ) {\n\t\tthis.loader = loader;\n\t\tthis.token = ckboxUtils.getToken();\n\t\tthis.ckboxUtils = ckboxUtils;\n\t\tthis.editor = editor;\n\t\tthis.controller = new AbortController();\n\n\t\tthis.serviceOrigin = editor.config.get( 'ckbox.serviceOrigin' )!;\n\t}\n\n\t/**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */\n\tpublic async upload(): Promise<UploadResponse> {\n\t\tconst ckboxUtils = this.ckboxUtils;\n\n\t\tconst t = this.editor.t;\n\t\tconst file = ( await this.loader.file )!;\n\t\tconst category = await ckboxUtils.getCategoryIdForFile( file, { signal: this.controller.signal } );\n\n\t\tconst uploadUrl = new URL( 'assets', this.serviceOrigin );\n\t\tconst formData = new FormData();\n\n\t\tuploadUrl.searchParams.set( 'workspaceId', await ckboxUtils.getWorkspaceId() );\n\n\t\tformData.append( 'categoryId', category );\n\t\tformData.append( 'file', file );\n\n\t\tconst requestConfig = {\n\t\t\tmethod: 'POST',\n\t\t\turl: uploadUrl,\n\t\t\tdata: formData,\n\t\t\tonUploadProgress: ( evt: ProgressEvent ) => {\n\t\t\t\t/* istanbul ignore else -- @preserve */\n\t\t\t\tif ( evt.lengthComputable ) {\n\t\t\t\t\tthis.loader.uploadTotal = evt.total;\n\t\t\t\t\tthis.loader.uploaded = evt.loaded;\n\t\t\t\t}\n\t\t\t},\n\t\t\tsignal: this.controller.signal,\n\t\t\tauthorization: ( await this.token ).value\n\t\t} as const;\n\n\t\treturn sendHttpRequest( requestConfig )\n\t\t\t.then( async data => {\n\t\t\t\tconst imageUrls = getImageUrls( data.imageUrls );\n\n\t\t\t\treturn {\n\t\t\t\t\tckboxImageId: data.id,\n\t\t\t\t\tdefault: imageUrls.imageFallbackUrl,\n\t\t\t\t\tsources: imageUrls.imageSources\n\t\t\t\t};\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\tconst genericError = t( 'Cannot upload file:' ) + ` ${ file.name }.`;\n\n\t\t\t\treturn Promise.reject( genericError );\n\t\t\t} );\n\t}\n\n\t/**\n\t * Aborts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#abort\n\t */\n\tpublic abort(): void {\n\t\tthis.controller.abort();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-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 override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ 'LinkEditing', 'PictureEditing', CKBoxUploadAdapter, CKBoxUtils ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\tif ( !this._shouldBeInitialised() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._checkImagePlugins();\n\n\t\t// Registering the `ckbox` command makes sense only if the CKBox library is loaded, as the `ckbox` command opens the CKBox dialog.\n\t\tif ( isLibraryLoaded() ) {\n\t\t\teditor.commands.add( 'ckbox', new CKBoxCommand( editor ) );\n\t\t}\n\n\t\t// Promise is not handled intentionally. Errors should be displayed in console if there are so.\n\t\tisUploadPermissionGranted( editor ).then( isCreateAssetAllowed => {\n\t\t\tif ( !isCreateAssetAllowed ) {\n\t\t\t\tthis._blockImageCommands();\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\n\t\tif ( !this._shouldBeInitialised() ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Extending the schema, registering converters and applying fixers only make sense if the configuration option to assign\n\t\t// the assets ID with the model elements is enabled.\n\t\tif ( !editor.config.get( 'ckbox.ignoreDataId' ) ) {\n\t\t\tthis._initSchema();\n\t\t\tthis._initConversion();\n\t\t\tthis._initFixers();\n\t\t}\n\t}\n\n\t/**\n\t * Returns true only when the integrator intentionally wants to use the plugin, i.e. when the `config.ckbox` exists or\n\t * the CKBox JavaScript library is loaded.\n\t */\n\tprivate _shouldBeInitialised(): boolean {\n\t\tconst editor = this.editor;\n\t\tconst hasConfiguration = !!editor.config.get( 'ckbox' );\n\n\t\treturn hasConfiguration || isLibraryLoaded();\n\t}\n\n\t/**\n\t * Blocks `uploadImage` and `ckboxImageEdit` commands.\n\t */\n\tprivate _blockImageCommands(): void {\n\t\tconst editor = this.editor;\n\t\tconst uploadImageCommand = editor.commands.get( 'uploadImage' );\n\t\tconst imageEditingCommand = editor.commands.get( 'ckboxImageEdit' );\n\n\t\tif ( uploadImageCommand ) {\n\t\t\tuploadImageCommand.isAccessAllowed = false;\n\t\t\tuploadImageCommand.forceDisabled( COMMAND_FORCE_DISABLE_ID );\n\t\t}\n\n\t\tif ( imageEditingCommand ) {\n\t\t\timageEditingCommand.forceDisabled( COMMAND_FORCE_DISABLE_ID );\n\t\t}\n\t}\n\n\t/**\n\t * Checks if at least one image plugin is loaded.\n\t */\n\tprivate _checkImagePlugins() {\n\t\tconst editor = this.editor;\n\n\t\tif ( !editor.plugins.has( 'ImageBlockEditing' ) && !editor.plugins.has( 'ImageInlineEditing' ) ) {\n\t\t\t/**\n\t\t\t * The CKBox feature requires one of the following plugins to be loaded to work correctly:\n\t\t\t *\n\t\t\t * * {@link module:image/imageblock~ImageBlock},\n\t\t\t * * {@link module:image/imageinline~ImageInline},\n\t\t\t * * {@link module:image/image~Image} (loads both `ImageBlock` and `ImageInline`)\n\t\t\t *\n\t\t\t * Please make sure your editor configuration is correct.\n\t\t\t *\n\t\t\t * @error ckbox-plugin-image-feature-missing\n\t\t\t * @param {module:core/editor/editor~Editor} editor\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 override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ CKBoxEditing, CKBoxUI ] as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-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 override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ CKBoxEditing, CKBoxUtils, PendingActions, Notification, 'ImageUtils', 'ImageEditing' ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst { editor } = this;\n\n\t\teditor.commands.add( 'ckboxImageEdit', new CKBoxImageEditCommand( editor ) );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-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 static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( 'ckboxImageEdit', locale => {\n\t\t\tconst command = editor.commands.get( 'ckboxImageEdit' )!;\n\t\t\tconst uploadImageCommand = editor.commands.get( 'uploadImage' )!;\n\t\t\tconst view = new ButtonView( locale );\n\t\t\tconst t = locale.t;\n\n\t\t\tview.set( {\n\t\t\t\ticon: 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 override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ CKBoxImageEditEditing, CKBoxImageEditUI ] as const;\n\t}\n}\n"]}
1
+ {"version":3,"sources":["index.js","../src/ckboxui.ts","../src/utils.ts","../src/ckboxcommand.ts","../src/ckboxutils.ts","../src/ckboxuploadadapter.ts","../src/ckboxediting.ts","../src/ckbox.ts","../src/ckboximageedit/utils.ts","../src/ckboximageedit/ckboximageeditcommand.ts","../src/ckboximageedit/ckboximageeditediting.ts","../src/ckboximageedit/ckboximageeditui.ts","../src/ckboximageedit.ts"],"names":["CKBoxUI","Plugin","pluginName","isOfficialPlugin","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","translateVariableKey","getImageUrls","imageUrls","responsiveUrls","maxWidth","key","width","parseInt","isNaN","push","imageSources","srcset","join","sizes","imageFallbackUrl","default","getWorkspaceId","token","defaultWorkspaceId","binaryTokenPayload","value","split","payload","JSON","parse","atob","workspaces","auth","ckbox","aud","role","includes","BLUR_RESOLUTION","blurHashToDataUrl","hash","resolutionInPx","canvas","document","createElement","setAttribute","ctx","getContext","imageData","createImageData","decoded","decode","data","set","putImageData","toDataURL","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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,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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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 */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ afterInit() {\n const editor = this.editor;\n // Do not register the `ckbox` button if the command does not exist.\n // This might happen when CKBox library is not loaded on the page.\n if (!editor.commands.get('ckbox')) {\n return;\n }\n editor.ui.componentFactory.add('ckbox', ()=>this._createFileToolbarButton());\n editor.ui.componentFactory.add('menuBar:ckbox', ()=>this._createFileMenuBarButton());\n if (editor.plugins.has('ImageInsertUI')) {\n editor.plugins.get('ImageInsertUI').registerIntegration({\n name: 'assetManager',\n observable: ()=>editor.commands.get('ckbox'),\n buttonViewCreator: ()=>this._createImageToolbarButton(),\n formViewCreator: ()=>this._createImageDropdownButton(),\n menuBarButtonViewCreator: (isOnly)=>this._createImageMenuBarButton(isOnly ? 'insertOnly' : 'insertNested')\n });\n }\n }\n /**\n\t * Creates the base for various kinds of the button component provided by this feature.\n\t */ _createButton(ButtonClass) {\n const editor = this.editor;\n const locale = editor.locale;\n const view = new ButtonClass(locale);\n const command = editor.commands.get('ckbox');\n view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n view.on('execute', ()=>{\n editor.execute('ckbox');\n });\n return view;\n }\n /**\n\t * Creates a simple toolbar button for files management, with an icon and a tooltip.\n\t */ _createFileToolbarButton() {\n const t = this.editor.locale.t;\n const button = this._createButton(ButtonView);\n button.icon = 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 // Use t() stored in a variable with a different name to reuse existing translations from another package.\n const translateVariableKey = this.editor.locale.t;\n const t = this.editor.locale.t;\n const button = this._createButton(MenuBarMenuListItemButtonView);\n button.icon = icons.imageAssetManager;\n button.withText = true;\n switch(type){\n case 'insertOnly':\n button.label = translateVariableKey('Image');\n break;\n case 'insertNested':\n button.label = t('With file manager');\n break;\n }\n return button;\n }\n}\n\n/**\n * Converts image source set provided by the CKBox into an object containing:\n * - responsive URLs for the \"webp\" image format,\n * - one fallback URL for browsers that do not support the \"webp\" format.\n */ 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 isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n 'CloudServices'\n ];\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n const hasConfiguration = !!editor.config.get('ckbox');\n const isLibraryLoaded = !!window.CKBox;\n // Proceed with plugin initialization only when the integrator intentionally wants to use it, i.e. when the `config.ckbox` exists or\n // the CKBox JavaScript library is loaded.\n if (!hasConfiguration && !isLibraryLoaded) {\n return;\n }\n editor.config.define('ckbox', {\n serviceOrigin: 'https://api.ckbox.io',\n defaultUploadCategories: null,\n ignoreDataId: false,\n language: editor.locale.uiLanguage,\n theme: DEFAULT_CKBOX_THEME_NAME,\n tokenUrl: editor.config.get('cloudServices.tokenUrl')\n });\n const cloudServices = editor.plugins.get('CloudServices');\n const cloudServicesTokenUrl = editor.config.get('cloudServices.tokenUrl');\n const ckboxTokenUrl = editor.config.get('ckbox.tokenUrl');\n if (!ckboxTokenUrl) {\n /**\n\t\t\t * The {@link module:ckbox/ckboxconfig~CKBoxConfig#tokenUrl `config.ckbox.tokenUrl`} or the\n\t\t\t * {@link module:cloud-services/cloudservicesconfig~CloudServicesConfig#tokenUrl `config.cloudServices.tokenUrl`}\n\t\t\t * configuration is required for the CKBox plugin.\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * ClassicEditor.create( document.createElement( 'div' ), {\n\t\t\t * \tckbox: {\n\t\t\t * \t\ttokenUrl: \"YOUR_TOKEN_URL\"\n\t\t\t * \t\t// ...\n\t\t\t * \t}\n\t\t\t * \t// ...\n\t\t\t * } );\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @error ckbox-plugin-missing-token-url\n\t\t\t */ throw new CKEditorError('ckbox-plugin-missing-token-url', this);\n }\n if (ckboxTokenUrl == cloudServicesTokenUrl) {\n this._token = Promise.resolve(cloudServices.token);\n } else {\n this._token = cloudServices.registerTokenUrl(ckboxTokenUrl);\n }\n }\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 */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ async afterInit() {\n const editor = this.editor;\n const hasConfiguration = !!editor.config.get('ckbox');\n const isLibraryLoaded = !!window.CKBox;\n // Editor supports only one upload adapter. Register the CKBox upload adapter (and potentially overwrite other one) only when the\n // integrator intentionally wants to use the CKBox plugin, i.e. when the `config.ckbox` exists or the CKBox JavaScript library is\n // loaded.\n if (!hasConfiguration && !isLibraryLoaded) {\n return;\n }\n const fileRepository = editor.plugins.get(FileRepository);\n const ckboxUtils = editor.plugins.get(CKBoxUtils);\n fileRepository.createUploadAdapter = (loader)=>new Adapter(loader, editor, ckboxUtils);\n const shouldInsertDataId = !editor.config.get('ckbox.ignoreDataId');\n const imageUploadEditing = editor.plugins.get('ImageUploadEditing');\n // Mark uploaded assets with the `ckboxImageId` attribute. Its value represents an ID in CKBox.\n if (shouldInsertDataId) {\n imageUploadEditing.on('uploadComplete', (evt, { imageElement, data })=>{\n editor.model.change((writer)=>{\n writer.setAttribute('ckboxImageId', data.ckboxImageId, imageElement);\n });\n });\n }\n }\n}\n/**\n * Upload adapter for CKBox.\n */ class Adapter {\n /**\n\t * FileLoader instance to use during the upload.\n\t */ loader;\n /**\n\t * CKEditor Cloud Services access token.\n\t */ token;\n /**\n\t * The editor instance.\n\t */ editor;\n /**\n\t * The abort controller for aborting asynchronous processes.\n\t */ controller;\n /**\n\t * The base URL where all requests should be sent.\n\t */ serviceOrigin;\n /**\n\t * The reference to CKBoxUtils plugin.\n\t */ ckboxUtils;\n /**\n\t * Creates a new adapter instance.\n\t */ constructor(loader, editor, ckboxUtils){\n this.loader = loader;\n this.token = ckboxUtils.getToken();\n this.ckboxUtils = ckboxUtils;\n this.editor = editor;\n this.controller = new AbortController();\n this.serviceOrigin = editor.config.get('ckbox.serviceOrigin');\n }\n /**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */ async upload() {\n const ckboxUtils = this.ckboxUtils;\n const t = this.editor.t;\n const file = await this.loader.file;\n const category = await ckboxUtils.getCategoryIdForFile(file, {\n signal: this.controller.signal\n });\n const uploadUrl = new URL('assets', this.serviceOrigin);\n const formData = new FormData();\n uploadUrl.searchParams.set('workspaceId', await ckboxUtils.getWorkspaceId());\n formData.append('categoryId', category);\n formData.append('file', file);\n const requestConfig = {\n method: 'POST',\n url: uploadUrl,\n data: formData,\n onUploadProgress: (evt)=>{\n /* istanbul ignore else -- @preserve */ if (evt.lengthComputable) {\n this.loader.uploadTotal = evt.total;\n this.loader.uploaded = evt.loaded;\n }\n },\n signal: this.controller.signal,\n authorization: (await this.token).value\n };\n return sendHttpRequest(requestConfig).then(async (data)=>{\n const imageUrls = getImageUrls(data.imageUrls);\n return {\n ckboxImageId: data.id,\n default: imageUrls.imageFallbackUrl,\n sources: imageUrls.imageSources\n };\n }).catch(()=>{\n const genericError = t('Cannot upload file:') + ` ${file.name}.`;\n return Promise.reject(genericError);\n });\n }\n /**\n\t * Aborts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#abort\n\t */ abort() {\n this.controller.abort();\n }\n}\n\nconst COMMAND_FORCE_DISABLE_ID = 'NoPermission';\n/**\n * The CKBox editing feature. It introduces the {@link module:ckbox/ckboxcommand~CKBoxCommand CKBox command} and\n * {@link module:ckbox/ckboxuploadadapter~CKBoxUploadAdapter CKBox upload adapter}.\n */ class CKBoxEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n 'LinkEditing',\n 'PictureEditing',\n CKBoxUploadAdapter,\n CKBoxUtils\n ];\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n if (!this._shouldBeInitialised()) {\n return;\n }\n this._checkImagePlugins();\n // Registering the `ckbox` command makes sense only if the CKBox library is loaded, as the `ckbox` command opens the CKBox dialog.\n if (isLibraryLoaded()) {\n editor.commands.add('ckbox', new CKBoxCommand(editor));\n }\n // Promise is not handled intentionally. Errors should be displayed in console if there are so.\n isUploadPermissionGranted(editor).then((isCreateAssetAllowed)=>{\n if (!isCreateAssetAllowed) {\n this._blockImageCommands();\n }\n });\n }\n /**\n\t * @inheritDoc\n\t */ afterInit() {\n const editor = this.editor;\n if (!this._shouldBeInitialised()) {\n return;\n }\n // Extending the schema, registering converters and applying fixers only make sense if the configuration option to assign\n // the assets ID with the model elements is enabled.\n if (!editor.config.get('ckbox.ignoreDataId')) {\n this._initSchema();\n this._initConversion();\n this._initFixers();\n }\n }\n /**\n\t * Returns true only when the integrator intentionally wants to use the plugin, i.e. when the `config.ckbox` exists or\n\t * the CKBox JavaScript library is loaded.\n\t */ _shouldBeInitialised() {\n const editor = this.editor;\n const hasConfiguration = !!editor.config.get('ckbox');\n return hasConfiguration || isLibraryLoaded();\n }\n /**\n\t * Blocks `uploadImage` and `ckboxImageEdit` commands.\n\t */ _blockImageCommands() {\n const editor = this.editor;\n const uploadImageCommand = editor.commands.get('uploadImage');\n const imageEditingCommand = editor.commands.get('ckboxImageEdit');\n if (uploadImageCommand) {\n uploadImageCommand.isAccessAllowed = false;\n uploadImageCommand.forceDisabled(COMMAND_FORCE_DISABLE_ID);\n }\n if (imageEditingCommand) {\n imageEditingCommand.forceDisabled(COMMAND_FORCE_DISABLE_ID);\n }\n }\n /**\n\t * Checks if at least one image plugin is loaded.\n\t */ _checkImagePlugins() {\n const editor = this.editor;\n if (!editor.plugins.has('ImageBlockEditing') && !editor.plugins.has('ImageInlineEditing')) {\n /**\n\t\t\t * The CKBox feature requires one of the following plugins to be loaded to work correctly:\n\t\t\t *\n\t\t\t * * {@link module:image/imageblock~ImageBlock},\n\t\t\t * * {@link module:image/imageinline~ImageInline},\n\t\t\t * * {@link module:image/image~Image} (loads both `ImageBlock` and `ImageInline`)\n\t\t\t *\n\t\t\t * Please make sure your editor configuration is correct.\n\t\t\t *\n\t\t\t * @error ckbox-plugin-image-feature-missing\n\t\t\t * @param {module:core/editor/editor~Editor} editor\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 isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n CKBoxEditing,\n CKBoxUI\n ];\n }\n}\n\n/**\n * @internal\n */ function createEditabilityChecker(allowExternalImagesEditing) {\n const checkUrl = createUrlChecker(allowExternalImagesEditing);\n return (element)=>{\n const isImageElement = element.is('element', 'imageInline') || element.is('element', 'imageBlock');\n if (!isImageElement) {\n return false;\n }\n if (element.hasAttribute('ckboxImageId')) {\n return true;\n }\n if (element.hasAttribute('src')) {\n return checkUrl(element.getAttribute('src'));\n }\n return false;\n };\n}\nfunction createUrlChecker(allowExternalImagesEditing) {\n if (Array.isArray(allowExternalImagesEditing)) {\n const urlMatchers = allowExternalImagesEditing.map(createUrlChecker);\n return (src)=>urlMatchers.some((matcher)=>matcher(src));\n }\n if (allowExternalImagesEditing == 'origin') {\n const origin = global.window.location.origin;\n return (src)=>new URL(src, global.document.baseURI).origin == origin;\n }\n if (typeof allowExternalImagesEditing == 'function') {\n return allowExternalImagesEditing;\n }\n if (allowExternalImagesEditing instanceof RegExp) {\n return (src)=>!!(src.match(allowExternalImagesEditing) || src.replace(/^https?:\\/\\//, '').match(allowExternalImagesEditing));\n }\n return ()=>false;\n}\n\n/**\n * The CKBox edit image command.\n *\n * Opens the CKBox dialog for editing the image.\n */ class CKBoxImageEditCommand extends Command {\n /**\n\t * The DOM element that acts as a mounting point for the CKBox Edit Image dialog.\n\t */ _wrapper = null;\n /**\n\t * The states of image processing in progress.\n\t */ _processInProgress = new Set();\n /**\n\t * Determines if the element can be edited.\n\t */ _canEdit;\n /**\n\t * A wrapper function to prepare mount options. Ensures that at most one preparation is in-flight.\n\t */ _prepareOptions;\n /**\n\t* CKBox's onClose function runs before the final cleanup, potentially causing\n\t* page layout changes after it finishes. To address this, we use a setTimeout hack\n\t* to ensure that floating elements on the page maintain their correct position.\n\t*\n\t* See: https://github.com/ckeditor/ckeditor5/issues/16153.\n\t*/ _updateUiDelayed = delay(()=>this.editor.ui.update(), 0);\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this.value = false;\n this._canEdit = createEditabilityChecker(editor.config.get('ckbox.allowExternalImagesEditing'));\n this._prepareOptions = abortableDebounce((signal, state)=>this._prepareOptionsAbortable(signal, state));\n this._prepareListeners();\n }\n /**\n\t * @inheritDoc\n\t */ refresh() {\n const editor = this.editor;\n this.value = this._getValue();\n const selectedElement = editor.model.document.selection.getSelectedElement();\n this.isEnabled = !!selectedElement && this._canEdit(selectedElement) && !this._checkIfElementIsBeingProcessed(selectedElement);\n }\n /**\n\t * Opens the CKBox Image Editor dialog for editing the image.\n\t */ execute() {\n if (this._getValue()) {\n return;\n }\n const wrapper = createElement(document, 'div', {\n class: 'ck ckbox-wrapper'\n });\n this._wrapper = wrapper;\n this.value = true;\n document.body.appendChild(this._wrapper);\n const imageElement = this.editor.model.document.selection.getSelectedElement();\n const processingState = {\n element: imageElement,\n controller: new AbortController()\n };\n this._prepareOptions(processingState).then((options)=>window.CKBox.mountImageEditor(wrapper, options), (error)=>{\n const editor = this.editor;\n const t = editor.t;\n const notification = editor.plugins.get(Notification);\n notification.showWarning(t('Failed to determine category of edited image.'), {\n namespace: 'ckbox'\n });\n console.error(error);\n this._handleImageEditorClose();\n });\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n this._handleImageEditorClose();\n this._prepareOptions.abort();\n this._updateUiDelayed.cancel();\n for (const state of this._processInProgress.values()){\n state.controller.abort();\n }\n super.destroy();\n }\n /**\n\t * Indicates if the CKBox Image Editor dialog is already opened.\n\t */ _getValue() {\n return this._wrapper !== null;\n }\n /**\n\t * Creates the options object for the CKBox Image Editor dialog.\n\t */ async _prepareOptionsAbortable(signal, state) {\n const editor = this.editor;\n const ckboxConfig = editor.config.get('ckbox');\n const ckboxUtils = editor.plugins.get(CKBoxUtils);\n const { element } = state;\n let imageMountOptions;\n const ckboxImageId = element.getAttribute('ckboxImageId');\n if (ckboxImageId) {\n imageMountOptions = {\n assetId: ckboxImageId\n };\n } else {\n const imageUrl = new URL(element.getAttribute('src'), document.baseURI).href;\n const uploadCategoryId = await ckboxUtils.getCategoryIdForFile(imageUrl, {\n signal\n });\n imageMountOptions = {\n imageUrl,\n uploadCategoryId\n };\n }\n return {\n ...imageMountOptions,\n imageEditing: {\n allowOverwrite: false\n },\n tokenUrl: ckboxConfig.tokenUrl,\n ...ckboxConfig.serviceOrigin && {\n serviceOrigin: ckboxConfig.serviceOrigin\n },\n onClose: ()=>this._handleImageEditorClose(),\n onSave: (asset)=>this._handleImageEditorSave(state, asset)\n };\n }\n /**\n\t * Initializes event lister for an event of removing an image.\n\t */ _prepareListeners() {\n // Abort editing processing when the image has been removed.\n this.listenTo(this.editor.model.document, 'change:data', ()=>{\n const processingStates = this._getProcessingStatesOfDeletedImages();\n processingStates.forEach((processingState)=>{\n processingState.controller.abort();\n });\n });\n }\n /**\n\t * Gets processing states of images that have been deleted in the mean time.\n\t */ _getProcessingStatesOfDeletedImages() {\n const states = [];\n for (const state of this._processInProgress.values()){\n if (state.element.root.rootName == '$graveyard') {\n states.push(state);\n }\n }\n return states;\n }\n _checkIfElementIsBeingProcessed(selectedElement) {\n for (const { element } of this._processInProgress){\n if (isEqual(element, selectedElement)) {\n return true;\n }\n }\n return false;\n }\n /**\n\t * Closes the CKBox Image Editor dialog.\n\t */ _handleImageEditorClose() {\n if (!this._wrapper) {\n return;\n }\n this._wrapper.remove();\n this._wrapper = null;\n this.editor.editing.view.focus();\n this._updateUiDelayed();\n this.refresh();\n }\n /**\n\t * Save edited image. In case server respond with \"success\" replace with edited image,\n\t * otherwise show notification error.\n\t */ _handleImageEditorSave(state, asset) {\n const t = this.editor.locale.t;\n const notification = this.editor.plugins.get(Notification);\n const pendingActions = this.editor.plugins.get(PendingActions);\n const action = pendingActions.add(t('Processing the edited image.'));\n this._processInProgress.add(state);\n this._showImageProcessingIndicator(state.element, asset);\n this.refresh();\n this._waitForAssetProcessed(asset.data.id, state.controller.signal).then((asset)=>{\n this._replaceImage(state.element, asset);\n }, (error)=>{\n // Remove processing indicator. It was added only to ViewElement.\n this.editor.editing.reconvertItem(state.element);\n if (state.controller.signal.aborted) {\n return;\n }\n if (!error || error instanceof CKEditorError) {\n notification.showWarning(t('Server failed to process the image.'), {\n namespace: 'ckbox'\n });\n } else {\n console.error(error);\n }\n }).finally(()=>{\n this._processInProgress.delete(state);\n pendingActions.remove(action);\n this.refresh();\n });\n }\n /**\n\t * Get asset's status on server. If server responds with \"success\" status then\n\t * image is already proceeded and ready for saving.\n\t */ async _getAssetStatusFromServer(id, signal) {\n const ckboxUtils = this.editor.plugins.get(CKBoxUtils);\n const url = new URL('assets/' + id, this.editor.config.get('ckbox.serviceOrigin'));\n const response = await sendHttpRequest({\n url,\n signal,\n authorization: (await ckboxUtils.getToken()).value\n });\n const status = response.metadata.metadataProcessingStatus;\n if (!status || status == 'queued') {\n /**\n\t\t\t * Image has not been processed yet.\n\t\t\t *\n\t\t\t * @error ckbox-image-not-processed\n\t\t\t */ throw new CKEditorError('ckbox-image-not-processed');\n }\n return {\n data: {\n ...response\n }\n };\n }\n /**\n\t * Waits for an asset to be processed.\n\t * It retries retrieving asset status from the server in case of failure.\n\t */ async _waitForAssetProcessed(id, signal) {\n const result = await retry(()=>this._getAssetStatusFromServer(id, signal), {\n signal,\n maxAttempts: 5\n });\n if (result.data.metadata.metadataProcessingStatus != 'success') {\n /**\n\t\t\t * The image processing failed.\n\t\t\t *\n\t\t\t * @error ckbox-image-processing-failed\n\t\t\t */ throw new CKEditorError('ckbox-image-processing-failed');\n }\n return result;\n }\n /**\n\t * Shows processing indicator while image is processing.\n\t *\n\t * @param asset Data about certain asset.\n\t */ _showImageProcessingIndicator(element, asset) {\n const editor = this.editor;\n editor.editing.view.change((writer)=>{\n const imageElementView = editor.editing.mapper.toViewElement(element);\n const imageUtils = this.editor.plugins.get('ImageUtils');\n const img = imageUtils.findViewImgElement(imageElementView);\n writer.removeStyle('aspect-ratio', img);\n writer.setAttribute('width', asset.data.metadata.width, img);\n writer.setAttribute('height', asset.data.metadata.height, img);\n writer.setStyle('width', `${asset.data.metadata.width}px`, img);\n writer.setStyle('height', `${asset.data.metadata.height}px`, img);\n writer.addClass('image-processing', imageElementView);\n });\n }\n /**\n\t * Replace the edited image with the new one.\n\t */ _replaceImage(element, asset) {\n const editor = this.editor;\n const { imageFallbackUrl, imageSources, imageWidth, imageHeight, imagePlaceholder } = prepareImageAssetAttributes(asset);\n const previousSelectionRanges = Array.from(editor.model.document.selection.getRanges());\n editor.model.change((writer)=>{\n writer.setSelection(element, 'on');\n editor.execute('insertImage', {\n imageType: element.is('element', 'imageInline') ? 'imageInline' : null,\n source: {\n src: imageFallbackUrl,\n sources: imageSources,\n width: imageWidth,\n height: imageHeight,\n ...imagePlaceholder ? {\n placeholder: imagePlaceholder\n } : null,\n ...element.hasAttribute('alt') ? {\n alt: element.getAttribute('alt')\n } : null\n }\n });\n const previousChildren = element.getChildren();\n element = editor.model.document.selection.getSelectedElement();\n for (const child of previousChildren){\n writer.append(writer.cloneElement(child), element);\n }\n writer.setAttribute('ckboxImageId', asset.data.id, element);\n writer.setSelection(previousSelectionRanges);\n });\n }\n}\n\n/**\n * The CKBox image edit editing plugin.\n */ class CKBoxImageEditEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'CKBoxImageEditEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n CKBoxEditing,\n CKBoxUtils,\n PendingActions,\n Notification,\n 'ImageUtils',\n 'ImageEditing'\n ];\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const { editor } = this;\n editor.commands.add('ckboxImageEdit', new CKBoxImageEditCommand(editor));\n }\n}\n\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 */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.ui.componentFactory.add('ckboxImageEdit', (locale)=>{\n const command = editor.commands.get('ckboxImageEdit');\n const uploadImageCommand = editor.commands.get('uploadImage');\n const view = new ButtonView(locale);\n const t = locale.t;\n view.set({\n icon: 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 isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n CKBoxImageEditEditing,\n CKBoxImageEditUI\n ];\n }\n}\n\nexport { CKBox, 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 static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\n\t\t// Do not register the `ckbox` button if the command does not exist.\n\t\t// This might happen when CKBox library is not loaded on the page.\n\t\tif ( !editor.commands.get( 'ckbox' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\teditor.ui.componentFactory.add( 'ckbox', () => this._createFileToolbarButton() );\n\t\teditor.ui.componentFactory.add( 'menuBar:ckbox', () => this._createFileMenuBarButton() );\n\n\t\tif ( editor.plugins.has( 'ImageInsertUI' ) ) {\n\t\t\teditor.plugins.get( 'ImageInsertUI' ).registerIntegration( {\n\t\t\t\tname: 'assetManager',\n\t\t\t\tobservable: () => editor.commands.get( 'ckbox' )!,\n\t\t\t\tbuttonViewCreator: () => this._createImageToolbarButton(),\n\t\t\t\tformViewCreator: () => this._createImageDropdownButton(),\n\t\t\t\tmenuBarButtonViewCreator: isOnly => this._createImageMenuBarButton( isOnly ? 'insertOnly' : 'insertNested' )\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Creates the base for various kinds of the button component provided by this feature.\n\t */\n\tprivate _createButton<T extends typeof ButtonView | typeof MenuBarMenuListItemButtonView>( ButtonClass: T ): InstanceType<T> {\n\t\tconst editor = this.editor;\n\t\tconst locale = editor.locale;\n\t\tconst view = new ButtonClass( locale ) as InstanceType<T>;\n\t\tconst command = editor.commands.get( 'ckbox' )!;\n\n\t\tview.bind( 'isOn', 'isEnabled' ).to( command, 'value', 'isEnabled' );\n\n\t\tview.on( 'execute', () => {\n\t\t\teditor.execute( 'ckbox' );\n\t\t} );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Creates a simple toolbar button for files management, with an icon and a tooltip.\n\t */\n\tprivate _createFileToolbarButton(): ButtonView {\n\t\tconst t = this.editor.locale.t;\n\t\tconst button = this._createButton( ButtonView );\n\n\t\tbutton.icon = 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\t// Use t() stored in a variable with a different name to reuse existing translations from another package.\n\t\tconst translateVariableKey = this.editor.locale.t;\n\t\tconst t = this.editor.locale.t;\n\t\tconst button = this._createButton( MenuBarMenuListItemButtonView );\n\n\t\tbutton.icon = icons.imageAssetManager;\n\t\tbutton.withText = true;\n\n\t\tswitch ( type ) {\n\t\t\tcase 'insertOnly':\n\t\t\t\tbutton.label = translateVariableKey( 'Image' );\n\t\t\t\tbreak;\n\t\t\tcase 'insertNested':\n\t\t\t\tbutton.label = t( 'With file manager' );\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn button;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-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 override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ 'CloudServices' ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\t\tconst hasConfiguration = !!editor.config.get( 'ckbox' );\n\t\tconst isLibraryLoaded = !!window.CKBox;\n\n\t\t// Proceed with plugin initialization only when the integrator intentionally wants to use it, i.e. when the `config.ckbox` exists or\n\t\t// the CKBox JavaScript library is loaded.\n\t\tif ( !hasConfiguration && !isLibraryLoaded ) {\n\t\t\treturn;\n\t\t}\n\n\t\teditor.config.define( 'ckbox', {\n\t\t\tserviceOrigin: 'https://api.ckbox.io',\n\t\t\tdefaultUploadCategories: null,\n\t\t\tignoreDataId: false,\n\t\t\tlanguage: editor.locale.uiLanguage,\n\t\t\ttheme: DEFAULT_CKBOX_THEME_NAME,\n\t\t\ttokenUrl: editor.config.get( 'cloudServices.tokenUrl' )\n\t\t} );\n\n\t\tconst cloudServices: CloudServices = editor.plugins.get( 'CloudServices' );\n\t\tconst cloudServicesTokenUrl = editor.config.get( 'cloudServices.tokenUrl' );\n\t\tconst ckboxTokenUrl = editor.config.get( 'ckbox.tokenUrl' );\n\n\t\tif ( !ckboxTokenUrl ) {\n\t\t\t/**\n\t\t\t * The {@link module:ckbox/ckboxconfig~CKBoxConfig#tokenUrl `config.ckbox.tokenUrl`} or the\n\t\t\t * {@link module:cloud-services/cloudservicesconfig~CloudServicesConfig#tokenUrl `config.cloudServices.tokenUrl`}\n\t\t\t * configuration is required for the CKBox plugin.\n\t\t\t *\n\t\t\t * ```ts\n\t\t\t * ClassicEditor.create( document.createElement( 'div' ), {\n\t\t\t * \tckbox: {\n\t\t\t * \t\ttokenUrl: \"YOUR_TOKEN_URL\"\n\t\t\t * \t\t// ...\n\t\t\t * \t}\n\t\t\t * \t// ...\n\t\t\t * } );\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @error ckbox-plugin-missing-token-url\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'ckbox-plugin-missing-token-url', this );\n\t\t}\n\n\t\tif ( ckboxTokenUrl == cloudServicesTokenUrl ) {\n\t\t\tthis._token = Promise.resolve( cloudServices.token! );\n\t\t} else {\n\t\t\tthis._token = cloudServices.registerTokenUrl( ckboxTokenUrl );\n\t\t}\n\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 static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic async afterInit(): Promise<void> {\n\t\tconst editor = this.editor;\n\n\t\tconst hasConfiguration = !!editor.config.get( 'ckbox' );\n\t\tconst isLibraryLoaded = !!window.CKBox;\n\n\t\t// Editor supports only one upload adapter. Register the CKBox upload adapter (and potentially overwrite other one) only when the\n\t\t// integrator intentionally wants to use the CKBox plugin, i.e. when the `config.ckbox` exists or the CKBox JavaScript library is\n\t\t// loaded.\n\t\tif ( !hasConfiguration && !isLibraryLoaded ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst fileRepository = editor.plugins.get( FileRepository );\n\t\tconst ckboxUtils = editor.plugins.get( CKBoxUtils );\n\n\t\tfileRepository.createUploadAdapter = loader => new Adapter( loader, editor, ckboxUtils );\n\n\t\tconst shouldInsertDataId = !editor.config.get( 'ckbox.ignoreDataId' );\n\t\tconst imageUploadEditing: ImageUploadEditing = editor.plugins.get( 'ImageUploadEditing' );\n\n\t\t// Mark uploaded assets with the `ckboxImageId` attribute. Its value represents an ID in CKBox.\n\t\tif ( shouldInsertDataId ) {\n\t\t\timageUploadEditing.on<ImageUploadCompleteEvent>( 'uploadComplete', ( evt, { imageElement, data } ) => {\n\t\t\t\teditor.model.change( writer => {\n\t\t\t\t\twriter.setAttribute( 'ckboxImageId', data.ckboxImageId, imageElement );\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Upload adapter for CKBox.\n */\nclass Adapter implements UploadAdapter {\n\t/**\n\t * FileLoader instance to use during the upload.\n\t */\n\tpublic loader: FileLoader;\n\n\t/**\n\t * CKEditor Cloud Services access token.\n\t */\n\tpublic token: Promise<InitializedToken>;\n\n\t/**\n\t * The editor instance.\n\t */\n\tpublic editor: Editor;\n\n\t/**\n\t * The abort controller for aborting asynchronous processes.\n\t */\n\tpublic controller: AbortController;\n\n\t/**\n\t * The base URL where all requests should be sent.\n\t */\n\tpublic serviceOrigin: string;\n\n\t/**\n\t * The reference to CKBoxUtils plugin.\n\t */\n\tpublic ckboxUtils: CKBoxUtils;\n\n\t/**\n\t * Creates a new adapter instance.\n\t */\n\tconstructor( loader: FileLoader, editor: Editor, ckboxUtils: CKBoxUtils ) {\n\t\tthis.loader = loader;\n\t\tthis.token = ckboxUtils.getToken();\n\t\tthis.ckboxUtils = ckboxUtils;\n\t\tthis.editor = editor;\n\t\tthis.controller = new AbortController();\n\n\t\tthis.serviceOrigin = editor.config.get( 'ckbox.serviceOrigin' )!;\n\t}\n\n\t/**\n\t * Starts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#upload\n\t */\n\tpublic async upload(): Promise<UploadResponse> {\n\t\tconst ckboxUtils = this.ckboxUtils;\n\n\t\tconst t = this.editor.t;\n\t\tconst file = ( await this.loader.file )!;\n\t\tconst category = await ckboxUtils.getCategoryIdForFile( file, { signal: this.controller.signal } );\n\n\t\tconst uploadUrl = new URL( 'assets', this.serviceOrigin );\n\t\tconst formData = new FormData();\n\n\t\tuploadUrl.searchParams.set( 'workspaceId', await ckboxUtils.getWorkspaceId() );\n\n\t\tformData.append( 'categoryId', category );\n\t\tformData.append( 'file', file );\n\n\t\tconst requestConfig = {\n\t\t\tmethod: 'POST',\n\t\t\turl: uploadUrl,\n\t\t\tdata: formData,\n\t\t\tonUploadProgress: ( evt: ProgressEvent ) => {\n\t\t\t\t/* istanbul ignore else -- @preserve */\n\t\t\t\tif ( evt.lengthComputable ) {\n\t\t\t\t\tthis.loader.uploadTotal = evt.total;\n\t\t\t\t\tthis.loader.uploaded = evt.loaded;\n\t\t\t\t}\n\t\t\t},\n\t\t\tsignal: this.controller.signal,\n\t\t\tauthorization: ( await this.token ).value\n\t\t} as const;\n\n\t\treturn sendHttpRequest( requestConfig )\n\t\t\t.then( async data => {\n\t\t\t\tconst imageUrls = getImageUrls( data.imageUrls );\n\n\t\t\t\treturn {\n\t\t\t\t\tckboxImageId: data.id,\n\t\t\t\t\tdefault: imageUrls.imageFallbackUrl,\n\t\t\t\t\tsources: imageUrls.imageSources\n\t\t\t\t};\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\tconst genericError = t( 'Cannot upload file:' ) + ` ${ file.name }.`;\n\n\t\t\t\treturn Promise.reject( genericError );\n\t\t\t} );\n\t}\n\n\t/**\n\t * Aborts the upload process.\n\t *\n\t * @see module:upload/filerepository~UploadAdapter#abort\n\t */\n\tpublic abort(): void {\n\t\tthis.controller.abort();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-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 override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ 'LinkEditing', 'PictureEditing', CKBoxUploadAdapter, CKBoxUtils ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\tif ( !this._shouldBeInitialised() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._checkImagePlugins();\n\n\t\t// Registering the `ckbox` command makes sense only if the CKBox library is loaded, as the `ckbox` command opens the CKBox dialog.\n\t\tif ( isLibraryLoaded() ) {\n\t\t\teditor.commands.add( 'ckbox', new CKBoxCommand( editor ) );\n\t\t}\n\n\t\t// Promise is not handled intentionally. Errors should be displayed in console if there are so.\n\t\tisUploadPermissionGranted( editor ).then( isCreateAssetAllowed => {\n\t\t\tif ( !isCreateAssetAllowed ) {\n\t\t\t\tthis._blockImageCommands();\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic afterInit(): void {\n\t\tconst editor = this.editor;\n\n\t\tif ( !this._shouldBeInitialised() ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Extending the schema, registering converters and applying fixers only make sense if the configuration option to assign\n\t\t// the assets ID with the model elements is enabled.\n\t\tif ( !editor.config.get( 'ckbox.ignoreDataId' ) ) {\n\t\t\tthis._initSchema();\n\t\t\tthis._initConversion();\n\t\t\tthis._initFixers();\n\t\t}\n\t}\n\n\t/**\n\t * Returns true only when the integrator intentionally wants to use the plugin, i.e. when the `config.ckbox` exists or\n\t * the CKBox JavaScript library is loaded.\n\t */\n\tprivate _shouldBeInitialised(): boolean {\n\t\tconst editor = this.editor;\n\t\tconst hasConfiguration = !!editor.config.get( 'ckbox' );\n\n\t\treturn hasConfiguration || isLibraryLoaded();\n\t}\n\n\t/**\n\t * Blocks `uploadImage` and `ckboxImageEdit` commands.\n\t */\n\tprivate _blockImageCommands(): void {\n\t\tconst editor = this.editor;\n\t\tconst uploadImageCommand = editor.commands.get( 'uploadImage' );\n\t\tconst imageEditingCommand = editor.commands.get( 'ckboxImageEdit' );\n\n\t\tif ( uploadImageCommand ) {\n\t\t\tuploadImageCommand.isAccessAllowed = false;\n\t\t\tuploadImageCommand.forceDisabled( COMMAND_FORCE_DISABLE_ID );\n\t\t}\n\n\t\tif ( imageEditingCommand ) {\n\t\t\timageEditingCommand.forceDisabled( COMMAND_FORCE_DISABLE_ID );\n\t\t}\n\t}\n\n\t/**\n\t * Checks if at least one image plugin is loaded.\n\t */\n\tprivate _checkImagePlugins() {\n\t\tconst editor = this.editor;\n\n\t\tif ( !editor.plugins.has( 'ImageBlockEditing' ) && !editor.plugins.has( 'ImageInlineEditing' ) ) {\n\t\t\t/**\n\t\t\t * The CKBox feature requires one of the following plugins to be loaded to work correctly:\n\t\t\t *\n\t\t\t * * {@link module:image/imageblock~ImageBlock},\n\t\t\t * * {@link module:image/imageinline~ImageInline},\n\t\t\t * * {@link module:image/image~Image} (loads both `ImageBlock` and `ImageInline`)\n\t\t\t *\n\t\t\t * Please make sure your editor configuration is correct.\n\t\t\t *\n\t\t\t * @error ckbox-plugin-image-feature-missing\n\t\t\t * @param {module:core/editor/editor~Editor} editor\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 override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ CKBoxEditing, CKBoxUI ] as const;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-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 override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ CKBoxEditing, CKBoxUtils, PendingActions, Notification, 'ImageUtils', 'ImageEditing' ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst { editor } = this;\n\n\t\teditor.commands.add( 'ckboxImageEdit', new CKBoxImageEditCommand( editor ) );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-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 static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( 'ckboxImageEdit', locale => {\n\t\t\tconst command = editor.commands.get( 'ckboxImageEdit' )!;\n\t\t\tconst uploadImageCommand = editor.commands.get( 'uploadImage' )!;\n\t\t\tconst view = new ButtonView( locale );\n\t\t\tconst t = locale.t;\n\n\t\t\tview.set( {\n\t\t\t\ticon: 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 override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ CKBoxImageEditEditing, CKBoxImageEditUI ] as const;\n\t}\n}\n"]}