@schneideress/dashboardframework 0.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 +24 -0
- package/bundles/schneideress-dashboardframework.umd.js +5666 -0
- package/bundles/schneideress-dashboardframework.umd.js.map +1 -0
- package/bundles/schneideress-dashboardframework.umd.min.js +2 -0
- package/bundles/schneideress-dashboardframework.umd.min.js.map +1 -0
- package/esm2015/gridster/index.js +18 -0
- package/esm2015/gridster/lib/gridster.component.js +695 -0
- package/esm2015/gridster/lib/gridster.interface.js +84 -0
- package/esm2015/gridster/lib/gridster.module.js +27 -0
- package/esm2015/gridster/lib/gridsterCompact.service.js +223 -0
- package/esm2015/gridster/lib/gridsterConfig.constant.js +179 -0
- package/esm2015/gridster/lib/gridsterConfig.interface.js +219 -0
- package/esm2015/gridster/lib/gridsterConfigS.interface.js +161 -0
- package/esm2015/gridster/lib/gridsterDraggable.service.js +510 -0
- package/esm2015/gridster/lib/gridsterEmptyCell.service.js +317 -0
- package/esm2015/gridster/lib/gridsterItem.component.js +213 -0
- package/esm2015/gridster/lib/gridsterItem.interface.js +46 -0
- package/esm2015/gridster/lib/gridsterItemComponent.interface.js +48 -0
- package/esm2015/gridster/lib/gridsterPreview.component.js +66 -0
- package/esm2015/gridster/lib/gridsterPush.service.js +467 -0
- package/esm2015/gridster/lib/gridsterPushResize.service.js +358 -0
- package/esm2015/gridster/lib/gridsterRenderer.service.js +277 -0
- package/esm2015/gridster/lib/gridsterResizable.service.js +552 -0
- package/esm2015/gridster/lib/gridsterResizeEventType.interface.js +19 -0
- package/esm2015/gridster/lib/gridsterScroll.service.js +195 -0
- package/esm2015/gridster/lib/gridsterSwap.service.js +134 -0
- package/esm2015/gridster/lib/gridsterUtils.service.js +137 -0
- package/esm2015/lib/ra-dashboard-area/ra.dashboard.area.js +258 -0
- package/esm2015/lib/ra-widget-container/ra.widget.container.component.js +216 -0
- package/esm2015/lib/ra.base.dashboard.filter.js +35 -0
- package/esm2015/lib/ra.base.dashboard.template.js +63 -0
- package/esm2015/lib/ra.dashbard.event.bus.js +85 -0
- package/esm2015/lib/ra.dashboard.module.js +31 -0
- package/esm2015/lib/ra.dashboard.service.js +213 -0
- package/esm2015/lib/ra.event.enum.js +33 -0
- package/esm2015/lib/ra.gridster.config.js +63 -0
- package/esm2015/public-api.js +16 -0
- package/esm2015/schneideress-dashboardframework.js +13 -0
- package/esm5/gridster/index.js +18 -0
- package/esm5/gridster/lib/gridster.component.js +798 -0
- package/esm5/gridster/lib/gridster.interface.js +94 -0
- package/esm5/gridster/lib/gridster.module.js +31 -0
- package/esm5/gridster/lib/gridsterCompact.service.js +253 -0
- package/esm5/gridster/lib/gridsterConfig.constant.js +179 -0
- package/esm5/gridster/lib/gridsterConfig.interface.js +219 -0
- package/esm5/gridster/lib/gridsterConfigS.interface.js +161 -0
- package/esm5/gridster/lib/gridsterDraggable.service.js +549 -0
- package/esm5/gridster/lib/gridsterEmptyCell.service.js +358 -0
- package/esm5/gridster/lib/gridsterItem.component.js +238 -0
- package/esm5/gridster/lib/gridsterItem.interface.js +46 -0
- package/esm5/gridster/lib/gridsterItemComponent.interface.js +58 -0
- package/esm5/gridster/lib/gridsterPreview.component.js +70 -0
- package/esm5/gridster/lib/gridsterPush.service.js +547 -0
- package/esm5/gridster/lib/gridsterPushResize.service.js +423 -0
- package/esm5/gridster/lib/gridsterRenderer.service.js +323 -0
- package/esm5/gridster/lib/gridsterResizable.service.js +629 -0
- package/esm5/gridster/lib/gridsterResizeEventType.interface.js +19 -0
- package/esm5/gridster/lib/gridsterScroll.service.js +195 -0
- package/esm5/gridster/lib/gridsterSwap.service.js +152 -0
- package/esm5/gridster/lib/gridsterUtils.service.js +177 -0
- package/esm5/lib/ra-dashboard-area/ra.dashboard.area.js +307 -0
- package/esm5/lib/ra-widget-container/ra.widget.container.component.js +277 -0
- package/esm5/lib/ra.base.dashboard.filter.js +38 -0
- package/esm5/lib/ra.base.dashboard.template.js +63 -0
- package/esm5/lib/ra.dashbard.event.bus.js +125 -0
- package/esm5/lib/ra.dashboard.module.js +35 -0
- package/esm5/lib/ra.dashboard.service.js +295 -0
- package/esm5/lib/ra.event.enum.js +33 -0
- package/esm5/lib/ra.gridster.config.js +63 -0
- package/esm5/public-api.js +16 -0
- package/esm5/schneideress-dashboardframework.js +13 -0
- package/fesm2015/schneideress-dashboardframework.js +4811 -0
- package/fesm2015/schneideress-dashboardframework.js.map +1 -0
- package/fesm5/schneideress-dashboardframework.js +5613 -0
- package/fesm5/schneideress-dashboardframework.js.map +1 -0
- package/gridster/index.d.ts +11 -0
- package/gridster/lib/gridster.component.d.ts +67 -0
- package/gridster/lib/gridster.interface.d.ts +46 -0
- package/gridster/lib/gridster.module.d.ts +2 -0
- package/gridster/lib/gridsterCompact.service.d.ts +15 -0
- package/gridster/lib/gridsterConfig.constant.d.ts +2 -0
- package/gridster/lib/gridsterConfig.interface.d.ts +133 -0
- package/gridster/lib/gridsterConfigS.interface.d.ts +93 -0
- package/gridster/lib/gridsterDraggable.service.d.ts +59 -0
- package/gridster/lib/gridsterEmptyCell.service.d.ts +29 -0
- package/gridster/lib/gridsterItem.component.d.ts +32 -0
- package/gridster/lib/gridsterItem.interface.d.ts +21 -0
- package/gridster/lib/gridsterItemComponent.interface.d.ts +25 -0
- package/gridster/lib/gridsterPreview.component.d.ts +10 -0
- package/gridster/lib/gridsterPush.service.d.ts +33 -0
- package/gridster/lib/gridsterPushResize.service.d.ts +26 -0
- package/gridster/lib/gridsterRenderer.service.d.ts +38 -0
- package/gridster/lib/gridsterResizable.service.d.ts +67 -0
- package/gridster/lib/gridsterResizeEventType.interface.d.ts +6 -0
- package/gridster/lib/gridsterScroll.service.d.ts +4 -0
- package/gridster/lib/gridsterSwap.service.d.ts +13 -0
- package/gridster/lib/gridsterUtils.service.d.ts +16 -0
- package/lib/ra-dashboard-area/ra.dashboard.area.d.ts +37 -0
- package/lib/ra-widget-container/ra.widget.container.component.d.ts +37 -0
- package/lib/ra.base.dashboard.filter.d.ts +4 -0
- package/lib/ra.base.dashboard.template.d.ts +14 -0
- package/lib/ra.dashbard.event.bus.d.ts +20 -0
- package/lib/ra.dashboard.module.d.ts +2 -0
- package/lib/ra.dashboard.service.d.ts +73 -0
- package/lib/ra.event.enum.d.ts +24 -0
- package/lib/ra.gridster.config.d.ts +2 -0
- package/package.json +25 -0
- package/public-api.d.ts +8 -0
- package/schneideress-dashboardframework.d.ts +8 -0
- package/schneideress-dashboardframework.metadata.json +1 -0
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
6
|
+
import { Injectable } from '@angular/core';
|
|
7
|
+
import { GridsterComponentInterface } from './gridster.interface';
|
|
8
|
+
import { GridType } from './gridsterConfig.interface';
|
|
9
|
+
var GridsterRenderer = /** @class */ (function () {
|
|
10
|
+
function GridsterRenderer(gridster) {
|
|
11
|
+
this.gridster = gridster;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @return {?}
|
|
15
|
+
*/
|
|
16
|
+
GridsterRenderer.prototype.destroy = /**
|
|
17
|
+
* @return {?}
|
|
18
|
+
*/
|
|
19
|
+
function () {
|
|
20
|
+
delete this.gridster;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* @param {?} el
|
|
24
|
+
* @param {?} item
|
|
25
|
+
* @param {?} renderer
|
|
26
|
+
* @return {?}
|
|
27
|
+
*/
|
|
28
|
+
GridsterRenderer.prototype.updateItem = /**
|
|
29
|
+
* @param {?} el
|
|
30
|
+
* @param {?} item
|
|
31
|
+
* @param {?} renderer
|
|
32
|
+
* @return {?}
|
|
33
|
+
*/
|
|
34
|
+
function (el, item, renderer) {
|
|
35
|
+
if (this.gridster.mobile) {
|
|
36
|
+
this.clearCellPosition(renderer, el);
|
|
37
|
+
if (this.gridster.$options.keepFixedHeightInMobile) {
|
|
38
|
+
renderer.setStyle(el, 'height', (item.rows * this.gridster.$options.fixedRowHeight) + 'px');
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
renderer.setStyle(el, 'height', (this.gridster.curWidth / 2 * item.rows) + 'px');
|
|
42
|
+
}
|
|
43
|
+
if (this.gridster.$options.keepFixedWidthInMobile) {
|
|
44
|
+
renderer.setStyle(el, 'width', this.gridster.$options.fixedColWidth + 'px');
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
renderer.setStyle(el, 'width', '');
|
|
48
|
+
}
|
|
49
|
+
renderer.setStyle(el, 'margin-bottom', this.gridster.$options.margin + 'px');
|
|
50
|
+
renderer.setStyle(el, 'margin-right', '');
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
/** @type {?} */
|
|
54
|
+
var x = Math.round(this.gridster.curColWidth * item.x);
|
|
55
|
+
/** @type {?} */
|
|
56
|
+
var y = Math.round(this.gridster.curRowHeight * item.y);
|
|
57
|
+
/** @type {?} */
|
|
58
|
+
var width = this.gridster.curColWidth * item.cols - this.gridster.$options.margin;
|
|
59
|
+
/** @type {?} */
|
|
60
|
+
var height = (this.gridster.curRowHeight * item.rows - this.gridster.$options.margin);
|
|
61
|
+
// set the cell style
|
|
62
|
+
this.setCellPosition(renderer, el, x, y);
|
|
63
|
+
renderer.setStyle(el, 'width', width + 'px');
|
|
64
|
+
renderer.setStyle(el, 'height', height + 'px');
|
|
65
|
+
/** @type {?} */
|
|
66
|
+
var marginBottom = null;
|
|
67
|
+
/** @type {?} */
|
|
68
|
+
var marginRight = null;
|
|
69
|
+
if (this.gridster.$options.outerMargin) {
|
|
70
|
+
if (this.gridster.rows === item.rows + item.y) {
|
|
71
|
+
if (this.gridster.$options.outerMarginBottom !== null) {
|
|
72
|
+
marginBottom = this.gridster.$options.outerMarginBottom + 'px';
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
marginBottom = this.gridster.$options.margin + 'px';
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (this.gridster.columns === item.cols + item.x) {
|
|
79
|
+
if (this.gridster.$options.outerMarginBottom !== null) {
|
|
80
|
+
marginRight = this.gridster.$options.outerMarginRight + 'px';
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
marginRight = this.gridster.$options.margin + 'px';
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
renderer.setStyle(el, 'margin-bottom', marginBottom);
|
|
88
|
+
renderer.setStyle(el, 'margin-right', marginRight);
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* @return {?}
|
|
93
|
+
*/
|
|
94
|
+
GridsterRenderer.prototype.updateGridster = /**
|
|
95
|
+
* @return {?}
|
|
96
|
+
*/
|
|
97
|
+
function () {
|
|
98
|
+
/** @type {?} */
|
|
99
|
+
var addClass = '';
|
|
100
|
+
/** @type {?} */
|
|
101
|
+
var removeClass1 = '';
|
|
102
|
+
/** @type {?} */
|
|
103
|
+
var removeClass2 = '';
|
|
104
|
+
/** @type {?} */
|
|
105
|
+
var removeClass3 = '';
|
|
106
|
+
if (this.gridster.$options.gridType === GridType.Fit) {
|
|
107
|
+
addClass = GridType.Fit;
|
|
108
|
+
removeClass1 = GridType.ScrollVertical;
|
|
109
|
+
removeClass2 = GridType.ScrollHorizontal;
|
|
110
|
+
removeClass3 = GridType.Fixed;
|
|
111
|
+
}
|
|
112
|
+
else if (this.gridster.$options.gridType === GridType.ScrollVertical) {
|
|
113
|
+
this.gridster.curRowHeight = this.gridster.curColWidth;
|
|
114
|
+
addClass = GridType.ScrollVertical;
|
|
115
|
+
removeClass1 = GridType.Fit;
|
|
116
|
+
removeClass2 = GridType.ScrollHorizontal;
|
|
117
|
+
removeClass3 = GridType.Fixed;
|
|
118
|
+
}
|
|
119
|
+
else if (this.gridster.$options.gridType === GridType.ScrollHorizontal) {
|
|
120
|
+
this.gridster.curColWidth = this.gridster.curRowHeight;
|
|
121
|
+
addClass = GridType.ScrollHorizontal;
|
|
122
|
+
removeClass1 = GridType.Fit;
|
|
123
|
+
removeClass2 = GridType.ScrollVertical;
|
|
124
|
+
removeClass3 = GridType.Fixed;
|
|
125
|
+
}
|
|
126
|
+
else if (this.gridster.$options.gridType === GridType.Fixed) {
|
|
127
|
+
this.gridster.curColWidth = this.gridster.$options.fixedColWidth +
|
|
128
|
+
(this.gridster.$options.ignoreMarginInRow ? 0 : this.gridster.$options.margin);
|
|
129
|
+
this.gridster.curRowHeight = this.gridster.$options.fixedRowHeight +
|
|
130
|
+
(this.gridster.$options.ignoreMarginInRow ? 0 : this.gridster.$options.margin);
|
|
131
|
+
addClass = GridType.Fixed;
|
|
132
|
+
removeClass1 = GridType.Fit;
|
|
133
|
+
removeClass2 = GridType.ScrollVertical;
|
|
134
|
+
removeClass3 = GridType.ScrollHorizontal;
|
|
135
|
+
}
|
|
136
|
+
else if (this.gridster.$options.gridType === GridType.VerticalFixed) {
|
|
137
|
+
this.gridster.curRowHeight = this.gridster.$options.fixedRowHeight +
|
|
138
|
+
(this.gridster.$options.ignoreMarginInRow ? 0 : this.gridster.$options.margin);
|
|
139
|
+
addClass = GridType.ScrollVertical;
|
|
140
|
+
removeClass1 = GridType.Fit;
|
|
141
|
+
removeClass2 = GridType.ScrollHorizontal;
|
|
142
|
+
removeClass3 = GridType.Fixed;
|
|
143
|
+
}
|
|
144
|
+
else if (this.gridster.$options.gridType === GridType.HorizontalFixed) {
|
|
145
|
+
this.gridster.curColWidth = this.gridster.$options.fixedColWidth +
|
|
146
|
+
(this.gridster.$options.ignoreMarginInRow ? 0 : this.gridster.$options.margin);
|
|
147
|
+
addClass = GridType.ScrollHorizontal;
|
|
148
|
+
removeClass1 = GridType.Fit;
|
|
149
|
+
removeClass2 = GridType.ScrollVertical;
|
|
150
|
+
removeClass3 = GridType.Fixed;
|
|
151
|
+
}
|
|
152
|
+
if (this.gridster.mobile) {
|
|
153
|
+
this.gridster.renderer.removeClass(this.gridster.el, addClass);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
this.gridster.renderer.addClass(this.gridster.el, addClass);
|
|
157
|
+
}
|
|
158
|
+
this.gridster.renderer.removeClass(this.gridster.el, removeClass1);
|
|
159
|
+
this.gridster.renderer.removeClass(this.gridster.el, removeClass2);
|
|
160
|
+
this.gridster.renderer.removeClass(this.gridster.el, removeClass3);
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* @param {?} i
|
|
164
|
+
* @return {?}
|
|
165
|
+
*/
|
|
166
|
+
GridsterRenderer.prototype.getGridColumnStyle = /**
|
|
167
|
+
* @param {?} i
|
|
168
|
+
* @return {?}
|
|
169
|
+
*/
|
|
170
|
+
function (i) {
|
|
171
|
+
return tslib_1.__assign({}, this.getLeftPosition(this.gridster.curColWidth * i), { width: this.gridster.curColWidth - this.gridster.$options.margin + 'px', height: this.gridster.gridRows.length * this.gridster.curRowHeight - this.gridster.$options.margin + 'px' });
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* @param {?} i
|
|
175
|
+
* @return {?}
|
|
176
|
+
*/
|
|
177
|
+
GridsterRenderer.prototype.getGridRowStyle = /**
|
|
178
|
+
* @param {?} i
|
|
179
|
+
* @return {?}
|
|
180
|
+
*/
|
|
181
|
+
function (i) {
|
|
182
|
+
return tslib_1.__assign({}, this.getTopPosition(this.gridster.curRowHeight * i), { width: this.gridster.gridColumns.length * this.gridster.curColWidth - this.gridster.$options.margin + 'px', height: this.gridster.curRowHeight - this.gridster.$options.margin + 'px' });
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* @param {?} d
|
|
186
|
+
* @return {?}
|
|
187
|
+
*/
|
|
188
|
+
GridsterRenderer.prototype.getLeftPosition = /**
|
|
189
|
+
* @param {?} d
|
|
190
|
+
* @return {?}
|
|
191
|
+
*/
|
|
192
|
+
function (d) {
|
|
193
|
+
if (this.gridster.$options.useTransformPositioning) {
|
|
194
|
+
return {
|
|
195
|
+
transform: 'translateX(' + d + 'px)',
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
return {
|
|
200
|
+
left: (this.getLeftMargin() + d) + 'px'
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* @param {?} d
|
|
206
|
+
* @return {?}
|
|
207
|
+
*/
|
|
208
|
+
GridsterRenderer.prototype.getTopPosition = /**
|
|
209
|
+
* @param {?} d
|
|
210
|
+
* @return {?}
|
|
211
|
+
*/
|
|
212
|
+
function (d) {
|
|
213
|
+
if (this.gridster.$options.useTransformPositioning) {
|
|
214
|
+
return {
|
|
215
|
+
transform: 'translateY(' + d + 'px)',
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
return {
|
|
220
|
+
top: this.getTopMargin() + d + 'px'
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
/**
|
|
225
|
+
* @param {?} renderer
|
|
226
|
+
* @param {?} el
|
|
227
|
+
* @return {?}
|
|
228
|
+
*/
|
|
229
|
+
GridsterRenderer.prototype.clearCellPosition = /**
|
|
230
|
+
* @param {?} renderer
|
|
231
|
+
* @param {?} el
|
|
232
|
+
* @return {?}
|
|
233
|
+
*/
|
|
234
|
+
function (renderer, el) {
|
|
235
|
+
if (this.gridster.$options.useTransformPositioning) {
|
|
236
|
+
renderer.setStyle(el, 'transform', '');
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
renderer.setStyle(el, 'top', '');
|
|
240
|
+
renderer.setStyle(el, 'left', '');
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
/**
|
|
244
|
+
* @param {?} renderer
|
|
245
|
+
* @param {?} el
|
|
246
|
+
* @param {?} x
|
|
247
|
+
* @param {?} y
|
|
248
|
+
* @return {?}
|
|
249
|
+
*/
|
|
250
|
+
GridsterRenderer.prototype.setCellPosition = /**
|
|
251
|
+
* @param {?} renderer
|
|
252
|
+
* @param {?} el
|
|
253
|
+
* @param {?} x
|
|
254
|
+
* @param {?} y
|
|
255
|
+
* @return {?}
|
|
256
|
+
*/
|
|
257
|
+
function (renderer, el, x, y) {
|
|
258
|
+
if (this.gridster.$options.useTransformPositioning) {
|
|
259
|
+
/** @type {?} */
|
|
260
|
+
var transform = 'translate3d(' + x + 'px, ' + y + 'px, 0)';
|
|
261
|
+
renderer.setStyle(el, 'transform', transform);
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
renderer.setStyle(el, 'left', this.getLeftMargin() + x + 'px');
|
|
265
|
+
renderer.setStyle(el, 'top', this.getTopMargin() + y + 'px');
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
/**
|
|
269
|
+
* @return {?}
|
|
270
|
+
*/
|
|
271
|
+
GridsterRenderer.prototype.getLeftMargin = /**
|
|
272
|
+
* @return {?}
|
|
273
|
+
*/
|
|
274
|
+
function () {
|
|
275
|
+
if (this.gridster.$options.outerMargin) {
|
|
276
|
+
if (this.gridster.$options.outerMarginLeft !== null) {
|
|
277
|
+
return this.gridster.$options.outerMarginLeft;
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
return this.gridster.$options.margin;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
return 0;
|
|
285
|
+
}
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* @return {?}
|
|
289
|
+
*/
|
|
290
|
+
GridsterRenderer.prototype.getTopMargin = /**
|
|
291
|
+
* @return {?}
|
|
292
|
+
*/
|
|
293
|
+
function () {
|
|
294
|
+
if (this.gridster.$options.outerMargin) {
|
|
295
|
+
if (this.gridster.$options.outerMarginTop !== null) {
|
|
296
|
+
return this.gridster.$options.outerMarginTop;
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
return this.gridster.$options.margin;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
return 0;
|
|
304
|
+
}
|
|
305
|
+
};
|
|
306
|
+
GridsterRenderer.decorators = [
|
|
307
|
+
{ type: Injectable }
|
|
308
|
+
];
|
|
309
|
+
/** @nocollapse */
|
|
310
|
+
GridsterRenderer.ctorParameters = function () { return [
|
|
311
|
+
{ type: GridsterComponentInterface }
|
|
312
|
+
]; };
|
|
313
|
+
return GridsterRenderer;
|
|
314
|
+
}());
|
|
315
|
+
export { GridsterRenderer };
|
|
316
|
+
if (false) {
|
|
317
|
+
/**
|
|
318
|
+
* @type {?}
|
|
319
|
+
* @private
|
|
320
|
+
*/
|
|
321
|
+
GridsterRenderer.prototype.gridster;
|
|
322
|
+
}
|
|
323
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJSZW5kZXJlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNjaG5laWRlcmVzcy9kYXNoYm9hcmRmcmFtZXdvcmsvIiwic291cmNlcyI6WyJncmlkc3Rlci9saWIvZ3JpZHN0ZXJSZW5kZXJlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFHcEQ7SUFHRSwwQkFBb0IsUUFBb0M7UUFBcEMsYUFBUSxHQUFSLFFBQVEsQ0FBNEI7SUFDeEQsQ0FBQzs7OztJQUVELGtDQUFPOzs7SUFBUDtRQUNFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDOzs7Ozs7O0lBRUQscUNBQVU7Ozs7OztJQUFWLFVBQVcsRUFBTyxFQUFFLElBQWtCLEVBQUUsUUFBbUI7UUFDekQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLEVBQUU7Z0JBQ2xELFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7YUFDN0Y7aUJBQU07Z0JBQ0wsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMs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SSxFQUFFO2dCQUNsRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQzthQUM5QztpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzthQUN0QztTQUNGO2FBQU07WUFDTCxPQUFPLENBQUMsQ0FBQztTQUNWO0lBQ0gsQ0FBQzs7Z0JBck1GLFVBQVU7Ozs7Z0JBSkgsMEJBQTBCOztJQTBNbEMsdUJBQUM7Q0FBQSxBQXRNRCxJQXNNQztTQXJNWSxnQkFBZ0I7Ozs7OztJQUVmLG9DQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgUmVuZGVyZXIyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7R3JpZHN0ZXJDb21wb25lbnRJbnRlcmZhY2V9IGZyb20gJy4vZ3JpZHN0ZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtHcmlkVHlwZX0gZnJvbSAnLi9ncmlkc3RlckNvbmZpZy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0dyaWRzdGVySXRlbX0gZnJvbSAnLi9ncmlkc3Rlckl0ZW0uaW50ZXJmYWNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEdyaWRzdGVyUmVuZGVyZXIge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGdyaWRzdGVyOiBHcmlkc3RlckNvbXBvbmVudEludGVyZmFjZSkge1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGRlbGV0ZSB0aGlzLmdyaWRzdGVyO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlSXRlbShlbDogYW55LCBpdGVtOiBHcmlkc3Rlckl0ZW0sIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcclxuICAgIGlmICh0aGlzLmdyaWRzdGVyLm1vYmlsZSkge1xyXG4gICAgICB0aGlzLmNsZWFyQ2VsbFBvc2l0aW9uKHJlbmRlcmVyLCBlbCk7XHJcbiAgICAgIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmtlZXBGaXhlZEhlaWdodEluTW9iaWxlKSB7XHJcbiAgICAgICAgcmVuZGVyZXIuc2V0U3R5bGUoZWwsICdoZWlnaHQnLCAoaXRlbS5yb3dzICogdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5maXhlZFJvd0hlaWdodCkgKyAncHgnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZW5kZXJlci5zZXRTdHlsZShlbCwgJ2hlaWdodCcsICh0aGlzLmdyaWRzdGVyLmN1cldpZHRoIC8gMiAqIGl0ZW0ucm93cykgKyAncHgnKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5rZWVwRml4ZWRXaWR0aEluTW9iaWxlKSB7XHJcbiAgICAgICAgcmVuZGVyZXIuc2V0U3R5bGUoZWwsICd3aWR0aCcsIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZml4ZWRDb2xXaWR0aCArICdweCcpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlbmRlcmVyLnNldFN0eWxlKGVsLCAnd2lkdGgnLCAnJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJlbmRlcmVyLnNldFN0eWxlKGVsLCAnbWFyZ2luLWJvdHRvbScsIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMubWFyZ2luICsgJ3B4Jyk7XHJcbiAgICAgIHJlbmRlcmVyLnNldFN0eWxlKGVsLCAnbWFyZ2luLXJpZ2h0JywgJycpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgeCA9IE1hdGgucm91bmQodGhpcy5ncmlkc3Rlci5jdXJDb2xXaWR0aCAqIGl0ZW0ueCk7XHJcbiAgICAgIGNvbnN0IHkgPSBNYXRoLnJvdW5kKHRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0ICogaXRlbS55KTtcclxuICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLmdyaWRzdGVyLmN1ckNvbFdpZHRoICogaXRlbS5jb2xzIC0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW47XHJcbiAgICAgIGNvbnN0IGhlaWdodCA9ICh0aGlzLmdyaWRzdGVyLmN1clJvd0hlaWdodCAqIGl0ZW0ucm93cyAtIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMubWFyZ2luKTtcclxuICAgICAgLy8gc2V0IHRoZSBjZWxsIHN0eWxlXHJcbiAgICAgIHRoaXMuc2V0Q2VsbFBvc2l0aW9uKHJlbmRlcmVyLCBlbCwgeCwgeSk7XHJcbiAgICAgIHJlbmRlcmVyLnNldFN0eWxlKGVsLCAnd2lkdGgnLCB3aWR0aCArICdweCcpO1xyXG4gICAgICByZW5kZXJlci5zZXRTdHlsZShlbCwgJ2hlaWdodCcsIGhlaWdodCArICdweCcpO1xyXG4gICAgICBsZXQgbWFyZ2luQm90dG9tOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAgICAgbGV0IG1hcmdpblJpZ2h0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAgICAgaWYgKHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMub3V0ZXJNYXJnaW4pIHtcclxuICAgICAgICBpZiAodGhpcy5ncmlkc3Rlci5yb3dzID09PSBpdGVtLnJvd3MgKyBpdGVtLnkpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLm91dGVyTWFyZ2luQm90dG9tICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIG1hcmdpbkJvdHRvbSA9IHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMub3V0ZXJNYXJnaW5Cb3R0b20gKyAncHgnO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWFyZ2luQm90dG9tID0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW4gKyAncHgnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5ncmlkc3Rlci5jb2x1bW5zID09PSBpdGVtLmNvbHMgKyBpdGVtLngpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLm91dGVyTWFyZ2luQm90dG9tICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIG1hcmdpblJpZ2h0ID0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5vdXRlck1hcmdpblJpZ2h0ICsgJ3B4JztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1hcmdpblJpZ2h0ID0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW4gKyAncHgnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmVuZGVyZXIuc2V0U3R5bGUoZWwsICdtYXJnaW4tYm90dG9tJywgbWFyZ2luQm90dG9tKTtcclxuICAgICAgcmVuZGVyZXIuc2V0U3R5bGUoZWwsICdtYXJnaW4tcmlnaHQnLCBtYXJnaW5SaWdodCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVHcmlkc3RlcigpIHtcclxuICAgIGxldCBhZGRDbGFzcyA9ICcnO1xyXG4gICAgbGV0IHJlbW92ZUNsYXNzMSA9ICcnO1xyXG4gICAgbGV0IHJlbW92ZUNsYXNzMiA9ICcnO1xyXG4gICAgbGV0IHJlbW92ZUNsYXNzMyA9ICcnO1xyXG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZ3JpZFR5cGUgPT09IEdyaWRUeXBlLkZpdCkge1xyXG4gICAgICBhZGRDbGFzcyA9IEdyaWRUeXBlLkZpdDtcclxuICAgICAgcmVtb3ZlQ2xhc3MxID0gR3JpZFR5cGUuU2Nyb2xsVmVydGljYWw7XHJcbiAgICAgIHJlbW92ZUNsYXNzMiA9IEdyaWRUeXBlLlNjcm9sbEhvcml6b250YWw7XHJcbiAgICAgIHJlbW92ZUNsYXNzMyA9IEdyaWRUeXBlLkZpeGVkO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmdyaWRUeXBlID09PSBHcmlkVHlwZS5TY3JvbGxWZXJ0aWNhbCkge1xyXG4gICAgICB0aGlzLmdyaWRzdGVyLmN1clJvd0hlaWdodCA9IHRoaXMuZ3JpZHN0ZXIuY3VyQ29sV2lkdGg7XHJcbiAgICAgIGFkZENsYXNzID0gR3JpZFR5cGUuU2Nyb2xsVmVydGljYWw7XHJcbiAgICAgIHJlbW92ZUNsYXNzMSA9IEdyaWRUeXBlLkZpdDtcclxuICAgICAgcmVtb3ZlQ2xhc3MyID0gR3JpZFR5cGUuU2Nyb2xsSG9yaXpvbnRhbDtcclxuICAgICAgcmVtb3ZlQ2xhc3MzID0gR3JpZFR5cGUuRml4ZWQ7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZ3JpZFR5cGUgPT09IEdyaWRUeXBlLlNjcm9sbEhvcml6b250YWwpIHtcclxuICAgICAgdGhpcy5ncmlkc3Rlci5jdXJDb2xXaWR0aCA9IHRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0O1xyXG4gICAgICBhZGRDbGFzcyA9IEdyaWRUeXBlLlNjcm9sbEhvcml6b250YWw7XHJcbiAgICAgIHJlbW92ZUNsYXNzMSA9IEdyaWRUeXBlLkZpdDtcclxuICAgICAgcmVtb3ZlQ2xhc3MyID0gR3JpZFR5cGUuU2Nyb2xsVmVydGljYWw7XHJcbiAgICAgIHJlbW92ZUNsYXNzMyA9IEdyaWRUeXBlLkZpeGVkO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmdyaWRUeXBlID09PSBHcmlkVHlwZS5GaXhlZCkge1xyXG4gICAgICB0aGlzLmdyaWRzdGVyLmN1ckNvbFdpZHRoID0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5maXhlZENvbFdpZHRoICtcclxuICAgICAgICAodGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5pZ25vcmVNYXJnaW5JblJvdyA/IDAgOiB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLm1hcmdpbik7XHJcbiAgICAgIHRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0ID0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5maXhlZFJvd0hlaWdodCArXHJcbiAgICAgICAgKHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuaWdub3JlTWFyZ2luSW5Sb3cgPyAwIDogdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW4pO1xyXG4gICAgICBhZGRDbGFzcyA9IEdyaWRUeXBlLkZpeGVkO1xyXG4gICAgICByZW1vdmVDbGFzczEgPSBHcmlkVHlwZS5GaXQ7XHJcbiAgICAgIHJlbW92ZUNsYXNzMiA9IEdyaWRUeXBlLlNjcm9sbFZlcnRpY2FsO1xyXG4gICAgICByZW1vdmVDbGFzczMgPSBHcmlkVHlwZS5TY3JvbGxIb3Jpem9udGFsO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmdyaWRUeXBlID09PSBHcmlkVHlwZS5WZXJ0aWNhbEZpeGVkKSB7XHJcbiAgICAgIHRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0ID0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5maXhlZFJvd0hlaWdodCArXHJcbiAgICAgICAgKHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuaWdub3JlTWFyZ2luSW5Sb3cgPyAwIDogdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW4pO1xyXG4gICAgICBhZGRDbGFzcyA9IEdyaWRUeXBlLlNjcm9sbFZlcnRpY2FsO1xyXG4gICAgICByZW1vdmVDbGFzczEgPSBHcmlkVHlwZS5GaXQ7XHJcbiAgICAgIHJlbW92ZUNsYXNzMiA9IEdyaWRUeXBlLlNjcm9sbEhvcml6b250YWw7XHJcbiAgICAgIHJlbW92ZUNsYXNzMyA9IEdyaWRUeXBlLkZpeGVkO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmdyaWRUeXBlID09PSBHcmlkVHlwZS5Ib3Jpem9udGFsRml4ZWQpIHtcclxuICAgICAgdGhpcy5ncmlkc3Rlci5jdXJDb2xXaWR0aCA9IHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuZml4ZWRDb2xXaWR0aCArXHJcbiAgICAgICAgKHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuaWdub3JlTWFyZ2luSW5Sb3cgPyAwIDogdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW4pO1xyXG4gICAgICBhZGRDbGFzcyA9IEdyaWRUeXBlLlNjcm9sbEhvcml6b250YWw7XHJcbiAgICAgIHJlbW92ZUNsYXNzMSA9IEdyaWRUeXBlLkZpdDtcclxuICAgICAgcmVtb3ZlQ2xhc3MyID0gR3JpZFR5cGUuU2Nyb2xsVmVydGljYWw7XHJcbiAgICAgIHJlbW92ZUNsYXNzMyA9IEdyaWRUeXBlLkZpeGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmdyaWRzdGVyLm1vYmlsZSkge1xyXG4gICAgICB0aGlzLmdyaWRzdGVyLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZ3JpZHN0ZXIuZWwsIGFkZENsYXNzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ3JpZHN0ZXIucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ncmlkc3Rlci5lbCwgYWRkQ2xhc3MpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncmlkc3Rlci5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmdyaWRzdGVyLmVsLCByZW1vdmVDbGFzczEpO1xyXG4gICAgdGhpcy5ncmlkc3Rlci5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmdyaWRzdGVyLmVsLCByZW1vdmVDbGFzczIpO1xyXG4gICAgdGhpcy5ncmlkc3Rlci5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmdyaWRzdGVyLmVsLCByZW1vdmVDbGFzczMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0R3JpZENvbHVtblN0eWxlKGk6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4udGhpcy5nZXRMZWZ0UG9zaXRpb24odGhpcy5ncmlkc3Rlci5jdXJDb2xXaWR0aCAqIGkpLFxyXG4gICAgICB3aWR0aDogdGhpcy5ncmlkc3Rlci5jdXJDb2xXaWR0aCAtIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMubWFyZ2luICsgJ3B4JyxcclxuICAgICAgaGVpZ2h0OiB0aGlzLmdyaWRzdGVyLmdyaWRSb3dzLmxlbmd0aCAqIHRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0IC0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW4gKyAncHgnXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0R3JpZFJvd1N0eWxlKGk6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4udGhpcy5nZXRUb3BQb3NpdGlvbih0aGlzLmdyaWRzdGVyLmN1clJvd0hlaWdodCAqIGkpLFxyXG4gICAgICB3aWR0aDogdGhpcy5ncmlkc3Rlci5ncmlkQ29sdW1ucy5sZW5ndGggKiB0aGlzLmdyaWRzdGVyLmN1ckNvbFdpZHRoIC0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW4gKyAncHgnLFxyXG4gICAgICBoZWlnaHQ6IHRoaXMuZ3JpZHN0ZXIuY3VyUm93SGVpZ2h0IC0gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW4gKyAncHgnXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0TGVmdFBvc2l0aW9uKGQ6IG51bWJlcik6IE9iamVjdCB7XHJcbiAgICBpZiAodGhpcy5ncmlkc3Rlci4kb3B0aW9ucy51c2VUcmFuc2Zvcm1Qb3NpdGlvbmluZykge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoJyArIGQgKyAncHgpJyxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbGVmdDogKHRoaXMuZ2V0TGVmdE1hcmdpbigpICsgZCkgKyAncHgnXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUb3BQb3NpdGlvbihkOiBudW1iZXIpOiBPYmplY3Qge1xyXG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMudXNlVHJhbnNmb3JtUG9zaXRpb25pbmcpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKCcgKyBkICsgJ3B4KScsXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHRvcDogdGhpcy5nZXRUb3BNYXJnaW4oKSArIGQgKyAncHgnXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhckNlbGxQb3NpdGlvbihyZW5kZXJlcjogUmVuZGVyZXIyLCBlbDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5ncmlkc3Rlci4kb3B0aW9ucy51c2VUcmFuc2Zvcm1Qb3NpdGlvbmluZykge1xyXG4gICAgICByZW5kZXJlci5zZXRTdHlsZShlbCwgJ3RyYW5zZm9ybScsICcnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlbmRlcmVyLnNldFN0eWxlKGVsLCAndG9wJywgJycpO1xyXG4gICAgICByZW5kZXJlci5zZXRTdHlsZShlbCwgJ2xlZnQnLCAnJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDZWxsUG9zaXRpb24ocmVuZGVyZXI6IFJlbmRlcmVyMiwgZWw6IGFueSwgeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLnVzZVRyYW5zZm9ybVBvc2l0aW9uaW5nKSB7XHJcbiAgICAgIGNvbnN0IHRyYW5zZm9ybSA9ICd0cmFuc2xhdGUzZCgnICsgeCArICdweCwgJyArIHkgKyAncHgsIDApJztcclxuICAgICAgcmVuZGVyZXIuc2V0U3R5bGUoZWwsICd0cmFuc2Zvcm0nLCB0cmFuc2Zvcm0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVuZGVyZXIuc2V0U3R5bGUoZWwsICdsZWZ0JywgdGhpcy5nZXRMZWZ0TWFyZ2luKCkgKyB4ICsgJ3B4Jyk7XHJcbiAgICAgIHJlbmRlcmVyLnNldFN0eWxlKGVsLCAndG9wJywgdGhpcy5nZXRUb3BNYXJnaW4oKSArIHkgKyAncHgnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldExlZnRNYXJnaW4oKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLm91dGVyTWFyZ2luKSB7XHJcbiAgICAgIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLm91dGVyTWFyZ2luTGVmdCAhPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLm91dGVyTWFyZ2luTGVmdDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5tYXJnaW47XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VG9wTWFyZ2luKCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5vdXRlck1hcmdpbikge1xyXG4gICAgICBpZiAodGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5vdXRlck1hcmdpblRvcCAhPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLm91dGVyTWFyZ2luVG9wO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLm1hcmdpbjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|