devexpress-richedit
Version:
DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.
83 lines (82 loc) • 3.41 kB
JavaScript
import { ListUtils } from '@devexpress/utils/lib/utils/list';
export class RichEditsHolder {
getRichEditGlobalObject() {
let devExpressObj = window.DevExpress;
if (!devExpressObj)
window.DevExpress = devExpressObj = {};
let richEditObj = devExpressObj.RichEdit;
if (!richEditObj)
devExpressObj.RichEdit = richEditObj = {};
return richEditObj;
}
getRichs() {
if (!this._richEdits) {
const richEditGlobalObj = this.getRichEditGlobalObject();
this._richEdits = richEditGlobalObj.richEdits;
if (!this._richEdits)
this._richEdits = richEditGlobalObj.richEdits = [];
}
return this._richEdits;
}
getRegisteredControlTypes() {
if (!this._registeredControlTypes) {
const richEditGlobalObj = this.getRichEditGlobalObject();
this._registeredControlTypes = richEditGlobalObj.controlTypes;
if (!this._registeredControlTypes)
this._registeredControlTypes = richEditGlobalObj.controlTypes = {};
}
return this._registeredControlTypes;
}
getRegisteredContainerTypes() {
if (!this._registeredContainerTypes) {
const richEditGlobalObj = this.getRichEditGlobalObject();
this._registeredContainerTypes = richEditGlobalObj.containerTypes;
if (!this._registeredContainerTypes)
this._registeredContainerTypes = richEditGlobalObj.containerTypes = {};
}
return this._registeredContainerTypes;
}
registerRichEdit(richEdit) {
this.getRichs().push(richEdit);
}
unregisterRichEdit(richEdit) {
const richs = this.getRichs();
const index = ListUtils.indexBy(richs, rich => rich === richEdit);
if (index >= 0)
richs.splice(index, 1);
}
registerControlType(controlTypeName) {
this.getRegisteredControlTypes()[controlTypeName] = null;
}
registerControlTypeObject(controlTypeName, object) {
this.getRegisteredControlTypes()[controlTypeName] = object;
}
isControlTypeRegistered(controlTypeName) {
return this.getRegisteredControlTypes()[controlTypeName] !== undefined;
}
getCustomControl(controlTypeName) {
const instance = this.getRegisteredControlTypes()[controlTypeName];
return instance ? instance : null;
}
registerContainerType(containerTypeName) {
this.getRegisteredContainerTypes()[containerTypeName] = null;
}
registerContainerTypeObject(containerTypeName, object) {
this.getRegisteredContainerTypes()[containerTypeName] = object;
}
isContainerTypeRegistered(containerTypeName) {
return this.getRegisteredContainerTypes()[containerTypeName] !== undefined;
}
getCustomContainer(containerTypeName) {
const instance = this.getRegisteredContainerTypes()[containerTypeName];
return instance ? instance : null;
}
getRichEditByElement(element) {
const richs = this.getRichs();
return ListUtils.elementBy(richs, rich => rich.element === element);
}
getFocusedRichEdit() {
const richs = this.getRichs();
return ListUtils.elementBy(richs, rich => rich.core.focusManager.isInFocus);
}
}