@omegagrid/grid 0.10.2 → 0.10.5
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.
- package/dist/commands/editingCommands.d.ts +4 -0
- package/dist/commands/editingCommands.d.ts.map +1 -0
- package/dist/commands/editingCommands.js +74 -0
- package/dist/commands/editingCommands.js.map +1 -0
- package/dist/commands/groupCommands.d.ts +8 -0
- package/dist/commands/groupCommands.d.ts.map +1 -0
- package/dist/commands/groupCommands.js +7 -0
- package/dist/commands/groupCommands.js.map +1 -0
- package/dist/commands/index.d.ts +4 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +9 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/navigationCommands.d.ts +5 -0
- package/dist/commands/navigationCommands.d.ts.map +1 -0
- package/dist/commands/navigationCommands.js +117 -0
- package/dist/commands/navigationCommands.js.map +1 -0
- package/dist/constants.d.ts +65 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -0
- package/dist/editors/baseEditor.d.ts +31 -0
- package/dist/editors/baseEditor.d.ts.map +1 -0
- package/dist/editors/baseEditor.js +112 -0
- package/dist/editors/baseEditor.js.map +1 -0
- package/dist/editors/calendarEditor.d.ts +12 -0
- package/dist/editors/calendarEditor.d.ts.map +1 -0
- package/dist/editors/calendarEditor.js +74 -0
- package/dist/editors/calendarEditor.js.map +1 -0
- package/dist/editors/checkboxEditor.d.ts +9 -0
- package/dist/editors/checkboxEditor.d.ts.map +1 -0
- package/dist/editors/checkboxEditor.js +32 -0
- package/dist/editors/checkboxEditor.js.map +1 -0
- package/dist/editors/dateEditor.d.ts +8 -0
- package/dist/editors/dateEditor.d.ts.map +1 -0
- package/dist/editors/dateEditor.js +37 -0
- package/dist/editors/dateEditor.js.map +1 -0
- package/dist/editors/dropdownEditor.d.ts +26 -0
- package/dist/editors/dropdownEditor.d.ts.map +1 -0
- package/dist/editors/dropdownEditor.js +142 -0
- package/dist/editors/dropdownEditor.js.map +1 -0
- package/dist/editors/formulaEditor.d.ts +21 -0
- package/dist/editors/formulaEditor.d.ts.map +1 -0
- package/dist/editors/formulaEditor.js +109 -0
- package/dist/editors/formulaEditor.js.map +1 -0
- package/dist/editors/index.d.ts +8 -0
- package/dist/editors/index.d.ts.map +1 -0
- package/dist/editors/index.js +19 -0
- package/dist/editors/index.js.map +1 -0
- package/dist/editors/numberEditor.d.ts +9 -0
- package/dist/editors/numberEditor.d.ts.map +1 -0
- package/dist/editors/numberEditor.js +37 -0
- package/dist/editors/numberEditor.js.map +1 -0
- package/dist/editors/textEditor.d.ts +15 -0
- package/dist/editors/textEditor.d.ts.map +1 -0
- package/dist/editors/textEditor.js +74 -0
- package/dist/editors/textEditor.js.map +1 -0
- package/dist/filters/NumberFilter.d.ts +8 -0
- package/dist/filters/NumberFilter.d.ts.map +1 -0
- package/dist/filters/NumberFilter.js +13 -0
- package/dist/filters/NumberFilter.js.map +1 -0
- package/dist/filters/baseFilter.d.ts +20 -0
- package/dist/filters/baseFilter.d.ts.map +1 -0
- package/dist/filters/baseFilter.js +47 -0
- package/dist/filters/baseFilter.js.map +1 -0
- package/dist/filters/checkboxFilter.d.ts +12 -0
- package/dist/filters/checkboxFilter.d.ts.map +1 -0
- package/dist/filters/checkboxFilter.js +67 -0
- package/dist/filters/checkboxFilter.js.map +1 -0
- package/dist/filters/dropdownFilter.d.ts +17 -0
- package/dist/filters/dropdownFilter.d.ts.map +1 -0
- package/dist/filters/dropdownFilter.js +116 -0
- package/dist/filters/dropdownFilter.js.map +1 -0
- package/dist/filters/filterFactory.d.ts +4 -0
- package/dist/filters/filterFactory.d.ts.map +1 -0
- package/dist/filters/filterFactory.js +39 -0
- package/dist/filters/filterFactory.js.map +1 -0
- package/dist/filters/index.d.ts +5 -0
- package/dist/filters/index.d.ts.map +1 -0
- package/dist/filters/index.js +5 -0
- package/dist/filters/index.js.map +1 -0
- package/dist/filters/textFilter.d.ts +17 -0
- package/dist/filters/textFilter.d.ts.map +1 -0
- package/dist/filters/textFilter.js +89 -0
- package/dist/filters/textFilter.js.map +1 -0
- package/dist/gridAdapter.d.ts +30 -0
- package/dist/gridAdapter.d.ts.map +1 -0
- package/dist/gridAdapter.js +11 -0
- package/dist/gridAdapter.js.map +1 -0
- package/dist/i18n/en-us.d.ts +4 -0
- package/dist/i18n/en-us.d.ts.map +1 -0
- package/dist/i18n/en-us.js +5 -0
- package/dist/i18n/en-us.js.map +1 -0
- package/dist/i18n/index.d.ts +5 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +8 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/renderers/ActionRenderer.d.ts +3 -0
- package/dist/renderers/ActionRenderer.d.ts.map +1 -0
- package/dist/renderers/ActionRenderer.js +68 -0
- package/dist/renderers/ActionRenderer.js.map +1 -0
- package/dist/renderers/BaseRenderer.d.ts +6 -0
- package/dist/renderers/BaseRenderer.d.ts.map +1 -0
- package/dist/renderers/BaseRenderer.js +56 -0
- package/dist/renderers/BaseRenderer.js.map +1 -0
- package/dist/renderers/CheckboxRenderer.d.ts +4 -0
- package/dist/renderers/CheckboxRenderer.d.ts.map +1 -0
- package/dist/renderers/CheckboxRenderer.js +22 -0
- package/dist/renderers/CheckboxRenderer.js.map +1 -0
- package/dist/renderers/DateTimeRenderer.d.ts +4 -0
- package/dist/renderers/DateTimeRenderer.d.ts.map +1 -0
- package/dist/renderers/DateTimeRenderer.js +21 -0
- package/dist/renderers/DateTimeRenderer.js.map +1 -0
- package/dist/renderers/DropdownRenderer.d.ts +4 -0
- package/dist/renderers/DropdownRenderer.d.ts.map +1 -0
- package/dist/renderers/DropdownRenderer.js +18 -0
- package/dist/renderers/DropdownRenderer.js.map +1 -0
- package/dist/renderers/GeneralRenderer.d.ts +4 -0
- package/dist/renderers/GeneralRenderer.d.ts.map +1 -0
- package/dist/renderers/GeneralRenderer.js +12 -0
- package/dist/renderers/GeneralRenderer.js.map +1 -0
- package/dist/renderers/HtmlRenderer.d.ts +4 -0
- package/dist/renderers/HtmlRenderer.d.ts.map +1 -0
- package/dist/renderers/HtmlRenderer.js +6 -0
- package/dist/renderers/HtmlRenderer.js.map +1 -0
- package/dist/renderers/NumberRenderer.d.ts +4 -0
- package/dist/renderers/NumberRenderer.d.ts.map +1 -0
- package/dist/renderers/NumberRenderer.js +14 -0
- package/dist/renderers/NumberRenderer.js.map +1 -0
- package/dist/renderers/SparklineRenderer.d.ts +3 -0
- package/dist/renderers/SparklineRenderer.d.ts.map +1 -0
- package/dist/renderers/SparklineRenderer.js +8 -0
- package/dist/renderers/SparklineRenderer.js.map +1 -0
- package/dist/renderers/TextRenderer.d.ts +4 -0
- package/dist/renderers/TextRenderer.d.ts.map +1 -0
- package/dist/renderers/TextRenderer.js +38 -0
- package/dist/renderers/TextRenderer.js.map +1 -0
- package/dist/renderers/index.d.ts +12 -0
- package/dist/renderers/index.d.ts.map +1 -0
- package/dist/renderers/index.js +32 -0
- package/dist/renderers/index.js.map +1 -0
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/comment.d.ts +59 -0
- package/dist/ui/comment.d.ts.map +1 -0
- package/dist/ui/comment.js +284 -0
- package/dist/ui/comment.js.map +1 -0
- package/dist/ui/comment.style.d.ts +2 -0
- package/dist/ui/comment.style.d.ts.map +1 -0
- package/dist/ui/comment.style.js +108 -0
- package/dist/ui/comment.style.js.map +1 -0
- package/dist/ui/elementCache.d.ts +15 -0
- package/dist/ui/elementCache.d.ts.map +1 -0
- package/dist/ui/elementCache.js +57 -0
- package/dist/ui/elementCache.js.map +1 -0
- package/dist/ui/filterLabel.d.ts +10 -0
- package/dist/ui/filterLabel.d.ts.map +1 -0
- package/dist/ui/filterLabel.js +76 -0
- package/dist/ui/filterLabel.js.map +1 -0
- package/dist/ui/formulaInput.d.ts +56 -0
- package/dist/ui/formulaInput.d.ts.map +1 -0
- package/dist/ui/formulaInput.js +251 -0
- package/dist/ui/formulaInput.js.map +1 -0
- package/dist/ui/formulaInput.style.d.ts +2 -0
- package/dist/ui/formulaInput.style.d.ts.map +1 -0
- package/dist/ui/formulaInput.style.js +65 -0
- package/dist/ui/formulaInput.style.js.map +1 -0
- package/dist/ui/grid.d.ts +91 -0
- package/dist/ui/grid.d.ts.map +1 -0
- package/dist/ui/grid.editing.d.ts +61 -0
- package/dist/ui/grid.editing.d.ts.map +1 -0
- package/dist/ui/grid.editing.js +439 -0
- package/dist/ui/grid.editing.js.map +1 -0
- package/dist/ui/grid.events.d.ts +97 -0
- package/dist/ui/grid.events.d.ts.map +1 -0
- package/dist/ui/grid.events.js +581 -0
- package/dist/ui/grid.events.js.map +1 -0
- package/dist/ui/grid.filtering.d.ts +23 -0
- package/dist/ui/grid.filtering.d.ts.map +1 -0
- package/dist/ui/grid.filtering.js +68 -0
- package/dist/ui/grid.filtering.js.map +1 -0
- package/dist/ui/grid.js +297 -0
- package/dist/ui/grid.js.map +1 -0
- package/dist/ui/grid.menu.d.ts +43 -0
- package/dist/ui/grid.menu.d.ts.map +1 -0
- package/dist/ui/grid.menu.js +168 -0
- package/dist/ui/grid.menu.js.map +1 -0
- package/dist/ui/grid.objects.d.ts +24 -0
- package/dist/ui/grid.objects.d.ts.map +1 -0
- package/dist/ui/grid.objects.js +69 -0
- package/dist/ui/grid.objects.js.map +1 -0
- package/dist/ui/grid.rendering.d.ts +84 -0
- package/dist/ui/grid.rendering.d.ts.map +1 -0
- package/dist/ui/grid.rendering.js +471 -0
- package/dist/ui/grid.rendering.js.map +1 -0
- package/dist/ui/grid.selecting.d.ts +99 -0
- package/dist/ui/grid.selecting.d.ts.map +1 -0
- package/dist/ui/grid.selecting.js +319 -0
- package/dist/ui/grid.selecting.js.map +1 -0
- package/dist/ui/grid.sorting.d.ts +23 -0
- package/dist/ui/grid.sorting.d.ts.map +1 -0
- package/dist/ui/grid.sorting.js +47 -0
- package/dist/ui/grid.sorting.js.map +1 -0
- package/dist/ui/grid.style.d.ts +2 -0
- package/dist/ui/grid.style.d.ts.map +1 -0
- package/dist/ui/grid.style.js +39 -0
- package/dist/ui/grid.style.js.map +1 -0
- package/dist/ui/group.d.ts +71 -0
- package/dist/ui/group.d.ts.map +1 -0
- package/dist/ui/group.js +312 -0
- package/dist/ui/group.js.map +1 -0
- package/dist/ui/index.d.ts +19 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +19 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/objectHost.d.ts +30 -0
- package/dist/ui/objectHost.d.ts.map +1 -0
- package/dist/ui/objectHost.js +114 -0
- package/dist/ui/objectHost.js.map +1 -0
- package/dist/ui/objectHost.style.d.ts +2 -0
- package/dist/ui/objectHost.style.d.ts.map +1 -0
- package/dist/ui/objectHost.style.js +43 -0
- package/dist/ui/objectHost.style.js.map +1 -0
- package/dist/ui/selector.d.ts +97 -0
- package/dist/ui/selector.d.ts.map +1 -0
- package/dist/ui/selector.js +489 -0
- package/dist/ui/selector.js.map +1 -0
- package/dist/ui/selector.style.d.ts +2 -0
- package/dist/ui/selector.style.d.ts.map +1 -0
- package/dist/ui/selector.style.js +107 -0
- package/dist/ui/selector.style.js.map +1 -0
- package/dist/ui/sortingArrow.d.ts +8 -0
- package/dist/ui/sortingArrow.d.ts.map +1 -0
- package/dist/ui/sortingArrow.js +42 -0
- package/dist/ui/sortingArrow.js.map +1 -0
- package/dist/ui/sparkline.d.ts +14 -0
- package/dist/ui/sparkline.d.ts.map +1 -0
- package/dist/ui/sparkline.js +111 -0
- package/dist/ui/sparkline.js.map +1 -0
- package/dist/ui/table.d.ts +122 -0
- package/dist/ui/table.d.ts.map +1 -0
- package/dist/ui/table.js +1063 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/table.styles.d.ts +2 -0
- package/dist/ui/table.styles.d.ts.map +1 -0
- package/dist/ui/table.styles.js +249 -0
- package/dist/ui/table.styles.js.map +1 -0
- package/dist/ui/tooltip.d.ts +9 -0
- package/dist/ui/tooltip.d.ts.map +1 -0
- package/dist/ui/tooltip.js +32 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editingCommands.d.ts","sourceRoot":"","sources":["../../src/commands/editingCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAkB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,iBAAiB,EAAE,CAuErE"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { createCommands } from "@omegagrid/commands";
|
|
2
|
+
export function createEditingCommands(grid) {
|
|
3
|
+
return [{
|
|
4
|
+
group: 'grid',
|
|
5
|
+
name: 'set column width',
|
|
6
|
+
next: {
|
|
7
|
+
mode: 'input',
|
|
8
|
+
text: 'Enter column width in pixels',
|
|
9
|
+
commands: createCommands('apply', (command, value) => {
|
|
10
|
+
for (let c = grid.selection.range.c1; c <= grid.selection.range.c2; c++) {
|
|
11
|
+
grid.model.columns[c].width = parseInt(value);
|
|
12
|
+
}
|
|
13
|
+
grid.rendering.renderCells({ horizontal: true });
|
|
14
|
+
})
|
|
15
|
+
}
|
|
16
|
+
}, {
|
|
17
|
+
group: 'grid',
|
|
18
|
+
name: 'set all columns widths',
|
|
19
|
+
next: {
|
|
20
|
+
mode: 'input',
|
|
21
|
+
text: 'Enter column width in pixels',
|
|
22
|
+
commands: createCommands('apply', (command, value) => {
|
|
23
|
+
const w = parseInt(value);
|
|
24
|
+
grid.model.columns.forEach(column => column.width = w);
|
|
25
|
+
grid.rendering.renderCells({ horizontal: true });
|
|
26
|
+
})
|
|
27
|
+
}
|
|
28
|
+
}, {
|
|
29
|
+
group: 'grid',
|
|
30
|
+
name: 'set columns widths to the right',
|
|
31
|
+
next: {
|
|
32
|
+
mode: 'input',
|
|
33
|
+
text: 'Enter column width in pixels',
|
|
34
|
+
commands: createCommands('apply', (command, value) => {
|
|
35
|
+
for (let c = grid.selection.range.c1; c < grid.model.columns.length; c++) {
|
|
36
|
+
grid.model.columns[c].width = parseInt(value);
|
|
37
|
+
}
|
|
38
|
+
grid.rendering.renderCells({ horizontal: true });
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
}, {
|
|
42
|
+
group: 'grid',
|
|
43
|
+
name: 'copy column widths',
|
|
44
|
+
exec: () => {
|
|
45
|
+
const w = grid.model.columns[grid.selection.range.c1].width;
|
|
46
|
+
grid.model.columns.forEach(column => column.width = w);
|
|
47
|
+
grid.rendering.renderCells({ horizontal: true });
|
|
48
|
+
}
|
|
49
|
+
}, {
|
|
50
|
+
group: 'grid',
|
|
51
|
+
name: 'copy column widths to the right',
|
|
52
|
+
exec: () => {
|
|
53
|
+
const w = grid.model.columns[grid.selection.range.c1].width;
|
|
54
|
+
for (let c = grid.selection.range.c1; c < grid.model.columns.length; c++) {
|
|
55
|
+
grid.model.columns[c].width = w;
|
|
56
|
+
}
|
|
57
|
+
grid.rendering.renderCells({ horizontal: true });
|
|
58
|
+
}
|
|
59
|
+
}, {
|
|
60
|
+
group: 'grid',
|
|
61
|
+
name: 'set values',
|
|
62
|
+
next: {
|
|
63
|
+
mode: 'input',
|
|
64
|
+
text: 'Enter value',
|
|
65
|
+
commands: createCommands('apply', (command, value) => {
|
|
66
|
+
for (const cell of grid.model.getRangeIterator(grid.selection.range)) {
|
|
67
|
+
cell.value = value;
|
|
68
|
+
grid.table.renderBodyCell(cell);
|
|
69
|
+
}
|
|
70
|
+
})
|
|
71
|
+
}
|
|
72
|
+
}];
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=editingCommands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editingCommands.js","sourceRoot":"","sources":["../../src/commands/editingCommands.ts"],"names":[],"mappings":"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","sourcesContent":["import { FlowCommandSource, createCommands } from \"@omegagrid/commands\";\nimport { Grid } from \"../ui/grid\";\n\nexport function createEditingCommands(grid: Grid): FlowCommandSource[] {\n\treturn [{\n\t\tgroup: 'grid', \n\t\tname: 'set column width',\n\t\tnext: {\n\t\t\tmode: 'input',\n\t\t\ttext: 'Enter column width in pixels',\n\t\t\tcommands: createCommands('apply', (command, value) => {\n\t\t\t\tfor (let c = grid.selection.range.c1; c <= grid.selection.range.c2; c++) {\n\t\t\t\t\tgrid.model.columns[c].width = parseInt(value);\n\t\t\t\t}\n\t\t\t\tgrid.rendering.renderCells({horizontal: true});\n\t\t\t})\n\t\t}\n\t}, {\n\t\tgroup: 'grid', \n\t\tname: 'set all columns widths',\n\t\tnext: {\n\t\t\tmode: 'input',\n\t\t\ttext: 'Enter column width in pixels',\n\t\t\tcommands: createCommands('apply', (command, value) => {\n\t\t\t\tconst w = parseInt(value);\n\t\t\t\tgrid.model.columns.forEach(column => column.width = w);\n\t\t\t\tgrid.rendering.renderCells({horizontal: true});\n\t\t\t})\n\t\t}\n\t}, {\n\t\tgroup: 'grid', \n\t\tname: 'set columns widths to the right', \n\t\tnext: {\n\t\t\tmode: 'input',\n\t\t\ttext: 'Enter column width in pixels',\n\t\t\tcommands: createCommands('apply', (command, value) => {\n\t\t\t\tfor (let c = grid.selection.range.c1; c < grid.model.columns.length; c++) {\n\t\t\t\t\tgrid.model.columns[c].width = parseInt(value);\n\t\t\t\t}\n\t\t\t\tgrid.rendering.renderCells({horizontal: true});\n\t\t\t})\n\t\t}\n\t}, {\n\t\tgroup: 'grid',\n\t\tname: 'copy column widths',\n\t\texec: () => {\n\t\t\tconst w = grid.model.columns[grid.selection.range.c1].width;\n\t\t\tgrid.model.columns.forEach(column => column.width = w);\n\t\t\tgrid.rendering.renderCells({horizontal: true});\n\t\t}\n\t}, {\n\t\tgroup: 'grid',\n\t\tname: 'copy column widths to the right',\n\t\texec: () => {\n\t\t\tconst w = grid.model.columns[grid.selection.range.c1].width;\n\t\t\tfor (let c = grid.selection.range.c1; c < grid.model.columns.length; c++) {\n\t\t\t\tgrid.model.columns[c].width = w;\n\t\t\t}\n\t\t\tgrid.rendering.renderCells({horizontal: true});\n\t\t}\n\t}, {\n\t\tgroup: 'grid', \n\t\tname: 'set values',\n\t\tnext: {\n\t\t\tmode: 'input',\n\t\t\ttext: 'Enter value',\n\t\t\tcommands: createCommands('apply', (command, value) => {\n\t\t\t\tfor (const cell of grid.model.getRangeIterator(grid.selection.range)) {\n\t\t\t\tcell.value = value;\n\t\t\t\tgrid.table.renderBodyCell(cell);\n\t\t\t}\n\t\t\t})\n\t\t}\n\t}];\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupCommands.d.ts","sourceRoot":"","sources":["../../src/commands/groupCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS;;;;gBAEkB,MAAM;IAG5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupCommands.js","sourceRoot":"","sources":["../../src/commands/groupCommands.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC;IACxB,OAAO,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,EAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { GridGroup } from \"../ui\";\n\nexport function createGroupCommands(_group: GridGroup) {\n\tconst section = 'group';\n\treturn [{section, name: 'focus sheet', requiredParams: 1, fn: (sheet: string) => {\n\t\tconsole.log(sheet);\n\t}}];\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAI7B,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,QAI1C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "./groupCommands";
|
|
2
|
+
import { createEditingCommands } from "./editingCommands";
|
|
3
|
+
import { createNavigationCommands } from "./navigationCommands";
|
|
4
|
+
export function initGridCommands(grid) {
|
|
5
|
+
grid.commands.clear();
|
|
6
|
+
createEditingCommands(grid).forEach(c => grid.commands.add(c));
|
|
7
|
+
createNavigationCommands(grid).forEach(c => grid.commands.add(c));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,UAAU,gBAAgB,CAAC,IAAU;IAC1C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACtB,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,wBAAwB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC","sourcesContent":["export * from \"./groupCommands\";\nimport { Grid } from \"../ui\";\nimport { createEditingCommands } from \"./editingCommands\";\nimport { createNavigationCommands } from \"./navigationCommands\";\n\nexport function initGridCommands(grid: Grid) {\n\tgrid.commands.clear();\n\tcreateEditingCommands(grid).forEach(c => grid.commands.add(c));\n\tcreateNavigationCommands(grid).forEach(c => grid.commands.add(c));\n}"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { FlowCommandSource } from "@omegagrid/commands";
|
|
2
|
+
import { Grid } from "../ui/grid";
|
|
3
|
+
export declare function goto(grid: Grid, rangeAddress: string): void;
|
|
4
|
+
export declare function createNavigationCommands(grid: Grid): FlowCommandSource[];
|
|
5
|
+
//# sourceMappingURL=navigationCommands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigationCommands.d.ts","sourceRoot":"","sources":["../../src/commands/navigationCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,wBAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,QAMpD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,GAAG,iBAAiB,EAAE,CAsHxE"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { createCommands } from "@omegagrid/commands";
|
|
2
|
+
import { SortOrder, decodeColumn } from "@omegagrid/grid-core";
|
|
3
|
+
export function goto(grid, rangeAddress) {
|
|
4
|
+
grid.selecting.select(rangeAddress, true);
|
|
5
|
+
grid.table.rowOffset = Math.max(0, grid.selection.range.r1 - grid.options.freezeTop);
|
|
6
|
+
grid.table.colOffset = Math.max(0, grid.selection.range.c1 - grid.options.freezeLeft);
|
|
7
|
+
grid.rendering.renderCells({ vertical: true, horizontal: true });
|
|
8
|
+
grid.rendering.updateSliders();
|
|
9
|
+
}
|
|
10
|
+
export function createNavigationCommands(grid) {
|
|
11
|
+
const commands = [];
|
|
12
|
+
commands.push({
|
|
13
|
+
group: 'grid',
|
|
14
|
+
name: 'goto',
|
|
15
|
+
next: {
|
|
16
|
+
mode: 'input',
|
|
17
|
+
text: 'Enter cell address',
|
|
18
|
+
commands: createCommands('ok', (_command, value) => {
|
|
19
|
+
goto(grid, value);
|
|
20
|
+
})
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
commands.push({
|
|
24
|
+
group: 'grid',
|
|
25
|
+
name: 'goto first cell',
|
|
26
|
+
exec: () => {
|
|
27
|
+
goto(grid, 'A1');
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
commands.push({
|
|
31
|
+
group: 'grid',
|
|
32
|
+
name: 'sort ascending',
|
|
33
|
+
next: {
|
|
34
|
+
mode: 'input',
|
|
35
|
+
text: 'Enter column name',
|
|
36
|
+
commands: createCommands('ok', (_command, value) => {
|
|
37
|
+
grid.sorting.sort(isNaN(Number(value)) ? decodeColumn(value.toUpperCase()) : Number(value), SortOrder.Asc);
|
|
38
|
+
})
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
commands.push({
|
|
42
|
+
group: 'grid',
|
|
43
|
+
name: 'sort descending',
|
|
44
|
+
next: {
|
|
45
|
+
mode: 'input',
|
|
46
|
+
text: 'Enter column name',
|
|
47
|
+
commands: createCommands('ok', (_command, value) => {
|
|
48
|
+
grid.sorting.sort(isNaN(Number(value)) ? decodeColumn(value.toUpperCase()) : Number(value), SortOrder.Desc);
|
|
49
|
+
})
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
commands.push({
|
|
53
|
+
group: 'grid',
|
|
54
|
+
name: 'sort ascending by current column',
|
|
55
|
+
exec: () => {
|
|
56
|
+
grid.sorting.sort(grid.selection.range.c1, SortOrder.Asc);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
commands.push({
|
|
60
|
+
group: 'grid',
|
|
61
|
+
name: 'sort descending by current column',
|
|
62
|
+
exec: () => {
|
|
63
|
+
grid.sorting.sort(grid.selection.range.c1, SortOrder.Desc);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
commands.push({
|
|
67
|
+
group: 'grid',
|
|
68
|
+
name: 'reset sorting',
|
|
69
|
+
exec: () => {
|
|
70
|
+
grid.sorting.resetSort();
|
|
71
|
+
grid.table.clearBodyCache();
|
|
72
|
+
grid.table.renderCells({ vertical: true, horizontal: true });
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
if (grid.model.maxRowLevel > 0) {
|
|
76
|
+
commands.push({
|
|
77
|
+
group: 'grid',
|
|
78
|
+
name: 'set row level',
|
|
79
|
+
next: {
|
|
80
|
+
mode: 'input',
|
|
81
|
+
text: 'Enter row level',
|
|
82
|
+
commands: createCommands('ok', (_command, value) => {
|
|
83
|
+
grid.rendering.setRowExpandLevel(parseInt(value));
|
|
84
|
+
})
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
[...Array(grid.model.maxRowLevel).keys()].forEach(l => commands.push({
|
|
88
|
+
group: 'grid',
|
|
89
|
+
name: `set row level ${l}`,
|
|
90
|
+
exec: () => {
|
|
91
|
+
grid.rendering.setRowExpandLevel(l);
|
|
92
|
+
}
|
|
93
|
+
}));
|
|
94
|
+
}
|
|
95
|
+
if (grid.model.maxColumnLevel > 0) {
|
|
96
|
+
commands.push({
|
|
97
|
+
group: 'grid',
|
|
98
|
+
name: 'set column level',
|
|
99
|
+
next: {
|
|
100
|
+
mode: 'input',
|
|
101
|
+
text: 'Enter column level',
|
|
102
|
+
commands: createCommands('ok', (_command, value) => {
|
|
103
|
+
grid.rendering.setColumnExpandLevel(parseInt(value));
|
|
104
|
+
})
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
[...Array(grid.model.maxColumnLevel).keys()].forEach(l => commands.push({
|
|
108
|
+
group: 'grid',
|
|
109
|
+
name: `set column level ${l}`,
|
|
110
|
+
exec: () => {
|
|
111
|
+
grid.rendering.setColumnExpandLevel(l);
|
|
112
|
+
}
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
115
|
+
return commands;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=navigationCommands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigationCommands.js","sourceRoot":"","sources":["../../src/commands/navigationCommands.ts"],"names":[],"mappings":"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","sourcesContent":["import { createCommands, FlowCommandSource } from \"@omegagrid/commands\";\nimport { SortOrder, decodeColumn } from \"@omegagrid/grid-core\";\nimport { Grid } from \"../ui/grid\";\n\nexport function goto(grid: Grid, rangeAddress: string) {\n\tgrid.selecting.select(rangeAddress, true);\n\tgrid.table.rowOffset = Math.max(0, grid.selection.range.r1 - grid.options.freezeTop);\n\tgrid.table.colOffset = Math.max(0, grid.selection.range.c1 - grid.options.freezeLeft);\n\tgrid.rendering.renderCells({vertical: true, horizontal: true});\n\tgrid.rendering.updateSliders();\n}\n\nexport function createNavigationCommands(grid: Grid): FlowCommandSource[] {\n\tconst commands: FlowCommandSource[] = [];\n\n\tcommands.push({\n\t\tgroup: 'grid',\n\t\tname: 'goto',\n\t\tnext: {\n\t\t\tmode: 'input',\n\t\t\ttext: 'Enter cell address',\n\t\t\tcommands: createCommands('ok', (_command, value) => {\n\t\t\t\tgoto(grid, value);\n\t\t\t})\n\t\t}\n\t});\n\n\tcommands.push({\n\t\tgroup: 'grid',\n\t\tname: 'goto first cell',\n\t\texec: () => {\n\t\t\tgoto(grid, 'A1');\n\t\t}\n\t});\n\n\tcommands.push({\n\t\tgroup: 'grid',\n\t\tname: 'sort ascending',\n\t\tnext: {\n\t\t\tmode: 'input',\n\t\t\ttext: 'Enter column name',\n\t\t\tcommands: createCommands('ok', (_command, value) => {\n\t\t\t\tgrid.sorting.sort(isNaN(Number(value)) ? decodeColumn(value.toUpperCase()) : Number(value), SortOrder.Asc);\n\t\t\t})\n\t\t}\n\t});\n\n\tcommands.push({\n\t\tgroup: 'grid',\n\t\tname: 'sort descending',\n\t\tnext: {\n\t\t\tmode: 'input',\n\t\t\ttext: 'Enter column name',\n\t\t\tcommands: createCommands('ok', (_command, value) => {\n\t\t\t\tgrid.sorting.sort(isNaN(Number(value)) ? decodeColumn(value.toUpperCase()) : Number(value), SortOrder.Desc);\n\t\t\t})\n\t\t}\n\t});\n\n\tcommands.push({\n\t\tgroup: 'grid',\n\t\tname: 'sort ascending by current column',\n\t\texec: () => {\n\t\t\tgrid.sorting.sort(grid.selection.range.c1, SortOrder.Asc);\n\t\t}\n\t});\n\n\tcommands.push({\n\t\tgroup: 'grid',\n\t\tname: 'sort descending by current column',\n\t\texec: () => {\n\t\t\tgrid.sorting.sort(grid.selection.range.c1, SortOrder.Desc);\n\t\t}\n\t});\n\n\tcommands.push({\n\t\tgroup: 'grid',\n\t\tname: 'reset sorting',\n\t\texec: () => {\n\t\t\tgrid.sorting.resetSort();\n\t\t\tgrid.table.clearBodyCache();\n\t\t\tgrid.table.renderCells({vertical: true, horizontal: true});\n\t\t}\n\t});\n\n\tif (grid.model.maxRowLevel > 0) {\n\t\tcommands.push({\n\t\t\tgroup: 'grid',\n\t\t\tname: 'set row level',\n\t\t\tnext: {\n\t\t\t\tmode: 'input',\n\t\t\t\ttext: 'Enter row level',\n\t\t\t\tcommands: createCommands('ok', (_command, value) => {\n\t\t\t\t\tgrid.rendering.setRowExpandLevel(parseInt(value));\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\t[...Array(grid.model.maxRowLevel).keys()].forEach(l => commands.push({\n\t\t\tgroup: 'grid',\n\t\t\tname: `set row level ${l}`,\n\t\t\texec: () => {\n\t\t\t\tgrid.rendering.setRowExpandLevel(l);\n\t\t\t}\n\t\t}));\n\t}\n\n\tif (grid.model.maxColumnLevel > 0) {\n\t\tcommands.push({\n\t\t\tgroup: 'grid',\n\t\t\tname: 'set column level',\n\t\t\tnext: {\n\t\t\t\tmode: 'input',\n\t\t\t\ttext: 'Enter column level',\n\t\t\t\tcommands: createCommands('ok', (_command, value) => {\n\t\t\t\t\tgrid.rendering.setColumnExpandLevel(parseInt(value));\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\t[...Array(grid.model.maxColumnLevel).keys()].forEach(l => commands.push({\n\t\t\tgroup: 'grid',\n\t\t\tname: `set column level ${l}`,\n\t\t\texec: () => {\n\t\t\t\tgrid.rendering.setColumnExpandLevel(l);\n\t\t\t}\n\t\t}));\n\t}\n\n\treturn commands;\n}"]}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
CUSTOM_CLIPBOARD_TYPE: string;
|
|
3
|
+
PREFIX: string;
|
|
4
|
+
DEFAULT_ACCENT_COLOR: string;
|
|
5
|
+
DEFAULT_ACCENT_COLOR_2: import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | import("color")<string | number | any | ArrayLike<number> | {
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
}> | ArrayLike<number> | {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
}> | ArrayLike<number> | {
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
}> | ArrayLike<number> | {
|
|
12
|
+
[key: string]: any;
|
|
13
|
+
}> | ArrayLike<number> | {
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
}> | ArrayLike<number> | {
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
}> | ArrayLike<number> | {
|
|
18
|
+
[key: string]: any;
|
|
19
|
+
}> | ArrayLike<number> | {
|
|
20
|
+
[key: string]: any;
|
|
21
|
+
}> | ArrayLike<number> | {
|
|
22
|
+
[key: string]: any;
|
|
23
|
+
}> | ArrayLike<number> | {
|
|
24
|
+
[key: string]: any;
|
|
25
|
+
}> | ArrayLike<number> | {
|
|
26
|
+
[key: string]: any;
|
|
27
|
+
}> | ArrayLike<number> | {
|
|
28
|
+
[key: string]: any;
|
|
29
|
+
}>;
|
|
30
|
+
SIZER_SIZE: number;
|
|
31
|
+
SLIDER_SIZE: number;
|
|
32
|
+
SLIDER_MIN_LENGTH: number;
|
|
33
|
+
EXPANDER_SIZE: number;
|
|
34
|
+
LIST_ITEM_HEIGHT: number;
|
|
35
|
+
LIST_RENDERING_TRESHOLD: number;
|
|
36
|
+
LIST_AUTOSCROLL_TRESHOLD: number;
|
|
37
|
+
LIST_AUTOSCROLL_DELAY: number;
|
|
38
|
+
DEFAULT_TEXT_HIGHLIGHT_COLOR: string;
|
|
39
|
+
TOOLTIP_MARGIN: number;
|
|
40
|
+
MENU_ITEM_HEIGHT: number;
|
|
41
|
+
COLORPICKER_COLOR_SIZE: number;
|
|
42
|
+
DEFAULT_NUMBER_FORMAT: string;
|
|
43
|
+
BUTTON_HEIGHT: number;
|
|
44
|
+
FONT_SIZE: number;
|
|
45
|
+
FLOATING_WINDOW_MAX_WIDTH: number;
|
|
46
|
+
ROW_HEIGHT: number;
|
|
47
|
+
RESIZE_TRESHOLD: number;
|
|
48
|
+
ROW_HEADER_WIDTH: number;
|
|
49
|
+
MAX_CACHE_ITEMS: number;
|
|
50
|
+
CACHE_CLEAN_INTERVAL: number;
|
|
51
|
+
COMMENT_HIDE_TIMEOUT: number;
|
|
52
|
+
SELECTOR_BORDER_WIDTH: number;
|
|
53
|
+
MIN_ROW_HEIGHT: number;
|
|
54
|
+
MIN_COL_WIDTH: number;
|
|
55
|
+
SPARKLINE_GAP: number;
|
|
56
|
+
AUTOSCROLL_TRESHOLD: number;
|
|
57
|
+
AUTOSCROLL_RATIO: number;
|
|
58
|
+
AUTOSCROLL_INTERVAL: number;
|
|
59
|
+
DEFAULT_SPARKLINE_OPTIONS: import("@omegagrid/grid-core").SparklineOptions;
|
|
60
|
+
DEFAULT_OPTIONS: import("@omegagrid/grid-core").Options;
|
|
61
|
+
MAX_COMMENT_AUTOHEIGHT: number;
|
|
62
|
+
MIN_COMMENT_AUTOHEIGHT: number;
|
|
63
|
+
};
|
|
64
|
+
export default _default;
|
|
65
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wBAKE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,eAAe;IACd,GAAG,aAAa;IAChB,GAAG;QACF,qBAAqB,EAAE,sBAAsB;KAC7C;CACD,CAAC","sourcesContent":["import { gridConstants } from '@omegagrid/grid-core';\nexport default {\n\t...gridConstants,\n\t...{\n\t\tCUSTOM_CLIPBOARD_TYPE: 'web application/json'\n\t}\n};"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CellModel } from "@omegagrid/grid-core";
|
|
2
|
+
import { LitElement } from 'lit';
|
|
3
|
+
import { Grid } from "../ui/grid";
|
|
4
|
+
export declare class EditorEvent extends Event {
|
|
5
|
+
}
|
|
6
|
+
export declare abstract class BaseEditor extends LitElement {
|
|
7
|
+
static baseStyles: import("lit").CSSResult;
|
|
8
|
+
protected grid: Grid;
|
|
9
|
+
protected cancel: boolean;
|
|
10
|
+
protected activeCell: HTMLTableCellElement;
|
|
11
|
+
protected activeCellModel: CellModel;
|
|
12
|
+
protected initialValue: unknown;
|
|
13
|
+
protected _open: boolean;
|
|
14
|
+
get isOpen(): boolean;
|
|
15
|
+
protected _valid: boolean;
|
|
16
|
+
get isValid(): boolean;
|
|
17
|
+
validate(): boolean;
|
|
18
|
+
constructor();
|
|
19
|
+
abstract getValue(): unknown;
|
|
20
|
+
abstract setValue(value: unknown): void;
|
|
21
|
+
getDisplayValue(): string;
|
|
22
|
+
init(): void;
|
|
23
|
+
connectedCallback(): void;
|
|
24
|
+
alignWithCell(): void;
|
|
25
|
+
open(grid: Grid, initialValue?: unknown, updatePosition?: boolean): this;
|
|
26
|
+
commit(): void;
|
|
27
|
+
close(): void;
|
|
28
|
+
activate(cell: CellModel): void;
|
|
29
|
+
deactivate(): void;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=baseEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseEditor.d.ts","sourceRoot":"","sources":["../../src/editors/baseEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgC,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAO,MAAM,KAAK,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,qBAAa,WAAY,SAAQ,KAAK;CAAI;AAE1C,8BAAsB,UAAW,SAAQ,UAAU;IAElD,MAAM,CAAC,UAAU,0BAef;IAEF,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;IACrB,SAAS,CAAC,MAAM,UAAS;IACzB,SAAS,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC3C,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC;IACrC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC;IAEhC,SAAS,CAAC,KAAK,UAAS;IACxB,IAAI,MAAM,YAAwB;IAElC,SAAS,CAAC,MAAM,UAAQ;IACxB,IAAI,OAAO,YAAyB;IAEpC,QAAQ;;IAaR,QAAQ,CAAC,QAAQ,IAAK,OAAO;IAE7B,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAI,IAAI;IAExC,eAAe,IAAK,MAAM;IAI1B,IAAI;IAaJ,iBAAiB;IAKjB,aAAa;IAOb,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,GAAE,OAAc,EAAE,cAAc,UAAO;IAiBpE,MAAM;IAWN,KAAK;IAaL,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAI,IAAI;IAKhC,UAAU,IAAK,IAAI;CAInB"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { validateValue } from "@omegagrid/grid-core";
|
|
2
|
+
import { LitElement, css } from 'lit';
|
|
3
|
+
import { dom } from "@omegagrid/core";
|
|
4
|
+
export class EditorEvent extends Event {
|
|
5
|
+
}
|
|
6
|
+
export class BaseEditor extends LitElement {
|
|
7
|
+
get isOpen() { return this._open; }
|
|
8
|
+
get isValid() { return this._valid; }
|
|
9
|
+
validate() {
|
|
10
|
+
this._valid = true;
|
|
11
|
+
if (this.activeCell)
|
|
12
|
+
this._valid = validateValue(this.activeCellModel, this.getValue());
|
|
13
|
+
this.classList.toggle('invalid', !this._valid);
|
|
14
|
+
return this._valid;
|
|
15
|
+
}
|
|
16
|
+
constructor() {
|
|
17
|
+
super();
|
|
18
|
+
this.cancel = false;
|
|
19
|
+
this._open = false;
|
|
20
|
+
this._valid = true;
|
|
21
|
+
this.init();
|
|
22
|
+
}
|
|
23
|
+
getDisplayValue() {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
init() {
|
|
27
|
+
this.addEventListener('keydown', e => {
|
|
28
|
+
if (e.key == 'Enter') {
|
|
29
|
+
this.close();
|
|
30
|
+
}
|
|
31
|
+
else if (e.key == 'Escape') {
|
|
32
|
+
this.cancel = true;
|
|
33
|
+
this.close();
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
e.stopPropagation();
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
connectedCallback() {
|
|
41
|
+
super.connectedCallback();
|
|
42
|
+
this.performUpdate();
|
|
43
|
+
}
|
|
44
|
+
alignWithCell() {
|
|
45
|
+
if (!this.activeCell)
|
|
46
|
+
return;
|
|
47
|
+
const offset = dom.getElementOffset(this.activeCell, this.grid);
|
|
48
|
+
dom.setPosition(this, { t: offset.top * this.grid.zoom, l: offset.left * this.grid.zoom });
|
|
49
|
+
dom.setSize(this, { w: this.activeCell.offsetWidth, h: this.activeCell.offsetHeight });
|
|
50
|
+
}
|
|
51
|
+
open(grid, initialValue = null, updatePosition = true) {
|
|
52
|
+
this._valid = true;
|
|
53
|
+
this.initialValue = initialValue;
|
|
54
|
+
this._open = true;
|
|
55
|
+
this.grid = grid;
|
|
56
|
+
const cellModel = grid.selecting.activeCell;
|
|
57
|
+
this.activeCellModel = cellModel;
|
|
58
|
+
this.activeCell = this.grid.table.getCellByModelIndex(cellModel.c, cellModel.r);
|
|
59
|
+
this.grid.selector.hide();
|
|
60
|
+
dom.showElement(this);
|
|
61
|
+
if (updatePosition)
|
|
62
|
+
this.alignWithCell();
|
|
63
|
+
this.activate(cellModel);
|
|
64
|
+
if (initialValue !== null)
|
|
65
|
+
this.setValue(initialValue);
|
|
66
|
+
dom.zoomElement(this, this.grid.zoom);
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
commit() {
|
|
70
|
+
if (this._open && !this.cancel && this.activeCellModel) {
|
|
71
|
+
this.grid.editing.updateCell(this.activeCellModel, { v: this.getValue(), dv: this.getDisplayValue() });
|
|
72
|
+
this.grid.rendering.updateCell(this.activeCellModel, true);
|
|
73
|
+
}
|
|
74
|
+
this.cancel = false;
|
|
75
|
+
}
|
|
76
|
+
close() {
|
|
77
|
+
if (this._open) {
|
|
78
|
+
this.deactivate();
|
|
79
|
+
dom.hideElement(this);
|
|
80
|
+
this.grid.table.renderBodyCell(this.activeCellModel);
|
|
81
|
+
this.grid.selecting.showSelector();
|
|
82
|
+
this.grid.focus();
|
|
83
|
+
this._open = false;
|
|
84
|
+
this.grid.editing.endEdit();
|
|
85
|
+
}
|
|
86
|
+
this.cancel = false;
|
|
87
|
+
}
|
|
88
|
+
activate(cell) {
|
|
89
|
+
this.activeCellModel = cell;
|
|
90
|
+
this.dispatchEvent(new EditorEvent('activate'));
|
|
91
|
+
}
|
|
92
|
+
deactivate() {
|
|
93
|
+
this.dispatchEvent(new EditorEvent('deactivate'));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
BaseEditor.baseStyles = css `
|
|
97
|
+
* { box-sizing: border-box }
|
|
98
|
+
|
|
99
|
+
:host {
|
|
100
|
+
display: block;
|
|
101
|
+
width: 100%;
|
|
102
|
+
height: 100%;
|
|
103
|
+
background: var(--og-cell-background);
|
|
104
|
+
z-index: 200;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
:host(.invalid) input {
|
|
108
|
+
color: #ff0000;
|
|
109
|
+
border: 1px solid #ff0000;
|
|
110
|
+
}
|
|
111
|
+
`;
|
|
112
|
+
//# sourceMappingURL=baseEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseEditor.js","sourceRoot":"","sources":["../../src/editors/baseEditor.ts"],"names":[],"mappings":"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","sourcesContent":["import { CellModel, CellValueType, validateValue } from \"@omegagrid/grid-core\";\nimport { LitElement, css } from 'lit';\nimport { dom } from \"@omegagrid/core\";\nimport { Grid } from \"../ui/grid\";\n\nexport class EditorEvent extends Event { }\n\nexport abstract class BaseEditor extends LitElement {\n\n\tstatic baseStyles = css`\n\t\t* { box-sizing: border-box }\n\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tbackground: var(--og-cell-background);\n\t\t\tz-index: 200;\n\t\t}\n\n\t\t:host(.invalid) input {\n\t\t\tcolor: #ff0000;\n\t\t\tborder: 1px solid #ff0000;\n\t\t}\n\t`;\n\n\tprotected grid: Grid;\n\tprotected cancel = false;\n\tprotected activeCell: HTMLTableCellElement;\n\tprotected activeCellModel: CellModel;\n\tprotected initialValue: unknown;\n\t\n\tprotected _open = false;\n\tget isOpen() { return this._open }\n\n\tprotected _valid = true;\n\tget isValid() { return this._valid }\n\n\tvalidate() {\n\t\tthis._valid = true;\n\t\tif (this.activeCell) this._valid = validateValue(this.activeCellModel, this.getValue());\n\t\tthis.classList.toggle('invalid', !this._valid);\n\t\treturn this._valid;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.init();\n\t}\n\n\t\n\tabstract getValue() : unknown;\n\n\tabstract setValue(value: unknown) : void;\n\t\n\tgetDisplayValue() : string {\n\t\treturn null;\n\t}\n\n\tinit() {\n\t\tthis.addEventListener('keydown', e => {\n\t\t\tif (e.key == 'Enter') {\n\t\t\t\tthis.close();\n\t\t\t} else if (e.key == 'Escape') {\n\t\t\t\tthis.cancel = true;\n\t\t\t\tthis.close();\n\t\t\t} else {\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t});\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.performUpdate();\n\t}\n\n\talignWithCell() {\n\t\tif (!this.activeCell) return;\n\t\tconst offset = dom.getElementOffset(this.activeCell, this.grid);\n\t\tdom.setPosition(this, {t: offset.top * this.grid.zoom, l: offset.left * this.grid.zoom});\n\t\tdom.setSize(this, {w: this.activeCell.offsetWidth, h: this.activeCell.offsetHeight});\n\t}\n\n\topen(grid: Grid, initialValue: unknown = null, updatePosition = true) {\n\t\tthis._valid = true;\n\t\tthis.initialValue = initialValue;\n\t\tthis._open = true;\n\t\tthis.grid = grid;\n\t\tconst cellModel = grid.selecting.activeCell;\n\t\tthis.activeCellModel = cellModel;\n\t\tthis.activeCell = this.grid.table.getCellByModelIndex(cellModel.c, cellModel.r);\n\t\tthis.grid.selector.hide();\n\t\tdom.showElement(this);\n\t\tif (updatePosition) this.alignWithCell();\n\t\tthis.activate(cellModel);\n\t\tif (initialValue !== null) this.setValue(initialValue);\n\t\tdom.zoomElement(this, this.grid.zoom);\n\t\treturn this;\n\t}\n\n\tcommit() {\n\t\tif (this._open && !this.cancel && this.activeCellModel) {\n\t\t\tthis.grid.editing.updateCell(\n\t\t\t\tthis.activeCellModel, \n\t\t\t\t{v: this.getValue() as CellValueType, dv: this.getDisplayValue()}\n\t\t\t);\n\t\t\tthis.grid.rendering.updateCell(this.activeCellModel, true);\n\t\t}\n\t\tthis.cancel = false;\n\t}\n\n\tclose() {\n\t\tif (this._open) {\n\t\t\tthis.deactivate();\n\t\t\tdom.hideElement(this);\n\t\t\tthis.grid.table.renderBodyCell(this.activeCellModel);\n\t\t\tthis.grid.selecting.showSelector();\n\t\t\tthis.grid.focus();\n\t\t\tthis._open = false;\n\t\t\tthis.grid.editing.endEdit();\n\t\t}\n\t\tthis.cancel = false;\n\t}\n\n\tactivate(cell: CellModel) : void {\n\t\tthis.activeCellModel = cell;\n\t\tthis.dispatchEvent(new EditorEvent('activate'));\n\t}\n\t\n\tdeactivate() : void {\n\t\tthis.dispatchEvent(new EditorEvent('deactivate'));\n\t}\n\n}"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseEditor } from "./baseEditor";
|
|
2
|
+
import { CellModel } from '@omegagrid/grid-core';
|
|
3
|
+
export declare class CalendarEditor extends BaseEditor {
|
|
4
|
+
calendar: any;
|
|
5
|
+
setValue(value: number | string | Date): void;
|
|
6
|
+
getValue(): number;
|
|
7
|
+
activate(cell: CellModel): Promise<void>;
|
|
8
|
+
_onChange: () => void;
|
|
9
|
+
render: () => import("lit-html").TemplateResult<1>;
|
|
10
|
+
close(): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=calendarEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendarEditor.d.ts","sourceRoot":"","sources":["../../src/editors/calendarEditor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,qBACa,cAAe,SAAQ,UAAU;IAG7C,QAAQ,EAAE,GAAG,CAAC;IAEd,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAC,MAAM,GAAC,IAAI;IAuBlC,QAAQ,IAAK,MAAM;IAMb,QAAQ,CAAC,IAAI,EAAE,SAAS;IAO9B,SAAS,aAGR;IAED,MAAM,6CAMJ;IAEF,KAAK;CAKL"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
import { customElement, query } from 'lit/decorators.js';
|
|
9
|
+
import { dates, utils } from "@omegagrid/core";
|
|
10
|
+
import { getLocale } from "@omegagrid/localize";
|
|
11
|
+
import { BaseEditor } from "./baseEditor";
|
|
12
|
+
import { html } from 'lit';
|
|
13
|
+
import { startOfDay } from 'date-fns';
|
|
14
|
+
let CalendarEditor = class CalendarEditor extends BaseEditor {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this._onChange = () => {
|
|
18
|
+
this.commit();
|
|
19
|
+
this.close();
|
|
20
|
+
};
|
|
21
|
+
this.render = () => html `
|
|
22
|
+
<og-calendar-dropdown
|
|
23
|
+
buttonInput
|
|
24
|
+
cross
|
|
25
|
+
@change="${this._onChange}">
|
|
26
|
+
</og-calendar-dropdown>
|
|
27
|
+
`;
|
|
28
|
+
}
|
|
29
|
+
setValue(value) {
|
|
30
|
+
if (value == null) {
|
|
31
|
+
this.calendar.value = null;
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (utils.isString(value)) {
|
|
35
|
+
const date = dates.parse(value, getLocale());
|
|
36
|
+
if (date) {
|
|
37
|
+
this.calendar.value = date;
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else if (utils.isNumber(value)) {
|
|
42
|
+
this.calendar.value = dates.serialDateToDate(value);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.calendar.value = value;
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
this.calendar.value = startOfDay(new Date());
|
|
50
|
+
}
|
|
51
|
+
getValue() {
|
|
52
|
+
const date = this.calendar?.value;
|
|
53
|
+
console.log(date);
|
|
54
|
+
return date ? dates.dateToSerialDate(date) : null;
|
|
55
|
+
}
|
|
56
|
+
async activate(cell) {
|
|
57
|
+
super.activate(cell);
|
|
58
|
+
await this.calendar.updateComplete;
|
|
59
|
+
await this.calendar.open();
|
|
60
|
+
this.setValue(cell.value);
|
|
61
|
+
}
|
|
62
|
+
close() {
|
|
63
|
+
super.close();
|
|
64
|
+
this.calendar.close();
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
__decorate([
|
|
68
|
+
query('og-calendar-dropdown')
|
|
69
|
+
], CalendarEditor.prototype, "calendar", void 0);
|
|
70
|
+
CalendarEditor = __decorate([
|
|
71
|
+
customElement('og-grid-calendareditor')
|
|
72
|
+
], CalendarEditor);
|
|
73
|
+
export { CalendarEditor };
|
|
74
|
+
//# sourceMappingURL=calendarEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendarEditor.js","sourceRoot":"","sources":["../../src/editors/calendarEditor.ts"],"names":[],"mappings":"AAAA,uDAAuD;;;;;;;AAEvD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI/B,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,UAAU;IAAvC;;QAyCN,cAAS,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC,CAAA;QAED,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;;;cAIN,IAAI,CAAC,SAAS;;EAE1B,CAAC;IAOH,CAAC;IAtDA,QAAQ,CAAC,KAAyB;QACjC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;YAC3B,OAAO;QACR,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAe,EAAE,SAAS,EAAE,CAAC,CAAC;YACvD,IAAI,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;gBAC3B,OAAO;YACR,CAAC;QACF,CAAC;aAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,KAAe,CAAC,CAAC;YAC9D,OAAO;QACR,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAa,CAAC;YACpC,OAAO;QACR,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,QAAQ;QACP,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAe;QACvB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;QACnC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;IACxC,CAAC;IAeJ,KAAK;QACJ,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CAED,CAAA;AAxDA;IADC,KAAK,CAAC,sBAAsB,CAAC;gDAChB;AAHF,cAAc;IAD1B,aAAa,CAAC,wBAAwB,CAAC;GAC3B,cAAc,CA2D1B","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { customElement, query } from 'lit/decorators.js';\nimport { dates, utils } from \"@omegagrid/core\";\nimport { getLocale } from \"@omegagrid/localize\";\nimport { BaseEditor } from \"./baseEditor\";\nimport { html } from 'lit';\nimport { startOfDay } from 'date-fns';\nimport { CellModel } from '@omegagrid/grid-core';\n\n@customElement('og-grid-calendareditor')\nexport class CalendarEditor extends BaseEditor {\n\n\t@query('og-calendar-dropdown')\n\tcalendar: any;\n\n\tsetValue(value: number|string|Date) {\n\t\tif (value == null) {\n\t\t\tthis.calendar.value = null;\n\t\t\treturn;\n\t\t}\n\n\t\tif (utils.isString(value)) {\n\t\t\tconst date = dates.parse(value as string, getLocale());\n\t\t\tif (date) {\n\t\t\t\tthis.calendar.value = date;\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (utils.isNumber(value)) {\n\t\t\tthis.calendar.value = dates.serialDateToDate(value as number);\n\t\t\treturn;\n\t\t} else {\n\t\t\tthis.calendar.value = value as Date;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.calendar.value = startOfDay(new Date());\n\t}\n\n\tgetValue() : number {\n\t\tconst date = this.calendar?.value;\n\t\tconsole.log(date);\n\t\treturn date ? dates.dateToSerialDate(date) : null;\n\t}\n\n\tasync activate(cell: CellModel) {\n super.activate(cell);\n\t\tawait this.calendar.updateComplete;\n\t\tawait this.calendar.open();\n this.setValue(cell.value as number);\n }\n\n\t_onChange = () => {\n\t\tthis.commit();\n\t\tthis.close();\n\t}\t\t\n\n\trender = () => html`\n\t\t<og-calendar-dropdown\n\t\t\tbuttonInput\n\t\t\tcross\n\t\t\t@change=\"${this._onChange}\">\n\t\t</og-calendar-dropdown>\n\t`;\n\t\n\tclose() {\n\t\tsuper.close();\n\t\tthis.calendar.close();\n\t}\n\n}"]}
|