@schneideress/dashboardframework 13.0.0 → 17.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +7 -7
  2. package/esm2022/gridster/index.mjs +12 -0
  3. package/esm2022/gridster/lib/gridster.component.mjs +627 -0
  4. package/esm2022/gridster/lib/gridster.interface.mjs +3 -0
  5. package/esm2022/gridster/lib/gridster.module.mjs +17 -0
  6. package/esm2022/gridster/lib/gridsterCompact.service.mjs +126 -0
  7. package/esm2022/gridster/lib/gridsterConfig.constant.mjs +118 -0
  8. package/esm2022/gridster/lib/gridsterConfig.interface.mjs +37 -0
  9. package/esm2022/gridster/lib/gridsterConfigS.interface.mjs +2 -0
  10. package/esm2022/gridster/lib/gridsterDraggable.service.mjs +405 -0
  11. package/esm2022/gridster/lib/gridsterEmptyCell.service.mjs +255 -0
  12. package/esm2022/gridster/lib/gridsterItem.component.mjs +228 -0
  13. package/esm2022/gridster/lib/gridsterItem.interface.mjs +3 -0
  14. package/esm2022/gridster/lib/gridsterPreview.component.mjs +36 -0
  15. package/esm2022/gridster/lib/gridsterPush.service.mjs +316 -0
  16. package/esm2022/gridster/lib/gridsterPushResize.service.mjs +225 -0
  17. package/esm2022/gridster/lib/gridsterRenderer.interface.mjs +2 -0
  18. package/esm2022/gridster/lib/gridsterRenderer.service.mjs +274 -0
  19. package/esm2022/gridster/lib/gridsterResizable.service.mjs +470 -0
  20. package/esm2022/gridster/lib/gridsterResizeEventType.interface.mjs +2 -0
  21. package/esm2022/gridster/lib/gridsterScroll.service.mjs +134 -0
  22. package/esm2022/gridster/lib/gridsterSwap.service.mjs +87 -0
  23. package/esm2022/gridster/lib/gridsterUtils.service.mjs +92 -0
  24. package/esm2022/lib/custom.notifier.options.mjs +41 -0
  25. package/esm2022/lib/ra-dashboard-area/ra.dashboard.area.mjs +460 -0
  26. package/esm2022/lib/ra-widget-container/lock-tooltip/lock.tooltip.component.mjs +43 -0
  27. package/esm2022/lib/ra-widget-container/ra.widget.container.component.mjs +767 -0
  28. package/esm2022/lib/ra.base.dashboard.filter.mjs +41 -0
  29. package/esm2022/lib/ra.base.dashboard.template.mjs +33 -0
  30. package/esm2022/lib/ra.dashbard.event.bus.mjs +46 -0
  31. package/esm2022/lib/ra.dashboard.module.mjs +55 -0
  32. package/esm2022/lib/ra.dashboard.responsive.service.mjs +139 -0
  33. package/esm2022/lib/ra.dashboard.service.mjs +77 -0
  34. package/esm2022/lib/ra.event.enum.mjs +60 -0
  35. package/esm2022/lib/ra.gridster.config.mjs +56 -0
  36. package/esm2022/public-api.mjs +13 -0
  37. package/esm2022/schneideress-dashboardframework.mjs +5 -0
  38. package/fesm2022/schneideress-dashboardframework.mjs +5198 -0
  39. package/fesm2022/schneideress-dashboardframework.mjs.map +1 -0
  40. package/gridster/index.d.ts +9 -0
  41. package/gridster/lib/gridster.component.d.ts +79 -0
  42. package/gridster/lib/gridster.interface.d.ts +49 -0
  43. package/gridster/lib/gridster.module.d.ts +8 -0
  44. package/gridster/lib/gridsterCompact.service.d.ts +11 -0
  45. package/gridster/lib/gridsterConfig.constant.d.ts +2 -0
  46. package/gridster/lib/gridsterConfig.interface.d.ts +155 -0
  47. package/gridster/lib/gridsterConfigS.interface.d.ts +107 -0
  48. package/gridster/lib/gridsterDraggable.service.d.ts +68 -0
  49. package/gridster/lib/gridsterEmptyCell.service.d.ts +31 -0
  50. package/gridster/lib/gridsterItem.component.d.ts +61 -0
  51. package/gridster/lib/gridsterItem.interface.d.ts +67 -0
  52. package/gridster/lib/gridsterPreview.component.d.ts +17 -0
  53. package/gridster/lib/gridsterPush.service.d.ts +34 -0
  54. package/gridster/lib/gridsterPushResize.service.d.ts +26 -0
  55. package/gridster/lib/gridsterRenderer.interface.d.ts +14 -0
  56. package/gridster/lib/gridsterRenderer.service.d.ts +37 -0
  57. package/gridster/lib/gridsterResizable.service.d.ts +86 -0
  58. package/gridster/lib/gridsterResizeEventType.interface.d.ts +6 -0
  59. package/gridster/lib/gridsterScroll.service.d.ts +7 -0
  60. package/gridster/lib/gridsterSwap.service.d.ts +13 -0
  61. package/gridster/lib/gridsterUtils.service.d.ts +16 -0
  62. package/{schneideress-dashboardframework.d.ts → index.d.ts} +5 -5
  63. package/lib/custom.notifier.options.d.ts +2 -2
  64. package/lib/ra-dashboard-area/ra.dashboard.area.d.ts +88 -88
  65. package/lib/ra-widget-container/lock-tooltip/lock.tooltip.component.d.ts +20 -20
  66. package/lib/ra-widget-container/ra.widget.container.component.d.ts +142 -142
  67. package/lib/ra.base.dashboard.filter.d.ts +17 -17
  68. package/lib/ra.base.dashboard.template.d.ts +18 -18
  69. package/lib/ra.dashbard.event.bus.d.ts +23 -23
  70. package/lib/ra.dashboard.module.d.ts +16 -17
  71. package/lib/ra.dashboard.responsive.service.d.ts +24 -24
  72. package/lib/ra.dashboard.service.d.ts +25 -25
  73. package/lib/ra.event.enum.d.ts +57 -57
  74. package/lib/ra.gridster.config.d.ts +2 -2
  75. package/package.json +11 -17
  76. package/public-api.d.ts +9 -9
  77. package/esm2020/lib/custom.notifier.options.mjs +0 -41
  78. package/esm2020/lib/ra-dashboard-area/ra.dashboard.area.mjs +0 -445
  79. package/esm2020/lib/ra-widget-container/lock-tooltip/lock.tooltip.component.mjs +0 -43
  80. package/esm2020/lib/ra-widget-container/ra.widget.container.component.mjs +0 -767
  81. package/esm2020/lib/ra.base.dashboard.filter.mjs +0 -44
  82. package/esm2020/lib/ra.base.dashboard.template.mjs +0 -36
  83. package/esm2020/lib/ra.dashbard.event.bus.mjs +0 -46
  84. package/esm2020/lib/ra.dashboard.module.mjs +0 -64
  85. package/esm2020/lib/ra.dashboard.responsive.service.mjs +0 -136
  86. package/esm2020/lib/ra.dashboard.service.mjs +0 -77
  87. package/esm2020/lib/ra.event.enum.mjs +0 -60
  88. package/esm2020/lib/ra.gridster.config.mjs +0 -56
  89. package/esm2020/public-api.mjs +0 -15
  90. package/esm2020/schneideress-dashboardframework.mjs +0 -5
  91. package/fesm2015/schneideress-dashboardframework.mjs +0 -1800
  92. package/fesm2015/schneideress-dashboardframework.mjs.map +0 -1
  93. package/fesm2020/schneideress-dashboardframework.mjs +0 -1790
  94. package/fesm2020/schneideress-dashboardframework.mjs.map +0 -1
