@omegagrid/dashboard 0.6.15

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 (41) hide show
  1. package/dist/constants.d.ts +47 -0
  2. package/dist/constants.d.ts.map +1 -0
  3. package/dist/constants.js +11 -0
  4. package/dist/constants.js.map +1 -0
  5. package/dist/index.d.ts +5 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +5 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/model/dashboardItemModel.d.ts +18 -0
  10. package/dist/model/dashboardItemModel.d.ts.map +1 -0
  11. package/dist/model/dashboardItemModel.js +33 -0
  12. package/dist/model/dashboardItemModel.js.map +1 -0
  13. package/dist/model/dashboardModel.d.ts +17 -0
  14. package/dist/model/dashboardModel.d.ts.map +1 -0
  15. package/dist/model/dashboardModel.js +193 -0
  16. package/dist/model/dashboardModel.js.map +1 -0
  17. package/dist/model/index.d.ts +3 -0
  18. package/dist/model/index.d.ts.map +1 -0
  19. package/dist/model/index.js +3 -0
  20. package/dist/model/index.js.map +1 -0
  21. package/dist/types.d.ts +30 -0
  22. package/dist/types.d.ts.map +1 -0
  23. package/dist/types.js +2 -0
  24. package/dist/types.js.map +1 -0
  25. package/dist/ui/dashboard.d.ts +43 -0
  26. package/dist/ui/dashboard.d.ts.map +1 -0
  27. package/dist/ui/dashboard.js +175 -0
  28. package/dist/ui/dashboard.js.map +1 -0
  29. package/dist/ui/dashboard.style.d.ts +2 -0
  30. package/dist/ui/dashboard.style.d.ts.map +1 -0
  31. package/dist/ui/dashboard.style.js +49 -0
  32. package/dist/ui/dashboard.style.js.map +1 -0
  33. package/dist/ui/dashboardItem.d.ts +37 -0
  34. package/dist/ui/dashboardItem.d.ts.map +1 -0
  35. package/dist/ui/dashboardItem.js +155 -0
  36. package/dist/ui/dashboardItem.js.map +1 -0
  37. package/dist/ui/index.d.ts +3 -0
  38. package/dist/ui/index.d.ts.map +1 -0
  39. package/dist/ui/index.js +3 -0
  40. package/dist/ui/index.js.map +1 -0
  41. package/package.json +50 -0
