UNPKG

devexpress-richedit

Version:

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

130 lines (129 loc) 7.86 kB
import { MathUtils } from '@devexpress/utils/lib/utils/math'; import { BorderInfo } from '../../borders/border-info'; import { TableCellBorders } from '../../borders/table-cell-borders'; import { ShadingInfo } from '../../shadings/shading-info'; import { TableCellMargins, TableCellVerticalAlignment, TextDirection } from '../secondary-structures/table-base-structures'; import { TableWidthUnit } from '../secondary-structures/table-units'; import { TableCellPropertiesBottomBorderDescriptor, TableCellPropertiesBottomMarginDescriptor, TableCellPropertiesFitTextDescriptor, TableCellPropertiesHideCellMarkDescriptor, TableCellPropertiesLeftBorderDescriptor, TableCellPropertiesLeftMarginDescriptor, TableCellPropertiesNoWrapDescriptor, TableCellPropertiesRightBorderDescriptor, TableCellPropertiesRightMarginDescriptor, TableCellPropertiesShadingInfoDescriptor, TableCellPropertiesTextDirectionDescriptor, TableCellPropertiesTopBorderDescriptor, TableCellPropertiesTopLeftDiagonalBorderDescriptor, TableCellPropertiesTopMarginDescriptor, TableCellPropertiesTopRightDiagonalBorderDescriptor, TableCellPropertiesVerticalAlignmentDescriptor } from './table-cell-descriptors'; export class TableCellProperties { hash; mask = TableCellPropertiesMask.UseNone; cellMargins = TableCellMargins.create(TableWidthUnit.createDefault(), TableWidthUnit.createDefault(), TableWidthUnit.createDefault(), TableWidthUnit.createDefault()); borders = TableCellBorders.create(new BorderInfo(), new BorderInfo(), new BorderInfo(), new BorderInfo(), new BorderInfo(), new BorderInfo()); hideCellMark = false; noWrap = false; fitText = false; textDirection = TextDirection.LeftToRightTopToBottom; verticalAlignment = TableCellVerticalAlignment.Top; shadingInfo = ShadingInfo.noColor; calculateHash() { return MathUtils.somePrimes[0] * this.mask ^ MathUtils.somePrimes[1] * this.borders.getHashCode() ^ MathUtils.somePrimes[2] * this.verticalAlignment ^ MathUtils.somePrimes[3] * this.shadingInfo.getHashCode(); } getHashCode() { return this.hash === undefined ? this.hash = this.calculateHash() : this.hash; } equals(obj) { if (!obj) return false; return this.mask == obj.mask && this.cellMargins.equals(obj.cellMargins) && this.borders.equals(obj.borders) && this.hideCellMark == obj.hideCellMark && this.noWrap == obj.noWrap && this.fitText == obj.fitText && this.textDirection == obj.textDirection && this.verticalAlignment == obj.verticalAlignment && this.shadingInfo.equals(obj.shadingInfo); } clone() { var result = new TableCellProperties(); result.copyFrom(this); return result; } copyFrom(obj) { this.mask = obj.mask; this.cellMargins = obj.cellMargins.clone(); this.borders = obj.borders.clone(); this.hideCellMark = obj.hideCellMark; this.noWrap = obj.noWrap; this.fitText = obj.fitText; this.textDirection = obj.textDirection; this.verticalAlignment = obj.verticalAlignment; if (obj.shadingInfo) this.shadingInfo = obj.shadingInfo.clone(); } setUseValue(mask, value) { if (value) this.mask |= mask; else this.mask &= ~mask; } getUseValue(mask) { return (this.mask & mask) != 0; } setValue(desc, value) { desc.setProp(this, value); this.setUseValue(desc.maskValue(), true); } } export var TableCellPropertiesMask; (function (TableCellPropertiesMask) { TableCellPropertiesMask[TableCellPropertiesMask["UseNone"] = 0] = "UseNone"; TableCellPropertiesMask[TableCellPropertiesMask["UseHideCellMark"] = 2] = "UseHideCellMark"; TableCellPropertiesMask[TableCellPropertiesMask["UseNoWrap"] = 4] = "UseNoWrap"; TableCellPropertiesMask[TableCellPropertiesMask["UseFitText"] = 8] = "UseFitText"; TableCellPropertiesMask[TableCellPropertiesMask["UseLeftMargin"] = 16] = "UseLeftMargin"; TableCellPropertiesMask[TableCellPropertiesMask["UseRightMargin"] = 32] = "UseRightMargin"; TableCellPropertiesMask[TableCellPropertiesMask["UseTopMargin"] = 64] = "UseTopMargin"; TableCellPropertiesMask[TableCellPropertiesMask["UseBottomMargin"] = 128] = "UseBottomMargin"; TableCellPropertiesMask[TableCellPropertiesMask["UseTextDirection"] = 256] = "UseTextDirection"; TableCellPropertiesMask[TableCellPropertiesMask["UseVerticalAlignment"] = 512] = "UseVerticalAlignment"; TableCellPropertiesMask[TableCellPropertiesMask["UseCellConditionalFormatting"] = 2048] = "UseCellConditionalFormatting"; TableCellPropertiesMask[TableCellPropertiesMask["UseLeftBorder"] = 4096] = "UseLeftBorder"; TableCellPropertiesMask[TableCellPropertiesMask["UseRightBorder"] = 8192] = "UseRightBorder"; TableCellPropertiesMask[TableCellPropertiesMask["UseTopBorder"] = 16384] = "UseTopBorder"; TableCellPropertiesMask[TableCellPropertiesMask["UseBottomBorder"] = 32768] = "UseBottomBorder"; TableCellPropertiesMask[TableCellPropertiesMask["UseTopLeftDiagonalBorder"] = 262144] = "UseTopLeftDiagonalBorder"; TableCellPropertiesMask[TableCellPropertiesMask["UseTopRightDiagonalBorder"] = 524288] = "UseTopRightDiagonalBorder"; TableCellPropertiesMask[TableCellPropertiesMask["UseShadingInfoIndex"] = 1048576] = "UseShadingInfoIndex"; TableCellPropertiesMask[TableCellPropertiesMask["UseAll"] = 2147483647] = "UseAll"; })(TableCellPropertiesMask || (TableCellPropertiesMask = {})); export class TableCellPropertyDescriptor { static topBorder = new TableCellPropertiesTopBorderDescriptor(); static rightBorder = new TableCellPropertiesRightBorderDescriptor(); static bottomBorder = new TableCellPropertiesBottomBorderDescriptor(); static leftBorder = new TableCellPropertiesLeftBorderDescriptor(); static topLeftDiagonalBorder = new TableCellPropertiesTopLeftDiagonalBorderDescriptor(); static topRightDiagonalBorder = new TableCellPropertiesTopRightDiagonalBorderDescriptor(); static topMargin = new TableCellPropertiesTopMarginDescriptor(); static rightMargin = new TableCellPropertiesRightMarginDescriptor(); static bottomMargin = new TableCellPropertiesBottomMarginDescriptor(); static leftMargin = new TableCellPropertiesLeftMarginDescriptor(); static fitText = new TableCellPropertiesFitTextDescriptor(); static hideCellMark = new TableCellPropertiesHideCellMarkDescriptor(); static noWrap = new TableCellPropertiesNoWrapDescriptor(); static shadingInfo = new TableCellPropertiesShadingInfoDescriptor(); static textDirection = new TableCellPropertiesTextDirectionDescriptor(); static vertivalAlignment = new TableCellPropertiesVerticalAlignmentDescriptor(); static ALL_FIELDS = [ TableCellPropertyDescriptor.topBorder, TableCellPropertyDescriptor.rightBorder, TableCellPropertyDescriptor.bottomBorder, TableCellPropertyDescriptor.leftBorder, TableCellPropertyDescriptor.topLeftDiagonalBorder, TableCellPropertyDescriptor.topRightDiagonalBorder, TableCellPropertyDescriptor.topMargin, TableCellPropertyDescriptor.rightMargin, TableCellPropertyDescriptor.bottomMargin, TableCellPropertyDescriptor.leftMargin, TableCellPropertyDescriptor.fitText, TableCellPropertyDescriptor.hideCellMark, TableCellPropertyDescriptor.noWrap, TableCellPropertyDescriptor.shadingInfo, TableCellPropertyDescriptor.textDirection, TableCellPropertyDescriptor.vertivalAlignment, ]; }