UNPKG

devexpress-richedit

Version:

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

125 lines (124 loc) 5.63 kB
import { Log } from '../../rich-utils/debug/logger/base-logger/log'; import { LogObjToStr } from '../../rich-utils/debug/logger/base-logger/log-obj-to-str'; import { LogSource } from '../../rich-utils/debug/logger/base-logger/log-source'; import { LogObjToStrLayout } from '../../rich-utils/debug/logger/layout-logger/log-obj-to-str-layout'; import { RestartPreparer } from '../formatter/utils/restart-preparer'; export class RestartFromPositionSaver_Base { constructor(manager) { this.manager = manager; } get restartPreparer() { return new RestartPreparer(this.manager); } restartOtherSubDocument(subDocument, pageIndex) { return new RestartFromPositionSaver_OherSubDocument(this.manager, subDocument, pageIndex); } restartMainSubDocumentFromPage(pageIndex) { return new RestartFromPositionSaver_MainSubDocumentFromPage(this.manager, pageIndex); } restartMainSubDocumentFromRow(lp, modelPosition) { return RestartFromPositionSaver_Base.isNeedRestartFromPage(lp) ? new RestartFromPositionSaver_MainSubDocumentFromPage(this.manager, lp.pageIndex) : new RestartFromPositionSaver_MainSubDocumentFromRow(this.manager, lp, modelPosition); } restart() { Log.print(LogSource.PositionSaver, "restart(from Base)", ""); } static isNeedRestartFromPage(lp) { return lp.pageAreaIndex == 0 && lp.columnIndex == 0 && lp.rowIndex == 0; } } export class RestartFromPositionSaver_OherSubDocument extends RestartFromPositionSaver_Base { constructor(manager, subDocument, pageIndex) { super(manager); this.subDocument = subDocument; this.pageIndex = pageIndex; } restartOtherSubDocument(_subDocument, pageIndex) { return this.getNextState(pageIndex); } restartMainSubDocumentFromPage(pageIndex) { return this.getNextState(pageIndex); } restartMainSubDocumentFromRow(layoutPosition, _modelPosition) { return this.getNextState(layoutPosition.pageIndex); } restart() { Log.print(LogSource.PositionSaver, "restart(from OherSubDocument)", `pageIndex: ${this.pageIndex}, subDocInfo:${LogObjToStr.subDocumentInfoBase(this.subDocument.info)}`); this.restartPreparer.restartHeaderFooterInternal(this.subDocument, this.pageIndex); } getNextState(pageIndex) { return new RestartFromPositionSaver_MainSubDocumentFromPage(this.manager, Math.min(pageIndex, this.pageIndex)); } } export class RestartFromPositionSaver_MainSubDocumentFromPage extends RestartFromPositionSaver_Base { constructor(manager, pageIndex) { super(manager); this.pageIndex = pageIndex; } restartOtherSubDocument(_subDocument, pageIndex) { return this.getNextState(pageIndex); } restartMainSubDocumentFromPage(pageIndex) { return this.getNextState(pageIndex); } restartMainSubDocumentFromRow(layoutPosition, modelPosition) { return layoutPosition.pageIndex < this.pageIndex ? new RestartFromPositionSaver_MainSubDocumentFromRow(this.manager, layoutPosition, modelPosition) : this.getNextState(layoutPosition.pageIndex); } restart() { Log.print(LogSource.PositionSaver, "restart(from page)", `pageIndex: ${this.pageIndex}`); this.restartPreparer.restartFromPage(this.pageIndex, true, true); } getNextState(pageIndex) { this.pageIndex = Math.min(pageIndex, this.pageIndex); return this; } } export class RestartFromPositionSaver_AllLayout extends RestartFromPositionSaver_Base { restartOtherSubDocument(_subDocument, _pageIndex) { return this; } restartMainSubDocumentFromPage(_pageIndex) { return this; } restartMainSubDocumentFromRow(_layoutPosition, _modelPosition) { return this; } restart() { Log.print(LogSource.PositionSaver, "restart(all layout)", ""); this.restartPreparer.restartFormatingAllLayout(); } } class RestartFromPositionSaver_MainSubDocumentFromRow extends RestartFromPositionSaver_Base { constructor(manager, layoutPosition, modelPosition) { super(manager); this.layoutPosition = layoutPosition; this.modelPosition = modelPosition; } restartOtherSubDocument(_subDocument, pageIndex) { return this.getNextState(pageIndex); } restartMainSubDocumentFromRow(layoutPosition, modelPosition) { if (layoutPosition.pageIndex <= this.layoutPosition.pageIndex && RestartFromPositionSaver_Base.isNeedRestartFromPage(layoutPosition)) return new RestartFromPositionSaver_MainSubDocumentFromPage(this.manager, layoutPosition.pageIndex); if (modelPosition <= this.modelPosition) { this.modelPosition = modelPosition; this.layoutPosition = layoutPosition; } return this; } restartMainSubDocumentFromPage(pageIndex) { return this.getNextState(pageIndex); } restart() { Log.print(LogSource.PositionSaver, "restart(from row)", `modelPosition: ${this.modelPosition}, LP:${LogObjToStrLayout.layoutPositionShort(this.layoutPosition)}`); this.restartPreparer.restartFromRow(this.layoutPosition, this.modelPosition, false); } getNextState(pageIndex) { if (pageIndex <= this.layoutPosition.pageIndex) return new RestartFromPositionSaver_MainSubDocumentFromPage(this.manager, pageIndex); return this; } }