@omegagrid/editor 0.10.2 → 0.10.4

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.
Files changed (141) hide show
  1. package/dist/commands/index.d.ts +3 -0
  2. package/dist/commands/index.d.ts.map +1 -0
  3. package/dist/commands/index.js +34 -0
  4. package/dist/commands/index.js.map +1 -0
  5. package/dist/index.d.ts +3 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +2 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/options.d.ts +12 -0
  10. package/dist/options.d.ts.map +1 -0
  11. package/dist/options.js +14 -0
  12. package/dist/options.js.map +1 -0
  13. package/dist/ui/editor.d.ts +76 -0
  14. package/dist/ui/editor.d.ts.map +1 -0
  15. package/dist/ui/editor.js +338 -0
  16. package/dist/ui/editor.js.map +1 -0
  17. package/dist/ui/editor.style.d.ts +2 -0
  18. package/dist/ui/editor.style.d.ts.map +1 -0
  19. package/dist/ui/editor.style.js +38 -0
  20. package/dist/ui/editor.style.js.map +1 -0
  21. package/dist/ui/editorZoom.d.ts +16 -0
  22. package/dist/ui/editorZoom.d.ts.map +1 -0
  23. package/dist/ui/editorZoom.js +82 -0
  24. package/dist/ui/editorZoom.js.map +1 -0
  25. package/dist/ui/editors/hyperlinkEditor.d.ts +10 -0
  26. package/dist/ui/editors/hyperlinkEditor.d.ts.map +1 -0
  27. package/dist/ui/editors/hyperlinkEditor.js +70 -0
  28. package/dist/ui/editors/hyperlinkEditor.js.map +1 -0
  29. package/dist/ui/editors/index.d.ts +6 -0
  30. package/dist/ui/editors/index.d.ts.map +1 -0
  31. package/dist/ui/editors/index.js +6 -0
  32. package/dist/ui/editors/index.js.map +1 -0
  33. package/dist/ui/editors/ruleEditor.d.ts +27 -0
  34. package/dist/ui/editors/ruleEditor.d.ts.map +1 -0
  35. package/dist/ui/editors/ruleEditor.js +251 -0
  36. package/dist/ui/editors/ruleEditor.js.map +1 -0
  37. package/dist/ui/editors/styleEditor.d.ts +14 -0
  38. package/dist/ui/editors/styleEditor.d.ts.map +1 -0
  39. package/dist/ui/editors/styleEditor.js +160 -0
  40. package/dist/ui/editors/styleEditor.js.map +1 -0
  41. package/dist/ui/editors/themeEditor.d.ts +24 -0
  42. package/dist/ui/editors/themeEditor.d.ts.map +1 -0
  43. package/dist/ui/editors/themeEditor.js +138 -0
  44. package/dist/ui/editors/themeEditor.js.map +1 -0
  45. package/dist/ui/editors/themeItemEditor.d.ts +22 -0
  46. package/dist/ui/editors/themeItemEditor.d.ts.map +1 -0
  47. package/dist/ui/editors/themeItemEditor.js +181 -0
  48. package/dist/ui/editors/themeItemEditor.js.map +1 -0
  49. package/dist/ui/forms/configForm.d.ts +12 -0
  50. package/dist/ui/forms/configForm.d.ts.map +1 -0
  51. package/dist/ui/forms/configForm.js +101 -0
  52. package/dist/ui/forms/configForm.js.map +1 -0
  53. package/dist/ui/forms/headerForm.d.ts +18 -0
  54. package/dist/ui/forms/headerForm.d.ts.map +1 -0
  55. package/dist/ui/forms/headerForm.js +144 -0
  56. package/dist/ui/forms/headerForm.js.map +1 -0
  57. package/dist/ui/forms/index.d.ts +9 -0
  58. package/dist/ui/forms/index.d.ts.map +1 -0
  59. package/dist/ui/forms/index.js +9 -0
  60. package/dist/ui/forms/index.js.map +1 -0
  61. package/dist/ui/forms/namesForm.d.ts +21 -0
  62. package/dist/ui/forms/namesForm.d.ts.map +1 -0
  63. package/dist/ui/forms/namesForm.js +124 -0
  64. package/dist/ui/forms/namesForm.js.map +1 -0
  65. package/dist/ui/forms/ruleForm.d.ts +13 -0
  66. package/dist/ui/forms/ruleForm.d.ts.map +1 -0
  67. package/dist/ui/forms/ruleForm.js +56 -0
  68. package/dist/ui/forms/ruleForm.js.map +1 -0
  69. package/dist/ui/forms/ruleForm.style.d.ts +2 -0
  70. package/dist/ui/forms/ruleForm.style.d.ts.map +1 -0
  71. package/dist/ui/forms/ruleForm.style.js +50 -0
  72. package/dist/ui/forms/ruleForm.style.js.map +1 -0
  73. package/dist/ui/forms/ruleFormThreshold.d.ts +19 -0
  74. package/dist/ui/forms/ruleFormThreshold.d.ts.map +1 -0
  75. package/dist/ui/forms/ruleFormThreshold.js +97 -0
  76. package/dist/ui/forms/ruleFormThreshold.js.map +1 -0
  77. package/dist/ui/forms/ruleList.d.ts +25 -0
  78. package/dist/ui/forms/ruleList.d.ts.map +1 -0
  79. package/dist/ui/forms/ruleList.js +169 -0
  80. package/dist/ui/forms/ruleList.js.map +1 -0
  81. package/dist/ui/forms/ruleList.style.d.ts +3 -0
  82. package/dist/ui/forms/ruleList.style.d.ts.map +1 -0
  83. package/dist/ui/forms/ruleList.style.js +69 -0
  84. package/dist/ui/forms/ruleList.style.js.map +1 -0
  85. package/dist/ui/forms/sparklineForm.d.ts +22 -0
  86. package/dist/ui/forms/sparklineForm.d.ts.map +1 -0
  87. package/dist/ui/forms/sparklineForm.js +199 -0
  88. package/dist/ui/forms/sparklineForm.js.map +1 -0
  89. package/dist/ui/forms/sparklineForm.style.d.ts +3 -0
  90. package/dist/ui/forms/sparklineForm.style.d.ts.map +1 -0
  91. package/dist/ui/forms/sparklineForm.style.js +94 -0
  92. package/dist/ui/forms/sparklineForm.style.js.map +1 -0
  93. package/dist/ui/forms/styleForm.d.ts +14 -0
  94. package/dist/ui/forms/styleForm.d.ts.map +1 -0
  95. package/dist/ui/forms/styleForm.js +151 -0
  96. package/dist/ui/forms/styleForm.js.map +1 -0
  97. package/dist/ui/formulabar.d.ts +23 -0
  98. package/dist/ui/formulabar.d.ts.map +1 -0
  99. package/dist/ui/formulabar.js +155 -0
  100. package/dist/ui/formulabar.js.map +1 -0
  101. package/dist/ui/formulabar.style.d.ts +2 -0
  102. package/dist/ui/formulabar.style.d.ts.map +1 -0
  103. package/dist/ui/formulabar.style.js +48 -0
  104. package/dist/ui/formulabar.style.js.map +1 -0
  105. package/dist/ui/gridStats.d.ts +11 -0
  106. package/dist/ui/gridStats.d.ts.map +1 -0
  107. package/dist/ui/gridStats.js +71 -0
  108. package/dist/ui/gridStats.js.map +1 -0
  109. package/dist/ui/index.d.ts +11 -0
  110. package/dist/ui/index.d.ts.map +1 -0
  111. package/dist/ui/index.js +11 -0
  112. package/dist/ui/index.js.map +1 -0
  113. package/dist/ui/sidebars/baseSidebar.d.ts +10 -0
  114. package/dist/ui/sidebars/baseSidebar.d.ts.map +1 -0
  115. package/dist/ui/sidebars/baseSidebar.js +24 -0
  116. package/dist/ui/sidebars/baseSidebar.js.map +1 -0
  117. package/dist/ui/sidebars/index.d.ts +2 -0
  118. package/dist/ui/sidebars/index.d.ts.map +1 -0
  119. package/dist/ui/sidebars/index.js +2 -0
  120. package/dist/ui/sidebars/index.js.map +1 -0
  121. package/dist/ui/sidebars/themeEditorSidebar.d.ts +14 -0
  122. package/dist/ui/sidebars/themeEditorSidebar.d.ts.map +1 -0
  123. package/dist/ui/sidebars/themeEditorSidebar.js +110 -0
  124. package/dist/ui/sidebars/themeEditorSidebar.js.map +1 -0
  125. package/dist/ui/statusbar.d.ts +19 -0
  126. package/dist/ui/statusbar.d.ts.map +1 -0
  127. package/dist/ui/statusbar.js +69 -0
  128. package/dist/ui/statusbar.js.map +1 -0
  129. package/dist/ui/toolbar.config.d.ts +7 -0
  130. package/dist/ui/toolbar.config.d.ts.map +1 -0
  131. package/dist/ui/toolbar.config.js +166 -0
  132. package/dist/ui/toolbar.config.js.map +1 -0
  133. package/dist/ui/toolbar.d.ts +42 -0
  134. package/dist/ui/toolbar.d.ts.map +1 -0
  135. package/dist/ui/toolbar.js +356 -0
  136. package/dist/ui/toolbar.js.map +1 -0
  137. package/dist/ui/toolbar.style.d.ts +2 -0
  138. package/dist/ui/toolbar.style.d.ts.map +1 -0
  139. package/dist/ui/toolbar.style.js +22 -0
  140. package/dist/ui/toolbar.style.js.map +1 -0
  141. package/package.json +10 -10
