@schneideress/dashboardframework 0.0.278 → 13.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/esm2020/lib/custom.notifier.options.mjs +41 -0
- package/esm2020/lib/ra-dashboard-area/ra.dashboard.area.mjs +445 -0
- package/esm2020/lib/ra-widget-container/lock-tooltip/lock.tooltip.component.mjs +43 -0
- package/esm2020/lib/ra-widget-container/ra.widget.container.component.mjs +767 -0
- package/esm2020/lib/ra.base.dashboard.filter.mjs +44 -0
- package/esm2020/lib/ra.base.dashboard.template.mjs +36 -0
- package/esm2020/lib/ra.dashbard.event.bus.mjs +46 -0
- package/esm2020/lib/ra.dashboard.module.mjs +64 -0
- package/esm2020/lib/ra.dashboard.responsive.service.mjs +136 -0
- package/esm2020/lib/ra.dashboard.service.mjs +77 -0
- package/esm2020/lib/ra.event.enum.mjs +60 -0
- package/esm2020/lib/ra.gridster.config.mjs +56 -0
- package/esm2020/public-api.mjs +15 -0
- package/esm2020/schneideress-dashboardframework.mjs +5 -0
- package/fesm2015/schneideress-dashboardframework.mjs +1800 -0
- package/fesm2015/schneideress-dashboardframework.mjs.map +1 -0
- package/fesm2020/schneideress-dashboardframework.mjs +1790 -0
- package/fesm2020/schneideress-dashboardframework.mjs.map +1 -0
- package/lib/ra-dashboard-area/ra.dashboard.area.d.ts +5 -2
- package/lib/ra-widget-container/lock-tooltip/lock.tooltip.component.d.ts +3 -0
- package/lib/ra-widget-container/ra.widget.container.component.d.ts +6 -4
- package/lib/ra.base.dashboard.filter.d.ts +3 -1
- package/lib/ra.base.dashboard.template.d.ts +3 -0
- package/lib/ra.dashbard.event.bus.d.ts +3 -0
- package/lib/ra.dashboard.module.d.ts +15 -0
- package/lib/ra.dashboard.responsive.service.d.ts +8 -5
- package/lib/ra.dashboard.service.d.ts +4 -2
- package/lib/ra.gridster.config.d.ts +1 -1
- package/package.json +26 -20
- package/schneideress-dashboardframework.d.ts +1 -6
- package/bundles/schneideress-dashboardframework.umd.js +0 -5091
- 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 -488
- 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 -47
- package/esm2015/lib/ra.base.dashboard.template.js +0 -32
- 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 -499
- 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 -50
- package/esm5/lib/ra.base.dashboard.template.js +0 -35
- 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 -4737
- package/fesm2015/schneideress-dashboardframework.js.map +0 -1
- package/fesm5/schneideress-dashboardframework.js +0 -4871
- package/fesm5/schneideress-dashboardframework.js.map +0 -1
- package/gridster/index.d.ts +0 -11
- package/gridster/lib/gridster.component.d.ts +0 -67
- package/gridster/lib/gridster.interface.d.ts +0 -46
- package/gridster/lib/gridster.module.d.ts +0 -2
- package/gridster/lib/gridsterCompact.service.d.ts +0 -15
- package/gridster/lib/gridsterConfig.constant.d.ts +0 -2
- package/gridster/lib/gridsterConfig.interface.d.ts +0 -133
- package/gridster/lib/gridsterConfigS.interface.d.ts +0 -93
- package/gridster/lib/gridsterDraggable.service.d.ts +0 -59
- package/gridster/lib/gridsterEmptyCell.service.d.ts +0 -29
- package/gridster/lib/gridsterItem.component.d.ts +0 -32
- package/gridster/lib/gridsterItem.interface.d.ts +0 -21
- package/gridster/lib/gridsterItemComponent.interface.d.ts +0 -25
- package/gridster/lib/gridsterPreview.component.d.ts +0 -10
- package/gridster/lib/gridsterPush.service.d.ts +0 -33
- package/gridster/lib/gridsterPushResize.service.d.ts +0 -26
- package/gridster/lib/gridsterRenderer.service.d.ts +0 -38
- package/gridster/lib/gridsterResizable.service.d.ts +0 -67
- package/gridster/lib/gridsterResizeEventType.interface.d.ts +0 -6
- package/gridster/lib/gridsterScroll.service.d.ts +0 -4
- package/gridster/lib/gridsterSwap.service.d.ts +0 -13
- package/gridster/lib/gridsterUtils.service.d.ts +0 -16
- package/schneideress-dashboardframework.metadata.json +0 -1
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import * as tslib_1 from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { GridsterUtils } from './gridsterUtils.service';
|
|
4
|
-
import { GridsterComponentInterface } from './gridster.interface';
|
|
5
|
-
var GridsterEmptyCell = /** @class */ (function () {
|
|
6
|
-
function GridsterEmptyCell(gridster) {
|
|
7
|
-
this.gridster = gridster;
|
|
8
|
-
}
|
|
9
|
-
GridsterEmptyCell.prototype.destroy = function () {
|
|
10
|
-
delete this.initialItem;
|
|
11
|
-
delete this.gridster.movingItem;
|
|
12
|
-
if (this.gridster.previewStyle) {
|
|
13
|
-
this.gridster.previewStyle();
|
|
14
|
-
}
|
|
15
|
-
delete this.gridster;
|
|
16
|
-
if (this.emptyCellExit) {
|
|
17
|
-
this.emptyCellExit();
|
|
18
|
-
this.emptyCellExit = null;
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
GridsterEmptyCell.prototype.updateOptions = function () {
|
|
22
|
-
var _this = this;
|
|
23
|
-
if (this.gridster.$options.enableEmptyCellClick && !this.emptyCellClick && this.gridster.options.emptyCellClickCallback) {
|
|
24
|
-
this.emptyCellClick = this.gridster.renderer.listen(this.gridster.el, 'click', this.emptyCellClickCb.bind(this));
|
|
25
|
-
this.emptyCellClickTouch = this.gridster.renderer.listen(this.gridster.el, 'touchend', this.emptyCellClickCb.bind(this));
|
|
26
|
-
}
|
|
27
|
-
else if (!this.gridster.$options.enableEmptyCellClick && this.emptyCellClick && this.emptyCellClickTouch) {
|
|
28
|
-
this.emptyCellClick();
|
|
29
|
-
this.emptyCellClickTouch();
|
|
30
|
-
this.emptyCellClick = null;
|
|
31
|
-
this.emptyCellClickTouch = null;
|
|
32
|
-
}
|
|
33
|
-
if (this.gridster.$options.enableEmptyCellContextMenu && !this.emptyCellContextMenu &&
|
|
34
|
-
this.gridster.options.emptyCellContextMenuCallback) {
|
|
35
|
-
this.emptyCellContextMenu = this.gridster.renderer.listen(this.gridster.el, 'contextmenu', this.emptyCellContextMenuCb.bind(this));
|
|
36
|
-
}
|
|
37
|
-
else if (!this.gridster.$options.enableEmptyCellContextMenu && this.emptyCellContextMenu) {
|
|
38
|
-
this.emptyCellContextMenu();
|
|
39
|
-
this.emptyCellContextMenu = null;
|
|
40
|
-
}
|
|
41
|
-
if (this.gridster.$options.enableEmptyCellDrop && !this.emptyCellDrop && this.gridster.options.emptyCellDropCallback) {
|
|
42
|
-
this.emptyCellDrop = this.gridster.renderer.listen(this.gridster.el, 'drop', this.emptyCellDragDrop.bind(this));
|
|
43
|
-
this.gridster.zone.runOutsideAngular(function () {
|
|
44
|
-
_this.emptyCellMove = _this.gridster.renderer.listen(_this.gridster.el, 'dragover', _this.emptyCellDragOver.bind(_this));
|
|
45
|
-
});
|
|
46
|
-
this.emptyCellExit = this.gridster.renderer.listen('document', 'dragend', function () {
|
|
47
|
-
_this.gridster.movingItem = null;
|
|
48
|
-
_this.gridster.previewStyle();
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
else if (!this.gridster.$options.enableEmptyCellDrop && this.emptyCellDrop && this.emptyCellMove && this.emptyCellExit) {
|
|
52
|
-
this.emptyCellDrop();
|
|
53
|
-
this.emptyCellMove();
|
|
54
|
-
this.emptyCellExit();
|
|
55
|
-
this.emptyCellMove = null;
|
|
56
|
-
this.emptyCellDrop = null;
|
|
57
|
-
this.emptyCellExit = null;
|
|
58
|
-
}
|
|
59
|
-
if (this.gridster.$options.enableEmptyCellDrag && !this.emptyCellDrag && this.gridster.options.emptyCellDragCallback) {
|
|
60
|
-
this.emptyCellDrag = this.gridster.renderer.listen(this.gridster.el, 'mousedown', this.emptyCellMouseDown.bind(this));
|
|
61
|
-
this.emptyCellDragTouch = this.gridster.renderer.listen(this.gridster.el, 'touchstart', this.emptyCellMouseDown.bind(this));
|
|
62
|
-
}
|
|
63
|
-
else if (!this.gridster.$options.enableEmptyCellDrag && this.emptyCellDrag && this.emptyCellDragTouch) {
|
|
64
|
-
this.emptyCellDrag();
|
|
65
|
-
this.emptyCellDragTouch();
|
|
66
|
-
this.emptyCellDrag = null;
|
|
67
|
-
this.emptyCellDragTouch = null;
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
GridsterEmptyCell.prototype.emptyCellClickCb = function (e) {
|
|
71
|
-
if (this.gridster.movingItem || GridsterUtils.checkContentClassForEmptyCellClickEvent(this.gridster, e)) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
var item = this.getValidItemFromEvent(e);
|
|
75
|
-
if (!item) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
if (this.gridster.options.emptyCellClickCallback) {
|
|
79
|
-
this.gridster.options.emptyCellClickCallback(e, item);
|
|
80
|
-
}
|
|
81
|
-
this.gridster.cdRef.markForCheck();
|
|
82
|
-
};
|
|
83
|
-
GridsterEmptyCell.prototype.emptyCellContextMenuCb = function (e) {
|
|
84
|
-
if (this.gridster.movingItem || GridsterUtils.checkContentClassForEmptyCellClickEvent(this.gridster, e)) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
e.preventDefault();
|
|
88
|
-
e.stopPropagation();
|
|
89
|
-
var item = this.getValidItemFromEvent(e);
|
|
90
|
-
if (!item) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
if (this.gridster.options.emptyCellContextMenuCallback) {
|
|
94
|
-
this.gridster.options.emptyCellContextMenuCallback(e, item);
|
|
95
|
-
}
|
|
96
|
-
this.gridster.cdRef.markForCheck();
|
|
97
|
-
};
|
|
98
|
-
GridsterEmptyCell.prototype.emptyCellDragDrop = function (e) {
|
|
99
|
-
var item = this.getValidItemFromEvent(e);
|
|
100
|
-
if (!item) {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
if (this.gridster.options.emptyCellDropCallback) {
|
|
104
|
-
this.gridster.options.emptyCellDropCallback(e, item);
|
|
105
|
-
}
|
|
106
|
-
this.gridster.cdRef.markForCheck();
|
|
107
|
-
};
|
|
108
|
-
GridsterEmptyCell.prototype.emptyCellDragOver = function (e) {
|
|
109
|
-
e.preventDefault();
|
|
110
|
-
e.stopPropagation();
|
|
111
|
-
var item = this.getValidItemFromEvent(e);
|
|
112
|
-
if (item) {
|
|
113
|
-
e.dataTransfer.dropEffect = 'move';
|
|
114
|
-
this.gridster.movingItem = item;
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
e.dataTransfer.dropEffect = 'none';
|
|
118
|
-
this.gridster.movingItem = null;
|
|
119
|
-
}
|
|
120
|
-
this.gridster.previewStyle();
|
|
121
|
-
};
|
|
122
|
-
GridsterEmptyCell.prototype.emptyCellMouseDown = function (e) {
|
|
123
|
-
var _this = this;
|
|
124
|
-
if (GridsterUtils.checkContentClassForEmptyCellClickEvent(this.gridster, e)) {
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
e.preventDefault();
|
|
128
|
-
e.stopPropagation();
|
|
129
|
-
var item = this.getValidItemFromEvent(e);
|
|
130
|
-
var leftMouseButtonCode = 1;
|
|
131
|
-
if (!item || e.buttons !== leftMouseButtonCode) {
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
this.initialItem = item;
|
|
135
|
-
this.gridster.movingItem = item;
|
|
136
|
-
this.gridster.previewStyle();
|
|
137
|
-
this.gridster.zone.runOutsideAngular(function () {
|
|
138
|
-
_this.emptyCellMMove = _this.gridster.renderer.listen('window', 'mousemove', _this.emptyCellMouseMove.bind(_this));
|
|
139
|
-
_this.emptyCellMMoveTouch = _this.gridster.renderer.listen('window', 'touchmove', _this.emptyCellMouseMove.bind(_this));
|
|
140
|
-
});
|
|
141
|
-
this.emptyCellUp = this.gridster.renderer.listen('window', 'mouseup', this.emptyCellMouseUp.bind(this));
|
|
142
|
-
this.emptyCellUpTouch = this.gridster.renderer.listen('window', 'touchend', this.emptyCellMouseUp.bind(this));
|
|
143
|
-
};
|
|
144
|
-
GridsterEmptyCell.prototype.emptyCellMouseMove = function (e) {
|
|
145
|
-
e.preventDefault();
|
|
146
|
-
e.stopPropagation();
|
|
147
|
-
var item = this.getValidItemFromEvent(e, this.initialItem);
|
|
148
|
-
if (!item) {
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
this.gridster.movingItem = item;
|
|
152
|
-
this.gridster.previewStyle();
|
|
153
|
-
};
|
|
154
|
-
GridsterEmptyCell.prototype.emptyCellMouseUp = function (e) {
|
|
155
|
-
var _this = this;
|
|
156
|
-
this.emptyCellMMove();
|
|
157
|
-
this.emptyCellMMoveTouch();
|
|
158
|
-
this.emptyCellUp();
|
|
159
|
-
this.emptyCellUpTouch();
|
|
160
|
-
var item = this.getValidItemFromEvent(e, this.initialItem);
|
|
161
|
-
if (item) {
|
|
162
|
-
this.gridster.movingItem = item;
|
|
163
|
-
}
|
|
164
|
-
if (this.gridster.options.emptyCellDragCallback && this.gridster.movingItem) {
|
|
165
|
-
this.gridster.options.emptyCellDragCallback(e, this.gridster.movingItem);
|
|
166
|
-
}
|
|
167
|
-
setTimeout(function () {
|
|
168
|
-
_this.initialItem = null;
|
|
169
|
-
if (_this.gridster) {
|
|
170
|
-
_this.gridster.movingItem = null;
|
|
171
|
-
_this.gridster.previewStyle();
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
this.gridster.cdRef.markForCheck();
|
|
175
|
-
};
|
|
176
|
-
GridsterEmptyCell.prototype.getValidItemFromEvent = function (e, oldItem) {
|
|
177
|
-
e.preventDefault();
|
|
178
|
-
e.stopPropagation();
|
|
179
|
-
GridsterUtils.checkTouchEvent(e);
|
|
180
|
-
var rect = this.gridster.el.getBoundingClientRect();
|
|
181
|
-
var x = e.clientX + this.gridster.el.scrollLeft - rect.left - this.gridster.$options.margin;
|
|
182
|
-
var y = e.clientY + this.gridster.el.scrollTop - rect.top - this.gridster.$options.margin;
|
|
183
|
-
var item = {
|
|
184
|
-
x: this.gridster.pixelsToPositionX(x, Math.floor, true),
|
|
185
|
-
y: this.gridster.pixelsToPositionY(y, Math.floor, true),
|
|
186
|
-
cols: this.gridster.$options.defaultItemCols,
|
|
187
|
-
rows: this.gridster.$options.defaultItemRows
|
|
188
|
-
};
|
|
189
|
-
if (oldItem) {
|
|
190
|
-
item.cols = Math.min(Math.abs(oldItem.x - item.x) + 1, this.gridster.$options.emptyCellDragMaxCols);
|
|
191
|
-
item.rows = Math.min(Math.abs(oldItem.y - item.y) + 1, this.gridster.$options.emptyCellDragMaxRows);
|
|
192
|
-
if (oldItem.x < item.x) {
|
|
193
|
-
item.x = oldItem.x;
|
|
194
|
-
}
|
|
195
|
-
else if (oldItem.x - item.x > this.gridster.$options.emptyCellDragMaxCols - 1) {
|
|
196
|
-
item.x = this.gridster.movingItem ? this.gridster.movingItem.x : 0;
|
|
197
|
-
}
|
|
198
|
-
if (oldItem.y < item.y) {
|
|
199
|
-
item.y = oldItem.y;
|
|
200
|
-
}
|
|
201
|
-
else if (oldItem.y - item.y > this.gridster.$options.emptyCellDragMaxRows - 1) {
|
|
202
|
-
item.y = this.gridster.movingItem ? this.gridster.movingItem.y : 0;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
if (this.gridster.checkCollision(item)) {
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
return item;
|
|
209
|
-
};
|
|
210
|
-
GridsterEmptyCell.ctorParameters = function () { return [
|
|
211
|
-
{ type: GridsterComponentInterface }
|
|
212
|
-
]; };
|
|
213
|
-
GridsterEmptyCell = tslib_1.__decorate([
|
|
214
|
-
Injectable(),
|
|
215
|
-
tslib_1.__metadata("design:paramtypes", [GridsterComponentInterface])
|
|
216
|
-
], GridsterEmptyCell);
|
|
217
|
-
return GridsterEmptyCell;
|
|
218
|
-
}());
|
|
219
|
-
export { GridsterEmptyCell };
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJFbXB0eUNlbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzY2huZWlkZXJlc3MvZGFzaGJvYXJkZnJhbWV3b3JrLyIsInNvdXJjZXMiOlsiZ3JpZHN0ZXIvbGliL2dyaWRzdGVyRW1wdHlDZWxsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBR2hFO0lBZUUsMkJBQW9CLFFBQW9DO1FBQXBDLGFBQVEsR0FBUixRQUFRLENBQTRCO0lBQ3hELENBQUM7SUFFRCxtQ0FBTyxHQUFQO1FBQ0UsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFDaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRTtZQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzlCO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQseUNBQWEsR0FBYjtRQUFBLGlCQTJDQztRQTFDQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLG9CQUFvQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTtZQUN2SCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1B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LENBQUMsQ0FBQyxDQUFDO2FBQ3BCO2lCQUFNLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLG9CQUFvQixHQUFHLENBQUMsRUFBRTtnQkFDL0UsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEU7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEMsT0FBTztTQUNSO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOztnQkEzTTZCLDBCQUEwQjs7SUFmN0MsaUJBQWlCO1FBRDdCLFVBQVUsRUFBRTtpREFnQm1CLDBCQUEwQjtPQWY3QyxpQkFBaUIsQ0EyTjdCO0lBQUQsd0JBQUM7Q0FBQSxBQTNORCxJQTJOQztTQTNOWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtHcmlkc3RlclV0aWxzfSBmcm9tICcuL2dyaWRzdGVyVXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7R3JpZHN0ZXJJdGVtfSBmcm9tICcuL2dyaWRzdGVySXRlbS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0dyaWRzdGVyQ29tcG9uZW50SW50ZXJmYWNlfSBmcm9tICcuL2dyaWRzdGVyLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBHcmlkc3RlckVtcHR5Q2VsbCB7XHJcbiAgaW5pdGlhbEl0ZW06IEdyaWRzdGVySXRlbSB8IG51bGw7XHJcbiAgZW1wdHlDZWxsQ2xpY2s6IEZ1bmN0aW9uIHwgbnVsbDtcclxuICBlbXB0eUNlbGxDbGlja1RvdWNoOiBGdW5jdGlvbiB8IG51bGw7XHJcbiAgZW1wdHlDZWxsQ29udGV4dE1lbnU6IEZ1bmN0aW9uIHwgbnVsbDtcclxuICBlbXB0eUNlbGxEcm9wOiBGdW5jdGlvbiB8IG51bGw7XHJcbiAgZW1wdHlDZWxsRHJhZzogRnVuY3Rpb24gfCBudWxsO1xyXG4gIGVtcHR5Q2VsbERyYWdUb3VjaDogRnVuY3Rpb24gfCBudWxsO1xyXG4gIGVtcHR5Q2VsbE1Nb3ZlOiBGdW5jdGlvbjtcclxuICBlbXB0eUNlbGxNTW92ZVRvdWNoOiBGdW5jdGlvbjtcclxuICBlbXB0eUNlbGxVcDogRnVuY3Rpb247XHJcbiAgZW1wdHlDZWxsVXBUb3VjaDogRnVuY3Rpb247XHJcbiAgZW1wdHlDZWxsTW92ZTogRnVuY3Rpb24gfCBudWxsO1xyXG4gIGVtcHR5Q2VsbEV4aXQ6IEZ1bmN0aW9uIHwgbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBncmlkc3RlcjogR3JpZHN0ZXJDb21wb25lbnRJbnRlcmZhY2UpIHtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBkZWxldGUgdGhpcy5pbml0aWFsSXRlbTtcclxuICAgIGRlbGV0ZSB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW07XHJcbiAgICBpZiAodGhpcy5ncmlkc3Rlci5wcmV2aWV3U3R5bGUpIHtcclxuICAgICAgdGhpcy5ncmlkc3Rlci5wcmV2aWV3U3R5bGUoKTtcclxuICAgIH1cclxuICAgIGRlbGV0ZSB0aGlzLmdyaWRzdGVyO1xyXG4gICAgaWYgKHRoaXMuZW1wdHlDZWxsRXhpdCkge1xyXG4gICAgICB0aGlzLmVtcHR5Q2VsbEV4aXQoKTtcclxuICAgICAgdGhpcy5lbXB0eUNlbGxFeGl0ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZU9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5lbmFibGVFbXB0eUNlbGxDbGljayAmJiAhdGhpcy5lbXB0eUNlbGxDbGljayAmJiB0aGlzLmdyaWRzdGVyLm9wdGlvbnMuZW1wdHlDZWxsQ2xpY2tDYWxsYmFjaykge1xyXG4gICAgICB0aGlzLmVtcHR5Q2VsbENsaWNrID0gdGhpcy5ncmlkc3Rlci5yZW5kZXJlci5saXN0ZW4odGhpcy5ncmlkc3Rlci5lbCwgJ2NsaWNrJywgdGhpcy5lbXB0eUNlbGxDbGlja0NiLmJpbmQodGhpcykpO1xyXG4gICAgICB0aGlzLmVtcHR5Q2VsbENsaWNrVG91Y2ggPSB0aGlzLmdyaWRzdGVyLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmdyaWRzdGVyLmVsLCAndG91Y2hlbmQnLCB0aGlzLmVtcHR5Q2VsbENsaWNrQ2IuYmluZCh0aGlzKSk7XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVuYWJsZUVtcHR5Q2VsbENsaWNrICYmIHRoaXMuZW1wdHlDZWxsQ2xpY2sgJiYgdGhpcy5lbXB0eUNlbGxDbGlja1RvdWNoKSB7XHJcbiAgICAgIHRoaXMuZW1wdHlDZWxsQ2xpY2soKTtcclxuICAgICAgdGhpcy5lbXB0eUNlbGxDbGlja1RvdWNoKCk7XHJcbiAgICAgIHRoaXMuZW1wdHlDZWxsQ2xpY2sgPSBudWxsO1xyXG4gICAgICB0aGlzLmVtcHR5Q2VsbENsaWNrVG91Y2ggPSBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZW5hYmxlRW1wdHlDZWxsQ29udGV4dE1lbnUgJiYgIXRoaXMuZW1wdHlDZWxsQ29udGV4dE1lbnUgJiZcclxuICAgICAgdGhpcy5ncmlkc3Rlci5vcHRpb25zLmVtcHR5Q2VsbENvbnRleHRNZW51Q2FsbGJhY2spIHtcclxuICAgICAgdGhpcy5lbXB0eUNlbGxDb250ZXh0TWVudSA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKHRoaXMuZ3JpZHN0ZXIuZWwsICdjb250ZXh0bWVudScsIHRoaXMuZW1wdHlDZWxsQ29udGV4dE1lbnVDYi5iaW5kKHRoaXMpKTtcclxuICAgIH0gZWxzZSBpZiAoIXRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZW5hYmxlRW1wdHlDZWxsQ29udGV4dE1lbnUgJiYgdGhpcy5lbXB0eUNlbGxDb250ZXh0TWVudSkge1xyXG4gICAgICB0aGlzLmVtcHR5Q2VsbENvbnRleHRNZW51KCk7XHJcbiAgICAgIHRoaXMuZW1wdHlDZWxsQ29udGV4dE1lbnUgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZW5hYmxlRW1wdHlDZWxsRHJvcCAmJiAhdGhpcy5lbXB0eUNlbGxEcm9wICYmIHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5lbXB0eUNlbGxEcm9wQ2FsbGJhY2spIHtcclxuICAgICAgdGhpcy5lbXB0eUNlbGxEcm9wID0gdGhpcy5ncmlkc3Rlci5yZW5kZXJlci5saXN0ZW4odGhpcy5ncmlkc3Rlci5lbCwgJ2Ryb3AnLCB0aGlzLmVtcHR5Q2VsbERyYWdEcm9wLmJpbmQodGhpcykpO1xyXG4gICAgICB0aGlzLmdyaWRzdGVyLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZW1wdHlDZWxsTW92ZSA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKHRoaXMuZ3JpZHN0ZXIuZWwsICdkcmFnb3ZlcicsIHRoaXMuZW1wdHlDZWxsRHJhZ092ZXIuYmluZCh0aGlzKSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmVtcHR5Q2VsbEV4aXQgPSB0aGlzLmdyaWRzdGVyLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnZHJhZ2VuZCcsICgpID0+IHtcclxuICAgICAgICB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIucHJldmlld1N0eWxlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmICghdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5lbmFibGVFbXB0eUNlbGxEcm9wICYmIHRoaXMuZW1wdHlDZWxsRHJvcCAmJiB0aGlzLmVtcHR5Q2VsbE1vdmUgJiYgdGhpcy5lbXB0eUNlbGxFeGl0KSB7XHJcbiAgICAgIHRoaXMuZW1wdHlDZWxsRHJvcCgpO1xyXG4gICAgICB0aGlzLmVtcHR5Q2VsbE1vdmUoKTtcclxuICAgICAgdGhpcy5lbXB0eUNlbGxFeGl0KCk7XHJcbiAgICAgIHRoaXMuZW1wdHlDZWxsTW92ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuZW1wdHlDZWxsRHJvcCA9IG51bGw7XHJcbiAgICAgIHRoaXMuZW1wdHlDZWxsRXhpdCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5lbmFibGVFbXB0eUNlbGxEcmFnICYmICF0aGlzLmVtcHR5Q2VsbERyYWcgJiYgdGhpcy5ncmlkc3Rlci5vcHRpb25zLmVtcHR5Q2VsbERyYWdDYWxsYmFjaykge1xyXG4gICAgICB0aGlzLmVtcHR5Q2VsbERyYWcgPSB0aGlzLmdyaWRzdGVyLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmdyaWRzdGVyLmVsLCAnbW91c2Vkb3duJywgdGhpcy5lbXB0eUNlbGxNb3VzZURvd24uYmluZCh0aGlzKSk7XHJcbiAgICAgIHRoaXMuZW1wdHlDZWxsRHJhZ1RvdWNoID0gdGhpcy5ncmlkc3Rlci5yZW5kZXJlci5saXN0ZW4odGhpcy5ncmlkc3Rlci5lbCwgJ3RvdWNoc3RhcnQnLCB0aGlzLmVtcHR5Q2VsbE1vdXNlRG93bi5iaW5kKHRoaXMpKTtcclxuICAgIH0gZWxzZSBpZiAoIXRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZW5hYmxlRW1wdHlDZWxsRHJhZyAmJiB0aGlzLmVtcHR5Q2VsbERyYWcgJiYgdGhpcy5lbXB0eUNlbGxEcmFnVG91Y2gpIHtcclxuICAgICAgdGhpcy5lbXB0eUNlbGxEcmFnKCk7XHJcbiAgICAgIHRoaXMuZW1wdHlDZWxsRHJhZ1RvdWNoKCk7XHJcbiAgICAgIHRoaXMuZW1wdHlDZWxsRHJhZyA9IG51bGw7XHJcbiAgICAgIHRoaXMuZW1wdHlDZWxsRHJhZ1RvdWNoID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGVtcHR5Q2VsbENsaWNrQ2IoZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtIHx8IEdyaWRzdGVyVXRpbHMuY2hlY2tDb250ZW50Q2xhc3NGb3JFbXB0eUNlbGxDbGlja0V2ZW50KHRoaXMuZ3JpZHN0ZXIsIGUpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldFZhbGlkSXRlbUZyb21FdmVudChlKTtcclxuICAgIGlmICghaXRlbSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ncmlkc3Rlci5vcHRpb25zLmVtcHR5Q2VsbENsaWNrQ2FsbGJhY2spIHtcclxuICAgICAgdGhpcy5ncmlkc3Rlci5vcHRpb25zLmVtcHR5Q2VsbENsaWNrQ2FsbGJhY2soZSwgaXRlbSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdyaWRzdGVyLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgZW1wdHlDZWxsQ29udGV4dE1lbnVDYihlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0gfHwgR3JpZHN0ZXJVdGlscy5jaGVja0NvbnRlbnRDbGFzc0ZvckVtcHR5Q2VsbENsaWNrRXZlbnQodGhpcy5ncmlkc3RlciwgZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldFZhbGlkSXRlbUZyb21FdmVudChlKTtcclxuICAgIGlmICghaXRlbSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ncmlkc3Rlci5vcHRpb25zLmVtcHR5Q2VsbENvbnRleHRNZW51Q2FsbGJhY2spIHtcclxuICAgICAgdGhpcy5ncmlkc3Rlci5vcHRpb25zLmVtcHR5Q2VsbENvbnRleHRNZW51Q2FsbGJhY2soZSwgaXRlbSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdyaWRzdGVyLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgZW1wdHlDZWxsRHJhZ0Ryb3AoZTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRWYWxpZEl0ZW1Gcm9tRXZlbnQoZSk7XHJcbiAgICBpZiAoIWl0ZW0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5lbXB0eUNlbGxEcm9wQ2FsbGJhY2spIHtcclxuICAgICAgdGhpcy5ncmlkc3Rlci5vcHRpb25zLmVtcHR5Q2VsbERyb3BDYWxsYmFjayhlLCBpdGVtKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ3JpZHN0ZXIuY2RSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBlbXB0eUNlbGxEcmFnT3ZlcihlOiBhbnkpOiB2b2lkIHtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRWYWxpZEl0ZW1Gcm9tRXZlbnQoZSk7XHJcbiAgICBpZiAoaXRlbSkge1xyXG4gICAgICBlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gJ21vdmUnO1xyXG4gICAgICB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0gPSBpdGVtO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdub25lJztcclxuICAgICAgdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZ3JpZHN0ZXIucHJldmlld1N0eWxlKCk7XHJcbiAgfVxyXG5cclxuICBlbXB0eUNlbGxNb3VzZURvd24oZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoR3JpZHN0ZXJVdGlscy5jaGVja0NvbnRlbnRDbGFzc0ZvckVtcHR5Q2VsbENsaWNrRXZlbnQodGhpcy5ncmlkc3RlciwgZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldFZhbGlkSXRlbUZyb21FdmVudChlKTtcclxuICAgIGNvbnN0IGxlZnRNb3VzZUJ1dHRvbkNvZGUgPSAxO1xyXG4gICAgaWYgKCFpdGVtIHx8IGUuYnV0dG9ucyAhPT0gbGVmdE1vdXNlQnV0dG9uQ29kZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmluaXRpYWxJdGVtID0gaXRlbTtcclxuICAgIHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbSA9IGl0ZW07XHJcbiAgICB0aGlzLmdyaWRzdGVyLnByZXZpZXdTdHlsZSgpO1xyXG4gICAgdGhpcy5ncmlkc3Rlci56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgdGhpcy5lbXB0eUNlbGxNTW92ZSA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnbW91c2Vtb3ZlJywgdGhpcy5lbXB0eUNlbGxNb3VzZU1vdmUuYmluZCh0aGlzKSk7XHJcbiAgICAgIHRoaXMuZW1wdHlDZWxsTU1vdmVUb3VjaCA9IHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAndG91Y2htb3ZlJywgdGhpcy5lbXB0eUNlbGxNb3VzZU1vdmUuYmluZCh0aGlzKSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZW1wdHlDZWxsVXAgPSB0aGlzLmdyaWRzdGVyLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ21vdXNldXAnLCB0aGlzLmVtcHR5Q2VsbE1vdXNlVXAuYmluZCh0aGlzKSk7XHJcbiAgICB0aGlzLmVtcHR5Q2VsbFVwVG91Y2ggPSB0aGlzLmdyaWRzdGVyLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ3RvdWNoZW5kJywgdGhpcy5lbXB0eUNlbGxNb3VzZVVwLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgZW1wdHlDZWxsTW91c2VNb3ZlKGU6IGFueSk6IHZvaWQge1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldFZhbGlkSXRlbUZyb21FdmVudChlLCB0aGlzLmluaXRpYWxJdGVtKTtcclxuICAgIGlmICghaXRlbSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtID0gaXRlbTtcclxuICAgIHRoaXMuZ3JpZHN0ZXIucHJldmlld1N0eWxlKCk7XHJcbiAgfVxyXG5cclxuICBlbXB0eUNlbGxNb3VzZVVwKGU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5lbXB0eUNlbGxNTW92ZSgpO1xyXG4gICAgdGhpcy5lbXB0eUNlbGxNTW92ZVRvdWNoKCk7XHJcbiAgICB0aGlzLmVtcHR5Q2VsbFVwKCk7XHJcbiAgICB0aGlzLmVtcHR5Q2VsbFVwVG91Y2goKTtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldFZhbGlkSXRlbUZyb21FdmVudChlLCB0aGlzLmluaXRpYWxJdGVtKTtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbSA9IGl0ZW07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ncmlkc3Rlci5vcHRpb25zLmVtcHR5Q2VsbERyYWdDYWxsYmFjayAmJiB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0pIHtcclxuICAgICAgdGhpcy5ncmlkc3Rlci5vcHRpb25zLmVtcHR5Q2VsbERyYWdDYWxsYmFjayhlLCB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0pO1xyXG4gICAgfVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbEl0ZW0gPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5ncmlkc3Rlcikge1xyXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci5wcmV2aWV3U3R5bGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmdyaWRzdGVyLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsaWRJdGVtRnJvbUV2ZW50KGU6IGFueSwgb2xkSXRlbT86IEdyaWRzdGVySXRlbSB8IG51bGwpOiBHcmlkc3Rlckl0ZW0gfCB1bmRlZmluZWQge1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIEdyaWRzdGVyVXRpbHMuY2hlY2tUb3VjaEV2ZW50KGUpO1xyXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZ3JpZHN0ZXIuZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCB4ID0gZS5jbGllbnRYICsgdGhpcy5ncmlkc3Rlci5lbC5zY3JvbGxMZWZ0IC0gcmVjdC5sZWZ0IC0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW47XHJcbiAgICBjb25zdCB5ID0gZS5jbGllbnRZICsgdGhpcy5ncmlkc3Rlci5lbC5zY3JvbGxUb3AgLSByZWN0LnRvcCAtIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMubWFyZ2luO1xyXG4gICAgY29uc3QgaXRlbTogR3JpZHN0ZXJJdGVtID0ge1xyXG4gICAgICB4OiB0aGlzLmdyaWRzdGVyLnBpeGVsc1RvUG9zaXRpb25YKHgsIE1hdGguZmxvb3IsIHRydWUpLFxyXG4gICAgICB5OiB0aGlzLmdyaWRzdGVyLnBpeGVsc1RvUG9zaXRpb25ZKHksIE1hdGguZmxvb3IsIHRydWUpLFxyXG4gICAgICBjb2xzOiB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmRlZmF1bHRJdGVtQ29scyxcclxuICAgICAgcm93czogdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5kZWZhdWx0SXRlbVJvd3NcclxuICAgIH07XHJcbiAgICBpZiAob2xkSXRlbSkge1xyXG4gICAgICBpdGVtLmNvbHMgPSBNYXRoLm1pbihNYXRoLmFicyhvbGRJdGVtLnggLSBpdGVtLngpICsgMSwgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5lbXB0eUNlbGxEcmFnTWF4Q29scyk7XHJcbiAgICAgIGl0ZW0ucm93cyA9IE1hdGgubWluKE1hdGguYWJzKG9sZEl0ZW0ueSAtIGl0ZW0ueSkgKyAxLCB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVtcHR5Q2VsbERyYWdNYXhSb3dzKTtcclxuICAgICAgaWYgKG9sZEl0ZW0ueCA8IGl0ZW0ueCkge1xyXG4gICAgICAgIGl0ZW0ueCA9IG9sZEl0ZW0ueDtcclxuICAgICAgfSBlbHNlIGlmIChvbGRJdGVtLnggLSBpdGVtLnggPiB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmVtcHR5Q2VsbERyYWdNYXhDb2xzIC0gMSkge1xyXG4gICAgICAgIGl0ZW0ueCA9IHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbSA/IHRoaXMuZ3JpZHN0ZXIubW92aW5nSXRlbS54IDogMDtcclxuICAgICAgfVxyXG4gICAgICBpZiAob2xkSXRlbS55IDwgaXRlbS55KSB7XHJcbiAgICAgICAgaXRlbS55ID0gb2xkSXRlbS55O1xyXG4gICAgICB9IGVsc2UgaWYgKG9sZEl0ZW0ueSAtIGl0ZW0ueSA+IHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZW1wdHlDZWxsRHJhZ01heFJvd3MgLSAxKSB7XHJcbiAgICAgICAgaXRlbS55ID0gdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtID8gdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtLnkgOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ncmlkc3Rlci5jaGVja0NvbGxpc2lvbihpdGVtKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import * as tslib_1 from "tslib";
|
|
2
|
-
import { Component, ElementRef, Host, Input, NgZone, OnDestroy, OnInit, 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 { GridsterComponent } from './gridster.component';
|
|
7
|
-
var GridsterItemComponent = /** @class */ (function () {
|
|
8
|
-
function GridsterItemComponent(el, gridster, renderer, zone) {
|
|
9
|
-
this.renderer = renderer;
|
|
10
|
-
this.zone = zone;
|
|
11
|
-
this.el = el.nativeElement;
|
|
12
|
-
this.$item = {
|
|
13
|
-
cols: -1,
|
|
14
|
-
rows: -1,
|
|
15
|
-
x: -1,
|
|
16
|
-
y: -1,
|
|
17
|
-
};
|
|
18
|
-
this.gridster = gridster;
|
|
19
|
-
this.drag = new GridsterDraggable(this, gridster, this.zone);
|
|
20
|
-
this.resize = new GridsterResizable(this, gridster, this.zone);
|
|
21
|
-
}
|
|
22
|
-
GridsterItemComponent.prototype.ngOnInit = function () {
|
|
23
|
-
this.updateOptions();
|
|
24
|
-
this.gridster.addItem(this);
|
|
25
|
-
};
|
|
26
|
-
GridsterItemComponent.prototype.updateOptions = function () {
|
|
27
|
-
this.$item = GridsterUtils.merge(this.$item, this.item, {
|
|
28
|
-
cols: undefined,
|
|
29
|
-
rows: undefined,
|
|
30
|
-
x: undefined,
|
|
31
|
-
y: undefined,
|
|
32
|
-
dragEnabled: undefined,
|
|
33
|
-
resizeEnabled: undefined,
|
|
34
|
-
compactEnabled: undefined,
|
|
35
|
-
maxItemRows: undefined,
|
|
36
|
-
minItemRows: undefined,
|
|
37
|
-
maxItemCols: undefined,
|
|
38
|
-
minItemCols: undefined,
|
|
39
|
-
maxItemArea: undefined,
|
|
40
|
-
minItemArea: undefined,
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
GridsterItemComponent.prototype.ngOnDestroy = function () {
|
|
44
|
-
this.gridster.removeItem(this);
|
|
45
|
-
this.gridster.movingItem = null;
|
|
46
|
-
delete this.gridster;
|
|
47
|
-
this.drag.destroy();
|
|
48
|
-
delete this.drag;
|
|
49
|
-
this.resize.destroy();
|
|
50
|
-
delete this.resize;
|
|
51
|
-
};
|
|
52
|
-
GridsterItemComponent.prototype.setSize = function () {
|
|
53
|
-
this.renderer.setStyle(this.el, 'display', this.notPlaced ? '' : 'block');
|
|
54
|
-
this.gridster.gridRenderer.updateItem(this.el, this.$item, this.renderer);
|
|
55
|
-
this.updateItemSize();
|
|
56
|
-
};
|
|
57
|
-
GridsterItemComponent.prototype.updateItemSize = function () {
|
|
58
|
-
var top = this.$item.y * this.gridster.curRowHeight;
|
|
59
|
-
var left = this.$item.x * this.gridster.curColWidth;
|
|
60
|
-
var width = this.$item.cols * this.gridster.curColWidth - this.gridster.$options.margin;
|
|
61
|
-
var height = this.$item.rows * this.gridster.curRowHeight - this.gridster.$options.margin;
|
|
62
|
-
if (!this.init && width > 0 && height > 0) {
|
|
63
|
-
this.init = true;
|
|
64
|
-
if (this.item.initCallback) {
|
|
65
|
-
this.item.initCallback(this.item, this);
|
|
66
|
-
}
|
|
67
|
-
if (this.gridster.options.itemInitCallback) {
|
|
68
|
-
this.item.curRowHeight = this.gridster.curRowHeight;
|
|
69
|
-
this.gridster.options.itemInitCallback(this.item, this);
|
|
70
|
-
}
|
|
71
|
-
if (this.gridster.$options.scrollToNewItems) {
|
|
72
|
-
this.el.scrollIntoView(false);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
if (width !== this.width || height !== this.height) {
|
|
76
|
-
this.width = width;
|
|
77
|
-
this.height = height;
|
|
78
|
-
if (this.gridster.options.itemResizeCallback) {
|
|
79
|
-
this.gridster.options.itemResizeCallback(this.item, this);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
this.top = top;
|
|
83
|
-
this.left = left;
|
|
84
|
-
};
|
|
85
|
-
GridsterItemComponent.prototype.itemChanged = function () {
|
|
86
|
-
if (this.gridster.options.itemChangeCallback) {
|
|
87
|
-
this.item.curRowHeight = this.gridster.curRowHeight;
|
|
88
|
-
this.gridster.options.itemChangeCallback(this.item, this);
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
GridsterItemComponent.prototype.checkItemChanges = function (newValue, oldValue) {
|
|
92
|
-
if (newValue.rows === oldValue.rows && newValue.cols === oldValue.cols && newValue.x === oldValue.x && newValue.y === oldValue.y) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
if (this.gridster.checkCollision(this.$item)) {
|
|
96
|
-
this.$item.x = oldValue.x || 0;
|
|
97
|
-
this.$item.y = oldValue.y || 0;
|
|
98
|
-
this.$item.cols = oldValue.cols || 1;
|
|
99
|
-
this.$item.rows = oldValue.rows || 1;
|
|
100
|
-
this.setSize();
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
this.item.cols = this.$item.cols;
|
|
104
|
-
this.item.rows = this.$item.rows;
|
|
105
|
-
this.item.x = this.$item.x;
|
|
106
|
-
this.item.y = this.$item.y;
|
|
107
|
-
this.gridster.calculateLayoutDebounce();
|
|
108
|
-
this.itemChanged();
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
GridsterItemComponent.prototype.canBeDragged = function () {
|
|
112
|
-
return !this.gridster.mobile &&
|
|
113
|
-
(this.$item.dragEnabled === undefined ? this.gridster.$options.draggable.enabled : this.$item.dragEnabled);
|
|
114
|
-
};
|
|
115
|
-
GridsterItemComponent.prototype.canBeResized = function () {
|
|
116
|
-
return !this.gridster.mobile &&
|
|
117
|
-
(this.$item.resizeEnabled === undefined ? this.gridster.$options.resizable.enabled : this.$item.resizeEnabled);
|
|
118
|
-
};
|
|
119
|
-
GridsterItemComponent.ctorParameters = function () { return [
|
|
120
|
-
{ type: ElementRef },
|
|
121
|
-
{ type: GridsterComponent, decorators: [{ type: Host }] },
|
|
122
|
-
{ type: Renderer2 },
|
|
123
|
-
{ type: NgZone }
|
|
124
|
-
]; };
|
|
125
|
-
tslib_1.__decorate([
|
|
126
|
-
Input(),
|
|
127
|
-
tslib_1.__metadata("design:type", Object)
|
|
128
|
-
], GridsterItemComponent.prototype, "item", void 0);
|
|
129
|
-
GridsterItemComponent = tslib_1.__decorate([
|
|
130
|
-
Component({
|
|
131
|
-
selector: 'gridster-item',
|
|
132
|
-
template: "<ng-content></ng-content>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.s || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-s\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.e || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-e\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.n || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-n\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.w || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-w\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.se || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-se\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.ne || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-ne\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.sw || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-sw\"></div>\r\n<div (mousedown)=\"resize.dragStartDelay($event)\" (touchstart)=\"resize.dragStartDelay($event)\"\r\n [hidden]=\"!gridster.$options.resizable.handles.nw || !resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-nw\"></div>\r\n",
|
|
133
|
-
encapsulation: ViewEncapsulation.None,
|
|
134
|
-
styles: ["gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;transition:.3s;display:none;background:#fff;-webkit-user-select:text;-moz-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-moving,gridster-item.gridster-item-resizing{transition:none;z-index:2;box-shadow:0 0 5px 5px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:n-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:e-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:s-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:w-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}"]
|
|
135
|
-
}),
|
|
136
|
-
tslib_1.__param(1, Host()),
|
|
137
|
-
tslib_1.__metadata("design:paramtypes", [ElementRef, GridsterComponent, Renderer2, NgZone])
|
|
138
|
-
], GridsterItemComponent);
|
|
139
|
-
return GridsterItemComponent;
|
|
140
|
-
}());
|
|
141
|
-
export { GridsterItemComponent };
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJJdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzY2huZWlkZXJlc3MvZGFzaGJvYXJkZnJhbWV3b3JrLyIsInNvdXJjZXMiOlsiZ3JpZHN0ZXIvbGliL2dyaWRzdGVySXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzFILE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUV0RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQVF2RDtJQWNFLCtCQUFZLEVBQWMsRUFBVSxRQUEyQixFQUFTLFFBQW1CLEVBQVUsSUFBWTtRQUF6QyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUMvRyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLElBQUksRUFBRSxDQUFDLENBQUM7WUFDUixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ1IsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNMLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDTixDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGlCQUFpQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdELElBQUks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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3QsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7R3JpZHN0ZXJJdGVtfSBmcm9tICcuL2dyaWRzdGVySXRlbS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0dyaWRzdGVyRHJhZ2dhYmxlfSBmcm9tICcuL2dyaWRzdGVyRHJhZ2dhYmxlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0dyaWRzdGVyUmVzaXphYmxlfSBmcm9tICcuL2dyaWRzdGVyUmVzaXphYmxlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0dyaWRzdGVyVXRpbHN9IGZyb20gJy4vZ3JpZHN0ZXJVdGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHtHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2V9IGZyb20gJy4vZ3JpZHN0ZXJJdGVtQ29tcG9uZW50LmludGVyZmFjZSc7XHJcbmltcG9ydCB7R3JpZHN0ZXJDb21wb25lbnR9IGZyb20gJy4vZ3JpZHN0ZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZ3JpZHN0ZXItaXRlbScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWRzdGVySXRlbS5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ncmlkc3Rlckl0ZW0uY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JpZHN0ZXJJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZSB7XHJcbiAgQElucHV0KCkgaXRlbTogR3JpZHN0ZXJJdGVtO1xyXG4gICRpdGVtOiBHcmlkc3Rlckl0ZW07XHJcbiAgZWw6IGFueTtcclxuICBncmlkc3RlcjogR3JpZHN0ZXJDb21wb25lbnQ7XHJcbiAgdG9wOiBudW1iZXI7XHJcbiAgbGVmdDogbnVtYmVyO1xyXG4gIHdpZHRoOiBudW1iZXI7XHJcbiAgaGVpZ2h0OiBudW1iZXI7XHJcbiAgZHJhZzogR3JpZHN0ZXJEcmFnZ2FibGU7XHJcbiAgcmVzaXplOiBHcmlkc3RlclJlc2l6YWJsZTtcclxuICBub3RQbGFjZWQ6IGJvb2xlYW47XHJcbiAgaW5pdDogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYsIEBIb3N0KCkgZ3JpZHN0ZXI6IEdyaWRzdGVyQ29tcG9uZW50LCBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHtcclxuICAgIHRoaXMuZWwgPSBlbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy4kaXRlbSA9IHtcclxuICAgICAgY29sczogLTEsXHJcbiAgICAgIHJvd3M6IC0xLFxyXG4gICAgICB4OiAtMSxcclxuICAgICAgeTogLTEsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5ncmlkc3RlciA9IGdyaWRzdGVyO1xyXG4gICAgdGhpcy5kcmFnID0gbmV3IEdyaWRzdGVyRHJhZ2dhYmxlKHRoaXMsIGdyaWRzdGVyLCB0aGlzLnpvbmUpO1xyXG4gICAgdGhpcy5yZXNpemUgPSBuZXcgR3JpZHN0ZXJSZXNpemFibGUodGhpcywgZ3JpZHN0ZXIsIHRoaXMuem9uZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlT3B0aW9ucygpO1xyXG4gICAgdGhpcy5ncmlkc3Rlci5hZGRJdGVtKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlT3B0aW9ucygpOiB2b2lkIHtcclxuICAgIHRoaXMuJGl0ZW0gPSBHcmlkc3RlclV0aWxzLm1lcmdlKHRoaXMuJGl0ZW0sIHRoaXMuaXRlbSwge1xyXG4gICAgICBjb2xzOiB1bmRlZmluZWQsXHJcbiAgICAgIHJvd3M6IHVuZGVmaW5lZCxcclxuICAgICAgeDogdW5kZWZpbmVkLFxyXG4gICAgICB5OiB1bmRlZmluZWQsXHJcbiAgICAgIGRyYWdFbmFibGVkOiB1bmRlZmluZWQsXHJcbiAgICAgIHJlc2l6ZUVuYWJsZWQ6IHVuZGVmaW5lZCxcclxuICAgICAgY29tcGFjdEVuYWJsZWQ6IHVuZGVmaW5lZCxcclxuICAgICAgbWF4SXRlbVJvd3M6IHVuZGVmaW5lZCxcclxuICAgICAgbWluSXRlbVJvd3M6IHVuZGVmaW5lZCxcclxuICAgICAgbWF4SXRlbUNvbHM6IHVuZGVmaW5lZCxcclxuICAgICAgbWluSXRlbUNvbHM6IHVuZGVmaW5lZCxcclxuICAgICAgbWF4SXRlbUFyZWE6IHVuZGVmaW5lZCxcclxuICAgICAgbWluSXRlbUFyZWE6IHVuZGVmaW5lZCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7ICAgICAgIFxyXG4gICAgdGhpcy5ncmlkc3Rlci5yZW1vdmVJdGVtKHRoaXMpO1xyXG4gICAgdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtPW51bGw7XHJcbiAgICBkZWxldGUgdGhpcy5ncmlkc3RlcjtcclxuICAgIHRoaXMuZHJhZy5kZXN0cm95KCk7XHJcbiAgICBkZWxldGUgdGhpcy5kcmFnO1xyXG4gICAgdGhpcy5yZXNpemUuZGVzdHJveSgpO1xyXG4gICAgZGVsZXRlIHRoaXMucmVzaXplO1xyXG4gIH1cclxuXHJcbiAgc2V0U2l6ZSgpOiB2b2lkIHsgICBcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbCwgJ2Rpc3BsYXknLCB0aGlzLm5vdFBsYWNlZCA/ICcnIDogJ2Jsb2NrJyk7XHJcbiAgICB0aGlzLmdyaWRzdGVyLmdyaWRSZW5kZXJlci51cGRhdGVJdGVtKHRoaXMuZWwsIHRoaXMuJGl0ZW0sIHRoaXMucmVuZGVyZXIpO1xyXG4gICAgdGhpcy51cGRhdGVJdGVtU2l6ZSgpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlSXRlbVNpemUoKSB7XHJcbiAgICBjb25zdCB0b3AgPSB0aGlzLiRpdGVtLnkgKiB0aGlzLmdyaWRzdGVyLmN1clJvd0hlaWdodDtcclxuICAgIGNvbnN0IGxlZnQgPSB0aGlzLiRpdGVtLnggKiB0aGlzLmdyaWRzdGVyLmN1ckNvbFdpZHRoO1xyXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLiRpdGVtLmNvbHMgKiB0aGlzLmdyaWRzdGVyLmN1ckNvbFdpZHRoIC0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW47XHJcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLiRpdGVtLnJvd3MgKiB0aGlzLmdyaWRzdGVyLmN1clJvd0hlaWdodCAtIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMubWFyZ2luO1xyXG5cclxuICAgIGlmICghdGhpcy5pbml0ICYmIHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwKSB7XHJcbiAgICAgIHRoaXMuaW5pdCA9IHRydWU7XHJcbiAgICAgIGlmICh0aGlzLml0ZW0uaW5pdENhbGxiYWNrKSB7XHJcbiAgICAgICAgdGhpcy5pdGVtLmluaXRDYWxsYmFjayh0aGlzLml0ZW0sIHRoaXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbUluaXRDYWxsYmFjaykge1xyXG4gICAgICAgIHRoaXMuaXRlbS5jdXJSb3dIZWlnaHQ9dGhpcy5ncmlkc3Rlci5jdXJSb3dIZWlnaHQ7XHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci5vcHRpb25zLml0ZW1Jbml0Q2FsbGJhY2sodGhpcy5pdGVtLCB0aGlzKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5zY3JvbGxUb05ld0l0ZW1zKSB7XHJcbiAgICAgICAgdGhpcy5lbC5zY3JvbGxJbnRvVmlldyhmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh3aWR0aCAhPT0gdGhpcy53aWR0aCB8fCBoZWlnaHQgIT09IHRoaXMuaGVpZ2h0KSB7XHJcbiAgICAgIHRoaXMud2lkdGggPSB3aWR0aDtcclxuICAgICAgdGhpcy5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICAgIGlmICh0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbVJlc2l6ZUNhbGxiYWNrKSB7XHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci5vcHRpb25zLml0ZW1SZXNpemVDYWxsYmFjayh0aGlzLml0ZW0sIHRoaXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnRvcCA9IHRvcDtcclxuICAgIHRoaXMubGVmdCA9IGxlZnQ7XHJcbiAgfVxyXG5cclxuICBpdGVtQ2hhbmdlZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmdyaWRzdGVyLm9wdGlvbnMuaXRlbUNoYW5nZUNhbGxiYWNrKSB7XHJcbiAgICAgIHRoaXMuaXRlbS5jdXJSb3dIZWlnaHQ9dGhpcy5ncmlkc3Rlci5jdXJSb3dIZWlnaHQ7XHJcbiAgICAgIHRoaXMuZ3JpZHN0ZXIub3B0aW9ucy5pdGVtQ2hhbmdlQ2FsbGJhY2sodGhpcy5pdGVtLCB0aGlzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrSXRlbUNoYW5nZXMobmV3VmFsdWU6IEdyaWRzdGVySXRlbSwgb2xkVmFsdWU6IEdyaWRzdGVySXRlbSk6IHZvaWQge1xyXG4gICAgaWYgKG5ld1ZhbHVlLnJvd3MgPT09IG9sZFZhbHVlLnJvd3MgJiYgbmV3VmFsdWUuY29scyA9PT0gb2xkVmFsdWUuY29scyAmJiBuZXdWYWx1ZS54ID09PSBvbGRWYWx1ZS54ICYmIG5ld1ZhbHVlLnkgPT09IG9sZFZhbHVlLnkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIuY2hlY2tDb2xsaXNpb24odGhpcy4kaXRlbSkpIHtcclxuICAgICAgdGhpcy4kaXRlbS54ID0gb2xkVmFsdWUueCB8fCAwO1xyXG4gICAgICB0aGlzLiRpdGVtLnkgPSBvbGRWYWx1ZS55IHx8IDA7XHJcbiAgICAgIHRoaXMuJGl0ZW0uY29scyA9IG9sZFZhbHVlLmNvbHMgfHwgMTtcclxuICAgICAgdGhpcy4kaXRlbS5yb3dzID0gb2xkVmFsdWUucm93cyB8fCAxO1xyXG4gICAgICB0aGlzLnNldFNpemUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXRlbS5jb2xzID0gdGhpcy4kaXRlbS5jb2xzO1xyXG4gICAgICB0aGlzLml0ZW0ucm93cyA9IHRoaXMuJGl0ZW0ucm93cztcclxuICAgICAgdGhpcy5pdGVtLnggPSB0aGlzLiRpdGVtLng7XHJcbiAgICAgIHRoaXMuaXRlbS55ID0gdGhpcy4kaXRlbS55O1xyXG4gICAgICB0aGlzLmdyaWRzdGVyLmNhbGN1bGF0ZUxheW91dERlYm91bmNlKCk7XHJcbiAgICAgIHRoaXMuaXRlbUNoYW5nZWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbkJlRHJhZ2dlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5ncmlkc3Rlci5tb2JpbGUgJiZcclxuICAgICAgKHRoaXMuJGl0ZW0uZHJhZ0VuYWJsZWQgPT09IHVuZGVmaW5lZCA/IHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZHJhZ2dhYmxlLmVuYWJsZWQgOiB0aGlzLiRpdGVtLmRyYWdFbmFibGVkKTtcclxuICB9XHJcblxyXG4gIGNhbkJlUmVzaXplZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5ncmlkc3Rlci5tb2JpbGUgJiZcclxuICAgICAgKHRoaXMuJGl0ZW0ucmVzaXplRW5hYmxlZCA9PT0gdW5kZWZpbmVkID8gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5yZXNpemFibGUuZW5hYmxlZCA6IHRoaXMuJGl0ZW0ucmVzaXplRW5hYmxlZCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJJdGVtLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzY2huZWlkZXJlc3MvZGFzaGJvYXJkZnJhbWV3b3JrLyIsInNvdXJjZXMiOlsiZ3JpZHN0ZXIvbGliL2dyaWRzdGVySXRlbS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlfSBmcm9tICcuL2dyaWRzdGVySXRlbUNvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHcmlkc3Rlckl0ZW0ge1xyXG4gIHg6IG51bWJlcjtcclxuICB5OiBudW1iZXI7XHJcbiAgcm93czogbnVtYmVyO1xyXG4gIGNvbHM6IG51bWJlcjtcclxuICBpbml0Q2FsbGJhY2s/OiAoaXRlbTogR3JpZHN0ZXJJdGVtLCBpdGVtQ29tcG9uZW50OiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2UpID0+IHZvaWQ7XHJcbiAgZHJhZ0VuYWJsZWQ/OiBib29sZWFuO1xyXG4gIHJlc2l6ZUVuYWJsZWQ/OiBib29sZWFuO1xyXG4gIGNvbXBhY3RFbmFibGVkPzogYm9vbGVhbjtcclxuICBtYXhJdGVtUm93cz86IG51bWJlcjtcclxuICBtaW5JdGVtUm93cz86IG51bWJlcjtcclxuICBtYXhJdGVtQ29scz86IG51bWJlcjtcclxuICBtaW5JdGVtQ29scz86IG51bWJlcjtcclxuICBtaW5JdGVtQXJlYT86IG51bWJlcjtcclxuICBtYXhJdGVtQXJlYT86IG51bWJlcjtcclxuXHJcbiAgW3Byb3BOYW1lOiBzdHJpbmddOiBhbnk7XHJcbiAgLy8gaW5zdGFuY2VJZDpudW1iZXI7XHJcblxyXG5cclxuICAvL2N1c3RvbSBkZWZpbmVkXHJcbiAgY3VyUm93SGVpZ2h0PzpudW1iZXI7XHJcbiAgd2lkZ2V0SGVpZ2h0PzpudW1iZXI7XHJcbiAgd2lkZ2V0SW5mbz86YW55O1xyXG59XHJcbiJdfQ==
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
var GridsterItemComponentInterface = /** @class */ (function () {
|
|
2
|
-
function GridsterItemComponentInterface() {
|
|
3
|
-
}
|
|
4
|
-
return GridsterItemComponentInterface;
|
|
5
|
-
}());
|
|
6
|
-
export { GridsterItemComponentInterface };
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJJdGVtQ29tcG9uZW50LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzY2huZWlkZXJlc3MvZGFzaGJvYXJkZnJhbWV3b3JrLyIsInNvdXJjZXMiOlsiZ3JpZHN0ZXIvbGliL2dyaWRzdGVySXRlbUNvbXBvbmVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUE7SUFBQTtJQW1CQSxDQUFDO0lBQUQscUNBQUM7QUFBRCxDQUFDLEFBbkJELElBbUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtHcmlkc3Rlckl0ZW19IGZyb20gJy4vZ3JpZHN0ZXJJdGVtLmludGVyZmFjZSc7XHJcbmltcG9ydCB7R3JpZHN0ZXJEcmFnZ2FibGV9IGZyb20gJy4vZ3JpZHN0ZXJEcmFnZ2FibGUuc2VydmljZSc7XHJcbmltcG9ydCB7UmVuZGVyZXIyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtHcmlkc3RlclJlc2l6YWJsZX0gZnJvbSAnLi9ncmlkc3RlclJlc2l6YWJsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtHcmlkc3RlckNvbXBvbmVudEludGVyZmFjZX0gZnJvbSAnLi9ncmlkc3Rlci5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZSB7XHJcbiAgaXRlbTogR3JpZHN0ZXJJdGVtO1xyXG4gICRpdGVtOiBHcmlkc3Rlckl0ZW07XHJcbiAgdG9wOiBudW1iZXI7XHJcbiAgbGVmdDogbnVtYmVyO1xyXG4gIHdpZHRoOiBudW1iZXI7XHJcbiAgaGVpZ2h0OiBudW1iZXI7XHJcbiAgZHJhZzogR3JpZHN0ZXJEcmFnZ2FibGU7XHJcbiAgcmVzaXplOiBHcmlkc3RlclJlc2l6YWJsZTtcclxuICBub3RQbGFjZWQ6IGJvb2xlYW47XHJcbiAgdXBkYXRlT3B0aW9uczogKCkgPT4gdm9pZDtcclxuICBpdGVtQ2hhbmdlZDogKCkgPT4gdm9pZDtcclxuICBzZXRTaXplOiAoKSA9PiB2b2lkO1xyXG4gIGNoZWNrSXRlbUNoYW5nZXM6IChuZXdWYWx1ZTogR3JpZHN0ZXJJdGVtLCBvbGRWYWx1ZTogR3JpZHN0ZXJJdGVtKSA9PiB2b2lkO1xyXG4gIGNhbkJlRHJhZ2dlZDogKCkgPT4gYm9vbGVhbjtcclxuICBjYW5CZVJlc2l6ZWQ6ICgpID0+IGJvb2xlYW47XHJcbiAgZWw6IGFueTtcclxuICBncmlkc3RlcjogR3JpZHN0ZXJDb21wb25lbnRJbnRlcmZhY2U7XHJcbiAgcmVuZGVyZXI6IFJlbmRlcmVyMjtcclxufVxyXG4iXX0=
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import * as tslib_1 from "tslib";
|
|
2
|
-
import { Component, ElementRef, Host, OnDestroy, Renderer2, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import { GridsterComponent } from './gridster.component';
|
|
4
|
-
var GridsterPreviewComponent = /** @class */ (function () {
|
|
5
|
-
function GridsterPreviewComponent(el, gridster, renderer) {
|
|
6
|
-
this.renderer = renderer;
|
|
7
|
-
this.el = el.nativeElement;
|
|
8
|
-
this.gridster = gridster;
|
|
9
|
-
this.gridster.previewStyle = this.previewStyle.bind(this);
|
|
10
|
-
}
|
|
11
|
-
GridsterPreviewComponent.prototype.ngOnDestroy = function () {
|
|
12
|
-
delete this.el;
|
|
13
|
-
delete this.gridster.previewStyle;
|
|
14
|
-
delete this.gridster;
|
|
15
|
-
};
|
|
16
|
-
GridsterPreviewComponent.prototype.previewStyle = function (drag) {
|
|
17
|
-
if (!this.gridster.movingItem) {
|
|
18
|
-
this.renderer.setStyle(this.el, 'display', '');
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
if (this.gridster.compact && drag) {
|
|
22
|
-
this.gridster.compact.checkCompactItem(this.gridster.movingItem);
|
|
23
|
-
}
|
|
24
|
-
this.renderer.setStyle(this.el, 'display', 'block');
|
|
25
|
-
this.gridster.gridRenderer.updateItem(this.el, this.gridster.movingItem, this.renderer);
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
GridsterPreviewComponent.ctorParameters = function () { return [
|
|
29
|
-
{ type: ElementRef },
|
|
30
|
-
{ type: GridsterComponent, decorators: [{ type: Host }] },
|
|
31
|
-
{ type: Renderer2 }
|
|
32
|
-
]; };
|
|
33
|
-
GridsterPreviewComponent = tslib_1.__decorate([
|
|
34
|
-
Component({
|
|
35
|
-
selector: 'gridster-preview',
|
|
36
|
-
template: '',
|
|
37
|
-
encapsulation: ViewEncapsulation.None,
|
|
38
|
-
styles: ["gridster-preview{position:absolute;display:none;background:#42b4e6}"]
|
|
39
|
-
}),
|
|
40
|
-
tslib_1.__param(1, Host()),
|
|
41
|
-
tslib_1.__metadata("design:paramtypes", [ElementRef, GridsterComponent, Renderer2])
|
|
42
|
-
], GridsterPreviewComponent);
|
|
43
|
-
return GridsterPreviewComponent;
|
|
44
|
-
}());
|
|
45
|
-
export { GridsterPreviewComponent };
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJQcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzY2huZWlkZXJlc3MvZGFzaGJvYXJkZnJhbWV3b3JrLyIsInNvdXJjZXMiOlsiZ3JpZHN0ZXIvbGliL2dyaWRzdGVyUHJldmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRW5HLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBUXZEO0lBSUUsa0NBQVksRUFBYyxFQUFVLFFBQTJCLEVBQVMsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUN6RixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELDhDQUFXLEdBQVg7UUFDRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsK0NBQVksR0FBWixVQUFhLElBQWM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO1lBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ2hEO2FBQU07WUFDTCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRTtnQkFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNsRTtZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6RjtJQUNILENBQUM7O2dCQXRCZSxVQUFVO2dCQUFvQixpQkFBaUIsdUJBQWxDLElBQUk7Z0JBQWlELFNBQVM7O0lBSmhGLHdCQUF3QjtRQU5wQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFFBQVEsRUFBRSxFQUFFO1lBRVosYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O1NBQ3RDLENBQUM7UUFLNkIsbUJBQUEsSUFBSSxFQUFFLENBQUE7aURBQW5CLFVBQVUsRUFBb0IsaUJBQWlCLEVBQW1CLFNBQVM7T0FKaEYsd0JBQXdCLENBMkJwQztJQUFELCtCQUFDO0NBQUEsQUEzQkQsSUEyQkM7U0EzQlksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3QsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge0dyaWRzdGVyQ29tcG9uZW50fSBmcm9tICcuL2dyaWRzdGVyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2dyaWRzdGVyLXByZXZpZXcnLFxyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBzdHlsZVVybHM6IFsnLi9ncmlkc3RlclByZXZpZXcuY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JpZHN0ZXJQcmV2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBlbDogYW55O1xyXG4gIGdyaWRzdGVyOiBHcmlkc3RlckNvbXBvbmVudDtcclxuXHJcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYsIEBIb3N0KCkgZ3JpZHN0ZXI6IEdyaWRzdGVyQ29tcG9uZW50LCBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xyXG4gICAgdGhpcy5lbCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB0aGlzLmdyaWRzdGVyID0gZ3JpZHN0ZXI7XHJcbiAgICB0aGlzLmdyaWRzdGVyLnByZXZpZXdTdHlsZSA9IHRoaXMucHJldmlld1N0eWxlLmJpbmQodGhpcyk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGRlbGV0ZSB0aGlzLmVsO1xyXG4gICAgZGVsZXRlIHRoaXMuZ3JpZHN0ZXIucHJldmlld1N0eWxlO1xyXG4gICAgZGVsZXRlIHRoaXMuZ3JpZHN0ZXI7XHJcbiAgfVxyXG5cclxuICBwcmV2aWV3U3R5bGUoZHJhZz86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5ncmlkc3Rlci5tb3ZpbmdJdGVtKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbCwgJ2Rpc3BsYXknLCAnJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5ncmlkc3Rlci5jb21wYWN0ICYmIGRyYWcpIHtcclxuICAgICAgICB0aGlzLmdyaWRzdGVyLmNvbXBhY3QuY2hlY2tDb21wYWN0SXRlbSh0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbCwgJ2Rpc3BsYXknLCAnYmxvY2snKTtcclxuICAgICAgdGhpcy5ncmlkc3Rlci5ncmlkUmVuZGVyZXIudXBkYXRlSXRlbSh0aGlzLmVsLCB0aGlzLmdyaWRzdGVyLm1vdmluZ0l0ZW0sIHRoaXMucmVuZGVyZXIpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|