@schneideress/dashboardframework 17.0.46 → 20.0.0

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 (75) hide show
  1. package/fesm2022/schneideress-dashboardframework.mjs +52 -59
  2. package/fesm2022/schneideress-dashboardframework.mjs.map +1 -1
  3. package/index.d.ts +1255 -5
  4. package/package.json +11 -7
  5. package/esm2022/gridster/index.mjs +0 -12
  6. package/esm2022/gridster/lib/gridster.component.mjs +0 -627
  7. package/esm2022/gridster/lib/gridster.interface.mjs +0 -3
  8. package/esm2022/gridster/lib/gridster.module.mjs +0 -17
  9. package/esm2022/gridster/lib/gridsterCompact.service.mjs +0 -126
  10. package/esm2022/gridster/lib/gridsterConfig.constant.mjs +0 -118
  11. package/esm2022/gridster/lib/gridsterConfig.interface.mjs +0 -37
  12. package/esm2022/gridster/lib/gridsterConfigS.interface.mjs +0 -2
  13. package/esm2022/gridster/lib/gridsterDraggable.service.mjs +0 -405
  14. package/esm2022/gridster/lib/gridsterEmptyCell.service.mjs +0 -255
  15. package/esm2022/gridster/lib/gridsterItem.component.mjs +0 -231
  16. package/esm2022/gridster/lib/gridsterItem.interface.mjs +0 -3
  17. package/esm2022/gridster/lib/gridsterPreview.component.mjs +0 -36
  18. package/esm2022/gridster/lib/gridsterPush.service.mjs +0 -316
  19. package/esm2022/gridster/lib/gridsterPushResize.service.mjs +0 -225
  20. package/esm2022/gridster/lib/gridsterRenderer.interface.mjs +0 -2
  21. package/esm2022/gridster/lib/gridsterRenderer.service.mjs +0 -274
  22. package/esm2022/gridster/lib/gridsterResizable.service.mjs +0 -470
  23. package/esm2022/gridster/lib/gridsterResizeEventType.interface.mjs +0 -2
  24. package/esm2022/gridster/lib/gridsterScroll.service.mjs +0 -134
  25. package/esm2022/gridster/lib/gridsterSwap.service.mjs +0 -87
  26. package/esm2022/gridster/lib/gridsterUtils.service.mjs +0 -92
  27. package/esm2022/lib/custom.notifier.options.mjs +0 -41
  28. package/esm2022/lib/ra-dashboard-area/ra.dashboard.area.mjs +0 -639
  29. package/esm2022/lib/ra-widget-container/lock-tooltip/lock.tooltip.component.mjs +0 -43
  30. package/esm2022/lib/ra-widget-container/ra.widget.container.component.mjs +0 -971
  31. package/esm2022/lib/ra.base.dashboard.filter.mjs +0 -46
  32. package/esm2022/lib/ra.base.dashboard.template.mjs +0 -45
  33. package/esm2022/lib/ra.dashbard.event.bus.mjs +0 -46
  34. package/esm2022/lib/ra.dashboard.module.mjs +0 -55
  35. package/esm2022/lib/ra.dashboard.responsive.service.mjs +0 -149
  36. package/esm2022/lib/ra.dashboard.service.mjs +0 -84
  37. package/esm2022/lib/ra.event.enum.mjs +0 -75
  38. package/esm2022/lib/ra.gridster.config.mjs +0 -56
  39. package/esm2022/public-api.mjs +0 -13
  40. package/esm2022/schneideress-dashboardframework.mjs +0 -5
  41. package/gridster/index.d.ts +0 -9
  42. package/gridster/lib/gridster.component.d.ts +0 -79
  43. package/gridster/lib/gridster.interface.d.ts +0 -49
  44. package/gridster/lib/gridster.module.d.ts +0 -8
  45. package/gridster/lib/gridsterCompact.service.d.ts +0 -11
  46. package/gridster/lib/gridsterConfig.constant.d.ts +0 -2
  47. package/gridster/lib/gridsterConfig.interface.d.ts +0 -155
  48. package/gridster/lib/gridsterConfigS.interface.d.ts +0 -107
  49. package/gridster/lib/gridsterDraggable.service.d.ts +0 -68
  50. package/gridster/lib/gridsterEmptyCell.service.d.ts +0 -31
  51. package/gridster/lib/gridsterItem.component.d.ts +0 -61
  52. package/gridster/lib/gridsterItem.interface.d.ts +0 -67
  53. package/gridster/lib/gridsterPreview.component.d.ts +0 -17
  54. package/gridster/lib/gridsterPush.service.d.ts +0 -34
  55. package/gridster/lib/gridsterPushResize.service.d.ts +0 -26
  56. package/gridster/lib/gridsterRenderer.interface.d.ts +0 -14
  57. package/gridster/lib/gridsterRenderer.service.d.ts +0 -37
  58. package/gridster/lib/gridsterResizable.service.d.ts +0 -86
  59. package/gridster/lib/gridsterResizeEventType.interface.d.ts +0 -6
  60. package/gridster/lib/gridsterScroll.service.d.ts +0 -7
  61. package/gridster/lib/gridsterSwap.service.d.ts +0 -13
  62. package/gridster/lib/gridsterUtils.service.d.ts +0 -16
  63. package/lib/custom.notifier.options.d.ts +0 -2
  64. package/lib/ra-dashboard-area/ra.dashboard.area.d.ts +0 -132
  65. package/lib/ra-widget-container/lock-tooltip/lock.tooltip.component.d.ts +0 -20
  66. package/lib/ra-widget-container/ra.widget.container.component.d.ts +0 -154
  67. package/lib/ra.base.dashboard.filter.d.ts +0 -19
  68. package/lib/ra.base.dashboard.template.d.ts +0 -24
  69. package/lib/ra.dashbard.event.bus.d.ts +0 -23
  70. package/lib/ra.dashboard.module.d.ts +0 -16
  71. package/lib/ra.dashboard.responsive.service.d.ts +0 -24
  72. package/lib/ra.dashboard.service.d.ts +0 -26
  73. package/lib/ra.event.enum.d.ts +0 -72
  74. package/lib/ra.gridster.config.d.ts +0 -2
  75. package/public-api.d.ts +0 -9
