@omegagrid/plugin-charts 0.7.12 → 0.7.14

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,5 +1,5 @@
1
1
  import { ComponentFactory, Plugin } from '@omegagrid/core';
2
- import { CellAddress, Grid, GridEvent } from '@omegagrid/grid';
2
+ import { CellAddress, Grid, GridEditEvent } from '@omegagrid/grid';
3
3
  import { ChartModel } from './model';
4
4
  import { ChartSource } from './types';
5
5
  import { Chart } from './ui';
@@ -15,7 +15,7 @@ export declare class ChartGridPlugin extends Plugin<Grid> {
15
15
  getAffectedModels(sheet: string, cells: CellAddress[]): number[];
16
16
  addModel(source: ChartSource): ChartModel;
17
17
  clear(): void;
18
- _onEdit: (e: GridEvent) => void;
18
+ _onEdit: (e: GridEditEvent) => void;
19
19
  init(grid: Grid): void;
20
20
  }
21
21
  //# sourceMappingURL=gridPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gridPlugin.d.ts","sourceRoot":"","sources":["../src/gridPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAO,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAE7B,qBAAa,eAAgB,SAAQ,MAAM,CAAC,IAAI,CAAC;IAEhD,MAAM,CAAC,UAAU,SAAY;IAE7B,IAAI,MAAM,IAAuE,GAAG,CAAC,UAAU,CAAC,CAAG;IAEnG,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,YAAY,CAAiD;IACrE,OAAO,CAAC,KAAK,CAAmB;IAEhC,eAAe,GAAI,OAAO,UAAU,KAAG,gBAAgB,CAKrD;IAEF,eAAe,CAAC,KAAK,EAAE,UAAU;IAIjC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE;IASrD,QAAQ,CAAC,MAAM,EAAE,WAAW;IAiC5B,KAAK;IAML,OAAO,GAAI,GAAG,SAAS,UAGrB;IAEF,IAAI,CAAC,IAAI,EAAE,IAAI;CAkBf"}
