UNPKG

devexpress-richedit

Version:

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

56 lines (55 loc) 2.64 kB
import { DomUtils } from '@devexpress/utils/lib/utils/dom'; import { ListUtils } from '@devexpress/utils/lib/utils/list'; import { NumberMapUtils } from '@devexpress/utils/lib/utils/map/number'; import { DocumentRenderer } from '../../../../../canvas/renderes/common/document-renderer'; import { DebugVisualizerType } from './debug-visualizer-type'; import { LayoutBoundsInfoHelper } from './layout-bounds-info-helper'; import { TableBoundsVisibleInfoHelper } from './table-bounds-visible-info-helper'; export class DebugVisualizerManager { constructor(cache) { this.vizualizers = {}; this.containers = {}; this.cache = cache; this.vizualizers[DebugVisualizerType.TableBounds] = new TableBoundsVisibleInfoHelper(); this.vizualizers[DebugVisualizerType.LayoutBounds] = new LayoutBoundsInfoHelper(); } show(vizType, layout, pageIndex) { const viz = this.vizualizers[vizType]; const pageContainer = this.getPageContainer(viz, pageIndex); DebugVisualizerManager.clearContainer(pageContainer); viz.fillPageContainer(layout, pageContainer, pageIndex); DocumentRenderer.getServiceContainerCore(this.cache[pageIndex].page).appendChild(pageContainer); } static clearContainer(container) { while (container.firstChild) DomUtils.hideNode(container.firstChild); } hide(vizType, pageIndex) { const viz = this.vizualizers[vizType]; const currContainer = this.getPageContainer(viz, pageIndex); DomUtils.hideNode(currContainer); } hideAll(vizType = DebugVisualizerType.None) { const viz = this.vizualizers[vizType]; if (viz) { let vizContainers = this.containers[viz.getType()]; if (vizContainers) { ListUtils.forEach(vizContainers, (cont) => DomUtils.hideNode(cont)); delete this.containers[viz.getType()]; } } else { NumberMapUtils.forEach(this.containers, (vizContainers) => ListUtils.forEach(vizContainers, (cont) => DomUtils.hideNode(cont))); this.containers = {}; } } getPageContainer(viz, pageIndex) { let vizContainers = this.containers[viz.getType()]; if (!vizContainers) vizContainers = this.containers[viz.getType()] = []; let currLen = vizContainers.length; while (currLen <= pageIndex) currLen = vizContainers.push(DocumentRenderer.renderContainer(viz.getContainerClassName())); return vizContainers[pageIndex]; } }