@omegagrid/grid 0.10.0 → 0.10.2

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 (257) hide show
  1. package/package.json +7 -7
  2. package/dist/commands/editingCommands.d.ts +0 -4
  3. package/dist/commands/editingCommands.d.ts.map +0 -1
  4. package/dist/commands/editingCommands.js +0 -74
  5. package/dist/commands/editingCommands.js.map +0 -1
  6. package/dist/commands/groupCommands.d.ts +0 -8
  7. package/dist/commands/groupCommands.d.ts.map +0 -1
  8. package/dist/commands/groupCommands.js +0 -7
  9. package/dist/commands/groupCommands.js.map +0 -1
  10. package/dist/commands/index.d.ts +0 -4
  11. package/dist/commands/index.d.ts.map +0 -1
  12. package/dist/commands/index.js +0 -9
  13. package/dist/commands/index.js.map +0 -1
  14. package/dist/commands/navigationCommands.d.ts +0 -5
  15. package/dist/commands/navigationCommands.d.ts.map +0 -1
  16. package/dist/commands/navigationCommands.js +0 -117
  17. package/dist/commands/navigationCommands.js.map +0 -1
  18. package/dist/constants.d.ts +0 -65
  19. package/dist/constants.d.ts.map +0 -1
  20. package/dist/constants.js +0 -8
  21. package/dist/constants.js.map +0 -1
  22. package/dist/editors/baseEditor.d.ts +0 -31
  23. package/dist/editors/baseEditor.d.ts.map +0 -1
  24. package/dist/editors/baseEditor.js +0 -112
  25. package/dist/editors/baseEditor.js.map +0 -1
  26. package/dist/editors/calendarEditor.d.ts +0 -12
  27. package/dist/editors/calendarEditor.d.ts.map +0 -1
  28. package/dist/editors/calendarEditor.js +0 -74
  29. package/dist/editors/calendarEditor.js.map +0 -1
  30. package/dist/editors/checkboxEditor.d.ts +0 -9
  31. package/dist/editors/checkboxEditor.d.ts.map +0 -1
  32. package/dist/editors/checkboxEditor.js +0 -32
  33. package/dist/editors/checkboxEditor.js.map +0 -1
  34. package/dist/editors/dateEditor.d.ts +0 -8
  35. package/dist/editors/dateEditor.d.ts.map +0 -1
  36. package/dist/editors/dateEditor.js +0 -37
  37. package/dist/editors/dateEditor.js.map +0 -1
  38. package/dist/editors/dropdownEditor.d.ts +0 -26
  39. package/dist/editors/dropdownEditor.d.ts.map +0 -1
  40. package/dist/editors/dropdownEditor.js +0 -142
  41. package/dist/editors/dropdownEditor.js.map +0 -1
  42. package/dist/editors/formulaEditor.d.ts +0 -21
  43. package/dist/editors/formulaEditor.d.ts.map +0 -1
  44. package/dist/editors/formulaEditor.js +0 -109
  45. package/dist/editors/formulaEditor.js.map +0 -1
  46. package/dist/editors/index.d.ts +0 -8
  47. package/dist/editors/index.d.ts.map +0 -1
  48. package/dist/editors/index.js +0 -19
  49. package/dist/editors/index.js.map +0 -1
  50. package/dist/editors/numberEditor.d.ts +0 -9
  51. package/dist/editors/numberEditor.d.ts.map +0 -1
  52. package/dist/editors/numberEditor.js +0 -37
  53. package/dist/editors/numberEditor.js.map +0 -1
  54. package/dist/editors/textEditor.d.ts +0 -15
  55. package/dist/editors/textEditor.d.ts.map +0 -1
  56. package/dist/editors/textEditor.js +0 -74
  57. package/dist/editors/textEditor.js.map +0 -1
  58. package/dist/filters/NumberFilter.d.ts +0 -8
  59. package/dist/filters/NumberFilter.d.ts.map +0 -1
  60. package/dist/filters/NumberFilter.js +0 -13
  61. package/dist/filters/NumberFilter.js.map +0 -1
  62. package/dist/filters/baseFilter.d.ts +0 -20
  63. package/dist/filters/baseFilter.d.ts.map +0 -1
  64. package/dist/filters/baseFilter.js +0 -47
  65. package/dist/filters/baseFilter.js.map +0 -1
  66. package/dist/filters/checkboxFilter.d.ts +0 -12
  67. package/dist/filters/checkboxFilter.d.ts.map +0 -1
  68. package/dist/filters/checkboxFilter.js +0 -67
  69. package/dist/filters/checkboxFilter.js.map +0 -1
  70. package/dist/filters/dropdownFilter.d.ts +0 -17
  71. package/dist/filters/dropdownFilter.d.ts.map +0 -1
  72. package/dist/filters/dropdownFilter.js +0 -116
  73. package/dist/filters/dropdownFilter.js.map +0 -1
  74. package/dist/filters/filterFactory.d.ts +0 -4
  75. package/dist/filters/filterFactory.d.ts.map +0 -1
  76. package/dist/filters/filterFactory.js +0 -39
  77. package/dist/filters/filterFactory.js.map +0 -1
  78. package/dist/filters/index.d.ts +0 -5
  79. package/dist/filters/index.d.ts.map +0 -1
  80. package/dist/filters/index.js +0 -5
  81. package/dist/filters/index.js.map +0 -1
  82. package/dist/filters/textFilter.d.ts +0 -17
  83. package/dist/filters/textFilter.d.ts.map +0 -1
  84. package/dist/filters/textFilter.js +0 -89
  85. package/dist/filters/textFilter.js.map +0 -1
  86. package/dist/gridAdapter.d.ts +0 -30
  87. package/dist/gridAdapter.d.ts.map +0 -1
  88. package/dist/gridAdapter.js +0 -11
  89. package/dist/gridAdapter.js.map +0 -1
  90. package/dist/i18n/en-us.d.ts +0 -4
  91. package/dist/i18n/en-us.d.ts.map +0 -1
  92. package/dist/i18n/en-us.js +0 -5
  93. package/dist/i18n/en-us.js.map +0 -1
  94. package/dist/i18n/index.d.ts +0 -5
  95. package/dist/i18n/index.d.ts.map +0 -1
  96. package/dist/i18n/index.js +0 -8
  97. package/dist/i18n/index.js.map +0 -1
  98. package/dist/index.d.ts +0 -7
  99. package/dist/index.d.ts.map +0 -1
  100. package/dist/index.js +0 -7
  101. package/dist/index.js.map +0 -1
  102. package/dist/renderers/ActionRenderer.d.ts +0 -3
  103. package/dist/renderers/ActionRenderer.d.ts.map +0 -1
  104. package/dist/renderers/ActionRenderer.js +0 -68
  105. package/dist/renderers/ActionRenderer.js.map +0 -1
  106. package/dist/renderers/BaseRenderer.d.ts +0 -6
  107. package/dist/renderers/BaseRenderer.d.ts.map +0 -1
  108. package/dist/renderers/BaseRenderer.js +0 -56
  109. package/dist/renderers/BaseRenderer.js.map +0 -1
  110. package/dist/renderers/CheckboxRenderer.d.ts +0 -4
  111. package/dist/renderers/CheckboxRenderer.d.ts.map +0 -1
  112. package/dist/renderers/CheckboxRenderer.js +0 -22
  113. package/dist/renderers/CheckboxRenderer.js.map +0 -1
  114. package/dist/renderers/DateTimeRenderer.d.ts +0 -4
  115. package/dist/renderers/DateTimeRenderer.d.ts.map +0 -1
  116. package/dist/renderers/DateTimeRenderer.js +0 -21
  117. package/dist/renderers/DateTimeRenderer.js.map +0 -1
  118. package/dist/renderers/DropdownRenderer.d.ts +0 -4
  119. package/dist/renderers/DropdownRenderer.d.ts.map +0 -1
  120. package/dist/renderers/DropdownRenderer.js +0 -18
  121. package/dist/renderers/DropdownRenderer.js.map +0 -1
  122. package/dist/renderers/GeneralRenderer.d.ts +0 -4
  123. package/dist/renderers/GeneralRenderer.d.ts.map +0 -1
  124. package/dist/renderers/GeneralRenderer.js +0 -12
  125. package/dist/renderers/GeneralRenderer.js.map +0 -1
  126. package/dist/renderers/HtmlRenderer.d.ts +0 -4
  127. package/dist/renderers/HtmlRenderer.d.ts.map +0 -1
  128. package/dist/renderers/HtmlRenderer.js +0 -6
  129. package/dist/renderers/HtmlRenderer.js.map +0 -1
  130. package/dist/renderers/NumberRenderer.d.ts +0 -4
  131. package/dist/renderers/NumberRenderer.d.ts.map +0 -1
  132. package/dist/renderers/NumberRenderer.js +0 -14
  133. package/dist/renderers/NumberRenderer.js.map +0 -1
  134. package/dist/renderers/SparklineRenderer.d.ts +0 -3
  135. package/dist/renderers/SparklineRenderer.d.ts.map +0 -1
  136. package/dist/renderers/SparklineRenderer.js +0 -8
  137. package/dist/renderers/SparklineRenderer.js.map +0 -1
  138. package/dist/renderers/TextRenderer.d.ts +0 -4
  139. package/dist/renderers/TextRenderer.d.ts.map +0 -1
  140. package/dist/renderers/TextRenderer.js +0 -38
  141. package/dist/renderers/TextRenderer.js.map +0 -1
  142. package/dist/renderers/index.d.ts +0 -12
  143. package/dist/renderers/index.d.ts.map +0 -1
  144. package/dist/renderers/index.js +0 -32
  145. package/dist/renderers/index.js.map +0 -1
  146. package/dist/types.d.ts +0 -10
  147. package/dist/types.d.ts.map +0 -1
  148. package/dist/types.js +0 -2
  149. package/dist/types.js.map +0 -1
  150. package/dist/ui/comment.d.ts +0 -59
  151. package/dist/ui/comment.d.ts.map +0 -1
  152. package/dist/ui/comment.js +0 -284
  153. package/dist/ui/comment.js.map +0 -1
  154. package/dist/ui/comment.style.d.ts +0 -2
  155. package/dist/ui/comment.style.d.ts.map +0 -1
  156. package/dist/ui/comment.style.js +0 -108
  157. package/dist/ui/comment.style.js.map +0 -1
  158. package/dist/ui/elementCache.d.ts +0 -15
  159. package/dist/ui/elementCache.d.ts.map +0 -1
  160. package/dist/ui/elementCache.js +0 -57
  161. package/dist/ui/elementCache.js.map +0 -1
  162. package/dist/ui/filterLabel.d.ts +0 -10
  163. package/dist/ui/filterLabel.d.ts.map +0 -1
  164. package/dist/ui/filterLabel.js +0 -76
  165. package/dist/ui/filterLabel.js.map +0 -1
  166. package/dist/ui/formulaInput.d.ts +0 -56
  167. package/dist/ui/formulaInput.d.ts.map +0 -1
  168. package/dist/ui/formulaInput.js +0 -251
  169. package/dist/ui/formulaInput.js.map +0 -1
  170. package/dist/ui/formulaInput.style.d.ts +0 -2
  171. package/dist/ui/formulaInput.style.d.ts.map +0 -1
  172. package/dist/ui/formulaInput.style.js +0 -65
  173. package/dist/ui/formulaInput.style.js.map +0 -1
  174. package/dist/ui/grid.d.ts +0 -91
  175. package/dist/ui/grid.d.ts.map +0 -1
  176. package/dist/ui/grid.editing.d.ts +0 -61
  177. package/dist/ui/grid.editing.d.ts.map +0 -1
  178. package/dist/ui/grid.editing.js +0 -439
  179. package/dist/ui/grid.editing.js.map +0 -1
  180. package/dist/ui/grid.events.d.ts +0 -97
  181. package/dist/ui/grid.events.d.ts.map +0 -1
  182. package/dist/ui/grid.events.js +0 -581
  183. package/dist/ui/grid.events.js.map +0 -1
  184. package/dist/ui/grid.filtering.d.ts +0 -23
  185. package/dist/ui/grid.filtering.d.ts.map +0 -1
  186. package/dist/ui/grid.filtering.js +0 -68
  187. package/dist/ui/grid.filtering.js.map +0 -1
  188. package/dist/ui/grid.js +0 -297
  189. package/dist/ui/grid.js.map +0 -1
  190. package/dist/ui/grid.menu.d.ts +0 -43
  191. package/dist/ui/grid.menu.d.ts.map +0 -1
  192. package/dist/ui/grid.menu.js +0 -168
  193. package/dist/ui/grid.menu.js.map +0 -1
  194. package/dist/ui/grid.objects.d.ts +0 -24
  195. package/dist/ui/grid.objects.d.ts.map +0 -1
  196. package/dist/ui/grid.objects.js +0 -69
  197. package/dist/ui/grid.objects.js.map +0 -1
  198. package/dist/ui/grid.rendering.d.ts +0 -84
  199. package/dist/ui/grid.rendering.d.ts.map +0 -1
  200. package/dist/ui/grid.rendering.js +0 -471
  201. package/dist/ui/grid.rendering.js.map +0 -1
  202. package/dist/ui/grid.selecting.d.ts +0 -99
  203. package/dist/ui/grid.selecting.d.ts.map +0 -1
  204. package/dist/ui/grid.selecting.js +0 -319
  205. package/dist/ui/grid.selecting.js.map +0 -1
  206. package/dist/ui/grid.sorting.d.ts +0 -23
  207. package/dist/ui/grid.sorting.d.ts.map +0 -1
  208. package/dist/ui/grid.sorting.js +0 -47
  209. package/dist/ui/grid.sorting.js.map +0 -1
  210. package/dist/ui/grid.style.d.ts +0 -2
  211. package/dist/ui/grid.style.d.ts.map +0 -1
  212. package/dist/ui/grid.style.js +0 -39
  213. package/dist/ui/grid.style.js.map +0 -1
  214. package/dist/ui/group.d.ts +0 -71
  215. package/dist/ui/group.d.ts.map +0 -1
  216. package/dist/ui/group.js +0 -312
  217. package/dist/ui/group.js.map +0 -1
  218. package/dist/ui/index.d.ts +0 -19
  219. package/dist/ui/index.d.ts.map +0 -1
  220. package/dist/ui/index.js +0 -19
  221. package/dist/ui/index.js.map +0 -1
  222. package/dist/ui/objectHost.d.ts +0 -30
  223. package/dist/ui/objectHost.d.ts.map +0 -1
  224. package/dist/ui/objectHost.js +0 -114
  225. package/dist/ui/objectHost.js.map +0 -1
  226. package/dist/ui/objectHost.style.d.ts +0 -2
  227. package/dist/ui/objectHost.style.d.ts.map +0 -1
  228. package/dist/ui/objectHost.style.js +0 -43
  229. package/dist/ui/objectHost.style.js.map +0 -1
  230. package/dist/ui/selector.d.ts +0 -97
  231. package/dist/ui/selector.d.ts.map +0 -1
  232. package/dist/ui/selector.js +0 -489
  233. package/dist/ui/selector.js.map +0 -1
  234. package/dist/ui/selector.style.d.ts +0 -2
  235. package/dist/ui/selector.style.d.ts.map +0 -1
  236. package/dist/ui/selector.style.js +0 -106
  237. package/dist/ui/selector.style.js.map +0 -1
  238. package/dist/ui/sortingArrow.d.ts +0 -8
  239. package/dist/ui/sortingArrow.d.ts.map +0 -1
  240. package/dist/ui/sortingArrow.js +0 -42
  241. package/dist/ui/sortingArrow.js.map +0 -1
  242. package/dist/ui/sparkline.d.ts +0 -14
  243. package/dist/ui/sparkline.d.ts.map +0 -1
  244. package/dist/ui/sparkline.js +0 -111
  245. package/dist/ui/sparkline.js.map +0 -1
  246. package/dist/ui/table.d.ts +0 -122
  247. package/dist/ui/table.d.ts.map +0 -1
  248. package/dist/ui/table.js +0 -1063
  249. package/dist/ui/table.js.map +0 -1
  250. package/dist/ui/table.styles.d.ts +0 -2
  251. package/dist/ui/table.styles.d.ts.map +0 -1
  252. package/dist/ui/table.styles.js +0 -249
  253. package/dist/ui/table.styles.js.map +0 -1
  254. package/dist/ui/tooltip.d.ts +0 -9
  255. package/dist/ui/tooltip.d.ts.map +0 -1
  256. package/dist/ui/tooltip.js +0 -32
  257. package/dist/ui/tooltip.js.map +0 -1
