devexpress-richedit
Version:
DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.
43 lines (42 loc) • 2.21 kB
JavaScript
import { Field } from '../../../../model/fields/field';
import { Pair } from '@devexpress/utils/lib/class/pair';
import { NumberMapUtils } from '@devexpress/utils/lib/utils/map/number';
import { BaseFormatter, StdProps } from '../base-formatter';
export class CCF_Field extends BaseFormatter {
isHandleObject(obj) {
return obj instanceof Field;
}
getShortDescription(_config) {
const list = [
new Pair("", this.curr.index + ":"),
new Pair("", this.curr.showCode ? "showCode" : "showRes"),
new Pair("", `${this.curr.getFieldStartPosition()}[${this.curr.getSeparatorPosition()}|]${this.curr.getFieldEndPosition()}`)
];
if (this.curr.isHyperlinkField())
list.push(new Pair("", "hyperl"));
return this.stdShow(new StdProps(list).showAsLine());
}
availableFullDescription(_config) {
return true;
}
getFullDescription(_config) {
const list = [new Pair("index", this.curr.index)];
if (this.curr.parent)
list.push(new Pair("parentInd", this.curr.parent.index));
list.push(new Pair("isShowCode", this.curr.showCode));
if (this.curr.isHyperlinkField()) {
const hypInfo = this.curr.getHyperlinkInfo();
list.push(new Pair("anchor", hypInfo.anchor));
list.push(new Pair("tip", hypInfo.tip));
list.push(new Pair("uri", hypInfo.uri));
list.push(new Pair("visited", hypInfo.visited));
}
list.push(new Pair("intervals", `(${this.curr.getFieldStartPosition()})[code(${this.curr.getSeparatorPosition()})|result](${this.curr.getFieldEndPosition()})`));
list.push(new Pair("text", `[${this.getSubDocument().getText(this.curr.getCodeInterval())}|${this.getSubDocument().getText(this.curr.getResultInterval())}]`));
return this.stdShow(new StdProps(list).showAsColumn());
}
getSubDocument() {
return NumberMapUtils.elementBy(this.model.subDocuments, (subD) => subD.fields[this.curr.index] ? subD.fields[this.curr.index] === this.curr : null);
}
}
CCF_Field._foo = BaseFormatter.addToFormattersList(new CCF_Field());