1
+ {"version":3,"file":"gridPlugin.d.ts","sourceRoot":"","sources":["../src/gridPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAO,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAa,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAE7B,qBAAa,eAAgB,SAAQ,MAAM,CAAC,IAAI,CAAC;IAEhD,MAAM,CAAC,UAAU,SAAY;IAE7B,IAAI,MAAM,IAAuE,GAAG,CAAC,UAAU,CAAC,CAAG;IAEnG,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,YAAY,CAAiD;IACrE,OAAO,CAAC,KAAK,CAAmB;IAEhC,eAAe,GAAI,OAAO,UAAU,KAAG,gBAAgB,CAKrD;IAEF,eAAe,CAAC,KAAK,EAAE,UAAU;IAIjC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE;IASrD,QAAQ,CAAC,MAAM,EAAE,WAAW;IAiC5B,KAAK;IAML,OAAO,GAAI,GAAG,aAAa,UAIzB;IAEF,IAAI,CAAC,IAAI,EAAE,IAAI;CAkBf"}
@@ -13,6 +13,8 @@ export class ChartGridPlugin extends Plugin {
13
13
  return chart;
14
14
  };
15
15
  this._onEdit = (e) => {
16
+ if (!e.cells)
17
+ return;
16
18
  const models = this.getAffectedModels(e.grid.model.name, e.cells.map(c => c.address));
17
19
  models.forEach(i => this.charts.get(i)?.refresh());
18
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"gridPlugin.js","sourceRoot":"","sources":["../src/gridPlugin.ts"],"names":[],"mappings":"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","sourcesContent":["\nimport { ComponentFactory, Plugin, dom } from '@omegagrid/core';\nimport { CellAddress, Grid, GridEvent } from '@omegagrid/grid';\nimport { ChartModel } from './model';\nimport { ChartSource } from './types';\nimport { Chart } from './ui';\n\nexport class ChartGridPlugin extends Plugin<Grid> {\n\n\tstatic pluginName = 'charts';\n\n\tget models() { return this.grid.model.otherModels[ChartGridPlugin.pluginName] as Set<ChartModel>; }\n\n\tprivate grid: Grid;\n\tprivate charts = new Map<number, Chart>();\n\tprivate dependencies = new Map<string, Map<CellAddress, number[]>>();\n\tprivate grids = new Set<Grid>();\n\n\tgetChartFactory = (model: ChartModel): ComponentFactory => () => {\t\n\t\tconst chart = dom.createElement<Chart>('og-plugin-chart');\n\t\tchart.model = model;\n\t\tthis.charts.set(model.index, chart);\n\t\treturn chart;\n\t};\n\n\tgetChartByModel(model: ChartModel) {\n\t\treturn this.charts.get(model.index);\n\t}\n\n\tgetAffectedModels(sheet: string, cells: CellAddress[]) {\n\t\tconst models = new Set<number>();\n\t\tcells.forEach(cell => {\n\t\t\tconst deps = this.dependencies.get(sheet)?.get(cell);\n\t\t\tif (deps) deps.forEach(i => models.add(i));\n\t\t});\n\t\treturn Array.from(models);\n\t}\n\n\taddModel(source: ChartSource) {\n\t\tconst model = new ChartModel(this.grid.model, source);\n\t\tmodel.index = this.models.size;\n\n\t\tconst sheet = model.datasheetName || this.grid.model.name;\n\t\tconst sheetDeps = this.dependencies.get(sheet) ?? new Map<CellAddress, number[]>();\n\t\tthis.dependencies.set(sheet, sheetDeps);\n\n\t\tif (model.title == null) {\n\t\t\tmodel.title = `Chart #${this.models.size + 1}`;\t\n\t\t}\n\n\t\tmodel.dependencies.forEach(a1 => {\n\t\t\tconst deps = sheetDeps.get(a1) || [];\n\t\t\tdeps.push(model.index);\n\t\t\tsheetDeps.set(a1, deps);\n\t\t});\n\n\t\tthis.models.add(model);\n\n\t\tthis.grid.objects.add({model: model, createComponent: this.getChartFactory(model)});\n\n\t\tif (sheet) {\n\t\t\tconst connectedGrid = this.grid.getConnectedGrid(sheet);\n\t\t\tif (!this.grids.has(connectedGrid)) {\n\t\t\t\tconnectedGrid.addEventListener('grid.edit', this._onEdit);\n\t\t\t\tthis.grids.add(connectedGrid);\n\t\t\t}\n\t\t}\n\n\t\treturn model;\n\t}\n\n\tclear() {\n\t\tthis.models.clear();\n\t\tthis.charts = new Map();\n\t\tthis.dependencies = new Map();\n\t}\n\n\t_onEdit = (e: GridEvent) => {\n\t\tconst models = this.getAffectedModels(e.grid.model.name, e.cells.map(c => c.address));\n\t\tmodels.forEach(i => this.charts.get(i)?.refresh());\n\t};\n\n\tinit(grid: Grid) {\n\t\tthis.grid = grid;\n\t\tgrid.model.otherModels[ChartGridPlugin.pluginName] = new Set<ChartModel>();\n\t\tgrid.addEventListener('grid.loadmodel', (e: GridEvent) => {\n\t\t\tthis.clear();\n\t\t\tif (!e.grid.model.otherSourceData.charts) return;\n\t\t\tconst sourceData = e.grid.model.otherSourceData.charts as ChartSource[];\n\t\t\tsourceData.forEach((source) => this.addModel(source));\n\t\t});\n\n\t\tgrid.addEventListener('grid.edit', this._onEdit);\n\t\tthis.grids.add(grid);\n\n\t\t// grid.addEventListener('grid.calculate', (e: GridEvent) => {\n\t\t// \tconsole.log('calculate', e.cells);\n\t\t// });\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"gridPlugin.js","sourceRoot":"","sources":["../src/gridPlugin.ts"],"names":[],"mappings":"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","sourcesContent":["\nimport { ComponentFactory, Plugin, dom } from '@omegagrid/core';\nimport { CellAddress, Grid, GridEditEvent, GridEvent } from '@omegagrid/grid';\nimport { ChartModel } from './model';\nimport { ChartSource } from './types';\nimport { Chart } from './ui';\n\nexport class ChartGridPlugin extends Plugin<Grid> {\n\n\tstatic pluginName = 'charts';\n\n\tget models() { return this.grid.model.otherModels[ChartGridPlugin.pluginName] as Set<ChartModel>; }\n\n\tprivate grid: Grid;\n\tprivate charts = new Map<number, Chart>();\n\tprivate dependencies = new Map<string, Map<CellAddress, number[]>>();\n\tprivate grids = new Set<Grid>();\n\n\tgetChartFactory = (model: ChartModel): ComponentFactory => () => {\t\n\t\tconst chart = dom.createElement<Chart>('og-plugin-chart');\n\t\tchart.model = model;\n\t\tthis.charts.set(model.index, chart);\n\t\treturn chart;\n\t};\n\n\tgetChartByModel(model: ChartModel) {\n\t\treturn this.charts.get(model.index);\n\t}\n\n\tgetAffectedModels(sheet: string, cells: CellAddress[]) {\n\t\tconst models = new Set<number>();\n\t\tcells.forEach(cell => {\n\t\t\tconst deps = this.dependencies.get(sheet)?.get(cell);\n\t\t\tif (deps) deps.forEach(i => models.add(i));\n\t\t});\n\t\treturn Array.from(models);\n\t}\n\n\taddModel(source: ChartSource) {\n\t\tconst model = new ChartModel(this.grid.model, source);\n\t\tmodel.index = this.models.size;\n\n\t\tconst sheet = model.datasheetName || this.grid.model.name;\n\t\tconst sheetDeps = this.dependencies.get(sheet) ?? new Map<CellAddress, number[]>();\n\t\tthis.dependencies.set(sheet, sheetDeps);\n\n\t\tif (model.title == null) {\n\t\t\tmodel.title = `Chart #${this.models.size + 1}`;\t\n\t\t}\n\n\t\tmodel.dependencies.forEach(a1 => {\n\t\t\tconst deps = sheetDeps.get(a1) || [];\n\t\t\tdeps.push(model.index);\n\t\t\tsheetDeps.set(a1, deps);\n\t\t});\n\n\t\tthis.models.add(model);\n\n\t\tthis.grid.objects.add({model: model, createComponent: this.getChartFactory(model)});\n\n\t\tif (sheet) {\n\t\t\tconst connectedGrid = this.grid.getConnectedGrid(sheet);\n\t\t\tif (!this.grids.has(connectedGrid)) {\n\t\t\t\tconnectedGrid.addEventListener('grid.edit', this._onEdit);\n\t\t\t\tthis.grids.add(connectedGrid);\n\t\t\t}\n\t\t}\n\n\t\treturn model;\n\t}\n\n\tclear() {\n\t\tthis.models.clear();\n\t\tthis.charts = new Map();\n\t\tthis.dependencies = new Map();\n\t}\n\n\t_onEdit = (e: GridEditEvent) => {\n\t\tif (!e.cells) return;\n\t\tconst models = this.getAffectedModels(e.grid.model.name, e.cells.map(c => c.address));\n\t\tmodels.forEach(i => this.charts.get(i)?.refresh());\n\t};\n\n\tinit(grid: Grid) {\n\t\tthis.grid = grid;\n\t\tgrid.model.otherModels[ChartGridPlugin.pluginName] = new Set<ChartModel>();\n\t\tgrid.addEventListener('grid.loadmodel', (e: GridEvent) => {\n\t\t\tthis.clear();\n\t\t\tif (!e.grid.model.otherSourceData.charts) return;\n\t\t\tconst sourceData = e.grid.model.otherSourceData.charts as ChartSource[];\n\t\t\tsourceData.forEach((source) => this.addModel(source));\n\t\t});\n\n\t\tgrid.addEventListener('grid.edit', this._onEdit);\n\t\tthis.grids.add(grid);\n\n\t\t// grid.addEventListener('grid.calculate', (e: GridEvent) => {\n\t\t// \tconsole.log('calculate', e.cells);\n\t\t// });\n\t}\n\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omegagrid/plugin-charts",
3
- "version": "0.7.12",
3
+ "version": "0.7.14",
4
4
  "license": "UNLICENSED",
5
5
  "description": "Xlsx import/export plugin",
6
6
  "main": "./dist/index.js",
@@ -27,10 +27,10 @@
27
27
  "_prepublish": "yarn test && yarn lint"
28
28
  },
29
29
  "dependencies": {
30
- "@omegagrid/core": "^0.7.12",
31
- "@omegagrid/editor": "^0.7.12",
32
- "@omegagrid/grid": "^0.7.12",
33
- "@omegagrid/localize": "^0.7.12",
30
+ "@omegagrid/core": "^0.7.14",
31
+ "@omegagrid/editor": "^0.7.14",
32
+ "@omegagrid/grid": "^0.7.14",
33
+ "@omegagrid/localize": "^0.7.14",
34
34
  "lit": "^3.1.1",
35
35
  "lit-html": "^3.1.1",
36
36
  "ts-debounce": "^4.0.0"