package/dist/ui/group.js DELETED
@@ -1,312 +0,0 @@
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 { dom, Plugins, log } from '@omegagrid/core';
8
- import { TabSplitContainerModel } from '@omegagrid/tabs';
9
- import { GridModel } from '@omegagrid/grid-core';
10
- import { LitElement, html, css } from 'lit';
11
- import { customElement, property, query, state } from 'lit/decorators.js';
12
- import { GroupModel } from '@omegagrid/grid-core';
13
- import { createRef } from 'lit-html/directives/ref.js';
14
- const emptyGridSource = {
15
- options: { rows: 100, columns: 20, editable: true }
16
- };
17
- const createEmptyModel = () => new GridModel(emptyGridSource);
18
- const DEFAULT_OPTIONS = {
19
- commandWindow: true,
20
- showHiddenTabs: false,
21
- };
22
- export class GridGroupEvent extends Event {
23
- constructor(type) {
24
- super(`gridgroup.${type}`);
25
- }
26
- }
27
- let GridGroup = class GridGroup extends LitElement {
28
- get commandWindow() { return this.commandWindowRef.value; }
29
- get activeGrid() { return this._activeGrid; }
30
- get formulaModeGrid() { return this._formulaModeGrid; }
31
- get isFormulaMode() { return this.formulaModeGrid != null; }
32
- /** Returns grid data models in order they are displayed within the layout */
33
- get gridModels() {
34
- const ord = new Map();
35
- this.containerModel.walk(tab => {
36
- const m = this.model.get(tab.id);
37
- if (m)
38
- ord.set(m.name, ord.size);
39
- });
40
- return Array.from(this.model.models).sort((a, b) => (ord.get(a[0]) ?? 0) - (ord.get(b[0]) ?? 0)).map(([_, m]) => m);
41
- }
42
- startFormulaMode(grid) {
43
- this._formulaModeGrid = grid;
44
- }
45
- endFormulaMode() {
46
- if (!this.isFormulaMode)
47
- return;
48
- this._formulaModeGrid = null;
49
- this.grids.forEach(grid => grid.editing.endFormulaMode(false));
50
- }
51
- activateGrid(name, dispatchEvent = true) {
52
- const grid = this.grids.get(name);
53
- if (!grid)
54
- return;
55
- if (this.activeGrid?.model?.name == name)
56
- return;
57
- if (this.activeGrid && dispatchEvent)
58
- this.dispatchEvent(new GridGroupEvent('deactivate'));
59
- this._activeGrid = grid;
60
- this.container.activate(name);
61
- setTimeout(() => grid.focus(), 100);
62
- if (dispatchEvent)
63
- this.dispatchEvent(new GridGroupEvent('activate'));
64
- }
65
- previewZoom(zoom) {
66
- this.grids.forEach(grid => {
67
- if (grid.isConnected)
68
- grid.table.previewZoom(zoom);
69
- });
70
- }
71
- updateZoom() {
72
- this.grids.forEach(grid => {
73
- if (grid.isConnected)
74
- grid.zoom = this.zoom;
75
- });
76
- }
77
- hideSelectors() {
78
- this.grids.forEach(grid => {
79
- if (grid.isConnected)
80
- grid.selecting.hideSelector();
81
- });
82
- }
83
- showSelectors() {
84
- this.grids.forEach(grid => {
85
- if (grid.isConnected)
86
- grid.selecting.showSelector();
87
- });
88
- }
89
- renameSheet(oldName, newName) {
90
- if (this.model.has(newName))
91
- throw new Error(`Sheet '${newName}' already exists`);
92
- if (this.grids.has(oldName)) {
93
- this.grids.set(newName, this.grids.get(oldName));
94
- this.grids.delete(oldName);
95
- }
96
- this.model.rename(oldName, newName);
97
- this.container.model.updateTab(oldName, { id: newName, title: newName });
98
- this.updateTabs();
99
- }
100
- updateTabs() {
101
- // sync tabs with model
102
- this.containerModel.walk(tab => {
103
- const m = this.model.get(tab.id);
104
- if (!m)
105
- return;
106
- tab.id = m.name;
107
- tab.color = m.tab?.color;
108
- tab.hidden = !this.options.showHiddenTabs && m.tab?.hidden;
109
- tab.icon = m.tab?.hidden ? 'eye-slash' : null;
110
- });
111
- this.container?.updateTabs();
112
- }
113
- updateContainer() {
114
- this.container?.splitContainer?.requestUpdate();
115
- }
116
- constructor() {
117
- super();
118
- this.options = DEFAULT_OPTIONS;
119
- this.designMode = false;
120
- this.zoom = 1;
121
- this.tabPosition = 'top';
122
- this.logger = new log.Logger('ΩgridGroup');
123
- this.grids = new Map();
124
- this.commandWindowRef = createRef();
125
- this.plugins = new Plugins(this);
126
- this._formulaModeGrid = null;
127
- this._isLoaded = false;
128
- this._onGridSelect = (e) => {
129
- if (!e.grid)
130
- return;
131
- if (this.isFormulaMode)
132
- return;
133
- this.activateGrid(e.grid.model.name, true);
134
- };
135
- this.createGrid = (id) => new Promise(resolve => {
136
- const name = id;
137
- let grid = this.grids.get(name);
138
- if (grid) {
139
- resolve(grid);
140
- return;
141
- }
142
- const model = this.model.has(name) ? this.model.get(name) : this.model.add(createEmptyModel());
143
- model.options.commandWindow = false;
144
- grid = dom.createElement('og-grid');
145
- grid.style.height = '100%';
146
- grid.model = model;
147
- grid.options = model.options;
148
- grid.group = this;
149
- grid.zoom = this.zoom;
150
- this.grids.set(model.name, grid);
151
- resolve(grid);
152
- });
153
- this._onTabSelect = (e) => {
154
- if (e.tab && this._isLoaded) {
155
- const grid = this.grids.get(e.tab.id);
156
- if (this._activeGrid != grid) {
157
- this.activateGrid(grid.model.name, true);
158
- setTimeout(() => this._activeGrid.focus(), 100); // TODO - figure out how to do this without timeout
159
- }
160
- }
161
- };
162
- this._onTabAdd = (e) => {
163
- const model = this.model.add(createEmptyModel());
164
- if (!e.tabs?.container)
165
- return;
166
- e.tabs.container.open({ id: model.name, title: model.name });
167
- };
168
- this._onContainerLoad = () => {
169
- this._isLoaded = true;
170
- // wait for grid to be connected
171
- if (this.gridModels.length)
172
- this.activateGrid(this.gridModels[0].name, true);
173
- };
174
- this.render = () => html `
175
- <og-tabsplitcontainer
176
- ?singleActive="${true}"
177
- ?addButton="${true}"
178
- ?closable="${false}"
179
- .tabPosition="${this.tabPosition}"
180
- @tab.select="${this._onTabSelect}"
181
- @tab.add="${this._onTabAdd}"
182
- @load="${this._onContainerLoad}"
183
- .createComponent="${this.createGrid}"
184
- .model="${this.containerModel}">
185
- </og-tabsplitcontainer>
186
- `;
187
- this.model = new GroupModel();
188
- this.model.add(createEmptyModel());
189
- this.containerModel = new TabSplitContainerModel({
190
- items: [{
191
- size: null,
192
- tabs: Array.from(this.model.models).map(([name]) => ({
193
- id: name,
194
- title: name
195
- }))
196
- }]
197
- });
198
- this.addEventListener('grid.selector.select', this._onGridSelect);
199
- this.addEventListener('grid.object.activate', this._onGridSelect);
200
- }
201
- deleteModel(name) {
202
- this.model.remove(name);
203
- this.containerModel.removeTab(name);
204
- this.updateContainer();
205
- }
206
- duplicateModel(name) {
207
- const model = this.model.duplicate(name);
208
- this.containerModel.addTab({ id: model.name, title: model.name }, name);
209
- this.updateContainer();
210
- }
211
- connectedCallback() {
212
- super.connectedCallback();
213
- this.tabIndex = 0;
214
- }
215
- layout() {
216
- this.container?.layout();
217
- }
218
- setSourceData(sourceData) {
219
- this.grids.clear();
220
- this.model = new GroupModel(sourceData);
221
- //sourceData.models.forEach(src => this.model.get(src.name).tabColor = src.tabColor);
222
- this.containerModel = new TabSplitContainerModel(sourceData.layout);
223
- if (this.model.errors.length && this.logger) {
224
- this.model.errors.forEach(e => this.logger.error(e.message));
225
- }
226
- this.fixLayout();
227
- }
228
- getSourceData() {
229
- const data = this.model.getSourceData();
230
- data.layout = this.containerModel.getSourceData();
231
- return data;
232
- }
233
- willUpdate(props) {
234
- if (props.has('zoom'))
235
- this.updateZoom();
236
- if (!this.model)
237
- this.model = new GroupModel();
238
- this.updateTabs();
239
- }
240
- getGrid(name) {
241
- return this.grids.get(name);
242
- }
243
- getGridByModel(model) {
244
- return this.getGrid(model.name);
245
- }
246
- /**
247
- * Adds tabs for grid models missing in layout definition.
248
- */
249
- fixLayout() {
250
- const modelNames = new Set();
251
- this.model.models.forEach((_, name) => modelNames.add(name));
252
- let defaultContainer = null;
253
- this.containerModel.walk((item, container) => {
254
- if (defaultContainer == null)
255
- defaultContainer = container;
256
- modelNames.delete(item.id);
257
- });
258
- defaultContainer = defaultContainer || this.containerModel;
259
- defaultContainer.items = defaultContainer.items || [];
260
- if (!defaultContainer.items.length)
261
- defaultContainer.items.push({});
262
- if (!defaultContainer.items[0].tabs)
263
- defaultContainer.items[0].tabs = [];
264
- const containerItem = defaultContainer.items.find(item => item.container == null && item.tabs != null);
265
- modelNames.forEach(name => containerItem.tabs.push({ id: name, title: name }));
266
- }
267
- };
268
- GridGroup.styles = css `
269
- * {
270
- box-sizing: border-box;
271
- }
272
-
273
- :host {
274
- display: block;
275
- }
276
-
277
- og-tabsplitcontainer {
278
- height: 100%;
279
- }
280
- `;
281
- __decorate([
282
- property({ type: Object })
283
- ], GridGroup.prototype, "options", void 0);
284
- __decorate([
285
- property({ type: Object })
286
- ], GridGroup.prototype, "model", void 0);
287
- __decorate([
288
- property({ type: Object })
289
- ], GridGroup.prototype, "containerModel", void 0);
290
- __decorate([
291
- property({ type: Boolean })
292
- ], GridGroup.prototype, "designMode", void 0);
293
- __decorate([
294
- property({ type: Number })
295
- ], GridGroup.prototype, "zoom", void 0);
296
- __decorate([
297
- property({ type: String, reflect: true })
298
- ], GridGroup.prototype, "tabPosition", void 0);
299
- __decorate([
300
- property({ type: Object })
301
- ], GridGroup.prototype, "logger", void 0);
302
- __decorate([
303
- state()
304
- ], GridGroup.prototype, "grids", void 0);
305
- __decorate([
306
- query('og-tabsplitcontainer')
307
- ], GridGroup.prototype, "container", void 0);
308
- GridGroup = __decorate([
309
- customElement('og-gridgroup')
310
- ], GridGroup);
311
- export { GridGroup };
312
- //# sourceMappingURL=group.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/ui/group.ts"],"names":[],"mappings":"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","sourcesContent":["import { dom, Layout, ComponentId, Plugins, VerticalPosition, log } from '@omegagrid/core';\nimport { TabSplitContainer, TabEvent, TabSplitContainerModel } from '@omegagrid/tabs';\nimport { GridModel, GridSource, Options } from '@omegagrid/grid-core';\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { GroupModel } from '@omegagrid/grid-core';\nimport { Grid } from './grid';\nimport { GroupModelSource } from '../types';\nimport { CommandWindow } from '@omegagrid/commands';\nimport { createRef } from 'lit-html/directives/ref.js';\nimport { GridEvent } from './grid.events';\n\nconst emptyGridSource: GridSource = {\n\toptions: {rows: 100, columns: 20, editable: true}\n};\n\nconst createEmptyModel = () => new GridModel(emptyGridSource);\n\nexport type GroupOptions = {\n\tcommandWindow?: boolean;\n\tshowHiddenTabs?: boolean;\n\tgrid?: Options;\n}\n\nconst DEFAULT_OPTIONS: GroupOptions = {\n\tcommandWindow: true,\n\tshowHiddenTabs: false,\n}\n\nexport class GridGroupEvent extends Event {\n\tconstructor(type: string) {\n\t\tsuper(`gridgroup.${type}`);\n\t}\n}\n\n@customElement('og-gridgroup')\nexport class GridGroup extends LitElement implements Layout {\n\n\tstatic styles = css`\n\t\t* {\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\n\t\tog-tabsplitcontainer {\n\t\t\theight: 100%;\n\t\t}\n\t`;\n\n\t@property({type: Object})\n\toptions = DEFAULT_OPTIONS;\n\n\t@property({type: Object})\n\tmodel: GroupModel;\n\n\t@property({type: Object})\n\tcontainerModel: TabSplitContainerModel;\n\n\t@property({type: Boolean})\n\tdesignMode = false;\n\n\t@property({type: Number})\n\tzoom = 1;\n\n\t@property({type: String, reflect: true})\n\ttabPosition: VerticalPosition = 'top';\n\n\t@property({type: Object})\n\tlogger: log.Logger = new log.Logger('ΩgridGroup')\n\n\t@state()\n\tgrids = new Map<string, Grid>();\n\t\n\t@query('og-tabsplitcontainer')\n\tcontainer: TabSplitContainer;\n\n\tprivate commandWindowRef = createRef<CommandWindow>();\n\tget commandWindow() { return this.commandWindowRef.value }\n\t\n\tprivate _activeGrid: Grid;\n\tget activeGrid() { return this._activeGrid }\n\t\n\treadonly plugins = new Plugins(this);\n\n\tprivate _formulaModeGrid: Grid = null;\n\tget formulaModeGrid() { return this._formulaModeGrid }\n\tget isFormulaMode() { return this.formulaModeGrid != null }\n\n\t_isLoaded = false;\n\n\n\t/** Returns grid data models in order they are displayed within the layout */\n\tget gridModels() {\n\t\tconst ord = new Map<string, number>();\n\t\tthis.containerModel.walk(tab => {\n\t\t\tconst m = this.model.get(tab.id as string);\n\t\t\tif (m) ord.set(m.name, ord.size);\n\t\t});\n\t\treturn Array.from(this.model.models).sort(\n\t\t\t(a, b) => (ord.get(a[0]) ?? 0) - (ord.get(b[0]) ?? 0)\n\t\t).map(([_, m]) => m);\n\t}\n\n\tstartFormulaMode(grid: Grid) {\n\t\tthis._formulaModeGrid = grid;\n\t}\n\n\tendFormulaMode() {\n\t\tif (!this.isFormulaMode) return;\n\t\tthis._formulaModeGrid = null;\n\t\tthis.grids.forEach(grid => grid.editing.endFormulaMode(false));\n\t}\n\n\tactivateGrid(name: string, dispatchEvent = true) {\n\t\tconst grid = this.grids.get(name)\n\t\tif (!grid) return;\n\t\tif (this.activeGrid?.model?.name == name) return;\n\t\tif (this.activeGrid && dispatchEvent) this.dispatchEvent(new GridGroupEvent('deactivate'));\n\t\tthis._activeGrid = grid;\n\t\tthis.container.activate(name);\n\t\tsetTimeout(() => grid.focus(), 100);\n\t\tif (dispatchEvent) this.dispatchEvent(new GridGroupEvent('activate'));\n\t}\n\n\tpreviewZoom(zoom: number) {\n\t\tthis.grids.forEach(grid => {\n\t\t\tif (grid.isConnected) grid.table.previewZoom(zoom);\n\t\t});\n\t}\n\n\tupdateZoom() {\n\t\tthis.grids.forEach(grid => {\n\t\t\tif (grid.isConnected) grid.zoom = this.zoom;\n\t\t});\n\t}\n\n\thideSelectors() {\n\t\tthis.grids.forEach(grid => {\n\t\t\tif (grid.isConnected) grid.selecting.hideSelector();\n\t\t});\n\t}\n\n\tshowSelectors() {\n\t\tthis.grids.forEach(grid => {\n\t\t\tif (grid.isConnected) grid.selecting.showSelector();\n\t\t});\n\t}\n\n\trenameSheet(oldName: string, newName: string) {\n\t\tif (this.model.has(newName)) throw new Error(`Sheet '${newName}' already exists`);\n\t\tif (this.grids.has(oldName)) {\n\t\t\tthis.grids.set(newName, this.grids.get(oldName));\n\t\t\tthis.grids.delete(oldName);\n\t\t}\n\t\tthis.model.rename(oldName, newName);\n\t\tthis.container.model.updateTab(oldName, {id: newName, title: newName});\n\t\tthis.updateTabs();\n\t}\n\n\tupdateTabs() {\n\t\t// sync tabs with model\n\t\tthis.containerModel.walk(tab => {\n\t\t\tconst m = this.model.get(tab.id as string);\n\t\t\tif (!m) return;\n\t\t\ttab.id = m.name;\n\t\t\ttab.color = m.tab?.color;\n\t\t\ttab.hidden = !this.options.showHiddenTabs && m.tab?.hidden;\n\t\t\ttab.icon = m.tab?.hidden ? 'eye-slash' : null;\n\t\t});\n\t\tthis.container?.updateTabs();\n\t}\n\n\tupdateContainer() {\n\t\tthis.container?.splitContainer?.requestUpdate();\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.model = new GroupModel();\n\t\tthis.model.add(createEmptyModel());\n\t\tthis.containerModel = new TabSplitContainerModel({\n\t\t\titems: [{\n\t\t\t\tsize: null,\n\t\t\t\ttabs: Array.from(this.model.models).map(([name]) => ({\n\t\t\t\t\tid: name,\n\t\t\t\t\ttitle: name\n\t\t\t\t}))\n\t\t\t}]\n\t\t});\n\n\t\tthis.addEventListener('grid.selector.select', this._onGridSelect);\n\t\tthis.addEventListener('grid.object.activate', this._onGridSelect);\n\t}\n\n\tdeleteModel(name: string) {\n\t\tthis.model.remove(name);\n\t\tthis.containerModel.removeTab(name);\n\t\tthis.updateContainer();\n\t}\n\n\tduplicateModel(name: string) {\n\t\tconst model = this.model.duplicate(name);\n\t\tthis.containerModel.addTab({id: model.name, title: model.name}, name);\n\t\tthis.updateContainer();\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.tabIndex = 0;\n\t}\n\n\tlayout() {\n\t\tthis.container?.layout();\n\t}\n\n\tsetSourceData(sourceData: GroupModelSource) {\n\t\tthis.grids.clear();\n\t\tthis.model = new GroupModel(sourceData);\n\t\t//sourceData.models.forEach(src => this.model.get(src.name).tabColor = src.tabColor);\n\t\tthis.containerModel = new TabSplitContainerModel(sourceData.layout);\n\n\t\tif (this.model.errors.length && this.logger) {\n\t\t\tthis.model.errors.forEach(e => this.logger.error(e.message));\n\t\t}\n\n\t\tthis.fixLayout();\n\t}\n\n\tgetSourceData() {\n\t\tconst data = this.model.getSourceData() as GroupModelSource;\n\t\tdata.layout = this.containerModel.getSourceData();\n\t\treturn data;\n\t}\n\n\twillUpdate(props: Map<PropertyKey, undefined>) {\n\t\tif (props.has('zoom')) this.updateZoom();\n\t\tif (!this.model) this.model = new GroupModel();\n\t\tthis.updateTabs();\n\t}\n\n\tgetGrid(name: string) {\n\t\treturn this.grids.get(name);\n\t}\n\n\tgetGridByModel(model: GridModel) {\n\t\treturn this.getGrid(model.name);\n\t}\n\n\t_onGridSelect = (e: GridEvent) => {\n\t\tif (!e.grid) return;\n\t\tif (this.isFormulaMode) return;\n\t\tthis.activateGrid(e.grid.model.name, true);\n\t}\n\n\tcreateGrid = (id: ComponentId) => new Promise<Grid>(resolve => {\n\t\tconst name = id as string;\n\t\tlet grid = this.grids.get(name);\n\t\tif (grid) {\n\t\t\tresolve(grid);\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tconst model = this.model.has(name) ? this.model.get(name) : this.model.add(createEmptyModel());\n\t\tmodel.options.commandWindow = false;\n\t\tgrid = dom.createElement<Grid>('og-grid');\n\t\tgrid.style.height = '100%';\n\t\tgrid.model = model;\n\t\tgrid.options = model.options;\n\t\tgrid.group = this;\n\t\tgrid.zoom = this.zoom;\n\t\tthis.grids.set(model.name, grid);\n\t\tresolve(grid);\n\t});\n\n\t_onTabSelect = (e: TabEvent) => {\n\t\tif (e.tab && this._isLoaded) {\n\t\t\tconst grid = this.grids.get(e.tab.id as string);\n\t\t\tif (this._activeGrid != grid) {\n\t\t\t\tthis.activateGrid(grid.model.name, true);\n\t\t\t\tsetTimeout(() => this._activeGrid.focus(), 100); // TODO - figure out how to do this without timeout\n\t\t\t}\n\t\t}\n\t};\n\n\t_onTabAdd = (e: TabEvent) => {\n\t\tconst model = this.model.add(createEmptyModel());\n\t\tif (!e.tabs?.container) return;\n\t\te.tabs.container.open({id: model.name, title: model.name});\n\t};\n\t\n\t_onContainerLoad = () => {\n\t\tthis._isLoaded = true;\n\t\t// wait for grid to be connected\n\t\tif (this.gridModels.length) this.activateGrid(this.gridModels[0].name, true);\n\t}\n\n\trender = () => html`\n\t\t<og-tabsplitcontainer\n\t\t\t?singleActive=\"${true}\"\n\t\t\t?addButton=\"${true}\"\n\t\t\t?closable=\"${false}\"\n\t\t\t.tabPosition=\"${this.tabPosition}\"\n\t\t\t@tab.select=\"${this._onTabSelect}\"\n\t\t\t@tab.add=\"${this._onTabAdd}\"\n\t\t\t@load=\"${this._onContainerLoad}\"\n\t\t\t.createComponent=\"${this.createGrid}\"\n\t\t\t.model=\"${this.containerModel}\">\n\t\t</og-tabsplitcontainer>\n\t`;\n\n\t/**\n\t * Adds tabs for grid models missing in layout definition.\n\t */\n\tfixLayout() {\n\t\tconst modelNames = new Set<string>();\n\t\tthis.model.models.forEach((_, name) => modelNames.add(name));\n\t\tlet defaultContainer: TabSplitContainerModel = null;\n\t\tthis.containerModel.walk((item, container) => {\n\t\t\tif (defaultContainer == null) defaultContainer = container;\n\t\t\tmodelNames.delete(item.id as string);\n\t\t});\n\t\tdefaultContainer = defaultContainer || this.containerModel;\n\t\tdefaultContainer.items = defaultContainer.items || [];\n\t\tif (!defaultContainer.items.length) defaultContainer.items.push({});\n\t\tif (!defaultContainer.items[0].tabs) defaultContainer.items[0].tabs = [];\n\n\t\tconst containerItem = defaultContainer.items.find(item => item.container == null && item.tabs != null);\n\t\tmodelNames.forEach(name => containerItem.tabs.push({id: name, title: name}));\n\t}\n\n}"]}
@@ -1,19 +0,0 @@
1
- export * from './elementCache';
2
- export * from './filterLabel';
3
- export * from './formulaInput';
4
- export * from './grid';
5
- export * from './grid.editing';
6
- export * from './grid.events';
7
- export * from './grid.filtering';
8
- export * from './grid.rendering';
9
- export * from './grid.selecting';
10
- export * from './grid.sorting';
11
- export * from './group';
12
- export * from './objectHost';
13
- export * from './selector';
14
- export * from './sparkline';
15
- export * from './sortingArrow';
16
- export * from './table';
17
- export * from './tooltip';
18
- export * from './comment';
19
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
package/dist/ui/index.js DELETED
@@ -1,19 +0,0 @@
1
- export * from './elementCache';
2
- export * from './filterLabel';
3
- export * from './formulaInput';
4
- export * from './grid';
5
- export * from './grid.editing';
6
- export * from './grid.events';
7
- export * from './grid.filtering';
8
- export * from './grid.rendering';
9
- export * from './grid.selecting';
10
- export * from './grid.sorting';
11
- export * from './group';
12
- export * from './objectHost';
13
- export * from './selector';
14
- export * from './sparkline';
15
- export * from './sortingArrow';
16
- export * from './table';
17
- export * from './tooltip';
18
- export * from './comment';
19
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC","sourcesContent":["export * from './elementCache';\nexport * from './filterLabel';\nexport * from './formulaInput';\nexport * from './grid';\nexport * from './grid.editing';\nexport * from './grid.events';\nexport * from './grid.filtering';\nexport * from './grid.rendering';\nexport * from './grid.selecting';\nexport * from './grid.sorting';\nexport * from './group';\nexport * from './objectHost';\nexport * from './selector';\nexport * from './sparkline';\nexport * from './sortingArrow';\nexport * from './table';\nexport * from './tooltip';\nexport * from './comment';"]}
@@ -1,30 +0,0 @@
1
- import { ComponentContainer, ComponentFactory, Layout } from "@omegagrid/core";
2
- import { LitElement } from "lit";
3
- import { Grid } from "./grid";
4
- import { ObjectModel } from "@omegagrid/grid-core";
5
- import { GridEvent } from "./grid.events";
6
- export declare class ObjectEvent extends GridEvent {
7
- readonly object: ObjectModel;
8
- readonly host: ObjectHost;
9
- constructor(type: string, args: Partial<ObjectEvent>);
10
- }
11
- export declare class ObjectHost extends LitElement implements ComponentContainer, Layout {
12
- static styles: import("lit").CSSResult[];
13
- grid: Grid;
14
- active: boolean;
15
- model: ObjectModel;
16
- body: HTMLElement;
17
- createComponent: ComponentFactory<HTMLElement>;
18
- component: HTMLElement;
19
- private resizeObserver;
20
- constructor();
21
- connectedCallback(): void;
22
- disconnectedCallback(): void;
23
- getComponent(): Promise<HTMLElement>;
24
- updated(props: Map<string, unknown>): Promise<void>;
25
- updatePosition: () => void;
26
- layout(): void;
27
- _onHeadMouseDown: (e: MouseEvent) => void;
28
- render: () => import("lit-html").TemplateResult<1>;
29
- }
30
- //# sourceMappingURL=objectHost.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"objectHost.d.ts","sourceRoot":"","sources":["../../src/ui/objectHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,EAAO,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAEvC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1C,qBAAa,WAAY,SAAQ,SAAS;IACzC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;gBACd,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC;CAIpD;AAED,qBACa,UAAW,SAAQ,UAAW,YAAW,kBAAkB,EAAE,MAAM;IAE/E,MAAM,CAAC,MAAM,4BAAW;IAExB,IAAI,EAAE,IAAI,CAAC;IAGX,MAAM,UAAS;IAGf,KAAK,EAAE,WAAW,CAAC;IAGnB,IAAI,EAAE,WAAW,CAAC;IAElB,eAAe,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC/C,SAAS,EAAE,WAAW,CAAC;IAEvB,OAAO,CAAC,cAAc,CAAiB;;IAavC,iBAAiB;IAKjB,oBAAoB;IAKd,YAAY;IAKZ,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAUzC,cAAc,aAeb;IAED,MAAM;IAMN,gBAAgB,GAAI,GAAG,UAAU,UAoBhC;IAED,MAAM,6CAGJ;CAEF"}
@@ -1,114 +0,0 @@
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 { dom } from "@omegagrid/core";
8
- import { LitElement, html } from "lit";
9
- import { customElement, property, query } from "lit/decorators.js";
10
- import { GridEvent } from "./grid.events";
11
- import { style } from "./objectHost.style";
12
- import { debounce } from "ts-debounce";
13
- export class ObjectEvent extends GridEvent {
14
- constructor(type, args) {
15
- super(`object.${type}`, args);
16
- Object.assign(this, args);
17
- }
18
- }
19
- let ObjectHost = class ObjectHost extends LitElement {
20
- constructor() {
21
- super();
22
- this.active = false;
23
- this.updatePosition = () => {
24
- if (!this.model)
25
- return;
26
- if (this.model.location) {
27
- const { x, y } = this.model.location;
28
- const column = this.grid.table.viewport.columns[0];
29
- const row = this.grid.table.viewport.rows[0];
30
- const offset = this.grid.model.calculateCellOffset(row.cell(column.index).range);
31
- dom.setPosition(this, {
32
- l: x - offset.x + this.grid.table.totalHeaderWidth,
33
- t: y - offset.y + this.grid.table.totalHeaderHeight
34
- });
35
- }
36
- if (this.model.size) {
37
- dom.setSize(this, this.model.size);
38
- }
39
- };
40
- this._onHeadMouseDown = (e) => {
41
- if (e.button !== 0)
42
- return;
43
- const rect = this.getBoundingClientRect();
44
- const offsetX = e.clientX - rect.left;
45
- const offsetY = e.clientY - rect.top;
46
- let { top, left } = dom.getElementOffset(this.grid, document.body);
47
- left += this.grid.table.totalHeaderWidth;
48
- top += this.grid.table.totalHeaderHeight;
49
- const move = (e) => {
50
- this.model.location = { x: e.clientX - offsetX - left, y: e.clientY - offsetY - top };
51
- this.updatePosition();
52
- };
53
- const up = () => {
54
- document.removeEventListener('mousemove', move);
55
- document.removeEventListener('mouseup', up);
56
- this.dispatchEvent(this.grid.createEvent('moveend', { object: this.model, host: this }, ObjectEvent));
57
- };
58
- document.addEventListener('mousemove', move);
59
- document.addEventListener('mouseup', up);
60
- };
61
- this.render = () => html `
62
- <div id="head" @mousedown="${this._onHeadMouseDown}"></div>
63
- <div id="body"></div>
64
- `;
65
- this.addEventListener('pointerdown', (e) => e.stopImmediatePropagation());
66
- this.addEventListener('click', (e) => e.stopImmediatePropagation());
67
- const debounceResize = debounce(() => this.layout(), 1);
68
- this.resizeObserver = new ResizeObserver(() => {
69
- this.model.size = { w: this.offsetWidth, h: this.offsetHeight };
70
- debounceResize();
71
- });
72
- }
73
- connectedCallback() {
74
- super.connectedCallback();
75
- this.resizeObserver.observe(this);
76
- }
77
- disconnectedCallback() {
78
- super.disconnectedCallback();
79
- this.resizeObserver.unobserve(this);
80
- }
81
- async getComponent() {
82
- if (!this.component)
83
- this.component = await this.createComponent();
84
- return this.component;
85
- }
86
- async updated(props) {
87
- dom.empty(this.body);
88
- this.body.appendChild(await this.getComponent());
89
- this.layout();
90
- if (props.has('active')) {
91
- this.layout();
92
- }
93
- }
94
- layout() {
95
- if (this.component && this.component.layout) {
96
- this.component.layout();
97
- }
98
- }
99
- };
100
- ObjectHost.styles = [style];
101
- __decorate([
102
- property({ type: Boolean, reflect: true })
103
- ], ObjectHost.prototype, "active", void 0);
104
- __decorate([
105
- property({ type: Object })
106
- ], ObjectHost.prototype, "model", void 0);
107
- __decorate([
108
- query("#body")
109
- ], ObjectHost.prototype, "body", void 0);
110
- ObjectHost = __decorate([
111
- customElement("og-object-host")
112
- ], ObjectHost);
113
- export { ObjectHost };
114
- //# sourceMappingURL=objectHost.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"objectHost.js","sourceRoot":"","sources":["../../src/ui/objectHost.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComponentContainer, ComponentFactory, Layout, dom } from \"@omegagrid/core\";\nimport { LitElement, html } from \"lit\";\nimport { customElement, property, query } from \"lit/decorators.js\";\nimport { Grid } from \"./grid\";\nimport { ObjectModel } from \"@omegagrid/grid-core\";\nimport { GridEvent } from \"./grid.events\";\nimport { style } from \"./objectHost.style\";\nimport { debounce } from \"ts-debounce\";\n\nexport class ObjectEvent extends GridEvent {\n\treadonly object: ObjectModel;\n\treadonly host: ObjectHost;\n\tconstructor(type: string, args: Partial<ObjectEvent>) {\n\t\tsuper(`object.${type}`, args);\n\t\tObject.assign(this, args);\n\t}\n}\n\n@customElement(\"og-object-host\")\nexport class ObjectHost extends LitElement implements ComponentContainer, Layout {\n\n\tstatic styles = [style];\n\n\tgrid: Grid;\n\n\t@property({type: Boolean, reflect: true})\n\tactive = false;\n\t\n\t@property({type: Object})\n\tmodel: ObjectModel;\n\n\t@query(\"#body\")\n\tbody: HTMLElement;\n\n\tcreateComponent: ComponentFactory<HTMLElement>;\n\tcomponent: HTMLElement;\n\n\tprivate resizeObserver: ResizeObserver;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.addEventListener('pointerdown', (e: PointerEvent) => e.stopImmediatePropagation());\n\t\tthis.addEventListener('click', (e: PointerEvent) => e.stopImmediatePropagation());\n\t\tconst debounceResize = debounce(() => this.layout(), 1);\n\t\tthis.resizeObserver = new ResizeObserver(() => {\n\t\t\tthis.model.size = {w: this.offsetWidth, h: this.offsetHeight};\n\t\t\tdebounceResize();\n\t\t});\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.resizeObserver.observe(this);\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback();\n\t\tthis.resizeObserver.unobserve(this);\n\t}\n\n\tasync getComponent() {\n\t\tif (!this.component) this.component = await this.createComponent();\n\t\treturn this.component;\n\t}\n\n\tasync updated(props: Map<string, unknown>) {\n\t\tdom.empty(this.body);\n\t\tthis.body.appendChild(await this.getComponent());\n\t\tthis.layout();\n\n\t\tif (props.has('active')) {\n\t\t\tthis.layout();\n\t\t}\n\t}\n\n\tupdatePosition = () => {\n\t\tif (!this.model) return;\n\t\tif (this.model.location) {\n\t\t\tconst { x, y } = this.model.location;\n\t\t\tconst column = this.grid.table.viewport.columns[0];\n\t\t\tconst row = this.grid.table.viewport.rows[0];\n\t\t\tconst offset = this.grid.model.calculateCellOffset(row.cell(column.index).range);\n\t\t\tdom.setPosition(this, {\n\t\t\t\tl: x - offset.x + this.grid.table.totalHeaderWidth, \n\t\t\t\tt: y - offset.y + this.grid.table.totalHeaderHeight\n\t\t\t});\n\t\t}\n\t\tif (this.model.size) {\n\t\t\tdom.setSize(this, this.model.size);\n\t\t}\n\t}\n\n\tlayout() {\n\t\tif (this.component && (this.component as Layout).layout) {\n\t\t\t(this.component as Layout).layout();\n\t\t}\n\t}\n\n\t_onHeadMouseDown = (e: MouseEvent) => {\n\t\tif (e.button !== 0) return;\n\t\tconst rect = this.getBoundingClientRect();\n\t\tconst offsetX = e.clientX - rect.left;\n\t\tconst offsetY = e.clientY - rect.top;\n\t\tlet { top, left } = dom.getElementOffset(this.grid, document.body);\n\t\tleft += this.grid.table.totalHeaderWidth;\n\t\ttop += this.grid.table.totalHeaderHeight;\n\n\t\tconst move = (e: MouseEvent) => {\n\t\t\tthis.model.location = {x: e.clientX - offsetX - left, y: e.clientY - offsetY - top};\n\t\t\tthis.updatePosition();\n\t\t};\n\t\tconst up = () => {\n\t\t\tdocument.removeEventListener('mousemove', move);\n\t\t\tdocument.removeEventListener('mouseup', up);\n\t\t\tthis.dispatchEvent(this.grid.createEvent('moveend', {object: this.model, host: this}, ObjectEvent));\n\t\t};\n\t\tdocument.addEventListener('mousemove', move);\n\t\tdocument.addEventListener('mouseup', up);\n\t}\n\n\trender = () => html`\n\t\t<div id=\"head\" @mousedown=\"${this._onHeadMouseDown}\"></div>\n\t\t<div id=\"body\"></div>\n\t`;\n\n}\n"]}
@@ -1,2 +0,0 @@
1
- export declare const style: import("lit").CSSResult;
2
- //# sourceMappingURL=objectHost.style.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"objectHost.style.d.ts","sourceRoot":"","sources":["../../src/ui/objectHost.style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,yBAwCjB,CAAC"}
@@ -1,43 +0,0 @@
1
- import { css } from "lit";
2
- export const style = css `
3
- * {
4
- box-sizing: border-box;
5
- }
6
-
7
- :host {
8
- display: flex;
9
- flex-direction: column;
10
- position: absolute;
11
- overflow: hidden;
12
- background-color: var(--og-background-color);
13
- }
14
-
15
- :host([active]) {
16
- resize: both;
17
- }
18
-
19
- :host([active]) #head {
20
- display: block;
21
- }
22
-
23
- :host([active]) #body {
24
- border: 2px dashed var(--og-accent-color);
25
- border-top: none;
26
- }
27
-
28
- #head {
29
- cursor: move;
30
- display: none;
31
- flex: 0 0 10px;
32
- background-color: var(--og-accent-color);
33
- }
34
-
35
- #body {
36
- border: 1px solid var(--og-accent-color);
37
- position: relative;
38
- flex: 1;
39
- overflow: hidden;
40
- }
41
-
42
- `;
43
- //# sourceMappingURL=objectHost.style.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"objectHost.style.js","sourceRoot":"","sources":["../../src/ui/objectHost.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCvB,CAAC","sourcesContent":["import { css } from \"lit\";\n\nexport const style = css`\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n\n\t:host {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tposition: absolute;\n\t\toverflow: hidden;\n\t\tbackground-color: var(--og-background-color);\n\t}\n\n\t:host([active]) {\n\t\tresize: both;\n\t}\n\n\t:host([active]) #head {\n\t\tdisplay: block;\n\t}\n\n\t:host([active]) #body {\n\t\tborder: 2px dashed var(--og-accent-color);\n\t\tborder-top: none;\n\t}\n\n\t#head {\n\t\tcursor: move;\n\t\tdisplay: none;\n\t\tflex: 0 0 10px;\n\t\tbackground-color: var(--og-accent-color);\n\t}\n\n\t#body {\n\t\tborder: 1px solid var(--og-accent-color);\n\t\tposition: relative;\n\t\tflex: 1;\n\t\toverflow: hidden;\n\t}\n\t\t\n`;\n"]}