@schneideress/dashboardframework 0.0.279 → 17.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/esm2022/gridster/index.mjs +12 -0
- package/esm2022/gridster/lib/gridster.component.mjs +627 -0
- package/esm2022/gridster/lib/gridster.interface.mjs +3 -0
- package/esm2022/gridster/lib/gridster.module.mjs +17 -0
- package/esm2022/gridster/lib/gridsterCompact.service.mjs +126 -0
- package/esm2022/gridster/lib/gridsterConfig.constant.mjs +118 -0
- package/esm2022/gridster/lib/gridsterConfig.interface.mjs +37 -0
- package/esm2022/gridster/lib/gridsterConfigS.interface.mjs +2 -0
- package/esm2022/gridster/lib/gridsterDraggable.service.mjs +405 -0
- package/esm2022/gridster/lib/gridsterEmptyCell.service.mjs +255 -0
- package/esm2022/gridster/lib/gridsterItem.component.mjs +228 -0
- package/esm2022/gridster/lib/gridsterItem.interface.mjs +3 -0
- package/esm2022/gridster/lib/gridsterPreview.component.mjs +36 -0
- package/esm2022/gridster/lib/gridsterPush.service.mjs +316 -0
- package/esm2022/gridster/lib/gridsterPushResize.service.mjs +225 -0
- package/esm2022/gridster/lib/gridsterRenderer.interface.mjs +2 -0
- package/esm2022/gridster/lib/gridsterRenderer.service.mjs +274 -0
- package/esm2022/gridster/lib/gridsterResizable.service.mjs +470 -0
- package/esm2022/gridster/lib/gridsterResizeEventType.interface.mjs +2 -0
- package/esm2022/gridster/lib/gridsterScroll.service.mjs +134 -0
- package/esm2022/gridster/lib/gridsterSwap.service.mjs +87 -0
- package/esm2022/gridster/lib/gridsterUtils.service.mjs +92 -0
- package/esm2022/lib/custom.notifier.options.mjs +41 -0
- package/esm2022/lib/ra-dashboard-area/ra.dashboard.area.mjs +460 -0
- package/esm2022/lib/ra-widget-container/lock-tooltip/lock.tooltip.component.mjs +43 -0
- package/esm2022/lib/ra-widget-container/ra.widget.container.component.mjs +767 -0
- package/esm2022/lib/ra.base.dashboard.filter.mjs +41 -0
- package/esm2022/lib/ra.base.dashboard.template.mjs +33 -0
- package/esm2022/lib/ra.dashbard.event.bus.mjs +46 -0
- package/esm2022/lib/ra.dashboard.module.mjs +55 -0
- package/esm2022/lib/ra.dashboard.responsive.service.mjs +139 -0
- package/esm2022/lib/ra.dashboard.service.mjs +77 -0
- package/esm2022/lib/ra.event.enum.mjs +60 -0
- package/esm2022/lib/ra.gridster.config.mjs +56 -0
- package/esm2022/public-api.mjs +13 -0
- package/esm2022/schneideress-dashboardframework.mjs +5 -0
- package/fesm2022/schneideress-dashboardframework.mjs +5198 -0
- package/fesm2022/schneideress-dashboardframework.mjs.map +1 -0
- package/gridster/index.d.ts +9 -11
- package/gridster/lib/gridster.component.d.ts +79 -67
- package/gridster/lib/gridster.interface.d.ts +49 -46
- package/gridster/lib/gridster.module.d.ts +8 -2
- package/gridster/lib/gridsterCompact.service.d.ts +11 -15
- package/gridster/lib/gridsterConfig.constant.d.ts +2 -2
- package/gridster/lib/gridsterConfig.interface.d.ts +155 -133
- package/gridster/lib/gridsterConfigS.interface.d.ts +107 -93
- package/gridster/lib/gridsterDraggable.service.d.ts +68 -59
- package/gridster/lib/gridsterEmptyCell.service.d.ts +31 -29
- package/gridster/lib/gridsterItem.component.d.ts +61 -32
- package/gridster/lib/gridsterItem.interface.d.ts +64 -21
- package/gridster/lib/gridsterPreview.component.d.ts +17 -10
- package/gridster/lib/gridsterPush.service.d.ts +34 -33
- package/gridster/lib/gridsterPushResize.service.d.ts +26 -26
- package/gridster/lib/gridsterRenderer.interface.d.ts +14 -0
- package/gridster/lib/gridsterRenderer.service.d.ts +37 -38
- package/gridster/lib/gridsterResizable.service.d.ts +86 -67
- package/gridster/lib/gridsterResizeEventType.interface.d.ts +6 -6
- package/gridster/lib/gridsterScroll.service.d.ts +7 -4
- package/gridster/lib/gridsterSwap.service.d.ts +13 -13
- package/gridster/lib/gridsterUtils.service.d.ts +16 -16
- package/index.d.ts +5 -0
- package/lib/custom.notifier.options.d.ts +2 -2
- package/lib/ra-dashboard-area/ra.dashboard.area.d.ts +88 -86
- package/lib/ra-widget-container/lock-tooltip/lock.tooltip.component.d.ts +20 -17
- package/lib/ra-widget-container/ra.widget.container.component.d.ts +142 -140
- package/lib/ra.base.dashboard.filter.d.ts +17 -16
- package/lib/ra.base.dashboard.template.d.ts +18 -16
- package/lib/ra.dashbard.event.bus.d.ts +23 -20
- package/lib/ra.dashboard.module.d.ts +16 -2
- package/lib/ra.dashboard.responsive.service.d.ts +24 -21
- package/lib/ra.dashboard.service.d.ts +25 -23
- package/lib/ra.event.enum.d.ts +57 -57
- package/lib/ra.gridster.config.d.ts +2 -2
- package/package.json +19 -19
- package/public-api.d.ts +9 -9
- package/bundles/schneideress-dashboardframework.umd.js +0 -5103
- package/bundles/schneideress-dashboardframework.umd.js.map +0 -1
- package/bundles/schneideress-dashboardframework.umd.min.js +0 -16
- package/bundles/schneideress-dashboardframework.umd.min.js.map +0 -1
- package/esm2015/gridster/index.js +0 -14
- package/esm2015/gridster/lib/gridster.component.js +0 -471
- package/esm2015/gridster/lib/gridster.interface.js +0 -3
- package/esm2015/gridster/lib/gridster.module.js +0 -25
- package/esm2015/gridster/lib/gridsterCompact.service.js +0 -162
- package/esm2015/gridster/lib/gridsterConfig.constant.js +0 -104
- package/esm2015/gridster/lib/gridsterConfig.interface.js +0 -27
- package/esm2015/gridster/lib/gridsterConfigS.interface.js +0 -1
- package/esm2015/gridster/lib/gridsterDraggable.service.js +0 -351
- package/esm2015/gridster/lib/gridsterEmptyCell.service.js +0 -216
- package/esm2015/gridster/lib/gridsterItem.component.js +0 -141
- package/esm2015/gridster/lib/gridsterItem.interface.js +0 -1
- package/esm2015/gridster/lib/gridsterItemComponent.interface.js +0 -3
- package/esm2015/gridster/lib/gridsterPreview.component.js +0 -45
- package/esm2015/gridster/lib/gridsterPush.service.js +0 -296
- package/esm2015/gridster/lib/gridsterPushResize.service.js +0 -225
- package/esm2015/gridster/lib/gridsterRenderer.service.js +0 -208
- package/esm2015/gridster/lib/gridsterResizable.service.js +0 -368
- package/esm2015/gridster/lib/gridsterResizeEventType.interface.js +0 -1
- package/esm2015/gridster/lib/gridsterScroll.service.js +0 -119
- package/esm2015/gridster/lib/gridsterSwap.service.js +0 -85
- package/esm2015/gridster/lib/gridsterUtils.service.js +0 -89
- package/esm2015/lib/custom.notifier.options.js +0 -41
- package/esm2015/lib/ra-dashboard-area/ra.dashboard.area.js +0 -492
- package/esm2015/lib/ra-widget-container/lock-tooltip/lock.tooltip.component.js +0 -48
- package/esm2015/lib/ra-widget-container/ra.widget.container.component.js +0 -829
- package/esm2015/lib/ra.base.dashboard.filter.js +0 -54
- package/esm2015/lib/ra.base.dashboard.template.js +0 -33
- package/esm2015/lib/ra.dashbard.event.bus.js +0 -46
- package/esm2015/lib/ra.dashboard.module.js +0 -44
- package/esm2015/lib/ra.dashboard.responsive.service.js +0 -140
- package/esm2015/lib/ra.dashboard.service.js +0 -82
- package/esm2015/lib/ra.event.enum.js +0 -60
- package/esm2015/lib/ra.gridster.config.js +0 -56
- package/esm2015/public-api.js +0 -13
- package/esm2015/schneideress-dashboardframework.js +0 -11
- package/esm5/gridster/index.js +0 -14
- package/esm5/gridster/lib/gridster.component.js +0 -474
- package/esm5/gridster/lib/gridster.interface.js +0 -7
- package/esm5/gridster/lib/gridster.module.js +0 -28
- package/esm5/gridster/lib/gridsterCompact.service.js +0 -163
- package/esm5/gridster/lib/gridsterConfig.constant.js +0 -104
- package/esm5/gridster/lib/gridsterConfig.interface.js +0 -27
- package/esm5/gridster/lib/gridsterConfigS.interface.js +0 -1
- package/esm5/gridster/lib/gridsterDraggable.service.js +0 -356
- package/esm5/gridster/lib/gridsterEmptyCell.service.js +0 -220
- package/esm5/gridster/lib/gridsterItem.component.js +0 -142
- package/esm5/gridster/lib/gridsterItem.interface.js +0 -1
- package/esm5/gridster/lib/gridsterItemComponent.interface.js +0 -7
- package/esm5/gridster/lib/gridsterPreview.component.js +0 -46
- package/esm5/gridster/lib/gridsterPush.service.js +0 -297
- package/esm5/gridster/lib/gridsterPushResize.service.js +0 -226
- package/esm5/gridster/lib/gridsterRenderer.service.js +0 -209
- package/esm5/gridster/lib/gridsterResizable.service.js +0 -373
- package/esm5/gridster/lib/gridsterResizeEventType.interface.js +0 -1
- package/esm5/gridster/lib/gridsterScroll.service.js +0 -119
- package/esm5/gridster/lib/gridsterSwap.service.js +0 -86
- package/esm5/gridster/lib/gridsterUtils.service.js +0 -93
- package/esm5/lib/custom.notifier.options.js +0 -41
- package/esm5/lib/ra-dashboard-area/ra.dashboard.area.js +0 -503
- package/esm5/lib/ra-widget-container/lock-tooltip/lock.tooltip.component.js +0 -50
- package/esm5/lib/ra-widget-container/ra.widget.container.component.js +0 -891
- package/esm5/lib/ra.base.dashboard.filter.js +0 -57
- package/esm5/lib/ra.base.dashboard.template.js +0 -36
- package/esm5/lib/ra.dashbard.event.bus.js +0 -47
- package/esm5/lib/ra.dashboard.module.js +0 -47
- package/esm5/lib/ra.dashboard.responsive.service.js +0 -151
- package/esm5/lib/ra.dashboard.service.js +0 -85
- package/esm5/lib/ra.event.enum.js +0 -60
- package/esm5/lib/ra.gridster.config.js +0 -56
- package/esm5/public-api.js +0 -13
- package/esm5/schneideress-dashboardframework.js +0 -11
- package/fesm2015/schneideress-dashboardframework.js +0 -4749
- package/fesm2015/schneideress-dashboardframework.js.map +0 -1
- package/fesm5/schneideress-dashboardframework.js +0 -4883
- package/fesm5/schneideress-dashboardframework.js.map +0 -1
- package/gridster/lib/gridsterItemComponent.interface.d.ts +0 -25
- package/schneideress-dashboardframework.d.ts +0 -10
- package/schneideress-dashboardframework.metadata.json +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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Q0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRSxDQUFDO1lBQ0QsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLENBQUM7aUJBQU0sSUFDTCxPQUFPLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLEVBQy9DLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckUsQ0FBQztRQUNILENBQUM7UUFDRCxJQUNFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsc0JBQXNCO1lBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUNsQyxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyaWRzdGVyVXRpbHMgfSBmcm9tICcuL2dyaWRzdGVyVXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBHcmlkc3RlckNvbXBvbmVudEludGVyZmFjZSB9IGZyb20gJy4vZ3JpZHN0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IEdyaWRzdGVySXRlbSB9IGZyb20gJy4vZ3JpZHN0ZXJJdGVtLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBHcmlkc3RlckVtcHR5Q2VsbCB7XG4gIGluaXRpYWxJdGVtITogR3JpZHN0ZXJJdGVtIHwgbnVsbDtcbiAgcmVtb3ZlRW1wdHlDZWxsQ2xpY2tMaXN0ZW5lckZuITogKCgpID0+IHZvaWQpIHwgbnVsbDtcbiAgcmVtb3ZlRW1wdHlDZWxsVG91Y2hlbmRMaXN0ZW5lckZuITogKCgpID0+IHZvaWQpIHwgbnVsbDtcbiAgcmVtb3ZlRW1wdHlDZWxsQ29udGV4dE1lbnVMaXN0ZW5lckZuITogKCgpID0+IHZvaWQpIHwgbnVsbDtcbiAgcmVtb3ZlRW1wdHlDZWxsRHJvcExpc3RlbmVyRm4hOiAoKCkgPT4gdm9pZCkgfCBudWxsO1xuICByZW1vdmVFbXB0eUNlbGxNb3VzZWRvd25MaXN0ZW5lckZuITogKCgpID0+IHZvaWQpIHwgbnVsbDtcbiAgcmVtb3ZlRW1wdHlDZWxsVG91Y2hzdGFydExpc3RlbmVyRm4hOiAoKCkgPT4gdm9pZCkgfCBudWxsO1xuICByZW1vdmVXaW5kb3dNb3VzZW1vdmVMaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcbiAgcmVtb3ZlV2luZG93VG91Y2htb3ZlTGlzdGVuZXJGbiE6ICgpID0+IHZvaWQ7XG4gIHJlbW92ZVdpbmRvd01vdXNldXBMaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcbiAgcmVtb3ZlV2luZG93VG91Y2hlbmRMaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcbiAgcmVtb3ZlRW1wdHlDZWxsRHJhZ292ZXJMaXN0ZW5lckZuITogKCgpID0+IHZvaWQpIHwgbnVsbDtcbiAgcmVtb3ZlRG9jdW1lbnREcmFnZW5kTGlzdGVuZXJGbiE6ICgoKSA9PiB2b2lkKSB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBncmlkc3RlcjogR3JpZHN0ZXJDb21wb25lbnRJbnRlcmZhY2UpIHt9XG5cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ncmlkc3Rlci5wcmV2aWV3U3R5bGUpIHtcbiAgICAgIHRoaXMuZ3JpZHN0ZXIucHJldmlld1N0eWxlKCk7XG4gICAgfVxuICAgIHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbSA9IG51bGw7XG4gICAgdGhpcy5pbml0aWFsSXRlbSA9IHRoaXMuZ3JpZHN0ZXIgPSBudWxsITtcbiAgICBpZiAodGhpcy5yZW1vdmVEb2N1bWVudERyYWdlbmRMaXN0ZW5lckZuKSB7XG4gICAgICB0aGlzLnJlbW92ZURvY3VtZW50RHJhZ2VuZExpc3RlbmVyRm4oKTtcbiAgICAgIHRoaXMucmVtb3ZlRG9jdW1lbnREcmFnZW5kTGlzdGVuZXJGbiA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlT3B0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVuYWJsZUVtcHR5Q2VsbENsaWNrICYmXG4gICAgICAhdGhpcy5yZW1vdmVFbXB0eUNlbGxDbGlja0xpc3RlbmVyRm4gJiZcbiAgICAgIHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5lbXB0eUNlbGxDbGlja0NhbGxiYWNrXG4gICAgKSB7XG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbENsaWNrTGlzdGVuZXJGbiA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICB0aGlzLmdyaWRzdGVyLmVsLFxuICAgICAgICAnY2xpY2snLFxuICAgICAgICB0aGlzLmVtcHR5Q2VsbENsaWNrQ2JcbiAgICAgICk7XG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbFRvdWNoZW5kTGlzdGVuZXJGbiA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICB0aGlzLmdyaWRzdGVyLmVsLFxuICAgICAgICAndG91Y2hlbmQnLFxuICAgICAgICB0aGlzLmVtcHR5Q2VsbENsaWNrQ2JcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICF0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVuYWJsZUVtcHR5Q2VsbENsaWNrICYmXG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbENsaWNrTGlzdGVuZXJGbiAmJlxuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxUb3VjaGVuZExpc3RlbmVyRm5cbiAgICApIHtcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsQ2xpY2tMaXN0ZW5lckZuKCk7XG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbFRvdWNoZW5kTGlzdGVuZXJGbigpO1xuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxDbGlja0xpc3RlbmVyRm4gPSBudWxsO1xuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxUb3VjaGVuZExpc3RlbmVyRm4gPSBudWxsO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVuYWJsZUVtcHR5Q2VsbENvbnRleHRNZW51ICYmXG4gICAgICAhdGhpcy5yZW1vdmVFbXB0eUNlbGxDb250ZXh0TWVudUxpc3RlbmVyRm4gJiZcbiAgICAgIHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5lbXB0eUNlbGxDb250ZXh0TWVudUNhbGxiYWNrXG4gICAgKSB7XG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbENvbnRleHRNZW51TGlzdGVuZXJGbiA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICB0aGlzLmdyaWRzdGVyLmVsLFxuICAgICAgICAnY29udGV4dG1lbnUnLFxuICAgICAgICB0aGlzLmVtcHR5Q2VsbENvbnRleHRNZW51Q2JcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICF0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVuYWJsZUVtcHR5Q2VsbENvbnRleHRNZW51ICYmXG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbENvbnRleHRNZW51TGlzdGVuZXJGblxuICAgICkge1xuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxDb250ZXh0TWVudUxpc3RlbmVyRm4oKTtcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsQ29udGV4dE1lbnVMaXN0ZW5lckZuID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5lbmFibGVFbXB0eUNlbGxEcm9wICYmXG4gICAgICAhdGhpcy5yZW1vdmVFbXB0eUNlbGxEcm9wTGlzdGVuZXJGbiAmJlxuICAgICAgdGhpcy5ncmlkc3Rlci5vcHRpb25zLmVtcHR5Q2VsbERyb3BDYWxsYmFja1xuICAgICkge1xuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxEcm9wTGlzdGVuZXJGbiA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICB0aGlzLmdyaWRzdGVyLmVsLFxuICAgICAgICAnZHJvcCcsXG4gICAgICAgIHRoaXMuZW1wdHlDZWxsRHJhZ0Ryb3BcbiAgICAgICk7XG4gICAgICB0aGlzLmdyaWRzdGVyLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbERyYWdvdmVyTGlzdGVuZXJGbiA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgIHRoaXMuZ3JpZHN0ZXIuZWwsXG4gICAgICAgICAgJ2RyYWdvdmVyJyxcbiAgICAgICAgICB0aGlzLmVtcHR5Q2VsbERyYWdPdmVyXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMucmVtb3ZlRG9jdW1lbnREcmFnZW5kTGlzdGVuZXJGbiA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAnZG9jdW1lbnQnLFxuICAgICAgICAnZHJhZ2VuZCcsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0gPSBudWxsO1xuICAgICAgICAgIHRoaXMuZ3JpZHN0ZXIucHJldmlld1N0eWxlKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICF0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVuYWJsZUVtcHR5Q2VsbERyb3AgJiZcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsRHJvcExpc3RlbmVyRm4gJiZcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsRHJhZ292ZXJMaXN0ZW5lckZuICYmXG4gICAgICB0aGlzLnJlbW92ZURvY3VtZW50RHJhZ2VuZExpc3RlbmVyRm5cbiAgICApIHtcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsRHJvcExpc3RlbmVyRm4oKTtcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsRHJhZ292ZXJMaXN0ZW5lckZuKCk7XG4gICAgICB0aGlzLnJlbW92ZURvY3VtZW50RHJhZ2VuZExpc3RlbmVyRm4oKTtcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsRHJhZ292ZXJMaXN0ZW5lckZuID0gbnVsbDtcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsRHJvcExpc3RlbmVyRm4gPSBudWxsO1xuICAgICAgdGhpcy5yZW1vdmVEb2N1bWVudERyYWdlbmRMaXN0ZW5lckZuID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5lbmFibGVFbXB0eUNlbGxEcmFnICYmXG4gICAgICAhdGhpcy5yZW1vdmVFbXB0eUNlbGxNb3VzZWRvd25MaXN0ZW5lckZuICYmXG4gICAgICB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuZW1wdHlDZWxsRHJhZ0NhbGxiYWNrXG4gICAgKSB7XG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbE1vdXNlZG93bkxpc3RlbmVyRm4gPSB0aGlzLmdyaWRzdGVyLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgdGhpcy5ncmlkc3Rlci5lbCxcbiAgICAgICAgJ21vdXNlZG93bicsXG4gICAgICAgIHRoaXMuZW1wdHlDZWxsTW91c2VEb3duXG4gICAgICApO1xuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxUb3VjaHN0YXJ0TGlzdGVuZXJGbiA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICB0aGlzLmdyaWRzdGVyLmVsLFxuICAgICAgICAndG91Y2hzdGFydCcsXG4gICAgICAgIHRoaXMuZW1wdHlDZWxsTW91c2VEb3duXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAhdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5lbmFibGVFbXB0eUNlbGxEcmFnICYmXG4gICAgICB0aGlzLnJlbW92ZUVtcHR5Q2VsbE1vdXNlZG93bkxpc3RlbmVyRm4gJiZcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsVG91Y2hzdGFydExpc3RlbmVyRm5cbiAgICApIHtcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsTW91c2Vkb3duTGlzdGVuZXJGbigpO1xuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxUb3VjaHN0YXJ0TGlzdGVuZXJGbigpO1xuICAgICAgdGhpcy5yZW1vdmVFbXB0eUNlbGxNb3VzZWRvd25MaXN0ZW5lckZuID0gbnVsbDtcbiAgICAgIHRoaXMucmVtb3ZlRW1wdHlDZWxsVG91Y2hzdGFydExpc3RlbmVyRm4gPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGVtcHR5Q2VsbENsaWNrQ2IgPSAoZTogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmdyaWRzdGVyIHx8XG4gICAgICB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0gfHxcbiAgICAgIEdyaWRzdGVyVXRpbHMuY2hlY2tDb250ZW50Q2xhc3NGb3JFbXB0eUNlbGxDbGlja0V2ZW50KHRoaXMuZ3JpZHN0ZXIsIGUpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldFZhbGlkSXRlbUZyb21FdmVudChlKTtcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5lbXB0eUNlbGxDbGlja0NhbGxiYWNrKSB7XG4gICAgICB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuZW1wdHlDZWxsQ2xpY2tDYWxsYmFjayhlLCBpdGVtKTtcbiAgICB9XG4gICAgdGhpcy5ncmlkc3Rlci5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcblxuICBlbXB0eUNlbGxDb250ZXh0TWVudUNiID0gKGU6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0gfHxcbiAgICAgIEdyaWRzdGVyVXRpbHMuY2hlY2tDb250ZW50Q2xhc3NGb3JFbXB0eUNlbGxDbGlja0V2ZW50KHRoaXMuZ3JpZHN0ZXIsIGUpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldFZhbGlkSXRlbUZyb21FdmVudChlKTtcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5lbXB0eUNlbGxDb250ZXh0TWVudUNhbGxiYWNrKSB7XG4gICAgICB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuZW1wdHlDZWxsQ29udGV4dE1lbnVDYWxsYmFjayhlLCBpdGVtKTtcbiAgICB9XG4gICAgdGhpcy5ncmlkc3Rlci5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcblxuICBlbXB0eUNlbGxEcmFnRHJvcCA9IChlOiBEcmFnRXZlbnQpOiB2b2lkID0+IHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRWYWxpZEl0ZW1Gcm9tRXZlbnQoZSk7XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmdyaWRzdGVyLm9wdGlvbnMuZW1wdHlDZWxsRHJvcENhbGxiYWNrKSB7XG4gICAgICB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuZW1wdHlDZWxsRHJvcENhbGxiYWNrKGUsIGl0ZW0pO1xuICAgIH1cbiAgICB0aGlzLmdyaWRzdGVyLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9O1xuXG4gIGVtcHR5Q2VsbERyYWdPdmVyID0gKGU6IERyYWdFdmVudCk6IHZvaWQgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldFZhbGlkSXRlbUZyb21FdmVudChlKTtcbiAgICBpZiAoaXRlbSkge1xuICAgICAgaWYgKGUuZGF0YVRyYW5zZmVyKSB7XG4gICAgICAgIGUuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnbW92ZSc7XG4gICAgICB9XG4gICAgICB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0gPSBpdGVtO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZS5kYXRhVHJhbnNmZXIpIHtcbiAgICAgICAgZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdub25lJztcbiAgICAgIH1cbiAgICAgIHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbSA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuZ3JpZHN0ZXIucHJldmlld1N0eWxlKCk7XG4gIH07XG5cbiAgZW1wdHlDZWxsTW91c2VEb3duID0gKGU6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoXG4gICAgICBHcmlkc3RlclV0aWxzLmNoZWNrQ29udGVudENsYXNzRm9yRW1wdHlDZWxsQ2xpY2tFdmVudCh0aGlzLmdyaWRzdGVyLCBlKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRWYWxpZEl0ZW1Gcm9tRXZlbnQoZSk7XG4gICAgY29uc3QgbGVmdE1vdXNlQnV0dG9uQ29kZSA9IDE7XG4gICAgaWYgKFxuICAgICAgIWl0ZW0gfHxcbiAgICAgIChlLmJ1dHRvbnMgIT09IGxlZnRNb3VzZUJ1dHRvbkNvZGUgJiYgIShlIGluc3RhbmNlb2YgVG91Y2hFdmVudCkpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5pdGlhbEl0ZW0gPSBpdGVtO1xuICAgIHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbSA9IGl0ZW07XG4gICAgdGhpcy5ncmlkc3Rlci5wcmV2aWV3U3R5bGUoKTtcbiAgICB0aGlzLmdyaWRzdGVyLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5yZW1vdmVXaW5kb3dNb3VzZW1vdmVMaXN0ZW5lckZuID0gdGhpcy5ncmlkc3Rlci5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICd3aW5kb3cnLFxuICAgICAgICAnbW91c2Vtb3ZlJyxcbiAgICAgICAgdGhpcy5lbXB0eUNlbGxNb3VzZU1vdmVcbiAgICAgICk7XG4gICAgICB0aGlzLnJlbW92ZVdpbmRvd1RvdWNobW92ZUxpc3RlbmVyRm4gPSB0aGlzLmdyaWRzdGVyLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgJ3dpbmRvdycsXG4gICAgICAgICd0b3VjaG1vdmUnLFxuICAgICAgICB0aGlzLmVtcHR5Q2VsbE1vdXNlTW92ZVxuICAgICAgKTtcbiAgICB9KTtcbiAgICB0aGlzLnJlbW92ZVdpbmRvd01vdXNldXBMaXN0ZW5lckZuID0gdGhpcy5ncmlkc3Rlci5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAnd2luZG93JyxcbiAgICAgICdtb3VzZXVwJyxcbiAgICAgIHRoaXMuZW1wdHlDZWxsTW91c2VVcFxuICAgICk7XG4gICAgdGhpcy5yZW1vdmVXaW5kb3dUb3VjaGVuZExpc3RlbmVyRm4gPSB0aGlzLmdyaWRzdGVyLnJlbmRlcmVyLmxpc3RlbihcbiAgICAgICd3aW5kb3cnLFxuICAgICAgJ3RvdWNoZW5kJyxcbiAgICAgIHRoaXMuZW1wdHlDZWxsTW91c2VVcFxuICAgICk7XG4gIH07XG5cbiAgZW1wdHlDZWxsTW91c2VNb3ZlID0gKGU6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRWYWxpZEl0ZW1Gcm9tRXZlbnQoZSwgdGhpcy5pbml0aWFsSXRlbSk7XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtID0gaXRlbTtcbiAgICB0aGlzLmdyaWRzdGVyLnByZXZpZXdTdHlsZSgpO1xuICB9O1xuXG4gIGVtcHR5Q2VsbE1vdXNlVXAgPSAoZTogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMucmVtb3ZlV2luZG93TW91c2Vtb3ZlTGlzdGVuZXJGbigpO1xuICAgIHRoaXMucmVtb3ZlV2luZG93VG91Y2htb3ZlTGlzdGVuZXJGbigpO1xuICAgIHRoaXMucmVtb3ZlV2luZG93TW91c2V1cExpc3RlbmVyRm4oKTtcbiAgICB0aGlzLnJlbW92ZVdpbmRvd1RvdWNoZW5kTGlzdGVuZXJGbigpO1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldFZhbGlkSXRlbUZyb21FdmVudChlLCB0aGlzLmluaXRpYWxJdGVtKTtcbiAgICBpZiAoaXRlbSkge1xuICAgICAgdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtID0gaXRlbTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy5ncmlkc3Rlci5vcHRpb25zLmVtcHR5Q2VsbERyYWdDYWxsYmFjayAmJlxuICAgICAgdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtXG4gICAgKSB7XG4gICAgICB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuZW1wdHlDZWxsRHJhZ0NhbGxiYWNrKGUsIHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbSk7XG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pbml0aWFsSXRlbSA9IG51bGw7XG4gICAgICBpZiAodGhpcy5ncmlkc3Rlcikge1xuICAgICAgICB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0gPSBudWxsO1xuICAgICAgICB0aGlzLmdyaWRzdGVyLnByZXZpZXdTdHlsZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZ3JpZHN0ZXIuY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgZ2V0UGl4ZWxzWChlOiBNb3VzZUV2ZW50LCByZWN0OiBDbGllbnRSZWN0KTogbnVtYmVyIHtcbiAgICBjb25zdCBzY2FsZSA9IHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5zY2FsZTtcbiAgICBpZiAoc2NhbGUpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIChlLmNsaWVudFggLSByZWN0LmxlZnQpIC8gc2NhbGUgK1xuICAgICAgICB0aGlzLmdyaWRzdGVyLmVsLnNjcm9sbExlZnQgLVxuICAgICAgICB0aGlzLmdyaWRzdGVyLmdyaWRSZW5kZXJlci5nZXRMZWZ0TWFyZ2luKClcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICBlLmNsaWVudFggK1xuICAgICAgdGhpcy5ncmlkc3Rlci5lbC5zY3JvbGxMZWZ0IC1cbiAgICAgIHJlY3QubGVmdCAtXG4gICAgICB0aGlzLmdyaWRzdGVyLmdyaWRSZW5kZXJlci5nZXRMZWZ0TWFyZ2luKClcbiAgICApO1xuICB9XG5cbiAgZ2V0UGl4ZWxzWShlOiBNb3VzZUV2ZW50LCByZWN0OiBDbGllbnRSZWN0KTogbnVtYmVyIHtcbiAgICBjb25zdCBzY2FsZSA9IHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5zY2FsZTtcbiAgICBpZiAoc2NhbGUpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIChlLmNsaWVudFkgLSByZWN0LnRvcCkgLyBzY2FsZSArXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIuZWwuc2Nyb2xsVG9wIC1cbiAgICAgICAgdGhpcy5ncmlkc3Rlci5ncmlkUmVuZGVyZXIuZ2V0VG9wTWFyZ2luKClcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICBlLmNsaWVudFkgK1xuICAgICAgdGhpcy5ncmlkc3Rlci5lbC5zY3JvbGxUb3AgLVxuICAgICAgcmVjdC50b3AgLVxuICAgICAgdGhpcy5ncmlkc3Rlci5ncmlkUmVuZGVyZXIuZ2V0VG9wTWFyZ2luKClcbiAgICApO1xuICB9XG5cbiAgZ2V0VmFsaWRJdGVtRnJvbUV2ZW50KFxuICAgIGU6IE1vdXNlRXZlbnQsXG4gICAgb2xkSXRlbT86IEdyaWRzdGVySXRlbSB8IG51bGxcbiAgKTogR3JpZHN0ZXJJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBHcmlkc3RlclV0aWxzLmNoZWNrVG91Y2hFdmVudChlKTtcbiAgICBjb25zdCByZWN0ID0gdGhpcy5ncmlkc3Rlci5lbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB4ID0gdGhpcy5nZXRQaXhlbHNYKGUsIHJlY3QpO1xuICAgIGNvbnN0IHkgPSB0aGlzLmdldFBpeGVsc1koZSwgcmVjdCk7XG4gICAgY29uc3QgaXRlbTogR3JpZHN0ZXJJdGVtID0ge1xuICAgICAgeDogdGhpcy5ncmlkc3Rlci5waXhlbHNUb1Bvc2l0aW9uWCh4LCBNYXRoLmZsb29yLCB0cnVlKSxcbiAgICAgIHk6IHRoaXMuZ3JpZHN0ZXIucGl4ZWxzVG9Qb3NpdGlvblkoeSwgTWF0aC5mbG9vciwgdHJ1ZSksXG4gICAgICBjb2xzOiB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmRlZmF1bHRJdGVtQ29scyxcbiAgICAgIHJvd3M6IHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZGVmYXVsdEl0ZW1Sb3dzXG4gICAgfTtcbiAgICBpZiAob2xkSXRlbSkge1xuICAgICAgaXRlbS5jb2xzID0gTWF0aC5taW4oXG4gICAgICAgIE1hdGguYWJzKG9sZEl0ZW0ueCAtIGl0ZW0ueCkgKyAxLFxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVtcHR5Q2VsbERyYWdNYXhDb2xzXG4gICAgICApO1xuICAgICAgaXRlbS5yb3dzID0gTWF0aC5taW4oXG4gICAgICAgIE1hdGguYWJzKG9sZEl0ZW0ueSAtIGl0ZW0ueSkgKyAxLFxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVtcHR5Q2VsbERyYWdNYXhSb3dzXG4gICAgICApO1xuICAgICAgaWYgKG9sZEl0ZW0ueCA8IGl0ZW0ueCkge1xuICAgICAgICBpdGVtLnggPSBvbGRJdGVtLng7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBvbGRJdGVtLnggLSBpdGVtLnggPlxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVtcHR5Q2VsbERyYWdNYXhDb2xzIC0gMVxuICAgICAgKSB7XG4gICAgICAgIGl0ZW0ueCA9IHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbSA/IHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbS54IDogMDtcbiAgICAgIH1cbiAgICAgIGlmIChvbGRJdGVtLnkgPCBpdGVtLnkpIHtcbiAgICAgICAgaXRlbS55ID0gb2xkSXRlbS55O1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgb2xkSXRlbS55IC0gaXRlbS55ID5cbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5lbXB0eUNlbGxEcmFnTWF4Um93cyAtIDFcbiAgICAgICkge1xuICAgICAgICBpdGVtLnkgPSB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0gPyB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0ueSA6IDA7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChcbiAgICAgICF0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVuYWJsZU9jY3VwaWVkQ2VsbERyb3AgJiZcbiAgICAgIHRoaXMuZ3JpZHN0ZXIuY2hlY2tDb2xsaXNpb24oaXRlbSlcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -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.0", 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.0", 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>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.s && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-s\"\n></div>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.e && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-e\"\n></div>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.n && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-n\"\n></div>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.w && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-w\"\n></div>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.se && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-se\"\n></div>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.ne && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-ne\"\n></div>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.sw && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-sw\"\n></div>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.nw && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-nw\"\n></div>\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.0", 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>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.s && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-s\"\n></div>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.e && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-e\"\n></div>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.n && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-n\"\n></div>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.w && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-w\"\n></div>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.se && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-se\"\n></div>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.ne && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-ne\"\n></div>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.sw && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-sw\"\n></div>\n<div\n (mousedown)=\"resize.dragStartDelay($event)\"\n (touchstart)=\"resize.dragStartDelay($event)\"\n *ngIf=\"resize.resizableHandles?.nw && resize.resizeEnabled\"\n class=\"gridster-item-resizable-handler handle-nw\"\n></div>\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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LENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7Z0JBQzFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDM0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDOzhHQW5QVSxxQkFBcUIsa0JBa0N0QixVQUFVLDhDQUVWLFNBQVMsYUFDVCxNQUFNO2tHQXJDTCxxQkFBcUIseVFDbkNsQyxxMkRBaURBLDI1Q0RoQlksSUFBSTs7MkZBRUgscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLGVBQWUsaUJBR1YsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1AsQ0FBQyxJQUFJLENBQUM7OzBCQW9DWixNQUFNOzJCQUFDLFVBQVU7OzBCQUVqQixNQUFNOzJCQUFDLFNBQVM7OzBCQUNoQixNQUFNOzJCQUFDLE1BQU07eUNBbENQLElBQUk7c0JBQVosS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUlHLFVBQVU7c0JBQW5CLE1BQU07Z0JBSUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFpQkgsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHcmlkc3RlckNvbXBvbmVudCB9IGZyb20gJy4vZ3JpZHN0ZXIuY29tcG9uZW50JztcblxuaW1wb3J0IHsgR3JpZHN0ZXJEcmFnZ2FibGUgfSBmcm9tICcuL2dyaWRzdGVyRHJhZ2dhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgR3JpZHN0ZXJJdGVtLFxuICBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2Vcbn0gZnJvbSAnLi9ncmlkc3Rlckl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IEdyaWRzdGVyUmVzaXphYmxlIH0gZnJvbSAnLi9ncmlkc3RlclJlc2l6YWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRzdGVyVXRpbHMgfSBmcm9tICcuL2dyaWRzdGVyVXRpbHMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyaWRzdGVyLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZHN0ZXJJdGVtLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmlkc3Rlckl0ZW0uY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmXVxufSlcbmV4cG9ydCBjbGFzcyBHcmlkc3Rlckl0ZW1Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2VcbntcbiAgQElucHV0KCkgaXRlbSE6IEdyaWRzdGVySXRlbTtcbiAgQE91dHB1dCgpIGl0ZW1Jbml0ID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgaXRlbTogR3JpZHN0ZXJJdGVtO1xuICAgIGl0ZW1Db21wb25lbnQ6IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZTtcbiAgfT4oKTtcbiAgQE91dHB1dCgpIGl0ZW1DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBpdGVtOiBHcmlkc3Rlckl0ZW07XG4gICAgaXRlbUNvbXBvbmVudDogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlO1xuICB9PigpO1xuICBAT3V0cHV0KCkgaXRlbVJlc2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIGl0ZW06IEdyaWRzdGVySXRlbTtcbiAgICBpdGVtQ29tcG9uZW50OiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2U7XG4gIH0+KCk7XG4gICRpdGVtOiBHcmlkc3Rlckl0ZW07XG4gIGVsOiBIVE1MRWxlbWVudDtcbiAgZ3JpZHN0ZXI6IEdyaWRzdGVyQ29tcG9uZW50O1xuICB0b3AhOiBudW1iZXI7XG4gIGxlZnQhOiBudW1iZXI7XG4gIHdpZHRoITogbnVtYmVyO1xuICBoZWlnaHQhOiBudW1iZXI7XG4gIGRyYWc6IEdyaWRzdGVyRHJhZ2dhYmxlO1xuICByZXNpemU6IEdyaWRzdGVyUmVzaXphYmxlO1xuICBub3RQbGFjZWQhOiBib29sZWFuO1xuICBpbml0ITogYm9vbGVhbjtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLnotaW5kZXgnKVxuICBnZXQgekluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGF5ZXJJbmRleCgpICsgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5iYXNlTGF5ZXJJbmRleDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRWxlbWVudFJlZikgZWw6IEVsZW1lbnRSZWYsXG4gICAgZ3JpZHN0ZXI6IEdyaWRzdGVyQ29tcG9uZW50LFxuICAgIEBJbmplY3QoUmVuZGVyZXIyKSBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBASW5qZWN0KE5nWm9uZSkgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgdGhpcy5lbCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy4kaXRlbSA9IHtcbiAgICAgIGNvbHM6IC0xLFxuICAgICAgcm93czogLTEsXG4gICAgICB4OiAtMSxcbiAgICAgIHk6IC0xXG4gICAgfTtcbiAgICB0aGlzLmdyaWRzdGVyID0gZ3JpZHN0ZXI7XG4gICAgdGhpcy5kcmFnID0gbmV3IEdyaWRzdGVyRHJhZ2dhYmxlKHRoaXMsIGdyaWRzdGVyLCB0aGlzLnpvbmUpO1xuICAgIHRoaXMucmVzaXplID0gbmV3IEdyaWRzdGVyUmVzaXphYmxlKHRoaXMsIGdyaWRzdGVyLCB0aGlzLnpvbmUpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkc3Rlci5hZGRJdGVtKHRoaXMpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLml0ZW0pIHtcbiAgICAgIHRoaXMudXBkYXRlT3B0aW9ucygpO1xuXG4gICAgICBpZiAoIXRoaXMuaW5pdCkge1xuICAgICAgICB0aGlzLmdyaWRzdGVyLmNhbGN1bGF0ZUxheW91dCQubmV4dCgpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5pdGVtICYmIGNoYW5nZXMuaXRlbS5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICB0aGlzLnNldFNpemUoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVPcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuJGl0ZW0gPSBHcmlkc3RlclV0aWxzLm1lcmdlKHRoaXMuJGl0ZW0sIHRoaXMuaXRlbSwge1xuICAgICAgY29sczogdW5kZWZpbmVkLFxuICAgICAgcm93czogdW5kZWZpbmVkLFxuICAgICAgeDogdW5kZWZpbmVkLFxuICAgICAgeTogdW5kZWZpbmVkLFxuICAgICAgbGF5ZXJJbmRleDogdW5kZWZpbmVkLFxuICAgICAgZHJhZ0VuYWJsZWQ6IHVuZGVmaW5lZCxcbiAgICAgIHJlc2l6ZUVuYWJsZWQ6IHVuZGVmaW5lZCxcbiAgICAgIGNvbXBhY3RFbmFibGVkOiB1bmRlZmluZWQsXG4gICAgICBtYXhJdGVtUm93czogdW5kZWZpbmVkLFxuICAgICAgbWluSXRlbVJvd3M6IHVuZGVmaW5lZCxcbiAgICAgIG1heEl0ZW1Db2xzOiB1bmRlZmluZWQsXG4gICAgICBtaW5JdGVtQ29sczogdW5kZWZpbmVkLFxuICAgICAgbWF4SXRlbUFyZWE6IHVuZGVmaW5lZCxcbiAgICAgIG1pbkl0ZW1BcmVhOiB1bmRlZmluZWQsXG4gICAgICByZXNpemFibGVIYW5kbGVzOiB7XG4gICAgICAgIHM6IHVuZGVmaW5lZCxcbiAgICAgICAgZTogdW5kZWZpbmVkLFxuICAgICAgICBuOiB1bmRlZmluZWQsXG4gICAgICAgIHc6IHVuZGVmaW5lZCxcbiAgICAgICAgc2U6IHVuZGVmaW5lZCxcbiAgICAgICAgbmU6IHVuZGVmaW5lZCxcbiAgICAgICAgc3c6IHVuZGVmaW5lZCxcbiAgICAgICAgbnc6IHVuZGVmaW5lZFxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkc3Rlci5yZW1vdmVJdGVtKHRoaXMpO1xuICAgIHRoaXMuZHJhZy5kZXN0cm95KCk7XG4gICAgdGhpcy5yZXNpemUuZGVzdHJveSgpO1xuICAgIHRoaXMuZ3JpZHN0ZXIgPSB0aGlzLmRyYWcgPSB0aGlzLnJlc2l6ZSA9IG51bGwhO1xuICB9XG5cbiAgc2V0U2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwsICdkaXNwbGF5JywgdGhpcy5ub3RQbGFjZWQgPyAnJyA6ICdibG9jaycpO1xuICAgIHRoaXMuZ3JpZHN0ZXIuZ3JpZFJlbmRlcmVyLnVwZGF0ZUl0ZW0odGhpcy5lbCwgdGhpcy4kaXRlbSwgdGhpcy5yZW5kZXJlcik7XG4gICAgdGhpcy51cGRhdGVJdGVtU2l6ZSgpO1xuICB9XG5cbiAgdXBkYXRlSXRlbVNpemUoKTogdm9pZCB7XG4gICAgY29uc3QgdG9wID0gdGhpcy4kaXRlbS55ICogdGhpcy5ncmlkc3Rlci5jdXJSb3dIZWlnaHQ7XG4gICAgY29uc3QgbGVmdCA9IHRoaXMuJGl0ZW0ueCAqIHRoaXMuZ3JpZHN0ZXIuY3VyQ29sV2lkdGg7XG4gICAgY29uc3Qgd2lkdGggPVxuICAgICAgdGhpcy4kaXRlbS5jb2xzICogdGhpcy5ncmlkc3Rlci5jdXJDb2xXaWR0aCAtXG4gICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLm1hcmdpbjtcbiAgICBjb25zdCBoZWlnaHQgPVxuICAgICAgdGhpcy4kaXRlbS5yb3dzICogdGhpcy5ncmlkc3Rlci5jdXJSb3dIZWlnaHQgLVxuICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW47XG5cbiAgICB0aGlzLnRvcCA9IHRvcDtcbiAgICB0aGlzLmxlZnQgPSBsZWZ0O1xuXG4gICAgaWYgKCF0aGlzLmluaXQgJiYgd2lkdGggPiAwICYmIGhlaWdodCA+IDApIHtcbiAgICAgIHRoaXMuaW5pdCA9IHRydWU7XG4gICAgICBpZiAodGhpcy5pdGVtLmluaXRDYWxsYmFjaykge1xuICAgICAgICB0aGlzLml0ZW0uaW5pdENhbGxiYWNrKHRoaXMuaXRlbSwgdGhpcyk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5ncmlkc3Rlci5vcHRpb25zLml0ZW1Jbml0Q2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5ncmlkc3Rlci5vcHRpb25zLml0ZW1Jbml0Q2FsbGJhY2sodGhpcy5pdGVtLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXRlbUluaXQubmV4dCh7IGl0ZW06IHRoaXMuaXRlbSwgaXRlbUNvbXBvbmVudDogdGhpcyB9KTtcbiAgICAgIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLnNjcm9sbFRvTmV3SXRlbXMpIHtcbiAgICAgICAgdGhpcy5lbC5zY3JvbGxJbnRvVmlldyhmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh3aWR0aCAhPT0gdGhpcy53aWR0aCB8fCBoZWlnaHQgIT09IHRoaXMuaGVpZ2h0KSB7XG4gICAgICB0aGlzLndpZHRoID0gd2lkdGg7XG4gICAgICB0aGlzLmhlaWdodCA9IGhlaWdodDtcbiAgICAgIGlmICh0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbVJlc2l6ZUNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5pdGVtUmVzaXplQ2FsbGJhY2sodGhpcy5pdGVtLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXRlbVJlc2l6ZS5uZXh0KHsgaXRlbTogdGhpcy5pdGVtLCBpdGVtQ29tcG9uZW50OiB0aGlzIH0pO1xuICAgIH1cbiAgfVxuXG4gIGl0ZW1DaGFuZ2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbUNoYW5nZUNhbGxiYWNrKSB7XG4gICAgICB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbUNoYW5nZUNhbGxiYWNrKHRoaXMuaXRlbSwgdGhpcyk7XG4gICAgfVxuICAgIHRoaXMuaXRlbUNoYW5nZS5uZXh0KHsgaXRlbTogdGhpcy5pdGVtLCBpdGVtQ29tcG9uZW50OiB0aGlzIH0pO1xuICB9XG5cbiAgY2hlY2tJdGVtQ2hhbmdlcyhuZXdWYWx1ZTogR3JpZHN0ZXJJdGVtLCBvbGRWYWx1ZTogR3JpZHN0ZXJJdGVtKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgbmV3VmFsdWUucm93cyA9PT0gb2xkVmFsdWUucm93cyAmJlxuICAgICAgbmV3VmFsdWUuY29scyA9PT0gb2xkVmFsdWUuY29scyAmJlxuICAgICAgbmV3VmFsdWUueCA9PT0gb2xkVmFsdWUueCAmJlxuICAgICAgbmV3VmFsdWUueSA9PT0gb2xkVmFsdWUueVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5ncmlkc3Rlci5jaGVja0NvbGxpc2lvbih0aGlzLiRpdGVtKSkge1xuICAgICAgdGhpcy4kaXRlbS54ID0gb2xkVmFsdWUueCB8fCAwO1xuICAgICAgdGhpcy4kaXRlbS55ID0gb2xkVmFsdWUueSB8fCAwO1xuICAgICAgdGhpcy4kaXRlbS5jb2xzID0gb2xkVmFsdWUuY29scyB8fCAxO1xuICAgICAgdGhpcy4kaXRlbS5yb3dzID0gb2xkVmFsdWUucm93cyB8fCAxO1xuICAgICAgdGhpcy5zZXRTaXplKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXRlbS5jb2xzID0gdGhpcy4kaXRlbS5jb2xzO1xuICAgICAgdGhpcy5pdGVtLnJvd3MgPSB0aGlzLiRpdGVtLnJvd3M7XG4gICAgICB0aGlzLml0ZW0ueCA9IHRoaXMuJGl0ZW0ueDtcbiAgICAgIHRoaXMuaXRlbS55ID0gdGhpcy4kaXRlbS55O1xuICAgICAgdGhpcy5ncmlkc3Rlci5jYWxjdWxhdGVMYXlvdXQkLm5leHQoKTtcbiAgICAgIHRoaXMuaXRlbUNoYW5nZWQoKTtcbiAgICB9XG4gIH1cblxuICBjYW5CZURyYWdnZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZ3JpZERyYWdFbmFibGVkID0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5kcmFnZ2FibGUuZW5hYmxlZDtcbiAgICBjb25zdCBpdGVtRHJhZ0VuYWJsZWQgPVxuICAgICAgdGhpcy4kaXRlbS5kcmFnRW5hYmxlZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gZ3JpZERyYWdFbmFibGVkXG4gICAgICAgIDogdGhpcy4kaXRlbS5kcmFnRW5hYmxlZDtcbiAgICByZXR1cm4gIXRoaXMuZ3JpZHN0ZXIubW9iaWxlICYmIGdyaWREcmFnRW5hYmxlZCAmJiBpdGVtRHJhZ0VuYWJsZWQ7XG4gIH1cblxuICBjYW5CZVJlc2l6ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZ3JpZFJlc2l6YWJsZSA9IHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMucmVzaXphYmxlLmVuYWJsZWQ7XG4gICAgY29uc3QgaXRlbVJlc2l6YWJsZSA9XG4gICAgICB0aGlzLiRpdGVtLnJlc2l6ZUVuYWJsZWQgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IGdyaWRSZXNpemFibGVcbiAgICAgICAgOiB0aGlzLiRpdGVtLnJlc2l6ZUVuYWJsZWQ7XG4gICAgcmV0dXJuICF0aGlzLmdyaWRzdGVyLm1vYmlsZSAmJiBncmlkUmVzaXphYmxlICYmIGl0ZW1SZXNpemFibGU7XG4gIH1cblxuICBnZXRSZXNpemFibGVIYW5kbGVzKCkge1xuICAgIGNvbnN0IGdyaWRSZXNpemFibGVIYW5kbGVzID0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5yZXNpemFibGUuaGFuZGxlcztcbiAgICBjb25zdCBpdGVtUmVzaXphYmxlSGFuZGxlcyA9IHRoaXMuJGl0ZW0ucmVzaXphYmxlSGFuZGxlcztcbiAgICAvLyB1c2UgZ3JpZCBzZXR0aW5ncyBpZiBubyBzZXR0aW5ncyBhcmUgcHJvdmlkZWQgZm9yIHRoZSBpdGVtLlxuICAgIGlmIChpdGVtUmVzaXphYmxlSGFuZGxlcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZ3JpZFJlc2l6YWJsZUhhbmRsZXM7XG4gICAgfVxuICAgIC8vIGVsc2UgbWVyZ2UgdGhlIHNldHRpbmdzXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmdyaWRSZXNpemFibGVIYW5kbGVzLFxuICAgICAgLi4uaXRlbVJlc2l6YWJsZUhhbmRsZXNcbiAgICB9O1xuICB9XG5cbiAgYnJpbmdUb0Zyb250KG9mZnNldDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKG9mZnNldCAmJiBvZmZzZXQgPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBsYXllckluZGV4ID0gdGhpcy5nZXRMYXllckluZGV4KCk7XG4gICAgY29uc3QgdG9wSW5kZXggPSB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLm1heExheWVySW5kZXg7XG4gICAgaWYgKGxheWVySW5kZXggPCB0b3BJbmRleCkge1xuICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBvZmZzZXQgPyBsYXllckluZGV4ICsgb2Zmc2V0IDogdG9wSW5kZXg7XG4gICAgICB0aGlzLml0ZW0ubGF5ZXJJbmRleCA9IHRoaXMuJGl0ZW0ubGF5ZXJJbmRleCA9XG4gICAgICAgIHRhcmdldEluZGV4ID4gdG9wSW5kZXggPyB0b3BJbmRleCA6IHRhcmdldEluZGV4O1xuICAgIH1cbiAgfVxuXG4gIHNlbmRUb0JhY2sob2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAob2Zmc2V0ICYmIG9mZnNldCA8PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGxheWVySW5kZXggPSB0aGlzLmdldExheWVySW5kZXgoKTtcbiAgICBpZiAobGF5ZXJJbmRleCA+IDApIHtcbiAgICAgIGNvbnN0IHRhcmdldEluZGV4ID0gb2Zmc2V0ID8gbGF5ZXJJbmRleCAtIG9mZnNldCA6IDA7XG4gICAgICB0aGlzLml0ZW0ubGF5ZXJJbmRleCA9IHRoaXMuJGl0ZW0ubGF5ZXJJbmRleCA9XG4gICAgICAgIHRhcmdldEluZGV4IDwgMCA/IDAgOiB0YXJnZXRJbmRleDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldExheWVySW5kZXgoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5pdGVtLmxheWVySW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuaXRlbS5sYXllckluZGV4O1xuICAgIH1cbiAgICBpZiAodGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5kZWZhdWx0TGF5ZXJJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5kZWZhdWx0TGF5ZXJJbmRleDtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjxkaXZcbiAgKG1vdXNlZG93bik9XCJyZXNpemUuZHJhZ1N0YXJ0RGVsYXkoJGV2ZW50KVwiXG4gICh0b3VjaHN0YXJ0KT1cInJlc2l6ZS5kcmFnU3RhcnREZWxheSgkZXZlbnQpXCJcbiAgKm5nSWY9XCJyZXNpemUucmVzaXphYmxlSGFuZGxlcz8ucyAmJiByZXNpemUucmVzaXplRW5hYmxlZFwiXG4gIGNsYXNzPVwiZ3JpZHN0ZXItaXRlbS1yZXNpemFibGUtaGFuZGxlciBoYW5kbGUtc1wiXG4+PC9kaXY+XG48ZGl2XG4gIChtb3VzZWRvd24pPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxuICAodG91Y2hzdGFydCk9XCJyZXNpemUuZHJhZ1N0YXJ0RGVsYXkoJGV2ZW50KVwiXG4gICpuZ0lmPVwicmVzaXplLnJlc2l6YWJsZUhhbmRsZXM/LmUgJiYgcmVzaXplLnJlc2l6ZUVuYWJsZWRcIlxuICBjbGFzcz1cImdyaWRzdGVyLWl0ZW0tcmVzaXphYmxlLWhhbmRsZXIgaGFuZGxlLWVcIlxuPjwvZGl2PlxuPGRpdlxuICAobW91c2Vkb3duKT1cInJlc2l6ZS5kcmFnU3RhcnREZWxheSgkZXZlbnQpXCJcbiAgKHRvdWNoc3RhcnQpPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxuICAqbmdJZj1cInJlc2l6ZS5yZXNpemFibGVIYW5kbGVzPy5uICYmIHJlc2l6ZS5yZXNpemVFbmFibGVkXCJcbiAgY2xhc3M9XCJncmlkc3Rlci1pdGVtLXJlc2l6YWJsZS1oYW5kbGVyIGhhbmRsZS1uXCJcbj48L2Rpdj5cbjxkaXZcbiAgKG1vdXNlZG93bik9XCJyZXNpemUuZHJhZ1N0YXJ0RGVsYXkoJGV2ZW50KVwiXG4gICh0b3VjaHN0YXJ0KT1cInJlc2l6ZS5kcmFnU3RhcnREZWxheSgkZXZlbnQpXCJcbiAgKm5nSWY9XCJyZXNpemUucmVzaXphYmxlSGFuZGxlcz8udyAmJiByZXNpemUucmVzaXplRW5hYmxlZFwiXG4gIGNsYXNzPVwiZ3JpZHN0ZXItaXRlbS1yZXNpemFibGUtaGFuZGxlciBoYW5kbGUtd1wiXG4+PC9kaXY+XG48ZGl2XG4gIChtb3VzZWRvd24pPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxuICAodG91Y2hzdGFydCk9XCJyZXNpemUuZHJhZ1N0YXJ0RGVsYXkoJGV2ZW50KVwiXG4gICpuZ0lmPVwicmVzaXplLnJlc2l6YWJsZUhhbmRsZXM/LnNlICYmIHJlc2l6ZS5yZXNpemVFbmFibGVkXCJcbiAgY2xhc3M9XCJncmlkc3Rlci1pdGVtLXJlc2l6YWJsZS1oYW5kbGVyIGhhbmRsZS1zZVwiXG4+PC9kaXY+XG48ZGl2XG4gIChtb3VzZWRvd24pPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxuICAodG91Y2hzdGFydCk9XCJyZXNpemUuZHJhZ1N0YXJ0RGVsYXkoJGV2ZW50KVwiXG4gICpuZ0lmPVwicmVzaXplLnJlc2l6YWJsZUhhbmRsZXM/Lm5lICYmIHJlc2l6ZS5yZXNpemVFbmFibGVkXCJcbiAgY2xhc3M9XCJncmlkc3Rlci1pdGVtLXJlc2l6YWJsZS1oYW5kbGVyIGhhbmRsZS1uZVwiXG4+PC9kaXY+XG48ZGl2XG4gIChtb3VzZWRvd24pPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxuICAodG91Y2hzdGFydCk9XCJyZXNpemUuZHJhZ1N0YXJ0RGVsYXkoJGV2ZW50KVwiXG4gICpuZ0lmPVwicmVzaXplLnJlc2l6YWJsZUhhbmRsZXM/LnN3ICYmIHJlc2l6ZS5yZXNpemVFbmFibGVkXCJcbiAgY2xhc3M9XCJncmlkc3Rlci1pdGVtLXJlc2l6YWJsZS1oYW5kbGVyIGhhbmRsZS1zd1wiXG4+PC9kaXY+XG48ZGl2XG4gIChtb3VzZWRvd24pPVwicmVzaXplLmRyYWdTdGFydERlbGF5KCRldmVudClcIlxuICAodG91Y2hzdGFydCk9XCJyZXNpemUuZHJhZ1N0YXJ0RGVsYXkoJGV2ZW50KVwiXG4gICpuZ0lmPVwicmVzaXplLnJlc2l6YWJsZUhhbmRsZXM/Lm53ICYmIHJlc2l6ZS5yZXNpemVFbmFibGVkXCJcbiAgY2xhc3M9XCJncmlkc3Rlci1pdGVtLXJlc2l6YWJsZS1oYW5kbGVyIGhhbmRsZS1ud1wiXG4+PC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class GridsterItemComponentInterface {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJJdGVtLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhLWRhc2hib2FyZC1mcmFtZXdvcmsvc3JjL2dyaWRzdGVyL2xpYi9ncmlkc3Rlckl0ZW0uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBZ0IsOEJBQThCO0NBK0JuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyaWRzdGVyRHJhZ2dhYmxlIH0gZnJvbSAnLi9ncmlkc3RlckRyYWdnYWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JpZHN0ZXJSZXNpemFibGUgfSBmcm9tICcuL2dyaWRzdGVyUmVzaXphYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JpZHN0ZXJDb21wb25lbnRJbnRlcmZhY2UgfSBmcm9tICcuL2dyaWRzdGVyLmludGVyZmFjZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2Uge1xuICBpdGVtITogR3JpZHN0ZXJJdGVtO1xuICAkaXRlbSE6IEdyaWRzdGVySXRlbTtcbiAgdG9wITogbnVtYmVyO1xuICBsZWZ0ITogbnVtYmVyO1xuICB3aWR0aCE6IG51bWJlcjtcbiAgaGVpZ2h0ITogbnVtYmVyO1xuICBkcmFnITogR3JpZHN0ZXJEcmFnZ2FibGU7XG4gIHJlc2l6ZSE6IEdyaWRzdGVyUmVzaXphYmxlO1xuICBub3RQbGFjZWQhOiBib29sZWFuO1xuICB1cGRhdGVPcHRpb25zITogKCkgPT4gdm9pZDtcbiAgaXRlbUNoYW5nZWQhOiAoKSA9PiB2b2lkO1xuICBzZXRTaXplITogKCkgPT4gdm9pZDtcbiAgY2hlY2tJdGVtQ2hhbmdlcyE6IChuZXdWYWx1ZTogR3JpZHN0ZXJJdGVtLCBvbGRWYWx1ZTogR3JpZHN0ZXJJdGVtKSA9PiB2b2lkO1xuICBjYW5CZURyYWdnZWQhOiAoKSA9PiBib29sZWFuO1xuICBjYW5CZVJlc2l6ZWQhOiAoKSA9PiBib29sZWFuO1xuICBnZXRSZXNpemFibGVIYW5kbGVzITogKCkgPT4ge1xuICAgIHM6IGJvb2xlYW47XG4gICAgZTogYm9vbGVhbjtcbiAgICBuOiBib29sZWFuO1xuICAgIHc6IGJvb2xlYW47XG4gICAgc2U6IGJvb2xlYW47XG4gICAgbmU6IGJvb2xlYW47XG4gICAgc3c6IGJvb2xlYW47XG4gICAgbnc6IGJvb2xlYW47XG4gIH07XG4gIGJyaW5nVG9Gcm9udCE6IChvZmZzZXQ6IG51bWJlcikgPT4gdm9pZDtcbiAgc2VuZFRvQmFjayE6ICh2OiBudW1iZXIpID0+IHZvaWQ7XG4gIGVsITogSFRNTEVsZW1lbnQ7XG4gIGdyaWRzdGVyITogR3JpZHN0ZXJDb21wb25lbnRJbnRlcmZhY2U7XG4gIHJlbmRlcmVyITogUmVuZGVyZXIyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRzdGVySXRlbSB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICByb3dzOiBudW1iZXI7XG4gIGNvbHM6IG51bWJlcjtcbiAgbGF5ZXJJbmRleD86IG51bWJlcjtcbiAgaW5pdENhbGxiYWNrPzogKFxuICAgIGl0ZW06IEdyaWRzdGVySXRlbSxcbiAgICBpdGVtQ29tcG9uZW50OiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2VcbiAgKSA9PiB2b2lkO1xuICBkcmFnRW5hYmxlZD86IGJvb2xlYW47XG4gIHJlc2l6ZUVuYWJsZWQ/OiBib29sZWFuO1xuICByZXNpemFibGVIYW5kbGVzPzoge1xuICAgIHM/OiBib29sZWFuO1xuICAgIGU/OiBib29sZWFuO1xuICAgIG4/OiBib29sZWFuO1xuICAgIHc/OiBib29sZWFuO1xuICAgIHNlPzogYm9vbGVhbjtcbiAgICBuZT86IGJvb2xlYW47XG4gICAgc3c/OiBib29sZWFuO1xuICAgIG53PzogYm9vbGVhbjtcbiAgfTtcbiAgY29tcGFjdEVuYWJsZWQ/OiBib29sZWFuO1xuICBtYXhJdGVtUm93cz86IG51bWJlcjtcbiAgbWluSXRlbVJvd3M/OiBudW1iZXI7XG4gIG1heEl0ZW1Db2xzPzogbnVtYmVyO1xuICBtaW5JdGVtQ29scz86IG51bWJlcjtcbiAgbWluSXRlbUFyZWE/OiBudW1iZXI7XG4gIG1heEl0ZW1BcmVhPzogbnVtYmVyO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIFtwcm9wTmFtZTogc3RyaW5nXTogYW55O1xufVxuIl19
|