File: //home/arjun/projects/buyercall/node_modules/@ckeditor/ckeditor5-ckbox/src/ckboxcommand.d.ts
/**
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
import { Command, type Editor } from 'ckeditor5/src/core';
import type { CKBoxAssetDefinition, CKBoxAssetImageAttributesDefinition, CKBoxRawAssetDefinition } from './ckboxconfig';
/**
* The CKBox command. It is used by the {@link module:ckbox/ckboxediting~CKBoxEditing CKBox editing feature} to open the CKBox file manager.
* The file manager allows inserting an image or a link to a file into the editor content.
*
* ```ts
* editor.execute( 'ckbox' );
* ```
*
* **Note:** This command uses other features to perform the following tasks:
* - To insert images it uses the {@link module:image/image/insertimagecommand~InsertImageCommand 'insertImage'} command from the
* {@link module:image/image~Image Image feature}.
* - To insert links to other files it uses the {@link module:link/linkcommand~LinkCommand 'link'} command from the
* {@link module:link/link~Link Link feature}.
*/
export default class CKBoxCommand extends Command {
value: boolean;
/**
* A set of all chosen assets. They are stored temporarily and they are automatically removed 1 second after being chosen.
* Chosen assets have to be "remembered" for a while to be able to map the given asset with the element inserted into the model.
* This association map is then used to set the ID on the model element.
*
* All chosen assets are automatically removed after the timeout, because (theoretically) it may happen that they will never be
* inserted into the model, even if the {@link module:link/linkcommand~LinkCommand `'link'`} command or the
* {@link module:image/image/insertimagecommand~InsertImageCommand `'insertImage'`} command is enabled. Such a case may arise when
* another plugin blocks the command execution. Then, in order not to keep the chosen (but not inserted) assets forever, we delete
* them automatically to prevent memory leakage. The 1 second timeout is enough to insert the asset into the model and extract the
* ID from the chosen asset.
*
* The assets are stored only if
* the {@link module:ckbox/ckboxconfig~CKBoxConfig#ignoreDataId `config.ckbox.ignoreDataId`} option is set to `false` (by default).
*
* @internal
*/
readonly _chosenAssets: Set<CKBoxAssetDefinition>;
/**
* The DOM element that acts as a mounting point for the CKBox dialog.
*/
private _wrapper;
/**
* @inheritDoc
*/
constructor(editor: Editor);
/**
* @inheritDoc
*/
refresh(): void;
/**
* @inheritDoc
*/
execute(): void;
/**
* Indicates if the CKBox dialog is already opened.
*
* @protected
* @returns {Boolean}
*/
private _getValue;
/**
* Checks whether the command can be enabled in the current context.
*/
private _checkEnabled;
/**
* Creates the options object for the CKBox dialog.
*
* @returns The object with properties:
* - theme The theme for CKBox dialog.
* - language The language for CKBox dialog.
* - tokenUrl The token endpoint URL.
* - serviceOrigin The base URL of the API service.
* - forceDemoLabel Whether to force "Powered by CKBox" link.
* - dialog.onClose The callback function invoked after closing the CKBox dialog.
* - assets.onChoose The callback function invoked after choosing the assets.
*/
private _prepareOptions;
/**
* Initializes various event listeners for the `ckbox:*` events, because all functionality of the `ckbox` command is event-based.
*/
private _initListeners;
/**
* Inserts the asset into the model.
*
* @param asset The asset to be inserted.
* @param isLastAsset Indicates if the current asset is the last one from the chosen set.
* @param writer An instance of the model writer.
* @param isSingleAsset It's true when only one asset is processed.
*/
private _insertAsset;
/**
* Inserts the image by calling the `insertImage` command.
*
* @param asset The asset to be inserted.
*/
private _insertImage;
/**
* Inserts the link to the asset by calling the `link` command.
*
* @param asset The asset to be inserted.
* @param writer An instance of the model writer.
* @param isSingleAsset It's true when only one asset is processed.
*/
private _insertLink;
}
/**
* Parses the assets attributes into the internal data format.
*
* @internal
*/
export declare function prepareImageAssetAttributes(asset: CKBoxRawAssetDefinition): CKBoxAssetImageAttributesDefinition;