devexpress-richedit
Version:
DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.
26 lines (25 loc) • 1.47 kB
JavaScript
import { LayoutPositionCreatorConflictFlags, LayoutPositionMainSubDocumentCreator } from '../../../layout-engine/layout-position-creator';
import { DocumentLayoutDetailsLevel } from '../../../layout/document-layout-details-level';
import { FieldName } from '../names';
import { FieldCodeParserClientUpdatingBase } from './field-code-parser-client-updating-base';
export class FieldCodeParserPage extends FieldCodeParserClientUpdatingBase {
get name() { return FieldName.Page; }
fillResult() {
const pos = this.getPosition();
if (pos == null)
return true;
this.setInputPositionState();
if (this.subDocument.isMain()) {
let layoutPosition = LayoutPositionMainSubDocumentCreator.ensureLayoutPosition(this.layoutFormatterManager, this.subDocument, pos, DocumentLayoutDetailsLevel.Page, new LayoutPositionCreatorConflictFlags().setDefault(false), new LayoutPositionCreatorConflictFlags().setDefault(true));
let pageText = this.getFormattedResult(layoutPosition.pageIndex + 1);
this.replaceTextByInterval(this.getTopField().getResultInterval(), pageText);
}
else
this.replaceTextByLayoutDependentRun(this.getTopField().getResultInterval());
return true;
}
getPosition() {
let field = this.getTopField();
return field.showCode ? field.getCodeStartPosition() : field.getResultStartPosition();
}
}