@omegagrid/grid-core 0.9.27 → 0.9.28

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.
@@ -28,6 +28,8 @@ export type ColumnHeaderModel = {
28
28
  style?: StyleSource;
29
29
  /** style index */
30
30
  _style?: number;
31
+ /** header cell tooltip content */
32
+ tooltip?: string | unknown;
31
33
  };
32
34
  export type FilterColumnOptions = {
33
35
  /** property by which to filter */
@@ -140,6 +142,7 @@ export declare class ColumnModel extends ColumnModel_base {
140
142
  updateMergedHeaders(): void;
141
143
  set header(header: ColumnHeaderModel[]);
142
144
  get header(): ColumnHeaderModel[];
145
+ hasHeaderTooltip(index: number): boolean;
143
146
  convertSourceHeader(header: string | ColumnHeaderModel[]): ColumnHeaderModel[];
144
147
  populate(source: ColumnSource): void;
145
148
  getSourceData(): ColumnSource;
@@ -1 +1 @@
1
- {"version":3,"file":"columnModel.d.ts","sourceRoot":"","sources":["../../src/model/columnModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"columnModel.d.ts","sourceRoot":"","sources":["../../src/model/columnModel.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,10 @@ export class ColumnModel extends tree.TreeNodeMixin(ElementModel) {
54
54
  }
55
55
  return this._header;
56
56
  }
57
+ hasHeaderTooltip(index) {
58
+ const header = this.header?.[index];
59
+ return header && header.tooltip != null;
60
+ }
57
61
  convertSourceHeader(header) {
58
62
  if (Array.isArray(header)) {
59
63
  return header.map((h, r) => {
@@ -1 +1 @@
1
- {"version":3,"file":"columnModel.js","sourceRoot":"","sources":["../../src/model/columnModel.ts"],"names":[],"mappings":"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","sourcesContent":["import { tree, utils } from \"@omegagrid/core\";\nimport { CellRange, encodeColumn } from \"../common/range\";\nimport { ElementModel, ElementSource } from \"./elementModel\";\nimport { GridModel } from \"./gridModel\";\nimport { Comparer, StyleSource } from \"../types\";\nimport { CellModel } from \"./cellModel\";\nimport { FilterOptions } from \"./options\";\n\n/** Source object type for column header item */\nexport type ColumnHeaderModel = {\n\t/** row index (readonly) */\n\tr?: number;\n\t/** header label */\n\tlabel?: string;\n\t/** enable html in header label */\n\thtml?: boolean;\n\t/** column span */\n\tcs?: number;\n\t/** row span */\n\trs?: number;\n\t/** header height */\n\th?: number;\n\t/** header height alias */\n\theight?: number;\n\t/** visibility (readonly) */\n\thidden?: boolean\n\t/** header cell style */\n\ts?: StyleSource,\n\t/** header cell style alias */\n\tstyle?: StyleSource,\n\t/** style index */\n\t_style?: number\n};\n\nexport type FilterColumnOptions = {\n\t/** property by which to filter */\n\tproperty?: keyof CellModel;\n\t/** enable filter */\n\tenabled: boolean;\n};\n\nconst DEFAULT_FILTER_COLUMN_OPTIONS: FilterColumnOptions = {\n\tproperty: 'value',\n\tenabled: true\n};\n\n/** Source object type for grid column */\nexport type ColumnSource = {\n\t/** column width */\n\tw?: number|'auto',\n\t/** name of data property/index in row.data */\n\tdata?: number|string,\n\t/** column header array */\n\theader?: string|ColumnHeaderModel[],\n\t/** enable column sorting */\n\tsorting?: boolean,\n\t/** enable column filtering */\n\tfilter?: boolean|FilterColumnOptions,\n\t/** indent cell content by row level */\n\tlevelIndent?: boolean,\n\t/** show expand buttons inside cell */\n\tlevelButtons?: boolean,\n\t/** custom camparison function for column sorting */\n\tcomparer?: Comparer,\n\t/** if column priority is higher then row priority, column properties has precedence over row properties */\n\tpriority?: number,\n} & tree.TreeNodeSource & ElementSource;\n \nexport class ColumnModel extends tree.TreeNodeMixin(ElementModel) {\n\n\tpublic data?: number|string;\n\n\tprivate _comparer?: Comparer;\n\tget comparer() { return this._comparer }\n\tset comparer(v: Comparer) { this._comparer = v }\n\t\n\tprivate _filter: FilterColumnOptions;\n\tget filter() {\n\t\treturn this._filter ?? (\n\t\t\t(this.model.options.filters as FilterOptions)?.enabled ? DEFAULT_FILTER_COLUMN_OPTIONS : {enabled: false}\n\t\t)\n\t}\n\tset filter(v: FilterColumnOptions) { this._filter = v }\n\tget hasFilter() { return this.filter.enabled }\n\n\tprivate _sorting: boolean;\n\tget sorting() { return this._sorting ?? this.model.options.columnSorting }\n\tset sorting(v: boolean) { this._sorting = v }\n\t\n\tprivate _width: number;\n\tget width() { return this._width ?? this.model.options.columnWidth }\n\tset width(value: number) { this._width = value }\n\t\n\tprivate _levelIndent: boolean;\n\tget levelIndent() { return this._levelIndent }\n\tset levelIndent(value: boolean) { this._levelIndent = value }\n\t\n\tprivate _levelButtons: boolean;\n\tget levelButtons() { return this._levelButtons }\n\tset levelButtons(value: boolean) { this._levelButtons = value }\n\n\tprivate _priority: number;\n\tget priority() { return this._priority }\n\tset priority(value: number) { this._priority = value }\n\n\tget address() { return encodeColumn(this.index) }\n\tget range() { return new CellRange(this.index, null, this.index, null) }\n\n\tget hasFormula() { return !!this._formula }\n\tget formula() { return this._formula }\n\tset formula(v: string) {\n\t\tsuper.formula = v;\n\t\tconst c = this.index;\n\t\tthis.model.rows.forEach(row => row.cells[c]?.refreshFormula());\n\t}\n\n\tconstructor(model: GridModel, source?: ColumnSource) {\n\t\tsuper(model, source);\n\t\tif (this._priority == null) this._priority = model.options.columnPriority;\n\t}\n\n\tpublic _header?: ColumnHeaderModel[];\n\tprivate _mergedHeaders: ColumnHeaderModel[];\n\tget mergedHeaders() {\n\t\treturn this._mergedHeaders ?? (this._mergedHeaders = (this._header?.filter(h => h.cs > 1 || h.rs > 1) ?? []));\n\t}\n\tupdateMergedHeaders() { this._mergedHeaders = null }\n\n\tset header(header: ColumnHeaderModel[]) {\n\t\tthis._mergedHeaders = null;\n\t\tthis._header = header;\n\t}\n\tget header() {\n\t\tif (!this._header || this._header.length < this.model.headerCount) {\n\t\t\tthis._header = this._header ?? [];\n\t\t\tfor (let r = this._header.length; r < this.model.headerCount; r++) {\n\t\t\t\tthis._header.push({r: r});\n\t\t\t}\n\t\t}\n\t\treturn this._header;\n\t}\n\n\tconvertSourceHeader(header: string|ColumnHeaderModel[]): ColumnHeaderModel[] {\n\t\tif (Array.isArray(header)) {\n\t\t\treturn header.map((h, r) => {\n\t\t\t\th = h ?? {r: r};\n\t\t\t\tif (h.height == null) h.height = h.h;\n\t\t\t\th.r = r;\n\t\t\t\tif (h.style == null) h.style = h.s;\n\t\t\t\th._style = h.style == null ? null : this.model.styles.add(h.style).id;\n\t\t\t\treturn h;\n\t\t\t});\n\t\t} else if (utils.isString(header)) {\n\t\t\treturn [{label: header, r: 0}]\n\t\t}\n\t\treturn null;\n\t}\n\n\tpopulate(source: ColumnSource) {\n\t\tsuper.populate(source);\n\t\tthis._width = source.w == null || source.w == 'auto' ? null : source.w;\n\t\tthis._levelIndent = source.levelIndent;\n\t\tthis._levelButtons = source.levelButtons;\n\t\tthis._header = this.convertSourceHeader(source.header);\n\t\tthis._sorting = source.sorting;\n\t\tthis._filter = utils.isObject(source.filter) \n\t\t\t? Object.assign({enabled: true}, source.filter) as FilterColumnOptions \n\t\t\t: (source.filter ? DEFAULT_FILTER_COLUMN_OPTIONS : (\n\t\t\t\tsource.filter === false ? {enabled: false} : null\n\t\t\t));\n\t\tthis._comparer = source.comparer;\n\t\tthis.data = source.data;\n\t\tthis._mergedHeaders = null;\n\t\tif (source.priority != null) this._priority = source.priority;\n\t}\n\n\tgetSourceData() {\n\t\tconst data = super.getSourceData() as ColumnSource;\n\t\tif (this._width != null) data.w = this._width;\n\t\tif (this._levelIndent != null) data.levelIndent = this._levelIndent;\n\t\tif (this._levelButtons != null) data.levelButtons = this._levelButtons;\n\t\tif (this._header != null) data.header = this._header;\n\t\tif (this._sorting != null) data.sorting = this._sorting;\n\t\tif (this._filter != null) data.filter = this._filter;\n\t\tif (this.data != null) data.data = this.data;\n\t\treturn data;\n\t}\n\n\texpand(unhide?: boolean) {\n\t\tsuper.expand(unhide);\n\t\tthis.model.indexVisibleColumns();\n\t}\n\n\tcollapse() {\n\t\tsuper.collapse();\n\t\tthis.model.indexVisibleColumns();\n\t}\n\n\tget prev() { return this.model.columns[this.index - 1] }\n\tget next() { return this.model.columns[this.index + 1] }\n\n\tget prevVisible() : ColumnModel {\n\t\tconst vi = this.model.visibleColumnIndex[this.index];\n\t\tif (vi == null || vi === 0) return null;\n\t\treturn this.model.visibleColumns[vi - 1];\n\t}\n\n\tget nextVisible() : ColumnModel {\n\t\tconst vi = this.model.visibleColumnIndex[this.index];\n\t\tif (vi == null) return null;\n\t\treturn this.model.visibleColumns[vi + 1];\n\t}\n\n\tcalculateRealColspan(colspan: number) {\n\t\tlet sc = 1;\n\t\tlet next = this.nextVisible;\n\t\twhile (next && next.index - this.index < colspan && sc < colspan) {\n\t\t\t++sc;\n\t\t\tnext = next.nextVisible;\n\t\t}\n\t\treturn sc;\n\t}\n\n\tcell(r: number) {\n\t\treturn this.model.rows[r].cell(this.index);\n\t}\n\n\tclearCalculatedValues() {\n\t\tthis.model.rows.forEach(row => {\n\t\t\tconst cell = row.cells[this.index];\n\t\t\tif (cell) this.model.calculations.refreshFormula(cell);\n\t\t});\n\t}\n\n}"]}
1
+ {"version":3,"file":"columnModel.js","sourceRoot":"","sources":["../../src/model/columnModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAiB,MAAM,gBAAgB,CAAC;AAyC7D,MAAM,6BAA6B,GAAwB;IAC1D,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,IAAI;CACb,CAAC;AAwBF,MAAM,OAAO,WAAY,SAAQ,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;IAKhE,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,CAAA,CAAC,CAAC;IACxC,IAAI,QAAQ,CAAC,CAAW,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA,CAAC,CAAC;IAGhD,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,IAAI,CACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAyB,EAAE,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,CACzG,CAAA;IACF,CAAC;IACD,IAAI,MAAM,CAAC,CAAsB,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA,CAAC,CAAC;IACvD,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA,CAAC,CAAC;IAG9C,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAA,CAAC,CAAC;IAC1E,IAAI,OAAO,CAAC,CAAU,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA,CAAC,CAAC;IAG7C,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAA,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,KAAa,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA,CAAC,CAAC;IAGhD,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;IAC9C,IAAI,WAAW,CAAC,KAAc,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA,CAAC,CAAC;IAG7D,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,aAAa,CAAA,CAAC,CAAC;IAChD,IAAI,YAAY,CAAC,KAAc,IAAI,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA,CAAC,CAAC;IAG/D,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,CAAA,CAAC,CAAC;IACxC,IAAI,QAAQ,CAAC,KAAa,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA,CAAC,CAAC;IAEtD,IAAI,OAAO,KAAK,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;IACjD,IAAI,KAAK,KAAK,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA,CAAC,CAAC;IAExE,IAAI,UAAU,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAA,CAAC,CAAC;IAC3C,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAA,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,CAAS;QACpB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAClB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,YAAY,KAAgB,EAAE,MAAqB;QAClD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACrB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;YAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;IAC3E,CAAC;IAID,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/G,CAAC;IACD,mBAAmB,KAAK,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA,CAAC,CAAC;IAEpD,IAAI,MAAM,CAAC,MAA2B;QACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IACD,IAAI,MAAM;QACT,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACnE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;YAC3B,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,gBAAgB,CAAC,KAAa;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;IACzC,CAAC;IAED,mBAAmB,CAAC,MAAkC;QACrD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1B,CAAC,GAAG,CAAC,IAAI,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC;gBAChB,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI;oBAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACR,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI;oBAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;gBACnC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtE,OAAO,CAAC,CAAC;YACV,CAAC,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,QAAQ,CAAC,MAAoB;QAC5B,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;YAC3C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,MAAM,CAAC,MAAM,CAAwB;YACtE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAClD,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC,IAAI,CACjD,CAAC,CAAC;QACJ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI;YAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC/D,CAAC;IAED,aAAa;QACZ,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,EAAkB,CAAC;QACnD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9C,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI;YAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACpE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;QACvE,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QACrD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QACrD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,CAAC,MAAgB;QACtB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;IAClC,CAAC;IAED,QAAQ;QACP,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA,CAAC,CAAC;IACxD,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA,CAAC,CAAC;IAExD,IAAI,WAAW;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,WAAW;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,EAAE,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,oBAAoB,CAAC,OAAe;QACnC,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC5B,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;YAClE,EAAE,EAAE,CAAC;YACL,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC;IAED,IAAI,CAAC,CAAS;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,qBAAqB;QACpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,IAAI;gBAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACJ,CAAC;CAED","sourcesContent":["import { tree, utils } from \"@omegagrid/core\";\nimport { CellRange, encodeColumn } from \"../common/range\";\nimport { ElementModel, ElementSource } from \"./elementModel\";\nimport { GridModel } from \"./gridModel\";\nimport { Comparer, StyleSource } from \"../types\";\nimport { CellModel } from \"./cellModel\";\nimport { FilterOptions } from \"./options\";\n\n/** Source object type for column header item */\nexport type ColumnHeaderModel = {\n\t/** row index (readonly) */\n\tr?: number;\n\t/** header label */\n\tlabel?: string;\n\t/** enable html in header label */\n\thtml?: boolean;\n\t/** column span */\n\tcs?: number;\n\t/** row span */\n\trs?: number;\n\t/** header height */\n\th?: number;\n\t/** header height alias */\n\theight?: number;\n\t/** visibility (readonly) */\n\thidden?: boolean\n\t/** header cell style */\n\ts?: StyleSource,\n\t/** header cell style alias */\n\tstyle?: StyleSource,\n\t/** style index */\n\t_style?: number,\n\t/** header cell tooltip content */\n\ttooltip?: string|unknown\n};\n\nexport type FilterColumnOptions = {\n\t/** property by which to filter */\n\tproperty?: keyof CellModel;\n\t/** enable filter */\n\tenabled: boolean;\n};\n\nconst DEFAULT_FILTER_COLUMN_OPTIONS: FilterColumnOptions = {\n\tproperty: 'value',\n\tenabled: true\n};\n\n/** Source object type for grid column */\nexport type ColumnSource = {\n\t/** column width */\n\tw?: number|'auto',\n\t/** name of data property/index in row.data */\n\tdata?: number|string,\n\t/** column header array */\n\theader?: string|ColumnHeaderModel[],\n\t/** enable column sorting */\n\tsorting?: boolean,\n\t/** enable column filtering */\n\tfilter?: boolean|FilterColumnOptions,\n\t/** indent cell content by row level */\n\tlevelIndent?: boolean,\n\t/** show expand buttons inside cell */\n\tlevelButtons?: boolean,\n\t/** custom camparison function for column sorting */\n\tcomparer?: Comparer,\n\t/** if column priority is higher then row priority, column properties has precedence over row properties */\n\tpriority?: number,\n} & tree.TreeNodeSource & ElementSource;\n \nexport class ColumnModel extends tree.TreeNodeMixin(ElementModel) {\n\n\tpublic data?: number|string;\n\n\tprivate _comparer?: Comparer;\n\tget comparer() { return this._comparer }\n\tset comparer(v: Comparer) { this._comparer = v }\n\t\n\tprivate _filter: FilterColumnOptions;\n\tget filter() {\n\t\treturn this._filter ?? (\n\t\t\t(this.model.options.filters as FilterOptions)?.enabled ? DEFAULT_FILTER_COLUMN_OPTIONS : {enabled: false}\n\t\t)\n\t}\n\tset filter(v: FilterColumnOptions) { this._filter = v }\n\tget hasFilter() { return this.filter.enabled }\n\n\tprivate _sorting: boolean;\n\tget sorting() { return this._sorting ?? this.model.options.columnSorting }\n\tset sorting(v: boolean) { this._sorting = v }\n\t\n\tprivate _width: number;\n\tget width() { return this._width ?? this.model.options.columnWidth }\n\tset width(value: number) { this._width = value }\n\t\n\tprivate _levelIndent: boolean;\n\tget levelIndent() { return this._levelIndent }\n\tset levelIndent(value: boolean) { this._levelIndent = value }\n\t\n\tprivate _levelButtons: boolean;\n\tget levelButtons() { return this._levelButtons }\n\tset levelButtons(value: boolean) { this._levelButtons = value }\n\n\tprivate _priority: number;\n\tget priority() { return this._priority }\n\tset priority(value: number) { this._priority = value }\n\n\tget address() { return encodeColumn(this.index) }\n\tget range() { return new CellRange(this.index, null, this.index, null) }\n\n\tget hasFormula() { return !!this._formula }\n\tget formula() { return this._formula }\n\tset formula(v: string) {\n\t\tsuper.formula = v;\n\t\tconst c = this.index;\n\t\tthis.model.rows.forEach(row => row.cells[c]?.refreshFormula());\n\t}\n\n\tconstructor(model: GridModel, source?: ColumnSource) {\n\t\tsuper(model, source);\n\t\tif (this._priority == null) this._priority = model.options.columnPriority;\n\t}\n\n\tpublic _header?: ColumnHeaderModel[];\n\tprivate _mergedHeaders: ColumnHeaderModel[];\n\tget mergedHeaders() {\n\t\treturn this._mergedHeaders ?? (this._mergedHeaders = (this._header?.filter(h => h.cs > 1 || h.rs > 1) ?? []));\n\t}\n\tupdateMergedHeaders() { this._mergedHeaders = null }\n\n\tset header(header: ColumnHeaderModel[]) {\n\t\tthis._mergedHeaders = null;\n\t\tthis._header = header;\n\t}\n\tget header() {\n\t\tif (!this._header || this._header.length < this.model.headerCount) {\n\t\t\tthis._header = this._header ?? [];\n\t\t\tfor (let r = this._header.length; r < this.model.headerCount; r++) {\n\t\t\t\tthis._header.push({r: r});\n\t\t\t}\n\t\t}\n\t\treturn this._header;\n\t}\n\n\thasHeaderTooltip(index: number) {\n\t\tconst header = this.header?.[index];\n\t\treturn header && header.tooltip != null;\n\t}\n\n\tconvertSourceHeader(header: string|ColumnHeaderModel[]): ColumnHeaderModel[] {\n\t\tif (Array.isArray(header)) {\n\t\t\treturn header.map((h, r) => {\n\t\t\t\th = h ?? {r: r};\n\t\t\t\tif (h.height == null) h.height = h.h;\n\t\t\t\th.r = r;\n\t\t\t\tif (h.style == null) h.style = h.s;\n\t\t\t\th._style = h.style == null ? null : this.model.styles.add(h.style).id;\n\t\t\t\treturn h;\n\t\t\t});\n\t\t} else if (utils.isString(header)) {\n\t\t\treturn [{label: header, r: 0}]\n\t\t}\n\t\treturn null;\n\t}\n\n\tpopulate(source: ColumnSource) {\n\t\tsuper.populate(source);\n\t\tthis._width = source.w == null || source.w == 'auto' ? null : source.w;\n\t\tthis._levelIndent = source.levelIndent;\n\t\tthis._levelButtons = source.levelButtons;\n\t\tthis._header = this.convertSourceHeader(source.header);\n\t\tthis._sorting = source.sorting;\n\t\tthis._filter = utils.isObject(source.filter) \n\t\t\t? Object.assign({enabled: true}, source.filter) as FilterColumnOptions \n\t\t\t: (source.filter ? DEFAULT_FILTER_COLUMN_OPTIONS : (\n\t\t\t\tsource.filter === false ? {enabled: false} : null\n\t\t\t));\n\t\tthis._comparer = source.comparer;\n\t\tthis.data = source.data;\n\t\tthis._mergedHeaders = null;\n\t\tif (source.priority != null) this._priority = source.priority;\n\t}\n\n\tgetSourceData() {\n\t\tconst data = super.getSourceData() as ColumnSource;\n\t\tif (this._width != null) data.w = this._width;\n\t\tif (this._levelIndent != null) data.levelIndent = this._levelIndent;\n\t\tif (this._levelButtons != null) data.levelButtons = this._levelButtons;\n\t\tif (this._header != null) data.header = this._header;\n\t\tif (this._sorting != null) data.sorting = this._sorting;\n\t\tif (this._filter != null) data.filter = this._filter;\n\t\tif (this.data != null) data.data = this.data;\n\t\treturn data;\n\t}\n\n\texpand(unhide?: boolean) {\n\t\tsuper.expand(unhide);\n\t\tthis.model.indexVisibleColumns();\n\t}\n\n\tcollapse() {\n\t\tsuper.collapse();\n\t\tthis.model.indexVisibleColumns();\n\t}\n\n\tget prev() { return this.model.columns[this.index - 1] }\n\tget next() { return this.model.columns[this.index + 1] }\n\n\tget prevVisible() : ColumnModel {\n\t\tconst vi = this.model.visibleColumnIndex[this.index];\n\t\tif (vi == null || vi === 0) return null;\n\t\treturn this.model.visibleColumns[vi - 1];\n\t}\n\n\tget nextVisible() : ColumnModel {\n\t\tconst vi = this.model.visibleColumnIndex[this.index];\n\t\tif (vi == null) return null;\n\t\treturn this.model.visibleColumns[vi + 1];\n\t}\n\n\tcalculateRealColspan(colspan: number) {\n\t\tlet sc = 1;\n\t\tlet next = this.nextVisible;\n\t\twhile (next && next.index - this.index < colspan && sc < colspan) {\n\t\t\t++sc;\n\t\t\tnext = next.nextVisible;\n\t\t}\n\t\treturn sc;\n\t}\n\n\tcell(r: number) {\n\t\treturn this.model.rows[r].cell(this.index);\n\t}\n\n\tclearCalculatedValues() {\n\t\tthis.model.rows.forEach(row => {\n\t\t\tconst cell = row.cells[this.index];\n\t\t\tif (cell) this.model.calculations.refreshFormula(cell);\n\t\t});\n\t}\n\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omegagrid/grid-core",
3
- "version": "0.9.27",
3
+ "version": "0.9.28",
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.9.27",
32
- "@omegagrid/localize": "^0.9.27",
31
+ "@omegagrid/core": "^0.9.28",
32
+ "@omegagrid/localize": "^0.9.28",
33
33
  "@stdlib/stats": "^0.0.13",
34
34
  "color": "^4.2.3",
35
35
  "date-fns": "^3.2.0",