@@ -1,255 +0,0 @@
1
- import { GridsterUtils } from './gridsterUtils.service';
2
- export class GridsterEmptyCell {
3
- constructor(gridster) {
4
- this.gridster = gridster;
5
- this.emptyCellClickCb = (e) => {
6
- if (!this.gridster ||
7
- this.gridster.movingItem ||
8
- GridsterUtils.checkContentClassForEmptyCellClickEvent(this.gridster, e)) {
9
- return;
10
- }
11
- const item = this.getValidItemFromEvent(e);
12
- if (!item) {
13
- return;
14
- }
15
- if (this.gridster.options.emptyCellClickCallback) {
16
- this.gridster.options.emptyCellClickCallback(e, item);
17
- }
18
- this.gridster.cdRef.markForCheck();
19
- };
20
- this.emptyCellContextMenuCb = (e) => {
21
- if (this.gridster.movingItem ||
22
- GridsterUtils.checkContentClassForEmptyCellClickEvent(this.gridster, e)) {
23
- return;
24
- }
25
- e.preventDefault();
26
- e.stopPropagation();
27
- const item = this.getValidItemFromEvent(e);
28
- if (!item) {
29
- return;
30
- }
31
- if (this.gridster.options.emptyCellContextMenuCallback) {
32
- this.gridster.options.emptyCellContextMenuCallback(e, item);
33
- }
34
- this.gridster.cdRef.markForCheck();
35
- };
36
- this.emptyCellDragDrop = (e) => {
37
- const item = this.getValidItemFromEvent(e);
38
- if (!item) {
39
- return;
40
- }
41
- if (this.gridster.options.emptyCellDropCallback) {
42
- this.gridster.options.emptyCellDropCallback(e, item);
43
- }
44
- this.gridster.cdRef.markForCheck();
45
- };
46
- this.emptyCellDragOver = (e) => {
47
- e.preventDefault();
48
- e.stopPropagation();
49
- const item = this.getValidItemFromEvent(e);
50
- if (item) {
51
- if (e.dataTransfer) {
52
- e.dataTransfer.dropEffect = 'move';
53
- }
54
- this.gridster.movingItem = item;
55
- }
56
- else {
57
- if (e.dataTransfer) {
58
- e.dataTransfer.dropEffect = 'none';
59
- }
60
- this.gridster.movingItem = null;
61
- }
62
- this.gridster.previewStyle();
63
- };
64
- this.emptyCellMouseDown = (e) => {
65
- if (GridsterUtils.checkContentClassForEmptyCellClickEvent(this.gridster, e)) {
66
- return;
67
- }
68
- e.preventDefault();
69
- e.stopPropagation();
70
- const item = this.getValidItemFromEvent(e);
71
- const leftMouseButtonCode = 1;
72
- if (!item ||
73
- (e.buttons !== leftMouseButtonCode && !(e instanceof TouchEvent))) {
74
- return;
75
- }
76
- this.initialItem = item;
77
- this.gridster.movingItem = item;
78
- this.gridster.previewStyle();
79
- this.gridster.zone.runOutsideAngular(() => {
80
- this.removeWindowMousemoveListenerFn = this.gridster.renderer.listen('window', 'mousemove', this.emptyCellMouseMove);
81
- this.removeWindowTouchmoveListenerFn = this.gridster.renderer.listen('window', 'touchmove', this.emptyCellMouseMove);
82
- });
83
- this.removeWindowMouseupListenerFn = this.gridster.renderer.listen('window', 'mouseup', this.emptyCellMouseUp);
84
- this.removeWindowTouchendListenerFn = this.gridster.renderer.listen('window', 'touchend', this.emptyCellMouseUp);
85
- };
86
- this.emptyCellMouseMove = (e) => {
87
- e.preventDefault();
88
- e.stopPropagation();
89
- const item = this.getValidItemFromEvent(e, this.initialItem);
90
- if (!item) {
91
- return;
92
- }
93
- this.gridster.movingItem = item;
94
- this.gridster.previewStyle();
95
- };
96
- this.emptyCellMouseUp = (e) => {
97
- this.removeWindowMousemoveListenerFn();
98
- this.removeWindowTouchmoveListenerFn();
99
- this.removeWindowMouseupListenerFn();
100
- this.removeWindowTouchendListenerFn();
101
- const item = this.getValidItemFromEvent(e, this.initialItem);
102
- if (item) {
103
- this.gridster.movingItem = item;
104
- }
105
- if (this.gridster.options.emptyCellDragCallback &&
106
- this.gridster.movingItem) {
107
- this.gridster.options.emptyCellDragCallback(e, this.gridster.movingItem);
108
- }
109
- setTimeout(() => {
110
- this.initialItem = null;
111
- if (this.gridster) {
112
- this.gridster.movingItem = null;
113
- this.gridster.previewStyle();
114
- }
115
- });
116
- this.gridster.cdRef.markForCheck();
117
- };
118
- }
119
- destroy() {
120
- if (this.gridster.previewStyle) {
121
- this.gridster.previewStyle();
122
- }
123
- this.gridster.movingItem = null;
124
- this.initialItem = this.gridster = null;
125
- if (this.removeDocumentDragendListenerFn) {
126
- this.removeDocumentDragendListenerFn();
127
- this.removeDocumentDragendListenerFn = null;
128
- }
129
- }
130
- updateOptions() {
131
- if (this.gridster.$options.enableEmptyCellClick &&
132
- !this.removeEmptyCellClickListenerFn &&
133
- this.gridster.options.emptyCellClickCallback) {
134
- this.removeEmptyCellClickListenerFn = this.gridster.renderer.listen(this.gridster.el, 'click', this.emptyCellClickCb);
135
- this.removeEmptyCellTouchendListenerFn = this.gridster.renderer.listen(this.gridster.el, 'touchend', this.emptyCellClickCb);
136
- }
137
- else if (!this.gridster.$options.enableEmptyCellClick &&
138
- this.removeEmptyCellClickListenerFn &&
139
- this.removeEmptyCellTouchendListenerFn) {
140
- this.removeEmptyCellClickListenerFn();
141
- this.removeEmptyCellTouchendListenerFn();
142
- this.removeEmptyCellClickListenerFn = null;
143
- this.removeEmptyCellTouchendListenerFn = null;
144
- }
145
- if (this.gridster.$options.enableEmptyCellContextMenu &&
146
- !this.removeEmptyCellContextMenuListenerFn &&
147
- this.gridster.options.emptyCellContextMenuCallback) {
148
- this.removeEmptyCellContextMenuListenerFn = this.gridster.renderer.listen(this.gridster.el, 'contextmenu', this.emptyCellContextMenuCb);
149
- }
150
- else if (!this.gridster.$options.enableEmptyCellContextMenu &&
151
- this.removeEmptyCellContextMenuListenerFn) {
152
- this.removeEmptyCellContextMenuListenerFn();
153
- this.removeEmptyCellContextMenuListenerFn = null;
154
- }
155
- if (this.gridster.$options.enableEmptyCellDrop &&
156
- !this.removeEmptyCellDropListenerFn &&
157
- this.gridster.options.emptyCellDropCallback) {
158
- this.removeEmptyCellDropListenerFn = this.gridster.renderer.listen(this.gridster.el, 'drop', this.emptyCellDragDrop);
159
- this.gridster.zone.runOutsideAngular(() => {
160
- this.removeEmptyCellDragoverListenerFn = this.gridster.renderer.listen(this.gridster.el, 'dragover', this.emptyCellDragOver);
161
- });
162
- this.removeDocumentDragendListenerFn = this.gridster.renderer.listen('document', 'dragend', () => {
163
- this.gridster.movingItem = null;
164
- this.gridster.previewStyle();
165
- });
166
- }
167
- else if (!this.gridster.$options.enableEmptyCellDrop &&
168
- this.removeEmptyCellDropListenerFn &&
169
- this.removeEmptyCellDragoverListenerFn &&
170
- this.removeDocumentDragendListenerFn) {
171
- this.removeEmptyCellDropListenerFn();
172
- this.removeEmptyCellDragoverListenerFn();
173
- this.removeDocumentDragendListenerFn();
174
- this.removeEmptyCellDragoverListenerFn = null;
175
- this.removeEmptyCellDropListenerFn = null;
176
- this.removeDocumentDragendListenerFn = null;
177
- }
178
- if (this.gridster.$options.enableEmptyCellDrag &&
179
- !this.removeEmptyCellMousedownListenerFn &&
180
- this.gridster.options.emptyCellDragCallback) {
181
- this.removeEmptyCellMousedownListenerFn = this.gridster.renderer.listen(this.gridster.el, 'mousedown', this.emptyCellMouseDown);
182
- this.removeEmptyCellTouchstartListenerFn = this.gridster.renderer.listen(this.gridster.el, 'touchstart', this.emptyCellMouseDown);
183
- }
184
- else if (!this.gridster.$options.enableEmptyCellDrag &&
185
- this.removeEmptyCellMousedownListenerFn &&
186
- this.removeEmptyCellTouchstartListenerFn) {
187
- this.removeEmptyCellMousedownListenerFn();
188
- this.removeEmptyCellTouchstartListenerFn();
189
- this.removeEmptyCellMousedownListenerFn = null;
190
- this.removeEmptyCellTouchstartListenerFn = null;
191
- }
192
- }
193
- getPixelsX(e, rect) {
194
- const scale = this.gridster.options.scale;
195
- if (scale) {
196
- return ((e.clientX - rect.left) / scale +
197
- this.gridster.el.scrollLeft -
198
- this.gridster.gridRenderer.getLeftMargin());
199
- }
200
- return (e.clientX +
201
- this.gridster.el.scrollLeft -
202
- rect.left -
203
- this.gridster.gridRenderer.getLeftMargin());
204
- }
205
- getPixelsY(e, rect) {
206
- const scale = this.gridster.options.scale;
207
- if (scale) {
208
- return ((e.clientY - rect.top) / scale +
209
- this.gridster.el.scrollTop -
210
- this.gridster.gridRenderer.getTopMargin());
211
- }
212
- return (e.clientY +
213
- this.gridster.el.scrollTop -
214
- rect.top -
215
- this.gridster.gridRenderer.getTopMargin());
216
- }
217
- getValidItemFromEvent(e, oldItem) {
218
- e.preventDefault();
219
- e.stopPropagation();
220
- GridsterUtils.checkTouchEvent(e);
221
- const rect = this.gridster.el.getBoundingClientRect();
222
- const x = this.getPixelsX(e, rect);
223
- const y = this.getPixelsY(e, rect);
224
- const item = {
225
- x: this.gridster.pixelsToPositionX(x, Math.floor, true),
226
- y: this.gridster.pixelsToPositionY(y, Math.floor, true),
227
- cols: this.gridster.$options.defaultItemCols,
228
- rows: this.gridster.$options.defaultItemRows
229
- };
230
- if (oldItem) {
231
- item.cols = Math.min(Math.abs(oldItem.x - item.x) + 1, this.gridster.$options.emptyCellDragMaxCols);
232
- item.rows = Math.min(Math.abs(oldItem.y - item.y) + 1, this.gridster.$options.emptyCellDragMaxRows);
233
- if (oldItem.x < item.x) {
234
- item.x = oldItem.x;
235
- }
236
- else if (oldItem.x - item.x >
237
- this.gridster.$options.emptyCellDragMaxCols - 1) {
238
- item.x = this.gridster.movingItem ? this.gridster.movingItem.x : 0;
239
- }
240
- if (oldItem.y < item.y) {
241
- item.y = oldItem.y;
242
- }
243
- else if (oldItem.y - item.y >
244
- this.gridster.$options.emptyCellDragMaxRows - 1) {
245
- item.y = this.gridster.movingItem ? this.gridster.movingItem.y : 0;
246
- }
247
- }
248
- if (!this.gridster.$options.enableOccupiedCellDrop &&
249
- this.gridster.checkCollision(item)) {
250
- return;
251
- }
252
- return item;
253
- }
254
- }
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJFbXB0eUNlbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhLWRhc2hib2FyZC1mcmFtZXdvcmsvc3JjL2dyaWRzdGVyL2xpYi9ncmlkc3RlckVtcHR5Q2VsbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl4RCxNQUFNLE9BQU8saUJBQWlCO0lBZTVCLFlBQW9CLFFBQW9DO1FBQXBDLGFBQVEsR0FBUixRQUFRLENBQTRCO1FBMEh4RCxxQkFBZ0IsR0FBRyxDQUFDLENBQWEsRUFBUSxFQUFFO1lBQ3pDLElBQ0UsQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVU7Z0JBQ3hCLGFBQWEsQ0FBQyx1Q0FBdUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUN2RSxDQUFDO2dCQUNELE9BQU87WUFDVCxDQUFDO1lBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDVixPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3hELENBQUM7WUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyQyxDQUFDLENBQUM7UUFFRiwyQkFBc0IsR0FBRyxDQUFDLENBQWEsRUFBUSxFQUFFO1lBQy9DLElBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVO2dCQUN4QixhQUFh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Q0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRSxDQUFDO1lBQ0QsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLENBQUM7aUJBQU0sSUFDTCxPQUFPLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLEVBQy9DLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckUsQ0FBQztRQUNILENBQUM7UUFDRCxJQUNFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsc0JBQXNCO1lBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUNsQyxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyaWRzdGVyVXRpbHMgfSBmcm9tICcuL2dyaWRzdGVyVXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEdyaWRzdGVyQ29tcG9uZW50SW50ZXJmYWNlIH0gZnJvbSAnLi9ncmlkc3Rlci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBHcmlkc3Rlckl0ZW0gfSBmcm9tICcuL2dyaWRzdGVySXRlbS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEdyaWRzdGVyRW1wdHlDZWxsIHtcclxuICBpbml0aWFsSXRlbSE6IEdyaWRzdGVySXRlbSB8IG51bGw7XHJcbiAgcmVtb3ZlRW1wdHlDZWxsQ2xpY2tMaXN0ZW5lckZuITogKCgpID0+IHZvaWQpIHwgbnVsbDtcclxuICByZW1vdmVFbXB0eUNlbGxUb3VjaGVuZExpc3RlbmVyRm4hOiAoKCkgPT4gdm9pZCkgfCBudWxsO1xyXG4gIHJlbW92ZUVtcHR5Q2VsbENvbnRleHRNZW51TGlzdGVuZXJGbiE6ICgoKSA9PiB2b2lkKSB8IG51bGw7XHJcbiAgcmVtb3ZlRW1wdHlDZWxsRHJvcExpc3RlbmVyRm4hOiAoKCkgPT4gdm9pZCkgfCBudWxsO1xyXG4gIHJlbW92ZUVtcHR5Q2VsbE1vdXNlZG93bkxpc3RlbmVyRm4hOiAoKCkgPT4gdm9pZCkgfCBudWxsO1xyXG4gIHJlbW92ZUVtcHR5Q2VsbFRvdWNoc3RhcnRMaXN0ZW5lckZuITogKCgpID0+IHZvaWQpIHwgbnVsbDtcclxuICByZW1vdmVXaW5kb3dNb3VzZW1vdmVMaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcclxuICByZW1vdmVXaW5kb3dUb3VjaG1vdmVMaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcclxuICByZW1vdmVXaW5kb3dNb3VzZXVwTGlzdGVuZXJGbiE6ICgpID0+IHZvaWQ7XHJcbiAgcmVtb3ZlV2luZG93VG91Y2hlbmRMaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcclxuICByZW1vdmVFbXB0eUNlbGxEcmFnb3Zlckxpc3RlbmVyRm4hOiAoKCkgPT4gdm9pZCkgfCBudWxsO1xyXG4gIHJlbW92ZURvY3VtZW50RHJhZ2VuZExpc3RlbmVyRm4hOiAoKCkgPT4gdm9pZCkgfCBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGdyaWRzdGVyOiBHcmlkc3RlckNvbXBvbmVudEludGVyZmFjZSkge31cclxuXHJcbiAgZGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmdyaWRzdGVyLnByZXZpZXdTdHlsZSkge1xyXG4gICAgICB0aGlzLmdyaWRzdGVyLnByZXZpZXdTdHlsZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtID0gbnVsbDtcclxuICAgIHRoaXMuaW5pdGlhbEl0ZW0gPSB0aGlzLmdyaWRzdGVyID0gbnVsbCE7XHJcbiAgICBpZiAodGhpcy5yZW1vdmVEb2N1bWVudERyYWdlbmRMaXN0ZW5lckZuKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlRG9jdW1lbnREcmFnZW5kTGlzdGVuZXJGbigpO1xyXG4gICAgICB0aGlzLnJlbW92ZURvY3VtZW50RHJhZ2VuZExpc3RlbmVyRm4gPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlT3B0aW9ucygpOiB2b2lkIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5lbmFibGVFbXB0eUNlbGxDbGljayAmJlxyXG4gICAgICAhdGhpcy5yZW1vdmVFbXB0eUNlbGxDbGlja0xpc3RlbmVyRm4gJiZcclxuICAgICAgdGhpcy5ncmlkc3Rlci5vcHRpb25zLmVtcHR5Q2VsbENsaWNrQ2FsbGJhY2tcclxuICAgICkge1xyXG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbENsaWNrTGlzdGVuZXJGbiA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKFxyXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIuZWwsXHJcbiAgICAgICAgJ2NsaWNrJyxcclxuICAgICAgICB0aGlzLmVtcHR5Q2VsbENsaWNrQ2JcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxUb3VjaGVuZExpc3RlbmVyRm4gPSB0aGlzLmdyaWRzdGVyLnJlbmRlcmVyLmxpc3RlbihcclxuICAgICAgICB0aGlzLmdyaWRzdGVyLmVsLFxyXG4gICAgICAgICd0b3VjaGVuZCcsXHJcbiAgICAgICAgdGhpcy5lbXB0eUNlbGxDbGlja0NiXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAhdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5lbmFibGVFbXB0eUNlbGxDbGljayAmJlxyXG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbENsaWNrTGlzdGVuZXJGbiAmJlxyXG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbFRvdWNoZW5kTGlzdGVuZXJGblxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsQ2xpY2tMaXN0ZW5lckZuKCk7XHJcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsVG91Y2hlbmRMaXN0ZW5lckZuKCk7XHJcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsQ2xpY2tMaXN0ZW5lckZuID0gbnVsbDtcclxuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxUb3VjaGVuZExpc3RlbmVyRm4gPSBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVuYWJsZUVtcHR5Q2VsbENvbnRleHRNZW51ICYmXHJcbiAgICAgICF0aGlzLnJlbW92ZUVtcHR5Q2VsbENvbnRleHRNZW51TGlzdGVuZXJGbiAmJlxyXG4gICAgICB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuZW1wdHlDZWxsQ29udGV4dE1lbnVDYWxsYmFja1xyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsQ29udGV4dE1lbnVMaXN0ZW5lckZuID0gdGhpcy5ncmlkc3Rlci5yZW5kZXJlci5saXN0ZW4oXHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci5lbCxcclxuICAgICAgICAnY29udGV4dG1lbnUnLFxyXG4gICAgICAgIHRoaXMuZW1wdHlDZWxsQ29udGV4dE1lbnVDYlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgIXRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZW5hYmxlRW1wdHlDZWxsQ29udGV4dE1lbnUgJiZcclxuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxDb250ZXh0TWVudUxpc3RlbmVyRm5cclxuICAgICkge1xyXG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbENvbnRleHRNZW51TGlzdGVuZXJGbigpO1xyXG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbENvbnRleHRNZW51TGlzdGVuZXJGbiA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZW5hYmxlRW1wdHlDZWxsRHJvcCAmJlxyXG4gICAgICAhdGhpcy5yZW1vdmVFbXB0eUNlbGxEcm9wTGlzdGVuZXJGbiAmJlxyXG4gICAgICB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuZW1wdHlDZWxsRHJvcENhbGxiYWNrXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxEcm9wTGlzdGVuZXJGbiA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKFxyXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIuZWwsXHJcbiAgICAgICAgJ2Ryb3AnLFxyXG4gICAgICAgIHRoaXMuZW1wdHlDZWxsRHJhZ0Ryb3BcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5ncmlkc3Rlci56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbERyYWdvdmVyTGlzdGVuZXJGbiA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKFxyXG4gICAgICAgICAgdGhpcy5ncmlkc3Rlci5lbCxcclxuICAgICAgICAgICdkcmFnb3ZlcicsXHJcbiAgICAgICAgICB0aGlzLmVtcHR5Q2VsbERyYWdPdmVyXHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMucmVtb3ZlRG9jdW1lbnREcmFnZW5kTGlzdGVuZXJGbiA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKFxyXG4gICAgICAgICdkb2N1bWVudCcsXHJcbiAgICAgICAgJ2RyYWdlbmQnLFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbSA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmdyaWRzdGVyLnByZXZpZXdTdHlsZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICF0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVuYWJsZUVtcHR5Q2VsbERyb3AgJiZcclxuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxEcm9wTGlzdGVuZXJGbiAmJlxyXG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbERyYWdvdmVyTGlzdGVuZXJGbiAmJlxyXG4gICAgICB0aGlzLnJlbW92ZURvY3VtZW50RHJhZ2VuZExpc3RlbmVyRm5cclxuICAgICkge1xyXG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbERyb3BMaXN0ZW5lckZuKCk7XHJcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsRHJhZ292ZXJMaXN0ZW5lckZuKCk7XHJcbiAgICAgIHRoaXMucmVtb3ZlRG9jdW1lbnREcmFnZW5kTGlzdGVuZXJGbigpO1xyXG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbERyYWdvdmVyTGlzdGVuZXJGbiA9IG51bGw7XHJcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsRHJvcExpc3RlbmVyRm4gPSBudWxsO1xyXG4gICAgICB0aGlzLnJlbW92ZURvY3VtZW50RHJhZ2VuZExpc3RlbmVyRm4gPSBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVuYWJsZUVtcHR5Q2VsbERyYWcgJiZcclxuICAgICAgIXRoaXMucmVtb3ZlRW1wdHlDZWxsTW91c2Vkb3duTGlzdGVuZXJGbiAmJlxyXG4gICAgICB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuZW1wdHlDZWxsRHJhZ0NhbGxiYWNrXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxNb3VzZWRvd25MaXN0ZW5lckZuID0gdGhpcy5ncmlkc3Rlci5yZW5kZXJlci5saXN0ZW4oXHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci5lbCxcclxuICAgICAgICAnbW91c2Vkb3duJyxcclxuICAgICAgICB0aGlzLmVtcHR5Q2VsbE1vdXNlRG93blxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbFRvdWNoc3RhcnRMaXN0ZW5lckZuID0gdGhpcy5ncmlkc3Rlci5yZW5kZXJlci5saXN0ZW4oXHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci5lbCxcclxuICAgICAgICAndG91Y2hzdGFydCcsXHJcbiAgICAgICAgdGhpcy5lbXB0eUNlbGxNb3VzZURvd25cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICF0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVuYWJsZUVtcHR5Q2VsbERyYWcgJiZcclxuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxNb3VzZWRvd25MaXN0ZW5lckZuICYmXHJcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsVG91Y2hzdGFydExpc3RlbmVyRm5cclxuICAgICkge1xyXG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbE1vdXNlZG93bkxpc3RlbmVyRm4oKTtcclxuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxUb3VjaHN0YXJ0TGlzdGVuZXJGbigpO1xyXG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbE1vdXNlZG93bkxpc3RlbmVyRm4gPSBudWxsO1xyXG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbFRvdWNoc3RhcnRMaXN0ZW5lckZuID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGVtcHR5Q2VsbENsaWNrQ2IgPSAoZTogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy5ncmlkc3RlciB8fFxyXG4gICAgICB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0gfHxcclxuICAgICAgR3JpZHN0ZXJVdGlscy5jaGVja0NvbnRlbnRDbGFzc0ZvckVtcHR5Q2VsbENsaWNrRXZlbnQodGhpcy5ncmlkc3RlciwgZSlcclxuICAgICkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRWYWxpZEl0ZW1Gcm9tRXZlbnQoZSk7XHJcbiAgICBpZiAoIWl0ZW0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5lbXB0eUNlbGxDbGlja0NhbGxiYWNrKSB7XHJcbiAgICAgIHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5lbXB0eUNlbGxDbGlja0NhbGxiYWNrKGUsIGl0ZW0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncmlkc3Rlci5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9O1xyXG5cclxuICBlbXB0eUNlbGxDb250ZXh0TWVudUNiID0gKGU6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtIHx8XHJcbiAgICAgIEdyaWRzdGVyVXRpbHMuY2hlY2tDb250ZW50Q2xhc3NGb3JFbXB0eUNlbGxDbGlja0V2ZW50KHRoaXMuZ3JpZHN0ZXIsIGUpXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldFZhbGlkSXRlbUZyb21FdmVudChlKTtcclxuICAgIGlmICghaXRlbSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ncmlkc3Rlci5vcHRpb25zLmVtcHR5Q2VsbENvbnRleHRNZW51Q2FsbGJhY2spIHtcclxuICAgICAgdGhpcy5ncmlkc3Rlci5vcHRpb25zLmVtcHR5Q2VsbENvbnRleHRNZW51Q2FsbGJhY2soZSwgaXRlbSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdyaWRzdGVyLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH07XHJcblxyXG4gIGVtcHR5Q2VsbERyYWdEcm9wID0gKGU6IERyYWdFdmVudCk6IHZvaWQgPT4ge1xyXG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0VmFsaWRJdGVtRnJvbUV2ZW50KGUpO1xyXG4gICAgaWYgKCFpdGVtKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmdyaWRzdGVyLm9wdGlvbnMuZW1wdHlDZWxsRHJvcENhbGxiYWNrKSB7XHJcbiAgICAgIHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5lbXB0eUNlbGxEcm9wQ2FsbGJhY2soZSwgaXRlbSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdyaWRzdGVyLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH07XHJcblxyXG4gIGVtcHR5Q2VsbERyYWdPdmVyID0gKGU6IERyYWdFdmVudCk6IHZvaWQgPT4ge1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldFZhbGlkSXRlbUZyb21FdmVudChlKTtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIGlmIChlLmRhdGFUcmFuc2Zlcikge1xyXG4gICAgICAgIGUuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnbW92ZSc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtID0gaXRlbTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChlLmRhdGFUcmFuc2Zlcikge1xyXG4gICAgICAgIGUuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnbm9uZSc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZ3JpZHN0ZXIucHJldmlld1N0eWxlKCk7XHJcbiAgfTtcclxuXHJcbiAgZW1wdHlDZWxsTW91c2VEb3duID0gKGU6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcclxuICAgIGlmIChcclxuICAgICAgR3JpZHN0ZXJVdGlscy5jaGVja0NvbnRlbnRDbGFzc0ZvckVtcHR5Q2VsbENsaWNrRXZlbnQodGhpcy5ncmlkc3RlciwgZSlcclxuICAgICkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0VmFsaWRJdGVtRnJvbUV2ZW50KGUpO1xyXG4gICAgY29uc3QgbGVmdE1vdXNlQnV0dG9uQ29kZSA9IDE7XHJcbiAgICBpZiAoXHJcbiAgICAgICFpdGVtIHx8XHJcbiAgICAgIChlLmJ1dHRvbnMgIT09IGxlZnRNb3VzZUJ1dHRvbkNvZGUgJiYgIShlIGluc3RhbmNlb2YgVG91Y2hFdmVudCkpXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbml0aWFsSXRlbSA9IGl0ZW07XHJcbiAgICB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0gPSBpdGVtO1xyXG4gICAgdGhpcy5ncmlkc3Rlci5wcmV2aWV3U3R5bGUoKTtcclxuICAgIHRoaXMuZ3JpZHN0ZXIuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVtb3ZlV2luZG93TW91c2Vtb3ZlTGlzdGVuZXJGbiA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKFxyXG4gICAgICAgICd3aW5kb3cnLFxyXG4gICAgICAgICdtb3VzZW1vdmUnLFxyXG4gICAgICAgIHRoaXMuZW1wdHlDZWxsTW91c2VNb3ZlXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMucmVtb3ZlV2luZG93VG91Y2htb3ZlTGlzdGVuZXJGbiA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKFxyXG4gICAgICAgICd3aW5kb3cnLFxyXG4gICAgICAgICd0b3VjaG1vdmUnLFxyXG4gICAgICAgIHRoaXMuZW1wdHlDZWxsTW91c2VNb3ZlXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVtb3ZlV2luZG93TW91c2V1cExpc3RlbmVyRm4gPSB0aGlzLmdyaWRzdGVyLnJlbmRlcmVyLmxpc3RlbihcclxuICAgICAgJ3dpbmRvdycsXHJcbiAgICAgICdtb3VzZXVwJyxcclxuICAgICAgdGhpcy5lbXB0eUNlbGxNb3VzZVVwXHJcbiAgICApO1xyXG4gICAgdGhpcy5yZW1vdmVXaW5kb3dUb3VjaGVuZExpc3RlbmVyRm4gPSB0aGlzLmdyaWRzdGVyLnJlbmRlcmVyLmxpc3RlbihcclxuICAgICAgJ3dpbmRvdycsXHJcbiAgICAgICd0b3VjaGVuZCcsXHJcbiAgICAgIHRoaXMuZW1wdHlDZWxsTW91c2VVcFxyXG4gICAgKTtcclxuICB9O1xyXG5cclxuICBlbXB0eUNlbGxNb3VzZU1vdmUgPSAoZTogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldFZhbGlkSXRlbUZyb21FdmVudChlLCB0aGlzLmluaXRpYWxJdGVtKTtcclxuICAgIGlmICghaXRlbSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtID0gaXRlbTtcclxuICAgIHRoaXMuZ3JpZHN0ZXIucHJldmlld1N0eWxlKCk7XHJcbiAgfTtcclxuXHJcbiAgZW1wdHlDZWxsTW91c2VVcCA9IChlOiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XHJcbiAgICB0aGlzLnJlbW92ZVdpbmRvd01vdXNlbW92ZUxpc3RlbmVyRm4oKTtcclxuICAgIHRoaXMucmVtb3ZlV2luZG93VG91Y2htb3ZlTGlzdGVuZXJGbigpO1xyXG4gICAgdGhpcy5yZW1vdmVXaW5kb3dNb3VzZXVwTGlzdGVuZXJGbigpO1xyXG4gICAgdGhpcy5yZW1vdmVXaW5kb3dUb3VjaGVuZExpc3RlbmVyRm4oKTtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldFZhbGlkSXRlbUZyb21FdmVudChlLCB0aGlzLmluaXRpYWxJdGVtKTtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbSA9IGl0ZW07XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5lbXB0eUNlbGxEcmFnQ2FsbGJhY2sgJiZcclxuICAgICAgdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5ncmlkc3Rlci5vcHRpb25zLmVtcHR5Q2VsbERyYWdDYWxsYmFjayhlLCB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0pO1xyXG4gICAgfVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbEl0ZW0gPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5ncmlkc3Rlcikge1xyXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci5wcmV2aWV3U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmdyaWRzdGVyLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH07XHJcblxyXG4gIGdldFBpeGVsc1goZTogTW91c2VFdmVudCwgcmVjdDogQ2xpZW50UmVjdCk6IG51bWJlciB7XHJcbiAgICBjb25zdCBzY2FsZSA9IHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5zY2FsZTtcclxuICAgIGlmIChzY2FsZSkge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIChlLmNsaWVudFggLSByZWN0LmxlZnQpIC8gc2NhbGUgK1xyXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIuZWwuc2Nyb2xsTGVmdCAtXHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci5ncmlkUmVuZGVyZXIuZ2V0TGVmdE1hcmdpbigpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBlLmNsaWVudFggK1xyXG4gICAgICB0aGlzLmdyaWRzdGVyLmVsLnNjcm9sbExlZnQgLVxyXG4gICAgICByZWN0LmxlZnQgLVxyXG4gICAgICB0aGlzLmdyaWRzdGVyLmdyaWRSZW5kZXJlci5nZXRMZWZ0TWFyZ2luKClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRQaXhlbHNZKGU6IE1vdXNlRXZlbnQsIHJlY3Q6IENsaWVudFJlY3QpOiBudW1iZXIge1xyXG4gICAgY29uc3Qgc2NhbGUgPSB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuc2NhbGU7XHJcbiAgICBpZiAoc2NhbGUpIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICAoZS5jbGllbnRZIC0gcmVjdC50b3ApIC8gc2NhbGUgK1xyXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIuZWwuc2Nyb2xsVG9wIC1cclxuICAgICAgICB0aGlzLmdyaWRzdGVyLmdyaWRSZW5kZXJlci5nZXRUb3BNYXJnaW4oKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgZS5jbGllbnRZICtcclxuICAgICAgdGhpcy5ncmlkc3Rlci5lbC5zY3JvbGxUb3AgLVxyXG4gICAgICByZWN0LnRvcCAtXHJcbiAgICAgIHRoaXMuZ3JpZHN0ZXIuZ3JpZFJlbmRlcmVyLmdldFRvcE1hcmdpbigpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsaWRJdGVtRnJvbUV2ZW50KFxyXG4gICAgZTogTW91c2VFdmVudCxcclxuICAgIG9sZEl0ZW0/OiBHcmlkc3Rlckl0ZW0gfCBudWxsXHJcbiAgKTogR3JpZHN0ZXJJdGVtIHwgdW5kZWZpbmVkIHtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBHcmlkc3RlclV0aWxzLmNoZWNrVG91Y2hFdmVudChlKTtcclxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmdyaWRzdGVyLmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgeCA9IHRoaXMuZ2V0UGl4ZWxzWChlLCByZWN0KTtcclxuICAgIGNvbnN0IHkgPSB0aGlzLmdldFBpeGVsc1koZSwgcmVjdCk7XHJcbiAgICBjb25zdCBpdGVtOiBHcmlkc3Rlckl0ZW0gPSB7XHJcbiAgICAgIHg6IHRoaXMuZ3JpZHN0ZXIucGl4ZWxzVG9Qb3NpdGlvblgoeCwgTWF0aC5mbG9vciwgdHJ1ZSksXHJcbiAgICAgIHk6IHRoaXMuZ3JpZHN0ZXIucGl4ZWxzVG9Qb3NpdGlvblkoeSwgTWF0aC5mbG9vciwgdHJ1ZSksXHJcbiAgICAgIGNvbHM6IHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZGVmYXVsdEl0ZW1Db2xzLFxyXG4gICAgICByb3dzOiB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmRlZmF1bHRJdGVtUm93c1xyXG4gICAgfTtcclxuICAgIGlmIChvbGRJdGVtKSB7XHJcbiAgICAgIGl0ZW0uY29scyA9IE1hdGgubWluKFxyXG4gICAgICAgIE1hdGguYWJzKG9sZEl0ZW0ueCAtIGl0ZW0ueCkgKyAxLFxyXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZW1wdHlDZWxsRHJhZ01heENvbHNcclxuICAgICAgKTtcclxuICAgICAgaXRlbS5yb3dzID0gTWF0aC5taW4oXHJcbiAgICAgICAgTWF0aC5hYnMob2xkSXRlbS55IC0gaXRlbS55KSArIDEsXHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5lbXB0eUNlbGxEcmFnTWF4Um93c1xyXG4gICAgICApO1xyXG4gICAgICBpZiAob2xkSXRlbS54IDwgaXRlbS54KSB7XHJcbiAgICAgICAgaXRlbS54ID0gb2xkSXRlbS54O1xyXG4gICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgIG9sZEl0ZW0ueCAtIGl0ZW0ueCA+XHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5lbXB0eUNlbGxEcmFnTWF4Q29scyAtIDFcclxuICAgICAgKSB7XHJcbiAgICAgICAgaXRlbS54ID0gdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtID8gdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtLnggOiAwO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvbGRJdGVtLnkgPCBpdGVtLnkpIHtcclxuICAgICAgICBpdGVtLnkgPSBvbGRJdGVtLnk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgb2xkSXRlbS55IC0gaXRlbS55ID5cclxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVtcHR5Q2VsbERyYWdNYXhSb3dzIC0gMVxyXG4gICAgICApIHtcclxuICAgICAgICBpdGVtLnkgPSB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0gPyB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0ueSA6IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgIXRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZW5hYmxlT2NjdXBpZWRDZWxsRHJvcCAmJlxyXG4gICAgICB0aGlzLmdyaWRzdGVyLmNoZWNrQ29sbGlzaW9uKGl0ZW0pXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,231 +0,0 @@
1
- import { NgIf } from '@angular/common';
2
- import { Component, ElementRef, EventEmitter, HostBinding, Inject, Input, NgZone, Output, Renderer2, ViewEncapsulation } from '@angular/core';
3
- import { GridsterDraggable } from './gridsterDraggable.service';
4
- import { GridsterResizable } from './gridsterResizable.service';
5
- import { GridsterUtils } from './gridsterUtils.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./gridster.component";
8
- export class GridsterItemComponent {
9
- get zIndex() {
10
- return this.getLayerIndex() + this.gridster.$options.baseLayerIndex;
11
- }
12
- constructor(el, gridster, renderer, zone) {
13
- this.renderer = renderer;
14
- this.zone = zone;
15
- this.itemInit = new EventEmitter();
16
- this.itemChange = new EventEmitter();
17
- this.itemResize = new EventEmitter();
18
- this.el = el.nativeElement;
19
- this.$item = {
20
- cols: -1,
21
- rows: -1,
22
- x: -1,
23
- y: -1
24
- };
25
- this.gridster = gridster;
26
- this.drag = new GridsterDraggable(this, gridster, this.zone);
27
- this.resize = new GridsterResizable(this, gridster, this.zone);
28
- }
29
- ngOnInit() {
30
- this.gridster.addItem(this);
31
- }
32
- ngOnChanges(changes) {
33
- if (changes['item']) {
34
- this.updateOptions();
35
- if (!this.init) {
36
- this.gridster.calculateLayout$.next();
37
- }
38
- }
39
- if (changes['item'] && changes['item'].previousValue) {
40
- this.setSize();
41
- }
42
- }
43
- updateOptions() {
44
- this.$item = GridsterUtils.merge(this.$item, this.item, {
45
- cols: undefined,
46
- rows: undefined,
47
- x: undefined,
48
- y: undefined,
49
- layerIndex: undefined,
50
- dragEnabled: undefined,
51
- resizeEnabled: undefined,
52
- compactEnabled: undefined,
53
- maxItemRows: undefined,
54
- minItemRows: undefined,
55
- maxItemCols: undefined,
56
- minItemCols: undefined,
57
- maxItemArea: undefined,
58
- minItemArea: undefined,
59
- resizableHandles: {
60
- s: undefined,
61
- e: undefined,
62
- n: undefined,
63
- w: undefined,
64
- se: undefined,
65
- ne: undefined,
66
- sw: undefined,
67
- nw: undefined
68
- }
69
- });
70
- }
71
- ngOnDestroy() {
72
- this.gridster.removeItem(this);
73
- this.gridster.movingItem = null;
74
- this.drag.destroy();
75
- this.resize.destroy();
76
- this.gridster = this.drag = this.resize = null;
77
- }
78
- setSize() {
79
- this.renderer.setStyle(this.el, 'display', this.notPlaced ? '' : 'block');
80
- this.gridster.gridRenderer.updateItem(this.el, this.$item, this.renderer);
81
- this.updateItemSize();
82
- }
83
- updateItemSize() {
84
- const top = this.$item.y * this.gridster.curRowHeight;
85
- const left = this.$item.x * this.gridster.curColWidth;
86
- const width = this.$item.cols * this.gridster.curColWidth -
87
- this.gridster.$options.margin;
88
- const height = this.$item.rows * this.gridster.curRowHeight -
89
- this.gridster.$options.margin;
90
- this.top = top;
91
- this.left = left;
92
- if (!this.init && width > 0 && height > 0) {
93
- this.init = true;
94
- if (this.item.initCallback) {
95
- this.item.initCallback(this.item, this);
96
- }
97
- if (this.gridster.options.itemInitCallback) {
98
- this.item.curRowHeight = this.gridster.curRowHeight;
99
- this.gridster.options.itemInitCallback(this.item, this);
100
- }
101
- this.itemInit.next({ item: this.item, itemComponent: this });
102
- if (this.gridster.$options.scrollToNewItems) {
103
- this.el.scrollIntoView(false);
104
- }
105
- }
106
- if (width !== this.width || height !== this.height) {
107
- this.width = width;
108
- this.height = height;
109
- if (this.gridster.options.itemResizeCallback) {
110
- this.gridster.options.itemResizeCallback(this.item, this);
111
- }
112
- this.itemResize.next({ item: this.item, itemComponent: this });
113
- }
114
- }
115
- itemChanged() {
116
- if (this.gridster.options.itemChangeCallback) {
117
- this.item.curRowHeight = this.gridster.curRowHeight;
118
- this.gridster.options.itemChangeCallback(this.item, this);
119
- }
120
- this.itemChange.next({ item: this.item, itemComponent: this });
121
- }
122
- checkItemChanges(newValue, oldValue) {
123
- if (newValue.rows === oldValue.rows &&
124
- newValue.cols === oldValue.cols &&
125
- newValue.x === oldValue.x &&
126
- newValue.y === oldValue.y) {
127
- return;
128
- }
129
- if (this.gridster.checkCollision(this.$item)) {
130
- this.$item.x = oldValue.x || 0;
131
- this.$item.y = oldValue.y || 0;
132
- this.$item.cols = oldValue.cols || 1;
133
- this.$item.rows = oldValue.rows || 1;
134
- this.setSize();
135
- }
136
- else {
137
- this.item.cols = this.$item.cols;
138
- this.item.rows = this.$item.rows;
139
- this.item.x = this.$item.x;
140
- this.item.y = this.$item.y;
141
- this.gridster.calculateLayout$.next();
142
- this.itemChanged();
143
- }
144
- }
145
- canBeDragged() {
146
- const gridDragEnabled = this.gridster.$options.draggable.enabled;
147
- const itemDragEnabled = this.$item.dragEnabled === undefined
148
- ? gridDragEnabled
149
- : this.$item.dragEnabled;
150
- return !this.gridster.mobile && gridDragEnabled && itemDragEnabled;
151
- }
152
- canBeResized() {
153
- const gridResizable = this.gridster.$options.resizable.enabled;
154
- const itemResizable = this.$item.resizeEnabled === undefined
155
- ? gridResizable
156
- : this.$item.resizeEnabled;
157
- return !this.gridster.mobile && gridResizable && itemResizable;
158
- }
159
- getResizableHandles() {
160
- const gridResizableHandles = this.gridster.$options.resizable.handles;
161
- const itemResizableHandles = this.$item.resizableHandles;
162
- // use grid settings if no settings are provided for the item.
163
- if (itemResizableHandles === undefined) {
164
- return gridResizableHandles;
165
- }
166
- // else merge the settings
167
- return {
168
- ...gridResizableHandles,
169
- ...itemResizableHandles
170
- };
171
- }
172
- bringToFront(offset) {
173
- if (offset && offset <= 0) {
174
- return;
175
- }
176
- const layerIndex = this.getLayerIndex();
177
- const topIndex = this.gridster.$options.maxLayerIndex;
178
- if (layerIndex < topIndex) {
179
- const targetIndex = offset ? layerIndex + offset : topIndex;
180
- this.item.layerIndex = this.$item.layerIndex =
181
- targetIndex > topIndex ? topIndex : targetIndex;
182
- }
183
- }
184
- sendToBack(offset) {
185
- if (offset && offset <= 0) {
186
- return;
187
- }
188
- const layerIndex = this.getLayerIndex();
189
- if (layerIndex > 0) {
190
- const targetIndex = offset ? layerIndex - offset : 0;
191
- this.item.layerIndex = this.$item.layerIndex =
192
- targetIndex < 0 ? 0 : targetIndex;
193
- }
194
- }
195
- getLayerIndex() {
196
- if (this.item.layerIndex !== undefined) {
197
- return this.item.layerIndex;
198
- }
199
- if (this.gridster.$options.defaultLayerIndex !== undefined) {
200
- return this.gridster.$options.defaultLayerIndex;
201
- }
202
- return 0;
203
- }
204
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GridsterItemComponent, deps: [{ token: ElementRef }, { token: i1.GridsterComponent }, { token: Renderer2 }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
205
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: GridsterItemComponent, isStandalone: true, selector: "gridster-item", inputs: { item: "item" }, outputs: { itemInit: "itemInit", itemChange: "itemChange", itemResize: "itemResize" }, host: { properties: { "style.z-index": "this.zIndex" } }, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.s && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-s\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.e && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-e\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.n && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-n\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.w && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-w\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.se && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-se\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.ne && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-ne\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.sw && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-sw\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.nw && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-nw\"\r\n></div>\r\n", styles: ["gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;transition:.3s;display:none;background:#fff;-webkit-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-resizing,gridster-item.gridster-item-moving{transition:0s;z-index:2;box-shadow:0 0 5px 5px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:ns-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:ew-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:ns-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:ew-resize;width:10px;left:0;top:0;bottom:0}.gridster-item-resizable-handler.handle-ne{cursor:ne-resize;width:10px;height:10px;right:0;top:0}.gridster-item-resizable-handler.handle-nw{cursor:nw-resize;width:10px;height:10px;left:0;top:0}.gridster-item-resizable-handler.handle-se{cursor:se-resize;width:0;height:0;right:0;bottom:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent}.gridster-item-resizable-handler.handle-sw{cursor:sw-resize;width:10px;height:10px;left:0;bottom:0}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent #ccc}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
206
- }
207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GridsterItemComponent, decorators: [{
208
- type: Component,
209
- args: [{ selector: 'gridster-item', encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgIf], template: "<ng-content></ng-content>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.s && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-s\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.e && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-e\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.n && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-n\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.w && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-w\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.se && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-se\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.ne && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-ne\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.sw && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-sw\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.nw && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-nw\"\r\n></div>\r\n", styles: ["gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;transition:.3s;display:none;background:#fff;-webkit-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-resizing,gridster-item.gridster-item-moving{transition:0s;z-index:2;box-shadow:0 0 5px 5px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:ns-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:ew-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:ns-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:ew-resize;width:10px;left:0;top:0;bottom:0}.gridster-item-resizable-handler.handle-ne{cursor:ne-resize;width:10px;height:10px;right:0;top:0}.gridster-item-resizable-handler.handle-nw{cursor:nw-resize;width:10px;height:10px;left:0;top:0}.gridster-item-resizable-handler.handle-se{cursor:se-resize;width:0;height:0;right:0;bottom:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent}.gridster-item-resizable-handler.handle-sw{cursor:sw-resize;width:10px;height:10px;left:0;bottom:0}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent #ccc}\n"] }]
210
- }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
211
- type: Inject,
212
- args: [ElementRef]
213
- }] }, { type: i1.GridsterComponent }, { type: i0.Renderer2, decorators: [{
214
- type: Inject,
215
- args: [Renderer2]
216
- }] }, { type: i0.NgZone, decorators: [{
217
- type: Inject,
218
- args: [NgZone]
219
- }] }], propDecorators: { item: [{
220
- type: Input
221
- }], itemInit: [{
222
- type: Output
223
- }], itemChange: [{
224
- type: Output
225
- }], itemResize: [{
226
- type: Output
227
- }], zIndex: [{
228
- type: HostBinding,
229
- args: ['style.z-index']
230
- }] } });
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJJdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhLWRhc2hib2FyZC1mcmFtZXdvcmsvc3JjL2dyaWRzdGVyL2xpYi9ncmlkc3Rlckl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmEtZGFzaGJvYXJkLWZyYW1ld29yay9zcmMvZ3JpZHN0ZXIvbGliL2dyaWRzdGVySXRlbS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUlOLE1BQU0sRUFDTixTQUFTLEVBRVQsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBS2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBV3hELE1BQU0sT0FBTyxxQkFBcUI7SUE0QmhDLElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsWUFDc0IsRUFBYyxFQUNsQyxRQUEyQixFQUNELFFBQW1CLEVBQ3JCLElBQVk7UUFEVixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQVE7UUFqQzVCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFHakMsQ0FBQztRQUNLLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFHbkMsQ0FBQztRQUNLLGVBQVUsR0FB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QUFaLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFJRyxVQUFVO3NCQUFuQixNQUFNO2dCQUlHLFVBQVU7c0JBQW5CLE1BQU07Z0JBaUJILE1BQU07c0JBRFQsV0FBVzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBOZ1pvbmUsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdyaWRzdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9ncmlkc3Rlci5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgR3JpZHN0ZXJEcmFnZ2FibGUgfSBmcm9tICcuL2dyaWRzdGVyRHJhZ2dhYmxlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEdyaWRzdGVySXRlbSxcclxuICBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2VcclxufSBmcm9tICcuL2dyaWRzdGVySXRlbS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBHcmlkc3RlclJlc2l6YWJsZSB9IGZyb20gJy4vZ3JpZHN0ZXJSZXNpemFibGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEdyaWRzdGVyVXRpbHMgfSBmcm9tICcuL2dyaWRzdGVyVXRpbHMuc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdncmlkc3Rlci1pdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZHN0ZXJJdGVtLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2dyaWRzdGVySXRlbS5jc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW05nSWZdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHcmlkc3Rlckl0ZW1Db21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZVxyXG57XHJcbiAgQElucHV0KCkgaXRlbSE6IEdyaWRzdGVySXRlbTtcclxuICBAT3V0cHV0KCkgaXRlbUluaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGl0ZW06IEdyaWRzdGVySXRlbTtcclxuICAgIGl0ZW1Db21wb25lbnQ6IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZTtcclxuICB9PigpO1xyXG4gIEBPdXRwdXQoKSBpdGVtQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBpdGVtOiBHcmlkc3Rlckl0ZW07XHJcbiAgICBpdGVtQ29tcG9uZW50OiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2U7XHJcbiAgfT4oKTtcclxuICBAT3V0cHV0KCkgaXRlbVJlc2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgaXRlbTogR3JpZHN0ZXJJdGVtO1xyXG4gICAgaXRlbUNvbXBvbmVudDogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlO1xyXG4gIH0+KCk7XHJcbiAgJGl0ZW06IEdyaWRzdGVySXRlbTtcclxuICBlbDogSFRNTEVsZW1lbnQ7XHJcbiAgZ3JpZHN0ZXI6IEdyaWRzdGVyQ29tcG9uZW50O1xyXG4gIHRvcCE6IG51bWJlcjtcclxuICBsZWZ0ITogbnVtYmVyO1xyXG4gIHdpZHRoITogbnVtYmVyO1xyXG4gIGhlaWdodCE6IG51bWJlcjtcclxuICBkcmFnOiBHcmlkc3RlckRyYWdnYWJsZTtcclxuICByZXNpemU6IEdyaWRzdGVyUmVzaXphYmxlO1xyXG4gIG5vdFBsYWNlZCE6IGJvb2xlYW47XHJcbiAgaW5pdCE6IGJvb2xlYW47XHJcblxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUuei1pbmRleCcpXHJcbiAgZ2V0IHpJbmRleCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0TGF5ZXJJbmRleCgpICsgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5iYXNlTGF5ZXJJbmRleDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChFbGVtZW50UmVmKSBlbDogRWxlbWVudFJlZixcclxuICAgIGdyaWRzdGVyOiBHcmlkc3RlckNvbXBvbmVudCxcclxuICAgIEBJbmplY3QoUmVuZGVyZXIyKSBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIEBJbmplY3QoTmdab25lKSBwcml2YXRlIHpvbmU6IE5nWm9uZVxyXG4gICkge1xyXG4gICAgdGhpcy5lbCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB0aGlzLiRpdGVtID0ge1xyXG4gICAgICBjb2xzOiAtMSxcclxuICAgICAgcm93czogLTEsXHJcbiAgICAgIHg6IC0xLFxyXG4gICAgICB5OiAtMVxyXG4gICAgfTtcclxuICAgIHRoaXMuZ3JpZHN0ZXIgPSBncmlkc3RlcjtcclxuICAgIHRoaXMuZHJhZyA9IG5ldyBHcmlkc3RlckRyYWdnYWJsZSh0aGlzLCBncmlkc3RlciwgdGhpcy56b25lKTtcclxuICAgIHRoaXMucmVzaXplID0gbmV3IEdyaWRzdGVyUmVzaXphYmxlKHRoaXMsIGdyaWRzdGVyLCB0aGlzLnpvbmUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyaWRzdGVyLmFkZEl0ZW0odGhpcyk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snaXRlbSddKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlT3B0aW9ucygpO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmluaXQpIHtcclxuICAgICAgICB0aGlzLmdyaWRzdGVyLmNhbGN1bGF0ZUxheW91dCQubmV4dCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snaXRlbSddICYmIGNoYW5nZXNbJ2l0ZW0nXS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2V0U2l6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlT3B0aW9ucygpOiB2b2lkIHtcclxuICAgIHRoaXMuJGl0ZW0gPSBHcmlkc3RlclV0aWxzLm1lcmdlKHRoaXMuJGl0ZW0sIHRoaXMuaXRlbSwge1xyXG4gICAgICBjb2xzOiB1bmRlZmluZWQsXHJcbiAgICAgIHJvd3M6IHVuZGVmaW5lZCxcclxuICAgICAgeDogdW5kZWZpbmVkLFxyXG4gICAgICB5OiB1bmRlZmluZWQsXHJcbiAgICAgIGxheWVySW5kZXg6IHVuZGVmaW5lZCxcclxuICAgICAgZHJhZ0VuYWJsZWQ6IHVuZGVmaW5lZCxcclxuICAgICAgcmVzaXplRW5hYmxlZDogdW5kZWZpbmVkLFxyXG4gICAgICBjb21wYWN0RW5hYmxlZDogdW5kZWZpbmVkLFxyXG4gICAgICBtYXhJdGVtUm93czogdW5kZWZpbmVkLFxyXG4gICAgICBtaW5JdGVtUm93czogdW5kZWZpbmVkLFxyXG4gICAgICBtYXhJdGVtQ29sczogdW5kZWZpbmVkLFxyXG4gICAgICBtaW5JdGVtQ29sczogdW5kZWZpbmVkLFxyXG4gICAgICBtYXhJdGVtQXJlYTogdW5kZWZpbmVkLFxyXG4gICAgICBtaW5JdGVtQXJlYTogdW5kZWZpbmVkLFxyXG4gICAgICByZXNpemFibGVIYW5kbGVzOiB7XHJcbiAgICAgICAgczogdW5kZWZpbmVkLFxyXG4gICAgICAgIGU6IHVuZGVmaW5lZCxcclxuICAgICAgICBuOiB1bmRlZmluZWQsXHJcbiAgICAgICAgdzogdW5kZWZpbmVkLFxyXG4gICAgICAgIHNlOiB1bmRlZmluZWQsXHJcbiAgICAgICAgbmU6IHVuZGVmaW5lZCxcclxuICAgICAgICBzdzogdW5kZWZpbmVkLFxyXG4gICAgICAgIG53OiB1bmRlZmluZWRcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JpZHN0ZXIucmVtb3ZlSXRlbSh0aGlzKTtcclxuICAgIHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbSA9IG51bGw7XHJcbiAgICB0aGlzLmRyYWcuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5yZXNpemUuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5ncmlkc3RlciA9IHRoaXMuZHJhZyA9IHRoaXMucmVzaXplID0gbnVsbCE7XHJcbiAgfVxyXG5cclxuICBzZXRTaXplKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLCAnZGlzcGxheScsIHRoaXMubm90UGxhY2VkID8gJycgOiAnYmxvY2snKTtcclxuICAgIHRoaXMuZ3JpZHN0ZXIuZ3JpZFJlbmRlcmVyLnVwZGF0ZUl0ZW0odGhpcy5lbCwgdGhpcy4kaXRlbSwgdGhpcy5yZW5kZXJlcik7XHJcbiAgICB0aGlzLnVwZGF0ZUl0ZW1TaXplKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVJdGVtU2l6ZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHRvcCA9IHRoaXMuJGl0ZW0ueSAqIHRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0O1xyXG4gICAgY29uc3QgbGVmdCA9IHRoaXMuJGl0ZW0ueCAqIHRoaXMuZ3JpZHN0ZXIuY3VyQ29sV2lkdGg7XHJcbiAgICBjb25zdCB3aWR0aCA9XHJcbiAgICAgIHRoaXMuJGl0ZW0uY29scyAqIHRoaXMuZ3JpZHN0ZXIuY3VyQ29sV2lkdGggLVxyXG4gICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLm1hcmdpbjtcclxuICAgIGNvbnN0IGhlaWdodCA9XHJcbiAgICAgIHRoaXMuJGl0ZW0ucm93cyAqIHRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0IC1cclxuICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW47XHJcblxyXG4gICAgdGhpcy50b3AgPSB0b3A7XHJcbiAgICB0aGlzLmxlZnQgPSBsZWZ0O1xyXG5cclxuICAgIGlmICghdGhpcy5pbml0ICYmIHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwKSB7XHJcbiAgICAgIHRoaXMuaW5pdCA9IHRydWU7XHJcbiAgICAgIGlmICh0aGlzLml0ZW0uaW5pdENhbGxiYWNrKSB7XHJcbiAgICAgICAgdGhpcy5pdGVtLmluaXRDYWxsYmFjayh0aGlzLml0ZW0sIHRoaXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbUluaXRDYWxsYmFjaykge1xyXG4gICAgICAgIHRoaXMuaXRlbS5jdXJSb3dIZWlnaHQgPSB0aGlzLmdyaWRzdGVyLmN1clJvd0hlaWdodDtcclxuICAgICAgICB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbUluaXRDYWxsYmFjayh0aGlzLml0ZW0sIHRoaXMpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaXRlbUluaXQubmV4dCh7IGl0ZW06IHRoaXMuaXRlbSwgaXRlbUNvbXBvbmVudDogdGhpcyB9KTtcclxuICAgICAgaWYgKHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuc2Nyb2xsVG9OZXdJdGVtcykge1xyXG4gICAgICAgIHRoaXMuZWwuc2Nyb2xsSW50b1ZpZXcoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAod2lkdGggIT09IHRoaXMud2lkdGggfHwgaGVpZ2h0ICE9PSB0aGlzLmhlaWdodCkge1xyXG4gICAgICB0aGlzLndpZHRoID0gd2lkdGg7XHJcbiAgICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICBpZiAodGhpcy5ncmlkc3Rlci5vcHRpb25zLml0ZW1SZXNpemVDYWxsYmFjaykge1xyXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5pdGVtUmVzaXplQ2FsbGJhY2sodGhpcy5pdGVtLCB0aGlzKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLml0ZW1SZXNpemUubmV4dCh7IGl0ZW06IHRoaXMuaXRlbSwgaXRlbUNvbXBvbmVudDogdGhpcyB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGl0ZW1DaGFuZ2VkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5pdGVtQ2hhbmdlQ2FsbGJhY2spIHtcclxuICAgICAgdGhpcy5pdGVtLmN1clJvd0hlaWdodCA9IHRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0O1xyXG4gICAgICB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbUNoYW5nZUNhbGxiYWNrKHRoaXMuaXRlbSwgdGhpcyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLml0ZW1DaGFuZ2UubmV4dCh7IGl0ZW06IHRoaXMuaXRlbSwgaXRlbUNvbXBvbmVudDogdGhpcyB9KTtcclxuICB9XHJcblxyXG4gIGNoZWNrSXRlbUNoYW5nZXMobmV3VmFsdWU6IEdyaWRzdGVySXRlbSwgb2xkVmFsdWU6IEdyaWRzdGVySXRlbSk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICBuZXdWYWx1ZS5yb3dzID09PSBvbGRWYWx1ZS5yb3dzICYmXHJcbiAgICAgIG5ld1ZhbHVlLmNvbHMgPT09IG9sZFZhbHVlLmNvbHMgJiZcclxuICAgICAgbmV3VmFsdWUueCA9PT0gb2xkVmFsdWUueCAmJlxyXG4gICAgICBuZXdWYWx1ZS55ID09PSBvbGRWYWx1ZS55XHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIuY2hlY2tDb2xsaXNpb24odGhpcy4kaXRlbSkpIHtcclxuICAgICAgdGhpcy4kaXRlbS54ID0gb2xkVmFsdWUueCB8fCAwO1xyXG4gICAgICB0aGlzLiRpdGVtLnkgPSBvbGRWYWx1ZS55IHx8IDA7XHJcbiAgICAgIHRoaXMuJGl0ZW0uY29scyA9IG9sZFZhbHVlLmNvbHMgfHwgMTtcclxuICAgICAgdGhpcy4kaXRlbS5yb3dzID0gb2xkVmFsdWUucm93cyB8fCAxO1xyXG4gICAgICB0aGlzLnNldFNpemUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXRlbS5jb2xzID0gdGhpcy4kaXRlbS5jb2xzO1xyXG4gICAgICB0aGlzLml0ZW0ucm93cyA9IHRoaXMuJGl0ZW0ucm93cztcclxuICAgICAgdGhpcy5pdGVtLnggPSB0aGlzLiRpdGVtLng7XHJcbiAgICAgIHRoaXMuaXRlbS55ID0gdGhpcy4kaXRlbS55O1xyXG4gICAgICB0aGlzLmdyaWRzdGVyLmNhbGN1bGF0ZUxheW91dCQubmV4dCgpO1xyXG4gICAgICB0aGlzLml0ZW1DaGFuZ2VkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYW5CZURyYWdnZWQoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBncmlkRHJhZ0VuYWJsZWQgPSB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmRyYWdnYWJsZS5lbmFibGVkO1xyXG4gICAgY29uc3QgaXRlbURyYWdFbmFibGVkID1cclxuICAgICAgdGhpcy4kaXRlbS5kcmFnRW5hYmxlZCA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyBncmlkRHJhZ0VuYWJsZWRcclxuICAgICAgICA6IHRoaXMuJGl0ZW0uZHJhZ0VuYWJsZWQ7XHJcbiAgICByZXR1cm4gIXRoaXMuZ3JpZHN0ZXIubW9iaWxlICYmIGdyaWREcmFnRW5hYmxlZCAmJiBpdGVtRHJhZ0VuYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBjYW5CZVJlc2l6ZWQoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBncmlkUmVzaXphYmxlID0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5yZXNpemFibGUuZW5hYmxlZDtcclxuICAgIGNvbnN0IGl0ZW1SZXNpemFibGUgPVxyXG4gICAgICB0aGlzLiRpdGVtLnJlc2l6ZUVuYWJsZWQgPT09IHVuZGVmaW5lZFxyXG4gICAgICAgID8gZ3JpZFJlc2l6YWJsZVxyXG4gICAgICAgIDogdGhpcy4kaXRlbS5yZXNpemVFbmFibGVkO1xyXG4gICAgcmV0dXJuICF0aGlzLmdyaWRzdGVyLm1vYmlsZSAmJiBncmlkUmVzaXphYmxlICYmIGl0ZW1SZXNpemFibGU7XHJcbiAgfVxyXG5cclxuICBnZXRSZXNpemFibGVIYW5kbGVzKCkge1xyXG4gICAgY29uc3QgZ3JpZFJlc2l6YWJsZUhhbmRsZXMgPSB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLnJlc2l6YWJsZS5oYW5kbGVzO1xyXG4gICAgY29uc3QgaXRlbVJlc2l6YWJsZUhhbmRsZXMgPSB0aGlzLiRpdGVtLnJlc2l6YWJsZUhhbmRsZXM7XHJcbiAgICAvLyB1c2UgZ3JpZCBzZXR0aW5ncyBpZiBubyBzZXR0aW5ncyBhcmUgcHJvdmlkZWQgZm9yIHRoZSBpdGVtLlxyXG4gICAgaWYgKGl0ZW1SZXNpemFibGVIYW5kbGVzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIGdyaWRSZXNpemFibGVIYW5kbGVzO1xyXG4gICAgfVxyXG4gICAgLy8gZWxzZSBtZXJnZSB0aGUgc2V0dGluZ3NcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLmdyaWRSZXNpemFibGVIYW5kbGVzLFxyXG4gICAgICAuLi5pdGVtUmVzaXphYmxlSGFuZGxlc1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGJyaW5nVG9Gcm9udChvZmZzZXQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKG9mZnNldCAmJiBvZmZzZXQgPD0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBsYXllckluZGV4ID0gdGhpcy5nZXRMYXllckluZGV4KCk7XHJcbiAgICBjb25zdCB0b3BJbmRleCA9IHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMubWF4TGF5ZXJJbmRleDtcclxuICAgIGlmIChsYXllckluZGV4IDwgdG9wSW5kZXgpIHtcclxuICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBvZmZzZXQgPyBsYXllckluZGV4ICsgb2Zmc2V0IDogdG9wSW5kZXg7XHJcbiAgICAgIHRoaXMuaXRlbS5sYXllckluZGV4ID0gdGhpcy4kaXRlbS5sYXllckluZGV4ID1cclxuICAgICAgICB0YXJnZXRJbmRleCA+IHRvcEluZGV4ID8gdG9wSW5kZXggOiB0YXJnZXRJbmRleDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbmRUb0JhY2sob2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChvZmZzZXQgJiYgb2Zmc2V0IDw9IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbGF5ZXJJbmRleCA9IHRoaXMuZ2V0TGF5ZXJJbmRleCgpO1xyXG4gICAgaWYgKGxheWVySW5kZXggPiAwKSB7XHJcbiAgICAgIGNvbnN0IHRhcmdldEluZGV4ID0gb2Zmc2V0ID8gbGF5ZXJJbmRleCAtIG9mZnNldCA6IDA7XHJcbiAgICAgIHRoaXMuaXRlbS5sYXllckluZGV4ID0gdGhpcy4kaXRlbS5sYXllckluZGV4ID1cclxuICAgICAgICB0YXJnZXRJbmRleCA8IDAgPyAwIDogdGFyZ2V0SW5kZXg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldExheWVySW5kZXgoKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLml0ZW0ubGF5ZXJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLml0ZW0ubGF5ZXJJbmRleDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmRlZmF1bHRMYXllckluZGV4ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZGVmYXVsdExheWVySW5kZXg7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48ZGl2XHJcbiAgKG1vdXNlZG93bik9XCJyZXNpemUuZHJhZ1N0YXJ0RGVsYXkoJGV2ZW50KVwiXHJcbiAgKHRvdWNoc3RhcnQpPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxyXG4gICpuZ0lmPVwicmVzaXplLnJlc2l6YWJsZUhhbmRsZXM/LnMgJiYgcmVzaXplLnJlc2l6ZUVuYWJsZWRcIlxyXG4gIGNsYXNzPVwiZ3JpZHN0ZXItaXRlbS1yZXNpemFibGUtaGFuZGxlciBoYW5kbGUtc1wiXHJcbj48L2Rpdj5cclxuPGRpdlxyXG4gIChtb3VzZWRvd24pPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxyXG4gICh0b3VjaHN0YXJ0KT1cInJlc2l6ZS5kcmFnU3RhcnREZWxheSgkZXZlbnQpXCJcclxuICAqbmdJZj1cInJlc2l6ZS5yZXNpemFibGVIYW5kbGVzPy5lICYmIHJlc2l6ZS5yZXNpemVFbmFibGVkXCJcclxuICBjbGFzcz1cImdyaWRzdGVyLWl0ZW0tcmVzaXphYmxlLWhhbmRsZXIgaGFuZGxlLWVcIlxyXG4+PC9kaXY+XHJcbjxkaXZcclxuICAobW91c2Vkb3duKT1cInJlc2l6ZS5kcmFnU3RhcnREZWxheSgkZXZlbnQpXCJcclxuICAodG91Y2hzdGFydCk9XCJyZXNpemUuZHJhZ1N0YXJ0RGVsYXkoJGV2ZW50KVwiXHJcbiAgKm5nSWY9XCJyZXNpemUucmVzaXphYmxlSGFuZGxlcz8ubiAmJiByZXNpemUucmVzaXplRW5hYmxlZFwiXHJcbiAgY2xhc3M9XCJncmlkc3Rlci1pdGVtLXJlc2l6YWJsZS1oYW5kbGVyIGhhbmRsZS1uXCJcclxuPjwvZGl2PlxyXG48ZGl2XHJcbiAgKG1vdXNlZG93bik9XCJyZXNpemUuZHJhZ1N0YXJ0RGVsYXkoJGV2ZW50KVwiXHJcbiAgKHRvdWNoc3RhcnQpPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxyXG4gICpuZ0lmPVwicmVzaXplLnJlc2l6YWJsZUhhbmRsZXM/LncgJiYgcmVzaXplLnJlc2l6ZUVuYWJsZWRcIlxyXG4gIGNsYXNzPVwiZ3JpZHN0ZXItaXRlbS1yZXNpemFibGUtaGFuZGxlciBoYW5kbGUtd1wiXHJcbj48L2Rpdj5cclxuPGRpdlxyXG4gIChtb3VzZWRvd24pPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxyXG4gICh0b3VjaHN0YXJ0KT1cInJlc2l6ZS5kcmFnU3RhcnREZWxheSgkZXZlbnQpXCJcclxuICAqbmdJZj1cInJlc2l6ZS5yZXNpemFibGVIYW5kbGVzPy5zZSAmJiByZXNpemUucmVzaXplRW5hYmxlZFwiXHJcbiAgY2xhc3M9XCJncmlkc3Rlci1pdGVtLXJlc2l6YWJsZS1oYW5kbGVyIGhhbmRsZS1zZVwiXHJcbj48L2Rpdj5cclxuPGRpdlxyXG4gIChtb3VzZWRvd24pPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxyXG4gICh0b3VjaHN0YXJ0KT1cInJlc2l6ZS5kcmFnU3RhcnREZWxheSgkZXZlbnQpXCJcclxuICAqbmdJZj1cInJlc2l6ZS5yZXNpemFibGVIYW5kbGVzPy5uZSAmJiByZXNpemUucmVzaXplRW5hYmxlZFwiXHJcbiAgY2xhc3M9XCJncmlkc3Rlci1pdGVtLXJlc2l6YWJsZS1oYW5kbGVyIGhhbmRsZS1uZVwiXHJcbj48L2Rpdj5cclxuPGRpdlxyXG4gIChtb3VzZWRvd24pPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxyXG4gICh0b3VjaHN0YXJ0KT1cInJlc2l6ZS5kcmFnU3RhcnREZWxheSgkZXZlbnQpXCJcclxuICAqbmdJZj1cInJlc2l6ZS5yZXNpemFibGVIYW5kbGVzPy5zdyAmJiByZXNpemUucmVzaXplRW5hYmxlZFwiXHJcbiAgY2xhc3M9XCJncmlkc3Rlci1pdGVtLXJlc2l6YWJsZS1oYW5kbGVyIGhhbmRsZS1zd1wiXHJcbj48L2Rpdj5cclxuPGRpdlxyXG4gIChtb3VzZWRvd24pPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxyXG4gICh0b3VjaHN0YXJ0KT1cInJlc2l6ZS5kcmFnU3RhcnREZWxheSgkZXZlbnQpXCJcclxuICAqbmdJZj1cInJlc2l6ZS5yZXNpemFibGVIYW5kbGVzPy5udyAmJiByZXNpemUucmVzaXplRW5hYmxlZFwiXHJcbiAgY2xhc3M9XCJncmlkc3Rlci1pdGVtLXJlc2l6YWJsZS1oYW5kbGVyIGhhbmRsZS1ud1wiXHJcbj48L2Rpdj5cclxuIl19
@@ -1,3 +0,0 @@
1
- export class GridsterItemComponentInterface {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJJdGVtLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhLWRhc2hib2FyZC1mcmFtZXdvcmsvc3JjL2dyaWRzdGVyL2xpYi9ncmlkc3Rlckl0ZW0uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBZ0IsOEJBQThCO0NBK0JuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyaWRzdGVyRHJhZ2dhYmxlIH0gZnJvbSAnLi9ncmlkc3RlckRyYWdnYWJsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdyaWRzdGVyUmVzaXphYmxlIH0gZnJvbSAnLi9ncmlkc3RlclJlc2l6YWJsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3JpZHN0ZXJDb21wb25lbnRJbnRlcmZhY2UgfSBmcm9tICcuL2dyaWRzdGVyLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlIHtcclxuICBpdGVtITogR3JpZHN0ZXJJdGVtO1xyXG4gICRpdGVtITogR3JpZHN0ZXJJdGVtO1xyXG4gIHRvcCE6IG51bWJlcjtcclxuICBsZWZ0ITogbnVtYmVyO1xyXG4gIHdpZHRoITogbnVtYmVyO1xyXG4gIGhlaWdodCE6IG51bWJlcjtcclxuICBkcmFnITogR3JpZHN0ZXJEcmFnZ2FibGU7XHJcbiAgcmVzaXplITogR3JpZHN0ZXJSZXNpemFibGU7XHJcbiAgbm90UGxhY2VkITogYm9vbGVhbjtcclxuICB1cGRhdGVPcHRpb25zITogKCkgPT4gdm9pZDtcclxuICBpdGVtQ2hhbmdlZCE6ICgpID0+IHZvaWQ7XHJcbiAgc2V0U2l6ZSE6ICgpID0+IHZvaWQ7XHJcbiAgY2hlY2tJdGVtQ2hhbmdlcyE6IChuZXdWYWx1ZTogR3JpZHN0ZXJJdGVtLCBvbGRWYWx1ZTogR3JpZHN0ZXJJdGVtKSA9PiB2b2lkO1xyXG4gIGNhbkJlRHJhZ2dlZCE6ICgpID0+IGJvb2xlYW47XHJcbiAgY2FuQmVSZXNpemVkITogKCkgPT4gYm9vbGVhbjtcclxuICBnZXRSZXNpemFibGVIYW5kbGVzITogKCkgPT4ge1xyXG4gICAgczogYm9vbGVhbjtcclxuICAgIGU6IGJvb2xlYW47XHJcbiAgICBuOiBib29sZWFuO1xyXG4gICAgdzogYm9vbGVhbjtcclxuICAgIHNlOiBib29sZWFuO1xyXG4gICAgbmU6IGJvb2xlYW47XHJcbiAgICBzdzogYm9vbGVhbjtcclxuICAgIG53OiBib29sZWFuO1xyXG4gIH07XHJcbiAgYnJpbmdUb0Zyb250ITogKG9mZnNldDogbnVtYmVyKSA9PiB2b2lkO1xyXG4gIHNlbmRUb0JhY2shOiAodjogbnVtYmVyKSA9PiB2b2lkO1xyXG4gIGVsITogSFRNTEVsZW1lbnQ7XHJcbiAgZ3JpZHN0ZXIhOiBHcmlkc3RlckNvbXBvbmVudEludGVyZmFjZTtcclxuICByZW5kZXJlciE6IFJlbmRlcmVyMjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHcmlkc3Rlckl0ZW0ge1xyXG4gIHg6IG51bWJlcjtcclxuICB5OiBudW1iZXI7XHJcbiAgcm93czogbnVtYmVyO1xyXG4gIGNvbHM6IG51bWJlcjtcclxuICBsYXllckluZGV4PzogbnVtYmVyO1xyXG4gIGluaXRDYWxsYmFjaz86IChcclxuICAgIGl0ZW06IEdyaWRzdGVySXRlbSxcclxuICAgIGl0ZW1Db21wb25lbnQ6IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZVxyXG4gICkgPT4gdm9pZDtcclxuICBkcmFnRW5hYmxlZD86IGJvb2xlYW47XHJcbiAgcmVzaXplRW5hYmxlZD86IGJvb2xlYW47XHJcbiAgcmVzaXphYmxlSGFuZGxlcz86IHtcclxuICAgIHM/OiBib29sZWFuO1xyXG4gICAgZT86IGJvb2xlYW47XHJcbiAgICBuPzogYm9vbGVhbjtcclxuICAgIHc/OiBib29sZWFuO1xyXG4gICAgc2U/OiBib29sZWFuO1xyXG4gICAgbmU/OiBib29sZWFuO1xyXG4gICAgc3c/OiBib29sZWFuO1xyXG4gICAgbnc/OiBib29sZWFuO1xyXG4gIH07XHJcbiAgY29tcGFjdEVuYWJsZWQ/OiBib29sZWFuO1xyXG4gIG1heEl0ZW1Sb3dzPzogbnVtYmVyO1xyXG4gIG1pbkl0ZW1Sb3dzPzogbnVtYmVyO1xyXG4gIG1heEl0ZW1Db2xzPzogbnVtYmVyO1xyXG4gIG1pbkl0ZW1Db2xzPzogbnVtYmVyO1xyXG4gIG1pbkl0ZW1BcmVhPzogbnVtYmVyO1xyXG4gIG1heEl0ZW1BcmVhPzogbnVtYmVyO1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIFtwcm9wTmFtZTogc3RyaW5nXTogYW55O1xyXG5cclxuICAvL2N1c3RvbSBkZWZpbmVkXHJcbiAgY3VyUm93SGVpZ2h0PzpudW1iZXI7XHJcbiAgd2lkZ2V0SGVpZ2h0PzpudW1iZXI7XHJcbiAgd2lkZ2V0SW5mbz86YW55O1xyXG59XHJcbiJdfQ==