@@ -0,0 +1,47 @@
1
+ import { DashboardOptions } from './types';
2
+ declare const _default: {
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
+ FONT_SIZE: number;
44
+ DEFAULT_OPTIONS: DashboardOptions;
45
+ };
46
+ export default _default;
47
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQ3C,wBAGC"}
@@ -0,0 +1,11 @@
1
+ import { constants as coreConstants } from '@omegagrid/core';
2
+ const DEFAULT_OPTIONS = {
3
+ size: 12,
4
+ gap: 10,
5
+ orientation: 'vertical'
6
+ };
7
+ export default {
8
+ DEFAULT_OPTIONS,
9
+ ...coreConstants
10
+ };
11
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG7D,MAAM,eAAe,GAAqB;IACzC,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,WAAW,EAAE,UAAU;CACvB,CAAA;AAED,eAAe;IACd,eAAe;IACf,GAAG,aAAa;CAChB,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from './ui';
2
+ export * from './model';
3
+ export * from './constants';
4
+ export * from './types';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,MAAM,CAAC;AACrB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export * from './ui';
2
+ export * from './model';
3
+ export * from './constants';
4
+ export * from './types';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,MAAM,CAAC;AACrB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { ComponentId } from "@omegagrid/core";
2
+ import { DashboardItemSource } from "../types";
3
+ export declare class DashboardItemModel {
4
+ private _index;
5
+ get index(): number;
6
+ set index(value: number);
7
+ private _id;
8
+ get id(): ComponentId;
9
+ x: number;
10
+ y: number;
11
+ w: number;
12
+ h: number;
13
+ title: string;
14
+ constructor(index: number, source?: DashboardItemSource);
15
+ pupulate(source: DashboardItemSource): void;
16
+ getSourceData(): DashboardItemSource;
17
+ }
18
+ //# sourceMappingURL=dashboardItemModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardItemModel.d.ts","sourceRoot":"","sources":["../../src/model/dashboardItemModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,qBAAa,kBAAkB;IAE9B,OAAO,CAAC,MAAM,CAAS;IACvB,IAAI,KAAK,IACQ,MAAM,CADW;IAClC,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAAyB;IAEhD,OAAO,CAAC,GAAG,CAAc;IACzB,IAAI,EAAE,gBAAsB;IAE5B,CAAC,SAAK;IACN,CAAC,SAAK;IACN,CAAC,SAAK;IACN,CAAC,SAAK;IACN,KAAK,EAAE,MAAM,CAAC;gBAEF,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,mBAAmB;IAKvD,QAAQ,CAAC,MAAM,EAAE,mBAAmB;IASpC,aAAa,IAAI,mBAAmB;CAWpC"}
@@ -0,0 +1,33 @@
1
+ export class DashboardItemModel {
2
+ get index() { return this._index; }
3
+ set index(value) { this._index = value; }
4
+ get id() { return this._id; }
5
+ constructor(index, source) {
6
+ this.x = 0;
7
+ this.y = 0;
8
+ this.w = 1;
9
+ this.h = 1;
10
+ this._index = index;
11
+ if (source)
12
+ this.pupulate(source);
13
+ }
14
+ pupulate(source) {
15
+ this._id = source.id;
16
+ this.x = source.x;
17
+ this.y = source.y;
18
+ this.w = source.w || 1;
19
+ this.h = source.h || 1;
20
+ this.title = source.title || `#${this.index + 1}`;
21
+ }
22
+ getSourceData() {
23
+ return {
24
+ id: this.id,
25
+ title: this.title,
26
+ x: this.x,
27
+ y: this.y,
28
+ w: this.w,
29
+ h: this.h
30
+ };
31
+ }
32
+ }
33
+ //# sourceMappingURL=dashboardItemModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardItemModel.js","sourceRoot":"","sources":["../../src/model/dashboardItemModel.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,kBAAkB;IAG9B,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,CAAA,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,KAAa,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA,CAAC,CAAC;IAGhD,IAAI,EAAE,KAAK,OAAO,IAAI,CAAC,GAAG,CAAA,CAAC,CAAC;IAQ5B,YAAY,KAAa,EAAE,MAA4B;QANvD,MAAC,GAAG,CAAC,CAAC;QACN,MAAC,GAAG,CAAC,CAAC;QACN,MAAC,GAAG,CAAC,CAAC;QACN,MAAC,GAAG,CAAC,CAAC;QAIL,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,MAAM;YAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,MAA2B;QACnC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;IACnD,CAAC;IAED,aAAa;QACZ,OAAO;YACN,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC;SACT,CAAC;IACH,CAAC;CAED"}
@@ -0,0 +1,17 @@
1
+ import { Rect, Size } from "@omegagrid/core";
2
+ import { DashboardOptions, DashboardSource } from "../types";
3
+ import { DashboardItemModel } from "./dashboardItemModel";
4
+ export declare class DashboardModel {
5
+ private _options;
6
+ get options(): DashboardOptions;
7
+ private _items;
8
+ get items(): DashboardItemModel[];
9
+ constructor(source?: DashboardSource);
10
+ populate(source: DashboardSource): void;
11
+ private _size;
12
+ get size(): Size;
13
+ getSourceData(): DashboardSource;
14
+ updatePositions(positions: Rect[]): void;
15
+ calculatePositions(movingItem: DashboardItemModel, rect: Rect): Rect[];
16
+ }
17
+ //# sourceMappingURL=dashboardModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardModel.d.ts","sourceRoot":"","sources":["../../src/model/dashboardModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAS,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,qBAAa,cAAc;IAE1B,OAAO,CAAC,QAAQ,CAAmB;IACnC,IAAI,OAAO,qBAA2B;IAEtC,OAAO,CAAC,MAAM,CAA4B;IAC1C,IAAI,KAAK,yBAAyB;gBAEtB,MAAM,CAAC,EAAE,eAAe;IAIpC,QAAQ,CAAC,MAAM,EAAE,eAAe;IAKhC,OAAO,CAAC,KAAK,CAAO;IACpB,IAAI,IAAI,SAQP;IAED,aAAa,IAAI,eAAe;IAOhC,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE;IAgDjC,kBAAkB,CAAC,UAAU,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI;CAyH7D"}
@@ -0,0 +1,193 @@
1
+ import { utils } from "@omegagrid/core";
2
+ import constants from "../constants";
3
+ import { DashboardItemModel } from "./dashboardItemModel";
4
+ export class DashboardModel {
5
+ get options() { return this._options; }
6
+ get items() { return this._items; }
7
+ constructor(source) {
8
+ this._items = [];
9
+ if (source)
10
+ this.populate(source);
11
+ }
12
+ populate(source) {
13
+ this._items = source.items.map((item, i) => new DashboardItemModel(i, item));
14
+ this._options = utils.mergeDeep(constants.DEFAULT_OPTIONS, source.options);
15
+ }
16
+ get size() {
17
+ if (this._size)
18
+ return this._size;
19
+ this._size = { w: 0, h: 0 };
20
+ this._items.forEach(item => {
21
+ this._size.w = Math.max(this._size.w, item.x + item.w);
22
+ this._size.h = Math.max(this._size.h, item.y + item.h);
23
+ });
24
+ return this._size;
25
+ }
26
+ getSourceData() {
27
+ return {
28
+ items: this._items.map(item => item.getSourceData()),
29
+ options: this._options
30
+ };
31
+ }
32
+ updatePositions(positions) {
33
+ this._size = { w: 0, h: 0 };
34
+ this._items.forEach((item, i) => {
35
+ if (positions[i]) {
36
+ item.x = positions[i].x;
37
+ item.y = positions[i].y;
38
+ item.w = positions[i].w;
39
+ item.h = positions[i].h;
40
+ }
41
+ this._size.w = Math.max(this._size.w, item.x + item.w);
42
+ this._size.h = Math.max(this._size.h, item.y + item.h);
43
+ });
44
+ }
45
+ /*
46
+ calculatePositions(movingItem: DashboardItemModel, rect: Rect) {
47
+ const newPositions: Rect[] = new Array(this._items.length);
48
+ let updateTreshold = Number.MAX_SAFE_INTEGER;
49
+ let updateAmount = 0;
50
+ this._items.forEach((item, i) => {
51
+ if (item == movingItem) {
52
+ newPositions[i] = rect;
53
+ } else {
54
+ const intersection = utils.rectIntersect(item, rect);
55
+ if (intersection) {
56
+ newPositions[i] = {x: item.x, y: rect.y + rect.h, w: item.w, h: item.h};
57
+ updateTreshold = Math.min(updateTreshold, newPositions[i].y + newPositions[i].h);
58
+ updateAmount = Math.max(updateAmount, newPositions[i].y - item.y + item.h);
59
+ }
60
+ }
61
+ });
62
+ console.log(updateAmount);
63
+ this._items.forEach((item, i) => {
64
+ if (!newPositions[i]) {
65
+ newPositions[i] = {
66
+ x: item.x,
67
+ y: item.y + (item.y >= updateTreshold ? updateAmount : 0),
68
+ w: item.w,
69
+ h: item.h
70
+ };
71
+ console.log(i, newPositions[i].y);
72
+ }
73
+ });
74
+
75
+ return newPositions;
76
+ }
77
+ */
78
+ calculatePositions(movingItem, rect) {
79
+ const newPositions = new Array(this._items.length);
80
+ const containerSize = this._options.size || Infinity;
81
+ const orientation = this._options.orientation;
82
+ // Set the position for the moving item with boundary constraints
83
+ const movingIndex = this._items.indexOf(movingItem);
84
+ if (movingIndex !== -1) {
85
+ newPositions[movingIndex] = {
86
+ x: Math.max(0, rect.x),
87
+ y: Math.max(0, rect.y),
88
+ w: orientation == 'vertical' ? Math.min(rect.w, containerSize - Math.max(0, rect.x)) : rect.w,
89
+ h: orientation == 'horizontal' ? Math.min(rect.h, containerSize - Math.max(0, rect.y)) : rect.h
90
+ };
91
+ }
92
+ // First pass: identify collisions and set initial positions
93
+ this._items.forEach((item, i) => {
94
+ if (i !== movingIndex) {
95
+ newPositions[i] = { x: item.x, y: item.y, w: item.w, h: item.h };
96
+ }
97
+ });
98
+ // Resolve collisions recursively
99
+ const processedItems = new Set();
100
+ processedItems.add(movingIndex);
101
+ const resolveCollisions = (itemIndex) => {
102
+ const itemRect = newPositions[itemIndex];
103
+ for (let i = 0; i < this._items.length; i++) {
104
+ // Skip if it's the same item or already processed in this recursive call
105
+ if (i === itemIndex || processedItems.has(i))
106
+ continue;
107
+ const otherRect = newPositions[i];
108
+ const intersection = utils.rectIntersect(itemRect, otherRect);
109
+ if (intersection) {
110
+ // Calculate distances to move in each direction
111
+ const moveDown = itemRect.y + itemRect.h - otherRect.y;
112
+ const moveRight = itemRect.x + itemRect.w - otherRect.x;
113
+ const moveUp = otherRect.y + otherRect.h - itemRect.y;
114
+ const moveLeft = otherRect.x + otherRect.w - itemRect.x;
115
+ if (orientation === 'vertical') {
116
+ // In vertical orientation, prioritize downward movement
117
+ if (moveDown <= moveUp && moveDown <= moveRight && moveDown <= moveLeft) {
118
+ otherRect.y = Math.max(0, itemRect.y + itemRect.h);
119
+ }
120
+ else if (moveUp <= moveRight && moveUp <= moveLeft && itemRect.y - otherRect.h >= 0) {
121
+ otherRect.y = Math.max(0, itemRect.y - otherRect.h);
122
+ }
123
+ else if (moveRight <= moveLeft && itemRect.x + itemRect.w + otherRect.w <= containerSize) {
124
+ otherRect.x = Math.min(containerSize - otherRect.w, itemRect.x + itemRect.w);
125
+ }
126
+ else if (itemRect.x - otherRect.w >= 0) {
127
+ otherRect.x = Math.max(0, itemRect.x - otherRect.w);
128
+ }
129
+ else {
130
+ // Default to moving down if other directions would cause boundary violations
131
+ otherRect.y = Math.max(0, itemRect.y + itemRect.h);
132
+ }
133
+ // Ensure width doesn't exceed container
134
+ if (otherRect.x + otherRect.w > containerSize) {
135
+ otherRect.w = Math.max(1, containerSize - otherRect.x);
136
+ }
137
+ }
138
+ else {
139
+ // In horizontal orientation, prioritize rightward movement
140
+ if (moveRight <= moveUp && moveRight <= moveDown && moveRight <= moveLeft) {
141
+ otherRect.x = Math.max(0, itemRect.x + itemRect.w);
142
+ }
143
+ else if (moveLeft <= moveUp && moveLeft <= moveDown && itemRect.x - otherRect.w >= 0) {
144
+ otherRect.x = Math.max(0, itemRect.x - otherRect.w);
145
+ }
146
+ else if (moveDown <= moveUp && itemRect.y + itemRect.h + otherRect.h <= containerSize) {
147
+ otherRect.y = Math.min(containerSize - otherRect.h, itemRect.y + itemRect.h);
148
+ }
149
+ else if (itemRect.y - otherRect.h >= 0) {
150
+ otherRect.y = Math.max(0, itemRect.y - otherRect.h);
151
+ }
152
+ else {
153
+ // Default to moving right if other directions would cause boundary violations
154
+ otherRect.x = Math.max(0, itemRect.x + itemRect.w);
155
+ }
156
+ // Ensure height doesn't exceed container
157
+ if (otherRect.y + otherRect.h > containerSize) {
158
+ otherRect.h = Math.max(1, containerSize - otherRect.y);
159
+ }
160
+ }
161
+ // Mark this item as processed in the current recursive call
162
+ processedItems.add(i);
163
+ // Recursively resolve any new collisions this movement might have caused
164
+ resolveCollisions(i);
165
+ // Remove from processed set after recursion to allow for future collision checks
166
+ processedItems.delete(i);
167
+ }
168
+ }
169
+ };
170
+ // Start resolving collisions from the moving item
171
+ resolveCollisions(movingIndex);
172
+ // Final pass to ensure all items are within bounds
173
+ for (let i = 0; i < newPositions.length; i++) {
174
+ if (newPositions[i]) {
175
+ newPositions[i].x = Math.max(0, newPositions[i].x);
176
+ newPositions[i].y = Math.max(0, newPositions[i].y);
177
+ // Apply container constraints based on orientation
178
+ if (orientation === 'vertical') {
179
+ if (newPositions[i].x + newPositions[i].w > containerSize) {
180
+ newPositions[i].w = Math.max(1, containerSize - newPositions[i].x);
181
+ }
182
+ }
183
+ else {
184
+ if (newPositions[i].y + newPositions[i].h > containerSize) {
185
+ newPositions[i].h = Math.max(1, containerSize - newPositions[i].y);
186
+ }
187
+ }
188
+ }
189
+ }
190
+ return newPositions;
191
+ }
192
+ }
193
+ //# sourceMappingURL=dashboardModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardModel.js","sourceRoot":"","sources":["../../src/model/dashboardModel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './dashboardModel';
2
+ export * from './dashboardItemModel';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './dashboardModel';
2
+ export * from './dashboardItemModel';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { ComponentId } from "@omegagrid/core";
2
+ export type DashboardItemSource = {
3
+ /** id of the component */
4
+ id: ComponentId;
5
+ /** x coord */
6
+ x: number;
7
+ /** y coord */
8
+ y: number;
9
+ /** width */
10
+ w?: number;
11
+ /** height */
12
+ h?: number;
13
+ /** title shown in design mode */
14
+ title?: string;
15
+ };
16
+ export type DashboardOptions = {
17
+ /** number of columns or rows */
18
+ size: number;
19
+ /** The gap between items */
20
+ gap: number;
21
+ /** Orientation of dashboard */
22
+ orientation?: 'horizontal' | 'vertical';
23
+ };
24
+ export type DashboardSource = {
25
+ /** Dashboard items */
26
+ items?: DashboardItemSource[];
27
+ /** Dashboard options */
28
+ options?: DashboardOptions;
29
+ };
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,MAAM,mBAAmB,GAAG;IACjC,0BAA0B;IAC1B,EAAE,EAAE,WAAW,CAAC;IAEhB,cAAc;IACd,CAAC,EAAE,MAAM,CAAC;IAEV,cAAc;IACd,CAAC,EAAE,MAAM,CAAC;IAEV,YAAY;IACZ,CAAC,CAAC,EAAE,MAAM,CAAC;IAEX,aAAa;IACb,CAAC,CAAC,EAAE,MAAM,CAAC;IAEX,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IAEb,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IAEZ,+BAA+B;IAC/B,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACxC,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC7B,sBAAsB;IACtB,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAE9B,wBAAwB;IACxB,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAA"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ import { ComponentFactory, ComponentStore, Layout, OmegaComponent, Rect, Container } from '@omegagrid/core';
2
+ import { DashboardItemModel, DashboardModel } from '../model';
3
+ import { DashboardSource } from '../types';
4
+ import { DashboardItem } from './dashboardItem';
5
+ export declare class DashboardEvent extends Event {
6
+ readonly item: DashboardItem;
7
+ readonly model: DashboardItemModel;
8
+ constructor(type: string, args: Partial<DashboardEvent>);
9
+ }
10
+ export declare class Dashboard extends OmegaComponent implements Layout {
11
+ static styles: import("lit").CSSResultGroup[];
12
+ model: DashboardModel;
13
+ designMode: boolean;
14
+ createComponent: ComponentFactory;
15
+ items: NodeList;
16
+ container: Container;
17
+ content: HTMLDivElement;
18
+ placeholder: HTMLDivElement;
19
+ private _currentItem;
20
+ private _previewPositions;
21
+ readonly components: ComponentStore<HTMLElement & Layout>;
22
+ get pixelSize(): number;
23
+ private _baseSize;
24
+ get baseSize(): number;
25
+ startMove(item: DashboardItem): void;
26
+ stopMove(): void;
27
+ get scrollOffset(): number;
28
+ offsetToCoord(offset: number): number;
29
+ updatePreviewPositions(): void;
30
+ previewLayout(rect: Rect): void;
31
+ _onItemMove: (e: DashboardEvent) => void;
32
+ _onItemResize: (e: DashboardEvent) => void;
33
+ constructor();
34
+ calculateItemLocation(item: Rect): Rect;
35
+ showPlaceholder(rect: Rect): void;
36
+ hidePlaceholder(): void;
37
+ setSourceData(source: DashboardSource): void;
38
+ setItemPosition(elm: HTMLElement, rect: Rect): void;
39
+ layout(): void;
40
+ updated(): void;
41
+ render: () => import("lit-html").TemplateResult<1> | "";
42
+ }
43
+ //# sourceMappingURL=dashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/ui/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAO,IAAI,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKjH,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAAa,cAAe,SAAQ,KAAK;IAExC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;gBAEvB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC;CAIvD;AAED,qBACa,SAAU,SAAQ,cAAe,YAAW,MAAM;IAE9D,MAAM,CAAC,MAAM,iCAAkC;IAG/C,KAAK,EAAE,cAAc,CAAC;IAGtB,UAAU,UAAS;IAGnB,eAAe,EAAE,gBAAgB,CAAC;IAGlC,KAAK,EAAE,QAAQ,CAAC;IAGhB,SAAS,EAAE,SAAS,CAAC;IAGrB,OAAO,EAAE,cAAc,CAAC;IAGxB,WAAW,EAAE,cAAc,CAAC;IAE5B,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,iBAAiB,CAAS;IAElC,QAAQ,CAAC,UAAU,uCAEjB;IAEF,IAAI,SAAS,WAIZ;IAED,OAAO,CAAC,SAAS,CAAS;IAC1B,IAAI,QAAQ,WAIX;IAED,SAAS,CAAC,IAAI,EAAE,aAAa;IAM7B,QAAQ;IASR,IAAI,YAAY,WAEf;IAED,aAAa,CAAC,MAAM,EAAE,MAAM;IAI5B,sBAAsB;IAOtB,aAAa,CAAC,IAAI,EAAE,IAAI;IAQxB,WAAW,MAAO,cAAc,UAQ/B;IAED,aAAa,MAAO,cAAc,UAQjC;;IAYD,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAI,IAAI;IAWxC,eAAe,CAAC,IAAI,EAAE,IAAI;IAK1B,eAAe;IAIf,aAAa,CAAC,MAAM,EAAE,eAAe;IAKrC,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI;IAM5C,MAAM;IASN,OAAO;IAIP,MAAM,kDAaC;CAEP"}
@@ -0,0 +1,175 @@
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 { ComponentStore, OmegaComponent, dom } from '@omegagrid/core';
8
+ import { html } from 'lit';
9
+ import { customElement, property, query, queryAll } from 'lit/decorators.js';
10
+ import { map } from 'lit/directives/map.js';
11
+ import { style } from './dashboard.style';
12
+ import { DashboardModel } from '../model';
13
+ export class DashboardEvent extends Event {
14
+ constructor(type, args) {
15
+ super(`dashboard.${type}`, { bubbles: true, composed: true });
16
+ Object.assign(this, args);
17
+ }
18
+ }
19
+ let Dashboard = class Dashboard extends OmegaComponent {
20
+ get pixelSize() {
21
+ return this.model.options.orientation === 'horizontal'
22
+ ? this.container.clientHeight
23
+ : this.container.clientWidth;
24
+ }
25
+ get baseSize() {
26
+ if (this._baseSize)
27
+ return this._baseSize;
28
+ this._baseSize = (this.pixelSize - ((this.model.options.size + 1) * this.model.options.gap)) / this.model.options.size;
29
+ return this._baseSize;
30
+ }
31
+ startMove(item) {
32
+ this._currentItem = item;
33
+ this._currentItem.classList.toggle('active', true);
34
+ this.classList.toggle('moving', true);
35
+ }
36
+ stopMove() {
37
+ if (!this._currentItem)
38
+ return;
39
+ this._currentItem.classList.toggle('active', false);
40
+ this._currentItem = null;
41
+ this.classList.toggle('moving', false);
42
+ this.hidePlaceholder();
43
+ this.updatePreviewPositions();
44
+ }
45
+ get scrollOffset() {
46
+ return this.container?.verticalSlider?.value || 0;
47
+ }
48
+ offsetToCoord(offset) {
49
+ return Math.max(0, Math.floor(offset / (this.baseSize + this.model.options.gap)));
50
+ }
51
+ updatePreviewPositions() {
52
+ if (!this._previewPositions)
53
+ return;
54
+ this.model.updatePositions(this._previewPositions);
55
+ this._previewPositions = null;
56
+ this.layout();
57
+ }
58
+ previewLayout(rect) {
59
+ this._previewPositions = this.model.calculatePositions(this._currentItem.model, rect);
60
+ this._previewPositions.forEach((rect, i) => {
61
+ const item = this.items[i];
62
+ if (item && item != this._currentItem)
63
+ this.setItemPosition(item, rect);
64
+ });
65
+ }
66
+ constructor() {
67
+ super();
68
+ this.designMode = false;
69
+ this.components = new ComponentStore(id => this.createComponent ? this.createComponent(id) : null);
70
+ this._onItemMove = (e) => {
71
+ if (!e.item.moving)
72
+ return;
73
+ const topOffset = this.scrollOffset;
74
+ const x = this.offsetToCoord(e.item.offsetLeft);
75
+ const y = this.offsetToCoord(e.item.offsetTop + topOffset);
76
+ const rect = { x, y, w: e.item.model.w, h: e.item.model.h };
77
+ this.showPlaceholder(rect);
78
+ this.previewLayout(rect);
79
+ };
80
+ this._onItemResize = (e) => {
81
+ if (!e.item.resizing)
82
+ return;
83
+ const topOffset = this.scrollOffset;
84
+ const w = this.offsetToCoord(e.item.offsetLeft + e.item.offsetWidth) - e.item.model.x + 1;
85
+ const h = this.offsetToCoord(e.item.offsetTop + e.item.offsetHeight + topOffset) - e.item.model.y + 1;
86
+ const rect = { x: e.item.model.x, y: e.item.model.y, w, h };
87
+ this.showPlaceholder(rect);
88
+ this.previewLayout(rect);
89
+ };
90
+ this.render = () => this.model ? html `
91
+ <og-container>
92
+ <div slot="content">
93
+ ${this.designMode ? html `<div class="item-placeholder"></div>` : null}
94
+ ${map(this.model.items, item => html `
95
+ <og-dashboard-item
96
+ ?designMode="${this.designMode}"
97
+ .model="${item}"
98
+ .components="${this.components}">
99
+ </og-dashboard-item>
100
+ `)}
101
+ </div>
102
+ </og-container>
103
+ ` : '';
104
+ this.addEventListener('dashboard.movestart', (e) => this.startMove(e.item));
105
+ this.addEventListener('dashboard.resizestart', (e) => this.startMove(e.item));
106
+ this.addEventListener('dashboard.movestop', () => this.stopMove());
107
+ this.addEventListener('dashboard.resizestop', () => this.stopMove());
108
+ this.addEventListener('dashboard.move', this._onItemMove);
109
+ this.addEventListener('dashboard.resize', this._onItemResize);
110
+ }
111
+ calculateItemLocation(item) {
112
+ const baseSize = this.baseSize;
113
+ const gap = this.model.options.gap;
114
+ return {
115
+ x: item.x * (baseSize + gap) + gap,
116
+ y: item.y * (baseSize + gap) + gap,
117
+ w: item.w * (baseSize + gap) - gap,
118
+ h: item.h * (baseSize + gap) - gap,
119
+ };
120
+ }
121
+ showPlaceholder(rect) {
122
+ dom.showElement(this.placeholder);
123
+ this.setItemPosition(this.placeholder, rect);
124
+ }
125
+ hidePlaceholder() {
126
+ dom.hideElement(this.placeholder);
127
+ }
128
+ setSourceData(source) {
129
+ this.components.clear();
130
+ this.model = new DashboardModel(source);
131
+ }
132
+ setItemPosition(elm, rect) {
133
+ const { x, y, w, h } = this.calculateItemLocation(rect);
134
+ dom.setSize(elm, { w, h });
135
+ dom.setPosition(elm, { l: x, t: y });
136
+ }
137
+ layout() {
138
+ this._baseSize = null;
139
+ this.items?.forEach((item) => this.setItemPosition(item, item.model));
140
+ dom.setSize(this.content, {
141
+ w: this.model.size.w * (this.baseSize + this.model.options.gap) + this.model.options.gap,
142
+ h: this.model.size.h * (this.baseSize + this.model.options.gap) + this.model.options.gap
143
+ });
144
+ }
145
+ updated() {
146
+ this.layout();
147
+ }
148
+ };
149
+ Dashboard.styles = [OmegaComponent.styles, style];
150
+ __decorate([
151
+ property({ type: Object })
152
+ ], Dashboard.prototype, "model", void 0);
153
+ __decorate([
154
+ property({ type: Boolean, reflect: true })
155
+ ], Dashboard.prototype, "designMode", void 0);
156
+ __decorate([
157
+ property({ type: Object })
158
+ ], Dashboard.prototype, "createComponent", void 0);
159
+ __decorate([
160
+ queryAll('og-dashboard-item')
161
+ ], Dashboard.prototype, "items", void 0);
162
+ __decorate([
163
+ query('og-container')
164
+ ], Dashboard.prototype, "container", void 0);
165
+ __decorate([
166
+ query('[slot="content"]')
167
+ ], Dashboard.prototype, "content", void 0);
168
+ __decorate([
169
+ query('.item-placeholder')
170
+ ], Dashboard.prototype, "placeholder", void 0);
171
+ Dashboard = __decorate([
172
+ customElement('og-dashboard')
173
+ ], Dashboard);
174
+ export { Dashboard };
175
+ //# sourceMappingURL=dashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/ui/dashboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const style: import("lit").CSSResult;
2
+ //# sourceMappingURL=dashboard.style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.style.d.ts","sourceRoot":"","sources":["../../src/ui/dashboard.style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,yBA8CjB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { css } from 'lit';
2
+ export const style = css `
3
+ :host {
4
+ position: relative;
5
+ overflow: hidden;
6
+ }
7
+
8
+ og-container {
9
+ width: 100%;
10
+ height: 100%;
11
+ }
12
+
13
+ og-dashboard-item {
14
+ _border: 2px solid var(--og-accent-color);
15
+ z-index: 1;
16
+ transition: left 0.2s, top 0.2s;
17
+ }
18
+
19
+ og-dashboard-item.active {
20
+ transition: none;
21
+ }
22
+
23
+ :host([designMode]) og-dashboard-item {
24
+ cursor: move;
25
+ resize: both;
26
+ background-color: var(--og-accent-color);
27
+ color: var(--og-text-color-2);
28
+ }
29
+
30
+ :host([designMode].moving) og-dashboard-item {
31
+ opacity: 0.2;
32
+ }
33
+
34
+ :host([designMode]) og-dashboard-item.active {
35
+ border: none;
36
+ background-color: var(--og-accent-color);
37
+ }
38
+
39
+ :host([designMode].moving) og-dashboard-item.active {
40
+ opacity: 1;
41
+ }
42
+
43
+ .item-placeholder {
44
+ display: none;
45
+ border: 2px dotted var(--og-accent-color);
46
+ transition: left 0.2s, top 0.2s, width 0.2s, height 0.2s;
47
+ }
48
+ `;
49
+ //# sourceMappingURL=dashboard.style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.style.js","sourceRoot":"","sources":["../../src/ui/dashboard.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CvB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { ComponentStore, Layout, OmegaComponent, Overlay } from "@omegagrid/core";
2
+ import { DashboardItemModel } from "../model";
3
+ export declare class DashboardItem extends OmegaComponent implements Layout {
4
+ static styles: import("lit").CSSResultGroup[];
5
+ components: ComponentStore<HTMLElement & Layout>;
6
+ model: DashboardItemModel;
7
+ designMode: boolean;
8
+ container: HTMLDivElement;
9
+ overlay: Overlay;
10
+ private _parent;
11
+ private _mouseOffset;
12
+ private _movingOffset;
13
+ private _resizing;
14
+ private _elementOffset;
15
+ private _resizeObserver;
16
+ get mouseOffset(): {
17
+ top: number;
18
+ left: number;
19
+ };
20
+ get moving(): boolean;
21
+ get resizing(): boolean;
22
+ get component(): Promise<HTMLElement & Layout>;
23
+ constructor();
24
+ connectedCallback(): void;
25
+ disconnectedCallback(): void;
26
+ clearEvents(): void;
27
+ _onMouseUp: () => void;
28
+ _onMouseDown: (e: MouseEvent) => void;
29
+ _onMouseMove: (e: MouseEvent) => void;
30
+ _onResize: () => void;
31
+ layout(): Promise<void>;
32
+ showOverlay(text?: string, loader?: boolean): void;
33
+ hideOverlay(): void;
34
+ updated(): Promise<void>;
35
+ render: () => import("lit-html").TemplateResult<1>;
36
+ }
37
+ //# sourceMappingURL=dashboardItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardItem.d.ts","sourceRoot":"","sources":["../../src/ui/dashboardItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAO,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C,qBACa,aAAc,SAAQ,cAAe,YAAW,MAAM;IAElE,MAAM,CAAC,MAAM,iCAeV;IAGH,UAAU,EAAE,cAAc,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC;IAGjD,KAAK,EAAE,kBAAkB,CAAC;IAG1B,UAAU,UAAS;IAGnB,SAAS,EAAE,cAAc,CAAC;IAG1B,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,eAAe,CAAiB;IAExC,IAAI,WAAW;aANa,MAAM;cAAQ,MAAM;MAMF;IAC9C,IAAI,MAAM,YAAyC;IACnD,IAAI,QAAQ,YAA4B;IAGxC,IAAI,SAAS,kCAIZ;;IAWD,iBAAiB;IAMjB,oBAAoB;IAMpB,WAAW;IAKX,UAAU,aAUR;IAEF,YAAY,MAAO,UAAU,UAc3B;IAEF,YAAY,MAAO,UAAU,UAO3B;IAEF,SAAS,aAEP;IAEI,MAAM;IAIZ,WAAW,CAAC,IAAI,GAAE,MAAa,EAAE,MAAM,GAAE,OAAe;IAOxD,WAAW;IAKL,OAAO;IAgBb,MAAM,6CAGJ;CAEF"}
@@ -0,0 +1,155 @@
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, OmegaComponent } from "@omegagrid/core";
8
+ import { css, html } from "lit";
9
+ import { customElement, property, query } from "lit/decorators.js";
10
+ import { Dashboard, DashboardEvent } from "./dashboard";
11
+ let DashboardItem = class DashboardItem extends OmegaComponent {
12
+ get mouseOffset() { return this._mouseOffset; }
13
+ get moving() { return this._movingOffset !== null; }
14
+ get resizing() { return this._resizing; }
15
+ get component() {
16
+ if (!this.model)
17
+ return null;
18
+ if (!this.components)
19
+ return null;
20
+ return this.components.get(this.model.id);
21
+ }
22
+ constructor() {
23
+ super();
24
+ this.designMode = false;
25
+ this._mouseOffset = null;
26
+ this._movingOffset = null;
27
+ this._resizing = false;
28
+ this._elementOffset = null;
29
+ this._onMouseUp = () => {
30
+ if (this.resizing) {
31
+ this.dispatchEvent(new DashboardEvent('resizestop', { item: this, model: this.model }));
32
+ }
33
+ else if (this.moving) {
34
+ this.dispatchEvent(new DashboardEvent('movestop', { item: this, model: this.model }));
35
+ }
36
+ this._movingOffset = null;
37
+ this._resizing = false;
38
+ this.clearEvents();
39
+ };
40
+ this._onMouseDown = (e) => {
41
+ if (!this._parent.designMode)
42
+ return;
43
+ const scrollOffset = this._parent.scrollOffset;
44
+ this._mouseOffset = { top: e.offsetY, left: e.offsetX };
45
+ if (e.offsetX > this.offsetWidth - 20 && e.offsetY > this.offsetHeight - 20) {
46
+ this._resizing = true;
47
+ this.dispatchEvent(new DashboardEvent('resizestart', { item: this, model: this.model }));
48
+ }
49
+ else {
50
+ this._movingOffset = { left: e.clientX, top: e.clientY + scrollOffset };
51
+ this._elementOffset = { left: this.offsetLeft, top: this.offsetTop + scrollOffset };
52
+ this._parent.addEventListener('mouseup', this._onMouseUp);
53
+ this._parent.addEventListener('mousemove', this._onMouseMove);
54
+ this.dispatchEvent(new DashboardEvent('movestart', { item: this, model: this.model }));
55
+ }
56
+ };
57
+ this._onMouseMove = (e) => {
58
+ const scrollOffset = this._parent.scrollOffset;
59
+ dom.setPosition(this, {
60
+ l: this._elementOffset.left + e.clientX - this._movingOffset.left,
61
+ t: this._elementOffset.top + e.clientY - this._movingOffset.top + scrollOffset,
62
+ });
63
+ this.dispatchEvent(new DashboardEvent('move', { item: this, model: this.model }));
64
+ };
65
+ this._onResize = () => {
66
+ this.dispatchEvent(new DashboardEvent('resize', { item: this, model: this.model }));
67
+ };
68
+ this.render = () => html `
69
+ <div class="container"></div>
70
+ <og-overlay></og-overlay>
71
+ `;
72
+ this.addEventListener('mousedown', this._onMouseDown);
73
+ this.addEventListener('mouseup', this._onMouseUp);
74
+ this._resizeObserver = new ResizeObserver(() => {
75
+ this.dispatchEvent(new DashboardEvent('resize', { item: this, model: this.model }));
76
+ });
77
+ }
78
+ connectedCallback() {
79
+ super.connectedCallback();
80
+ this._resizeObserver.observe(this);
81
+ this._parent = dom.findParent(this, elm => elm instanceof Dashboard);
82
+ }
83
+ disconnectedCallback() {
84
+ this.clearEvents();
85
+ this._parent = null;
86
+ this._resizeObserver.unobserve(this);
87
+ }
88
+ clearEvents() {
89
+ this._parent.removeEventListener('mouseup', this._onMouseUp);
90
+ this._parent.removeEventListener('mousemove', this._onMouseMove);
91
+ }
92
+ async layout() {
93
+ (await this.component)?.layout();
94
+ }
95
+ showOverlay(text = null, loader = false) {
96
+ this.overlay.text = text;
97
+ this.overlay.defaultLoader = loader;
98
+ this.overlay.show(this);
99
+ dom.hideElement(this.container);
100
+ }
101
+ hideOverlay() {
102
+ this.overlay.hide();
103
+ dom.showElement(this.container);
104
+ }
105
+ async updated() {
106
+ this.showOverlay(this.designMode ? this.model.title : null);
107
+ const component = await this.component;
108
+ if (component) {
109
+ dom.empty(this.container);
110
+ this.container.appendChild(component);
111
+ }
112
+ if (this.designMode) {
113
+ this.showOverlay(this.model.title, false);
114
+ }
115
+ else {
116
+ this.hideOverlay();
117
+ }
118
+ }
119
+ };
120
+ DashboardItem.styles = [OmegaComponent.styles, css `
121
+ :host {
122
+ position: relative;
123
+ overflow: hidden;
124
+ }
125
+
126
+ og-overlay {
127
+ position: absolute;
128
+ inset: 0;
129
+ z-index: 1101;
130
+ }
131
+
132
+ .container {
133
+ height: 100%;
134
+ }
135
+ `];
136
+ __decorate([
137
+ property({ type: Object })
138
+ ], DashboardItem.prototype, "components", void 0);
139
+ __decorate([
140
+ property({ type: Object })
141
+ ], DashboardItem.prototype, "model", void 0);
142
+ __decorate([
143
+ property({ type: Boolean, reflect: true })
144
+ ], DashboardItem.prototype, "designMode", void 0);
145
+ __decorate([
146
+ query('.container')
147
+ ], DashboardItem.prototype, "container", void 0);
148
+ __decorate([
149
+ query('og-overlay')
150
+ ], DashboardItem.prototype, "overlay", void 0);
151
+ DashboardItem = __decorate([
152
+ customElement('og-dashboard-item')
153
+ ], DashboardItem);
154
+ export { DashboardItem };
155
+ //# sourceMappingURL=dashboardItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardItem.js","sourceRoot":"","sources":["../../src/ui/dashboardItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAkB,GAAG,EAAU,cAAc,EAAW,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGjD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,cAAc;IAyChD,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;IAC9C,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI,CAAA,CAAC,CAAC;IACnD,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,CAAA,CAAC,CAAC;IAGxC,IAAI,SAAS;QACZ,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;QACC,KAAK,EAAE,CAAC;QA3BT,eAAU,GAAG,KAAK,CAAC;QASX,iBAAY,GAAgC,IAAI,CAAC;QACjD,kBAAa,GAAgC,IAAI,CAAC;QAClD,cAAS,GAAG,KAAK,CAAC;QAClB,mBAAc,GAAgC,IAAI,CAAC;QAwC3D,eAAU,GAAG,GAAG,EAAE;YACjB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,YAAY,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;YACvF,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxB,IAAI,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,UAAU,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;YACrF,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAa,EAAE,EAAE;YAChC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;gBAAE,OAAO;YACrC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YAC/C,IAAI,CAAC,YAAY,GAAG,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAC,CAAC;YACtD,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,EAAE,CAAC;gBAC7E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,aAAa,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;YACxF,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,aAAa,GAAG,EAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,YAAY,EAAC,CAAC;gBACtE,IAAI,CAAC,cAAc,GAAG,EAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,GAAG,YAAY,EAAC,CAAC;gBAClF,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC1D,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,WAAW,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;YACtF,CAAC;QACF,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAa,EAAE,EAAE;YAChC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YAC/C,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE;gBACrB,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI;gBACjE,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,YAAY;aAC9E,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;QACjF,CAAC,CAAC;QAEF,cAAS,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;QACnF,CAAC,CAAC;QAkCF,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;;EAGlB,CAAC;QApGD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE;YAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB;QAChB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,UAAU,CAAY,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,SAAS,CAAC,CAAC;IACjF,CAAC;IAED,oBAAoB;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,WAAW;QACV,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAClE,CAAC;IA2CD,KAAK,CAAC,MAAM;QACX,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,OAAe,IAAI,EAAE,SAAkB,KAAK;QACvD,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,WAAW;QACV,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;QACvC,IAAI,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;IAEF,CAAC;;AAnJM,oBAAM,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;EAe1C,CAAC,AAfW,CAeV;AAGH;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;iDACwB;AAGjD;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;4CACC;AAG1B;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;iDACtB;AAGnB;IADC,KAAK,CAAC,YAAY,CAAC;gDACM;AAG1B;IADC,KAAK,CAAC,YAAY,CAAC;8CACH;AAhCL,aAAa;IADzB,aAAa,CAAC,mBAAmB,CAAC;GACtB,aAAa,CA4JzB"}
@@ -0,0 +1,3 @@
1
+ export * from './dashboard';
2
+ export * from './dashboardItem';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './dashboard';
2
+ export * from './dashboardItem';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@omegagrid/dashboard",
3
+ "version": "0.6.15",
4
+ "license": "UNLICENSED",
5
+ "description": "Dashboard component",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "files": [
9
+ "./dist/**/*"
10
+ ],
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/cechi/omegagrid.git"
14
+ },
15
+ "bugs": "https://github.com/cechi/omegagrid/issues",
16
+ "author": {
17
+ "name": "Petr Čechura",
18
+ "email": "p.cechura@gmail.com",
19
+ "url": "https://cechura.eu"
20
+ },
21
+ "scripts": {
22
+ "watch": "tsc --watch",
23
+ "build": "tsc --project tsconfig.json",
24
+ "test": "jest --passWithNoTests",
25
+ "lint": "eslint **/src/**/*.ts",
26
+ "_prepack": "yarn build",
27
+ "_prepublish": "yarn test && yarn lint"
28
+ },
29
+ "dependencies": {
30
+ "@fortawesome/fontawesome-svg-core": "6.4.2",
31
+ "@omegagrid/core": "^0.6.17",
32
+ "@omegagrid/localize": "^0.6.17",
33
+ "@riovir/wc-fontawesome": "^0.1.9",
34
+ "date-fns": "^3.2.0",
35
+ "lit": "^3.1.1",
36
+ "ts-debounce": "^4.0.0"
37
+ },
38
+ "devDependencies": {
39
+ "@types/jest": "^29.5.11",
40
+ "@types/node": "^20.11.5",
41
+ "@typescript-eslint/eslint-plugin": "^7.16.0",
42
+ "@typescript-eslint/parser": "^7.16.0",
43
+ "eslint": "^8.56.0",
44
+ "jest": "^29.7.0",
45
+ "jest-environment-jsdom": "^29.7.0",
46
+ "ts-jest": "^29.1.1",
47
+ "ts-node": "^10.9.2",
48
+ "typescript": "5.6.3"
49
+ }
50
+ }