@omegagrid/grid-core 0.11.16 → 0.11.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAehD,eAAO,MAAM,sBAAsB,EAI9B,aAAa,CAAC;AAEnB,eAAO,MAAM,oBAAoB,EAG5B,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFjB,wBAqBC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAehD,eAAO,MAAM,sBAAsB,EAI9B,aAAa,CAAC;AAEnB,eAAO,MAAM,oBAAoB,EAG5B,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2FjB,wBAqBC"}
package/dist/constants.js CHANGED
@@ -55,6 +55,9 @@ const DEFAULT_OPTIONS = {
55
55
  cellCache: true,
56
56
  singleCellModel: false,
57
57
  zoom: 1,
58
+ autofit: {
59
+ includeHeaders: true
60
+ },
58
61
  editing: {
59
62
  rowInsertion: true,
60
63
  rowDeletion: true,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["import { constants as coreConstants } from '@omegagrid/core';\nimport { Options, FilterOptions, TreeOptions } from './model';\nimport { SparklineOptions } from './sparklines';\n\nconst DEFAULT_SPARKLINE_OPTIONS = {\n\tminValue: 'auto',\n\tmaxValue: 'auto',\n\ttype: 'line',\n\tstyle: {\n\t\tcolor: '0094FF',\n\t\tweight: 1\n\t},\n\tmarker: {\n\t\tcolor: 'ff0000'\n\t}\n} as SparklineOptions;\n\nexport const DEFAULT_FILTER_OPTIONS = {\n\tenabled: false,\n\tincludeChildren: true,\n\tincludeParents: true\n} as FilterOptions;\n\nexport const DEFAULT_TREE_OPTIONS = {\n\tenabled: true,\n\treversed: false,\n} as TreeOptions;\n\nconst ROW_HEIGHT = 22;\n\nconst DEFAULT_OPTIONS: Options = {\n\trows: 100,\n\tcolumns: 20,\n\treadOnly: false,\n\trowNumbers: true,\n\trowPriority: 2,\n\trowTree: {enabled: true},\n\tcolumnTree: {enabled: true},\n\tcolLetters: true,\n\temptyPlaceholder: true,\n\tfreezeTop: 0,\n\tfontSize: 14,\n\trowHeight: ROW_HEIGHT,\n\trowResize: true,\n\tcolumnWidth: 100,\n\tcolumnResize: true,\n\tcolumnPriority: 1,\n\tfreezeLeft: 0,\n\tfreezeRight: 0,\n\tfreezeBottom: 0,\n\tmaxSortingColumns: 3,\n\tnumberFormat: null,\n\tlevelIndentFactor: 2,\n\tcellIndentFactor: 10,\n\temptyClickable: false,\n\tgrid: true,\n\tautofill: true,\n\tformulas: true,\n\tmaxCalculationDepth: 50,\n\tundoRedo: true,\n\tcommandWindow: true,\n\tcellCache: true,\n\tsingleCellModel: false,\n\tzoom: 1,\n\tediting: {\n\t\trowInsertion: true,\n\t\trowDeletion: true,\n\t\tcolInsertion: true,\n\t\tcolDeletion: true,\n\t\trowOutline: true,\n\t\tcolOutline: true,\n\t\tdateCalendarEditor: false\n\t},\n\tcomments: {\n\t\thideTimeout: 1000,\n\t\toffsetX: 30,\n\t\toffsetY: -30,\n\t\tzIndex: 500,\n\t\theaderPosition: 'top'\n\t},\n\tscrolling: {\n\t\tverticalOverscroll: true,\n\t\thorizontalOverscroll: true,\n\t\tscrollbarVisibilityTreshold: 100\n\t},\n\tselecting: {\n\t\tenabled: true,\n\t\tmultiSelect: true,\n\t},\n\tevents: {\n\t\tclick: {\n\t\t\tmouseMoveTreshold: 10\n\t\t}\n\t},\n\tclipboard: {\n\t\tpasteProps: ['v', 'dv'],\n\t\trowPasteMode: 'rewrite_append',\n\t\tcolumnPasteMode: 'rewrite'\n\t},\n\tprint: {\n\t\tdpi: 600,\n\t\tmargins: {\n\t\t\tleft: 6.35,\n\t\t\tright: 6.35,\n\t\t\ttop: 19.05,\n\t\t\tbottom: 19.05,\n\t\t\theader: 7.62,\n\t\t\tfooter: 7.62\n\t\t},\n\t\torientation: 'portrait',\n\t\tpaper: 'A4'\n\t}\n};\n\nexport default {\n\tROW_HEIGHT: ROW_HEIGHT,\n\tRESIZE_TRESHOLD: 10,\n\tROW_HEADER_WIDTH: 60,\n\tSLIDER_SIZE: 12,\n\tEXPANDER_SIZE: 13,\n\tMAX_CACHE_ITEMS: 5000, //50000,\n\tCACHE_CLEAN_INTERVAL: 30,\n\tCOMMENT_HIDE_TIMEOUT: 1000,\n\tSELECTOR_BORDER_WIDTH: 1,\n\tMIN_ROW_HEIGHT: 5,\n\tMIN_COL_WIDTH: 5,\n\tSPARKLINE_GAP: 4,\n\tAUTOSCROLL_TRESHOLD: 100,\n\tAUTOSCROLL_RATIO: 1.1,\n\tAUTOSCROLL_INTERVAL: 100,\n\tDEFAULT_SPARKLINE_OPTIONS: DEFAULT_SPARKLINE_OPTIONS,\n\tDEFAULT_OPTIONS: DEFAULT_OPTIONS,\n\tMAX_COMMENT_AUTOHEIGHT: 300,\n\tMIN_COMMENT_AUTOHEIGHT: 25,\n\t...coreConstants\n}\n\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["import { constants as coreConstants } from '@omegagrid/core';\nimport { Options, FilterOptions, TreeOptions } from './model';\nimport { SparklineOptions } from './sparklines';\n\nconst DEFAULT_SPARKLINE_OPTIONS = {\n\tminValue: 'auto',\n\tmaxValue: 'auto',\n\ttype: 'line',\n\tstyle: {\n\t\tcolor: '0094FF',\n\t\tweight: 1\n\t},\n\tmarker: {\n\t\tcolor: 'ff0000'\n\t}\n} as SparklineOptions;\n\nexport const DEFAULT_FILTER_OPTIONS = {\n\tenabled: false,\n\tincludeChildren: true,\n\tincludeParents: true\n} as FilterOptions;\n\nexport const DEFAULT_TREE_OPTIONS = {\n\tenabled: true,\n\treversed: false,\n} as TreeOptions;\n\nconst ROW_HEIGHT = 22;\n\nconst DEFAULT_OPTIONS: Options = {\n\trows: 100,\n\tcolumns: 20,\n\treadOnly: false,\n\trowNumbers: true,\n\trowPriority: 2,\n\trowTree: {enabled: true},\n\tcolumnTree: {enabled: true},\n\tcolLetters: true,\n\temptyPlaceholder: true,\n\tfreezeTop: 0,\n\tfontSize: 14,\n\trowHeight: ROW_HEIGHT,\n\trowResize: true,\n\tcolumnWidth: 100,\n\tcolumnResize: true,\n\tcolumnPriority: 1,\n\tfreezeLeft: 0,\n\tfreezeRight: 0,\n\tfreezeBottom: 0,\n\tmaxSortingColumns: 3,\n\tnumberFormat: null,\n\tlevelIndentFactor: 2,\n\tcellIndentFactor: 10,\n\temptyClickable: false,\n\tgrid: true,\n\tautofill: true,\n\tformulas: true,\n\tmaxCalculationDepth: 50,\n\tundoRedo: true,\n\tcommandWindow: true,\n\tcellCache: true,\n\tsingleCellModel: false,\n\tzoom: 1,\n\tautofit: {\n\t\tincludeHeaders: true\n\t},\n\tediting: {\n\t\trowInsertion: true,\n\t\trowDeletion: true,\n\t\tcolInsertion: true,\n\t\tcolDeletion: true,\n\t\trowOutline: true,\n\t\tcolOutline: true,\n\t\tdateCalendarEditor: false\n\t},\n\tcomments: {\n\t\thideTimeout: 1000,\n\t\toffsetX: 30,\n\t\toffsetY: -30,\n\t\tzIndex: 500,\n\t\theaderPosition: 'top'\n\t},\n\tscrolling: {\n\t\tverticalOverscroll: true,\n\t\thorizontalOverscroll: true,\n\t\tscrollbarVisibilityTreshold: 100\n\t},\n\tselecting: {\n\t\tenabled: true,\n\t\tmultiSelect: true,\n\t},\n\tevents: {\n\t\tclick: {\n\t\t\tmouseMoveTreshold: 10\n\t\t}\n\t},\n\tclipboard: {\n\t\tpasteProps: ['v', 'dv'],\n\t\trowPasteMode: 'rewrite_append',\n\t\tcolumnPasteMode: 'rewrite'\n\t},\n\tprint: {\n\t\tdpi: 600,\n\t\tmargins: {\n\t\t\tleft: 6.35,\n\t\t\tright: 6.35,\n\t\t\ttop: 19.05,\n\t\t\tbottom: 19.05,\n\t\t\theader: 7.62,\n\t\t\tfooter: 7.62\n\t\t},\n\t\torientation: 'portrait',\n\t\tpaper: 'A4'\n\t}\n};\n\nexport default {\n\tROW_HEIGHT: ROW_HEIGHT,\n\tRESIZE_TRESHOLD: 10,\n\tROW_HEADER_WIDTH: 60,\n\tSLIDER_SIZE: 12,\n\tEXPANDER_SIZE: 13,\n\tMAX_CACHE_ITEMS: 5000, //50000,\n\tCACHE_CLEAN_INTERVAL: 30,\n\tCOMMENT_HIDE_TIMEOUT: 1000,\n\tSELECTOR_BORDER_WIDTH: 1,\n\tMIN_ROW_HEIGHT: 5,\n\tMIN_COL_WIDTH: 5,\n\tSPARKLINE_GAP: 4,\n\tAUTOSCROLL_TRESHOLD: 100,\n\tAUTOSCROLL_RATIO: 1.1,\n\tAUTOSCROLL_INTERVAL: 100,\n\tDEFAULT_SPARKLINE_OPTIONS: DEFAULT_SPARKLINE_OPTIONS,\n\tDEFAULT_OPTIONS: DEFAULT_OPTIONS,\n\tMAX_COMMENT_AUTOHEIGHT: 300,\n\tMIN_COMMENT_AUTOHEIGHT: 25,\n\t...coreConstants\n}\n\n"]}
@@ -158,7 +158,15 @@ export declare class GridModel implements Model<GridSource> {
158
158
  r: number;
159
159
  }): Viewport;
160
160
  calculateViewport(): CellModel[];
161
- getValuesInRange(range: CellRange, formattedValues?: boolean): Matrix<unknown>;
161
+ /**
162
+ * Whether the row is one of those the table shows: not hidden, not filtered out and under no collapsed
163
+ * row. A row that dropped out keeps its last visibleIndex, so only the visible row list itself tells.
164
+ */
165
+ isRowVisible(row: RowModel): boolean;
166
+ /**
167
+ * @param visibleOnly leave out the rows the table does not show (filtered out, hidden, collapsed)
168
+ */
169
+ getValuesInRange(range: CellRange, formattedValues?: boolean, visibleOnly?: boolean): Matrix<unknown>;
162
170
  setRowExpandLevel(level: number): void;
163
171
  setColumnExpandLevel(level: number): void;
164
172
  getViewportRange(): CellRange;
@@ -168,8 +176,11 @@ export declare class GridModel implements Model<GridSource> {
168
176
  getRowIterator(range: CellRange, withinViewport?: boolean): IterableAxisRange<RowModel>;
169
177
  getColumnIterator(range: CellRange, withinViewport?: boolean): IterableAxisRange<ColumnModel>;
170
178
  getCellArray(range: CellRange): CellModel[];
171
- transformRangeToMatrix<T>(range: CellRange, transform: (cell: CellModel) => T): Matrix<T>;
172
- getCellMatrix(range: CellRange): Matrix<CellModel>;
179
+ /**
180
+ * @param visibleOnly leave out the rows the table does not show (filtered out, hidden, collapsed)
181
+ */
182
+ transformRangeToMatrix<T>(range: CellRange, transform: (cell: CellModel) => T, visibleOnly?: boolean): Matrix<T>;
183
+ getCellMatrix(range: CellRange, visibleOnly?: boolean): Matrix<CellModel>;
173
184
  getValueMatrix(range: CellRange): Matrix<unknown>;
174
185
  shift(options: ShiftOptions): void;
175
186
  clearCalculations(all?: boolean): void;
@@ -1 +1 @@
1
- {"version":3,"file":"gridModel.d.ts","sourceRoot":"","sources":["../../src/model/gridModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gridModel.d.ts","sourceRoot":"","sources":["../../src/model/gridModel.ts"],"names":[],"mappings":"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"}
@@ -549,22 +549,34 @@ export class GridModel {
549
549
  calculateViewport() {
550
550
  return this._viewport ? this.calculations.calculateViewport(this._viewport) : [];
551
551
  }
552
- getValuesInRange(range, formattedValues = false) {
552
+ /**
553
+ * Whether the row is one of those the table shows: not hidden, not filtered out and under no collapsed
554
+ * row. A row that dropped out keeps its last visibleIndex, so only the visible row list itself tells.
555
+ */
556
+ isRowVisible(row) {
557
+ return this.visibleRows[row.visibleIndex] === row;
558
+ }
559
+ /**
560
+ * @param visibleOnly leave out the rows the table does not show (filtered out, hidden, collapsed)
561
+ */
562
+ getValuesInRange(range, formattedValues = false, visibleOnly = false) {
553
563
  range = range.intersect(this.gridRange);
554
564
  if (!range)
555
565
  return [];
556
- const { columns, rows } = range.size;
557
- const values = new Array(rows);
558
- let i = 0, j = 0;
559
- let row;
566
+ const { columns } = range.size;
567
+ const values = [];
568
+ let j = 0;
569
+ let row, rowValues;
560
570
  for (let r = range.r1; r <= range.r2; r++) {
561
- values[i] = new Array(columns);
562
- j = 0;
563
571
  row = this.rows[r];
572
+ if (visibleOnly && !this.isRowVisible(row))
573
+ continue;
574
+ rowValues = new Array(columns);
575
+ j = 0;
564
576
  for (let c = range.c1; c <= range.c2; c++) {
565
- values[i][j++] = formattedValues ? row.cell(c).formattedValue : row.cell(c).value;
577
+ rowValues[j++] = formattedValues ? row.cell(c).formattedValue : row.cell(c).value;
566
578
  }
567
- ++i;
579
+ values.push(rowValues);
568
580
  }
569
581
  return values;
570
582
  }
@@ -608,13 +620,16 @@ export class GridModel {
608
620
  }
609
621
  return cells;
610
622
  }
611
- transformRangeToMatrix(range, transform) {
623
+ /**
624
+ * @param visibleOnly leave out the rows the table does not show (filtered out, hidden, collapsed)
625
+ */
626
+ transformRangeToMatrix(range, transform, visibleOnly = false) {
612
627
  let row, cell, rowValues;
613
628
  range = range.intersect(this.gridRange);
614
629
  const cells = [];
615
630
  for (let r = range.r1; r <= range.r2; r++) {
616
631
  row = this.rows[r];
617
- if (!row)
632
+ if (!row || (visibleOnly && !this.isRowVisible(row)))
618
633
  continue;
619
634
  rowValues = [];
620
635
  for (let c = range.c1; c <= range.c2; c++) {
@@ -626,8 +641,8 @@ export class GridModel {
626
641
  }
627
642
  return cells;
628
643
  }
629
- getCellMatrix(range) {
630
- return this.getModelByRange(range)?.transformRangeToMatrix(range, c => c);
644
+ getCellMatrix(range, visibleOnly = false) {
645
+ return this.getModelByRange(range)?.transformRangeToMatrix(range, c => c, visibleOnly);
631
646
  }
632
647
  getValueMatrix(range) {
633
648
  return this.getModelByRange(range)?.transformRangeToMatrix(range, c => c.value);
@@ -1 +1 @@
1
- {"version":3,"file":"gridModel.js","sourceRoot":"","sources":["../../src/model/gridModel.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, tree, CustomProperties, Location, Model } from \"@omegagrid/core\";\nimport { log } from \"@omegagrid/core\";\nimport { CellValueType, ShiftOptions, SpillOptions, SpillResult, TabOptions } from \"../types\";\nimport { CalculationModel } from \"./calculationModel\";\nimport { CellRange } from \"../common/range\";\nimport { ConditionalFormats, ConditionalFormatSource } from \"./conditionalFormats\";\nimport { Sparklines, SparklineSource } from \"../sparklines/sparklines\";\nimport { CellModel, CellSource } from \"./cellModel\";\nimport { ColumnModel, ColumnHeaderModel, ColumnSource } from \"./columnModel\";\nimport { GroupModel } from \"./groupModel\";\nimport { CommentModel, CommentSource } from \"./commentModel\";\nimport { IterableAxisRange, IterableRange } from \"./iterableRange\";\nimport { NameSource, NamingModel } from \"./namingModel\";\nimport { initOptions, Options, OptionSource } from \"./options\";\nimport { RowModel, RowSource } from \"./rowModel\";\nimport { Style } from \"./style\";\nimport { StyleModel } from \"./styleModel\";\nimport { TableTheme, applyCellTheme, applyColumnTheme, applyRowTheme, applyTheme } from \"./tableTheme\";\nimport { SortingModel } from \"./sortingModel\";\nimport { Merge, Merges } from \"./merges\";\nimport { FilterModel } from \"./filterModel\";\n\n\n/** Source object type for grid */\nexport type GridSource = {\n\t/** grid index with group (readonly) */\n\tindex?: number,\n\t/** sheet name */\n\tname?: string,\n\t/** row array */\n\trows?: RowSource[],\n\t/** column array */\n\tcolumns?: ColumnSource[],\n\t/** cell array */\n\tcells?: CellSource[],\n\t/** grid options */\n\toptions?: OptionSource,\n\t/** sprakline definitions */\n\tsparklines?: SparklineSource[],\n\t/** conditional format definitions */\n\trules?: ConditionalFormatSource,\n\t/** comment array */\n\tcomments?: CommentSource[],\n\t/** style array */\n\tstyles?: Style[],\n\t/** renge names */\n\tnames?: NameSource[],\n\t/** custom properties */\n\tprops?: CustomProperties,\n\t/** tab settings used when grid is within group */\n\ttab?: TabOptions,\n\t/** table theme */\n\ttheme?: TableTheme,\n\t/** additional properties */\n\t[key: string]: unknown\n};\n\nconst DEFAULT_SOURCE_KEYS = [\n\t'index', 'name', 'rows', 'columns', 'cells', 'options', 'sparklines',\n\t'rules', 'comments', 'styles', 'names', 'props', 'tab', 'theme'\n];\n\nexport type Viewport = {\n\trows: RowModel[];\n\tcolumns: ColumnModel[];\n};\n\n/** the lowest and the highest index of the elements (a loop - the arrays may be large) */\nfunction indexBounds(elements: (RowModel|ColumnModel)[]): [number, number] {\n\tlet first = Infinity, last = -Infinity;\n\tfor (const element of elements) {\n\t\tif (element.index < first) first = element.index;\n\t\tif (element.index > last) last = element.index;\n\t}\n\treturn [first, last];\n}\n\nexport class GridModel implements Model<GridSource> {\n\t\n\tindex: number;\n\tname: string;\n\ttab: TabOptions;\n\trows: RowModel[];\n\tvisibleRows: RowModel[];\n\trowRoot: RowModel;\n\tcolRoot: ColumnModel;\n\tcolumns: ColumnModel[];\n\tvisibleColumns: ColumnModel[];\n\tvisibleColumnIndex: Record<number, number>;\n\totherSourceData: Record<string, unknown>;\n\totherModels: Record<string, Set<Model>> = {};\n\tautofitColumns: Set<number> = new Set();\n\tautofitRows: Set<number> = new Set();\n\n\treadonly merges = new Merges(this);\n\treadonly styles = new StyleModel(this);\n\treadonly comments = new CommentModel(this);\n\treadonly calculations = new CalculationModel(this);\n\treadonly names = new NamingModel(this);\n\treadonly sorting = new SortingModel(this);\n\treadonly filter = new FilterModel(this);\n\treadonly sparklines = new Sparklines(this);\n\treadonly conditionalFormats = new ConditionalFormats(this);\n\n\tprivate _mergedHeaders: (Merge & {h: ColumnHeaderModel})[];\n\tget mergedHeaders() { return this._mergedHeaders }\n\t\n\tprivate _filter = false\n\tget hasFilter() { return this._filter }\n\t\n\tprivate _maxRowLevel = 0;\n\tget hasRowTree() { return this._maxRowLevel > 0 }\n\tget hasRowTreeEnabled() { return this.hasRowTree && this.options.rowTree.enabled }\n\tget maxRowLevel() { return this._maxRowLevel }\n\t\n\tprivate _maxColumnLevel = 0;\n\tget hasColumnTree() { return this._maxColumnLevel > 0 }\n\tget hasColumnTreeEnabled() { return this.hasColumnTree && this.options.columnTree.enabled }\n\tget maxColumnLevel() { return this._maxColumnLevel }\n\t\n\tprivate _headerCount = 0;\n\tprivate _headerHeights: number[];\n\tget headerCount() { return this._headerCount }\n\tget columnHeaderCount() { return this.headerCount + (this.hasColumnTreeEnabled ? 1 : 0) + (this.hasFilter ? 1 : 0) }\n\n\tprivate _viewport: Viewport;\n\tprivate _levelBasedRowTree = true;\n\tprivate _levelBasedColTree = true;\n\n\tprotected _properties: CustomProperties;\n\tget properties() { return this._properties }\n\tset properties(v: CustomProperties) { this._properties = v }\n\n\tprotected _theme: TableTheme;\n\tget theme() { return this._theme }\n\tset theme(v: TableTheme) { this._theme = v }\n\n\tpublic readonly logger: log.Logger;\n\tpublic options: Options;\n\n\tget formulasEnabled() { return this.options.formulas !== false }\n\tpublic group: GroupModel;\n\n\tconstructor(source: GridSource, options?: Options, logger?: log.Logger) {\n\t\tthis.logger = logger;\n\t\tthis.options = options ?? initOptions(source.options);\n\t\tthis.populate(source);\n\t}\n\n\tgetConnectedModel(name: string) {\n\t\treturn this.group ? this.group.get(name) : null;\n\t}\n\n\tgetModelByRange(range: CellRange) {\n\t\treturn range.sheet ? this.getConnectedModel(range.sheet) : this;\n\t}\n\n\tgetCellByA1(a1: string) {\n\t\treturn this.getCellByRange(CellRange.fromA1(a1));\n\t}\n\n\tgetCellByRange(r: CellRange) {\n\t\treturn this.getCellByCoords(r.r1, r.c1);\n\t}\n\n\tgetCellByCoords(r: number, c: number) {\n\t\treturn this.rows[r]?.cell(c);\n\t}\n\n\tcell(coord1: string|number|CellRange, coord2?: number) {\n\t\tif (!isNaN(coord1 as number)) return this.getCellByCoords(coord1 as number, coord2 || 0);\n\t\tif (coord1 instanceof CellRange) return this.getCellByRange(coord1);\n\t\tif (typeof coord1 === 'string') return this.getCellByA1(coord1);\n\t\treturn null;\n\t}\n\n\tcreateRows(source: RowSource[], root = new RowModel(this, {l: -1}), indexOffset = 0) : [RowModel, RowModel[], number, boolean] {\n\t\tlet hasRowLevelBasedTree = false;\n\t\tlet hasRowParentBasedTree = false;\n\t\tthis.autofitRows.clear();\n\n\t\tconst rows = source.map((rowSource, r) => {\n\t\t\tif (!rowSource) rowSource = {};\n\t\t\tif (!isNaN(rowSource.l)) hasRowLevelBasedTree = true;\n\t\t\tif (rowSource.p != null) hasRowParentBasedTree = true;\n\t\t\tif (rowSource.h == 'auto') this.autofitRows.add(r);\n\t\t\tconst rowModel = new RowModel(this, rowSource);\n\t\t\trowModel.origIndex = r + indexOffset;\n\t\t\tif (rowModel.name) this.names.set(rowModel.name, CellRange.fullRow(r));\n\t\t\treturn rowModel;\n\t\t});\n\t\t\n\t\tlet maxRowLevel = -1;\n\t\tif (hasRowLevelBasedTree) maxRowLevel = tree.buildLevelBasedTree(rows, root, {\n\t\t\treverse: this.options.rowTree.reversed\n\t\t});\n\t\telse if (hasRowParentBasedTree) maxRowLevel = tree.buildParentBasedTree(rows, root);\n\t\telse root.children = rows;\n\n\t\tif (!hasRowParentBasedTree) hasRowLevelBasedTree = true; // default to level based tree\n\t\treturn [root, rows, maxRowLevel, hasRowLevelBasedTree];\n\t}\n\n\tinsertRowData(parent: RowModel, offset: number, source: RowSource[]) {\n\t\tconst res = this.createRows(source, new RowModel(this, {l: parent.level}), offset);\n\t\tthis._maxRowLevel = Math.max(this._maxRowLevel, res[2]);\n\t\tparent.insertChildren(res[0].children, offset);\n\t\tthis.indexRowsByTree();\n\t\tthis.applyThemeToRows(res[1]);\n\t}\n\n\tapplyTheme(theme: TableTheme, invalidateCellStyles?: boolean) {\n\t\tif (invalidateCellStyles) {\n\t\t\tfor (const cell of this.getInitializedCellIterator()) {\n\t\t\t\tcell.invalidateStyle();\n\t\t\t}\n\t\t}\n\t\tapplyTheme(theme, this);\n\t}\n\n\t/**\n\t * Applies the table theme onto the given rows only - inserted rows or rows\n\t * whose level changed: the row items are matched again and the cell items\n\t * are applied over their cells, whose cached styles are dropped. Does\n\t * nothing without a theme.\n\t */\n\tapplyThemeToRows(rows: RowModel[]) {\n\t\tif (!this.theme || !rows.length) return;\n\t\tconst [first, last] = indexBounds(rows);\n\t\tconst range = new CellRange(0, first, Infinity, last);\n\t\tapplyRowTheme(this.theme, this, rows);\n\t\tapplyCellTheme(this.theme, this, range);\n\t\tthis.invalidateCellStyles(range);\n\t}\n\n\t/** the column counterpart of applyThemeToRows */\n\tapplyThemeToColumns(columns: ColumnModel[]) {\n\t\tif (!this.theme || !columns.length) return;\n\t\tconst [first, last] = indexBounds(columns);\n\t\tconst range = new CellRange(first, 0, last, Infinity);\n\t\tapplyColumnTheme(this.theme, this, columns);\n\t\tapplyCellTheme(this.theme, this, range);\n\t\tthis.invalidateCellStyles(range);\n\t}\n\n\tprivate invalidateCellStyles(range: CellRange) {\n\t\tfor (const cell of new IterableRange(this, range.intersect(this.gridRange), true)) cell.invalidateStyle();\n\t}\n\n\tpopulate(source: GridSource) {\n\t\tthis.index = source.index;\n\t\tthis.name = source.name ?? this.name;\n\t\tthis.tab = source.tab;\n\t\t\n\t\tlet hasColLevelBasedTree = false;\n\t\tlet hasColParentBasedTree = false;\n\n\t\tif (!source.columns) source.columns = new Array(this.options.columns).fill({});\n\t\tif (!source.rows) source.rows = new Array(this.options.rows).fill({});\n\n\t\t// styles\n\t\tif (source.styles) this.styles.populate(source.styles);\n\t\t\n\t\t// columns\n\t\tthis.autofitColumns.clear();\n\t\tthis.columns = source.columns.map((columnSource, c) => {\n\t\t\tif (!columnSource) columnSource = {};\n\t\t\tif (columnSource.l !== 0 && columnSource.l != null) hasColLevelBasedTree = true;\n\t\t\tif (columnSource.p != null) hasColParentBasedTree = true;\n\t\t\tif (columnSource.w == 'auto') this.autofitColumns.add(c);\n\t\t\tconst colModel = new ColumnModel(this, columnSource);\n\t\t\tthis._filter = colModel.hasFilter || this._filter;\n\t\t\tif (colModel.name) this.names.set(colModel.name, CellRange.fullColumn(c));\n\t\t\treturn colModel;\n\t\t});\n \n\t\tthis._levelBasedColTree = hasColLevelBasedTree;\n\t\tthis._maxColumnLevel = -1;\n\t\tthis.colRoot = new ColumnModel(this, {l: -1});\n\t\tif (hasColLevelBasedTree) this._maxColumnLevel = tree.buildLevelBasedTree(this.columns, this.colRoot, {\n\t\t\treverse: this.options.columnTree.reversed\n\t\t});\n\t\telse if (hasColParentBasedTree) this._maxColumnLevel = tree.buildParentBasedTree(this.columns, this.colRoot);\n\t\telse this.colRoot.children = this.columns;\n\t\t\n\t\tif (!hasColParentBasedTree) this._levelBasedColTree = true; // default to level based tree\n\n\t\tthis.indexColumns();\n\t\tthis.indexVisibleColumns();\n\n\t\t// rows\n\t\t[this.rowRoot, this.rows, this._maxRowLevel, this._levelBasedRowTree] = this.createRows(source.rows);\n\t\tthis.indexRows();\n\t\tthis.indexVisibleRows();\n\t\tif (this.options.pageSize && this.options.pageSize <= this.rows.length) this.rowRoot.count = Infinity;\n\n\t\t// cells\n\t\tthis.merges.clear();\n\t\tsource.comments = source.comments || [];\n\t\tsource.cells?.forEach((cellSource, i) => {\n\t\t\tconst cell = this.rows[cellSource.r] ? this.rows[cellSource.r].cell(cellSource.c, cellSource) : null;\n\t\t\tif (!cell) {\n\t\t\t\tthis.logger?.error(`invalid cell definition (index ${i}): ${JSON.stringify(cellSource)}`);\n\t\t\t} else if (cellSource.cs > 1 || cellSource.rs > 1) {\n\t\t\t\tthis.merges.add({r: cell.r, c: cell.c, rs: cellSource.rs || 1, cs: cellSource.cs || 1});\n\t\t\t}\n\n\t\t\tif (cell && cellSource.comment) {\n\t\t\t\tsource.comments.push(Object.assign(cellSource.comment, {c: cellSource.c, r: cellSource.r}));\n\t\t\t}\n\t\t});\n\t\t\n\t\t// sparklines\n\t\tif (source.sparklines) {\n\t\t\ttry {\n\t\t\t\tthis.sparklines.populate(source.sparklines);\n\t\t\t} catch (error) {\n\t\t\t\tlog.getLogger().error(`Sparkline init error: ${error}`);\n\t\t\t}\n\t\t}\n\n\t\t// names\n\t\tif (source.names) {\n\t\t\ttry {\n\t\t\t\tthis.names.populate(source.names);\n\t\t\t} catch (error) {\n\t\t\t\tlog.getLogger().error(`Named range init error: ${error}`);\n\t\t\t}\n\t\t}\n\n\t\t// conditional formats\n\t\tif (source.rules) {\n\t\t\ttry {\n\t\t\t\tthis.conditionalFormats.populate(source.rules);\n\t\t\t} catch (error) {\n\t\t\t\tlog.getLogger().error(`Conditional formats init error: ${error}`);\n\t\t\t}\n\t\t}\n\n\t\t// theme\n\t\tif (source.theme) {\n\t\t\ttry {\n\t\t\t\tthis.applyTheme(source.theme);\n\t\t\t\tthis._theme = source.theme;\n\t\t\t} catch (error) {\n\t\t\t\tlog.getLogger().error(`Theme init error: ${error}`);\n\t\t\t}\n\t\t}\n\t\t\n\t\t// comments\n\t\tif (source.comments) {\n\t\t\ttry {\n\t\t\t\tthis.comments.populate(source.comments);\n\t\t\t} catch (error) {\n\t\t\t\tlog.getLogger().error(`Comment init error: ${error}`);\n\t\t\t}\n\t\t}\n\t\t\n\t\t// custom properties\n\t\tthis._properties = source.props;\n\n\t\t// additional properties\n\t\tthis.otherSourceData = {};\n\t\tconst defaultKeys = new Set(DEFAULT_SOURCE_KEYS);\n\t\tconst keys = Object.keys(source).filter(k => !defaultKeys.has(k));\n\t\tkeys.forEach(k => this.otherSourceData[k] = source[k]);\n\n\t\t// default sort\n\t\tif (this.options.sorting?.defaultSettings) {\n\t\t\tthis.sorting.settings = this.options.sorting.defaultSettings;\n\t\t}\n\n\t\t// default filter\n\t\tif (this.options.filters?.defaultSettings) {\n\t\t\tthis.filter.settings = this.options.filters.defaultSettings;\n\t\t}\n\n\t\tthis.calcHeaderHeights();\n\t}\n\n\tgetSourceData() {\n\t\tconst data = {\n\t\t\tindex: this.index,\n\t\t\tname: this.name,\n\t\t\ttab: this.tab,\n\t\t\tcolumns: this.columns.map(col => col.getSourceData()),\n\t\t\trows: this.rows.map(row => row.getSourceData()),\n\t\t\tstyles: this.styles.getSourceData(),\n\t\t\trules: this.conditionalFormats.getSourceData(),\n\t\t\tsparklines: this.sparklines.getSourceData(),\n\t\t\tnames: this.names.getSourceData(),\n\t\t\toptions: this.options,\n\t\t} as GridSource;\n\n\t\tif (this._properties) data.props = this._properties;\n\n\t\tconst cells = [];\n\t\tlet cellData: CellSource;\n\t\tfor (let r = 0; r < this.rows.length; r++) {\n\t\t\tfor (let c = 0; c < this.columns.length; c++) {\n\t\t\t\tcellData = this.rows[r].cell(c).getSourceData();\n\t\t\t\tif (Object.keys(cellData).length > 0) {\n\t\t\t\t\tcellData.r = r;\n\t\t\t\t\tcellData.c = c;\n\t\t\t\t\tcells.push(cellData);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (cells.length > 0) data.cells = cells;\n\t\t\n\t\tconst styles = [] as Style[];\n\t\tthis.styles.clean();\n\t\tthis.styles.map.forEach(style => styles.push(style));\n\t\tif (styles.length > 0) data.styles = styles;\n\n\t\tconst otherModelKeys = new Set([\n\t\t\t...Object.keys(this.otherModels ?? {}),\n\t\t\t...Object.keys(this.otherSourceData ?? {})\n\t\t]);\n\t\totherModelKeys.forEach(k => data[k] = this.otherModels[k] \n\t\t\t? Array.from(this.otherModels[k]).map(m => m.getSourceData())\n\t\t\t: this.otherSourceData[k]\n\t\t);\n\n\t\treturn data;\n\t}\n\n\tcalcHeaderHeights() {\n\t\tthis._headerCount = 0;\n\t\tthis._headerHeights = [];\n\t\tthis.columns.forEach((column) => {\n\t\t\tthis._headerCount = column.header ? column.header.length : this._headerCount;\n\t\t\tif (this._headerHeights.length < this._headerCount) {\n\t\t\t\tthis._headerHeights.push(...Array(this._headerCount - this._headerHeights.length).fill(0));\n\t\t\t}\n\n\t\t\tcolumn.header?.forEach((h: ColumnHeaderModel, r) => {\n\t\t\t\tif (r >= this._headerHeights.length) {\n\t\t\t\t\tthis._headerHeights.push(0);\n\t\t\t\t}\n\t\t\t\tthis._headerHeights[r] = Math.max(this._headerHeights[r], h.height ?? 0);\n\t\t\t});\n\t\t});\n\t}\n\n\tindexRows() {\n\t\tthis.visibleRows = [];\n\t\tthis.rows.forEach((row, r) => {\n\t\t\trow.index = r;\n\t\t\tif (!row.isLoaded) row.collapsed = true;\n\t\t\tif (!row.hidden && row.filterState != tree.FilterState.Filtered) {\n\t\t\t\trow.visibleIndex = this.visibleRows.length;\n\t\t\t\tthis.visibleRows.push(row);\n\t\t\t}\n\t\t});\n\t}\n\n\tindexVisibleRows() {\n\t\tthis.visibleRows = [];\n\t\tlet r = 0;\n\t\tif (this._levelBasedRowTree) {\n\t\t\tthis.rowRoot.walkVisible((node: RowModel) => {\n\t\t\t\tnode.visibleIndex = r++;\n\t\t\t\tthis.visibleRows.push(node)\n\t\t\t});\n\n\t\t\t// reverse order of row index\n\t\t\tif (this.options.rowTree.reversed) {\n\t\t\t\tconst reversedVisibleRows = new Array(this.visibleRows.length);\n\t\t\t\tthis.visibleRows.forEach((row, i) => {\n\t\t\t\t\tr = this.visibleRows.length - i - 1;\n\t\t\t\t\trow.visibleIndex = r;\n\t\t\t\t\treversedVisibleRows[r] = row;\n\t\t\t\t});\n\t\t\t\tthis.visibleRows = reversedVisibleRows;\n\t\t\t}\n\t\t} else {\n\t\t\t// in parent based node rows do not have to respect tree order\n\t\t\tthis.rowRoot.walkVisible((node: RowModel) => this.visibleRows[node.index] = node);\n\t\t\tthis.visibleRows = this.visibleRows.filter(row => {\n\t\t\t\tif (row) {\n\t\t\t\t\trow.visibleIndex = r++;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t}\n\t}\n\n\tindexRowsByTree() {\n\t\tthis.rows = [];\n\t\tlet r = 0;\n\t\tthis.rowRoot.walk((row: RowModel) => {\n\t\t\trow.index = r++;\n\t\t\tthis.rows.push(row);\n\t\t});\n\t\tif (this.options.rowTree.reversed) this.rows.reverse();\n\t\tthis.indexVisibleRows();\n\t}\n\n\tindexColumns() {\n\t\tthis.visibleColumns = [];\n\t\tthis.columns.forEach((column, c) => {\n\t\t\tcolumn.index = c;\n\t\t\tif (!column.hidden) this.visibleColumns.push(column);\n\t\t});\n\t}\n\n\tindexVisibleColumns() {\n\t\tthis.visibleColumns = [];\n\t\tthis.visibleColumnIndex = {};\n\t\tlet c = 0;\n\t\tthis.colRoot.walkVisible((node: ColumnModel) => {\n\t\t\tnode.visibleIndex = c;\n\t\t\tthis.visibleColumnIndex[node.index] = c++;\n\t\t\tthis.visibleColumns.push(node);\n\t\t});\n\n\t\t// reverse order of column index\n\t\tif (this.options.columnTree.reversed) {\n\t\t\tthis.visibleColumnIndex = {};\n\t\t\tconst reversedVisibleColumns = new Array(this.visibleColumns.length);\n\t\t\tthis.visibleColumns.forEach((column, i) => {\n\t\t\t\tc = this.visibleColumns.length - i - 1;\n\t\t\t\tcolumn.visibleIndex = c;\n\t\t\t\tthis.visibleColumnIndex[column.index] = c;\n\t\t\t\treversedVisibleColumns[c] = column;\n\t\t\t});\n\t\t\tthis.visibleColumns = reversedVisibleColumns;\n\t\t}\n\n\t\tthis.indexHeaders();\n\t}\n\n\tindexHeaders() {\n\t\tthis._mergedHeaders = [];\n\t\tthis._headerCount = 0;\n\t\tthis.colRoot.walkVisible((column: ColumnModel) => {\n\t\t\tthis._headerCount = Math.max(column.header ? column.header.length : 0, this._headerCount);\n\t\t\tcolumn.mergedHeaders.forEach(h => this._mergedHeaders.push({\n\t\t\t\th: h,\n\t\t\t\tc: column.index,\n\t\t\t\tr: h.r,\n\t\t\t\tcs: column.calculateRealColspan(h.cs ?? 1),\n\t\t\t\trs: h.rs ?? 1\n\t\t\t}));\n\t\t});\n\n\t\t// hidden header cells\n\t\tthis._mergedHeaders.forEach(h => {\n\t\t\tif (h.h.hidden) return;\n\t\t\t\n\t\t\tfor (let c = h.c; c < h.c + h.cs; c++) {\n\t\t\t\tfor (let r = h.r; r < h.r + h.rs; r++) {\n\t\t\t\t\tif ((r > h.r || c > h.c) && this.columns[c] && this.columns[c].header[r]) {\n\t\t\t\t\t\tthis.columns[c].header[r].hidden = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis.calcHeaderHeights();\n\t}\n\n\tremoveHeader(r: number) {\n\t\tthis.columns.forEach(column => {\n\t\t\tif (r < column.header.length) column.header.splice(r, 1);\n\t\t});\n\t\tthis.indexHeaders();\n\t}\n\n\tclearRows = () : RowModel[] => {\n\t\tthis.rowRoot.clearChildren();\n\t\tthis.rows = [];\n\t\treturn this.rows;\n\t}\n\t\n\tclearColumns = () : ColumnModel[] => this.columns = [];\n\n\tclear() {\n\t\tthis.clearRows();\n\t\tthis.clearColumns();\n\t\tthis.resetViewport();\n\t}\n\n\tresetViewport() {\n\t\tthis._viewport = null;\n\t\treturn this;\n\t}\n\n\tgetViewport(\n\t\toffset: {c: number, r: number}, \n\t\tviewportSize: {w: number, h: number}, \n\t\tfreeze: {t: number, l: number, b: number, r: number},\n\t) : Viewport {\n\t\tconst viewportRows: RowModel[] = [];\n\t\tconst viewportColumns: ColumnModel[] = [];\n\n\t\tlet row: RowModel;\n\t\tlet remainingHeight = viewportSize.h;\n\t\tlet r = 0;\n\t\t// top rows\n\t\tfor (r = 0; r < freeze.t; r++) {\n\t\t\trow = this.visibleRows[r];\n\t\t\tremainingHeight -= row.height;\n\t\t\tviewportRows.push(row);\n\t\t}\n\n\t\t// bottom rows\n\t\tfor (r = this.visibleRows.length - freeze.b; r < this.visibleRows.length; r++) {\n\t\t\trow = this.visibleRows[r];\n\t\t\tremainingHeight -= row.height;\n\t\t}\n\n\t\t// center rows\n\t\tr = freeze.t + offset.r;\n\t\twhile (remainingHeight > 0 && r < this.visibleRows.length) {\n\t\t\trow = this.visibleRows[r++];\n\t\t\tremainingHeight -= row.height;\n\t\t\tviewportRows.push(row);\n\t\t}\n\n\t\t// bottom rows again\n\t\tfor (r = this.visibleRows.length - freeze.b; r < this.visibleRows.length; r++) {\n\t\t\tviewportRows.push(this.visibleRows[r]);\n\t\t}\n\n\t\tlet column: ColumnModel;\n\t\tlet remainingWidth = viewportSize.w;\n\t\tlet c = 0;\n\n\t\t// left columns\n\t\tfor (c = 0; c < freeze.l; c++) {\n\t\t\tcolumn = this.visibleColumns[c];\n\t\t\tremainingWidth -= column.width;\n\t\t\tviewportColumns.push(column);\n\t\t}\n\n\t\t// right columns\n\t\tfor (c = this.visibleColumns.length - freeze.r; c < this.visibleColumns.length; c++) {\n\t\t\tcolumn = this.visibleColumns[c];\n\t\t\tremainingWidth -= column.width;\n\t\t}\n\n\t\t// center columns\n\t\tc = freeze.l + offset.c;\n\t\twhile (remainingWidth > 0 && c < this.visibleColumns.length) {\n\t\t\tcolumn = this.visibleColumns[c++];\n\t\t\tremainingWidth -= column.width;\n\t\t\tviewportColumns.push(column);\n\t\t}\n\n\t\t// right columns again\n\t\tfor (c = this.visibleColumns.length - freeze.r; c < this.visibleColumns.length; c++) {\n\t\t\tviewportColumns.push(this.visibleColumns[c]);\n\t\t}\n\n\t\treturn (this._viewport = {rows: viewportRows, columns: viewportColumns});\n\t}\n\n\tcalculateViewport() {\n\t\treturn this._viewport ? this.calculations.calculateViewport(this._viewport) : [];\n\t}\n\n\tgetValuesInRange(range: CellRange, formattedValues = false) {\n\t\trange = range.intersect(this.gridRange);\n\t\tif (!range) return [];\n\t\tconst {columns, rows} = range.size;\n\t\tconst values: Matrix<unknown> = new Array(rows);\n\t\tlet i = 0, j = 0;\n\t\tlet row: RowModel;\n\t\tfor (let r = range.r1; r <= range.r2; r++) {\n\t\t\tvalues[i] = new Array(columns);\n\t\t\tj = 0;\n\t\t\trow = this.rows[r];\n\t\t\tfor (let c = range.c1; c <= range.c2; c++) {\n\t\t\t\tvalues[i][j++] = formattedValues ? row.cell(c).formattedValue : row.cell(c).value;\n\t\t\t}\n\t\t\t++i;\n\t\t}\n\n\t\treturn values;\n\t}\n\n\tsetRowExpandLevel(level: number) {\n\t\tthis.rows.forEach(row => {\n\t\t\trow.collapsed = (!row.isLoaded && !row.isPartialyLoaded) || row.level >= level;\n\t\t\tif (row.level <= level) row.hidden = false; // remove hidden flag for visible rows\n\t\t});\n\t\tthis.indexVisibleRows();\n\t}\n\t\n\tsetColumnExpandLevel(level: number) {\n\t\tthis.columns.forEach(column => column.collapsed = column.level >= level);\n\t\tthis.indexVisibleColumns();\n\t}\n\n\tgetViewportRange() {\n\t\treturn this._viewport && this._viewport.columns.length && this._viewport.rows.length ? new CellRange(\n\t\t\tthis._viewport.columns[0].index,\n\t\t\tthis._viewport.rows[0].index,\n\t\t\tthis._viewport.columns[this._viewport.columns.length - 1].index,\n\t\t\tthis._viewport.rows[this._viewport.rows.length - 1].index,\n\t\t) : null;\n\t}\n\n\tget gridRange() {\n\t\treturn new CellRange(0, 0, this.columns.length - 1, this.rows.length - 1);\n\t}\n\n\tgetRangeIterator(range: CellRange, withinViewport = false) {\n\t\tconst clip = withinViewport && this._viewport ? this.getViewportRange() : this.gridRange;\n\t\treturn new IterableRange(this, clip && range.intersect(clip));\n\t}\n\n\tgetInitializedCellIterator() {\n\t\treturn new IterableRange(this, this.gridRange, true);\n\t}\n\n\tgetRowIterator(range: CellRange, withinViewport = false) {\n\t\tconst clip = withinViewport && this._viewport ? this.getViewportRange() : this.gridRange;\n\t\treturn new IterableAxisRange<RowModel>(this, clip && range.intersect(clip), 'rows');\n\t}\n\n\tgetColumnIterator(range: CellRange, withinViewport = false) {\n\t\tconst clip = withinViewport && this._viewport ? this.getViewportRange() : this.gridRange;\n\t\treturn new IterableAxisRange<ColumnModel>(this, clip && range.intersect(clip), 'columns');\n\t}\n\n\tgetCellArray(range: CellRange) {\n\t\tconst cells: CellModel[] = [];\n\t\tfor (const cell of this.getRangeIterator(range)) {\n\t\t\tcells.push(cell);\n\t\t}\n\t\treturn cells;\n\t}\n\n\ttransformRangeToMatrix<T>(range: CellRange, transform: (cell: CellModel) => T): Matrix<T> {\n\t\tlet row: RowModel, cell: CellModel, rowValues: T[];\n\t\trange = range.intersect(this.gridRange);\n\t\tconst cells: Matrix<T> = [];\n\t\tfor (let r = range.r1; r <= range.r2; r++) {\n\t\t\trow = this.rows[r];\n\t\t\tif (!row) continue;\n\t\t\trowValues = [];\n\t\t\tfor (let c = range.c1; c <= range.c2; c++) {\n\t\t\t\tcell = row.cell(c);\n\t\t\t\tif (cell) rowValues.push(transform(cell));\n\t\t\t}\t\n\t\t\tcells.push(rowValues);\n\t\t}\n\t\treturn cells;\n\t}\n\n\tgetCellMatrix(range: CellRange) {\n\t\treturn this.getModelByRange(range)?.transformRangeToMatrix(range, c => c);\n\t}\n\n\tgetValueMatrix(range: CellRange) {\n\t\treturn this.getModelByRange(range)?.transformRangeToMatrix(range, c => c.value);\n\t}\n\n\tshift(options: ShiftOptions) {\n\t\toptions.sheet = this.name;\n\t\tthis.merges.shift(options);\n\t\tthis.calculations.shift(options);\n\t\tthis.names.shift(options);\n\t\tthis.comments.shift(options);\n\t\tthis.sparklines.shift(options);\n\t}\n\n\tclearCalculations(all = false) {\n\t\tif (all && this.group) this.group.models.forEach(m => m.calculations.refresh());\n\t\telse this.calculations.refresh();\n\t}\n\n\trefreshSparklines() {\n\t\tthis.sparklines.updateRangeMaps();\n\t\tfor (const cell of this.getInitializedCellIterator()) {\n\t\t\tcell.invalidateStyle();\n\t\t}\n\t}\n\n\tclearCalculatedStyles() {\n\t\tthis.conditionalFormats.refresh();\n\t\tconst cells = [] as CellModel[];\n\t\tfor (const cell of this.getInitializedCellIterator()) {\n\t\t\tcells.push(cell);\n\t\t\tcell.invalidateStyle();\n\t\t}\n\t}\n\n\tinsertColumns(index: number, count: number, after = false) {\n\t\tconst parent = this.columns[Math.min(this.columns.length - 1, index)].parent;\n\t\tif (after) ++index;\n\t\tthis.shift({index: index, offset: count, direction: 'right'});\n\t\tfor (let r = 0; r < this.rows.length; r++) this.rows[r].insertColumns(index, count, false);\n\t\tconst newColumns = (new Array(count)).fill(null).map(() => new ColumnModel(this));\n\t\tthis.columns.splice(index, 0, ...newColumns);\n\t\tif (this.maxColumnLevel > 0) parent.insertChildren(newColumns, index - (parent.index || -1) - 1);\n\t\tthis.indexColumns();\n\t\tthis.applyThemeToColumns(newColumns);\n\t\tthis.clearCalculations(true);\n\t\treturn newColumns;\n\t}\n\n\tdeleteColumns(index: number, count: number) {\n\t\tconst parent = this.columns[index].parent;\n\t\tthis.shift({index: index, offset: count, direction: 'left'});\n\t\tconst deletedCells: CellModel[][] = [];\n\t\tfor (let r = 0; r < this.rows.length; r++)\n\t\t\tdeletedCells.push(this.rows[r].deleteColumns(index, count, false));\n\t\t// const deletedColumns: [ColumnModel, CellModel[]][] = this.columns.splice(index, count)\n\t\t// \t.map((column, i) => [column, deletedCells[i]]);\n\t\tconst deletedColumns = this.columns.splice(index, count);\n\t\tparent?.deleteChildren(deletedColumns);\n\t\tthis.indexColumns();\n\t\tthis.clearCalculations(true);\n\t\treturn deletedColumns;\n\t}\n\n\tinsertRows(index: number, rows: number|RowModel[], after = false) {\n\t\tconst parentIndex = Math.min(this.rows.length - 1, index);\n\t\tconst parent = parentIndex < 0 ? this.rowRoot : this.rows[parentIndex].parent;\n\t\tif (after) ++index;\n\t\tconst count = isNaN(rows as number) ? (rows as RowModel[]).length : rows as number;\n\t\tthis.shift({index: index, offset: count, direction: 'down'});\n\t\tconst newRows = isNaN(rows as number) ? (rows as RowModel[]) : (new Array(count)).fill(null).map(() => new RowModel(this));\n\t\tthis.rows.splice(index, 0, ...newRows);\n\t\tif (this.maxRowLevel > 0) parent.insertChildren(newRows, index - (parent.index || -1) - 1);\n\t\tthis.indexRows();\n\t\tthis.applyThemeToRows(newRows);\n\t\tthis.clearCalculations(true);\n\t\treturn newRows;\n\t}\n\n\tdeleteRows(index: number, count: number) {\n\t\tconst parent = this.rows[index].parent;\n\t\tthis.shift({index: index, offset: count, direction: 'up'});\n\t\tconst deletedRows = this.rows.splice(index, count);\n\t\tparent?.deleteChildren(deletedRows);\n\t\tthis.indexRows();\n\t\tthis.clearCalculations(true);\n\t\treturn deletedRows;\n\t}\n\n\tmoveRows(index: number, count: number, targetIndex: number) {\n\t\tconst movingRows = this.rows.splice(index, count);\n\t\tthis.rows.splice(targetIndex, 0, ...movingRows);\n\t\tthis.shift({index: index, offset: targetIndex - index, direction: 'down', maxIndex: index + count - 1});\n\t\tthis.indexRows();\n\t\tthis.clearCalculations(true);\n\t\treturn movingRows;\n\t}\n\n\tmoveColumns(index: number, count: number, targetIndex: number) {\n\t\tconst movingColumns = this.columns.splice(index, count);\n\t\tthis.columns.splice(targetIndex, 0, ...movingColumns);\n\t\tthis.shift({index: index, offset: targetIndex - index, direction: 'right', maxIndex: index + count - 1});\n\t\tthis.indexColumns();\n\t\tthis.clearCalculations(true);\n\t\treturn movingColumns;\n\t}\n\n\tspillValues(opt: SpillOptions): SpillResult {\n\t\tconst {cell, values, displayValues, propertyCell} = opt;\n\t\tconst cells: CellModel[] = [];\n\t\tconst oldValues: CellValueType[] = [];\n\t\tconst empty = values.length === 0 || values[0].length === 0;\n\t\tlet row: RowModel, spillCell: CellModel;\n\n\t\tconst range = empty ? null : new CellRange(\n\t\t\tcell.c, cell.r,\n\t\t\tcell.c + values[0].length - 1,\n\t\t\tcell.r + values.length - 1\n\t\t)\n\n\t\tif (cell.spillRange) {\n\t\t\t// clear values from previous evaluations not contained in the new spill range\n\t\t\tthis.getRangeIterator(cell.spillRange, true).forEach(c => {\n\t\t\t\tif (cell != c && !range?.contains(c.range)) c.clearSpilledValue();\n\t\t\t});\n\t\t}\n\n\t\tcell.spillRange = range;\n\t\tif (empty) return {cells, oldValues, range: null};\n\n\t\tfor (let r = range.r1; r <= range.r2; r++) {\n\t\t\trow = this.rows[r];\n\t\t\tif (!row) continue;\n\t\t\tconst r2 = r - range.r1;\n\t\t\tfor (let c = range.c1; c <= range.c2; c++) {\n\t\t\t\tconst c2 = c - range.c1;\n\t\t\t\tspillCell = row.cell(c);\n\t\t\t\tif (spillCell.editable) {\n\t\t\t\t\toldValues.push(spillCell.value2 as CellValueType);\n\t\t\t\t\tspillCell.spillValue(values[r2][c2], cell);\n\t\t\t\t\tif (propertyCell) {\n\t\t\t\t\t\tspillCell.format = propertyCell.format;\n\t\t\t\t\t\tspillCell.type = propertyCell.type;\n\t\t\t\t\t}\n\t\t\t\t\tif (displayValues && displayValues[r2][c2] != null) spillCell.displayValue = displayValues[r2][c2];\n\t\t\t\t\tcells.push(spillCell);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn {cells, oldValues, range};\n\t}\n\n\tgetCellByName(name: string, contextRange: CellRange, searchGroup = true): CellModel {\n\t\tconst cell = this.names.getCellByName(name, contextRange);\n\t\tif (cell) return cell;\n\t\telse if (this.group && searchGroup) return this.group.getCellByName(name, contextRange);\n\t\treturn null;\n\t}\n\n\tgetRangeByName(name: string, searchGroup = true): CellRange {\n\t\tconst range = this.names.getRangeByName(name);\n\t\tif (range) return range;\n\t\telse if (this.group && searchGroup) return this.group.getRangeByName(name);\n\t\treturn null;\n\t}\n\n\tgetValueMatrixByName(name: string, searchGroup = true): Matrix<unknown> {\n\t\tconst matrix = this.names.getRangeByName(name);\n\t\tif (matrix) return this.getValueMatrix(matrix);\n\t\telse if (this.group && searchGroup) return this.group.getValueMatrixByName(name);\n\t\treturn null;\n\t}\n\n\trebuildRowTree() {\n\t\tconst buildFunction = this._levelBasedRowTree ? tree.buildLevelBasedTree : tree.buildParentBasedTree;\n\t\tthis._maxRowLevel = buildFunction(this.rows, this.rowRoot, {\n\t\t\treverse: this.options.rowTree.reversed\n\t\t});\n\t\tthis.indexRowsByTree();\n\t}\n\n\trebuildColumnTree() {\n\t\tconst buildFunction = this._levelBasedColTree ? tree.buildLevelBasedTree : tree.buildParentBasedTree;\n\t\tthis._maxColumnLevel = buildFunction(this.columns, this.colRoot, {\n\t\t\treverse: this.options.columnTree.reversed\n\t\t});\n\t\tthis.indexColumns();\n\t}\n\n\tcalculateCellOffset(cell: CellRange) : Location {\n\t\tlet x = 0, y = 0;\n\t\tfor (let c = 0; c < cell.c1; c++) {\n\t\t\tif (!this.columns[c]) break;\n\t\t\tx += this.columns[c].width;\n\t\t}\n\t\tfor (let r = 0; r < cell.r1; r++) {\n\t\t\tif (!this.rows[r]) break;\n\t\t\ty += this.rows[r].height;\n\t\t}\n\t\treturn { x, y };\n\t}\n\n}"]}
1
+ {"version":3,"file":"gridModel.js","sourceRoot":"","sources":["../../src/model/gridModel.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, tree, CustomProperties, Location, Model } from \"@omegagrid/core\";\nimport { log } from \"@omegagrid/core\";\nimport { CellValueType, ShiftOptions, SpillOptions, SpillResult, TabOptions } from \"../types\";\nimport { CalculationModel } from \"./calculationModel\";\nimport { CellRange } from \"../common/range\";\nimport { ConditionalFormats, ConditionalFormatSource } from \"./conditionalFormats\";\nimport { Sparklines, SparklineSource } from \"../sparklines/sparklines\";\nimport { CellModel, CellSource } from \"./cellModel\";\nimport { ColumnModel, ColumnHeaderModel, ColumnSource } from \"./columnModel\";\nimport { GroupModel } from \"./groupModel\";\nimport { CommentModel, CommentSource } from \"./commentModel\";\nimport { IterableAxisRange, IterableRange } from \"./iterableRange\";\nimport { NameSource, NamingModel } from \"./namingModel\";\nimport { initOptions, Options, OptionSource } from \"./options\";\nimport { RowModel, RowSource } from \"./rowModel\";\nimport { Style } from \"./style\";\nimport { StyleModel } from \"./styleModel\";\nimport { TableTheme, applyCellTheme, applyColumnTheme, applyRowTheme, applyTheme } from \"./tableTheme\";\nimport { SortingModel } from \"./sortingModel\";\nimport { Merge, Merges } from \"./merges\";\nimport { FilterModel } from \"./filterModel\";\n\n\n/** Source object type for grid */\nexport type GridSource = {\n\t/** grid index with group (readonly) */\n\tindex?: number,\n\t/** sheet name */\n\tname?: string,\n\t/** row array */\n\trows?: RowSource[],\n\t/** column array */\n\tcolumns?: ColumnSource[],\n\t/** cell array */\n\tcells?: CellSource[],\n\t/** grid options */\n\toptions?: OptionSource,\n\t/** sprakline definitions */\n\tsparklines?: SparklineSource[],\n\t/** conditional format definitions */\n\trules?: ConditionalFormatSource,\n\t/** comment array */\n\tcomments?: CommentSource[],\n\t/** style array */\n\tstyles?: Style[],\n\t/** renge names */\n\tnames?: NameSource[],\n\t/** custom properties */\n\tprops?: CustomProperties,\n\t/** tab settings used when grid is within group */\n\ttab?: TabOptions,\n\t/** table theme */\n\ttheme?: TableTheme,\n\t/** additional properties */\n\t[key: string]: unknown\n};\n\nconst DEFAULT_SOURCE_KEYS = [\n\t'index', 'name', 'rows', 'columns', 'cells', 'options', 'sparklines',\n\t'rules', 'comments', 'styles', 'names', 'props', 'tab', 'theme'\n];\n\nexport type Viewport = {\n\trows: RowModel[];\n\tcolumns: ColumnModel[];\n};\n\n/** the lowest and the highest index of the elements (a loop - the arrays may be large) */\nfunction indexBounds(elements: (RowModel|ColumnModel)[]): [number, number] {\n\tlet first = Infinity, last = -Infinity;\n\tfor (const element of elements) {\n\t\tif (element.index < first) first = element.index;\n\t\tif (element.index > last) last = element.index;\n\t}\n\treturn [first, last];\n}\n\nexport class GridModel implements Model<GridSource> {\n\t\n\tindex: number;\n\tname: string;\n\ttab: TabOptions;\n\trows: RowModel[];\n\tvisibleRows: RowModel[];\n\trowRoot: RowModel;\n\tcolRoot: ColumnModel;\n\tcolumns: ColumnModel[];\n\tvisibleColumns: ColumnModel[];\n\tvisibleColumnIndex: Record<number, number>;\n\totherSourceData: Record<string, unknown>;\n\totherModels: Record<string, Set<Model>> = {};\n\tautofitColumns: Set<number> = new Set();\n\tautofitRows: Set<number> = new Set();\n\n\treadonly merges = new Merges(this);\n\treadonly styles = new StyleModel(this);\n\treadonly comments = new CommentModel(this);\n\treadonly calculations = new CalculationModel(this);\n\treadonly names = new NamingModel(this);\n\treadonly sorting = new SortingModel(this);\n\treadonly filter = new FilterModel(this);\n\treadonly sparklines = new Sparklines(this);\n\treadonly conditionalFormats = new ConditionalFormats(this);\n\n\tprivate _mergedHeaders: (Merge & {h: ColumnHeaderModel})[];\n\tget mergedHeaders() { return this._mergedHeaders }\n\t\n\tprivate _filter = false\n\tget hasFilter() { return this._filter }\n\t\n\tprivate _maxRowLevel = 0;\n\tget hasRowTree() { return this._maxRowLevel > 0 }\n\tget hasRowTreeEnabled() { return this.hasRowTree && this.options.rowTree.enabled }\n\tget maxRowLevel() { return this._maxRowLevel }\n\t\n\tprivate _maxColumnLevel = 0;\n\tget hasColumnTree() { return this._maxColumnLevel > 0 }\n\tget hasColumnTreeEnabled() { return this.hasColumnTree && this.options.columnTree.enabled }\n\tget maxColumnLevel() { return this._maxColumnLevel }\n\t\n\tprivate _headerCount = 0;\n\tprivate _headerHeights: number[];\n\tget headerCount() { return this._headerCount }\n\tget columnHeaderCount() { return this.headerCount + (this.hasColumnTreeEnabled ? 1 : 0) + (this.hasFilter ? 1 : 0) }\n\n\tprivate _viewport: Viewport;\n\tprivate _levelBasedRowTree = true;\n\tprivate _levelBasedColTree = true;\n\n\tprotected _properties: CustomProperties;\n\tget properties() { return this._properties }\n\tset properties(v: CustomProperties) { this._properties = v }\n\n\tprotected _theme: TableTheme;\n\tget theme() { return this._theme }\n\tset theme(v: TableTheme) { this._theme = v }\n\n\tpublic readonly logger: log.Logger;\n\tpublic options: Options;\n\n\tget formulasEnabled() { return this.options.formulas !== false }\n\tpublic group: GroupModel;\n\n\tconstructor(source: GridSource, options?: Options, logger?: log.Logger) {\n\t\tthis.logger = logger;\n\t\tthis.options = options ?? initOptions(source.options);\n\t\tthis.populate(source);\n\t}\n\n\tgetConnectedModel(name: string) {\n\t\treturn this.group ? this.group.get(name) : null;\n\t}\n\n\tgetModelByRange(range: CellRange) {\n\t\treturn range.sheet ? this.getConnectedModel(range.sheet) : this;\n\t}\n\n\tgetCellByA1(a1: string) {\n\t\treturn this.getCellByRange(CellRange.fromA1(a1));\n\t}\n\n\tgetCellByRange(r: CellRange) {\n\t\treturn this.getCellByCoords(r.r1, r.c1);\n\t}\n\n\tgetCellByCoords(r: number, c: number) {\n\t\treturn this.rows[r]?.cell(c);\n\t}\n\n\tcell(coord1: string|number|CellRange, coord2?: number) {\n\t\tif (!isNaN(coord1 as number)) return this.getCellByCoords(coord1 as number, coord2 || 0);\n\t\tif (coord1 instanceof CellRange) return this.getCellByRange(coord1);\n\t\tif (typeof coord1 === 'string') return this.getCellByA1(coord1);\n\t\treturn null;\n\t}\n\n\tcreateRows(source: RowSource[], root = new RowModel(this, {l: -1}), indexOffset = 0) : [RowModel, RowModel[], number, boolean] {\n\t\tlet hasRowLevelBasedTree = false;\n\t\tlet hasRowParentBasedTree = false;\n\t\tthis.autofitRows.clear();\n\n\t\tconst rows = source.map((rowSource, r) => {\n\t\t\tif (!rowSource) rowSource = {};\n\t\t\tif (!isNaN(rowSource.l)) hasRowLevelBasedTree = true;\n\t\t\tif (rowSource.p != null) hasRowParentBasedTree = true;\n\t\t\tif (rowSource.h == 'auto') this.autofitRows.add(r);\n\t\t\tconst rowModel = new RowModel(this, rowSource);\n\t\t\trowModel.origIndex = r + indexOffset;\n\t\t\tif (rowModel.name) this.names.set(rowModel.name, CellRange.fullRow(r));\n\t\t\treturn rowModel;\n\t\t});\n\t\t\n\t\tlet maxRowLevel = -1;\n\t\tif (hasRowLevelBasedTree) maxRowLevel = tree.buildLevelBasedTree(rows, root, {\n\t\t\treverse: this.options.rowTree.reversed\n\t\t});\n\t\telse if (hasRowParentBasedTree) maxRowLevel = tree.buildParentBasedTree(rows, root);\n\t\telse root.children = rows;\n\n\t\tif (!hasRowParentBasedTree) hasRowLevelBasedTree = true; // default to level based tree\n\t\treturn [root, rows, maxRowLevel, hasRowLevelBasedTree];\n\t}\n\n\tinsertRowData(parent: RowModel, offset: number, source: RowSource[]) {\n\t\tconst res = this.createRows(source, new RowModel(this, {l: parent.level}), offset);\n\t\tthis._maxRowLevel = Math.max(this._maxRowLevel, res[2]);\n\t\tparent.insertChildren(res[0].children, offset);\n\t\tthis.indexRowsByTree();\n\t\tthis.applyThemeToRows(res[1]);\n\t}\n\n\tapplyTheme(theme: TableTheme, invalidateCellStyles?: boolean) {\n\t\tif (invalidateCellStyles) {\n\t\t\tfor (const cell of this.getInitializedCellIterator()) {\n\t\t\t\tcell.invalidateStyle();\n\t\t\t}\n\t\t}\n\t\tapplyTheme(theme, this);\n\t}\n\n\t/**\n\t * Applies the table theme onto the given rows only - inserted rows or rows\n\t * whose level changed: the row items are matched again and the cell items\n\t * are applied over their cells, whose cached styles are dropped. Does\n\t * nothing without a theme.\n\t */\n\tapplyThemeToRows(rows: RowModel[]) {\n\t\tif (!this.theme || !rows.length) return;\n\t\tconst [first, last] = indexBounds(rows);\n\t\tconst range = new CellRange(0, first, Infinity, last);\n\t\tapplyRowTheme(this.theme, this, rows);\n\t\tapplyCellTheme(this.theme, this, range);\n\t\tthis.invalidateCellStyles(range);\n\t}\n\n\t/** the column counterpart of applyThemeToRows */\n\tapplyThemeToColumns(columns: ColumnModel[]) {\n\t\tif (!this.theme || !columns.length) return;\n\t\tconst [first, last] = indexBounds(columns);\n\t\tconst range = new CellRange(first, 0, last, Infinity);\n\t\tapplyColumnTheme(this.theme, this, columns);\n\t\tapplyCellTheme(this.theme, this, range);\n\t\tthis.invalidateCellStyles(range);\n\t}\n\n\tprivate invalidateCellStyles(range: CellRange) {\n\t\tfor (const cell of new IterableRange(this, range.intersect(this.gridRange), true)) cell.invalidateStyle();\n\t}\n\n\tpopulate(source: GridSource) {\n\t\tthis.index = source.index;\n\t\tthis.name = source.name ?? this.name;\n\t\tthis.tab = source.tab;\n\t\t\n\t\tlet hasColLevelBasedTree = false;\n\t\tlet hasColParentBasedTree = false;\n\n\t\tif (!source.columns) source.columns = new Array(this.options.columns).fill({});\n\t\tif (!source.rows) source.rows = new Array(this.options.rows).fill({});\n\n\t\t// styles\n\t\tif (source.styles) this.styles.populate(source.styles);\n\t\t\n\t\t// columns\n\t\tthis.autofitColumns.clear();\n\t\tthis.columns = source.columns.map((columnSource, c) => {\n\t\t\tif (!columnSource) columnSource = {};\n\t\t\tif (columnSource.l !== 0 && columnSource.l != null) hasColLevelBasedTree = true;\n\t\t\tif (columnSource.p != null) hasColParentBasedTree = true;\n\t\t\tif (columnSource.w == 'auto') this.autofitColumns.add(c);\n\t\t\tconst colModel = new ColumnModel(this, columnSource);\n\t\t\tthis._filter = colModel.hasFilter || this._filter;\n\t\t\tif (colModel.name) this.names.set(colModel.name, CellRange.fullColumn(c));\n\t\t\treturn colModel;\n\t\t});\n \n\t\tthis._levelBasedColTree = hasColLevelBasedTree;\n\t\tthis._maxColumnLevel = -1;\n\t\tthis.colRoot = new ColumnModel(this, {l: -1});\n\t\tif (hasColLevelBasedTree) this._maxColumnLevel = tree.buildLevelBasedTree(this.columns, this.colRoot, {\n\t\t\treverse: this.options.columnTree.reversed\n\t\t});\n\t\telse if (hasColParentBasedTree) this._maxColumnLevel = tree.buildParentBasedTree(this.columns, this.colRoot);\n\t\telse this.colRoot.children = this.columns;\n\t\t\n\t\tif (!hasColParentBasedTree) this._levelBasedColTree = true; // default to level based tree\n\n\t\tthis.indexColumns();\n\t\tthis.indexVisibleColumns();\n\n\t\t// rows\n\t\t[this.rowRoot, this.rows, this._maxRowLevel, this._levelBasedRowTree] = this.createRows(source.rows);\n\t\tthis.indexRows();\n\t\tthis.indexVisibleRows();\n\t\tif (this.options.pageSize && this.options.pageSize <= this.rows.length) this.rowRoot.count = Infinity;\n\n\t\t// cells\n\t\tthis.merges.clear();\n\t\tsource.comments = source.comments || [];\n\t\tsource.cells?.forEach((cellSource, i) => {\n\t\t\tconst cell = this.rows[cellSource.r] ? this.rows[cellSource.r].cell(cellSource.c, cellSource) : null;\n\t\t\tif (!cell) {\n\t\t\t\tthis.logger?.error(`invalid cell definition (index ${i}): ${JSON.stringify(cellSource)}`);\n\t\t\t} else if (cellSource.cs > 1 || cellSource.rs > 1) {\n\t\t\t\tthis.merges.add({r: cell.r, c: cell.c, rs: cellSource.rs || 1, cs: cellSource.cs || 1});\n\t\t\t}\n\n\t\t\tif (cell && cellSource.comment) {\n\t\t\t\tsource.comments.push(Object.assign(cellSource.comment, {c: cellSource.c, r: cellSource.r}));\n\t\t\t}\n\t\t});\n\t\t\n\t\t// sparklines\n\t\tif (source.sparklines) {\n\t\t\ttry {\n\t\t\t\tthis.sparklines.populate(source.sparklines);\n\t\t\t} catch (error) {\n\t\t\t\tlog.getLogger().error(`Sparkline init error: ${error}`);\n\t\t\t}\n\t\t}\n\n\t\t// names\n\t\tif (source.names) {\n\t\t\ttry {\n\t\t\t\tthis.names.populate(source.names);\n\t\t\t} catch (error) {\n\t\t\t\tlog.getLogger().error(`Named range init error: ${error}`);\n\t\t\t}\n\t\t}\n\n\t\t// conditional formats\n\t\tif (source.rules) {\n\t\t\ttry {\n\t\t\t\tthis.conditionalFormats.populate(source.rules);\n\t\t\t} catch (error) {\n\t\t\t\tlog.getLogger().error(`Conditional formats init error: ${error}`);\n\t\t\t}\n\t\t}\n\n\t\t// theme\n\t\tif (source.theme) {\n\t\t\ttry {\n\t\t\t\tthis.applyTheme(source.theme);\n\t\t\t\tthis._theme = source.theme;\n\t\t\t} catch (error) {\n\t\t\t\tlog.getLogger().error(`Theme init error: ${error}`);\n\t\t\t}\n\t\t}\n\t\t\n\t\t// comments\n\t\tif (source.comments) {\n\t\t\ttry {\n\t\t\t\tthis.comments.populate(source.comments);\n\t\t\t} catch (error) {\n\t\t\t\tlog.getLogger().error(`Comment init error: ${error}`);\n\t\t\t}\n\t\t}\n\t\t\n\t\t// custom properties\n\t\tthis._properties = source.props;\n\n\t\t// additional properties\n\t\tthis.otherSourceData = {};\n\t\tconst defaultKeys = new Set(DEFAULT_SOURCE_KEYS);\n\t\tconst keys = Object.keys(source).filter(k => !defaultKeys.has(k));\n\t\tkeys.forEach(k => this.otherSourceData[k] = source[k]);\n\n\t\t// default sort\n\t\tif (this.options.sorting?.defaultSettings) {\n\t\t\tthis.sorting.settings = this.options.sorting.defaultSettings;\n\t\t}\n\n\t\t// default filter\n\t\tif (this.options.filters?.defaultSettings) {\n\t\t\tthis.filter.settings = this.options.filters.defaultSettings;\n\t\t}\n\n\t\tthis.calcHeaderHeights();\n\t}\n\n\tgetSourceData() {\n\t\tconst data = {\n\t\t\tindex: this.index,\n\t\t\tname: this.name,\n\t\t\ttab: this.tab,\n\t\t\tcolumns: this.columns.map(col => col.getSourceData()),\n\t\t\trows: this.rows.map(row => row.getSourceData()),\n\t\t\tstyles: this.styles.getSourceData(),\n\t\t\trules: this.conditionalFormats.getSourceData(),\n\t\t\tsparklines: this.sparklines.getSourceData(),\n\t\t\tnames: this.names.getSourceData(),\n\t\t\toptions: this.options,\n\t\t} as GridSource;\n\n\t\tif (this._properties) data.props = this._properties;\n\n\t\tconst cells = [];\n\t\tlet cellData: CellSource;\n\t\tfor (let r = 0; r < this.rows.length; r++) {\n\t\t\tfor (let c = 0; c < this.columns.length; c++) {\n\t\t\t\tcellData = this.rows[r].cell(c).getSourceData();\n\t\t\t\tif (Object.keys(cellData).length > 0) {\n\t\t\t\t\tcellData.r = r;\n\t\t\t\t\tcellData.c = c;\n\t\t\t\t\tcells.push(cellData);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (cells.length > 0) data.cells = cells;\n\t\t\n\t\tconst styles = [] as Style[];\n\t\tthis.styles.clean();\n\t\tthis.styles.map.forEach(style => styles.push(style));\n\t\tif (styles.length > 0) data.styles = styles;\n\n\t\tconst otherModelKeys = new Set([\n\t\t\t...Object.keys(this.otherModels ?? {}),\n\t\t\t...Object.keys(this.otherSourceData ?? {})\n\t\t]);\n\t\totherModelKeys.forEach(k => data[k] = this.otherModels[k] \n\t\t\t? Array.from(this.otherModels[k]).map(m => m.getSourceData())\n\t\t\t: this.otherSourceData[k]\n\t\t);\n\n\t\treturn data;\n\t}\n\n\tcalcHeaderHeights() {\n\t\tthis._headerCount = 0;\n\t\tthis._headerHeights = [];\n\t\tthis.columns.forEach((column) => {\n\t\t\tthis._headerCount = column.header ? column.header.length : this._headerCount;\n\t\t\tif (this._headerHeights.length < this._headerCount) {\n\t\t\t\tthis._headerHeights.push(...Array(this._headerCount - this._headerHeights.length).fill(0));\n\t\t\t}\n\n\t\t\tcolumn.header?.forEach((h: ColumnHeaderModel, r) => {\n\t\t\t\tif (r >= this._headerHeights.length) {\n\t\t\t\t\tthis._headerHeights.push(0);\n\t\t\t\t}\n\t\t\t\tthis._headerHeights[r] = Math.max(this._headerHeights[r], h.height ?? 0);\n\t\t\t});\n\t\t});\n\t}\n\n\tindexRows() {\n\t\tthis.visibleRows = [];\n\t\tthis.rows.forEach((row, r) => {\n\t\t\trow.index = r;\n\t\t\tif (!row.isLoaded) row.collapsed = true;\n\t\t\tif (!row.hidden && row.filterState != tree.FilterState.Filtered) {\n\t\t\t\trow.visibleIndex = this.visibleRows.length;\n\t\t\t\tthis.visibleRows.push(row);\n\t\t\t}\n\t\t});\n\t}\n\n\tindexVisibleRows() {\n\t\tthis.visibleRows = [];\n\t\tlet r = 0;\n\t\tif (this._levelBasedRowTree) {\n\t\t\tthis.rowRoot.walkVisible((node: RowModel) => {\n\t\t\t\tnode.visibleIndex = r++;\n\t\t\t\tthis.visibleRows.push(node)\n\t\t\t});\n\n\t\t\t// reverse order of row index\n\t\t\tif (this.options.rowTree.reversed) {\n\t\t\t\tconst reversedVisibleRows = new Array(this.visibleRows.length);\n\t\t\t\tthis.visibleRows.forEach((row, i) => {\n\t\t\t\t\tr = this.visibleRows.length - i - 1;\n\t\t\t\t\trow.visibleIndex = r;\n\t\t\t\t\treversedVisibleRows[r] = row;\n\t\t\t\t});\n\t\t\t\tthis.visibleRows = reversedVisibleRows;\n\t\t\t}\n\t\t} else {\n\t\t\t// in parent based node rows do not have to respect tree order\n\t\t\tthis.rowRoot.walkVisible((node: RowModel) => this.visibleRows[node.index] = node);\n\t\t\tthis.visibleRows = this.visibleRows.filter(row => {\n\t\t\t\tif (row) {\n\t\t\t\t\trow.visibleIndex = r++;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\t\t}\n\t}\n\n\tindexRowsByTree() {\n\t\tthis.rows = [];\n\t\tlet r = 0;\n\t\tthis.rowRoot.walk((row: RowModel) => {\n\t\t\trow.index = r++;\n\t\t\tthis.rows.push(row);\n\t\t});\n\t\tif (this.options.rowTree.reversed) this.rows.reverse();\n\t\tthis.indexVisibleRows();\n\t}\n\n\tindexColumns() {\n\t\tthis.visibleColumns = [];\n\t\tthis.columns.forEach((column, c) => {\n\t\t\tcolumn.index = c;\n\t\t\tif (!column.hidden) this.visibleColumns.push(column);\n\t\t});\n\t}\n\n\tindexVisibleColumns() {\n\t\tthis.visibleColumns = [];\n\t\tthis.visibleColumnIndex = {};\n\t\tlet c = 0;\n\t\tthis.colRoot.walkVisible((node: ColumnModel) => {\n\t\t\tnode.visibleIndex = c;\n\t\t\tthis.visibleColumnIndex[node.index] = c++;\n\t\t\tthis.visibleColumns.push(node);\n\t\t});\n\n\t\t// reverse order of column index\n\t\tif (this.options.columnTree.reversed) {\n\t\t\tthis.visibleColumnIndex = {};\n\t\t\tconst reversedVisibleColumns = new Array(this.visibleColumns.length);\n\t\t\tthis.visibleColumns.forEach((column, i) => {\n\t\t\t\tc = this.visibleColumns.length - i - 1;\n\t\t\t\tcolumn.visibleIndex = c;\n\t\t\t\tthis.visibleColumnIndex[column.index] = c;\n\t\t\t\treversedVisibleColumns[c] = column;\n\t\t\t});\n\t\t\tthis.visibleColumns = reversedVisibleColumns;\n\t\t}\n\n\t\tthis.indexHeaders();\n\t}\n\n\tindexHeaders() {\n\t\tthis._mergedHeaders = [];\n\t\tthis._headerCount = 0;\n\t\tthis.colRoot.walkVisible((column: ColumnModel) => {\n\t\t\tthis._headerCount = Math.max(column.header ? column.header.length : 0, this._headerCount);\n\t\t\tcolumn.mergedHeaders.forEach(h => this._mergedHeaders.push({\n\t\t\t\th: h,\n\t\t\t\tc: column.index,\n\t\t\t\tr: h.r,\n\t\t\t\tcs: column.calculateRealColspan(h.cs ?? 1),\n\t\t\t\trs: h.rs ?? 1\n\t\t\t}));\n\t\t});\n\n\t\t// hidden header cells\n\t\tthis._mergedHeaders.forEach(h => {\n\t\t\tif (h.h.hidden) return;\n\t\t\t\n\t\t\tfor (let c = h.c; c < h.c + h.cs; c++) {\n\t\t\t\tfor (let r = h.r; r < h.r + h.rs; r++) {\n\t\t\t\t\tif ((r > h.r || c > h.c) && this.columns[c] && this.columns[c].header[r]) {\n\t\t\t\t\t\tthis.columns[c].header[r].hidden = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis.calcHeaderHeights();\n\t}\n\n\tremoveHeader(r: number) {\n\t\tthis.columns.forEach(column => {\n\t\t\tif (r < column.header.length) column.header.splice(r, 1);\n\t\t});\n\t\tthis.indexHeaders();\n\t}\n\n\tclearRows = () : RowModel[] => {\n\t\tthis.rowRoot.clearChildren();\n\t\tthis.rows = [];\n\t\treturn this.rows;\n\t}\n\t\n\tclearColumns = () : ColumnModel[] => this.columns = [];\n\n\tclear() {\n\t\tthis.clearRows();\n\t\tthis.clearColumns();\n\t\tthis.resetViewport();\n\t}\n\n\tresetViewport() {\n\t\tthis._viewport = null;\n\t\treturn this;\n\t}\n\n\tgetViewport(\n\t\toffset: {c: number, r: number}, \n\t\tviewportSize: {w: number, h: number}, \n\t\tfreeze: {t: number, l: number, b: number, r: number},\n\t) : Viewport {\n\t\tconst viewportRows: RowModel[] = [];\n\t\tconst viewportColumns: ColumnModel[] = [];\n\n\t\tlet row: RowModel;\n\t\tlet remainingHeight = viewportSize.h;\n\t\tlet r = 0;\n\t\t// top rows\n\t\tfor (r = 0; r < freeze.t; r++) {\n\t\t\trow = this.visibleRows[r];\n\t\t\tremainingHeight -= row.height;\n\t\t\tviewportRows.push(row);\n\t\t}\n\n\t\t// bottom rows\n\t\tfor (r = this.visibleRows.length - freeze.b; r < this.visibleRows.length; r++) {\n\t\t\trow = this.visibleRows[r];\n\t\t\tremainingHeight -= row.height;\n\t\t}\n\n\t\t// center rows\n\t\tr = freeze.t + offset.r;\n\t\twhile (remainingHeight > 0 && r < this.visibleRows.length) {\n\t\t\trow = this.visibleRows[r++];\n\t\t\tremainingHeight -= row.height;\n\t\t\tviewportRows.push(row);\n\t\t}\n\n\t\t// bottom rows again\n\t\tfor (r = this.visibleRows.length - freeze.b; r < this.visibleRows.length; r++) {\n\t\t\tviewportRows.push(this.visibleRows[r]);\n\t\t}\n\n\t\tlet column: ColumnModel;\n\t\tlet remainingWidth = viewportSize.w;\n\t\tlet c = 0;\n\n\t\t// left columns\n\t\tfor (c = 0; c < freeze.l; c++) {\n\t\t\tcolumn = this.visibleColumns[c];\n\t\t\tremainingWidth -= column.width;\n\t\t\tviewportColumns.push(column);\n\t\t}\n\n\t\t// right columns\n\t\tfor (c = this.visibleColumns.length - freeze.r; c < this.visibleColumns.length; c++) {\n\t\t\tcolumn = this.visibleColumns[c];\n\t\t\tremainingWidth -= column.width;\n\t\t}\n\n\t\t// center columns\n\t\tc = freeze.l + offset.c;\n\t\twhile (remainingWidth > 0 && c < this.visibleColumns.length) {\n\t\t\tcolumn = this.visibleColumns[c++];\n\t\t\tremainingWidth -= column.width;\n\t\t\tviewportColumns.push(column);\n\t\t}\n\n\t\t// right columns again\n\t\tfor (c = this.visibleColumns.length - freeze.r; c < this.visibleColumns.length; c++) {\n\t\t\tviewportColumns.push(this.visibleColumns[c]);\n\t\t}\n\n\t\treturn (this._viewport = {rows: viewportRows, columns: viewportColumns});\n\t}\n\n\tcalculateViewport() {\n\t\treturn this._viewport ? this.calculations.calculateViewport(this._viewport) : [];\n\t}\n\n\t/**\n\t * Whether the row is one of those the table shows: not hidden, not filtered out and under no collapsed\n\t * row. A row that dropped out keeps its last visibleIndex, so only the visible row list itself tells.\n\t */\n\tisRowVisible(row: RowModel) {\n\t\treturn this.visibleRows[row.visibleIndex] === row;\n\t}\n\n\t/**\n\t * @param visibleOnly leave out the rows the table does not show (filtered out, hidden, collapsed)\n\t */\n\tgetValuesInRange(range: CellRange, formattedValues = false, visibleOnly = false) {\n\t\trange = range.intersect(this.gridRange);\n\t\tif (!range) return [];\n\t\tconst {columns} = range.size;\n\t\tconst values: Matrix<unknown> = [];\n\t\tlet j = 0;\n\t\tlet row: RowModel, rowValues: unknown[];\n\t\tfor (let r = range.r1; r <= range.r2; r++) {\n\t\t\trow = this.rows[r];\n\t\t\tif (visibleOnly && !this.isRowVisible(row)) continue;\n\t\t\trowValues = new Array(columns);\n\t\t\tj = 0;\n\t\t\tfor (let c = range.c1; c <= range.c2; c++) {\n\t\t\t\trowValues[j++] = formattedValues ? row.cell(c).formattedValue : row.cell(c).value;\n\t\t\t}\n\t\t\tvalues.push(rowValues);\n\t\t}\n\n\t\treturn values;\n\t}\n\n\tsetRowExpandLevel(level: number) {\n\t\tthis.rows.forEach(row => {\n\t\t\trow.collapsed = (!row.isLoaded && !row.isPartialyLoaded) || row.level >= level;\n\t\t\tif (row.level <= level) row.hidden = false; // remove hidden flag for visible rows\n\t\t});\n\t\tthis.indexVisibleRows();\n\t}\n\t\n\tsetColumnExpandLevel(level: number) {\n\t\tthis.columns.forEach(column => column.collapsed = column.level >= level);\n\t\tthis.indexVisibleColumns();\n\t}\n\n\tgetViewportRange() {\n\t\treturn this._viewport && this._viewport.columns.length && this._viewport.rows.length ? new CellRange(\n\t\t\tthis._viewport.columns[0].index,\n\t\t\tthis._viewport.rows[0].index,\n\t\t\tthis._viewport.columns[this._viewport.columns.length - 1].index,\n\t\t\tthis._viewport.rows[this._viewport.rows.length - 1].index,\n\t\t) : null;\n\t}\n\n\tget gridRange() {\n\t\treturn new CellRange(0, 0, this.columns.length - 1, this.rows.length - 1);\n\t}\n\n\tgetRangeIterator(range: CellRange, withinViewport = false) {\n\t\tconst clip = withinViewport && this._viewport ? this.getViewportRange() : this.gridRange;\n\t\treturn new IterableRange(this, clip && range.intersect(clip));\n\t}\n\n\tgetInitializedCellIterator() {\n\t\treturn new IterableRange(this, this.gridRange, true);\n\t}\n\n\tgetRowIterator(range: CellRange, withinViewport = false) {\n\t\tconst clip = withinViewport && this._viewport ? this.getViewportRange() : this.gridRange;\n\t\treturn new IterableAxisRange<RowModel>(this, clip && range.intersect(clip), 'rows');\n\t}\n\n\tgetColumnIterator(range: CellRange, withinViewport = false) {\n\t\tconst clip = withinViewport && this._viewport ? this.getViewportRange() : this.gridRange;\n\t\treturn new IterableAxisRange<ColumnModel>(this, clip && range.intersect(clip), 'columns');\n\t}\n\n\tgetCellArray(range: CellRange) {\n\t\tconst cells: CellModel[] = [];\n\t\tfor (const cell of this.getRangeIterator(range)) {\n\t\t\tcells.push(cell);\n\t\t}\n\t\treturn cells;\n\t}\n\n\t/**\n\t * @param visibleOnly leave out the rows the table does not show (filtered out, hidden, collapsed)\n\t */\n\ttransformRangeToMatrix<T>(range: CellRange, transform: (cell: CellModel) => T, visibleOnly = false): Matrix<T> {\n\t\tlet row: RowModel, cell: CellModel, rowValues: T[];\n\t\trange = range.intersect(this.gridRange);\n\t\tconst cells: Matrix<T> = [];\n\t\tfor (let r = range.r1; r <= range.r2; r++) {\n\t\t\trow = this.rows[r];\n\t\t\tif (!row || (visibleOnly && !this.isRowVisible(row))) continue;\n\t\t\trowValues = [];\n\t\t\tfor (let c = range.c1; c <= range.c2; c++) {\n\t\t\t\tcell = row.cell(c);\n\t\t\t\tif (cell) rowValues.push(transform(cell));\n\t\t\t}\t\n\t\t\tcells.push(rowValues);\n\t\t}\n\t\treturn cells;\n\t}\n\n\tgetCellMatrix(range: CellRange, visibleOnly = false) {\n\t\treturn this.getModelByRange(range)?.transformRangeToMatrix(range, c => c, visibleOnly);\n\t}\n\n\tgetValueMatrix(range: CellRange) {\n\t\treturn this.getModelByRange(range)?.transformRangeToMatrix(range, c => c.value);\n\t}\n\n\tshift(options: ShiftOptions) {\n\t\toptions.sheet = this.name;\n\t\tthis.merges.shift(options);\n\t\tthis.calculations.shift(options);\n\t\tthis.names.shift(options);\n\t\tthis.comments.shift(options);\n\t\tthis.sparklines.shift(options);\n\t}\n\n\tclearCalculations(all = false) {\n\t\tif (all && this.group) this.group.models.forEach(m => m.calculations.refresh());\n\t\telse this.calculations.refresh();\n\t}\n\n\trefreshSparklines() {\n\t\tthis.sparklines.updateRangeMaps();\n\t\tfor (const cell of this.getInitializedCellIterator()) {\n\t\t\tcell.invalidateStyle();\n\t\t}\n\t}\n\n\tclearCalculatedStyles() {\n\t\tthis.conditionalFormats.refresh();\n\t\tconst cells = [] as CellModel[];\n\t\tfor (const cell of this.getInitializedCellIterator()) {\n\t\t\tcells.push(cell);\n\t\t\tcell.invalidateStyle();\n\t\t}\n\t}\n\n\tinsertColumns(index: number, count: number, after = false) {\n\t\tconst parent = this.columns[Math.min(this.columns.length - 1, index)].parent;\n\t\tif (after) ++index;\n\t\tthis.shift({index: index, offset: count, direction: 'right'});\n\t\tfor (let r = 0; r < this.rows.length; r++) this.rows[r].insertColumns(index, count, false);\n\t\tconst newColumns = (new Array(count)).fill(null).map(() => new ColumnModel(this));\n\t\tthis.columns.splice(index, 0, ...newColumns);\n\t\tif (this.maxColumnLevel > 0) parent.insertChildren(newColumns, index - (parent.index || -1) - 1);\n\t\tthis.indexColumns();\n\t\tthis.applyThemeToColumns(newColumns);\n\t\tthis.clearCalculations(true);\n\t\treturn newColumns;\n\t}\n\n\tdeleteColumns(index: number, count: number) {\n\t\tconst parent = this.columns[index].parent;\n\t\tthis.shift({index: index, offset: count, direction: 'left'});\n\t\tconst deletedCells: CellModel[][] = [];\n\t\tfor (let r = 0; r < this.rows.length; r++)\n\t\t\tdeletedCells.push(this.rows[r].deleteColumns(index, count, false));\n\t\t// const deletedColumns: [ColumnModel, CellModel[]][] = this.columns.splice(index, count)\n\t\t// \t.map((column, i) => [column, deletedCells[i]]);\n\t\tconst deletedColumns = this.columns.splice(index, count);\n\t\tparent?.deleteChildren(deletedColumns);\n\t\tthis.indexColumns();\n\t\tthis.clearCalculations(true);\n\t\treturn deletedColumns;\n\t}\n\n\tinsertRows(index: number, rows: number|RowModel[], after = false) {\n\t\tconst parentIndex = Math.min(this.rows.length - 1, index);\n\t\tconst parent = parentIndex < 0 ? this.rowRoot : this.rows[parentIndex].parent;\n\t\tif (after) ++index;\n\t\tconst count = isNaN(rows as number) ? (rows as RowModel[]).length : rows as number;\n\t\tthis.shift({index: index, offset: count, direction: 'down'});\n\t\tconst newRows = isNaN(rows as number) ? (rows as RowModel[]) : (new Array(count)).fill(null).map(() => new RowModel(this));\n\t\tthis.rows.splice(index, 0, ...newRows);\n\t\tif (this.maxRowLevel > 0) parent.insertChildren(newRows, index - (parent.index || -1) - 1);\n\t\tthis.indexRows();\n\t\tthis.applyThemeToRows(newRows);\n\t\tthis.clearCalculations(true);\n\t\treturn newRows;\n\t}\n\n\tdeleteRows(index: number, count: number) {\n\t\tconst parent = this.rows[index].parent;\n\t\tthis.shift({index: index, offset: count, direction: 'up'});\n\t\tconst deletedRows = this.rows.splice(index, count);\n\t\tparent?.deleteChildren(deletedRows);\n\t\tthis.indexRows();\n\t\tthis.clearCalculations(true);\n\t\treturn deletedRows;\n\t}\n\n\tmoveRows(index: number, count: number, targetIndex: number) {\n\t\tconst movingRows = this.rows.splice(index, count);\n\t\tthis.rows.splice(targetIndex, 0, ...movingRows);\n\t\tthis.shift({index: index, offset: targetIndex - index, direction: 'down', maxIndex: index + count - 1});\n\t\tthis.indexRows();\n\t\tthis.clearCalculations(true);\n\t\treturn movingRows;\n\t}\n\n\tmoveColumns(index: number, count: number, targetIndex: number) {\n\t\tconst movingColumns = this.columns.splice(index, count);\n\t\tthis.columns.splice(targetIndex, 0, ...movingColumns);\n\t\tthis.shift({index: index, offset: targetIndex - index, direction: 'right', maxIndex: index + count - 1});\n\t\tthis.indexColumns();\n\t\tthis.clearCalculations(true);\n\t\treturn movingColumns;\n\t}\n\n\tspillValues(opt: SpillOptions): SpillResult {\n\t\tconst {cell, values, displayValues, propertyCell} = opt;\n\t\tconst cells: CellModel[] = [];\n\t\tconst oldValues: CellValueType[] = [];\n\t\tconst empty = values.length === 0 || values[0].length === 0;\n\t\tlet row: RowModel, spillCell: CellModel;\n\n\t\tconst range = empty ? null : new CellRange(\n\t\t\tcell.c, cell.r,\n\t\t\tcell.c + values[0].length - 1,\n\t\t\tcell.r + values.length - 1\n\t\t)\n\n\t\tif (cell.spillRange) {\n\t\t\t// clear values from previous evaluations not contained in the new spill range\n\t\t\tthis.getRangeIterator(cell.spillRange, true).forEach(c => {\n\t\t\t\tif (cell != c && !range?.contains(c.range)) c.clearSpilledValue();\n\t\t\t});\n\t\t}\n\n\t\tcell.spillRange = range;\n\t\tif (empty) return {cells, oldValues, range: null};\n\n\t\tfor (let r = range.r1; r <= range.r2; r++) {\n\t\t\trow = this.rows[r];\n\t\t\tif (!row) continue;\n\t\t\tconst r2 = r - range.r1;\n\t\t\tfor (let c = range.c1; c <= range.c2; c++) {\n\t\t\t\tconst c2 = c - range.c1;\n\t\t\t\tspillCell = row.cell(c);\n\t\t\t\tif (spillCell.editable) {\n\t\t\t\t\toldValues.push(spillCell.value2 as CellValueType);\n\t\t\t\t\tspillCell.spillValue(values[r2][c2], cell);\n\t\t\t\t\tif (propertyCell) {\n\t\t\t\t\t\tspillCell.format = propertyCell.format;\n\t\t\t\t\t\tspillCell.type = propertyCell.type;\n\t\t\t\t\t}\n\t\t\t\t\tif (displayValues && displayValues[r2][c2] != null) spillCell.displayValue = displayValues[r2][c2];\n\t\t\t\t\tcells.push(spillCell);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn {cells, oldValues, range};\n\t}\n\n\tgetCellByName(name: string, contextRange: CellRange, searchGroup = true): CellModel {\n\t\tconst cell = this.names.getCellByName(name, contextRange);\n\t\tif (cell) return cell;\n\t\telse if (this.group && searchGroup) return this.group.getCellByName(name, contextRange);\n\t\treturn null;\n\t}\n\n\tgetRangeByName(name: string, searchGroup = true): CellRange {\n\t\tconst range = this.names.getRangeByName(name);\n\t\tif (range) return range;\n\t\telse if (this.group && searchGroup) return this.group.getRangeByName(name);\n\t\treturn null;\n\t}\n\n\tgetValueMatrixByName(name: string, searchGroup = true): Matrix<unknown> {\n\t\tconst matrix = this.names.getRangeByName(name);\n\t\tif (matrix) return this.getValueMatrix(matrix);\n\t\telse if (this.group && searchGroup) return this.group.getValueMatrixByName(name);\n\t\treturn null;\n\t}\n\n\trebuildRowTree() {\n\t\tconst buildFunction = this._levelBasedRowTree ? tree.buildLevelBasedTree : tree.buildParentBasedTree;\n\t\tthis._maxRowLevel = buildFunction(this.rows, this.rowRoot, {\n\t\t\treverse: this.options.rowTree.reversed\n\t\t});\n\t\tthis.indexRowsByTree();\n\t}\n\n\trebuildColumnTree() {\n\t\tconst buildFunction = this._levelBasedColTree ? tree.buildLevelBasedTree : tree.buildParentBasedTree;\n\t\tthis._maxColumnLevel = buildFunction(this.columns, this.colRoot, {\n\t\t\treverse: this.options.columnTree.reversed\n\t\t});\n\t\tthis.indexColumns();\n\t}\n\n\tcalculateCellOffset(cell: CellRange) : Location {\n\t\tlet x = 0, y = 0;\n\t\tfor (let c = 0; c < cell.c1; c++) {\n\t\t\tif (!this.columns[c]) break;\n\t\t\tx += this.columns[c].width;\n\t\t}\n\t\tfor (let r = 0; r < cell.r1; r++) {\n\t\t\tif (!this.rows[r]) break;\n\t\t\ty += this.rows[r].height;\n\t\t}\n\t\treturn { x, y };\n\t}\n\n}"]}
@@ -1,5 +1,5 @@
1
1
  import { numbers, CommonOptions, dates, MenuItem, paper } from "@omegagrid/core";
2
- import { CellValidation, CellValidationSource, Renderer, StyleSource } from "../types";
2
+ import { AutofitOptions, CellValidation, CellValidationSource, Renderer, StyleSource } from "../types";
3
3
  import { CommentOptions, FilterSettings, SortSettings } from "../model";
4
4
  import { ElementModel } from "./elementModel";
5
5
  import { CellModel, CellSource } from "./cellModel";
@@ -248,6 +248,8 @@ export type Options = {
248
248
  print?: PrintOptions;
249
249
  /** grid zoom factor */
250
250
  zoom?: number;
251
+ /** autofit options */
252
+ autofit?: AutofitOptions;
251
253
  /** hides the outer border of the grid (right and top) */
252
254
  hideOuterBorder?: boolean;
253
255
  } & CommonOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/model/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/model/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAqB,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGtD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC;AAE/C,MAAM,MAAM,cAAc,GAAG;IAC5B,gCAAgC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,mCAAmC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAE7B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,6DAA6D;IAC7D,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErC,iCAAiC;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,mCAAmC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,YAAY,IAAI,QAAQ,GAAG;IAC7D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;CAC/B,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,YAAY,IAAI;IACrD,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACjC,GAAG,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAC1B,+BAA+B;IAC/B,KAAK,EAAE;QACN,mEAAmE;QACnE,iBAAiB,EAAE,MAAM,CAAA;KACzB,CAAA;CACD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,YAAY,EAAE,CAAA;CAChC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uEAAuE;IACvE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8BAA8B;IAC9B,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAA;AAGD,MAAM,MAAM,WAAW,GAAG;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAC,SAAS,GAAC,gBAAgB,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,CAAC,MAAM,UAAU,CAAC,EAAE,GAAC,KAAK,CAAC;IAEvC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IAEzB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAC1B,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,kEAAkE;IAClE,SAAS,CAAC,EAAE,YAAY,CAAC;IAEzB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,6BAA6B;IAC7B,WAAW,CAAC,EAAE,WAAW,GAAC,UAAU,CAAC;IAErC,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,uBAAuB;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAC,KAAK,CAAC,SAAS,CAAC;IAExC,2BAA2B;IAC3B,OAAO,CAAC,EAAE;QACT,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAA;KACd,CAAA;CACD,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAC;CACpB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,qBAAqB;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,WAAW,CAAC;IAEzB,8BAA8B;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,kDAAkD;IAClD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,8DAA8D;IAC9D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iEAAiE;IACjE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,yCAAyC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,4BAA4B;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,kDAAkD;IAClD,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,wDAAwD;IACxD,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAElD,qCAAqC;IACrC,aAAa,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC;IAE5C,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,iGAAiG;IACjG,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,sCAAsC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,0CAA0C;IAC1C,eAAe,CAAC,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAEzC,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,2DAA2D;IAC3D,aAAa,CAAC,EAAE,QAAQ,CAAC;IAEzB,iCAAiC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kCAAkC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,mBAAmB;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,sBAAsB;IACtB,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB,wBAAwB;IACxB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B,sBAAsB;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,wBAAwB;IACxB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B,oBAAoB;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,yCAAyC;IACzC,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB,wBAAwB;IACxB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B,oCAAoC;IACpC,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,WAAW,CAAC;IAExB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,wDAAwD;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,wCAAwC;IACxC,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,sBAAsB;IACtB,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB,yDAAyD;IACzD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG,aAAa,CAAC;AAElB,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,GAAC,YAAY,GAAC,SAAS,GAAC,gBAAgB,CAAC,GAAG;IAC7F,OAAO,CAAC,EAAE,OAAO,GAAC,WAAW,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,GAAC,WAAW,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,GAAC,aAAa,CAAC;IAChC,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACtC,CAAA;AAED,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,WAAW,GAAE,YAAmB,GAAG,OAAO,CA+BtG"}
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/model/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAiB,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AAGpG,OAAO,SAAS,EAAE,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAMxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AA4VxD,MAAM,UAAU,WAAW,CAAC,OAA+B,EAAE,cAA4B,IAAI;IAC5F,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAe,EAAE,EAAE,SAAS,CAAC,eAAe,EAAE,WAAW,EAAE,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAE/H,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACtB,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACtF,CAAC;SAAM,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QACjC,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9E,CAAC;SAAM,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC/B,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACvB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS;QAAE,GAAG,CAAC,OAAO,GAAG,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAC,CAAC;IAC3E,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,sBAAsB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAErE,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS;QAAE,GAAG,CAAC,OAAO,GAAG,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAC,CAAC;IAC3E,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,oBAAoB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAEnE,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,SAAS;QAAE,GAAG,CAAC,UAAU,GAAG,EAAC,OAAO,EAAE,GAAG,CAAC,UAAU,EAAC,CAAC;IACpF,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,oBAAoB,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAEzE,IAAI,GAAG,CAAC,cAAc;QAAE,GAAG,CAAC,cAAc,GAAG,uBAAuB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEzF,OAAO,GAAc,CAAC;AACvB,CAAC","sourcesContent":["import { numbers, initCommonOptions, CommonOptions, dates, MenuItem, paper } from \"@omegagrid/core\";\nimport { CellValidation, CellValidationSource, Renderer, StyleSource } from \"../types\";\nimport { CommentOptions, FilterSettings, SortSettings } from \"../model\";\nimport constants, { DEFAULT_FILTER_OPTIONS, DEFAULT_TREE_OPTIONS } from \"../constants\";\nimport { utils } from \"@omegagrid/core\";\nimport { ElementModel } from \"./elementModel\";\nimport { CellModel, CellSource } from \"./cellModel\";\nimport { RowModel } from \"./rowModel\";\nimport { ColumnModel } from \"./columnModel\";\nimport { CellAddress, RangeAddress } from \"../common\";\nimport { normalizeCellValidation } from \"./validations\";\n\nexport type ViewMode = 'grid' | 'singleObject';\n\nexport type EditingOptions = {\n\t/** enable inserting new rows */\n\trowInsertion?: boolean,\n\n\t/** enable deleting rows */\n\trowDeletion?: boolean,\n\n\t/** enable editing row outline levels */\n\trowOutline?: boolean,\n\n\t/** enable inserting new columns */\n\tcolInsertion?: boolean,\n\n\t/** enable deleting columns */\n\tcolDeletion?: boolean,\n\n\t/** enable editing column outline levels */\n\tcolOutline?: boolean,\n\n\t/** use calendar editor for date cells */\n\tdateCalendarEditor?: boolean,\n\n};\n\nexport type ScrollingOptions = {\n\t/** maximum proximity of cursor to scrollbar to be visible */\n\tscrollbarVisibilityTreshold?: number,\n\n\t/** enable vertical overscroll */\n\tverticalOverscroll?: boolean,\n\n\t/** enable horizontal overscroll */\n\thorizontalOverscroll?: boolean,\n};\n\nexport type GridMenuItem<T extends ElementModel> = MenuItem & {\n\thidden?: (model: T) => boolean,\n}\n\nexport type MenuOptionsItem<T extends ElementModel> = {\n\titems: GridMenuItem<T>[],\n\thidden?: (model: T) => boolean,\n\treplace?: boolean\n};\n\nexport type MenuOptions = {\n\tcell: MenuOptionsItem<CellModel>,\n\trow: MenuOptionsItem<RowModel>,\n\tcolumn: MenuOptionsItem<ColumnModel>,\n};\n\nexport type EventOptions = {\n\t/** grid click event options */\n\tclick: {\n\t\t/** maximum mouse move path length, after click event is allowed */\n\t\tmouseMoveTreshold: number\n\t}\n};\n\nexport type SortingOptions = {\n\t/** column sorting enabled */\n\tenabled?: boolean,\n\t\n\t/** maximum number of columns that can be sorted */\n\tmaxColumns?: number,\n\t\n\t/** initial sorting settings */\n\tdefaultSettings?: SortSettings[]\n};\n\nexport type FilterOptions = {\n\tenabled?: boolean;\n\t/** the parents of the matched rows will be included in the results */\n\tincludeParents?: boolean;\n\t/** the children of the matched rows will be included in the results */\n\tincludeChildren?: boolean;\n\t/** initial filter settings */\n\tdefaultSettings?: FilterSettings[]\n}\n\nexport type SelectingOptions = {\n\tenabled?: boolean;\n\tmultiSelect?: boolean;\n}\n\n\nexport type TreeOptions = {\n\tenabled?: boolean;\n\treversed?: boolean;\n}\n\nexport type PasteMode = 'insert'|'rewrite'|'rewrite_append';\n\nexport type ClipboardOptions = {\n\tpasteProps: (keyof CellSource)[]|'all';\n\n\t/**\n\t * paste mode for rows, \n\t * \tinsert = always insert new rows\n\t * \trewrite = rewrite when rows are availible\n\t * \trewrite_append = rewrite when rows are availible, otherwise insert new rows; default\n\t */\n\trowPasteMode?: PasteMode;\n\n\t/**\n\t * paste mode for columns, \n\t * \tinsert = always insert new columns\n\t * \trewrite = rewrite when columns are availible; default\n\t * \trewrite_append = rewrite when columns are availible, otherwise insert new columns\n\t */\n\tcolumnPasteMode?: PasteMode;\n\n\t/**\n\t * Skips hidden rows when pasting data.\n\t * Values are pasted into nearest visible row.\n\t */\n\tskipHiddenRows?: boolean;\n}\n\nexport type PrintOptions = {\n\t/** idexes of rows, after which page break will be inserted */\n\trowBreaks?: number[];\n\n\t/** range of rows to repeat at the top of each page, eg: \"1:20\" */\n\trowTitles?: RangeAddress;\n\n\t/** print scale, 50 = 50% */\n\tscale?: number;\n\n\t/** print page orientation */\n\torientation?: 'landscape'|'portrait';\n\n\t/** print quality */\n\tdpi?: number;\n\n\t/** print paper size */\n\tpaper?: paper.PaperType|paper.PaperSize;\n\n\t/** page margin settings */\n\tmargins?: {\n\t\ttop: number,\n\t\tbottom: number,\n\t\tleft: number,\n\t\tright: number,\n\t\theader: number,\n\t\tfooter: number\n\t}\n}\n\nexport type HeaderOptions = {\n\tstyle?: StyleSource;\n}\n\nexport type Options = {\n\tviewMode?: ViewMode,\n\n\t/** default number of rows */\n\trows?: number;\n\n\t/** default number of columns */\n\tcolumns?: number;\n\n\t/** readOnly cells */\n\treadOnly?: boolean;\n\n\t/** header options */\n\theaders?: HeaderOptions;\n\n\t/** render column with row numbers */\n\trowNumbers?: boolean;\n\n\t/** render column with row numbers */\n\trowResize?: boolean;\n\n\t/** default row priority */\n\trowPriority?: number;\n\n\t/** render column with row tree outline */\n\trowTree?: TreeOptions;\n\n\t/** render header row with column letters */\n\tcolLetters?: boolean;\n\n\t/** render row with column tree outline */\n\tcolumnTree?: TreeOptions;\n\n\t/** default column priority */\n\tcolumnPriority?: number;\n\n\t/** render column with row numbers */\n\tcolumnResize?: boolean;\n\n\t/** render tree buttons in column header labels */\n\tcolumnHeaderTreeButtons?: boolean;\n\n\t/** number of freezed rows on the top */\n\tfreezeTop?: number;\n\t\n\t/** number of freezed columns on the left */\n\tfreezeLeft?: number;\n\n\t/** number of freezed columns on the right, not implemented yet */\n\tfreezeRight?: number;\n\n\t/** number of freezed rows on the bottom, not implemented yet */\n\tfreezeBottom?: number;\n\n\t/** default font size */\n\tfontSize?: number;\n\n\t/** default row height */\n\trowHeight?: number;\n\n\t/** remove row hidden property after its parent is expanded */\n\tunhideRowAfterExpand?: boolean;\n\n\t/** default column width */\n\tcolumnWidth?: number;\n\n\t/** remove column hidden property after its parent is expanded */\n\tunhideColumnAfterExpand?: boolean;\n\n\t/** style source are native css styles */\n\tcssStyles?: boolean;\n\n\t/** cell border visibility */\n\tgrid?: boolean,\n\t\n\t/** column filter options */\n\tfilters?: FilterOptions,\n\n\t/** default number format */\n\tnumberFormat?: string,\n\t\n\t/** tries to repair invalid number/date formats */\n\tfixNumberFormat?: boolean,\n\n\t/** shows click indicator even in cells without value */\n\temptyClickable?: boolean,\n\n\t/** custom number formatter function */\n\tnumberFormatter?: numbers.NumberFormatterFunction,\n\n\t/** custom date formatter function */\n\tdateFormatter?: dates.DateFormatterFunction,\n\t\n\t/** enables default cell editing */\n\teditable?: boolean,\n\n\t/** enables formulas, enabled by default */\n\tformulas?: boolean,\n\n\t/** maximum nesting depth of the formula evaluation, deeper reference chains end with an error */\n\tmaxCalculationDepth?: number,\n\n\t/** enables default cell commenting */\n\tcommentable?: boolean,\n\n\t/** enables autofill function */\n\tautofill?: boolean,\n\n\t/** number of rows on one page for dynamic row fetching */\n\tpageSize?: number,\n\n\t/** enables command window */\n\tcommandWindow?: boolean,\n\n\t/** enables undo/redo */\n\tundoRedo?: boolean,\n\n\t/** location of cell with level buttons */\n\tlevelButtonCell?: {c: number, r: number},\n\n\t/** shows placeholder if grid is empty */\n\temptyPlaceholder?: boolean,\n\n\t/** custom cell renderer applied after default renderers */\n\tafterRenderer?: Renderer,\n\n\t/** factor of cell indentation */\n\tcellIndentFactor?: number,\n\n\t/** factor of level indentation */\n\tlevelIndentFactor?: number,\n\n\t/** menu options */\n\tmenus?: MenuOptions,\n\n\t/** editing options */\n\tediting?: EditingOptions,\n\n\t/** selecting options */\n\tselecting?: SelectingOptions,\n\n\t/** comment options */\n\tcomments?: CommentOptions,\n\t\n\t/** scrolling options */\n\tscrolling?: ScrollingOptions,\n\n\t/** event options */\n\tevents?: EventOptions,\n\t\n\t/** max number of sorted columns, deprecated */\n\tmaxSortingColumns?: number;\n\n\t/** enabled column sorting, deprecated */\n\tcolumnSorting?: boolean,\n\n\t/** column sorting options */\n\tsorting?: SortingOptions,\n\n\t/** clipboard options */\n\tclipboard?: ClipboardOptions,\n\n\t/** default cell validation rules */\n\tcellValidation?: CellValidation,\n\n\t/** first cell in viewport */\n\tfirstCell?: CellAddress,\n\n\t/** cell element caching */\n\tcellCache?: boolean,\n\n\t/** use single cell model instance for all grid cells */\n\tsingleCellModel?: boolean,\n\n\t/** options for raw html export/print */\n\tprint?: PrintOptions,\n\n\t/** grid zoom factor */\n\tzoom?: number,\n\n\t/** hides the outer border of the grid (right and top) */\n\thideOuterBorder?: boolean,\n} & CommonOptions;\n\nexport type OptionSource = Omit<Options, 'rowTree'|'columnTree'|'filters'|'cellValidation'> & {\n\trowTree?: boolean|TreeOptions;\n\tcolumnTree?: boolean|TreeOptions;\n\tfilters?: boolean|FilterOptions;\n\tcellValidation?: CellValidationSource;\n}\n\nexport function initOptions(options?: Partial<OptionSource>, origOptions: OptionSource = null): Options {\n\tconst opt = utils.mergeDeep<OptionSource>({}, constants.DEFAULT_OPTIONS, origOptions, initCommonOptions(options, origOptions));\n\t\n\tif (opt.numberFormat) {\n\t\topt.numberFormatter = numbers.getNumberFormatter(opt.formatLocale, opt.numberFormat);\n\t} else if (!opt.numberFormatter) {\n\t\topt.numberFormatter = numbers.getNumberFormatter(opt.formatLocale);\n\t}\n\n\tif (opt.dateFormat) {\n\t\topt.dateFormatter = dates.getDateFormatter(opt.formatLocale, opt.dateFormat);\n\t} else if (!opt.dateFormatter) {\n\t\topt.dateFormatter = dates.getDateFormatter(opt.formatLocale);\n\t}\n\n\tif (opt.columnSorting) {\n\t\topt.sorting = opt.sorting || {enabled: true};\n\t}\n\t\n\tif (typeof opt.filters === 'boolean') opt.filters = {enabled: opt.filters};\n\topt.filters = Object.assign({}, DEFAULT_FILTER_OPTIONS, opt.filters);\n\n\tif (typeof opt.rowTree === 'boolean') opt.rowTree = {enabled: opt.rowTree};\n\topt.rowTree = Object.assign({}, DEFAULT_TREE_OPTIONS, opt.rowTree);\n\n\tif (typeof opt.columnTree === 'boolean') opt.columnTree = {enabled: opt.columnTree};\n\topt.columnTree = Object.assign({}, DEFAULT_TREE_OPTIONS, opt.columnTree);\n\n\tif (opt.cellValidation) opt.cellValidation = normalizeCellValidation(opt.cellValidation);\n\n\treturn opt as Options;\n}"]}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/model/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAiB,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AAGpG,OAAO,SAAS,EAAE,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAMxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AA+VxD,MAAM,UAAU,WAAW,CAAC,OAA+B,EAAE,cAA4B,IAAI;IAC5F,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAe,EAAE,EAAE,SAAS,CAAC,eAAe,EAAE,WAAW,EAAE,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAE/H,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACtB,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACtF,CAAC;SAAM,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QACjC,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9E,CAAC;SAAM,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC/B,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACvB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS;QAAE,GAAG,CAAC,OAAO,GAAG,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAC,CAAC;IAC3E,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,sBAAsB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAErE,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS;QAAE,GAAG,CAAC,OAAO,GAAG,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAC,CAAC;IAC3E,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,oBAAoB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAEnE,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,SAAS;QAAE,GAAG,CAAC,UAAU,GAAG,EAAC,OAAO,EAAE,GAAG,CAAC,UAAU,EAAC,CAAC;IACpF,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,oBAAoB,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAEzE,IAAI,GAAG,CAAC,cAAc;QAAE,GAAG,CAAC,cAAc,GAAG,uBAAuB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEzF,OAAO,GAAc,CAAC;AACvB,CAAC","sourcesContent":["import { numbers, initCommonOptions, CommonOptions, dates, MenuItem, paper } from \"@omegagrid/core\";\nimport { AutofitOptions, CellValidation, CellValidationSource, Renderer, StyleSource } from \"../types\";\nimport { CommentOptions, FilterSettings, SortSettings } from \"../model\";\nimport constants, { DEFAULT_FILTER_OPTIONS, DEFAULT_TREE_OPTIONS } from \"../constants\";\nimport { utils } from \"@omegagrid/core\";\nimport { ElementModel } from \"./elementModel\";\nimport { CellModel, CellSource } from \"./cellModel\";\nimport { RowModel } from \"./rowModel\";\nimport { ColumnModel } from \"./columnModel\";\nimport { CellAddress, RangeAddress } from \"../common\";\nimport { normalizeCellValidation } from \"./validations\";\n\nexport type ViewMode = 'grid' | 'singleObject';\n\nexport type EditingOptions = {\n\t/** enable inserting new rows */\n\trowInsertion?: boolean,\n\n\t/** enable deleting rows */\n\trowDeletion?: boolean,\n\n\t/** enable editing row outline levels */\n\trowOutline?: boolean,\n\n\t/** enable inserting new columns */\n\tcolInsertion?: boolean,\n\n\t/** enable deleting columns */\n\tcolDeletion?: boolean,\n\n\t/** enable editing column outline levels */\n\tcolOutline?: boolean,\n\n\t/** use calendar editor for date cells */\n\tdateCalendarEditor?: boolean,\n\n};\n\nexport type ScrollingOptions = {\n\t/** maximum proximity of cursor to scrollbar to be visible */\n\tscrollbarVisibilityTreshold?: number,\n\n\t/** enable vertical overscroll */\n\tverticalOverscroll?: boolean,\n\n\t/** enable horizontal overscroll */\n\thorizontalOverscroll?: boolean,\n};\n\nexport type GridMenuItem<T extends ElementModel> = MenuItem & {\n\thidden?: (model: T) => boolean,\n}\n\nexport type MenuOptionsItem<T extends ElementModel> = {\n\titems: GridMenuItem<T>[],\n\thidden?: (model: T) => boolean,\n\treplace?: boolean\n};\n\nexport type MenuOptions = {\n\tcell: MenuOptionsItem<CellModel>,\n\trow: MenuOptionsItem<RowModel>,\n\tcolumn: MenuOptionsItem<ColumnModel>,\n};\n\nexport type EventOptions = {\n\t/** grid click event options */\n\tclick: {\n\t\t/** maximum mouse move path length, after click event is allowed */\n\t\tmouseMoveTreshold: number\n\t}\n};\n\nexport type SortingOptions = {\n\t/** column sorting enabled */\n\tenabled?: boolean,\n\t\n\t/** maximum number of columns that can be sorted */\n\tmaxColumns?: number,\n\t\n\t/** initial sorting settings */\n\tdefaultSettings?: SortSettings[]\n};\n\nexport type FilterOptions = {\n\tenabled?: boolean;\n\t/** the parents of the matched rows will be included in the results */\n\tincludeParents?: boolean;\n\t/** the children of the matched rows will be included in the results */\n\tincludeChildren?: boolean;\n\t/** initial filter settings */\n\tdefaultSettings?: FilterSettings[]\n}\n\nexport type SelectingOptions = {\n\tenabled?: boolean;\n\tmultiSelect?: boolean;\n}\n\n\nexport type TreeOptions = {\n\tenabled?: boolean;\n\treversed?: boolean;\n}\n\nexport type PasteMode = 'insert'|'rewrite'|'rewrite_append';\n\nexport type ClipboardOptions = {\n\tpasteProps: (keyof CellSource)[]|'all';\n\n\t/**\n\t * paste mode for rows, \n\t * \tinsert = always insert new rows\n\t * \trewrite = rewrite when rows are availible\n\t * \trewrite_append = rewrite when rows are availible, otherwise insert new rows; default\n\t */\n\trowPasteMode?: PasteMode;\n\n\t/**\n\t * paste mode for columns, \n\t * \tinsert = always insert new columns\n\t * \trewrite = rewrite when columns are availible; default\n\t * \trewrite_append = rewrite when columns are availible, otherwise insert new columns\n\t */\n\tcolumnPasteMode?: PasteMode;\n\n\t/**\n\t * Skips hidden rows when pasting data.\n\t * Values are pasted into nearest visible row.\n\t */\n\tskipHiddenRows?: boolean;\n}\n\nexport type PrintOptions = {\n\t/** idexes of rows, after which page break will be inserted */\n\trowBreaks?: number[];\n\n\t/** range of rows to repeat at the top of each page, eg: \"1:20\" */\n\trowTitles?: RangeAddress;\n\n\t/** print scale, 50 = 50% */\n\tscale?: number;\n\n\t/** print page orientation */\n\torientation?: 'landscape'|'portrait';\n\n\t/** print quality */\n\tdpi?: number;\n\n\t/** print paper size */\n\tpaper?: paper.PaperType|paper.PaperSize;\n\n\t/** page margin settings */\n\tmargins?: {\n\t\ttop: number,\n\t\tbottom: number,\n\t\tleft: number,\n\t\tright: number,\n\t\theader: number,\n\t\tfooter: number\n\t}\n}\n\nexport type HeaderOptions = {\n\tstyle?: StyleSource;\n}\n\nexport type Options = {\n\tviewMode?: ViewMode,\n\n\t/** default number of rows */\n\trows?: number;\n\n\t/** default number of columns */\n\tcolumns?: number;\n\n\t/** readOnly cells */\n\treadOnly?: boolean;\n\n\t/** header options */\n\theaders?: HeaderOptions;\n\n\t/** render column with row numbers */\n\trowNumbers?: boolean;\n\n\t/** render column with row numbers */\n\trowResize?: boolean;\n\n\t/** default row priority */\n\trowPriority?: number;\n\n\t/** render column with row tree outline */\n\trowTree?: TreeOptions;\n\n\t/** render header row with column letters */\n\tcolLetters?: boolean;\n\n\t/** render row with column tree outline */\n\tcolumnTree?: TreeOptions;\n\n\t/** default column priority */\n\tcolumnPriority?: number;\n\n\t/** render column with row numbers */\n\tcolumnResize?: boolean;\n\n\t/** render tree buttons in column header labels */\n\tcolumnHeaderTreeButtons?: boolean;\n\n\t/** number of freezed rows on the top */\n\tfreezeTop?: number;\n\t\n\t/** number of freezed columns on the left */\n\tfreezeLeft?: number;\n\n\t/** number of freezed columns on the right, not implemented yet */\n\tfreezeRight?: number;\n\n\t/** number of freezed rows on the bottom, not implemented yet */\n\tfreezeBottom?: number;\n\n\t/** default font size */\n\tfontSize?: number;\n\n\t/** default row height */\n\trowHeight?: number;\n\n\t/** remove row hidden property after its parent is expanded */\n\tunhideRowAfterExpand?: boolean;\n\n\t/** default column width */\n\tcolumnWidth?: number;\n\n\t/** remove column hidden property after its parent is expanded */\n\tunhideColumnAfterExpand?: boolean;\n\n\t/** style source are native css styles */\n\tcssStyles?: boolean;\n\n\t/** cell border visibility */\n\tgrid?: boolean,\n\t\n\t/** column filter options */\n\tfilters?: FilterOptions,\n\n\t/** default number format */\n\tnumberFormat?: string,\n\t\n\t/** tries to repair invalid number/date formats */\n\tfixNumberFormat?: boolean,\n\n\t/** shows click indicator even in cells without value */\n\temptyClickable?: boolean,\n\n\t/** custom number formatter function */\n\tnumberFormatter?: numbers.NumberFormatterFunction,\n\n\t/** custom date formatter function */\n\tdateFormatter?: dates.DateFormatterFunction,\n\t\n\t/** enables default cell editing */\n\teditable?: boolean,\n\n\t/** enables formulas, enabled by default */\n\tformulas?: boolean,\n\n\t/** maximum nesting depth of the formula evaluation, deeper reference chains end with an error */\n\tmaxCalculationDepth?: number,\n\n\t/** enables default cell commenting */\n\tcommentable?: boolean,\n\n\t/** enables autofill function */\n\tautofill?: boolean,\n\n\t/** number of rows on one page for dynamic row fetching */\n\tpageSize?: number,\n\n\t/** enables command window */\n\tcommandWindow?: boolean,\n\n\t/** enables undo/redo */\n\tundoRedo?: boolean,\n\n\t/** location of cell with level buttons */\n\tlevelButtonCell?: {c: number, r: number},\n\n\t/** shows placeholder if grid is empty */\n\temptyPlaceholder?: boolean,\n\n\t/** custom cell renderer applied after default renderers */\n\tafterRenderer?: Renderer,\n\n\t/** factor of cell indentation */\n\tcellIndentFactor?: number,\n\n\t/** factor of level indentation */\n\tlevelIndentFactor?: number,\n\n\t/** menu options */\n\tmenus?: MenuOptions,\n\n\t/** editing options */\n\tediting?: EditingOptions,\n\n\t/** selecting options */\n\tselecting?: SelectingOptions,\n\n\t/** comment options */\n\tcomments?: CommentOptions,\n\t\n\t/** scrolling options */\n\tscrolling?: ScrollingOptions,\n\n\t/** event options */\n\tevents?: EventOptions,\n\t\n\t/** max number of sorted columns, deprecated */\n\tmaxSortingColumns?: number;\n\n\t/** enabled column sorting, deprecated */\n\tcolumnSorting?: boolean,\n\n\t/** column sorting options */\n\tsorting?: SortingOptions,\n\n\t/** clipboard options */\n\tclipboard?: ClipboardOptions,\n\n\t/** default cell validation rules */\n\tcellValidation?: CellValidation,\n\n\t/** first cell in viewport */\n\tfirstCell?: CellAddress,\n\n\t/** cell element caching */\n\tcellCache?: boolean,\n\n\t/** use single cell model instance for all grid cells */\n\tsingleCellModel?: boolean,\n\n\t/** options for raw html export/print */\n\tprint?: PrintOptions,\n\n\t/** grid zoom factor */\n\tzoom?: number,\n\n\t/** autofit options */\n\tautofit?: AutofitOptions,\n\n\t/** hides the outer border of the grid (right and top) */\n\thideOuterBorder?: boolean,\n} & CommonOptions;\n\nexport type OptionSource = Omit<Options, 'rowTree'|'columnTree'|'filters'|'cellValidation'> & {\n\trowTree?: boolean|TreeOptions;\n\tcolumnTree?: boolean|TreeOptions;\n\tfilters?: boolean|FilterOptions;\n\tcellValidation?: CellValidationSource;\n}\n\nexport function initOptions(options?: Partial<OptionSource>, origOptions: OptionSource = null): Options {\n\tconst opt = utils.mergeDeep<OptionSource>({}, constants.DEFAULT_OPTIONS, origOptions, initCommonOptions(options, origOptions));\n\t\n\tif (opt.numberFormat) {\n\t\topt.numberFormatter = numbers.getNumberFormatter(opt.formatLocale, opt.numberFormat);\n\t} else if (!opt.numberFormatter) {\n\t\topt.numberFormatter = numbers.getNumberFormatter(opt.formatLocale);\n\t}\n\n\tif (opt.dateFormat) {\n\t\topt.dateFormatter = dates.getDateFormatter(opt.formatLocale, opt.dateFormat);\n\t} else if (!opt.dateFormatter) {\n\t\topt.dateFormatter = dates.getDateFormatter(opt.formatLocale);\n\t}\n\n\tif (opt.columnSorting) {\n\t\topt.sorting = opt.sorting || {enabled: true};\n\t}\n\t\n\tif (typeof opt.filters === 'boolean') opt.filters = {enabled: opt.filters};\n\topt.filters = Object.assign({}, DEFAULT_FILTER_OPTIONS, opt.filters);\n\n\tif (typeof opt.rowTree === 'boolean') opt.rowTree = {enabled: opt.rowTree};\n\topt.rowTree = Object.assign({}, DEFAULT_TREE_OPTIONS, opt.rowTree);\n\n\tif (typeof opt.columnTree === 'boolean') opt.columnTree = {enabled: opt.columnTree};\n\topt.columnTree = Object.assign({}, DEFAULT_TREE_OPTIONS, opt.columnTree);\n\n\tif (opt.cellValidation) opt.cellValidation = normalizeCellValidation(opt.cellValidation);\n\n\treturn opt as Options;\n}"]}
package/dist/types.d.ts CHANGED
@@ -117,7 +117,8 @@ export type SpillResult = {
117
117
  range: CellRange;
118
118
  };
119
119
  export type AutofitOptions = {
120
- visibleOnly?: boolean;
120
+ /** column autofit measures the header labels too (default true) */
121
+ includeHeaders?: boolean;
121
122
  };
122
123
  export type CellSerializationOptions = {
123
124
  displayValue?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACjH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC1G,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,KAAK,cAAc,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,KAAK,cAAc,CAAC;AAE7G,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,KAAK,MAAM,CAAC;AAE9D,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAE9D,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,UAAU,EAAE,CAAA;CAErB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAC,OAAO,GAAC,YAAY,GAAC,eAAe,GAAC,YAAY,GAAC,eAAe,GAAC,UAAU,GAAC,aAAa,GAAC,UAAU,CAAC;AACrI,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;AACpC;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAC,MAAM,GAAC,IAAI,GAAC,IAAI,CAAC;IAC/B,EAAE,CAAC,EAAE,MAAM,GAAC,MAAM,GAAC,IAAI,GAAC,IAAI,CAAC;CAC7B,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAC,MAAM,GAAC,OAAO,GAAC,QAAQ,EAAE,GAAC,WAAW,CAAC;AAEvE,sFAAsF;AACtF,MAAM,MAAM,qBAAqB,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;AACzE,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,qBAAqB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/E;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,EAAE,EAAE,CAAC;AAE1D;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,GAAG,GAAC,GAAG,CAAC;AAE3C,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAE1D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAC,MAAM,GAAC,KAAK,GAAC,QAAQ,CAAC;AAEvD,MAAM,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAC,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IAClC,gCAAgC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,GAAC,MAAM,CAAC;IAExB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CACxD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,GAAG;IACpE,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAC1B,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,SAAS,EAAE,SAAS,CAAC;IACrB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,2BAA2B,EAAE,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAA;CACf,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,sBAAsB,EAAE,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;CAC/B,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC;CACjB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB,CAAA;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import { ColorTypes, Direction, Size, Location, UIValueType, Matrix, KeyValue, MenuItem } from \"@omegagrid/core\";\nimport { CSSStyle, CellModel, GridSource, Style, CommentItem, TableTheme, EditingOptions } from \"./model\";\nimport { CellRange } from \"./common\";\n\nexport type Renderer = (div: HTMLDivElement, cell: CellModel) => HTMLDivElement;\nexport type CommentRenderer = (div: HTMLDivElement, comment: CommentItem, cell: CellModel) => HTMLDivElement;\n\nexport type Comparer = (a: CellModel, b: CellModel) => number;\n\nexport type FormulaFunction = (...args: unknown[]) => unknown;\n\nexport type BaseGroupModelSource = {\n\tmodels: GridSource[],\n\tthemes?: TableTheme[]\n\t//layout: TabSplitContainerModel\n}\n\nexport type EditType = 'value'|'style'|'insert_row'|'insert_column'|'delete_row'|'delete_column'|'move_row'|'move_column'|'autofill';\nexport type CellValueType = unknown; //number|string|boolean|object|null;\n/**\n * Filter term produced by the date/datetime/time range filter popup (`og-filter-range`).\n * Numeric columns do NOT use this — they filter via a text expression (see\n * {@link NumericFilterGroups} and `parseNumericExpression`).\n */\nexport type FilterRange = {\n\tkind: 'range',\n\tfrom?: number|string|Date|null,\n\tto?: number|string|Date|null,\n};\nexport type FilterValue = string|number|boolean|KeyValue[]|FilterRange;\n\n/** Comparison operators usable in a numeric text filter expression (e.g. `> 100`). */\nexport type NumericFilterOperator = '=' | '!=' | '<' | '<=' | '>' | '>=';\nexport type NumericFilterClause = { op: NumericFilterOperator, value: number };\n/**\n * Parsed numeric expression as a disjunction of conjunctions: the outer array holds\n * OR groups, each inner array holds clauses combined with AND. A value matches if it\n * satisfies every clause of at least one group.\n */\nexport type NumericFilterGroups = NumericFilterClause[][];\n\n/**\n * Actions = 'a',\n * Html = 'h'\n */\nexport type AditionalUIValueType = 'a'|'h';\n\nexport type CellType = UIValueType | AditionalUIValueType;\n\nexport type StyleSource = number|string|Style|CSSStyle;\n\nexport type CellAction = {\n\taction: string,\n\ticon?: string,\n\ttext?: string,\n\ttitle?: string,\n\tcolor?: ColorTypes,\n\ttype?: 'button'|'menu',\n\titems?: MenuItem[]\n}\n\nexport type CellValidationSource = {\n\t/** Allow invalid cell values */\n\tallowInvalid?: boolean,\n\n\t/** Validation pattern */\n\tpattern?: string|RegExp,\n\n\t/** Validation function */\n\tvalidate?: (cell: CellModel, value: unknown) => boolean,\n}\n\nexport type CellValidation = Omit<CellValidationSource, 'pattern'> & {\n\t/** Validation pattern */\n\tpattern?: RegExp,\n}\n\nexport type ShiftOptions = {\n\t/** Index of the first shifted row/column */\n\tindex: number;\n\t/** Number of rows/columns to shift */\n\toffset: number;\n\t/** Shift direction up/down for rows, left/right for columns */\n\tdirection: Direction;\n\t/** Name of the sheet where the shift occured */\n\tsheet?: string;\n\t/** Force shift on all references */\n\tallSheets?: boolean;\n\t/** Maximum affected index */\n\tmaxIndex?: number;\n\t/** Shift anchored coords */\n\tignoreAnchors?: boolean;\n}\n\nexport type FormulaFuncParamDescription = {\n\tname: string,\n\ttype: string,\n\tdescription: string,\n\toptional: boolean,\n\tdefault?: string\n}\n\nexport type FormulaFuncDescription = {\n\tname: string,\n\tparams: FormulaFuncParamDescription[],\n\treturns: string,\n\tdescription: string,\n\tlinks: string[]\n}\n\nexport type FormulaFuncGroupDescription = {\n\tname: string,\n\tfunctions: FormulaFuncDescription[]\n}\n\nexport type TabOptions = {\n\tcolor?: string,\n\thidden?: boolean,\n}\n\nexport type ObjectModel = {\n\tlocation: Location;\n\tsize: Size;\n\tzIndex?: number;\n}\n\nexport type SpillOptions = {\n\tcell: CellModel; \n\tvalues: Matrix;\n\tpropertyCell?: CellModel;\n\tdisplayValues?: Matrix<string>;\n}\n\nexport type SpillResult = {\n\tcells: CellModel[];\n\toldValues: CellValueType[];\n\trange: CellRange;\n}\n\nexport type AutofitOptions = {\n\tvisibleOnly?: boolean;\n}\n\nexport type CellSerializationOptions = {\n\tdisplayValue?: boolean;\n}\n\nexport type EditorFactory<T extends HTMLElement = HTMLElement> = (cell: CellModel, options?: EditingOptions) => T;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import { ColorTypes, Direction, Size, Location, UIValueType, Matrix, KeyValue, MenuItem } from \"@omegagrid/core\";\nimport { CSSStyle, CellModel, GridSource, Style, CommentItem, TableTheme, EditingOptions } from \"./model\";\nimport { CellRange } from \"./common\";\n\nexport type Renderer = (div: HTMLDivElement, cell: CellModel) => HTMLDivElement;\nexport type CommentRenderer = (div: HTMLDivElement, comment: CommentItem, cell: CellModel) => HTMLDivElement;\n\nexport type Comparer = (a: CellModel, b: CellModel) => number;\n\nexport type FormulaFunction = (...args: unknown[]) => unknown;\n\nexport type BaseGroupModelSource = {\n\tmodels: GridSource[],\n\tthemes?: TableTheme[]\n\t//layout: TabSplitContainerModel\n}\n\nexport type EditType = 'value'|'style'|'insert_row'|'insert_column'|'delete_row'|'delete_column'|'move_row'|'move_column'|'autofill';\nexport type CellValueType = unknown; //number|string|boolean|object|null;\n/**\n * Filter term produced by the date/datetime/time range filter popup (`og-filter-range`).\n * Numeric columns do NOT use this — they filter via a text expression (see\n * {@link NumericFilterGroups} and `parseNumericExpression`).\n */\nexport type FilterRange = {\n\tkind: 'range',\n\tfrom?: number|string|Date|null,\n\tto?: number|string|Date|null,\n};\nexport type FilterValue = string|number|boolean|KeyValue[]|FilterRange;\n\n/** Comparison operators usable in a numeric text filter expression (e.g. `> 100`). */\nexport type NumericFilterOperator = '=' | '!=' | '<' | '<=' | '>' | '>=';\nexport type NumericFilterClause = { op: NumericFilterOperator, value: number };\n/**\n * Parsed numeric expression as a disjunction of conjunctions: the outer array holds\n * OR groups, each inner array holds clauses combined with AND. A value matches if it\n * satisfies every clause of at least one group.\n */\nexport type NumericFilterGroups = NumericFilterClause[][];\n\n/**\n * Actions = 'a',\n * Html = 'h'\n */\nexport type AditionalUIValueType = 'a'|'h';\n\nexport type CellType = UIValueType | AditionalUIValueType;\n\nexport type StyleSource = number|string|Style|CSSStyle;\n\nexport type CellAction = {\n\taction: string,\n\ticon?: string,\n\ttext?: string,\n\ttitle?: string,\n\tcolor?: ColorTypes,\n\ttype?: 'button'|'menu',\n\titems?: MenuItem[]\n}\n\nexport type CellValidationSource = {\n\t/** Allow invalid cell values */\n\tallowInvalid?: boolean,\n\n\t/** Validation pattern */\n\tpattern?: string|RegExp,\n\n\t/** Validation function */\n\tvalidate?: (cell: CellModel, value: unknown) => boolean,\n}\n\nexport type CellValidation = Omit<CellValidationSource, 'pattern'> & {\n\t/** Validation pattern */\n\tpattern?: RegExp,\n}\n\nexport type ShiftOptions = {\n\t/** Index of the first shifted row/column */\n\tindex: number;\n\t/** Number of rows/columns to shift */\n\toffset: number;\n\t/** Shift direction up/down for rows, left/right for columns */\n\tdirection: Direction;\n\t/** Name of the sheet where the shift occured */\n\tsheet?: string;\n\t/** Force shift on all references */\n\tallSheets?: boolean;\n\t/** Maximum affected index */\n\tmaxIndex?: number;\n\t/** Shift anchored coords */\n\tignoreAnchors?: boolean;\n}\n\nexport type FormulaFuncParamDescription = {\n\tname: string,\n\ttype: string,\n\tdescription: string,\n\toptional: boolean,\n\tdefault?: string\n}\n\nexport type FormulaFuncDescription = {\n\tname: string,\n\tparams: FormulaFuncParamDescription[],\n\treturns: string,\n\tdescription: string,\n\tlinks: string[]\n}\n\nexport type FormulaFuncGroupDescription = {\n\tname: string,\n\tfunctions: FormulaFuncDescription[]\n}\n\nexport type TabOptions = {\n\tcolor?: string,\n\thidden?: boolean,\n}\n\nexport type ObjectModel = {\n\tlocation: Location;\n\tsize: Size;\n\tzIndex?: number;\n}\n\nexport type SpillOptions = {\n\tcell: CellModel; \n\tvalues: Matrix;\n\tpropertyCell?: CellModel;\n\tdisplayValues?: Matrix<string>;\n}\n\nexport type SpillResult = {\n\tcells: CellModel[];\n\toldValues: CellValueType[];\n\trange: CellRange;\n}\n\nexport type AutofitOptions = {\n\t// visibleOnly?: boolean;\n\t/** column autofit measures the header labels too (default true) */\n\tincludeHeaders?: boolean;\n}\n\nexport type CellSerializationOptions = {\n\tdisplayValue?: boolean;\n}\n\nexport type EditorFactory<T extends HTMLElement = HTMLElement> = (cell: CellModel, options?: EditingOptions) => T;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omegagrid/grid-core",
3
- "version": "0.11.16",
3
+ "version": "0.11.18",
4
4
  "license": "UNLICENSED",
5
5
  "description": "Grid model, no ui components",
6
6
  "main": "./dist/index.js",
@@ -28,8 +28,8 @@
28
28
  "generate-functions-docs": "node ./scripts/generate-functions-docs.cjs"
29
29
  },
30
30
  "dependencies": {
31
- "@omegagrid/core": "^0.11.16",
32
- "@omegagrid/localize": "^0.11.16",
31
+ "@omegagrid/core": "^0.11.18",
32
+ "@omegagrid/localize": "^0.11.18",
33
33
  "@stdlib/stats": "^0.0.13",
34
34
  "color": "^4.2.3",
35
35
  "date-fns": "^3.2.0",