@acorex/layout 1.3.90
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +2 -0
- package/acorex-layout.d.ts +6 -0
- package/acorex-layout.metadata.json +1 -0
- package/bundles/acorex-layout.umd.js +1479 -0
- package/bundles/acorex-layout.umd.js.map +1 -0
- package/bundles/acorex-layout.umd.min.js +16 -0
- package/bundles/acorex-layout.umd.min.js.map +1 -0
- package/esm2015/acorex-layout.js +7 -0
- package/esm2015/lib/widget-board/editors/widget-size-editor/widget-size.editor.js +49 -0
- package/esm2015/lib/widget-board/editors/widget-size-editor/widget-size.module.js +22 -0
- package/esm2015/lib/widget-board/widget-board.component.js +468 -0
- package/esm2015/lib/widget-board/widget-board.module.js +69 -0
- package/esm2015/lib/widget-board/widget-config.component.js +86 -0
- package/esm2015/lib/widget-board/widget-host.component.js +313 -0
- package/esm2015/lib/widget-board/widget-save.component.js +79 -0
- package/esm2015/lib/widget-board/widget.class.js +123 -0
- package/esm2015/public-api.js +7 -0
- package/esm5/acorex-layout.js +7 -0
- package/esm5/lib/widget-board/editors/widget-size-editor/widget-size.editor.js +52 -0
- package/esm5/lib/widget-board/editors/widget-size-editor/widget-size.module.js +23 -0
- package/esm5/lib/widget-board/widget-board.component.js +494 -0
- package/esm5/lib/widget-board/widget-board.module.js +70 -0
- package/esm5/lib/widget-board/widget-config.component.js +90 -0
- package/esm5/lib/widget-board/widget-host.component.js +349 -0
- package/esm5/lib/widget-board/widget-save.component.js +83 -0
- package/esm5/lib/widget-board/widget.class.js +134 -0
- package/esm5/public-api.js +7 -0
- package/fesm2015/acorex-layout.js +1171 -0
- package/fesm2015/acorex-layout.js.map +1 -0
- package/fesm5/acorex-layout.js +1256 -0
- package/fesm5/acorex-layout.js.map +1 -0
- package/lib/widget-board/editors/widget-size-editor/widget-size.editor.d.ts +16 -0
- package/lib/widget-board/editors/widget-size-editor/widget-size.module.d.ts +3 -0
- package/lib/widget-board/widget-board.component.d.ts +58 -0
- package/lib/widget-board/widget-board.module.d.ts +6 -0
- package/lib/widget-board/widget-config.component.d.ts +20 -0
- package/lib/widget-board/widget-host.component.d.ts +48 -0
- package/lib/widget-board/widget-save.component.d.ts +16 -0
- package/lib/widget-board/widget.class.d.ts +53 -0
- package/package.json +21 -0
- package/public-api.d.ts +6 -0
@@ -0,0 +1,468 @@
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
2
|
+
import { Component, OnInit, Input, ViewEncapsulation, ElementRef, ViewChild, NgZone, ChangeDetectionStrategy, ChangeDetectorRef, Output, EventEmitter, ViewChildren, QueryList } from '@angular/core';
|
3
|
+
import { AXWidgetHostComponent } from './widget-host.component';
|
4
|
+
import { AXHtmlUtil, AXClientRec } from '@acorex/core';
|
5
|
+
import { Observable } from 'rxjs';
|
6
|
+
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
7
|
+
let AXWidgetBoardComponent = class AXWidgetBoardComponent {
|
8
|
+
constructor(ref, zone, cdr) {
|
9
|
+
this.ref = ref;
|
10
|
+
this.zone = zone;
|
11
|
+
this.cdr = cdr;
|
12
|
+
this.widgets = [];
|
13
|
+
this.galleryItems = [];
|
14
|
+
this.tileSize = 80;
|
15
|
+
this.gapSize = 5;
|
16
|
+
this.newWidget = null;
|
17
|
+
this._isInEditing = false;
|
18
|
+
this.isDragging = false;
|
19
|
+
this.DATA_COL = 'data-col';
|
20
|
+
this.DATA_ROW = 'data-row';
|
21
|
+
this.DATA_SIZE_X = 'data-size-x';
|
22
|
+
this.DATA_SIZE_Y = 'data-size-y';
|
23
|
+
this.DATA_OLD_COL = 'data-old-col';
|
24
|
+
this.DATA_OLD_ROW = 'data-old-row';
|
25
|
+
this.onConfigChanged = new EventEmitter();
|
26
|
+
this.onWidgetSave = new EventEmitter();
|
27
|
+
}
|
28
|
+
isInEditing() {
|
29
|
+
return this._isInEditing;
|
30
|
+
}
|
31
|
+
ngOnInit() {
|
32
|
+
if (this.rtl == null) {
|
33
|
+
this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';
|
34
|
+
}
|
35
|
+
}
|
36
|
+
ngAfterViewInit() {
|
37
|
+
this.zone.runOutsideAngular((c) => {
|
38
|
+
const style = document.createElement('style');
|
39
|
+
style.type = 'text/css';
|
40
|
+
this.ref.nativeElement.appendChild(style);
|
41
|
+
// add css data classes
|
42
|
+
for (let i = 1; i <= 50; i++) {
|
43
|
+
style.innerHTML += `[${this.DATA_COL}="${i}"] { ${this.rtl ? 'right' : 'left'}: ${(i - 1) * (this.tileSize + this.gapSize)}px; }`;
|
44
|
+
style.innerHTML += `[${this.DATA_ROW}="${i}"] { top: ${(i - 1) * (this.tileSize + this.gapSize)}px; }`;
|
45
|
+
style.innerHTML += `[${this.DATA_SIZE_X}="${i}"] { width: ${(i * this.tileSize) + ((i - 1) * this.gapSize)}px; }`;
|
46
|
+
style.innerHTML += `[${this.DATA_SIZE_Y}="${i}"] { height: ${(i * this.tileSize) + ((i - 1) * this.gapSize)}px; }`;
|
47
|
+
}
|
48
|
+
});
|
49
|
+
}
|
50
|
+
calcGridSize() {
|
51
|
+
this.zone.runOutsideAngular(() => {
|
52
|
+
const width = (Math.max(...this.widgets.map((c) => c.col + c.sizeX - 1))) * (this.tileSize + this.gapSize);
|
53
|
+
const height = (Math.max(...this.widgets.map((c) => c.row + c.sizeY - 1))) * (this.tileSize + this.gapSize);
|
54
|
+
this.container.nativeElement.style.width = width + 'px';
|
55
|
+
this.container.nativeElement.style.height = height + 'px';
|
56
|
+
});
|
57
|
+
}
|
58
|
+
toggleEdit() {
|
59
|
+
this._isInEditing ? this.finishEdit() : this.startEdit();
|
60
|
+
}
|
61
|
+
dragStart(e) {
|
62
|
+
e.preventDefault();
|
63
|
+
e.stopPropagation();
|
64
|
+
this.zone.runOutsideAngular(() => {
|
65
|
+
if (this._isInEditing && e.which === 1) {
|
66
|
+
this.dragItem = e.currentTarget;
|
67
|
+
this.dragItem.setAttribute('data-x-offset', (this.dragItem.offsetLeft - e.clientX).toString());
|
68
|
+
//
|
69
|
+
this.dragItem.setAttribute('data-y-offset', (this.dragItem.offsetTop - e.clientY).toString());
|
70
|
+
this.dragItem.classList.add('widget-dragging');
|
71
|
+
this.dragItem.classList.remove('animate__animated', 'animate__pulse');
|
72
|
+
}
|
73
|
+
});
|
74
|
+
return false;
|
75
|
+
}
|
76
|
+
removePositionData() {
|
77
|
+
this.zone.runOutsideAngular(() => {
|
78
|
+
if (this.dragItem && this._isInEditing && this.dragItem.getAttribute(this.DATA_OLD_COL) == null) {
|
79
|
+
this.dragItem.setAttribute(this.DATA_OLD_COL, this.dragItem.getAttribute(this.DATA_COL));
|
80
|
+
this.dragItem.setAttribute(this.DATA_OLD_ROW, this.dragItem.getAttribute(this.DATA_ROW));
|
81
|
+
this.dragItem.removeAttribute(this.DATA_COL);
|
82
|
+
this.dragItem.removeAttribute(this.DATA_ROW);
|
83
|
+
}
|
84
|
+
});
|
85
|
+
}
|
86
|
+
resetPositionData() {
|
87
|
+
this.zone.runOutsideAngular(() => {
|
88
|
+
if (this.dragItem && this._isInEditing) {
|
89
|
+
this.setPosition(this.dragItem, this.dragItem.getAttribute(this.DATA_OLD_COL), this.dragItem.getAttribute(this.DATA_OLD_ROW));
|
90
|
+
}
|
91
|
+
});
|
92
|
+
}
|
93
|
+
setPosition(element, col, row) {
|
94
|
+
this.zone.runOutsideAngular(() => {
|
95
|
+
element.setAttribute(this.DATA_COL, col);
|
96
|
+
element.setAttribute(this.DATA_ROW, row);
|
97
|
+
element.removeAttribute(this.DATA_OLD_COL);
|
98
|
+
element.removeAttribute(this.DATA_OLD_ROW);
|
99
|
+
element.style.removeProperty('top');
|
100
|
+
element.style.removeProperty('left');
|
101
|
+
const widget = this.widgets.find(c => c['__meta__'].instance.element === element);
|
102
|
+
widget.col = Number(col);
|
103
|
+
widget.row = Number(row);
|
104
|
+
});
|
105
|
+
}
|
106
|
+
drag(e) {
|
107
|
+
e.preventDefault();
|
108
|
+
e.stopPropagation();
|
109
|
+
this.zone.runOutsideAngular(() => {
|
110
|
+
if (this.dragItem && this._isInEditing) {
|
111
|
+
this.isDragging = true;
|
112
|
+
this.addPlaceholder();
|
113
|
+
const xOffset = Number(this.dragItem.getAttribute('data-x-offset'));
|
114
|
+
const yOffset = Number(this.dragItem.getAttribute('data-y-offset'));
|
115
|
+
this.dragItem.style.left = e.clientX + xOffset + 'px';
|
116
|
+
this.dragItem.style.top = e.clientY + yOffset + 'px';
|
117
|
+
//
|
118
|
+
this.detectBestPlacement();
|
119
|
+
this.removePositionData();
|
120
|
+
}
|
121
|
+
});
|
122
|
+
return false;
|
123
|
+
}
|
124
|
+
dragEnd(e) {
|
125
|
+
this.zone.runOutsideAngular(() => {
|
126
|
+
if (this.dragItem && this._isInEditing && this.isDragging) {
|
127
|
+
this.dragItem.classList.remove('widget-dragging');
|
128
|
+
this.dragItem.classList.add('animate__animated', 'animate__pulse');
|
129
|
+
//
|
130
|
+
const p = this.container.nativeElement.querySelector('.widget-blank-placeholder');
|
131
|
+
if (this.newWidget) {
|
132
|
+
const w = {
|
133
|
+
uniqueName: this.newWidget.uniqueName,
|
134
|
+
component: this.newWidget.component,
|
135
|
+
title: this.newWidget.title,
|
136
|
+
options: this.newWidget.options,
|
137
|
+
sizeX: this.newWidget.sizeX,
|
138
|
+
sizeY: this.newWidget.sizeY,
|
139
|
+
col: Number(p.getAttribute(this.DATA_COL)),
|
140
|
+
row: Number(p.getAttribute(this.DATA_ROW))
|
141
|
+
};
|
142
|
+
this.widgets.push(w);
|
143
|
+
this.newWidget = null;
|
144
|
+
this.container.nativeElement.removeChild(this.dragItem);
|
145
|
+
this.zone.run(() => {
|
146
|
+
this.cdr.detectChanges();
|
147
|
+
this.calcGridSize();
|
148
|
+
setTimeout(() => {
|
149
|
+
w['__meta__'].instance.element.addEventListener('mousedown', this.dragStart.bind(this), false);
|
150
|
+
}, 1000);
|
151
|
+
});
|
152
|
+
}
|
153
|
+
else {
|
154
|
+
if (p) {
|
155
|
+
this.setPosition(this.dragItem, p.getAttribute(this.DATA_COL), p.getAttribute(this.DATA_ROW));
|
156
|
+
}
|
157
|
+
else {
|
158
|
+
this.setPosition(this.dragItem, this.dragItem.getAttribute(this.DATA_OLD_COL), this.dragItem.getAttribute(this.DATA_OLD_ROW));
|
159
|
+
}
|
160
|
+
}
|
161
|
+
//
|
162
|
+
this.removePlaceholder();
|
163
|
+
this.dragItem = null;
|
164
|
+
this.calcGridSize();
|
165
|
+
this.emitConfigChanged();
|
166
|
+
}
|
167
|
+
this.isDragging = false;
|
168
|
+
});
|
169
|
+
}
|
170
|
+
detectFirstEmptySlot(w) {
|
171
|
+
const xTile = Math.floor(this.ref.nativeElement.parentElement.offsetWidth / this.tileSize);
|
172
|
+
for (let j = 1; j <= 100; j++) {
|
173
|
+
for (let i = 1; i <= xTile - w.sizeX; i++) {
|
174
|
+
const rec = new AXClientRec({
|
175
|
+
left: i,
|
176
|
+
top: j,
|
177
|
+
width: w.sizeX,
|
178
|
+
height: w.sizeY
|
179
|
+
});
|
180
|
+
const el = this.widgets.filter(c => c !== w).find((c) => rec.intersect({
|
181
|
+
left: c.col,
|
182
|
+
top: c.row,
|
183
|
+
width: c.sizeX,
|
184
|
+
height: c.sizeY
|
185
|
+
}));
|
186
|
+
if (el == null) {
|
187
|
+
w.col = i;
|
188
|
+
w.row = j;
|
189
|
+
return;
|
190
|
+
}
|
191
|
+
}
|
192
|
+
}
|
193
|
+
}
|
194
|
+
detectBestPlacement() {
|
195
|
+
this.zone.runOutsideAngular(() => {
|
196
|
+
const p = this.container.nativeElement.querySelector('.widget-blank-placeholder');
|
197
|
+
let col = Math.ceil(this.dragItem.offsetLeft / this.tileSize);
|
198
|
+
if (this.rtl) {
|
199
|
+
col = Math.ceil((this.container.nativeElement.clientWidth - (this.dragItem.offsetLeft + this.dragItem.clientWidth)) / this.tileSize);
|
200
|
+
}
|
201
|
+
let row = Math.ceil(this.dragItem.offsetTop / this.tileSize);
|
202
|
+
if (col < 1) {
|
203
|
+
col = 1;
|
204
|
+
}
|
205
|
+
if (row < 1) {
|
206
|
+
row = 1;
|
207
|
+
}
|
208
|
+
const widgets = Array.from(this.ref.nativeElement.querySelectorAll('.widget-host')).map((c) => c);
|
209
|
+
p.setAttribute(this.DATA_COL, col.toString());
|
210
|
+
p.setAttribute(this.DATA_ROW, row.toString());
|
211
|
+
const collision = widgets.filter(c => c !== this.dragItem).some(c => AXHtmlUtil.collision(c, this.dragItem));
|
212
|
+
if (collision) {
|
213
|
+
this.removePlaceholder();
|
214
|
+
}
|
215
|
+
});
|
216
|
+
}
|
217
|
+
addPlaceholder() {
|
218
|
+
this.zone.runOutsideAngular(() => {
|
219
|
+
this.removePlaceholder();
|
220
|
+
if (this.dragItem) {
|
221
|
+
const p = document.createElement('div');
|
222
|
+
p.classList.add('widget-blank-placeholder');
|
223
|
+
p.setAttribute(this.DATA_COL, this.dragItem.getAttribute(this.DATA_COL));
|
224
|
+
p.setAttribute(this.DATA_ROW, this.dragItem.getAttribute(this.DATA_ROW));
|
225
|
+
p.setAttribute(this.DATA_SIZE_X, this.dragItem.getAttribute(this.DATA_SIZE_X));
|
226
|
+
p.setAttribute(this.DATA_SIZE_Y, this.dragItem.getAttribute(this.DATA_SIZE_Y));
|
227
|
+
this.container.nativeElement.appendChild(p);
|
228
|
+
}
|
229
|
+
});
|
230
|
+
}
|
231
|
+
removePlaceholder() {
|
232
|
+
var _a;
|
233
|
+
const p = this.container.nativeElement.querySelector('.widget-blank-placeholder');
|
234
|
+
(_a = p) === null || _a === void 0 ? void 0 : _a.remove();
|
235
|
+
}
|
236
|
+
startEdit() {
|
237
|
+
this._isInEditing = true;
|
238
|
+
this.calcGridSize();
|
239
|
+
this.ref.nativeElement.classList.add('grid-background');
|
240
|
+
const bg = this.ref.nativeElement;
|
241
|
+
bg.style.setProperty('background-position', `${this.rtl ? 'right' : 'left'} top`);
|
242
|
+
// tslint:disable-next-line: max-line-length
|
243
|
+
const pattern = `url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="${this.tileSize + this.gapSize}" height="${this.tileSize + this.gapSize}"> <rect style="fill: %23dadada" x="${this.rtl ? this.gapSize : 0}" width="${this.tileSize}" height="${this.tileSize}" y="0"></rect></svg>')`;
|
244
|
+
bg.style.setProperty('background-image', pattern);
|
245
|
+
//
|
246
|
+
const widgets = Array.from(this.ref.nativeElement.querySelectorAll('.widget-host'));
|
247
|
+
widgets.forEach((w) => {
|
248
|
+
w.addEventListener('mousedown', this.dragStart.bind(this), false);
|
249
|
+
});
|
250
|
+
this.ref.nativeElement.addEventListener('mousemove', this.drag.bind(this), false);
|
251
|
+
this.ref.nativeElement.addEventListener('mouseup', this.dragEnd.bind(this), false);
|
252
|
+
}
|
253
|
+
finishEdit() {
|
254
|
+
this.ref.nativeElement.classList.remove('grid-background');
|
255
|
+
const bg = this.ref.nativeElement;
|
256
|
+
bg.style.removeProperty('background-image');
|
257
|
+
//
|
258
|
+
this._isInEditing = false;
|
259
|
+
const widgets = Array.from(this.ref.nativeElement.querySelectorAll('.widget-host'));
|
260
|
+
widgets.forEach((w) => {
|
261
|
+
w.removeEventListener('mousedown', this.dragStart.bind(this), false);
|
262
|
+
});
|
263
|
+
this.ref.nativeElement.removeEventListener('mousemove', this.drag.bind(this), false);
|
264
|
+
this.ref.nativeElement.removeEventListener('mouseup', this.dragEnd.bind(this), false);
|
265
|
+
this.emitConfigChanged();
|
266
|
+
}
|
267
|
+
addWidget(widget) {
|
268
|
+
this.zone.runOutsideAngular(() => {
|
269
|
+
this.newWidget = {
|
270
|
+
uniqueName: widget.uniqueName,
|
271
|
+
component: widget.component,
|
272
|
+
title: widget.title,
|
273
|
+
col: 1,
|
274
|
+
row: 1,
|
275
|
+
sizeX: widget.sizeX,
|
276
|
+
sizeY: widget.sizeY,
|
277
|
+
options: widget.options,
|
278
|
+
props: widget.props
|
279
|
+
};
|
280
|
+
this.detectFirstEmptySlot(this.newWidget);
|
281
|
+
const w = {
|
282
|
+
uniqueName: this.newWidget.uniqueName,
|
283
|
+
component: this.newWidget.component,
|
284
|
+
title: this.newWidget.title,
|
285
|
+
options: this.newWidget.options,
|
286
|
+
props: this.newWidget.props,
|
287
|
+
sizeX: this.newWidget.sizeX,
|
288
|
+
sizeY: this.newWidget.sizeY,
|
289
|
+
col: this.newWidget.col,
|
290
|
+
row: this.newWidget.row
|
291
|
+
};
|
292
|
+
this.widgets.push(w);
|
293
|
+
this.newWidget = null;
|
294
|
+
this.zone.run(() => {
|
295
|
+
this.cdr.detectChanges();
|
296
|
+
this.calcGridSize();
|
297
|
+
this.emitConfigChanged();
|
298
|
+
setTimeout(() => {
|
299
|
+
w['__meta__'].instance.element.addEventListener('mousedown', this.dragStart.bind(this), false);
|
300
|
+
}, 1000);
|
301
|
+
});
|
302
|
+
});
|
303
|
+
}
|
304
|
+
handleOnRemove(w) {
|
305
|
+
w.element.classList.add('animate__animated', 'animate__zoomOut');
|
306
|
+
w.element.addEventListener('animationend', () => {
|
307
|
+
this.widgets = this.widgets.filter((c) => c.__meta__.id !== w.config.__meta__.id);
|
308
|
+
this.cdr.detectChanges();
|
309
|
+
this.calcGridSize();
|
310
|
+
this.emitConfigChanged();
|
311
|
+
});
|
312
|
+
}
|
313
|
+
handleOnSave(e) {
|
314
|
+
this.onWidgetSave.emit(e);
|
315
|
+
}
|
316
|
+
trackByFn(index, item) {
|
317
|
+
var _a, _b;
|
318
|
+
if (!((_a = item['__meta__']) === null || _a === void 0 ? void 0 : _a.id)) {
|
319
|
+
item['__meta__'] = {};
|
320
|
+
item['__meta__'].id = AXHtmlUtil.getUID();
|
321
|
+
}
|
322
|
+
return (_b = item['__meta__']) === null || _b === void 0 ? void 0 : _b.id;
|
323
|
+
}
|
324
|
+
load(widgets) {
|
325
|
+
this.clear();
|
326
|
+
return new Promise((resolve, reject) => {
|
327
|
+
if (widgets) {
|
328
|
+
const loadedWidgets = [];
|
329
|
+
if (typeof widgets === 'string') {
|
330
|
+
try {
|
331
|
+
loadedWidgets.push(...JSON.parse(widgets));
|
332
|
+
}
|
333
|
+
catch (error) {
|
334
|
+
reject('Invalid widget json data!');
|
335
|
+
}
|
336
|
+
}
|
337
|
+
else {
|
338
|
+
loadedWidgets.push(...widgets);
|
339
|
+
}
|
340
|
+
let intervalId = -1;
|
341
|
+
const loadFunc = () => {
|
342
|
+
if (this.galleryItems && this.galleryItems.length > 0) {
|
343
|
+
loadedWidgets.forEach(w => {
|
344
|
+
const gitem = this.galleryItems.find(c => c.uniqueName === w.uniqueName);
|
345
|
+
if (gitem) {
|
346
|
+
w.component = gitem.component;
|
347
|
+
if (gitem.props) {
|
348
|
+
w.props = JSON.parse(JSON.stringify(gitem.props));
|
349
|
+
}
|
350
|
+
}
|
351
|
+
});
|
352
|
+
this.widgets.push(...loadedWidgets);
|
353
|
+
window.clearInterval(intervalId);
|
354
|
+
this.cdr.detectChanges();
|
355
|
+
resolve();
|
356
|
+
}
|
357
|
+
};
|
358
|
+
intervalId = window.setInterval(loadFunc, 200);
|
359
|
+
}
|
360
|
+
else {
|
361
|
+
resolve();
|
362
|
+
}
|
363
|
+
});
|
364
|
+
}
|
365
|
+
clear() {
|
366
|
+
if (this.widgets.length) {
|
367
|
+
this.widgets = [];
|
368
|
+
this.cdr.detectChanges();
|
369
|
+
this.emitConfigChanged();
|
370
|
+
}
|
371
|
+
}
|
372
|
+
save() {
|
373
|
+
const obj = this.widgets.map(c => ({
|
374
|
+
uniqueName: c.uniqueName,
|
375
|
+
component: c.component,
|
376
|
+
title: c.title,
|
377
|
+
sizeX: c.sizeX,
|
378
|
+
sizeY: c.sizeY,
|
379
|
+
col: c.col,
|
380
|
+
row: c.row,
|
381
|
+
options: c.options,
|
382
|
+
props: c.props
|
383
|
+
}));
|
384
|
+
return Promise.resolve(JSON.stringify(obj));
|
385
|
+
}
|
386
|
+
refresh() {
|
387
|
+
this.widgetHosts.forEach(host => {
|
388
|
+
host.widget.refresh();
|
389
|
+
});
|
390
|
+
}
|
391
|
+
handleOnConfigChanged(e) {
|
392
|
+
this.cdr.detectChanges();
|
393
|
+
this.emitConfigChanged();
|
394
|
+
}
|
395
|
+
handleOnResizedChanged(e) {
|
396
|
+
this.detectFirstEmptySlot(e.config);
|
397
|
+
this.cdr.detectChanges();
|
398
|
+
this.emitConfigChanged();
|
399
|
+
}
|
400
|
+
emitConfigChanged() {
|
401
|
+
if (!this.resizeChangeObserver) {
|
402
|
+
this.resizeChangeObserver = new Observable();
|
403
|
+
Observable.create(observer => {
|
404
|
+
this.resizeChangeObserver = observer;
|
405
|
+
})
|
406
|
+
.pipe(debounceTime(750))
|
407
|
+
.pipe(distinctUntilChanged())
|
408
|
+
.subscribe(c => {
|
409
|
+
this.onConfigChanged.emit({
|
410
|
+
component: this
|
411
|
+
});
|
412
|
+
});
|
413
|
+
}
|
414
|
+
this.resizeChangeObserver.next(new Date());
|
415
|
+
}
|
416
|
+
};
|
417
|
+
AXWidgetBoardComponent.ctorParameters = () => [
|
418
|
+
{ type: ElementRef },
|
419
|
+
{ type: NgZone },
|
420
|
+
{ type: ChangeDetectorRef }
|
421
|
+
];
|
422
|
+
__decorate([
|
423
|
+
ViewChild('container'),
|
424
|
+
__metadata("design:type", ElementRef)
|
425
|
+
], AXWidgetBoardComponent.prototype, "container", void 0);
|
426
|
+
__decorate([
|
427
|
+
ViewChildren(AXWidgetHostComponent),
|
428
|
+
__metadata("design:type", QueryList)
|
429
|
+
], AXWidgetBoardComponent.prototype, "widgetHosts", void 0);
|
430
|
+
__decorate([
|
431
|
+
Input(),
|
432
|
+
__metadata("design:type", Array)
|
433
|
+
], AXWidgetBoardComponent.prototype, "galleryItems", void 0);
|
434
|
+
__decorate([
|
435
|
+
Input(),
|
436
|
+
__metadata("design:type", Number)
|
437
|
+
], AXWidgetBoardComponent.prototype, "tileSize", void 0);
|
438
|
+
__decorate([
|
439
|
+
Input(),
|
440
|
+
__metadata("design:type", Number)
|
441
|
+
], AXWidgetBoardComponent.prototype, "gapSize", void 0);
|
442
|
+
__decorate([
|
443
|
+
Input(),
|
444
|
+
__metadata("design:type", Function)
|
445
|
+
], AXWidgetBoardComponent.prototype, "provideValue", void 0);
|
446
|
+
__decorate([
|
447
|
+
Output(),
|
448
|
+
__metadata("design:type", EventEmitter)
|
449
|
+
], AXWidgetBoardComponent.prototype, "onConfigChanged", void 0);
|
450
|
+
__decorate([
|
451
|
+
Output(),
|
452
|
+
__metadata("design:type", EventEmitter)
|
453
|
+
], AXWidgetBoardComponent.prototype, "onWidgetSave", void 0);
|
454
|
+
AXWidgetBoardComponent = __decorate([
|
455
|
+
Component({
|
456
|
+
selector: 'ax-widget-board',
|
457
|
+
template: "<div class=\"widgets-container\" [class.rtl]=\"rtl\" #container>\r\n <ax-widget-host *ngFor=\"let w of widgets;trackBy: trackByFn\" [config]='w' [sizeX]=\"w.sizeX\"\r\n [sizeY]=\"w.sizeY\" [col]=\"w.col\" [row]=\"w.row\" (onRemove)=\"handleOnRemove($event)\" (onSave)=\"handleOnSave($event)\"\r\n (onConfigChanged)=\"handleOnConfigChanged($event)\" (onResized)=\"handleOnResizedChanged($event)\"\r\n [provideValue]=\"provideValue\">\r\n </ax-widget-host>\r\n</div>\r\n",
|
458
|
+
host: { class: 'ax widget-board' },
|
459
|
+
encapsulation: ViewEncapsulation.None,
|
460
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
461
|
+
styles: [".widget-board{display:inline-block;margin:15px 20px;min-width:calc(100% - 40px);min-height:calc(100% - 34px);--animate-duration:0.5s;background-repeat:no-repeat}.widget-board.grid-background{background-repeat:repeat!important}.widget-board.grid-background .widgets-container .widget-host{touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.widget-board.grid-background .widgets-container .widget-host .widget-edit-overlay{display:block;cursor:move}.widget-board.grid-background .widgets-container .widget-host.widget-dragging{z-index:1000}.widget-board.grid-background .widgets-container .widget-host:focus{outline-width:1px;outline-style:solid;outline-color:var(--ax-primary-color)}.widget-board.grid-background .widget-blank-placeholder{background:var(--ax-primary-trans-light-color);position:absolute}.widget-board .widgets-container{position:relative;touch-action:none}.widget-board .widgets-container.rtl .widget-host .widget-options-menu{right:unset!important;left:0!important}.widget-board .widgets-container .widget-host{position:absolute;background:#fff;box-shadow:2px 2px 3px #dadada}.widget-board .widgets-container .widget-host .widget-content{width:100%;height:100%;display:flex;flex-direction:column}.widget-board .widgets-container .widget-host .widget-content .widget-title{padding:var(--ax-size-md);text-align:start;font-size:1.5em;position:absolute}.widget-board .widgets-container .widget-host .widget-edit-loading{display:none;background:rgba(255,255,255,.85);position:absolute;width:100%;height:100%;top:0;left:0;z-index:2;display:flex}.widget-board .widgets-container .widget-host .widget-config-overlay{position:absolute;background:#fff;width:100%;height:100%;top:0;left:0;z-index:1;padding:var(--ax-size-md);cursor:pointer}.widget-board .widgets-container .widget-host .widget-config-overlay:hover .widget-title{text-decoration:underline}.widget-board .widgets-container .widget-host .widget-config-overlay .widget-title{text-align:start;font-size:1.5em}.widget-board .widgets-container .widget-host .widget-config-overlay .widget-config-box{align-self:center;text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--ax-gray-dark-color)}.widget-board .widgets-container .widget-host .widget-config-overlay .widget-config-box .config-title{font-size:1.2em;margin-bottom:var(--ax-size-md)}.widget-board .widgets-container .widget-host .widget-edit-overlay{display:none;background:rgba(255,255,255,.5);position:absolute;width:100%;height:100%;top:0;left:0;z-index:10}.widget-board .widgets-container .widget-host .widget-edit-overlay .widget-edit-menu{margin:6px;text-align:end;float:inline-end;opacity:1;transition:opacity 1s}.widget-board .widgets-container .widget-host .widget-edit-overlay .widget-edit-menu .widget-edit-menu-button{display:inline-block;background-color:#f0f0f0;border-radius:1px;border:2px solid #fff;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;padding:0;height:32px;width:32px;cursor:pointer;color:#666}.widget-board .widgets-container .widget-host .widget-edit-overlay .widget-edit-menu .widget-edit-menu-button:hover{border-color:#a6a6a6;background-color:#c8c8c8}.widget-board .widgets-container .widget-host .widget-options-menu{display:none;position:absolute;top:0;right:0;z-index:2;cursor:pointer;padding:2px 5px}.widget-board .widgets-container .widget-host .widget-options-menu:hover{background-color:#f0f0f0}.widget-board .widgets-container .widget-host .widget-container{padding:1px;height:100%}.widget-board .widgets-container .widget-host .widget-container:hover .widget-options-menu{display:block}"]
|
462
|
+
}),
|
463
|
+
__metadata("design:paramtypes", [ElementRef,
|
464
|
+
NgZone,
|
465
|
+
ChangeDetectorRef])
|
466
|
+
], AXWidgetBoardComponent);
|
467
|
+
export { AXWidgetBoardComponent };
|
468
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvbGF5b3V0LyIsInNvdXJjZXMiOlsibGliL3dpZGdldC1ib2FyZC93aWRnZXQtYm9hcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFlBQVksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUN0QyxNQUFNLGVBQWUsQ0FBQztBQU92QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVVwRSxJQUFhLHNCQUFzQixHQUFuQyxNQUFhLHNCQUFzQjtJQStDakMsWUFDVSxHQUErQixFQUMvQixJQUFZLEVBQ1osR0FBc0I7UUFGdEIsUUFBRyxHQUFILEdBQUcsQ0FBNEI7UUFDL0IsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBMUNoQyxZQUFPLEdBQXFCLEVBQUUsQ0FBQztRQUcvQixpQkFBWSxHQUFxQixFQUFFLENBQUM7UUFHcEMsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUd0QixZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBRVosY0FBUyxHQUFtQixJQUFJLENBQUM7UUFJakMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFJOUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQU1uQixhQUFRLEdBQUcsVUFBVSxDQUFDO1FBQ3RC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QkFDSixVQUFVO3lEQUFpQjtBQUc5QztJQURDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQzs4QkFDZixTQUFTOzJEQUF3QjtBQUt0RDtJQURDLEtBQUssRUFBRTs7NERBQzRCO0FBR3BDO0lBREMsS0FBSyxFQUFFOzt3REFDYztBQUd0QjtJQURDLEtBQUssRUFBRTs7dURBQ1k7QUFjcEI7SUFEQyxLQUFLLEVBQUU7OzREQUNzQjtBQVc5QjtJQURDLE1BQU0sRUFBRTs4QkFDUSxZQUFZOytEQUE4RTtBQUczRztJQURDLE1BQU0sRUFBRTs4QkFDSyxZQUFZOzREQUEwRTtBQTdDekYsc0JBQXNCO0lBUmxDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxpQkFBaUI7UUFDM0IsNGZBQTRDO1FBRTVDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRTtRQUNsQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtRQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7S0FDaEQsQ0FBQztxQ0FpRGUsVUFBVTtRQUNULE1BQU07UUFDUCxpQkFBaUI7R0FsRHJCLHNCQUFzQixDQTZkbEM7U0E3ZFksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIElucHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE5nWm9uZSxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFYV2lkZ2V0Q29uZmlnLFxyXG4gIEFYV2lkZ2V0Q29uZmlnQ2hhbmdlZCxcclxuICBBWFdpZGdldEJvYXJkQ29uZmlnQ2hhbmdlZCxcclxuICBBWFdpZGdldENvbmZpZ1NhdmVkRXZlbnRcclxufSBmcm9tICcuL3dpZGdldC5jbGFzcyc7XHJcbmltcG9ydCB7IEFYV2lkZ2V0SG9zdENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0LWhvc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhIdG1sVXRpbCwgQVhDbGllbnRSZWMgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LXdpZGdldC1ib2FyZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1ib2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd2lkZ2V0LWJvYXJkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaG9zdDogeyBjbGFzczogJ2F4IHdpZGdldC1ib2FyZCcgfSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFdpZGdldEJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJylcclxuICBwcml2YXRlIGNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oQVhXaWRnZXRIb3N0Q29tcG9uZW50KVxyXG4gIHByaXZhdGUgd2lkZ2V0SG9zdHM6IFF1ZXJ5TGlzdDxBWFdpZGdldEhvc3RDb21wb25lbnQ+O1xyXG5cclxuICB3aWRnZXRzOiBBWFdpZGdldENvbmZpZ1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2FsbGVyeUl0ZW1zOiBBWFdpZGdldENvbmZpZ1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGlsZVNpemU6IG51bWJlciA9IDgwO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdhcFNpemU6IG51bWJlciA9IDU7XHJcblxyXG4gIHByaXZhdGUgbmV3V2lkZ2V0OiBBWFdpZGdldENvbmZpZyA9IG51bGw7XHJcblxyXG4gIHB1YmxpYyBydGw6IGJvb2xlYW47XHJcblxyXG4gIHByaXZhdGUgX2lzSW5FZGl0aW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGlzSW5FZGl0aW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzSW5FZGl0aW5nO1xyXG4gIH1cclxuICBwcml2YXRlIGlzRHJhZ2dpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIGRyYWdJdGVtOiBIVE1MRWxlbWVudDtcclxuXHJcbiAgQElucHV0KClcclxuICBwcm92aWRlVmFsdWU6IChlOiBhbnkpID0+IGFueTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBEQVRBX0NPTCA9ICdkYXRhLWNvbCc7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBEQVRBX1JPVyA9ICdkYXRhLXJvdyc7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBEQVRBX1NJWkVfWCA9ICdkYXRhLXNpemUteCc7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBEQVRBX1NJWkVfWSA9ICdkYXRhLXNpemUteSc7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBEQVRBX09MRF9DT0wgPSAnZGF0YS1vbGQtY29sJztcclxuICBwcml2YXRlIHJlYWRvbmx5IERBVEFfT0xEX1JPVyA9ICdkYXRhLW9sZC1yb3cnO1xyXG5cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25Db25maWdDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhXaWRnZXRCb2FyZENvbmZpZ0NoYW5nZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFdpZGdldEJvYXJkQ29uZmlnQ2hhbmdlZD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25XaWRnZXRTYXZlOiBFdmVudEVtaXR0ZXI8QVhXaWRnZXRDb25maWdTYXZlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhXaWRnZXRDb25maWdTYXZlZEV2ZW50PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcclxuICAgIHByaXZhdGUgem9uZTogTmdab25lLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7IH1cclxuXHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMucnRsID09IG51bGwpIHtcclxuICAgICAgdGhpcy5ydGwgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdkaXJlY3Rpb24nKSA9PT0gJ3J0bCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKGMpID0+IHtcclxuICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xyXG4gICAgICBzdHlsZS50eXBlID0gJ3RleHQvY3NzJztcclxuICAgICAgdGhpcy5yZWYubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChzdHlsZSk7XHJcbiAgICAgIC8vIGFkZCBjc3MgZGF0YSBjbGFzc2VzXHJcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IDUwOyBpKyspIHtcclxuICAgICAgICBzdHlsZS5pbm5lckhUTUwgKz0gYFske3RoaXMuREFUQV9DT0x9PVwiJHtpfVwiXSB7ICAke3RoaXMucnRsID8gJ3JpZ2h0JyA6ICdsZWZ0J306ICR7KGkgLSAxKSAqICh0aGlzLnRpbGVTaXplICsgdGhpcy5nYXBTaXplKX1weDsgfWA7XHJcbiAgICAgICAgc3R5bGUuaW5uZXJIVE1MICs9IGBbJHt0aGlzLkRBVEFfUk9XfT1cIiR7aX1cIl0geyAgdG9wOiAkeyhpIC0gMSkgKiAodGhpcy50aWxlU2l6ZSArIHRoaXMuZ2FwU2l6ZSl9cHg7IH1gO1xyXG4gICAgICAgIHN0eWxlLmlubmVySFRNTCArPSBgWyR7dGhpcy5EQVRBX1NJWkVfWH09XCIke2l9XCJdIHsgIHdpZHRoOiAgJHsoaSAqIHRoaXMudGlsZVNpemUpICsgKChpIC0gMSkgKiB0aGlzLmdhcFNpemUpfXB4OyB9YDtcclxuICAgICAgICBzdHlsZS5pbm5lckhUTUwgKz0gYFske3RoaXMuREFUQV9TSVpFX1l9PVwiJHtpfVwiXSB7ICBoZWlnaHQ6ICR7KGkgKiB0aGlzLnRpbGVTaXplKSArICgoaSAtIDEpICogdGhpcy5nYXBTaXplKX1weDsgfWA7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjR3JpZFNpemUoKSB7XHJcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICBjb25zdCB3aWR0aCA9XHJcbiAgICAgICAgKE1hdGgubWF4KC4uLnRoaXMud2lkZ2V0cy5tYXAoKGMpID0+IGMuY29sICsgYy5zaXplWCAtIDEpKSkgKiAodGhpcy50aWxlU2l6ZSArIHRoaXMuZ2FwU2l6ZSk7XHJcbiAgICAgIGNvbnN0IGhlaWdodCA9XHJcbiAgICAgICAgKE1hdGgubWF4KC4uLnRoaXMud2lkZ2V0cy5tYXAoKGMpID0+IGMucm93ICsgYy5zaXplWSAtIDEpKSkgKiAodGhpcy50aWxlU2l6ZSArIHRoaXMuZ2FwU2l6ZSk7XHJcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aCArICdweCc7XHJcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgJ3B4JztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlRWRpdCgpIHtcclxuICAgIHRoaXMuX2lzSW5FZGl0aW5nID8gdGhpcy5maW5pc2hFZGl0KCkgOiB0aGlzLnN0YXJ0RWRpdCgpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBwcml2YXRlIGRyYWdTdGFydChlOiBNb3VzZUV2ZW50KSB7XHJcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuX2lzSW5FZGl0aW5nICYmIGUud2hpY2ggPT09IDEpIHtcclxuICAgICAgICB0aGlzLmRyYWdJdGVtID0gZS5jdXJyZW50VGFyZ2V0IGFzIGFueTtcclxuICAgICAgICB0aGlzLmRyYWdJdGVtLnNldEF0dHJpYnV0ZSgnZGF0YS14LW9mZnNldCcsICh0aGlzLmRyYWdJdGVtLm9mZnNldExlZnQgLSBlLmNsaWVudFgpLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIC8vXHJcbiAgICAgICAgdGhpcy5kcmFnSXRlbS5zZXRBdHRyaWJ1dGUoJ2RhdGEteS1vZmZzZXQnLCAodGhpcy5kcmFnSXRlbS5vZmZzZXRUb3AgLSBlLmNsaWVudFkpLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIHRoaXMuZHJhZ0l0ZW0uY2xhc3NMaXN0LmFkZCgnd2lkZ2V0LWRyYWdnaW5nJyk7XHJcbiAgICAgICAgdGhpcy5kcmFnSXRlbS5jbGFzc0xpc3QucmVtb3ZlKCdhbmltYXRlX19hbmltYXRlZCcsICdhbmltYXRlX19wdWxzZScpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlbW92ZVBvc2l0aW9uRGF0YSgpIHtcclxuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmRyYWdJdGVtICYmIHRoaXMuX2lzSW5FZGl0aW5nICYmIHRoaXMuZHJhZ0l0ZW0uZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9PTERfQ09MKSA9PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5kcmFnSXRlbS5zZXRBdHRyaWJ1dGUodGhpcy5EQVRBX09MRF9DT0wsIHRoaXMuZHJhZ0l0ZW0uZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9DT0wpKTtcclxuICAgICAgICB0aGlzLmRyYWdJdGVtLnNldEF0dHJpYnV0ZSh0aGlzLkRBVEFfT0xEX1JPVywgdGhpcy5kcmFnSXRlbS5nZXRBdHRyaWJ1dGUodGhpcy5EQVRBX1JPVykpO1xyXG4gICAgICAgIHRoaXMuZHJhZ0l0ZW0ucmVtb3ZlQXR0cmlidXRlKHRoaXMuREFUQV9DT0wpO1xyXG4gICAgICAgIHRoaXMuZHJhZ0l0ZW0ucmVtb3ZlQXR0cmlidXRlKHRoaXMuREFUQV9ST1cpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlc2V0UG9zaXRpb25EYXRhKCkge1xyXG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuZHJhZ0l0ZW0gJiYgdGhpcy5faXNJbkVkaXRpbmcpIHtcclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHRoaXMuZHJhZ0l0ZW0sIHRoaXMuZHJhZ0l0ZW0uZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9PTERfQ09MKSwgdGhpcy5kcmFnSXRlbS5nZXRBdHRyaWJ1dGUodGhpcy5EQVRBX09MRF9ST1cpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFBvc2l0aW9uKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2w6IHN0cmluZywgcm93OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMuREFUQV9DT0wsIGNvbCk7XHJcbiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMuREFUQV9ST1csIHJvdyk7XHJcbiAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKHRoaXMuREFUQV9PTERfQ09MKTtcclxuICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUodGhpcy5EQVRBX09MRF9ST1cpO1xyXG4gICAgICBlbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCd0b3AnKTtcclxuICAgICAgZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnbGVmdCcpO1xyXG4gICAgICBjb25zdCB3aWRnZXQgPSB0aGlzLndpZGdldHMuZmluZChjID0+IGNbJ19fbWV0YV9fJ10uaW5zdGFuY2UuZWxlbWVudCA9PT0gZWxlbWVudCk7XHJcbiAgICAgIHdpZGdldC5jb2wgPSBOdW1iZXIoY29sKTtcclxuICAgICAgd2lkZ2V0LnJvdyA9IE51bWJlcihyb3cpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRyYWcoZSkge1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmRyYWdJdGVtICYmIHRoaXMuX2lzSW5FZGl0aW5nKSB7XHJcbiAgICAgICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmFkZFBsYWNlaG9sZGVyKCk7XHJcbiAgICAgICAgY29uc3QgeE9mZnNldCA9IE51bWJlcih0aGlzLmRyYWdJdGVtLmdldEF0dHJpYnV0ZSgnZGF0YS14LW9mZnNldCcpKTtcclxuICAgICAgICBjb25zdCB5T2Zmc2V0ID0gTnVtYmVyKHRoaXMuZHJhZ0l0ZW0uZ2V0QXR0cmlidXRlKCdkYXRhLXktb2Zmc2V0JykpO1xyXG4gICAgICAgIHRoaXMuZHJhZ0l0ZW0uc3R5bGUubGVmdCA9IGUuY2xpZW50WCArIHhPZmZzZXQgKyAncHgnO1xyXG4gICAgICAgIHRoaXMuZHJhZ0l0ZW0uc3R5bGUudG9wID0gZS5jbGllbnRZICsgeU9mZnNldCArICdweCc7XHJcbiAgICAgICAgLy9cclxuICAgICAgICB0aGlzLmRldGVjdEJlc3RQbGFjZW1lbnQoKTtcclxuICAgICAgICB0aGlzLnJlbW92ZVBvc2l0aW9uRGF0YSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZHJhZ0VuZChlKSB7XHJcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5kcmFnSXRlbSAmJiB0aGlzLl9pc0luRWRpdGluZyAmJiB0aGlzLmlzRHJhZ2dpbmcpIHtcclxuICAgICAgICB0aGlzLmRyYWdJdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ3dpZGdldC1kcmFnZ2luZycpO1xyXG4gICAgICAgIHRoaXMuZHJhZ0l0ZW0uY2xhc3NMaXN0LmFkZCgnYW5pbWF0ZV9fYW5pbWF0ZWQnLCAnYW5pbWF0ZV9fcHVsc2UnKTtcclxuICAgICAgICAvL1xyXG4gICAgICAgIGNvbnN0IHAgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy53aWRnZXQtYmxhbmstcGxhY2Vob2xkZXInKTtcclxuICAgICAgICBpZiAodGhpcy5uZXdXaWRnZXQpIHtcclxuICAgICAgICAgIGNvbnN0IHcgPSB7XHJcbiAgICAgICAgICAgIHVuaXF1ZU5hbWU6IHRoaXMubmV3V2lkZ2V0LnVuaXF1ZU5hbWUsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcy5uZXdXaWRnZXQuY29tcG9uZW50LFxyXG4gICAgICAgICAgICB0aXRsZTogdGhpcy5uZXdXaWRnZXQudGl0bGUsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMubmV3V2lkZ2V0Lm9wdGlvbnMsXHJcbiAgICAgICAgICAgIHNpemVYOiB0aGlzLm5ld1dpZGdldC5zaXplWCxcclxuICAgICAgICAgICAgc2l6ZVk6IHRoaXMubmV3V2lkZ2V0LnNpemVZLFxyXG4gICAgICAgICAgICBjb2w6IE51bWJlcihwLmdldEF0dHJpYnV0ZSh0aGlzLkRBVEFfQ09MKSksXHJcbiAgICAgICAgICAgIHJvdzogTnVtYmVyKHAuZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9ST1cpKVxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICB0aGlzLndpZGdldHMucHVzaCh3KTtcclxuICAgICAgICAgIHRoaXMubmV3V2lkZ2V0ID0gbnVsbDtcclxuICAgICAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5kcmFnSXRlbSk7XHJcbiAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB0aGlzLmNhbGNHcmlkU2l6ZSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICB3WydfX21ldGFfXyddLmluc3RhbmNlLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5kcmFnU3RhcnQuYmluZCh0aGlzKSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB9LCAxMDAwKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAocCkge1xyXG4gICAgICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHRoaXMuZHJhZ0l0ZW0sIHAuZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9DT0wpLCBwLmdldEF0dHJpYnV0ZSh0aGlzLkRBVEFfUk9XKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbih0aGlzLmRyYWdJdGVtLCB0aGlzLmRyYWdJdGVtLmdldEF0dHJpYnV0ZSh0aGlzLkRBVEFfT0xEX0NPTCksIHRoaXMuZHJhZ0l0ZW0uZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9PTERfUk9XKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgdGhpcy5yZW1vdmVQbGFjZWhvbGRlcigpO1xyXG4gICAgICAgIHRoaXMuZHJhZ0l0ZW0gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuY2FsY0dyaWRTaXplKCk7XHJcbiAgICAgICAgdGhpcy5lbWl0Q29uZmlnQ2hhbmdlZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRldGVjdEZpcnN0RW1wdHlTbG90KHc6IEFYV2lkZ2V0Q29uZmlnKSB7XHJcbiAgICBjb25zdCB4VGlsZSA9IE1hdGguZmxvb3IodGhpcy5yZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldFdpZHRoIC8gdGhpcy50aWxlU2l6ZSk7XHJcbiAgICBmb3IgKGxldCBqID0gMTsgaiA8PSAxMDA7IGorKykge1xyXG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSB4VGlsZSAtIHcuc2l6ZVg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IHJlYyA9IG5ldyBBWENsaWVudFJlYyh7XHJcbiAgICAgICAgICBsZWZ0OiBpLFxyXG4gICAgICAgICAgdG9wOiBqLFxyXG4gICAgICAgICAgd2lkdGg6IHcuc2l6ZVgsXHJcbiAgICAgICAgICBoZWlnaHQ6IHcuc2l6ZVlcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBlbCA9IHRoaXMud2lkZ2V0cy5maWx0ZXIoYyA9PiBjICE9PSB3KS5maW5kKChjKSA9PlxyXG4gICAgICAgICAgcmVjLmludGVyc2VjdCh7XHJcbiAgICAgICAgICAgIGxlZnQ6IGMuY29sLFxyXG4gICAgICAgICAgICB0b3A6IGMucm93LFxyXG4gICAgICAgICAgICB3aWR0aDogYy5zaXplWCxcclxuICAgICAgICAgICAgaGVpZ2h0OiBjLnNpemVZXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGVsID09IG51bGwpIHtcclxuICAgICAgICAgIHcuY29sID0gaTtcclxuICAgICAgICAgIHcucm93ID0gajtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGV0ZWN0QmVzdFBsYWNlbWVudCgpIHtcclxuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHAgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy53aWRnZXQtYmxhbmstcGxhY2Vob2xkZXInKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgbGV0IGNvbCA9IE1hdGguY2VpbCh0aGlzLmRyYWdJdGVtLm9mZnNldExlZnQgLyB0aGlzLnRpbGVTaXplKTtcclxuICAgICAgaWYgKHRoaXMucnRsKSB7XHJcbiAgICAgICAgY29sID0gTWF0aC5jZWlsKCh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIC0gKHRoaXMuZHJhZ0l0ZW0ub2Zmc2V0TGVmdCArIHRoaXMuZHJhZ0l0ZW0uY2xpZW50V2lkdGgpKSAvIHRoaXMudGlsZVNpemUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgcm93ID0gTWF0aC5jZWlsKHRoaXMuZHJhZ0l0ZW0ub2Zmc2V0VG9wIC8gdGhpcy50aWxlU2l6ZSk7XHJcbiAgICAgIGlmIChjb2wgPCAxKSB7XHJcbiAgICAgICAgY29sID0gMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocm93IDwgMSkge1xyXG4gICAgICAgIHJvdyA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3Qgd2lkZ2V0cyA9IEFycmF5LmZyb20odGhpcy5yZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcud2lkZ2V0LWhvc3QnKSkubWFwKChjKSA9PiBjIGFzIEhUTUxFbGVtZW50KTtcclxuICAgICAgcC5zZXRBdHRyaWJ1dGUodGhpcy5EQVRBX0NPTCwgY29sLnRvU3RyaW5nKCkpO1xyXG4gICAgICBwLnNldEF0dHJpYnV0ZSh0aGlzLkRBVEFfUk9XLCByb3cudG9TdHJpbmcoKSk7XHJcbiAgICAgIGNvbnN0IGNvbGxpc2lvbiA9IHdpZGdldHMuZmlsdGVyKGMgPT4gYyAhPT0gdGhpcy5kcmFnSXRlbSkuc29tZShjID0+IEFYSHRtbFV0aWwuY29sbGlzaW9uKGMsIHRoaXMuZHJhZ0l0ZW0pKTtcclxuICAgICAgaWYgKGNvbGxpc2lvbikge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlUGxhY2Vob2xkZXIoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICBwcml2YXRlIGFkZFBsYWNlaG9sZGVyKCkge1xyXG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgdGhpcy5yZW1vdmVQbGFjZWhvbGRlcigpO1xyXG4gICAgICBpZiAodGhpcy5kcmFnSXRlbSkge1xyXG4gICAgICAgIGNvbnN0IHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBwLmNsYXNzTGlzdC5hZGQoJ3dpZGdldC1ibGFuay1wbGFjZWhvbGRlcicpO1xyXG4gICAgICAgIHAuc2V0QXR0cmlidXRlKHRoaXMuREFUQV9DT0wsIHRoaXMuZHJhZ0l0ZW0uZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9DT0wpKTtcclxuICAgICAgICBwLnNldEF0dHJpYnV0ZSh0aGlzLkRBVEFfUk9XLCB0aGlzLmRyYWdJdGVtLmdldEF0dHJpYnV0ZSh0aGlzLkRBVEFfUk9XKSk7XHJcbiAgICAgICAgcC5zZXRBdHRyaWJ1dGUodGhpcy5EQVRBX1NJWkVfWCwgdGhpcy5kcmFnSXRlbS5nZXRBdHRyaWJ1dGUodGhpcy5EQVRBX1NJWkVfWCkpO1xyXG4gICAgICAgIHAuc2V0QXR0cmlidXRlKHRoaXMuREFUQV9TSVpFX1ksIHRoaXMuZHJhZ0l0ZW0uZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9TSVpFX1kpKTtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlUGxhY2Vob2xkZXIoKSB7XHJcbiAgICBjb25zdCBwID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcud2lkZ2V0LWJsYW5rLXBsYWNlaG9sZGVyJyk7XHJcbiAgICBwPy5yZW1vdmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGFydEVkaXQoKSB7XHJcbiAgICB0aGlzLl9pc0luRWRpdGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmNhbGNHcmlkU2l6ZSgpO1xyXG4gICAgdGhpcy5yZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdncmlkLWJhY2tncm91bmQnKTtcclxuICAgIGNvbnN0IGJnID0gdGhpcy5yZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRGl2RWxlbWVudDtcclxuICAgIGJnLnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kLXBvc2l0aW9uJywgYCR7dGhpcy5ydGwgPyAncmlnaHQnIDogJ2xlZnQnfSB0b3BgKTtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXHJcbiAgICBjb25zdCBwYXR0ZXJuID0gYHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIgd2lkdGg9XCIke3RoaXMudGlsZVNpemUgKyB0aGlzLmdhcFNpemV9XCIgaGVpZ2h0PVwiJHt0aGlzLnRpbGVTaXplICsgdGhpcy5nYXBTaXplfVwiPiA8cmVjdCBzdHlsZT1cImZpbGw6ICUyM2RhZGFkYVwiIHg9XCIke3RoaXMucnRsID8gdGhpcy5nYXBTaXplIDogMH1cIiB3aWR0aD1cIiR7dGhpcy50aWxlU2l6ZX1cIiBoZWlnaHQ9XCIke3RoaXMudGlsZVNpemV9XCIgeT1cIjBcIj48L3JlY3Q+PC9zdmc+JylgO1xyXG4gICAgYmcuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtaW1hZ2UnLCBwYXR0ZXJuKTtcclxuICAgIC8vXHJcbiAgICBjb25zdCB3aWRnZXRzID0gQXJyYXkuZnJvbSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy53aWRnZXQtaG9zdCcpKTtcclxuICAgIHdpZGdldHMuZm9yRWFjaCgodykgPT4ge1xyXG4gICAgICB3LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuZHJhZ1N0YXJ0LmJpbmQodGhpcyksIGZhbHNlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmRyYWcuYmluZCh0aGlzKSwgZmFsc2UpO1xyXG4gICAgdGhpcy5yZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5kcmFnRW5kLmJpbmQodGhpcyksIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaW5pc2hFZGl0KCkge1xyXG4gICAgdGhpcy5yZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdncmlkLWJhY2tncm91bmQnKTtcclxuICAgIGNvbnN0IGJnID0gdGhpcy5yZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRGl2RWxlbWVudDtcclxuICAgIGJnLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdiYWNrZ3JvdW5kLWltYWdlJyk7XHJcbiAgICAvL1xyXG4gICAgdGhpcy5faXNJbkVkaXRpbmcgPSBmYWxzZTtcclxuICAgIGNvbnN0IHdpZGdldHMgPSBBcnJheS5mcm9tKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLndpZGdldC1ob3N0JykpO1xyXG4gICAgd2lkZ2V0cy5mb3JFYWNoKCh3KSA9PiB7XHJcbiAgICAgIHcucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5kcmFnU3RhcnQuYmluZCh0aGlzKSwgZmFsc2UpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuZHJhZy5iaW5kKHRoaXMpLCBmYWxzZSk7XHJcbiAgICB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLmRyYWdFbmQuYmluZCh0aGlzKSwgZmFsc2UpO1xyXG4gICAgdGhpcy5lbWl0Q29uZmlnQ2hhbmdlZCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIGFkZFdpZGdldCh3aWRnZXQ6IEFYV2lkZ2V0Q29uZmlnKSB7XHJcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICB0aGlzLm5ld1dpZGdldCA9IHtcclxuICAgICAgICB1bmlxdWVOYW1lOiB3aWRnZXQudW5pcXVlTmFtZSxcclxuICAgICAgICBjb21wb25lbnQ6IHdpZGdldC5jb21wb25lbnQsXHJcbiAgICAgICAgdGl0bGU6IHdpZGdldC50aXRsZSxcclxuICAgICAgICBjb2w6IDEsXHJcbiAgICAgICAgcm93OiAxLFxyXG4gICAgICAgIHNpemVYOiB3aWRnZXQuc2l6ZVgsXHJcbiAgICAgICAgc2l6ZVk6IHdpZGdldC5zaXplWSxcclxuICAgICAgICBvcHRpb25zOiB3aWRnZXQub3B0aW9ucyxcclxuICAgICAgICBwcm9wczogd2lkZ2V0LnByb3BzXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuZGV0ZWN0Rmlyc3RFbXB0eVNsb3QodGhpcy5uZXdXaWRnZXQpO1xyXG4gICAgICBjb25zdCB3ID0ge1xyXG4gICAgICAgIHVuaXF1ZU5hbWU6IHRoaXMubmV3V2lkZ2V0LnVuaXF1ZU5hbWUsXHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLm5ld1dpZGdldC5jb21wb25lbnQsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMubmV3V2lkZ2V0LnRpdGxlLFxyXG4gICAgICAgIG9wdGlvbnM6IHRoaXMubmV3V2lkZ2V0Lm9wdGlvbnMsXHJcbiAgICAgICAgcHJvcHM6IHRoaXMubmV3V2lkZ2V0LnByb3BzLFxyXG4gICAgICAgIHNpemVYOiB0aGlzLm5ld1dpZGdldC5zaXplWCxcclxuICAgICAgICBzaXplWTogdGhpcy5uZXdXaWRnZXQuc2l6ZVksXHJcbiAgICAgICAgY29sOiB0aGlzLm5ld1dpZGdldC5jb2wsXHJcbiAgICAgICAgcm93OiB0aGlzLm5ld1dpZGdldC5yb3dcclxuICAgICAgfTtcclxuICAgICAgdGhpcy53aWRnZXRzLnB1c2godyk7XHJcbiAgICAgIHRoaXMubmV3V2lkZ2V0ID0gbnVsbDtcclxuICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHRoaXMuY2FsY0dyaWRTaXplKCk7XHJcbiAgICAgICAgdGhpcy5lbWl0Q29uZmlnQ2hhbmdlZCgpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgd1snX19tZXRhX18nXS5pbnN0YW5jZS5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuZHJhZ1N0YXJ0LmJpbmQodGhpcyksIGZhbHNlKTtcclxuICAgICAgICB9LCAxMDAwKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBoYW5kbGVPblJlbW92ZSh3OiBBWFdpZGdldEhvc3RDb21wb25lbnQpIHtcclxuICAgIHcuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdhbmltYXRlX19hbmltYXRlZCcsICdhbmltYXRlX196b29tT3V0Jyk7XHJcbiAgICB3LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgKCkgPT4ge1xyXG4gICAgICB0aGlzLndpZGdldHMgPSB0aGlzLndpZGdldHMuZmlsdGVyKChjKSA9PiAoYyBhcyBhbnkpLl9fbWV0YV9fLmlkICE9PSAody5jb25maWcgYXMgYW55KS5fX21ldGFfXy5pZCk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgdGhpcy5jYWxjR3JpZFNpemUoKTtcclxuICAgICAgdGhpcy5lbWl0Q29uZmlnQ2hhbmdlZCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVPblNhdmUoZTogQVhXaWRnZXRDb25maWdTYXZlZEV2ZW50KSB7XHJcbiAgICB0aGlzLm9uV2lkZ2V0U2F2ZS5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUZuKGluZGV4LCBpdGVtKSB7XHJcbiAgICBpZiAoIWl0ZW1bJ19fbWV0YV9fJ10/LmlkKSB7XHJcbiAgICAgIGl0ZW1bJ19fbWV0YV9fJ10gPSB7fTtcclxuICAgICAgaXRlbVsnX19tZXRhX18nXS5pZCA9IEFYSHRtbFV0aWwuZ2V0VUlEKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbVsnX19tZXRhX18nXT8uaWQ7XHJcbiAgfVxyXG5cclxuXHJcbiAgbG9hZCh3aWRnZXRzOiBzdHJpbmcgfCBBWFdpZGdldENvbmZpZ1tdKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBpZiAod2lkZ2V0cykge1xyXG4gICAgICAgIGNvbnN0IGxvYWRlZFdpZGdldHM6IEFYV2lkZ2V0Q29uZmlnW10gPSBbXTtcclxuICAgICAgICBpZiAodHlwZW9mIHdpZGdldHMgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBsb2FkZWRXaWRnZXRzLnB1c2goLi4uSlNPTi5wYXJzZSh3aWRnZXRzKSk7XHJcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICByZWplY3QoJ0ludmFsaWQgd2lkZ2V0IGpzb24gZGF0YSEnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBsb2FkZWRXaWRnZXRzLnB1c2goLi4ud2lkZ2V0cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBpbnRlcnZhbElkOiBudW1iZXIgPSAtMTtcclxuICAgICAgICBjb25zdCBsb2FkRnVuYyA9ICgpID0+IHtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5nYWxsZXJ5SXRlbXMgJiYgdGhpcy5nYWxsZXJ5SXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBsb2FkZWRXaWRnZXRzLmZvckVhY2godyA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZ2l0ZW0gPSB0aGlzLmdhbGxlcnlJdGVtcy5maW5kKGMgPT4gYy51bmlxdWVOYW1lID09PSB3LnVuaXF1ZU5hbWUpO1xyXG4gICAgICAgICAgICAgIGlmIChnaXRlbSkge1xyXG4gICAgICAgICAgICAgICAgdy5jb21wb25lbnQgPSBnaXRlbS5jb21wb25lbnQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoZ2l0ZW0ucHJvcHMpIHtcclxuICAgICAgICAgICAgICAgICAgdy5wcm9wcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZ2l0ZW0ucHJvcHMpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLndpZGdldHMucHVzaCguLi5sb2FkZWRXaWRnZXRzKTtcclxuICAgICAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaW50ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbChsb2FkRnVuYywgMjAwKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoKSB7XHJcbiAgICBpZiAodGhpcy53aWRnZXRzLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLndpZGdldHMgPSBbXTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLmVtaXRDb25maWdDaGFuZ2VkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzYXZlKCk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBvYmogPSB0aGlzLndpZGdldHMubWFwKGMgPT4gKHtcclxuICAgICAgdW5pcXVlTmFtZTogYy51bmlxdWVOYW1lLFxyXG4gICAgICBjb21wb25lbnQ6IGMuY29tcG9uZW50LFxyXG4gICAgICB0aXRsZTogYy50aXRsZSxcclxuICAgICAgc2l6ZVg6IGMuc2l6ZVgsXHJcbiAgICAgIHNpemVZOiBjLnNpemVZLFxyXG4gICAgICBjb2w6IGMuY29sLFxyXG4gICAgICByb3c6IGMucm93LFxyXG4gICAgICBvcHRpb25zOiBjLm9wdGlvbnMsXHJcbiAgICAgIHByb3BzOiBjLnByb3BzXHJcbiAgICB9KSk7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIHRoaXMud2lkZ2V0SG9zdHMuZm9yRWFjaChob3N0ID0+IHtcclxuICAgICAgaG9zdC53aWRnZXQucmVmcmVzaCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVPbkNvbmZpZ0NoYW5nZWQoZTogQVhXaWRnZXRDb25maWdDaGFuZ2VkKSB7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmVtaXRDb25maWdDaGFuZ2VkKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVPblJlc2l6ZWRDaGFuZ2VkKGU6IEFYV2lkZ2V0Q29uZmlnQ2hhbmdlZCkge1xyXG4gICAgdGhpcy5kZXRlY3RGaXJzdEVtcHR5U2xvdChlLmNvbmZpZyk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmVtaXRDb25maWdDaGFuZ2VkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2l6ZUNoYW5nZU9ic2VydmVyOiBhbnk7XHJcbiAgcHJpdmF0ZSBlbWl0Q29uZmlnQ2hhbmdlZCgpIHtcclxuICAgIGlmICghdGhpcy5yZXNpemVDaGFuZ2VPYnNlcnZlcikge1xyXG4gICAgICB0aGlzLnJlc2l6ZUNoYW5nZU9ic2VydmVyID0gbmV3IE9ic2VydmFibGUoKTtcclxuICAgICAgT2JzZXJ2YWJsZS5jcmVhdGUob2JzZXJ2ZXIgPT4ge1xyXG4gICAgICAgIHRoaXMucmVzaXplQ2hhbmdlT2JzZXJ2ZXIgPSBvYnNlcnZlcjtcclxuICAgICAgfSlcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNzUwKSlcclxuICAgICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoYyA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uQ29uZmlnQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMucmVzaXplQ2hhbmdlT2JzZXJ2ZXIubmV4dChuZXcgRGF0ZSgpKTtcclxuICB9XHJcbn1cclxuIl19
|
@@ -0,0 +1,69 @@
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
2
|
+
import { NgModule } from '@angular/core';
|
3
|
+
import { AXWidgetBoardComponent } from './widget-board.component';
|
4
|
+
import { CommonModule } from '@angular/common';
|
5
|
+
import { AXWidgetHostComponent } from './widget-host.component';
|
6
|
+
import { AXSearchBoxModule, AXLoadingModule, AXProppertyEditorModule, AXPageModule, AXLabelModule, AXToolbarModule, AXTabStripModule, AXMenuModule, AXFormGroupModule, AXTextAreaModule, AXTextBoxModule, AXFieldsetModule, AXCheckBoxModule, AXValidationModule } from '@acorex/components';
|
7
|
+
import { RouterModule } from '@angular/router';
|
8
|
+
import { AXWidgetConfigComponent } from './widget-config.component';
|
9
|
+
import { AXTranslator, AXTranslatorModule } from '@acorex/core';
|
10
|
+
import { AXWidgetSizePropertyEditorComponent } from './editors/widget-size-editor/widget-size.editor';
|
11
|
+
import { AXWidgetSizePropertyEditorModule } from './editors/widget-size-editor/widget-size.module';
|
12
|
+
import { AXWidgetSaveComponent } from './widget-save.component';
|
13
|
+
let AXWidgetBoardModule = class AXWidgetBoardModule {
|
14
|
+
/**
|
15
|
+
*
|
16
|
+
*/
|
17
|
+
constructor() {
|
18
|
+
AXTranslator.load('en', {
|
19
|
+
'widget-board': {
|
20
|
+
'configurable-props': 'Configurable Properties',
|
21
|
+
configure: 'Configure Widget'
|
22
|
+
}
|
23
|
+
});
|
24
|
+
AXTranslator.load('fa', {
|
25
|
+
'widget-board': {
|
26
|
+
'configurable-props': 'ویژگی های قابل تنظیم',
|
27
|
+
configure: 'پیکر بندی ابزارک'
|
28
|
+
}
|
29
|
+
});
|
30
|
+
}
|
31
|
+
};
|
32
|
+
AXWidgetBoardModule = __decorate([
|
33
|
+
NgModule({
|
34
|
+
imports: [
|
35
|
+
CommonModule,
|
36
|
+
AXSearchBoxModule,
|
37
|
+
AXLoadingModule,
|
38
|
+
RouterModule,
|
39
|
+
AXProppertyEditorModule,
|
40
|
+
AXPageModule,
|
41
|
+
AXToolbarModule,
|
42
|
+
AXTranslatorModule,
|
43
|
+
AXLabelModule,
|
44
|
+
AXTextAreaModule,
|
45
|
+
AXFieldsetModule,
|
46
|
+
AXTextBoxModule,
|
47
|
+
AXFormGroupModule,
|
48
|
+
AXTabStripModule,
|
49
|
+
AXCheckBoxModule,
|
50
|
+
AXMenuModule,
|
51
|
+
AXTranslatorModule,
|
52
|
+
AXWidgetSizePropertyEditorModule,
|
53
|
+
AXValidationModule,
|
54
|
+
RouterModule.forChild([
|
55
|
+
{
|
56
|
+
component: AXWidgetSizePropertyEditorComponent,
|
57
|
+
path: 'ax/editors/widget-size'
|
58
|
+
},
|
59
|
+
])
|
60
|
+
],
|
61
|
+
exports: [AXWidgetBoardComponent, AXProppertyEditorModule],
|
62
|
+
declarations: [AXWidgetBoardComponent, AXWidgetHostComponent, AXWidgetConfigComponent, AXWidgetSaveComponent],
|
63
|
+
entryComponents: [AXWidgetConfigComponent, AXWidgetSaveComponent],
|
64
|
+
providers: []
|
65
|
+
}),
|
66
|
+
__metadata("design:paramtypes", [])
|
67
|
+
], AXWidgetBoardModule);
|
68
|
+
export { AXWidgetBoardModule };
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWJvYXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvbGF5b3V0LyIsInNvdXJjZXMiOlsibGliL3dpZGdldC1ib2FyZC93aWRnZXQtYm9hcmQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsWUFBWSxFQUFFLGFBQWEsRUFDM0IsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFDNUYsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQW1DaEUsSUFBYSxtQkFBbUIsR0FBaEMsTUFBYSxtQkFBbUI7SUFDNUI7O09BRUc7SUFDSDtRQUNJLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ3BCLGNBQWMsRUFBRTtnQkFDWixvQkFBb0IsRUFBRSx5QkFBeUI7Z0JBQy9DLFNBQVMsRUFBRSxrQkFBa0I7YUFDaEM7U0FDSixDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNwQixjQUFjLEVBQUU7Z0JBQ1osb0JBQW9CLEVBQUUsc0JBQXNCO2dCQUM1QyxTQUFTLEVBQUUsa0JBQWtCO2FBQ2hDO1NBQ0osQ0FBQyxDQUFDO0lBRVAsQ0FBQztDQUVKLENBQUE7QUFwQlksbUJBQW1CO0lBakMvQixRQUFRLENBQUM7UUFDTixPQUFPLEVBQUU7WUFDTCxZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixZQUFZO1lBQ1osdUJBQXVCO1lBQ3ZCLFlBQVk7WUFDWixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osa0JBQWtCO1lBQ2xCLGdDQUFnQztZQUNoQyxrQkFBa0I7WUFDbEIsWUFBWSxDQUFDLFFBQVEsQ0FBQztnQkFDbEI7b0JBQ0ksU0FBUyxFQUFFLG1DQUFtQztvQkFDOUMsSUFBSSxFQUFFLHdCQUF3QjtpQkFDakM7YUFDSixDQUFDO1NBQ0w7UUFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSx1QkFBdUIsQ0FBQztRQUMxRCxZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsQ0FBQztRQUM3RyxlQUFlLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxxQkFBcUIsQ0FBQztRQUNqRSxTQUFTLEVBQUUsRUFBRTtLQUNoQixDQUFDOztHQUNXLG1CQUFtQixDQW9CL0I7U0FwQlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhXaWRnZXRCb2FyZENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0LWJvYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYV2lkZ2V0SG9zdENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0LWhvc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIEFYU2VhcmNoQm94TW9kdWxlLFxyXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxyXG4gICAgQVhQcm9wcGVydHlFZGl0b3JNb2R1bGUsXHJcbiAgICBBWFBhZ2VNb2R1bGUsIEFYTGFiZWxNb2R1bGUsXHJcbiAgICBBWFRvb2xiYXJNb2R1bGUsXHJcbiAgICBBWFRhYlN0cmlwTW9kdWxlLFxyXG4gICAgQVhNZW51TW9kdWxlLFxyXG4gICAgQVhGb3JtR3JvdXBNb2R1bGUsXHJcbiAgICBBWFRleHRBcmVhTW9kdWxlLCBBWFRleHRCb3hNb2R1bGUsIEFYRmllbGRzZXRNb2R1bGUsIEFYQ2hlY2tCb3hNb2R1bGUsIEFYVmFsaWRhdGlvbk1vZHVsZVxyXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFYV2lkZ2V0Q29uZmlnQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXQtY29uZmlnLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYVHJhbnNsYXRvciwgQVhUcmFuc2xhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuaW1wb3J0IHsgQVhXaWRnZXRTaXplUHJvcGVydHlFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2VkaXRvcnMvd2lkZ2V0LXNpemUtZWRpdG9yL3dpZGdldC1zaXplLmVkaXRvcic7XHJcbmltcG9ydCB7IEFYV2lkZ2V0U2l6ZVByb3BlcnR5RWRpdG9yTW9kdWxlIH0gZnJvbSAnLi9lZGl0b3JzL3dpZGdldC1zaXplLWVkaXRvci93aWRnZXQtc2l6ZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBWFdpZGdldFNhdmVDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldC1zYXZlLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBBWFNlYXJjaEJveE1vZHVsZSxcclxuICAgICAgICBBWExvYWRpbmdNb2R1bGUsXHJcbiAgICAgICAgUm91dGVyTW9kdWxlLFxyXG4gICAgICAgIEFYUHJvcHBlcnR5RWRpdG9yTW9kdWxlLFxyXG4gICAgICAgIEFYUGFnZU1vZHVsZSxcclxuICAgICAgICBBWFRvb2xiYXJNb2R1bGUsXHJcbiAgICAgICAgQVhUcmFuc2xhdG9yTW9kdWxlLFxyXG4gICAgICAgIEFYTGFiZWxNb2R1bGUsXHJcbiAgICAgICAgQVhUZXh0QXJlYU1vZHVsZSxcclxuICAgICAgICBBWEZpZWxkc2V0TW9kdWxlLFxyXG4gICAgICAgIEFYVGV4dEJveE1vZHVsZSxcclxuICAgICAgICBBWEZvcm1Hcm91cE1vZHVsZSxcclxuICAgICAgICBBWFRhYlN0cmlwTW9kdWxlLFxyXG4gICAgICAgIEFYQ2hlY2tCb3hNb2R1bGUsXHJcbiAgICAgICAgQVhNZW51TW9kdWxlLFxyXG4gICAgICAgIEFYVHJhbnNsYXRvck1vZHVsZSxcclxuICAgICAgICBBWFdpZGdldFNpemVQcm9wZXJ0eUVkaXRvck1vZHVsZSxcclxuICAgICAgICBBWFZhbGlkYXRpb25Nb2R1bGUsXHJcbiAgICAgICAgUm91dGVyTW9kdWxlLmZvckNoaWxkKFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBBWFdpZGdldFNpemVQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHBhdGg6ICdheC9lZGl0b3JzL3dpZGdldC1zaXplJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIF0pXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW0FYV2lkZ2V0Qm9hcmRDb21wb25lbnQsIEFYUHJvcHBlcnR5RWRpdG9yTW9kdWxlXSxcclxuICAgIGRlY2xhcmF0aW9uczogW0FYV2lkZ2V0Qm9hcmRDb21wb25lbnQsIEFYV2lkZ2V0SG9zdENvbXBvbmVudCwgQVhXaWRnZXRDb25maWdDb21wb25lbnQsIEFYV2lkZ2V0U2F2ZUNvbXBvbmVudF0sXHJcbiAgICBlbnRyeUNvbXBvbmVudHM6IFtBWFdpZGdldENvbmZpZ0NvbXBvbmVudCwgQVhXaWRnZXRTYXZlQ29tcG9uZW50XSxcclxuICAgIHByb3ZpZGVyczogW11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYV2lkZ2V0Qm9hcmRNb2R1bGUge1xyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBBWFRyYW5zbGF0b3IubG9hZCgnZW4nLCB7XHJcbiAgICAgICAgICAgICd3aWRnZXQtYm9hcmQnOiB7XHJcbiAgICAgICAgICAgICAgICAnY29uZmlndXJhYmxlLXByb3BzJzogJ0NvbmZpZ3VyYWJsZSBQcm9wZXJ0aWVzJyxcclxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyZTogJ0NvbmZpZ3VyZSBXaWRnZXQnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBBWFRyYW5zbGF0b3IubG9hZCgnZmEnLCB7XHJcbiAgICAgICAgICAgICd3aWRnZXQtYm9hcmQnOiB7XHJcbiAgICAgICAgICAgICAgICAnY29uZmlndXJhYmxlLXByb3BzJzogJ9mI24zamNqv24wg2YfYp9uMINmC2KfYqNmEINiq2YbYuNuM2YUnLFxyXG4gICAgICAgICAgICAgICAgY29uZmlndXJlOiAn2b7bjNqp2LEg2KjZhtiv24wg2KfYqNiy2KfYsdqpJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|