@@ -0,0 +1,255 @@
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==
@@ -0,0 +1,228 @@
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.drag.destroy();
74
+ this.resize.destroy();
75
+ this.gridster = this.drag = this.resize = null;
76
+ }
77
+ setSize() {
78
+ this.renderer.setStyle(this.el, 'display', this.notPlaced ? '' : 'block');
79
+ this.gridster.gridRenderer.updateItem(this.el, this.$item, this.renderer);
80
+ this.updateItemSize();
81
+ }
82
+ updateItemSize() {
83
+ const top = this.$item.y * this.gridster.curRowHeight;
84
+ const left = this.$item.x * this.gridster.curColWidth;
85
+ const width = this.$item.cols * this.gridster.curColWidth -
86
+ this.gridster.$options.margin;
87
+ const height = this.$item.rows * this.gridster.curRowHeight -
88
+ this.gridster.$options.margin;
89
+ this.top = top;
90
+ this.left = left;
91
+ if (!this.init && width > 0 && height > 0) {
92
+ this.init = true;
93
+ if (this.item.initCallback) {
94
+ this.item.initCallback(this.item, this);
95
+ }
96
+ if (this.gridster.options.itemInitCallback) {
97
+ this.gridster.options.itemInitCallback(this.item, this);
98
+ }
99
+ this.itemInit.next({ item: this.item, itemComponent: this });
100
+ if (this.gridster.$options.scrollToNewItems) {
101
+ this.el.scrollIntoView(false);
102
+ }
103
+ }
104
+ if (width !== this.width || height !== this.height) {
105
+ this.width = width;
106
+ this.height = height;
107
+ if (this.gridster.options.itemResizeCallback) {
108
+ this.gridster.options.itemResizeCallback(this.item, this);
109
+ }
110
+ this.itemResize.next({ item: this.item, itemComponent: this });
111
+ }
112
+ }
113
+ itemChanged() {
114
+ if (this.gridster.options.itemChangeCallback) {
115
+ this.gridster.options.itemChangeCallback(this.item, this);
116
+ }
117
+ this.itemChange.next({ item: this.item, itemComponent: this });
118
+ }
119
+ checkItemChanges(newValue, oldValue) {
120
+ if (newValue.rows === oldValue.rows &&
121
+ newValue.cols === oldValue.cols &&
122
+ newValue.x === oldValue.x &&
123
+ newValue.y === oldValue.y) {
124
+ return;
125
+ }
126
+ if (this.gridster.checkCollision(this.$item)) {
127
+ this.$item.x = oldValue.x || 0;
128
+ this.$item.y = oldValue.y || 0;
129
+ this.$item.cols = oldValue.cols || 1;
130
+ this.$item.rows = oldValue.rows || 1;
131
+ this.setSize();
132
+ }
133
+ else {
134
+ this.item.cols = this.$item.cols;
135
+ this.item.rows = this.$item.rows;
136
+ this.item.x = this.$item.x;
137
+ this.item.y = this.$item.y;
138
+ this.gridster.calculateLayout$.next();
139
+ this.itemChanged();
140
+ }
141
+ }
142
+ canBeDragged() {
143
+ const gridDragEnabled = this.gridster.$options.draggable.enabled;
144
+ const itemDragEnabled = this.$item.dragEnabled === undefined
145
+ ? gridDragEnabled
146
+ : this.$item.dragEnabled;
147
+ return !this.gridster.mobile && gridDragEnabled && itemDragEnabled;
148
+ }
149
+ canBeResized() {
150
+ const gridResizable = this.gridster.$options.resizable.enabled;
151
+ const itemResizable = this.$item.resizeEnabled === undefined
152
+ ? gridResizable
153
+ : this.$item.resizeEnabled;
154
+ return !this.gridster.mobile && gridResizable && itemResizable;
155
+ }
156
+ getResizableHandles() {
157
+ const gridResizableHandles = this.gridster.$options.resizable.handles;
158
+ const itemResizableHandles = this.$item.resizableHandles;
159
+ // use grid settings if no settings are provided for the item.
160
+ if (itemResizableHandles === undefined) {
161
+ return gridResizableHandles;
162
+ }
163
+ // else merge the settings
164
+ return {
165
+ ...gridResizableHandles,
166
+ ...itemResizableHandles
167
+ };
168
+ }
169
+ bringToFront(offset) {
170
+ if (offset && offset <= 0) {
171
+ return;
172
+ }
173
+ const layerIndex = this.getLayerIndex();
174
+ const topIndex = this.gridster.$options.maxLayerIndex;
175
+ if (layerIndex < topIndex) {
176
+ const targetIndex = offset ? layerIndex + offset : topIndex;
177
+ this.item.layerIndex = this.$item.layerIndex =
178
+ targetIndex > topIndex ? topIndex : targetIndex;
179
+ }
180
+ }
181
+ sendToBack(offset) {
182
+ if (offset && offset <= 0) {
183
+ return;
184
+ }
185
+ const layerIndex = this.getLayerIndex();
186
+ if (layerIndex > 0) {
187
+ const targetIndex = offset ? layerIndex - offset : 0;
188
+ this.item.layerIndex = this.$item.layerIndex =
189
+ targetIndex < 0 ? 0 : targetIndex;
190
+ }
191
+ }
192
+ getLayerIndex() {
193
+ if (this.item.layerIndex !== undefined) {
194
+ return this.item.layerIndex;
195
+ }
196
+ if (this.gridster.$options.defaultLayerIndex !== undefined) {
197
+ return this.gridster.$options.defaultLayerIndex;
198
+ }
199
+ return 0;
200
+ }
201
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterItemComponent, deps: [{ token: ElementRef }, { token: i1.GridsterComponent }, { token: Renderer2 }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
202
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", 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 }); }
203
+ }
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterItemComponent, decorators: [{
205
+ type: Component,
206
+ 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"] }]
207
+ }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
208
+ type: Inject,
209
+ args: [ElementRef]
210
+ }] }, { type: i1.GridsterComponent }, { type: i0.Renderer2, decorators: [{
211
+ type: Inject,
212
+ args: [Renderer2]
213
+ }] }, { type: i0.NgZone, decorators: [{
214
+ type: Inject,
215
+ args: [NgZone]
216
+ }] }], propDecorators: { item: [{
217
+ type: Input
218
+ }], itemInit: [{
219
+ type: Output
220
+ }], itemChange: [{
221
+ type: Output
222
+ }], itemResize: [{
223
+ type: Output
224
+ }], zIndex: [{
225
+ type: HostBinding,
226
+ args: ['style.z-index']
227
+ }] } });
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJJdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhLWRhc2hib2FyZC1mcmFtZXdvcmsvc3JjL2dyaWRzdGVyL2xpYi9ncmlkc3Rlckl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmEtZGFzaGJvYXJkLWZyYW1ld29yay9zcmMvZ3JpZHN0ZXIvbGliL2dyaWRzdGVySXRlbS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUlOLE1BQU0sRUFDTixTQUFTLEVBRVQsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBS2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBVXhELE1BQU0sT0FBTyxxQkFBcUI7SUE0QmhDLElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsWUFDc0IsRUFBYyxFQUNsQyxRQUEyQixFQUNELFFBQW1CLEVBQ3JCLElBQVk7UUFEVixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQVE7UUFqQzVCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFHakMsQ0FBQztRQUNLLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFHbkMsQ0FBQztRQUNLLGVBQVUsR0FB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LENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7Z0JBQzFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDM0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDOzhHQW5QVSxxQkFBcUIsa0JBa0N0QixVQUFVLDhDQUVWLFNBQVMsYUFDVCxNQUFNO2tHQXJDTCxxQkFBcUIseVFDbkNsQyx1OERBaURBLDI1Q0RoQlksSUFBSTs7MkZBRUgscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLGVBQWUsaUJBR1YsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1AsQ0FBQyxJQUFJLENBQUM7OzBCQW9DWixNQUFNOzJCQUFDLFVBQVU7OzBCQUVqQixNQUFNOzJCQUFDLFNBQVM7OzBCQUNoQixNQUFNOzJCQUFDLE1BQU07eUNBbENQLElBQUk7c0JBQVosS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUlHLFVBQVU7c0JBQW5CLE1BQU07Z0JBSUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFpQkgsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgR3JpZHN0ZXJDb21wb25lbnQgfSBmcm9tICcuL2dyaWRzdGVyLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBHcmlkc3RlckRyYWdnYWJsZSB9IGZyb20gJy4vZ3JpZHN0ZXJEcmFnZ2FibGUuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgR3JpZHN0ZXJJdGVtLFxyXG4gIEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZVxyXG59IGZyb20gJy4vZ3JpZHN0ZXJJdGVtLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEdyaWRzdGVyUmVzaXphYmxlIH0gZnJvbSAnLi9ncmlkc3RlclJlc2l6YWJsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3JpZHN0ZXJVdGlscyB9IGZyb20gJy4vZ3JpZHN0ZXJVdGlscy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZ3JpZHN0ZXItaXRlbScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWRzdGVySXRlbS5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ncmlkc3Rlckl0ZW0uY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtOZ0lmXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JpZHN0ZXJJdGVtQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2Vcclxue1xyXG4gIEBJbnB1dCgpIGl0ZW0hOiBHcmlkc3Rlckl0ZW07XHJcbiAgQE91dHB1dCgpIGl0ZW1Jbml0ID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBpdGVtOiBHcmlkc3Rlckl0ZW07XHJcbiAgICBpdGVtQ29tcG9uZW50OiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2U7XHJcbiAgfT4oKTtcclxuICBAT3V0cHV0KCkgaXRlbUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgaXRlbTogR3JpZHN0ZXJJdGVtO1xyXG4gICAgaXRlbUNvbXBvbmVudDogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlO1xyXG4gIH0+KCk7XHJcbiAgQE91dHB1dCgpIGl0ZW1SZXNpemUgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGl0ZW06IEdyaWRzdGVySXRlbTtcclxuICAgIGl0ZW1Db21wb25lbnQ6IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZTtcclxuICB9PigpO1xyXG4gICRpdGVtOiBHcmlkc3Rlckl0ZW07XHJcbiAgZWw6IEhUTUxFbGVtZW50O1xyXG4gIGdyaWRzdGVyOiBHcmlkc3RlckNvbXBvbmVudDtcclxuICB0b3AhOiBudW1iZXI7XHJcbiAgbGVmdCE6IG51bWJlcjtcclxuICB3aWR0aCE6IG51bWJlcjtcclxuICBoZWlnaHQhOiBudW1iZXI7XHJcbiAgZHJhZzogR3JpZHN0ZXJEcmFnZ2FibGU7XHJcbiAgcmVzaXplOiBHcmlkc3RlclJlc2l6YWJsZTtcclxuICBub3RQbGFjZWQhOiBib29sZWFuO1xyXG4gIGluaXQhOiBib29sZWFuO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLnotaW5kZXgnKVxyXG4gIGdldCB6SW5kZXgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmdldExheWVySW5kZXgoKSArIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuYmFzZUxheWVySW5kZXg7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoRWxlbWVudFJlZikgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBncmlkc3RlcjogR3JpZHN0ZXJDb21wb25lbnQsXHJcbiAgICBASW5qZWN0KFJlbmRlcmVyMikgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBASW5qZWN0KE5nWm9uZSkgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcclxuICApIHtcclxuICAgIHRoaXMuZWwgPSBlbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy4kaXRlbSA9IHtcclxuICAgICAgY29sczogLTEsXHJcbiAgICAgIHJvd3M6IC0xLFxyXG4gICAgICB4OiAtMSxcclxuICAgICAgeTogLTFcclxuICAgIH07XHJcbiAgICB0aGlzLmdyaWRzdGVyID0gZ3JpZHN0ZXI7XHJcbiAgICB0aGlzLmRyYWcgPSBuZXcgR3JpZHN0ZXJEcmFnZ2FibGUodGhpcywgZ3JpZHN0ZXIsIHRoaXMuem9uZSk7XHJcbiAgICB0aGlzLnJlc2l6ZSA9IG5ldyBHcmlkc3RlclJlc2l6YWJsZSh0aGlzLCBncmlkc3RlciwgdGhpcy56b25lKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncmlkc3Rlci5hZGRJdGVtKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMuaXRlbSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZU9wdGlvbnMoKTtcclxuXHJcbiAgICAgIGlmICghdGhpcy5pbml0KSB7XHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci5jYWxjdWxhdGVMYXlvdXQkLm5leHQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXMuaXRlbSAmJiBjaGFuZ2VzLml0ZW0ucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICB0aGlzLnNldFNpemUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZU9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLiRpdGVtID0gR3JpZHN0ZXJVdGlscy5tZXJnZSh0aGlzLiRpdGVtLCB0aGlzLml0ZW0sIHtcclxuICAgICAgY29sczogdW5kZWZpbmVkLFxyXG4gICAgICByb3dzOiB1bmRlZmluZWQsXHJcbiAgICAgIHg6IHVuZGVmaW5lZCxcclxuICAgICAgeTogdW5kZWZpbmVkLFxyXG4gICAgICBsYXllckluZGV4OiB1bmRlZmluZWQsXHJcbiAgICAgIGRyYWdFbmFibGVkOiB1bmRlZmluZWQsXHJcbiAgICAgIHJlc2l6ZUVuYWJsZWQ6IHVuZGVmaW5lZCxcclxuICAgICAgY29tcGFjdEVuYWJsZWQ6IHVuZGVmaW5lZCxcclxuICAgICAgbWF4SXRlbVJvd3M6IHVuZGVmaW5lZCxcclxuICAgICAgbWluSXRlbVJvd3M6IHVuZGVmaW5lZCxcclxuICAgICAgbWF4SXRlbUNvbHM6IHVuZGVmaW5lZCxcclxuICAgICAgbWluSXRlbUNvbHM6IHVuZGVmaW5lZCxcclxuICAgICAgbWF4SXRlbUFyZWE6IHVuZGVmaW5lZCxcclxuICAgICAgbWluSXRlbUFyZWE6IHVuZGVmaW5lZCxcclxuICAgICAgcmVzaXphYmxlSGFuZGxlczoge1xyXG4gICAgICAgIHM6IHVuZGVmaW5lZCxcclxuICAgICAgICBlOiB1bmRlZmluZWQsXHJcbiAgICAgICAgbjogdW5kZWZpbmVkLFxyXG4gICAgICAgIHc6IHVuZGVmaW5lZCxcclxuICAgICAgICBzZTogdW5kZWZpbmVkLFxyXG4gICAgICAgIG5lOiB1bmRlZmluZWQsXHJcbiAgICAgICAgc3c6IHVuZGVmaW5lZCxcclxuICAgICAgICBudzogdW5kZWZpbmVkXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyaWRzdGVyLnJlbW92ZUl0ZW0odGhpcyk7XHJcbiAgICB0aGlzLmRyYWcuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5yZXNpemUuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5ncmlkc3RlciA9IHRoaXMuZHJhZyA9IHRoaXMucmVzaXplID0gbnVsbCE7XHJcbiAgfVxyXG5cclxuICBzZXRTaXplKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLCAnZGlzcGxheScsIHRoaXMubm90UGxhY2VkID8gJycgOiAnYmxvY2snKTtcclxuICAgIHRoaXMuZ3JpZHN0ZXIuZ3JpZFJlbmRlcmVyLnVwZGF0ZUl0ZW0odGhpcy5lbCwgdGhpcy4kaXRlbSwgdGhpcy5yZW5kZXJlcik7XHJcbiAgICB0aGlzLnVwZGF0ZUl0ZW1TaXplKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVJdGVtU2l6ZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHRvcCA9IHRoaXMuJGl0ZW0ueSAqIHRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0O1xyXG4gICAgY29uc3QgbGVmdCA9IHRoaXMuJGl0ZW0ueCAqIHRoaXMuZ3JpZHN0ZXIuY3VyQ29sV2lkdGg7XHJcbiAgICBjb25zdCB3aWR0aCA9XHJcbiAgICAgIHRoaXMuJGl0ZW0uY29scyAqIHRoaXMuZ3JpZHN0ZXIuY3VyQ29sV2lkdGggLVxyXG4gICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLm1hcmdpbjtcclxuICAgIGNvbnN0IGhlaWdodCA9XHJcbiAgICAgIHRoaXMuJGl0ZW0ucm93cyAqIHRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0IC1cclxuICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW47XHJcblxyXG4gICAgdGhpcy50b3AgPSB0b3A7XHJcbiAgICB0aGlzLmxlZnQgPSBsZWZ0O1xyXG5cclxuICAgIGlmICghdGhpcy5pbml0ICYmIHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwKSB7XHJcbiAgICAgIHRoaXMuaW5pdCA9IHRydWU7XHJcbiAgICAgIGlmICh0aGlzLml0ZW0uaW5pdENhbGxiYWNrKSB7XHJcbiAgICAgICAgdGhpcy5pdGVtLmluaXRDYWxsYmFjayh0aGlzLml0ZW0sIHRoaXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbUluaXRDYWxsYmFjaykge1xyXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5pdGVtSW5pdENhbGxiYWNrKHRoaXMuaXRlbSwgdGhpcyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pdGVtSW5pdC5uZXh0KHsgaXRlbTogdGhpcy5pdGVtLCBpdGVtQ29tcG9uZW50OiB0aGlzIH0pO1xyXG4gICAgICBpZiAodGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5zY3JvbGxUb05ld0l0ZW1zKSB7XHJcbiAgICAgICAgdGhpcy5lbC5zY3JvbGxJbnRvVmlldyhmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh3aWR0aCAhPT0gdGhpcy53aWR0aCB8fCBoZWlnaHQgIT09IHRoaXMuaGVpZ2h0KSB7XHJcbiAgICAgIHRoaXMud2lkdGggPSB3aWR0aDtcclxuICAgICAgdGhpcy5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICAgIGlmICh0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbVJlc2l6ZUNhbGxiYWNrKSB7XHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci5vcHRpb25zLml0ZW1SZXNpemVDYWxsYmFjayh0aGlzLml0ZW0sIHRoaXMpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaXRlbVJlc2l6ZS5uZXh0KHsgaXRlbTogdGhpcy5pdGVtLCBpdGVtQ29tcG9uZW50OiB0aGlzIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXRlbUNoYW5nZWQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5ncmlkc3Rlci5vcHRpb25zLml0ZW1DaGFuZ2VDYWxsYmFjaykge1xyXG4gICAgICB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbUNoYW5nZUNhbGxiYWNrKHRoaXMuaXRlbSwgdGhpcyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLml0ZW1DaGFuZ2UubmV4dCh7IGl0ZW06IHRoaXMuaXRlbSwgaXRlbUNvbXBvbmVudDogdGhpcyB9KTtcclxuICB9XHJcblxyXG4gIGNoZWNrSXRlbUNoYW5nZXMobmV3VmFsdWU6IEdyaWRzdGVySXRlbSwgb2xkVmFsdWU6IEdyaWRzdGVySXRlbSk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICBuZXdWYWx1ZS5yb3dzID09PSBvbGRWYWx1ZS5yb3dzICYmXHJcbiAgICAgIG5ld1ZhbHVlLmNvbHMgPT09IG9sZFZhbHVlLmNvbHMgJiZcclxuICAgICAgbmV3VmFsdWUueCA9PT0gb2xkVmFsdWUueCAmJlxyXG4gICAgICBuZXdWYWx1ZS55ID09PSBvbGRWYWx1ZS55XHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIuY2hlY2tDb2xsaXNpb24odGhpcy4kaXRlbSkpIHtcclxuICAgICAgdGhpcy4kaXRlbS54ID0gb2xkVmFsdWUueCB8fCAwO1xyXG4gICAgICB0aGlzLiRpdGVtLnkgPSBvbGRWYWx1ZS55IHx8IDA7XHJcbiAgICAgIHRoaXMuJGl0ZW0uY29scyA9IG9sZFZhbHVlLmNvbHMgfHwgMTtcclxuICAgICAgdGhpcy4kaXRlbS5yb3dzID0gb2xkVmFsdWUucm93cyB8fCAxO1xyXG4gICAgICB0aGlzLnNldFNpemUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXRlbS5jb2xzID0gdGhpcy4kaXRlbS5jb2xzO1xyXG4gICAgICB0aGlzLml0ZW0ucm93cyA9IHRoaXMuJGl0ZW0ucm93cztcclxuICAgICAgdGhpcy5pdGVtLnggPSB0aGlzLiRpdGVtLng7XHJcbiAgICAgIHRoaXMuaXRlbS55ID0gdGhpcy4kaXRlbS55O1xyXG4gICAgICB0aGlzLmdyaWRzdGVyLmNhbGN1bGF0ZUxheW91dCQubmV4dCgpO1xyXG4gICAgICB0aGlzLml0ZW1DaGFuZ2VkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYW5CZURyYWdnZWQoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBncmlkRHJhZ0VuYWJsZWQgPSB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmRyYWdnYWJsZS5lbmFibGVkO1xyXG4gICAgY29uc3QgaXRlbURyYWdFbmFibGVkID1cclxuICAgICAgdGhpcy4kaXRlbS5kcmFnRW5hYmxlZCA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyBncmlkRHJhZ0VuYWJsZWRcclxuICAgICAgICA6IHRoaXMuJGl0ZW0uZHJhZ0VuYWJsZWQ7XHJcbiAgICByZXR1cm4gIXRoaXMuZ3JpZHN0ZXIubW9iaWxlICYmIGdyaWREcmFnRW5hYmxlZCAmJiBpdGVtRHJhZ0VuYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBjYW5CZVJlc2l6ZWQoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBncmlkUmVzaXphYmxlID0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5yZXNpemFibGUuZW5hYmxlZDtcclxuICAgIGNvbnN0IGl0ZW1SZXNpemFibGUgPVxyXG4gICAgICB0aGlzLiRpdGVtLnJlc2l6ZUVuYWJsZWQgPT09IHVuZGVmaW5lZFxyXG4gICAgICAgID8gZ3JpZFJlc2l6YWJsZVxyXG4gICAgICAgIDogdGhpcy4kaXRlbS5yZXNpemVFbmFibGVkO1xyXG4gICAgcmV0dXJuICF0aGlzLmdyaWRzdGVyLm1vYmlsZSAmJiBncmlkUmVzaXphYmxlICYmIGl0ZW1SZXNpemFibGU7XHJcbiAgfVxyXG5cclxuICBnZXRSZXNpemFibGVIYW5kbGVzKCkge1xyXG4gICAgY29uc3QgZ3JpZFJlc2l6YWJsZUhhbmRsZXMgPSB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLnJlc2l6YWJsZS5oYW5kbGVzO1xyXG4gICAgY29uc3QgaXRlbVJlc2l6YWJsZUhhbmRsZXMgPSB0aGlzLiRpdGVtLnJlc2l6YWJsZUhhbmRsZXM7XHJcbiAgICAvLyB1c2UgZ3JpZCBzZXR0aW5ncyBpZiBubyBzZXR0aW5ncyBhcmUgcHJvdmlkZWQgZm9yIHRoZSBpdGVtLlxyXG4gICAgaWYgKGl0ZW1SZXNpemFibGVIYW5kbGVzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIGdyaWRSZXNpemFibGVIYW5kbGVzO1xyXG4gICAgfVxyXG4gICAgLy8gZWxzZSBtZXJnZSB0aGUgc2V0dGluZ3NcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLmdyaWRSZXNpemFibGVIYW5kbGVzLFxyXG4gICAgICAuLi5pdGVtUmVzaXphYmxlSGFuZGxlc1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGJyaW5nVG9Gcm9udChvZmZzZXQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKG9mZnNldCAmJiBvZmZzZXQgPD0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBsYXllckluZGV4ID0gdGhpcy5nZXRMYXllckluZGV4KCk7XHJcbiAgICBjb25zdCB0b3BJbmRleCA9IHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMubWF4TGF5ZXJJbmRleDtcclxuICAgIGlmIChsYXllckluZGV4IDwgdG9wSW5kZXgpIHtcclxuICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBvZmZzZXQgPyBsYXllckluZGV4ICsgb2Zmc2V0IDogdG9wSW5kZXg7XHJcbiAgICAgIHRoaXMuaXRlbS5sYXllckluZGV4ID0gdGhpcy4kaXRlbS5sYXllckluZGV4ID1cclxuICAgICAgICB0YXJnZXRJbmRleCA+IHRvcEluZGV4ID8gdG9wSW5kZXggOiB0YXJnZXRJbmRleDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbmRUb0JhY2sob2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChvZmZzZXQgJiYgb2Zmc2V0IDw9IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbGF5ZXJJbmRleCA9IHRoaXMuZ2V0TGF5ZXJJbmRleCgpO1xyXG4gICAgaWYgKGxheWVySW5kZXggPiAwKSB7XHJcbiAgICAgIGNvbnN0IHRhcmdldEluZGV4ID0gb2Zmc2V0ID8gbGF5ZXJJbmRleCAtIG9mZnNldCA6IDA7XHJcbiAgICAgIHRoaXMuaXRlbS5sYXllckluZGV4ID0gdGhpcy4kaXRlbS5sYXllckluZGV4ID1cclxuICAgICAgICB0YXJnZXRJbmRleCA8IDAgPyAwIDogdGFyZ2V0SW5kZXg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldExheWVySW5kZXgoKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLml0ZW0ubGF5ZXJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLml0ZW0ubGF5ZXJJbmRleDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmRlZmF1bHRMYXllckluZGV4ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZGVmYXVsdExheWVySW5kZXg7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48ZGl2XHJcbiAgKG1vdXNlZG93bik9XCJyZXNpemUuZHJhZ1N0YXJ0RGVsYXkoJGV2ZW50KVwiXHJcbiAgKHRvdWNoc3RhcnQpPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxyXG4gICpuZ0lmPVwicmVzaXplLnJlc2l6YWJsZUhhbmRsZXM/LnMgJiYgcmVzaXplLnJlc2l6ZUVuYWJsZWRcIlxyXG4gIGNsYXNzPVwiZ3JpZHN0ZXItaXRlbS1yZXNpemFibGUtaGFuZGxlciBoYW5kbGUtc1wiXHJcbj48L2Rpdj5cclxuPGRpdlxyXG4gIChtb3VzZWRvd24pPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxyXG4gICh0b3VjaHN0YXJ0KT1cInJlc2l6ZS5kcmFnU3RhcnREZWxheSgkZXZlbnQpXCJcclxuICAqbmdJZj1cInJlc2l6ZS5yZXNpemFibGVIYW5kbGVzPy5lICYmIHJlc2l6ZS5yZXNpemVFbmFibGVkXCJcclxuICBjbGFzcz1cImdyaWRzdGVyLWl0ZW0tcmVzaXphYmxlLWhhbmRsZXIgaGFuZGxlLWVcIlxyXG4+PC9kaXY+XHJcbjxkaXZcclxuICAobW91c2Vkb3duKT1cInJlc2l6ZS5kcmFnU3RhcnREZWxheSgkZXZlbnQpXCJcclxuICAodG91Y2hzdGFydCk9XCJyZXNpemUuZHJhZ1N0YXJ0RGVsYXkoJGV2ZW50KVwiXHJcbiAgKm5nSWY9XCJyZXNpemUucmVzaXphYmxlSGFuZGxlcz8ubiAmJiByZXNpemUucmVzaXplRW5hYmxlZFwiXHJcbiAgY2xhc3M9XCJncmlkc3Rlci1pdGVtLXJlc2l6YWJsZS1oYW5kbGVyIGhhbmRsZS1uXCJcclxuPjwvZGl2PlxyXG48ZGl2XHJcbiAgKG1vdXNlZG93bik9XCJyZXNpemUuZHJhZ1N0YXJ0RGVsYXkoJGV2ZW50KVwiXHJcbiAgKHRvdWNoc3RhcnQpPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxyXG4gICpuZ0lmPVwicmVzaXplLnJlc2l6YWJsZUhhbmRsZXM/LncgJiYgcmVzaXplLnJlc2l6ZUVuYWJsZWRcIlxyXG4gIGNsYXNzPVwiZ3JpZHN0ZXItaXRlbS1yZXNpemFibGUtaGFuZGxlciBoYW5kbGUtd1wiXHJcbj48L2Rpdj5cclxuPGRpdlxyXG4gIChtb3VzZWRvd24pPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxyXG4gICh0b3VjaHN0YXJ0KT1cInJlc2l6ZS5kcmFnU3RhcnREZWxheSgkZXZlbnQpXCJcclxuICAqbmdJZj1cInJlc2l6ZS5yZXNpemFibGVIYW5kbGVzPy5zZSAmJiByZXNpemUucmVzaXplRW5hYmxlZFwiXHJcbiAgY2xhc3M9XCJncmlkc3Rlci1pdGVtLXJlc2l6YWJsZS1oYW5kbGVyIGhhbmRsZS1zZVwiXHJcbj48L2Rpdj5cclxuPGRpdlxyXG4gIChtb3VzZWRvd24pPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxyXG4gICh0b3VjaHN0YXJ0KT1cInJlc2l6ZS5kcmFnU3RhcnREZWxheSgkZXZlbnQpXCJcclxuICAqbmdJZj1cInJlc2l6ZS5yZXNpemFibGVIYW5kbGVzPy5uZSAmJiByZXNpemUucmVzaXplRW5hYmxlZFwiXHJcbiAgY2xhc3M9XCJncmlkc3Rlci1pdGVtLXJlc2l6YWJsZS1oYW5kbGVyIGhhbmRsZS1uZVwiXHJcbj48L2Rpdj5cclxuPGRpdlxyXG4gIChtb3VzZWRvd24pPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxyXG4gICh0b3VjaHN0YXJ0KT1cInJlc2l6ZS5kcmFnU3RhcnREZWxheSgkZXZlbnQpXCJcclxuICAqbmdJZj1cInJlc2l6ZS5yZXNpemFibGVIYW5kbGVzPy5zdyAmJiByZXNpemUucmVzaXplRW5hYmxlZFwiXHJcbiAgY2xhc3M9XCJncmlkc3Rlci1pdGVtLXJlc2l6YWJsZS1oYW5kbGVyIGhhbmRsZS1zd1wiXHJcbj48L2Rpdj5cclxuPGRpdlxyXG4gIChtb3VzZWRvd24pPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxyXG4gICh0b3VjaHN0YXJ0KT1cInJlc2l6ZS5kcmFnU3RhcnREZWxheSgkZXZlbnQpXCJcclxuICAqbmdJZj1cInJlc2l6ZS5yZXNpemFibGVIYW5kbGVzPy5udyAmJiByZXNpemUucmVzaXplRW5hYmxlZFwiXHJcbiAgY2xhc3M9XCJncmlkc3Rlci1pdGVtLXJlc2l6YWJsZS1oYW5kbGVyIGhhbmRsZS1ud1wiXHJcbj48L2Rpdj5cclxuIl19
@@ -0,0 +1,3 @@
1
+ export class GridsterItemComponentInterface {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJJdGVtLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhLWRhc2hib2FyZC1mcmFtZXdvcmsvc3JjL2dyaWRzdGVyL2xpYi9ncmlkc3Rlckl0ZW0uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBZ0IsOEJBQThCO0NBK0JuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyaWRzdGVyRHJhZ2dhYmxlIH0gZnJvbSAnLi9ncmlkc3RlckRyYWdnYWJsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdyaWRzdGVyUmVzaXphYmxlIH0gZnJvbSAnLi9ncmlkc3RlclJlc2l6YWJsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3JpZHN0ZXJDb21wb25lbnRJbnRlcmZhY2UgfSBmcm9tICcuL2dyaWRzdGVyLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlIHtcclxuICBpdGVtITogR3JpZHN0ZXJJdGVtO1xyXG4gICRpdGVtITogR3JpZHN0ZXJJdGVtO1xyXG4gIHRvcCE6IG51bWJlcjtcclxuICBsZWZ0ITogbnVtYmVyO1xyXG4gIHdpZHRoITogbnVtYmVyO1xyXG4gIGhlaWdodCE6IG51bWJlcjtcclxuICBkcmFnITogR3JpZHN0ZXJEcmFnZ2FibGU7XHJcbiAgcmVzaXplITogR3JpZHN0ZXJSZXNpemFibGU7XHJcbiAgbm90UGxhY2VkITogYm9vbGVhbjtcclxuICB1cGRhdGVPcHRpb25zITogKCkgPT4gdm9pZDtcclxuICBpdGVtQ2hhbmdlZCE6ICgpID0+IHZvaWQ7XHJcbiAgc2V0U2l6ZSE6ICgpID0+IHZvaWQ7XHJcbiAgY2hlY2tJdGVtQ2hhbmdlcyE6IChuZXdWYWx1ZTogR3JpZHN0ZXJJdGVtLCBvbGRWYWx1ZTogR3JpZHN0ZXJJdGVtKSA9PiB2b2lkO1xyXG4gIGNhbkJlRHJhZ2dlZCE6ICgpID0+IGJvb2xlYW47XHJcbiAgY2FuQmVSZXNpemVkITogKCkgPT4gYm9vbGVhbjtcclxuICBnZXRSZXNpemFibGVIYW5kbGVzITogKCkgPT4ge1xyXG4gICAgczogYm9vbGVhbjtcclxuICAgIGU6IGJvb2xlYW47XHJcbiAgICBuOiBib29sZWFuO1xyXG4gICAgdzogYm9vbGVhbjtcclxuICAgIHNlOiBib29sZWFuO1xyXG4gICAgbmU6IGJvb2xlYW47XHJcbiAgICBzdzogYm9vbGVhbjtcclxuICAgIG53OiBib29sZWFuO1xyXG4gIH07XHJcbiAgYnJpbmdUb0Zyb250ITogKG9mZnNldDogbnVtYmVyKSA9PiB2b2lkO1xyXG4gIHNlbmRUb0JhY2shOiAodjogbnVtYmVyKSA9PiB2b2lkO1xyXG4gIGVsITogSFRNTEVsZW1lbnQ7XHJcbiAgZ3JpZHN0ZXIhOiBHcmlkc3RlckNvbXBvbmVudEludGVyZmFjZTtcclxuICByZW5kZXJlciE6IFJlbmRlcmVyMjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHcmlkc3Rlckl0ZW0ge1xyXG4gIHg6IG51bWJlcjtcclxuICB5OiBudW1iZXI7XHJcbiAgcm93czogbnVtYmVyO1xyXG4gIGNvbHM6IG51bWJlcjtcclxuICBsYXllckluZGV4PzogbnVtYmVyO1xyXG4gIGluaXRDYWxsYmFjaz86IChcclxuICAgIGl0ZW06IEdyaWRzdGVySXRlbSxcclxuICAgIGl0ZW1Db21wb25lbnQ6IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZVxyXG4gICkgPT4gdm9pZDtcclxuICBkcmFnRW5hYmxlZD86IGJvb2xlYW47XHJcbiAgcmVzaXplRW5hYmxlZD86IGJvb2xlYW47XHJcbiAgcmVzaXphYmxlSGFuZGxlcz86IHtcclxuICAgIHM/OiBib29sZWFuO1xyXG4gICAgZT86IGJvb2xlYW47XHJcbiAgICBuPzogYm9vbGVhbjtcclxuICAgIHc/OiBib29sZWFuO1xyXG4gICAgc2U/OiBib29sZWFuO1xyXG4gICAgbmU/OiBib29sZWFuO1xyXG4gICAgc3c/OiBib29sZWFuO1xyXG4gICAgbnc/OiBib29sZWFuO1xyXG4gIH07XHJcbiAgY29tcGFjdEVuYWJsZWQ/OiBib29sZWFuO1xyXG4gIG1heEl0ZW1Sb3dzPzogbnVtYmVyO1xyXG4gIG1pbkl0ZW1Sb3dzPzogbnVtYmVyO1xyXG4gIG1heEl0ZW1Db2xzPzogbnVtYmVyO1xyXG4gIG1pbkl0ZW1Db2xzPzogbnVtYmVyO1xyXG4gIG1pbkl0ZW1BcmVhPzogbnVtYmVyO1xyXG4gIG1heEl0ZW1BcmVhPzogbnVtYmVyO1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIFtwcm9wTmFtZTogc3RyaW5nXTogYW55O1xyXG5cclxuICAvL2N1c3RvbSBkZWZpbmVkXHJcbiAgY3VyUm93SGVpZ2h0PzpudW1iZXI7XHJcbiAgd2lkZ2V0SGVpZ2h0PzpudW1iZXI7XHJcbiAgd2lkZ2V0SW5mbz86YW55O1xyXG59XHJcbiJdfQ==