@ckeditor/ckeditor5-ckbox 41.3.1 → 41.4.0-alpha.0

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