@@ -0,0 +1,101 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { SelectMode } from '@omegagrid/tree';
8
+ import { customElement, property } from 'lit/decorators.js';
9
+ import { FormContainer, FormControlType } from "@omegagrid/form";
10
+ import { utils } from '@omegagrid/grid';
11
+ const visibilityControlItem = {
12
+ type: FormControlType.List, value: [], content: {
13
+ sourceData: [{ k: true, v: 'Visible', icon: 'eye' }, { k: false, v: 'Hidden', icon: 'eye-slash' }],
14
+ options: { allowEmpty: false, checkboxes: false, selectMode: SelectMode.Single, autoClose: true }
15
+ }
16
+ };
17
+ const formContainerSettings = [{
18
+ caption: 'Sheet Settings',
19
+ controls: [
20
+ { row: 0, col: 0, type: FormControlType.Label, value: 'Name' },
21
+ { row: 0, col: 1, type: FormControlType.TextInput, key: 'name', pattern: utils.SHEET_NAME_REGEX },
22
+ { row: 1, col: 0, type: FormControlType.Label, value: 'Sheet' },
23
+ Object.assign({ row: 1, col: 1, key: 'visible' }, visibilityControlItem),
24
+ { row: 2, col: 0, type: FormControlType.Label, value: 'Color' },
25
+ { row: 2, col: 1, type: FormControlType.ColorInput, key: 'color' },
26
+ { row: 3, col: 0, type: FormControlType.Label, value: 'Grid' },
27
+ Object.assign({ row: 3, col: 1, key: 'grid' }, visibilityControlItem),
28
+ { row: 4, col: 0, type: FormControlType.Label, value: 'Row numbers' },
29
+ Object.assign({ row: 4, col: 1, key: 'rowNumbers' }, visibilityControlItem),
30
+ { row: 5, col: 0, type: FormControlType.Label, value: 'Column letters' },
31
+ Object.assign({ row: 5, col: 1, key: 'colLetters' }, visibilityControlItem),
32
+ ], columns: [{ width: 120 }, { width: null }]
33
+ }, {
34
+ caption: 'Workbook Settings',
35
+ controls: [
36
+ { row: 0, col: 0, type: FormControlType.Label, value: 'Hidden Sheets' },
37
+ Object.assign({ row: 0, col: 1, key: 'hiddenSheetsVisible' }, visibilityControlItem),
38
+ ], columns: [{ width: 120 }, { width: null }]
39
+ }];
40
+ let ConfigForm = class ConfigForm extends FormContainer {
41
+ connectedCallback() {
42
+ super.connectedCallback();
43
+ this.setSourceData(formContainerSettings);
44
+ }
45
+ firstUpdated() {
46
+ this.addEventListener('form.change', (e) => {
47
+ if (!e.valid)
48
+ return;
49
+ const values = this.forms[0].values;
50
+ const globalValues = this.forms[1].values;
51
+ const model = this.model;
52
+ model.options.grid = values['grid'];
53
+ model.options.rowNumbers = values['rowNumbers'];
54
+ model.options.colLetters = values['colLetters'];
55
+ if (model.name != values['name']) {
56
+ try {
57
+ this.group.renameSheet(model.name, values['name']);
58
+ }
59
+ catch (error) {
60
+ setTimeout(() => this.forms[0].setValue('name', model.name), 100);
61
+ }
62
+ }
63
+ model.tab = model.tab || {};
64
+ model.tab.color = values['color'];
65
+ model.tab.hidden = !values['visible'];
66
+ this.group.options.showHiddenTabs = !!globalValues['hiddenSheetsVisible'];
67
+ this.group.updateTabs();
68
+ this.grid?.table.refresh();
69
+ });
70
+ }
71
+ async updated() {
72
+ await this.forms[0].updateComplete;
73
+ await this.forms[1].updateComplete;
74
+ this.forms[0].values = this.model ? {
75
+ name: this.model.name,
76
+ color: this.model.tab?.color,
77
+ visible: !this.model.tab?.hidden,
78
+ grid: this.model.options.grid,
79
+ rowNumbers: this.model.options.rowNumbers,
80
+ colLetters: this.model.options.colLetters
81
+ } : {};
82
+ this.forms[1].values = this.model ? {
83
+ hiddenSheetsVisible: !!this.group.options.showHiddenTabs
84
+ } : {};
85
+ }
86
+ };
87
+ ConfigForm.styles = [...FormContainer.styles];
88
+ __decorate([
89
+ property({ type: Object })
90
+ ], ConfigForm.prototype, "model", void 0);
91
+ __decorate([
92
+ property({ type: Object })
93
+ ], ConfigForm.prototype, "grid", void 0);
94
+ __decorate([
95
+ property({ type: Object })
96
+ ], ConfigForm.prototype, "group", void 0);
97
+ ConfigForm = __decorate([
98
+ customElement('og-editor-form-config')
99
+ ], ConfigForm);
100
+ export { ConfigForm };
101
+ //# sourceMappingURL=configForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configForm.js","sourceRoot":"","sources":["../../../src/ui/forms/configForm.ts"],"names":[],"mappings":"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","sourcesContent":["import { SelectMode } from '@omegagrid/tree';\nimport { customElement, property } from 'lit/decorators.js';\nimport { FormContainer, FormControlProperties, FormControlType, FormEvent } from \"@omegagrid/form\";\nimport { Grid, GridGroup, GridModel, utils } from '@omegagrid/grid';\n\nconst visibilityControlItem: Partial<FormControlProperties> = {\n\ttype: FormControlType.List, value: [], content: {\n\tsourceData: [{k: true, v: 'Visible', icon: 'eye'}, {k: false, v: 'Hidden', icon: 'eye-slash'}],\n\toptions: {allowEmpty: false, checkboxes: false, selectMode: SelectMode.Single, autoClose: true}\n}};\t\n\nconst formContainerSettings = [{\n\tcaption: 'Sheet Settings',\n\tcontrols: [\n\t\t{row: 0, col: 0, type: FormControlType.Label, value: 'Name'},\n\t\t{row: 0, col: 1, type: FormControlType.TextInput, key: 'name', pattern: utils.SHEET_NAME_REGEX},\n\t\t{row: 1, col: 0, type: FormControlType.Label, value: 'Sheet'},\n\t\tObject.assign({row: 1, col: 1, key: 'visible'}, visibilityControlItem),\n\t\t{row: 2, col: 0, type: FormControlType.Label, value: 'Color'},\n\t\t{row: 2, col: 1, type: FormControlType.ColorInput, key: 'color'},\n\t\t{row: 3, col: 0, type: FormControlType.Label, value: 'Grid'},\n\t\tObject.assign({row: 3, col: 1, key: 'grid'}, visibilityControlItem),\n\t\t{row: 4, col: 0, type: FormControlType.Label, value: 'Row numbers'},\n\t\tObject.assign({row: 4, col: 1, key: 'rowNumbers'}, visibilityControlItem),\n\t\t{row: 5, col: 0, type: FormControlType.Label, value: 'Column letters'},\n\t\tObject.assign({row: 5, col: 1, key: 'colLetters'}, visibilityControlItem),\n\t], columns: [{width: 120}, {width: null}]\n}, {\n\tcaption: 'Workbook Settings',\n\tcontrols: [\n\t\t{row: 0, col: 0, type: FormControlType.Label, value: 'Hidden Sheets'},\n\t\tObject.assign({row: 0, col: 1, key: 'hiddenSheetsVisible'}, visibilityControlItem),\n\t], columns: [{width: 120}, {width: null}]\n}];\n\n@customElement('og-editor-form-config')\nexport class ConfigForm extends FormContainer {\n\n\tstatic styles = [...FormContainer.styles];\n\n\t@property({type: Object})\n\tmodel: GridModel;\n\n\t@property({type: Object})\n\tgrid: Grid;\n\n\t@property({type: Object})\n\tgroup: GridGroup;\n\t\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.setSourceData(formContainerSettings);\n\t}\n\n\tfirstUpdated() {\n\t\tthis.addEventListener('form.change', (e: FormEvent) => {\n\t\t\tif (!e.valid) return;\n\n\t\t\tconst values = this.forms[0].values;\n\t\t\tconst globalValues = this.forms[1].values;\n\n\t\t\tconst model = this.model;\n\n\t\t\tmodel.options.grid = values['grid'] as boolean;\n\t\t\tmodel.options.rowNumbers = values['rowNumbers'] as boolean;\n\t\t\tmodel.options.colLetters = values['colLetters'] as boolean;\n\n\t\t\tif (model.name != values['name']) {\n\t\t\t\ttry {\n\t\t\t\t\tthis.group.renameSheet(model.name, values['name'] as string);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tsetTimeout(() => this.forms[0].setValue('name', model.name), 100);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tmodel.tab = model.tab || {};\n\t\t\tmodel.tab.color = values['color'] as string;\n\t\t\tmodel.tab.hidden = !values['visible'];\n\t\t\t\n\t\t\tthis.group.options.showHiddenTabs = !!globalValues['hiddenSheetsVisible'];\n\n\t\t\tthis.group.updateTabs();\n\t\t\tthis.grid?.table.refresh();\n\t\t});\n\t}\n\n\tasync updated() {\n\t\tawait this.forms[0].updateComplete;\n\t\tawait this.forms[1].updateComplete;\n\t\t\n\t\tthis.forms[0].values = this.model ? {\n\t\t\tname: this.model.name,\n\t\t\tcolor: this.model.tab?.color,\n\t\t\tvisible: !this.model.tab?.hidden,\n\t\t\tgrid: this.model.options.grid,\n\t\t\trowNumbers: this.model.options.rowNumbers,\n\t\t\tcolLetters: this.model.options.colLetters\n\t\t} : {};\n\n\t\tthis.forms[1].values = this.model ? {\n\t\t\thiddenSheetsVisible: !!this.group.options.showHiddenTabs\n\t\t} : {};\n\n\t}\n\n}"]}
@@ -0,0 +1,18 @@
1
+ import { FormContainer, FormSettings } from "@omegagrid/form";
2
+ import { CellRange, Grid } from '@omegagrid/grid';
3
+ import { LitElement } from 'lit';
4
+ export declare class HeaderForm extends LitElement {
5
+ grid: Grid;
6
+ range: CellRange;
7
+ formContainer: FormContainer;
8
+ headerCount: number;
9
+ formConfig: FormSettings[];
10
+ connectedCallback(): void;
11
+ getGridColumn(): import("@omegagrid/grid").ColumnModel;
12
+ getFormContainerConfig(): FormSettings[];
13
+ constructor();
14
+ willUpdate(props: Map<PropertyKey, unknown>): void;
15
+ updated(props: Map<PropertyKey, unknown>): void;
16
+ render: () => import("lit-html").TemplateResult<1>;
17
+ }
18
+ //# sourceMappingURL=headerForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headerForm.d.ts","sourceRoot":"","sources":["../../../src/ui/forms/headerForm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,YAAY,EAA8B,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAqB,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAEvC,qBACa,UAAW,SAAQ,UAAU;IAGzC,IAAI,EAAE,IAAI,CAAC;IAGX,KAAK,EAAE,SAAS,CAAC;IAGjB,aAAa,EAAE,aAAa,CAAC;IAG7B,WAAW,EAAE,MAAM,CAAC;IAEpB,UAAU,EAAE,YAAY,EAAE,CAAC;IAE3B,iBAAiB;IAIjB,aAAa;IAIb,sBAAsB,IA4EI,YAAY,EAAE;;IA6BxC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;IAM3C,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;IAMxC,MAAM,6CAEJ;CAEF"}
@@ -0,0 +1,144 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { customElement, property, query, state } from 'lit/decorators.js';
8
+ import { FormControlType } from "@omegagrid/form";
9
+ import { html, LitElement } from 'lit';
10
+ let HeaderForm = class HeaderForm extends LitElement {
11
+ connectedCallback() {
12
+ super.connectedCallback();
13
+ }
14
+ getGridColumn() {
15
+ return this.grid.model.columns[this.range.c1];
16
+ }
17
+ getFormContainerConfig() {
18
+ const formSettings = {
19
+ caption: 'Headers',
20
+ controls: [],
21
+ columns: [{ width: null }, { width: 60 }, { width: 60 }, { width: 20 }]
22
+ };
23
+ if (this.range) {
24
+ if (this.headerCount > 0) {
25
+ formSettings.controls.push({
26
+ row: 0,
27
+ col: 0,
28
+ type: FormControlType.Label,
29
+ value: 'Label'
30
+ });
31
+ formSettings.controls.push({
32
+ row: 0,
33
+ col: 1,
34
+ type: FormControlType.Label,
35
+ value: 'Colspan'
36
+ });
37
+ formSettings.controls.push({
38
+ row: 0,
39
+ col: 2,
40
+ type: FormControlType.Label,
41
+ value: 'Rowspan'
42
+ });
43
+ }
44
+ const column = this.getGridColumn();
45
+ for (let h = 0; h < this.headerCount; h++) {
46
+ const r = h + 1;
47
+ formSettings.controls.push({
48
+ row: r,
49
+ col: 0,
50
+ type: FormControlType.TextInput,
51
+ key: `label-${h}`,
52
+ value: column.header[h]?.label
53
+ });
54
+ formSettings.controls.push({
55
+ row: r,
56
+ col: 1,
57
+ type: FormControlType.NumericInput,
58
+ key: `colspan-${h}`,
59
+ value: column.header[h]?.cs || 1
60
+ });
61
+ formSettings.controls.push({
62
+ row: r,
63
+ col: 2,
64
+ type: FormControlType.NumericInput,
65
+ key: `rowspan-${h}`,
66
+ value: column.header[h]?.rs || 1
67
+ });
68
+ formSettings.controls.push({
69
+ row: r,
70
+ col: 3,
71
+ type: FormControlType.Button,
72
+ key: `remove-${h}`,
73
+ options: { color: 'red', icon: 'trash' }
74
+ });
75
+ }
76
+ formSettings.controls.push({
77
+ row: this.headerCount + 1,
78
+ col: 0,
79
+ type: FormControlType.Button,
80
+ key: 'add',
81
+ value: '+',
82
+ cs: 3
83
+ });
84
+ }
85
+ return [formSettings];
86
+ }
87
+ constructor() {
88
+ super();
89
+ this.render = () => html `
90
+ <og-form-container></og-form-container>
91
+ `;
92
+ this.addEventListener('form.change', (e) => {
93
+ if (e.key == 'add')
94
+ ++this.headerCount;
95
+ else if (e.key.startsWith('remove-')) {
96
+ const h = parseInt(e.key.substring(7));
97
+ this.grid.model.removeHeader(h);
98
+ this.grid.rendering.updateHeaders();
99
+ --this.headerCount;
100
+ }
101
+ else {
102
+ const values = this.formContainer.forms[0].values;
103
+ const column = this.getGridColumn();
104
+ const headers = [];
105
+ for (let h = 0; h < this.headerCount; h++) {
106
+ headers.push(Object.assign(column.header[h] || {}, {
107
+ label: values[`label-${h}`],
108
+ cs: values[`colspan-${h}`],
109
+ rs: values[`rowspan-${h}`]
110
+ }));
111
+ }
112
+ column.header = headers;
113
+ this.grid.rendering.updateHeaders();
114
+ }
115
+ });
116
+ }
117
+ willUpdate(props) {
118
+ if (props.has('range') && !props.has('headerCount')) {
119
+ this.headerCount = this.grid ? this.grid.model.headerCount : 0;
120
+ }
121
+ }
122
+ updated(props) {
123
+ if (props.has('range') || props.has('headerCount')) {
124
+ this.formContainer.setSourceData(this.getFormContainerConfig());
125
+ }
126
+ }
127
+ };
128
+ __decorate([
129
+ property({ type: Object })
130
+ ], HeaderForm.prototype, "grid", void 0);
131
+ __decorate([
132
+ property({ type: Object })
133
+ ], HeaderForm.prototype, "range", void 0);
134
+ __decorate([
135
+ query('og-form-container')
136
+ ], HeaderForm.prototype, "formContainer", void 0);
137
+ __decorate([
138
+ state()
139
+ ], HeaderForm.prototype, "headerCount", void 0);
140
+ HeaderForm = __decorate([
141
+ customElement('og-editor-form-headers')
142
+ ], HeaderForm);
143
+ export { HeaderForm };
144
+ //# sourceMappingURL=headerForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headerForm.js","sourceRoot":"","sources":["../../../src/ui/forms/headerForm.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAA+B,eAAe,EAAa,MAAM,iBAAiB,CAAC;AAE1F,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAGhC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,UAAU;IAgBzC,iBAAiB;QAChB,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,sBAAsB;QACrB,MAAM,YAAY,GAAiB;YAClC,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC;SAC/D,CAAC;QAEF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;gBAC1B,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAC1B,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,eAAe,CAAC,KAAK;oBAC3B,KAAK,EAAE,OAAO;iBACd,CAAC,CAAC;gBAEH,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAC1B,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,eAAe,CAAC,KAAK;oBAC3B,KAAK,EAAE,SAAS;iBAChB,CAAC,CAAC;gBAEH,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAC1B,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,eAAe,CAAC,KAAK;oBAC3B,KAAK,EAAE,SAAS;iBAChB,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChB,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAC1B,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,eAAe,CAAC,SAAS;oBAC/B,GAAG,EAAE,SAAS,CAAC,EAAE;oBACjB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK;iBAC9B,CAAC,CAAC;gBAEH,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAC1B,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,eAAe,CAAC,YAAY;oBAClC,GAAG,EAAE,WAAW,CAAC,EAAE;oBACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC;iBAChC,CAAC,CAAC;gBAEH,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAC1B,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,eAAe,CAAC,YAAY;oBAClC,GAAG,EAAE,WAAW,CAAC,EAAE;oBACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC;iBAChC,CAAC,CAAC;gBAEH,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAC1B,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,eAAe,CAAC,MAAM;oBAC5B,GAAG,EAAE,UAAU,CAAC,EAAE;oBAClB,OAAO,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAC;iBACtC,CAAC,CAAC;YACJ,CAAC;YACD,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC1B,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC;gBACzB,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,eAAe,CAAC,MAAM;gBAC5B,GAAG,EAAE,KAAK;gBACV,KAAK,EAAE,GAAG;gBACV,EAAE,EAAE,CAAC;aACL,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,YAAY,CAAmB,CAAC;IACzC,CAAC;IAED;QACC,KAAK,EAAE,CAAC;QAqCT,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;EAElB,CAAC;QAtCD,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAY,EAAE,EAAE;YACrD,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK;gBAAE,EAAE,IAAI,CAAC,WAAW,CAAC;iBAClC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;gBACpC,EAAE,IAAI,CAAC,WAAW,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACP,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAClD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAwB,EAAE,CAAC;gBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;wBAClD,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC3B,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC1B,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;qBAC1B,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;YACrC,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,KAAgC;QAC1C,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;IACF,CAAC;IAED,OAAO,CAAC,KAAgC;QACvC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;QACjE,CAAC;IACF,CAAC;CAMD,CAAA;AA9IA;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;wCACd;AAGX;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;yCACR;AAGjB;IADC,KAAK,CAAC,mBAAmB,CAAC;iDACE;AAG7B;IADC,KAAK,EAAE;+CACY;AAZR,UAAU;IADtB,aAAa,CAAC,wBAAwB,CAAC;GAC3B,UAAU,CAiJtB","sourcesContent":["import { customElement, property, query, state } from 'lit/decorators.js';\nimport { FormContainer, FormSettings, FormControlType, FormEvent } from \"@omegagrid/form\";\nimport { CellRange, ColumnHeaderModel, Grid } from '@omegagrid/grid';\nimport { html, LitElement } from 'lit';\n\n@customElement('og-editor-form-headers')\nexport class HeaderForm extends LitElement {\n\n\t@property({type: Object})\n\tgrid: Grid;\n\n\t@property({type: Object})\n\trange: CellRange;\n\n\t@query('og-form-container')\n\tformContainer: FormContainer;\n\n\t@state()\n\theaderCount: number;\n\n\tformConfig: FormSettings[];\n\t\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t}\n\n\tgetGridColumn() {\n\t\treturn this.grid.model.columns[this.range.c1];\n\t}\n\n\tgetFormContainerConfig() {\n\t\tconst formSettings: FormSettings = {\n\t\t\tcaption: 'Headers',\n\t\t\tcontrols: [],\n\t\t\tcolumns: [{width: null}, {width: 60}, {width: 60}, {width: 20}]\n\t\t};\n\t\t\n\t\tif (this.range) {\n\t\t\tif (this.headerCount > 0) {\n\t\t\t\tformSettings.controls.push({\n\t\t\t\t\trow: 0,\n\t\t\t\t\tcol: 0,\n\t\t\t\t\ttype: FormControlType.Label,\n\t\t\t\t\tvalue: 'Label'\n\t\t\t\t});\n\t\n\t\t\t\tformSettings.controls.push({\n\t\t\t\t\trow: 0,\n\t\t\t\t\tcol: 1,\n\t\t\t\t\ttype: FormControlType.Label,\n\t\t\t\t\tvalue: 'Colspan'\n\t\t\t\t});\n\t\n\t\t\t\tformSettings.controls.push({\n\t\t\t\t\trow: 0,\n\t\t\t\t\tcol: 2,\n\t\t\t\t\ttype: FormControlType.Label,\n\t\t\t\t\tvalue: 'Rowspan'\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst column = this.getGridColumn();\n\t\t\tfor (let h = 0; h < this.headerCount; h++) {\n\t\t\t\tconst r = h + 1;\n\t\t\t\tformSettings.controls.push({\n\t\t\t\t\trow: r,\n\t\t\t\t\tcol: 0,\n\t\t\t\t\ttype: FormControlType.TextInput,\n\t\t\t\t\tkey: `label-${h}`,\n\t\t\t\t\tvalue: column.header[h]?.label\n\t\t\t\t});\n\n\t\t\t\tformSettings.controls.push({\n\t\t\t\t\trow: r,\n\t\t\t\t\tcol: 1,\n\t\t\t\t\ttype: FormControlType.NumericInput,\n\t\t\t\t\tkey: `colspan-${h}`,\n\t\t\t\t\tvalue: column.header[h]?.cs || 1\n\t\t\t\t});\n\n\t\t\t\tformSettings.controls.push({\n\t\t\t\t\trow: r,\n\t\t\t\t\tcol: 2,\n\t\t\t\t\ttype: FormControlType.NumericInput,\n\t\t\t\t\tkey: `rowspan-${h}`,\n\t\t\t\t\tvalue: column.header[h]?.rs || 1\n\t\t\t\t});\n\n\t\t\t\tformSettings.controls.push({\n\t\t\t\t\trow: r,\n\t\t\t\t\tcol: 3,\n\t\t\t\t\ttype: FormControlType.Button,\n\t\t\t\t\tkey: `remove-${h}`,\n\t\t\t\t\toptions: {color: 'red', icon: 'trash'}\n\t\t\t\t});\n\t\t\t}\n\t\t\tformSettings.controls.push({\n\t\t\t\trow: this.headerCount + 1,\n\t\t\t\tcol: 0,\n\t\t\t\ttype: FormControlType.Button,\n\t\t\t\tkey: 'add',\n\t\t\t\tvalue: '+',\n\t\t\t\tcs: 3\n\t\t\t});\n\t\t}\n\n\t\treturn [formSettings] as FormSettings[];\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.addEventListener('form.change', (e: FormEvent) => {\n\t\t\tif (e.key == 'add') ++this.headerCount;\n\t\t\telse if (e.key.startsWith('remove-')) {\n\t\t\t\tconst h = parseInt(e.key.substring(7));\n\t\t\t\tthis.grid.model.removeHeader(h);\n\t\t\t\tthis.grid.rendering.updateHeaders();\n\t\t\t\t--this.headerCount;\n\t\t\t} else {\n\t\t\t\tconst values = this.formContainer.forms[0].values;\n\t\t\t\tconst column = this.getGridColumn();\n\t\t\t\tconst headers: ColumnHeaderModel[] = [];\n\t\t\t\tfor (let h = 0; h < this.headerCount; h++) {\n\t\t\t\t\theaders.push(Object.assign(column.header[h] || {}, {\n\t\t\t\t\t\tlabel: values[`label-${h}`],\n\t\t\t\t\t\tcs: values[`colspan-${h}`],\n\t\t\t\t\t\trs: values[`rowspan-${h}`]\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\tcolumn.header = headers;\n\t\t\t\tthis.grid.rendering.updateHeaders();\n\t\t\t}\n\t\t});\n\t}\n\n\twillUpdate(props: Map<PropertyKey, unknown>) {\n\t\tif (props.has('range') && !props.has('headerCount')) {\n\t\t\tthis.headerCount = this.grid ? this.grid.model.headerCount : 0;\n\t\t}\n\t}\n\n\tupdated(props: Map<PropertyKey, unknown>) {\n\t\tif (props.has('range') || props.has('headerCount')) {\n\t\t\tthis.formContainer.setSourceData(this.getFormContainerConfig());\n\t\t}\n\t}\n\n\trender = () => html`\n\t\t<og-form-container></og-form-container>\n\t`;\n\n}"]}
@@ -0,0 +1,9 @@
1
+ export * from './configForm';
2
+ export * from './headerForm';
3
+ export * from './namesForm';
4
+ export * from './ruleForm';
5
+ export * from './ruleList';
6
+ export * from './ruleFormThreshold';
7
+ export * from './styleForm';
8
+ export * from './sparklineForm';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/forms/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './configForm';
2
+ export * from './headerForm';
3
+ export * from './namesForm';
4
+ export * from './ruleForm';
5
+ export * from './ruleList';
6
+ export * from './ruleFormThreshold';
7
+ export * from './styleForm';
8
+ export * from './sparklineForm';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/forms/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC","sourcesContent":["export * from './configForm';\nexport * from './headerForm';\nexport * from './namesForm';\nexport * from './ruleForm';\nexport * from './ruleList';\nexport * from './ruleFormThreshold';\nexport * from './styleForm';\nexport * from './sparklineForm';"]}
@@ -0,0 +1,21 @@
1
+ import { List } from '@omegagrid/core';
2
+ import { CellRange, Grid, GridModel } from '@omegagrid/grid';
3
+ import { LitElement } from 'lit';
4
+ export declare class NamesForm extends LitElement {
5
+ static styles: import("lit").CSSResult[];
6
+ grid: Grid;
7
+ model: GridModel;
8
+ list: List;
9
+ _items: [string, CellRange][];
10
+ get items(): [string, CellRange][];
11
+ connectedCallback(): void;
12
+ updateList: () => void;
13
+ deleteName(index: number): void;
14
+ addName(): void;
15
+ _onApplyClick: () => void;
16
+ _onInputChange(e: Event, groupIndex: number): void;
17
+ _itemRenderer: (_div: HTMLDivElement, index: number) => import("lit-html").TemplateResult<1>;
18
+ updated(): void;
19
+ render: () => "" | import("lit-html").TemplateResult<1>;
20
+ }
21
+ //# sourceMappingURL=namesForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namesForm.d.ts","sourceRoot":"","sources":["../../../src/ui/forms/namesForm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAGvC,qBACa,SAAU,SAAQ,UAAU;IAExC,MAAM,CAAC,MAAM,4BAAW;IAGxB,IAAI,EAAE,IAAI,CAAC;IAGX,KAAK,EAAE,SAAS,CAAC;IAGjB,IAAI,EAAE,IAAI,CAAC;IAEX,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;IAC9B,IAAI,KAAK,0BAA+E;IAExF,iBAAiB;IAIjB,UAAU,aAIT;IAED,UAAU,CAAC,KAAK,EAAE,MAAM;IAKxB,OAAO;IAMP,aAAa,aAEZ;IAED,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM;IAe3C,aAAa,GAAI,MAAM,cAAc,EAAE,OAAO,MAAM,0CAsCnD;IAED,OAAO;IAIP,MAAM,kDAeC;CACP"}
@@ -0,0 +1,124 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { customElement, property, query } from 'lit/decorators.js';
8
+ import { CellRange } from '@omegagrid/grid';
9
+ import { html, LitElement } from 'lit';
10
+ import { itemStyle, style } from './sparklineForm.style';
11
+ let NamesForm = class NamesForm extends LitElement {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.updateList = () => {
15
+ this._items = null;
16
+ this.list.size = this.items.length;
17
+ this.list.renderItems(true);
18
+ };
19
+ this._onApplyClick = () => {
20
+ this.grid.rendering.render(false);
21
+ };
22
+ this._itemRenderer = (_div, index) => {
23
+ const item = this.items[index];
24
+ return html `
25
+ <div class="item-content p">
26
+ <div class="item-form">
27
+ <div class="row item-header">
28
+ <div class="item-header-title">Definition #${index + 1}</div>
29
+ <div class="item-header-controls">
30
+ <og-button
31
+ icon="trash"
32
+ color="red"
33
+ @click="${() => this.deleteName(index)}">
34
+ </og-button>
35
+ </div>
36
+ </div>
37
+
38
+ <div class="row">Name</div>
39
+ <div class="row">
40
+ <og-input
41
+ data-id="name"
42
+ .value="${item[0] || ''}"
43
+ style="width: 100%"
44
+ @change="${(e) => this._onInputChange(e, index)}">
45
+ </og-input>
46
+ </div>
47
+
48
+ <div class="row">Range</div>
49
+ <div class="row">
50
+ <og-input
51
+ data-id="range"
52
+ .value="${item[1] ? item[1].A1 : ''}"
53
+ style="width: 100%"
54
+ @change="${(e) => this._onInputChange(e, index)}">
55
+ </og-input>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ `;
60
+ };
61
+ this.render = () => this.model ? html `
62
+ <div class="controls p">
63
+ <og-button text="+" @click="${() => this.addName()}"></og-button>
64
+ <og-button @click="${this._onApplyClick}">
65
+ <div slot="content"><og-icon icon="refresh"></og-icon> Apply</div>
66
+ </og-button>
67
+ </div>
68
+ <div class="body">
69
+ <og-list ?nativeHeight="${true}"
70
+ itemHeight="120"
71
+ .customStyle=${itemStyle}
72
+ .itemRenderer="${this._itemRenderer}"
73
+ .size="${this.model.names.names.size}">
74
+ </og-list>
75
+ </div>
76
+ ` : '';
77
+ }
78
+ get items() { return this._items ?? (this._items = Array.from(this.model.names.names)); }
79
+ connectedCallback() {
80
+ super.connectedCallback();
81
+ }
82
+ deleteName(index) {
83
+ this.model.names.delete(this.items[index][0]);
84
+ this.updateList();
85
+ }
86
+ addName() {
87
+ const range = this.grid.selection.range.clone();
88
+ this.model.names.set(`${range.bounds[0][0].A1}_${range.bounds[1][1].A1}`, range);
89
+ this.updateList();
90
+ }
91
+ _onInputChange(e, groupIndex) {
92
+ const sparklines = this.model.sparklines;
93
+ const group = sparklines.groups.get(groupIndex);
94
+ const input = e.target;
95
+ switch (input.dataset.id) {
96
+ case 'locRange':
97
+ sparklines.update(groupIndex, input.value ? CellRange.fromA1(input.value) : null, group.dataRanges);
98
+ break;
99
+ case 'dataRange':
100
+ sparklines.update(groupIndex, group.locRange, input.value
101
+ ? CellRange.fromA1s(input.value).map(r => ([r, null]))
102
+ : null);
103
+ break;
104
+ }
105
+ }
106
+ updated() {
107
+ this.updateList();
108
+ }
109
+ };
110
+ NamesForm.styles = [style];
111
+ __decorate([
112
+ property({ type: Object })
113
+ ], NamesForm.prototype, "grid", void 0);
114
+ __decorate([
115
+ property({ type: Object })
116
+ ], NamesForm.prototype, "model", void 0);
117
+ __decorate([
118
+ query('og-list')
119
+ ], NamesForm.prototype, "list", void 0);
120
+ NamesForm = __decorate([
121
+ customElement('og-editor-form-names')
122
+ ], NamesForm);
123
+ export { NamesForm };
124
+ //# sourceMappingURL=namesForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namesForm.js","sourceRoot":"","sources":["../../../src/ui/forms/namesForm.ts"],"names":[],"mappings":"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","sourcesContent":["import { Input, List } from '@omegagrid/core';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { CellRange, Grid, GridModel } from '@omegagrid/grid';\nimport { html, LitElement } from 'lit';\nimport { itemStyle, style } from './sparklineForm.style';\n\n@customElement('og-editor-form-names')\nexport class NamesForm extends LitElement {\n\n\tstatic styles = [style];\n\n\t@property({type: Object})\n\tgrid: Grid;\n\n\t@property({type: Object})\n\tmodel: GridModel;\n\n\t@query('og-list')\n\tlist: List;\n\n\t_items: [string, CellRange][];\n\tget items() { return this._items ?? (this._items = Array.from(this.model.names.names)) }\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t}\n\n\tupdateList = () => {\n\t\tthis._items = null;\n\t\tthis.list.size = this.items.length;\n\t\tthis.list.renderItems(true);\n\t}\n\n\tdeleteName(index: number) {\n\t\tthis.model.names.delete(this.items[index][0]);\n\t\tthis.updateList();\n\t}\n\n\taddName() {\n\t\tconst range = this.grid.selection.range.clone();\n\t\tthis.model.names.set(`${range.bounds[0][0].A1}_${range.bounds[1][1].A1}`, range);\n\t\tthis.updateList();\n\t}\n\n\t_onApplyClick = () => {\n\t\tthis.grid.rendering.render(false);\n\t}\n\n\t_onInputChange(e: Event, groupIndex: number) {\n\t\tconst sparklines = this.model.sparklines;\n\t\tconst group = sparklines.groups.get(groupIndex);\n\t\tconst input = e.target as Input;\n\t\tswitch (input.dataset.id) {\n\t\t\tcase 'locRange': sparklines.update(groupIndex, input.value ? CellRange.fromA1(input.value) : null, group.dataRanges); break;\n\t\t\tcase 'dataRange': \n\t\t\t\tsparklines.update(groupIndex, group.locRange, input.value \n\t\t\t\t\t? CellRange.fromA1s(input.value).map(r => ([r, null as string])) \n\t\t\t\t\t: null\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t_itemRenderer = (_div: HTMLDivElement, index: number) => {\n\t\tconst item = this.items[index];\n\t\treturn html`\n\t\t\t<div class=\"item-content p\">\n\t\t\t\t<div class=\"item-form\">\n\t\t\t\t\t<div class=\"row item-header\">\n\t\t\t\t\t\t<div class=\"item-header-title\">Definition #${index + 1}</div>\n\t\t\t\t\t\t<div class=\"item-header-controls\">\n\t\t\t\t\t\t\t<og-button\n\t\t\t\t\t\t\t\ticon=\"trash\"\n\t\t\t\t\t\t\t\tcolor=\"red\"\n\t\t\t\t\t\t\t\t@click=\"${() => this.deleteName(index)}\">\n\t\t\t\t\t\t\t</og-button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t\n\t\t\t\t\t<div class=\"row\">Name</div>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<og-input\n\t\t\t\t\t\t\tdata-id=\"name\"\n\t\t\t\t\t\t\t.value=\"${item[0] || ''}\"\n\t\t\t\t\t\t\tstyle=\"width: 100%\"\n\t\t\t\t\t\t\t@change=\"${(e: Event) => this._onInputChange(e, index)}\">\n\t\t\t\t\t\t</og-input>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"row\">Range</div>\n\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t<og-input\n\t\t\t\t\t\t\tdata-id=\"range\"\n\t\t\t\t\t\t\t.value=\"${item[1] ? item[1].A1 : ''}\"\n\t\t\t\t\t\t\tstyle=\"width: 100%\"\n\t\t\t\t\t\t\t@change=\"${(e: Event) => this._onInputChange(e, index)}\">\n\t\t\t\t\t\t</og-input>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tupdated() {\n\t\tthis.updateList();\n\t}\n\n\trender = () => this.model ? html`\n\t\t<div class=\"controls p\">\n\t\t\t<og-button text=\"+\" @click=\"${() => this.addName()}\"></og-button>\n\t\t\t<og-button @click=\"${this._onApplyClick}\">\n\t\t\t\t<div slot=\"content\"><og-icon icon=\"refresh\"></og-icon> Apply</div>\n\t\t\t</og-button>\n\t\t</div>\n\t\t<div class=\"body\">\n\t\t\t<og-list ?nativeHeight=\"${true}\"\n\t\t\t\titemHeight=\"120\"\n\t\t\t\t.customStyle=${itemStyle}\n\t\t\t\t.itemRenderer=\"${this._itemRenderer}\"\n\t\t\t\t.size=\"${this.model.names.names.size}\">\n\t\t\t</og-list>\n\t\t</div>\n\t` : '';\n}"]}
@@ -0,0 +1,13 @@
1
+ import { Input } from '@omegagrid/core';
2
+ import { ConditionalFormat, GridModel } from '@omegagrid/grid';
3
+ import { LitElement } from 'lit';
4
+ export declare class RuleForm extends LitElement {
5
+ static styles: import("lit").CSSResult[];
6
+ model: GridModel;
7
+ format: ConditionalFormat;
8
+ rangesInput: Input;
9
+ conditionInput: Input;
10
+ updateFormat(): void;
11
+ render: () => import("lit-html").TemplateResult<1>;
12
+ }
13
+ //# sourceMappingURL=ruleForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruleForm.d.ts","sourceRoot":"","sources":["../../../src/ui/forms/ruleForm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAa,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAIvC,qBACa,QAAS,SAAQ,UAAU;IAEvC,MAAM,CAAC,MAAM,4BAAW;IAGxB,KAAK,EAAE,SAAS,CAAC;IAGjB,MAAM,EAAE,iBAAiB,CAAC;IAG1B,WAAW,EAAE,KAAK,CAAC;IAGnB,cAAc,EAAE,KAAK,CAAC;IAEtB,YAAY;IAMZ,MAAM,6CAaG;CACT"}
@@ -0,0 +1,56 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { customElement, property, query } from 'lit/decorators.js';
8
+ import { CellRange } from '@omegagrid/grid';
9
+ import { html, LitElement } from 'lit';
10
+ import { style } from './ruleForm.style';
11
+ import { msg } from '@omegagrid/localize';
12
+ let RuleForm = class RuleForm extends LitElement {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.render = () => this.format ? html `
16
+ <div class="row">${msg('Range')}</div>
17
+
18
+ <div class="row">
19
+ <og-input
20
+ id="ranges"
21
+ .value="${this.format.ranges ? CellRange.toA1s(this.format.ranges) : ''}"
22
+ style="width: 100%"
23
+ @change="${() => this.updateFormat()}">
24
+ </og-input>
25
+ </div>
26
+
27
+ <og-editor-ruleeditor .format="${this.format}"></og-editor-ruleeditor>
28
+ ` : null;
29
+ }
30
+ updateFormat() {
31
+ if (!this.format)
32
+ return;
33
+ if (this.rangesInput)
34
+ this.format.ranges = CellRange.fromA1s(this.rangesInput.value);
35
+ else
36
+ this.format.ranges = null;
37
+ }
38
+ };
39
+ RuleForm.styles = [style];
40
+ __decorate([
41
+ property({ type: Object })
42
+ ], RuleForm.prototype, "model", void 0);
43
+ __decorate([
44
+ property({ type: Object })
45
+ ], RuleForm.prototype, "format", void 0);
46
+ __decorate([
47
+ query('og-input#ranges')
48
+ ], RuleForm.prototype, "rangesInput", void 0);
49
+ __decorate([
50
+ query('og-input#condition')
51
+ ], RuleForm.prototype, "conditionInput", void 0);
52
+ RuleForm = __decorate([
53
+ customElement('og-editor-form-rule')
54
+ ], RuleForm);
55
+ export { RuleForm };
56
+ //# sourceMappingURL=ruleForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruleForm.js","sourceRoot":"","sources":["../../../src/ui/forms/ruleForm.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAgC,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAGnC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;IAAjC;;QAsBN,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;qBACb,GAAG,CAAC,OAAO,CAAC;;;;;cAKnB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;;eAE5D,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;;;;mCAIL,IAAI,CAAC,MAAM;EAC5C,CAAC,CAAC,CAAC,IAAI,CAAC;IACV,CAAC;IApBA,YAAY;QACX,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;;YAChF,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;IAChC,CAAC;;AAlBM,eAAM,GAAG,CAAC,KAAK,CAAC,AAAV,CAAW;AAGxB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;uCACR;AAGjB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;wCACC;AAG1B;IADC,KAAK,CAAC,iBAAiB,CAAC;6CACN;AAGnB;IADC,KAAK,CAAC,oBAAoB,CAAC;gDACN;AAdV,QAAQ;IADpB,aAAa,CAAC,qBAAqB,CAAC;GACxB,QAAQ,CAoCpB","sourcesContent":["import { Input } from '@omegagrid/core';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { CellRange, ConditionalFormat, GridModel } from '@omegagrid/grid';\nimport { html, LitElement } from 'lit';\nimport { style } from './ruleForm.style';\nimport { msg } from '@omegagrid/localize';\n\n@customElement('og-editor-form-rule')\nexport class RuleForm extends LitElement {\n\n\tstatic styles = [style];\n\n\t@property({type: Object})\n\tmodel: GridModel;\n\n\t@property({type: Object})\n\tformat: ConditionalFormat;\n\n\t@query('og-input#ranges')\n\trangesInput: Input;\n\n\t@query('og-input#condition')\n\tconditionInput: Input;\n\n\tupdateFormat() {\n\t\tif (!this.format) return;\n\t\tif (this.rangesInput) this.format.ranges = CellRange.fromA1s(this.rangesInput.value);\n\t\telse this.format.ranges = null;\n\t}\n\n\trender = () => this.format ? html`\n\t\t<div class=\"row\">${msg('Range')}</div>\n\n\t\t<div class=\"row\">\n\t\t\t<og-input\n\t\t\t\tid=\"ranges\"\n\t\t\t\t.value=\"${this.format.ranges ? CellRange.toA1s(this.format.ranges) : ''}\"\n\t\t\t\tstyle=\"width: 100%\"\n\t\t\t\t@change=\"${() => this.updateFormat()}\">\n\t\t\t</og-input>\n\t\t</div>\n\n\t\t<og-editor-ruleeditor .format=\"${this.format}\"></og-editor-ruleeditor>\n\t` : null;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const style: import("lit").CSSResult;
2
+ //# sourceMappingURL=ruleForm.style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruleForm.style.d.ts","sourceRoot":"","sources":["../../../src/ui/forms/ruleForm.style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,yBA+CjB,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { css } from 'lit';
2
+ export const style = css `
3
+ * {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ :host {
8
+ display: block;
9
+ }
10
+
11
+ .p {
12
+ padding: 5px;
13
+ }
14
+
15
+ .row {
16
+ line-height: 22px;
17
+ }
18
+
19
+ og-dropdown-list, og-dropdown-colorpicker {
20
+ height: 22px;
21
+ }
22
+
23
+ og-input {
24
+ display: block;
25
+ }
26
+
27
+ .item-content {
28
+ height: 100%;
29
+ display: flex;
30
+ flex-direction: row;
31
+ }
32
+
33
+ .item-form {
34
+ flex: 1;
35
+ }
36
+
37
+ .item-controls {
38
+ flex: 0;
39
+ padding: 0 2px;
40
+ display: flex;
41
+ flex-direction: column;
42
+ gap: 2px;
43
+ }
44
+
45
+ .item-controls og-button {
46
+ width: 24px;
47
+ display: block;
48
+ }
49
+ `;
50
+ //# sourceMappingURL=ruleForm.style.js.map