UNPKG

devexpress-richedit

Version:

DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.

31 lines (30 loc) 1.95 kB
import { Errors } from '@devexpress/utils/lib/errors'; import { SelectionIntervalsInfo } from '../../../selection/selection-intervals-info'; import { ChangeFieldHyperlinkInfoHistoryItem } from '../../history/items/change-field-hyperlink-info-history-item'; import { FieldInsertHistoryItem } from '../../history/items/field-insert-history-item'; import { Field, HyperlinkInfo } from '../field'; import { FieldCodeParser, FieldCodeParserState, FieldMailMergeType } from './field-code-parser'; export class FieldCodeParserClientUpdatingBase extends FieldCodeParser { getMailMergeType() { return FieldMailMergeType.NonMailMerge; } parseCodeCurrentFieldInternal(_responce) { this.removeInterval(this.getTopField().getResultInterval()); if (this.parseSwitchesAndArgs()) this.fillResult(); this.parserState = FieldCodeParserState.end; return true; } createLocalHyperLink(interval, bookmarkName) { this.modelManager.history.addAndRedo(new FieldInsertHistoryItem(this.modelManager.modelManipulator, this.subDocument, interval.start, 0, interval.length, false, this.inputPos.charPropsBundle)); let fieldIndex = Field.normedBinaryIndexOf(this.subDocument.fields, interval.start + 1); let field = this.subDocument.fields[fieldIndex]; const hyperlinkInfo = new HyperlinkInfo("", bookmarkName, "", false); this.modelManager.history.addAndRedo(new ChangeFieldHyperlinkInfoHistoryItem(this.modelManager.modelManipulator, this.subDocument, field.index, hyperlinkInfo)); this.inputPos.setIntervals(SelectionIntervalsInfo.fromInterval(this.subDocument, field.getCodeInterval())); this.replaceTextByInterval(field.getCodeInterval(), this.modelManager.model.simpleFormattersManager.formatString("HYPERLINK \\l \"{0}\"", bookmarkName)); } fillResult() { throw new Error(Errors.NotImplemented); } }