keevo-components 2.0.45 → 2.0.47
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/esm2022/lib/api/components/step/step.model.mjs +2 -0
- package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +247 -19
- package/esm2022/lib/components/kv-steps/kv-steps.component.mjs +105 -0
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/keevo-components.mjs +347 -19
- package/fesm2022/keevo-components.mjs.map +1 -1
- package/lib/api/components/step/step.model.d.ts +13 -0
- package/lib/components/kv-pick-list/kv-pick-list.component.d.ts +20 -1
- package/lib/components/kv-steps/kv-steps.component.d.ts +21 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9hcGkvY29tcG9uZW50cy9zdGVwL3N0ZXAubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBLdlN0ZXAge1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIGljb246IHN0cmluZztcclxuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gICAgdGV4dE5leHRCdXR0b24/OiBzdHJpbmc7XHJcbiAgICB0ZXh0Q2FuY2VsQnV0dG9uPzogc3RyaW5nO1xyXG4gICAgdGV4dFNraXBCdXR0b24/OiBzdHJpbmc7XHJcbiAgICBjb21wb25lbnQ6IFR5cGU8YW55PjtcclxuICAgIHJlcXVpcmVkPzogYm9vbGVhbjtcclxuICAgIGNvbXBsZXRlZD86IGJvb2xlYW47XHJcbiAgICBpbnN0YW5jZT86IGFueTsgLy8gcmVmZXLDqm5jaWEgw6AgaW5zdMOibmNpYSByZWFsIGRvIGNvbXBvbmVudGUgcmVuZGVyaXphZG9cclxuICB9XHJcbiAgIl19
|
|
@@ -10,15 +10,15 @@ export class KvPickListComponent {
|
|
|
10
10
|
constructor(fb) {
|
|
11
11
|
this.fb = fb;
|
|
12
12
|
this.itemIdField = 'id';
|
|
13
|
-
this.breakpoint = "1400px";
|
|
14
|
-
this.dragdrop = true;
|
|
15
|
-
this.responsive = true;
|
|
13
|
+
this.breakpoint = "1400px";
|
|
14
|
+
this.dragdrop = true;
|
|
15
|
+
this.responsive = true;
|
|
16
16
|
this.sourceHeader = 'Título da lista de origem';
|
|
17
|
-
this.stripedRows = false;
|
|
17
|
+
this.stripedRows = false;
|
|
18
18
|
this.targetHeader = 'Título de lista de destino';
|
|
19
|
-
this.showSourceControls = true;
|
|
20
|
-
this.showTargetControls = true;
|
|
21
|
-
this.showCheckBox = false;
|
|
19
|
+
this.showSourceControls = true;
|
|
20
|
+
this.showTargetControls = true;
|
|
21
|
+
this.showCheckBox = false;
|
|
22
22
|
this.onMoveToSource = new EventEmitter();
|
|
23
23
|
this.onMoveToTarget = new EventEmitter();
|
|
24
24
|
this.onMoveAllToSource = new EventEmitter();
|
|
@@ -27,52 +27,283 @@ export class KvPickListComponent {
|
|
|
27
27
|
this.onTargetSelect = new EventEmitter();
|
|
28
28
|
this.ngModel = false;
|
|
29
29
|
this.selectedItems = {};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
this.ultimoItemSelecionado = [];
|
|
31
|
+
this.lastDraggedItems = [];
|
|
32
|
+
this.draggedIds = [];
|
|
33
|
+
this.mouseX = 0;
|
|
34
|
+
this.mouseY = 0;
|
|
35
|
+
this.previewClones = [];
|
|
36
|
+
document.addEventListener('keydown', (event) => this.onKeyDown(event));
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
document.addEventListener('mousemove', (event) => {
|
|
40
|
+
this.mouseX = event.clientX;
|
|
41
|
+
this.mouseY = event.clientY;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
ngAfterViewInit() {
|
|
45
|
+
this.createDropOverlay();
|
|
46
|
+
}
|
|
47
|
+
createDropOverlay() {
|
|
48
|
+
this.dropOverlay = document.createElement('div');
|
|
49
|
+
this.dropOverlay.innerText = 'Soltar';
|
|
50
|
+
this.dropOverlay.style.position = 'fixed';
|
|
51
|
+
this.dropOverlay.style.background = '#BFDBFE'; // Azul claro visível
|
|
52
|
+
this.dropOverlay.style.color = '#1E3A8A'; // Azul escuro pro texto
|
|
53
|
+
this.dropOverlay.style.border = '9px #1E40AF'; // Borda azul escuro
|
|
54
|
+
this.dropOverlay.style.boxShadow = '0 2px 6px rgba(30, 58, 138, 0.2)'; // Shadow reduzida
|
|
55
|
+
this.dropOverlay.style.display = 'none';
|
|
56
|
+
this.dropOverlay.style.justifyContent = 'center';
|
|
57
|
+
this.dropOverlay.style.alignItems = 'center';
|
|
58
|
+
this.dropOverlay.style.zIndex = '9999';
|
|
59
|
+
this.dropOverlay.style.fontSize = '1.5rem';
|
|
60
|
+
this.dropOverlay.style.fontWeight = 'bold';
|
|
61
|
+
this.dropOverlay.style.pointerEvents = 'all';
|
|
62
|
+
this.dropOverlay.style.transition = 'all 0.2s ease';
|
|
63
|
+
// Encaixar no mesmo lugar do target
|
|
64
|
+
const targetListEl = document.querySelector('.p-picklist-target');
|
|
65
|
+
if (targetListEl) {
|
|
66
|
+
const rect = targetListEl.getBoundingClientRect();
|
|
67
|
+
this.dropOverlay.style.top = rect.top + 'px';
|
|
68
|
+
this.dropOverlay.style.left = rect.left + 'px';
|
|
69
|
+
this.dropOverlay.style.width = rect.width + 'px';
|
|
70
|
+
this.dropOverlay.style.height = rect.height + 'px';
|
|
71
|
+
}
|
|
72
|
+
this.dropOverlay.addEventListener('click', () => {
|
|
73
|
+
const selectedInSource = this.source.some(item => this.selectedItems[item[this.itemIdField]]);
|
|
74
|
+
const selectedInTarget = this.target.some(item => this.selectedItems[item[this.itemIdField]]);
|
|
75
|
+
if (selectedInSource) {
|
|
76
|
+
this.OnMoveToTarget({});
|
|
77
|
+
}
|
|
78
|
+
else if (selectedInTarget) {
|
|
79
|
+
this.OnMoveToSource({});
|
|
34
80
|
}
|
|
81
|
+
this.hideDropOverlay();
|
|
82
|
+
});
|
|
83
|
+
this.dropOverlay.addEventListener('mouseenter', () => {
|
|
84
|
+
this.dropOverlay.style.background = '#93C5FD'; // Azul um pouco mais escuro no hover
|
|
35
85
|
});
|
|
86
|
+
this.dropOverlay.addEventListener('mouseleave', () => {
|
|
87
|
+
this.dropOverlay.style.background = '#BFDBFE';
|
|
88
|
+
});
|
|
89
|
+
document.body.appendChild(this.dropOverlay);
|
|
90
|
+
}
|
|
91
|
+
handleMouseMove(event) {
|
|
92
|
+
this.mouseX = event.clientX;
|
|
93
|
+
this.mouseY = event.clientY;
|
|
94
|
+
}
|
|
95
|
+
clearPreviewClones() {
|
|
96
|
+
this.previewClones.forEach(clone => clone.remove());
|
|
97
|
+
this.previewClones = [];
|
|
36
98
|
}
|
|
37
99
|
OnMoveToSource(event) {
|
|
100
|
+
this.clearPreviewClones();
|
|
38
101
|
this.picklist.moveLeft();
|
|
39
102
|
this.onMoveToSource.emit(event);
|
|
40
103
|
this.selectedItems = {};
|
|
104
|
+
this.hideDropOverlay();
|
|
105
|
+
this.clearPreviewClones();
|
|
41
106
|
}
|
|
42
107
|
OnMoveToTarget(event) {
|
|
108
|
+
this.clearPreviewClones();
|
|
43
109
|
this.picklist.moveRight();
|
|
44
110
|
this.onMoveToTarget.emit(event);
|
|
45
111
|
this.selectedItems = {};
|
|
112
|
+
this.hideDropOverlay();
|
|
113
|
+
this.clearPreviewClones();
|
|
114
|
+
}
|
|
115
|
+
getSelectedItems() {
|
|
116
|
+
// Filtra os itens da lista de origem (source) com base nos itens selecionados
|
|
117
|
+
return this.source.filter(item => {
|
|
118
|
+
const itemId = item[this.itemIdField]; // Obtém o ID do item
|
|
119
|
+
return this.selectedItems[itemId] === true; // Verifica se está marcado como true
|
|
120
|
+
});
|
|
46
121
|
}
|
|
47
122
|
OnMoveAllToSource(event) {
|
|
48
123
|
this.onMoveToSource.emit(event);
|
|
49
124
|
this.selectedItems = {};
|
|
125
|
+
this.hideDropOverlay();
|
|
126
|
+
this.clearPreviewClones();
|
|
50
127
|
}
|
|
51
128
|
OnMoveAllToTarget(event) {
|
|
52
129
|
this.onMoveToTarget.emit(event);
|
|
53
130
|
this.selectedItems = {};
|
|
131
|
+
this.hideDropOverlay();
|
|
132
|
+
this.clearPreviewClones();
|
|
54
133
|
}
|
|
55
134
|
OnSourceSelect(event) {
|
|
135
|
+
const selectedItems = this.getSelectedItems();
|
|
136
|
+
// Primeiro remove todos os previews antigos
|
|
137
|
+
this.clearPreviewClones();
|
|
138
|
+
if (selectedItems.length === 0) {
|
|
139
|
+
this.hideDropOverlay();
|
|
140
|
+
this.onSourceSelect.emit(event);
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
selectedItems.forEach((item, index) => {
|
|
144
|
+
const itemId = item[this.itemIdField];
|
|
145
|
+
// Se já existe um clone para esse item, não cria novamente
|
|
146
|
+
if (!document.getElementById('preview_' + itemId)) {
|
|
147
|
+
const original = document.getElementById('id_pick_list' + itemId);
|
|
148
|
+
if (original) {
|
|
149
|
+
const rect = original.getBoundingClientRect();
|
|
150
|
+
const clone = original.cloneNode(true);
|
|
151
|
+
clone.classList.add('drag-preview-clone');
|
|
152
|
+
clone.classList.add(`level-${index + 1}`);
|
|
153
|
+
clone.id = 'preview_' + itemId;
|
|
154
|
+
document.body.appendChild(clone);
|
|
155
|
+
this.previewClones.push(clone);
|
|
156
|
+
this.animateCloneToCursor(clone, rect);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
this.showDropOverlay();
|
|
56
161
|
this.onSourceSelect.emit(event);
|
|
57
162
|
}
|
|
163
|
+
showDropOverlay() {
|
|
164
|
+
const selectedInSource = this.source.some(item => this.selectedItems[item[this.itemIdField]]);
|
|
165
|
+
const selectedInTarget = this.target.some(item => this.selectedItems[item[this.itemIdField]]);
|
|
166
|
+
let targetListEl = null;
|
|
167
|
+
if (selectedInSource) {
|
|
168
|
+
// Itens selecionados na lista da esquerda → overlay no lado direito
|
|
169
|
+
targetListEl = document.querySelector('.p-picklist-target');
|
|
170
|
+
this.dropOverlay.innerText = 'Soltar aqui para mover';
|
|
171
|
+
}
|
|
172
|
+
else if (selectedInTarget) {
|
|
173
|
+
// Itens selecionados na lista da direita → overlay no lado esquerdo
|
|
174
|
+
targetListEl = document.querySelector('.p-picklist-source');
|
|
175
|
+
this.dropOverlay.innerText = 'Soltar aqui para retornar';
|
|
176
|
+
}
|
|
177
|
+
if (targetListEl) {
|
|
178
|
+
const rect = targetListEl.getBoundingClientRect();
|
|
179
|
+
this.dropOverlay.style.top = rect.top + 'px';
|
|
180
|
+
this.dropOverlay.style.left = rect.left + 'px';
|
|
181
|
+
this.dropOverlay.style.width = rect.width + 'px';
|
|
182
|
+
this.dropOverlay.style.height = rect.height + 'px';
|
|
183
|
+
this.dropOverlay.style.display = 'flex';
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
hideDropOverlay() {
|
|
187
|
+
if (this.dropOverlay) {
|
|
188
|
+
this.dropOverlay.style.display = 'none';
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
animateCloneToCursor(clone, originRect) {
|
|
192
|
+
// Começa exatamente da posição do original
|
|
193
|
+
let posX = originRect.left;
|
|
194
|
+
let posY = originRect.top;
|
|
195
|
+
clone.style.position = 'fixed';
|
|
196
|
+
clone.style.left = `${posX}px`;
|
|
197
|
+
clone.style.top = `${posY}px`;
|
|
198
|
+
clone.style.width = `${originRect.width}px`;
|
|
199
|
+
clone.style.height = `${originRect.height}px`;
|
|
200
|
+
clone.style.pointerEvents = 'none';
|
|
201
|
+
const animate = () => {
|
|
202
|
+
const dx = this.mouseX - posX;
|
|
203
|
+
const dy = this.mouseY - posY;
|
|
204
|
+
posX += dx * 0.15;
|
|
205
|
+
posY += dy * 0.15;
|
|
206
|
+
clone.style.left = `${posX}px`;
|
|
207
|
+
clone.style.top = `${posY}px`;
|
|
208
|
+
if (document.body.contains(clone)) {
|
|
209
|
+
requestAnimationFrame(animate);
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
animate();
|
|
213
|
+
}
|
|
58
214
|
OnTargetSelect(event) {
|
|
215
|
+
const selectedItems = this.target.filter(item => {
|
|
216
|
+
const itemId = item[this.itemIdField];
|
|
217
|
+
return this.selectedItems[itemId] === true;
|
|
218
|
+
});
|
|
219
|
+
// Limpa clones antigos
|
|
220
|
+
this.clearPreviewClones();
|
|
221
|
+
if (selectedItems.length === 0) {
|
|
222
|
+
this.hideDropOverlay();
|
|
223
|
+
this.onTargetSelect.emit(event);
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
selectedItems.forEach((item, index) => {
|
|
227
|
+
const itemId = item[this.itemIdField];
|
|
228
|
+
if (!document.getElementById('preview_' + itemId)) {
|
|
229
|
+
const original = document.getElementById('id_pick_list' + itemId);
|
|
230
|
+
if (original) {
|
|
231
|
+
const rect = original.getBoundingClientRect();
|
|
232
|
+
const clone = original.cloneNode(true);
|
|
233
|
+
clone.classList.add('drag-preview-clone');
|
|
234
|
+
clone.classList.add(`level-${index + 1}`);
|
|
235
|
+
clone.id = 'preview_' + itemId;
|
|
236
|
+
document.body.appendChild(clone);
|
|
237
|
+
this.previewClones.push(clone);
|
|
238
|
+
this.animateCloneToCursor(clone, rect);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
this.showDropOverlay();
|
|
59
243
|
this.onTargetSelect.emit(event);
|
|
60
244
|
}
|
|
61
245
|
onSelectAll() {
|
|
62
246
|
this.selectAllItems(true);
|
|
63
247
|
}
|
|
64
248
|
selectAllItems(isSelected) {
|
|
65
|
-
// Selecionar todos os itens na lista de origem (source)
|
|
66
249
|
this.source.forEach(item => {
|
|
67
250
|
const itemId = item[this.itemIdField];
|
|
68
251
|
this.selectedItems[itemId] = isSelected;
|
|
69
252
|
});
|
|
70
|
-
// Selecionar todos os itens na lista de destino (target)
|
|
71
253
|
this.target.forEach(item => {
|
|
72
254
|
const itemId = item[this.itemIdField];
|
|
73
255
|
this.selectedItems[itemId] = isSelected;
|
|
74
256
|
});
|
|
75
257
|
}
|
|
258
|
+
onKeyDown(event) {
|
|
259
|
+
if (event.ctrlKey && event.key === 'a') {
|
|
260
|
+
event.preventDefault();
|
|
261
|
+
this.onSelectAll();
|
|
262
|
+
}
|
|
263
|
+
else if (event.key === 'Enter') {
|
|
264
|
+
const sourceSelected = this.picklist.selectedItemsSource;
|
|
265
|
+
const selectedItemsIds = Object.entries(this.selectedItems)
|
|
266
|
+
.filter(([_, value]) => value === true)
|
|
267
|
+
.map(([key, _]) => Number(key));
|
|
268
|
+
const notInSelected = sourceSelected.find((item) => !selectedItemsIds.includes(item[this.itemIdField]));
|
|
269
|
+
const indexInSource = this.source.findIndex((item) => item[this.itemIdField] === notInSelected?.[this.itemIdField]);
|
|
270
|
+
const ultimoItemArray = {
|
|
271
|
+
item: notInSelected,
|
|
272
|
+
index: indexInSource,
|
|
273
|
+
};
|
|
274
|
+
const selectedIndexInSource = this.source.findIndex((sourceItem) => selectedItemsIds.includes(sourceItem[this.itemIdField]));
|
|
275
|
+
if (notInSelected === undefined) {
|
|
276
|
+
const beforeIds = this.ultimoItemSelecionado.map(i => i.item[this.itemIdField]);
|
|
277
|
+
const afterIds = this.picklist.selectedItemsSource.map(i => i[this.itemIdField]);
|
|
278
|
+
const removedId = beforeIds.find(id => !afterIds.includes(id));
|
|
279
|
+
if (removedId != null) {
|
|
280
|
+
const removedItem = this.source.find(item => item[this.itemIdField] === removedId);
|
|
281
|
+
if (removedItem) {
|
|
282
|
+
this.selectCheckBox(removedItem);
|
|
283
|
+
this.ultimoItemSelecionado = this.ultimoItemSelecionado.filter((i) => i.item[this.itemIdField] !== removedId);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
const enterIds = this.ultimoItemSelecionado.map(i => i.item[this.itemIdField]);
|
|
288
|
+
const selectedItemsIds = Object.entries(this.selectedItems)
|
|
289
|
+
.filter(([_, value]) => value === true)
|
|
290
|
+
.map(([key, _]) => Number(key));
|
|
291
|
+
const clickedIds = selectedItemsIds.filter(id => !enterIds.includes(id));
|
|
292
|
+
if (clickedIds.length > 0) {
|
|
293
|
+
const clickedItem = this.source.find(item => item[this.itemIdField] === clickedIds[0]);
|
|
294
|
+
if (clickedItem) {
|
|
295
|
+
this.selectCheckBox(clickedItem);
|
|
296
|
+
this.ultimoItemSelecionado = this.ultimoItemSelecionado.filter((i) => i.item[this.itemIdField] !== clickedIds[0]);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
this.selectCheckBox(notInSelected);
|
|
303
|
+
this.ultimoItemSelecionado = this.ultimoItemSelecionado.filter((item) => item.index !== indexInSource);
|
|
304
|
+
this.ultimoItemSelecionado.push(ultimoItemArray);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
76
307
|
selectCheckBox(item) {
|
|
77
308
|
const itemId = item[this.itemIdField];
|
|
78
309
|
this.selectedPreview = item;
|
|
@@ -82,17 +313,14 @@ export class KvPickListComponent {
|
|
|
82
313
|
this.ngModel = this.selectedItems[itemId];
|
|
83
314
|
}
|
|
84
315
|
isItemSelected(item) {
|
|
85
|
-
console.log(this.selectedPreview === item);
|
|
86
316
|
return this.selectedPreview === item;
|
|
87
317
|
}
|
|
88
|
-
ngOnInit() {
|
|
89
|
-
}
|
|
90
318
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPickListComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPickListComponent, selector: "kv-picklist", inputs: { itemIdField: "itemIdField", breakpoint: "breakpoint", dragdrop: "dragdrop", filterBy: "filterBy", itemTemplate: "itemTemplate", responsive: "responsive", source: "source", sourceHeader: "sourceHeader", sourceStyle: "sourceStyle", stripedRows: "stripedRows", target: "target", targetHeader: "targetHeader", targetStyle: "targetStyle", showSourceControls: "showSourceControls", showTargetControls: "showTargetControls", showCheckBox: "showCheckBox" }, outputs: { onMoveToSource: "onMoveToSource", onMoveToTarget: "onMoveToTarget", onMoveAllToSource: "onMoveAllToSource", onMoveAllToTarget: "onMoveAllToTarget", onSourceSelect: "onSourceSelect", onTargetSelect: "onTargetSelect" }, viewQueries: [{ propertyName: "picklist", first: true, predicate: PickList, descendants: true }], ngImport: i0, template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\"\r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveAllToTarget($event)\"\r\n (onSourceSelect)=\"OnSourceSelect($event)\"\r\n (onTargetSelect)=\"OnTargetSelect($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\">\r\n <div (click)=\"selectCheckBox(item)\" class=\"flex mr-5\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n @if(showCheckBox){\r\n <kv-check (onCheckChange)=\"selectCheckBox(item)\" [(ngModel)]=\"selectedItems[item[itemIdField]]\" class=\"mr-1\"></kv-check>\r\n }\r\n </ng-container>\r\n </div> \r\n </ng-template>\r\n</p-pickList>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-picklist .p-picklist-filter-container{position:sticky!important;top:0!important;z-index:99!important}:host ::ng-deep .p-picklist .p-picklist-filter-container{border-left:0px;border-right:0px}.item-with-checkbox{display:flex;align-items:center}.item-with-checkbox kv-check{margin-right:8px}\n", "@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-color-system-cta: 0, 116, 217;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-color-system-cta: 224, 168, 35;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-icon,svg{height:.6rem}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:rgb(var(--kv-color-text))!important;background:linear-gradient(0deg,#00000005 .44%,#0000 49.5%),#fff!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word;border-bottom:1px solid rgb(var(--kv-color-text),.15)}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}::ng-deep .p-tooltip{font-size:.825rem!important}::ng-deep svg.p-icon{width:.65rem;height:.65rem}::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:#004172;background:#004172}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:hover{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:active{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:disabled{background-color:#002542;opacity:.4;cursor:auto}input{height:1.75rem}::ng-deep .p-checkbox .p-checkbox-box{width:1.125rem;height:1.125rem;border:1.5px solid #d1d5db}::ng-deep p-tablecheckbox p-tableheadercheckbox .p-checkbox{display:flex!important;align-items:center!important;justify-content:right}::ng-deep .p-checkbox{display:flex!important;align-items:center!important;justify-content:center}::ng-deep .p-checkbox-label{font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.PickList, selector: "p-pickList", inputs: ["source", "target", "sourceHeader", "tabindex", "rightButtonAriaLabel", "leftButtonAriaLabel", "allRightButtonAriaLabel", "allLeftButtonAriaLabel", "upButtonAriaLabel", "downButtonAriaLabel", "topButtonAriaLabel", "bottomButtonAriaLabel", "targetHeader", "responsive", "filterBy", "filterLocale", "trackBy", "sourceTrackBy", "targetTrackBy", "showSourceFilter", "showTargetFilter", "metaKeySelection", "dragdrop", "style", "styleClass", "sourceStyle", "targetStyle", "showSourceControls", "showTargetControls", "sourceFilterPlaceholder", "targetFilterPlaceholder", "disabled", "ariaSourceFilterLabel", "ariaTargetFilterLabel", "filterMatchMode", "stripedRows", "keepSelection", "breakpoint"], outputs: ["onMoveToSource", "onMoveAllToSource", "onMoveAllToTarget", "onMoveToTarget", "onSourceReorder", "onTargetReorder", "onSourceSelect", "onTargetSelect", "onSourceFilter", "onTargetFilter", "onFocus", "onBlur"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.KvCheckComponent, selector: "kv-check", outputs: ["onCheckChange"] }] }); }
|
|
319
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPickListComponent, selector: "kv-picklist", inputs: { itemIdField: "itemIdField", breakpoint: "breakpoint", dragdrop: "dragdrop", filterBy: "filterBy", itemTemplate: "itemTemplate", responsive: "responsive", source: "source", sourceHeader: "sourceHeader", sourceStyle: "sourceStyle", stripedRows: "stripedRows", target: "target", targetHeader: "targetHeader", targetStyle: "targetStyle", showSourceControls: "showSourceControls", showTargetControls: "showTargetControls", showCheckBox: "showCheckBox" }, outputs: { onMoveToSource: "onMoveToSource", onMoveToTarget: "onMoveToTarget", onMoveAllToSource: "onMoveAllToSource", onMoveAllToTarget: "onMoveAllToTarget", onSourceSelect: "onSourceSelect", onTargetSelect: "onTargetSelect" }, viewQueries: [{ propertyName: "picklist", first: true, predicate: PickList, descendants: true }], ngImport: i0, template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\" \r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveAllToTarget($event)\"\r\n (onSourceSelect)=\"OnSourceSelect($event)\"\r\n (onTargetSelect)=\"OnTargetSelect($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\" >\r\n <div (click)=\"selectCheckBox(item)\" class=\"flex mr-5\" [id]=\"'id_pick_list'+item.idindicativolotacao\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n @if(showCheckBox) {\r\n <kv-check (onCheckChange)=\"selectCheckBox(item)\" [(ngModel)]=\"selectedItems[item[itemIdField]]\" class=\"mr-1\"></kv-check>\r\n }\r\n </ng-container>\r\n </div> \r\n </ng-template>\r\n</p-pickList>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-picklist .p-picklist-filter-container{position:sticky!important;top:0!important;z-index:99!important}:host ::ng-deep .p-picklist .p-picklist-filter-container{border-left:0px;border-right:0px}.item-with-checkbox{display:flex;align-items:center}.item-with-checkbox kv-check{margin-right:8px}@keyframes shake-base{0%{transform:translate(0)}25%{transform:translate(1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}to{transform:translate(-1px,-1px)}}.drag-preview-clone{animation-name:shake-base;animation-duration:.25s;animation-iteration-count:infinite;animation-timing-function:ease-in-out;position:fixed;z-index:9999;opacity:.85;pointer-events:none;transition:transform .1s ease;box-shadow:0 10px 20px #0003;border-radius:6px;padding:8px;background-color:#fff}.drag-preview-clone.level-1{margin-top:.5rem}.drag-preview-clone.level-2{margin-bottom:1rem}.drag-preview-clone.level-3{margin-left:.5rem}\n", "@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-color-system-cta: 0, 116, 217;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-color-system-cta: 224, 168, 35;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-icon,svg{height:.6rem}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:rgb(var(--kv-color-text))!important;background:linear-gradient(0deg,#00000005 .44%,#0000 49.5%),#fff!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word;border-bottom:1px solid rgb(var(--kv-color-text),.15)}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}::ng-deep .p-tooltip{font-size:.825rem!important}::ng-deep svg.p-icon{width:.65rem;height:.65rem}::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:#004172;background:#004172}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:hover{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:active{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:disabled{background-color:#002542;opacity:.4;cursor:auto}input{height:1.75rem}::ng-deep .p-checkbox .p-checkbox-box{width:1.125rem;height:1.125rem;border:1.5px solid #d1d5db}::ng-deep p-tablecheckbox p-tableheadercheckbox .p-checkbox{display:flex!important;align-items:center!important;justify-content:right}::ng-deep .p-checkbox{display:flex!important;align-items:center!important;justify-content:center}::ng-deep .p-checkbox-label{font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.PickList, selector: "p-pickList", inputs: ["source", "target", "sourceHeader", "tabindex", "rightButtonAriaLabel", "leftButtonAriaLabel", "allRightButtonAriaLabel", "allLeftButtonAriaLabel", "upButtonAriaLabel", "downButtonAriaLabel", "topButtonAriaLabel", "bottomButtonAriaLabel", "targetHeader", "responsive", "filterBy", "filterLocale", "trackBy", "sourceTrackBy", "targetTrackBy", "showSourceFilter", "showTargetFilter", "metaKeySelection", "dragdrop", "style", "styleClass", "sourceStyle", "targetStyle", "showSourceControls", "showTargetControls", "sourceFilterPlaceholder", "targetFilterPlaceholder", "disabled", "ariaSourceFilterLabel", "ariaTargetFilterLabel", "filterMatchMode", "stripedRows", "keepSelection", "breakpoint"], outputs: ["onMoveToSource", "onMoveAllToSource", "onMoveAllToTarget", "onMoveToTarget", "onSourceReorder", "onTargetReorder", "onSourceSelect", "onTargetSelect", "onSourceFilter", "onTargetFilter", "onFocus", "onBlur"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.KvCheckComponent, selector: "kv-check", outputs: ["onCheckChange"] }] }); }
|
|
92
320
|
}
|
|
93
321
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPickListComponent, decorators: [{
|
|
94
322
|
type: Component,
|
|
95
|
-
args: [{ selector: 'kv-picklist', template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\"\r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveAllToTarget($event)\"\r\n (onSourceSelect)=\"OnSourceSelect($event)\"\r\n (onTargetSelect)=\"OnTargetSelect($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\">\r\n <div (click)=\"selectCheckBox(item)\" class=\"flex mr-5\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n @if(showCheckBox){\r\n <kv-check (onCheckChange)=\"selectCheckBox(item)\" [(ngModel)]=\"selectedItems[item[itemIdField]]\" class=\"mr-1\"></kv-check>\r\n }\r\n </ng-container>\r\n </div> \r\n </ng-template>\r\n</p-pickList>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-picklist .p-picklist-filter-container{position:sticky!important;top:0!important;z-index:99!important}:host ::ng-deep .p-picklist .p-picklist-filter-container{border-left:0px;border-right:0px}.item-with-checkbox{display:flex;align-items:center}.item-with-checkbox kv-check{margin-right:8px}\n", "@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-color-system-cta: 0, 116, 217;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-color-system-cta: 224, 168, 35;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-icon,svg{height:.6rem}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:rgb(var(--kv-color-text))!important;background:linear-gradient(0deg,#00000005 .44%,#0000 49.5%),#fff!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word;border-bottom:1px solid rgb(var(--kv-color-text),.15)}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}::ng-deep .p-tooltip{font-size:.825rem!important}::ng-deep svg.p-icon{width:.65rem;height:.65rem}::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:#004172;background:#004172}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:hover{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:active{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:disabled{background-color:#002542;opacity:.4;cursor:auto}input{height:1.75rem}::ng-deep .p-checkbox .p-checkbox-box{width:1.125rem;height:1.125rem;border:1.5px solid #d1d5db}::ng-deep p-tablecheckbox p-tableheadercheckbox .p-checkbox{display:flex!important;align-items:center!important;justify-content:right}::ng-deep .p-checkbox{display:flex!important;align-items:center!important;justify-content:center}::ng-deep .p-checkbox-label{font-size:.875rem}\n"] }]
|
|
323
|
+
args: [{ selector: 'kv-picklist', template: "<p-pickList\r\n [source]=\"source\"\r\n [sourceHeader]=\"sourceHeader\"\r\n [sourceStyle]=\"sourceStyle\"\r\n [target]=\"target\" \r\n [targetHeader]=\"targetHeader\"\r\n [targetStyle]=\"targetStyle\"\r\n [dragdrop]=\"dragdrop\"\r\n [responsive]=\"responsive\"\r\n [filterBy]=\"filterBy\"\r\n [breakpoint]=\"breakpoint\"\r\n [stripedRows]=\"stripedRows\"\r\n [showSourceControls]=\"showSourceControls\"\r\n [showTargetControls]=\"showTargetControls\"\r\n (onMoveToSource)=\"OnMoveToSource($event)\"\r\n (onMoveToTarget)=\"OnMoveToTarget($event)\"\r\n (onMoveAllToSource)=\"OnMoveAllToSource($event)\"\r\n (onMoveAllToTarget)=\"OnMoveAllToTarget($event)\"\r\n (onSourceSelect)=\"OnSourceSelect($event)\"\r\n (onTargetSelect)=\"OnTargetSelect($event)\"\r\n>\r\n <ng-template let-item pTemplate=\"item\" *ngIf=\"itemTemplate\" >\r\n <div (click)=\"selectCheckBox(item)\" class=\"flex mr-5\" [id]=\"'id_pick_list'+item.idindicativolotacao\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n @if(showCheckBox) {\r\n <kv-check (onCheckChange)=\"selectCheckBox(item)\" [(ngModel)]=\"selectedItems[item[itemIdField]]\" class=\"mr-1\"></kv-check>\r\n }\r\n </ng-container>\r\n </div> \r\n </ng-template>\r\n</p-pickList>\r\n", styles: ["@charset \"UTF-8\";:host ::ng-deep .p-picklist .p-picklist-filter-container{position:sticky!important;top:0!important;z-index:99!important}:host ::ng-deep .p-picklist .p-picklist-filter-container{border-left:0px;border-right:0px}.item-with-checkbox{display:flex;align-items:center}.item-with-checkbox kv-check{margin-right:8px}@keyframes shake-base{0%{transform:translate(0)}25%{transform:translate(1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}to{transform:translate(-1px,-1px)}}.drag-preview-clone{animation-name:shake-base;animation-duration:.25s;animation-iteration-count:infinite;animation-timing-function:ease-in-out;position:fixed;z-index:9999;opacity:.85;pointer-events:none;transition:transform .1s ease;box-shadow:0 10px 20px #0003;border-radius:6px;padding:8px;background-color:#fff}.drag-preview-clone.level-1{margin-top:.5rem}.drag-preview-clone.level-2{margin-bottom:1rem}.drag-preview-clone.level-3{margin-left:.5rem}\n", "@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";::ng-deep :root{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255;--kv-primary-color: 41, 185, 45;--kv-secondary-color: 0, 37, 66;--kv-tertiary-color: 165, 165, 165}::ng-deep .padrao{--kv-color-system: 10,58,120;--kv-color-system-cta: 76, 175, 80;--kv-color-text: 0, 0, 0;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-keevocenter{--kv-color-system: 88,25,153;--kv-color-system-cta: 0, 116, 217;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 248,250,253;--kv-background-card: 255,255,255}::ng-deep .theme-holos{--kv-color-system: 241,90,36;--kv-color-system-cta: 224, 168, 35;--kv-color-text: 0, 0, 0;--kv-color-text-inv: 255, 255, 165;--kv-background-system: 240,240,240;--kv-background-card: 2255,255,255}.system-color{color:rgb(var(--kv-color-system),1)}.bg-system-100{background:rgb(var(--kv-color-system),1)}.bg-system-75{background:rgb(var(--kv-color-system),.75)}.bg-system-50{background:rgb(var(--kv-color-system),.5)}.bg-system-25{background:rgb(var(--kv-color-system),.25)}.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter,Inter var,sans-serif!important}::ng-deep .p-icon,svg{height:.6rem}:host ::ng-deep .inputs{height:1.875rem}:host ::ng-deep .inputs,.p-inputtext,.p-inputtextarea{font-size:.875rem}::ng-deep .p-dialog .p-dialog-header{color:rgb(var(--kv-color-text))!important;background:linear-gradient(0deg,#00000005 .44%,#0000 49.5%),#fff!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word;border-bottom:1px solid rgb(var(--kv-color-text),.15)}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}::ng-deep .p-tooltip{font-size:.825rem!important}::ng-deep svg.p-icon{width:.65rem;height:.65rem}::ng-deep .p-checkbox .p-checkbox-box.p-highlight{border-color:#004172;background:#004172}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:hover{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:active{background-color:#002542}::ng-deep .p-checkbox .p-checkbox-box.p-highlight:disabled{background-color:#002542;opacity:.4;cursor:auto}input{height:1.75rem}::ng-deep .p-checkbox .p-checkbox-box{width:1.125rem;height:1.125rem;border:1.5px solid #d1d5db}::ng-deep p-tablecheckbox p-tableheadercheckbox .p-checkbox{display:flex!important;align-items:center!important;justify-content:right}::ng-deep .p-checkbox{display:flex!important;align-items:center!important;justify-content:center}::ng-deep .p-checkbox-label{font-size:.875rem}\n"] }]
|
|
96
324
|
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { picklist: [{
|
|
97
325
|
type: ViewChild,
|
|
98
326
|
args: [PickList]
|
|
@@ -141,4 +369,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
|
|
|
141
369
|
}], onTargetSelect: [{
|
|
142
370
|
type: Output
|
|
143
371
|
}] } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGljay1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBpY2stbGlzdC9rdi1waWNrLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtcGljay1saXN0L2t2LXBpY2stbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7QUFVNUMsTUFBTSxPQUFPLG1CQUFtQjtJQU05QixZQUFvQixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQVExQixnQkFBVyxHQUFXLElBQUksQ0FBQztRQUMzQixlQUFVLEdBQVcsUUFBUSxDQUFDLENBQUMsMkZBQTJGO1FBQzFILGFBQVEsR0FBWSxJQUFJLENBQUMsQ0FBQyxtQ0FBbUM7UUFHN0QsZUFBVSxHQUFZLElBQUksQ0FBQyxDQUFDLDZDQUE2QztRQUV6RSxpQkFBWSxHQUFXLDJCQUEyQixDQUFDO1FBRW5ELGdCQUFXLEdBQVksS0FBSyxDQUFDLENBQUMsMERBQTBEO1FBRXhGLGlCQUFZLEdBQVcsNEJBQTRCLENBQUM7UUFFcEQsdUJBQWtCLEdBQVksSUFBSSxDQUFDLENBQUMscUNBQXFDO1FBQ3pFLHVCQUFrQixHQUFZLElBQUksQ0FBQyxDQUFDLHNDQUFzQztRQUMxRSxpQkFBWSxHQUFZLEtBQUssQ0FBQyxDQUFDLGtDQUFrQztRQUNoRSxtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FB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QkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFBpY2tMaXN0IH0gZnJvbSAncHJpbWVuZy9waWNrbGlzdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LXBpY2tsaXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtcGljay1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuL2t2LXBpY2stbGlzdC5jb21wb25lbnQuc2NzcycsXHJcbiAgICAnLi4va2Vldm8tY29tcG9uZW50cy1zdHlsZXMuc2NzcydcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdlBpY2tMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZChQaWNrTGlzdCkgcGlja2xpc3QhOiBQaWNrTGlzdDtcclxuXHJcbiAgZm9ybSE6IEZvcm1Hcm91cDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQpID0+IHtcclxuICAgICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQua2V5ID09PSAnYScpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAvLyBFdml0YSBjb21wb3J0YW1lbnRvIHBhZHLDo28gZG8gbmF2ZWdhZG9yXHJcbiAgICAgICAgdGhpcy5vblNlbGVjdEFsbCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgQElucHV0KCkgaXRlbUlkRmllbGQ6IHN0cmluZyA9ICdpZCc7XHJcbiAgQElucHV0KCkgYnJlYWtwb2ludDogc3RyaW5nID0gXCIxNDAwcHhcIjsgLy8gRGVmaW5lIGEgbGFyZ3VyYSBkYSB0ZWxhIG5hIHF1YWwgbyBjb21wb25lbnRlIGRldmUgYWx0ZXJhciBzZXUgY29tcG9ydGFtZW50byByZXNwb25zaXZvLlxyXG4gIEBJbnB1dCgpIGRyYWdkcm9wOiBib29sZWFuID0gdHJ1ZTsgLy8gQXRpdmEvRGVzYXRpdmEgbyBhcnJhc3RhIGUgc29sdGFcclxuICBASW5wdXQoKSBmaWx0ZXJCeSE6IHN0cmluZzsgLy8gQ2FtcG8gZGUgZmlsdHJvIG5hcyBsaXN0YXMuXHJcbiAgQElucHV0KCkgaXRlbVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjsgLy8gQ29tbyBhcyBsaXN0YXMgc8OjbyBkaW7Dom1pY2FzLCBvYnJpZ2F0b3JpYW1lbnRlIHVtIHRlbXBsYXRlIGRldmUgc2VyIGluZm9ybWFkbyBwYXJhIGV4aWJpciBvcyBpdGVucyBkYXMgbGlzdGFzXHJcbiAgQElucHV0KCkgcmVzcG9uc2l2ZTogYm9vbGVhbiA9IHRydWU7IC8vIEF0aXZhL0Rlc2F0aXZhIGEgcmVzcG9uc2l2aWRhZGUgYXV0b23DoXRpY2FcclxuICBASW5wdXQoKSBzb3VyY2UhOiBhbnlbXTsgLy8gTGlzdGEgZGUgb3JpZ2VtXHJcbiAgQElucHV0KCkgc291cmNlSGVhZGVyOiBzdHJpbmcgPSAnVMOtdHVsbyBkYSBsaXN0YSBkZSBvcmlnZW0nO1xyXG4gIEBJbnB1dCgpIHNvdXJjZVN0eWxlITogYW55OyAvLyBFc3RpbGl6YcOnw6NvIGRhIGxpc3RhIGRlIG9yaWdlbVxyXG4gIEBJbnB1dCgpIHN0cmlwZWRSb3dzOiBib29sZWFuID0gZmFsc2U7IC8vIEF0aXZhL0Rlc2F0aXZhIGxpbmhhcyBjb20gY29yZXMgYWx0ZXJuYWRhcyAoXCJ6ZWJyYWRhc1wiKVxyXG4gIEBJbnB1dCgpIHRhcmdldCE6IGFueVtdOyAvLyBMaXN0YSBkZSBkZXN0aW5vIChJdGVucyBzZWxlY2lvbmFkb3MpXHJcbiAgQElucHV0KCkgdGFyZ2V0SGVhZGVyOiBzdHJpbmcgPSAnVMOtdHVsbyBkZSBsaXN0YSBkZSBkZXN0aW5vJztcclxuICBASW5wdXQoKSB0YXJnZXRTdHlsZSE6IGFueTsgLy8gRXN0aWxpemHDp8OjbyBkYSBsaXN0YSBkZSBkZXN0aW5vXHJcbiAgQElucHV0KCkgc2hvd1NvdXJjZUNvbnRyb2xzOiBib29sZWFuID0gdHJ1ZTsgLy8gRXhpYmlyIGNvbnRyb2xzIGRhIGxpc3RhIGRlIG9yaWdlbVxyXG4gIEBJbnB1dCgpIHNob3dUYXJnZXRDb250cm9sczogYm9vbGVhbiA9IHRydWU7IC8vIEV4aWJpciBjb250cm9scyBkYSBsaXN0YSBkZSBkZXN0aW5vXHJcbiAgQElucHV0KCkgc2hvd0NoZWNrQm94OiBib29sZWFuID0gZmFsc2U7IC8vIEV4aWJpciBjaGVjayBuYSBsaXN0YSBkZSBvcmlnZW1cclxuICBAT3V0cHV0KCkgb25Nb3ZlVG9Tb3VyY2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk1vdmVUb1RhcmdldDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uTW92ZUFsbFRvU291cmNlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Nb3ZlQWxsVG9UYXJnZXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblNvdXJjZVNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uVGFyZ2V0U2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgc2VsZWN0ZWRQcmV2aWV3ITogYW55O1xyXG4gIG5nTW9kZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWxlY3RlZEl0ZW1zOiB7IFtrZXk6IG51bWJlcl06IGJvb2xlYW4gfSA9IHt9O1xyXG5cclxuICBPbk1vdmVUb1NvdXJjZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnBpY2tsaXN0Lm1vdmVMZWZ0KCk7XHJcbiAgICB0aGlzLm9uTW92ZVRvU291cmNlLmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0ge307XHJcbiAgfVxyXG5cclxuICBPbk1vdmVUb1RhcmdldChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnBpY2tsaXN0Lm1vdmVSaWdodCgpO1xyXG4gICAgdGhpcy5vbk1vdmVUb1RhcmdldC5lbWl0KGV2ZW50KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHt9O1xyXG4gIH1cclxuXHJcbiAgT25Nb3ZlQWxsVG9Tb3VyY2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vbk1vdmVUb1NvdXJjZS5lbWl0KGV2ZW50KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHt9O1xyXG4gIH1cclxuXHJcbiAgT25Nb3ZlQWxsVG9UYXJnZXQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vbk1vdmVUb1RhcmdldC5lbWl0KGV2ZW50KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHt9O1xyXG4gIH1cclxuXHJcbiAgT25Tb3VyY2VTZWxlY3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vblNvdXJjZVNlbGVjdC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIE9uVGFyZ2V0U2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25UYXJnZXRTZWxlY3QuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdEFsbCgpIHtcclxuICAgIHRoaXMuc2VsZWN0QWxsSXRlbXModHJ1ZSk7XHJcbiAgfVxyXG4gIFxyXG4gIHNlbGVjdEFsbEl0ZW1zKGlzU2VsZWN0ZWQ6IGJvb2xlYW4pIHtcclxuICAgIC8vIFNlbGVjaW9uYXIgdG9kb3Mgb3MgaXRlbnMgbmEgbGlzdGEgZGUgb3JpZ2VtIChzb3VyY2UpXHJcbiAgICB0aGlzLnNvdXJjZS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBjb25zdCBpdGVtSWQgPSBpdGVtW3RoaXMuaXRlbUlkRmllbGRdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbUlkXSA9IGlzU2VsZWN0ZWQ7XHJcbiAgICB9KTtcclxuICBcclxuICAgIC8vIFNlbGVjaW9uYXIgdG9kb3Mgb3MgaXRlbnMgbmEgbGlzdGEgZGUgZGVzdGlubyAodGFyZ2V0KVxyXG4gICAgdGhpcy50YXJnZXQuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgY29uc3QgaXRlbUlkID0gaXRlbVt0aGlzLml0ZW1JZEZpZWxkXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW2l0ZW1JZF0gPSBpc1NlbGVjdGVkO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gXHJcbiAgc2VsZWN0Q2hlY2tCb3goaXRlbTogYW55KSB7XHJcbiAgICBjb25zdCBpdGVtSWQgPSBpdGVtW3RoaXMuaXRlbUlkRmllbGRdO1xyXG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcgPSBpdGVtO1xyXG4gIFxyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zW2l0ZW1JZF0gPSB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbUlkXSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgID8gIXRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtSWRdXHJcbiAgICAgIDogdHJ1ZTtcclxuICAgIFxyXG4gICAgdGhpcy5uZ01vZGVsID0gdGhpcy5zZWxlY3RlZEl0ZW1zW2l0ZW1JZF07XHJcbiAgfVxyXG4gIFxyXG5cclxuICBpc0l0ZW1TZWxlY3RlZChpdGVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRQcmV2aWV3ID09PSBpdGVtKVxyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRQcmV2aWV3ID09PSBpdGVtO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG59XHJcbiIsIjxwLXBpY2tMaXN0XHJcbiAgW3NvdXJjZV09XCJzb3VyY2VcIlxyXG4gIFtzb3VyY2VIZWFkZXJdPVwic291cmNlSGVhZGVyXCJcclxuICBbc291cmNlU3R5bGVdPVwic291cmNlU3R5bGVcIlxyXG4gIFt0YXJnZXRdPVwidGFyZ2V0XCJcclxuICBbdGFyZ2V0SGVhZGVyXT1cInRhcmdldEhlYWRlclwiXHJcbiAgW3RhcmdldFN0eWxlXT1cInRhcmdldFN0eWxlXCJcclxuICBbZHJhZ2Ryb3BdPVwiZHJhZ2Ryb3BcIlxyXG4gIFtyZXNwb25zaXZlXT1cInJlc3BvbnNpdmVcIlxyXG4gIFtmaWx0ZXJCeV09XCJmaWx0ZXJCeVwiXHJcbiAgW2JyZWFrcG9pbnRdPVwiYnJlYWtwb2ludFwiXHJcbiAgW3N0cmlwZWRSb3dzXT1cInN0cmlwZWRSb3dzXCJcclxuICBbc2hvd1NvdXJjZUNvbnRyb2xzXT1cInNob3dTb3VyY2VDb250cm9sc1wiXHJcbiAgW3Nob3dUYXJnZXRDb250cm9sc109XCJzaG93VGFyZ2V0Q29udHJvbHNcIlxyXG4gIChvbk1vdmVUb1NvdXJjZSk9XCJPbk1vdmVUb1NvdXJjZSgkZXZlbnQpXCJcclxuICAob25Nb3ZlVG9UYXJnZXQpPVwiT25Nb3ZlVG9UYXJnZXQoJGV2ZW50KVwiXHJcbiAgKG9uTW92ZUFsbFRvU291cmNlKT1cIk9uTW92ZUFsbFRvU291cmNlKCRldmVudClcIlxyXG4gIChvbk1vdmVBbGxUb1RhcmdldCk9XCJPbk1vdmVBbGxUb1RhcmdldCgkZXZlbnQpXCJcclxuICAob25Tb3VyY2VTZWxlY3QpPVwiT25Tb3VyY2VTZWxlY3QoJGV2ZW50KVwiXHJcbiAgKG9uVGFyZ2V0U2VsZWN0KT1cIk9uVGFyZ2V0U2VsZWN0KCRldmVudClcIlxyXG4+XHJcbiAgPG5nLXRlbXBsYXRlICBsZXQtaXRlbSBwVGVtcGxhdGU9XCJpdGVtXCIgKm5nSWY9XCJpdGVtVGVtcGxhdGVcIj5cclxuICAgICAgPGRpdiAoY2xpY2spPVwic2VsZWN0Q2hlY2tCb3goaXRlbSlcIiBjbGFzcz1cImZsZXggbXItNVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1UZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+XHJcbiAgICAgICAgQGlmKHNob3dDaGVja0JveCl7XHJcbiAgICAgICAgICAgIDxrdi1jaGVjayAob25DaGVja0NoYW5nZSk9XCJzZWxlY3RDaGVja0JveChpdGVtKVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRJdGVtc1tpdGVtW2l0ZW1JZEZpZWxkXV1cIiBjbGFzcz1cIm1yLTFcIj48L2t2LWNoZWNrPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PiBcclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3AtcGlja0xpc3Q+XHJcbiJdfQ==
|
|
372
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGljay1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBpY2stbGlzdC9rdi1waWNrLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtcGljay1saXN0L2t2LXBpY2stbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7QUFVNUMsTUFBTSxPQUFPLG1CQUFtQjtJQU05QixZQUFvQixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUkxQixnQkFBVyxHQUFXLElBQUksQ0FBQztRQUMzQixlQUFVLEdBQVcsUUFBUSxDQUFDO1FBQzlCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFHekIsZUFBVSxHQUFZLElBQUksQ0FBQztRQUUzQixpQkFBWSxHQUFXLDJCQUEyQixDQUFDO1FBRW5ELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCLGlCQUFZLEdBQVcsNEJBQTRCLENBQUM7UUFFcEQsdUJBQWtCLEdBQVksSUFBSSxDQUFDO1FBQ25DLHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUNuQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU3QixtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZELG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkQsc0JBQWlCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUQsc0JB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QyxDQUFDO0lBRTVDLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBUztRQUN0QixPQUFPLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDO0lBQ3ZDLENBQUM7OEdBcGFVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDh3QkFFbkIsUUFBUSxnREN0QnJCLGcwQ0ErQkE7OzJGRFhhLG1CQUFtQjtrQkFSL0IsU0FBUzsrQkFDRSxhQUFhO2dGQVNGLFFBQVE7c0JBQTVCLFNBQVM7dUJBQUMsUUFBUTtnQkFRVixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFBpY2tMaXN0IH0gZnJvbSAncHJpbWVuZy9waWNrbGlzdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LXBpY2tsaXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtcGljay1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuL2t2LXBpY2stbGlzdC5jb21wb25lbnQuc2NzcycsXHJcbiAgICAnLi4va2Vldm8tY29tcG9uZW50cy1zdHlsZXMuc2NzcydcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdlBpY2tMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZChQaWNrTGlzdCkgcGlja2xpc3QhOiBQaWNrTGlzdDtcclxuXHJcbiAgZm9ybSE6IEZvcm1Hcm91cDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQpID0+IHRoaXMub25LZXlEb3duKGV2ZW50KSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBpdGVtSWRGaWVsZDogc3RyaW5nID0gJ2lkJztcclxuICBASW5wdXQoKSBicmVha3BvaW50OiBzdHJpbmcgPSBcIjE0MDBweFwiO1xyXG4gIEBJbnB1dCgpIGRyYWdkcm9wOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBmaWx0ZXJCeSE6IHN0cmluZztcclxuICBASW5wdXQoKSBpdGVtVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNvdXJjZSE6IGFueVtdO1xyXG4gIEBJbnB1dCgpIHNvdXJjZUhlYWRlcjogc3RyaW5nID0gJ1TDrXR1bG8gZGEgbGlzdGEgZGUgb3JpZ2VtJztcclxuICBASW5wdXQoKSBzb3VyY2VTdHlsZSE6IGFueTtcclxuICBASW5wdXQoKSBzdHJpcGVkUm93czogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRhcmdldCE6IGFueVtdO1xyXG4gIEBJbnB1dCgpIHRhcmdldEhlYWRlcjogc3RyaW5nID0gJ1TDrXR1bG8gZGUgbGlzdGEgZGUgZGVzdGlubyc7XHJcbiAgQElucHV0KCkgdGFyZ2V0U3R5bGUhOiBhbnk7XHJcbiAgQElucHV0KCkgc2hvd1NvdXJjZUNvbnRyb2xzOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93VGFyZ2V0Q29udHJvbHM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dDaGVja0JveDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgb25Nb3ZlVG9Tb3VyY2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk1vdmVUb1RhcmdldDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uTW92ZUFsbFRvU291cmNlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25Nb3ZlQWxsVG9UYXJnZXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblNvdXJjZVNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uVGFyZ2V0U2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgc2VsZWN0ZWRQcmV2aWV3ITogYW55O1xyXG4gIG5nTW9kZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWxlY3RlZEl0ZW1zOiB7IFtrZXk6IG51bWJlcl06IGJvb2xlYW4gfSA9IHt9O1xyXG4gIHVsdGltb0l0ZW1TZWxlY2lvbmFkbzogeyBpdGVtOiBhbnksIGluZGV4OiBudW1iZXIgfVtdID0gW107XHJcbiAgbGFzdERyYWdnZWRJdGVtczogYW55W10gPSBbXTtcclxuICBkcmFnZ2VkSWRzOiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICBtb3VzZVggPSAwO1xyXG4gIG1vdXNlWSA9IDA7XHJcbiAgcHJldmlld0Nsb25lczogSFRNTEVsZW1lbnRbXSA9IFtdO1xyXG5cclxubmdPbkluaXQoKSB7XHJcbiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICB0aGlzLm1vdXNlWCA9IGV2ZW50LmNsaWVudFg7XHJcbiAgICB0aGlzLm1vdXNlWSA9IGV2ZW50LmNsaWVudFk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbm5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICB0aGlzLmNyZWF0ZURyb3BPdmVybGF5KCk7XHJcbn1cclxuXHJcbiAgZHJvcE92ZXJsYXkhOiBIVE1MRGl2RWxlbWVudDtcclxuXHJcbiAgY3JlYXRlRHJvcE92ZXJsYXkoKSB7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LmlubmVyVGV4dCA9ICdTb2x0YXInO1xyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmJhY2tncm91bmQgPSAnI0JGREJGRSc7IC8vIEF6dWwgY2xhcm8gdmlzw612ZWxcclxuICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuY29sb3IgPSAnIzFFM0E4QSc7IC8vIEF6dWwgZXNjdXJvIHBybyB0ZXh0b1xyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS5ib3JkZXIgPSAnOXB4ICMxRTQwQUYnOyAvLyBCb3JkYSBhenVsIGVzY3Vyb1xyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS5ib3hTaGFkb3cgPSAnMCAycHggNnB4IHJnYmEoMzAsIDU4LCAxMzgsIDAuMiknOyAvLyBTaGFkb3cgcmVkdXppZGFcclxuICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuanVzdGlmeUNvbnRlbnQgPSAnY2VudGVyJztcclxuICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuYWxpZ25JdGVtcyA9ICdjZW50ZXInO1xyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS56SW5kZXggPSAnOTk5OSc7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmZvbnRTaXplID0gJzEuNXJlbSc7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmZvbnRXZWlnaHQgPSAnYm9sZCc7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnYWxsJztcclxuICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUudHJhbnNpdGlvbiA9ICdhbGwgMC4ycyBlYXNlJztcclxuXHJcblxyXG4gICAgLy8gRW5jYWl4YXIgbm8gbWVzbW8gbHVnYXIgZG8gdGFyZ2V0XHJcbiAgICBjb25zdCB0YXJnZXRMaXN0RWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucC1waWNrbGlzdC10YXJnZXQnKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICh0YXJnZXRMaXN0RWwpIHtcclxuICAgICAgY29uc3QgcmVjdCA9IHRhcmdldExpc3RFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS50b3AgPSByZWN0LnRvcCArICdweCc7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUubGVmdCA9IHJlY3QubGVmdCArICdweCc7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUud2lkdGggPSByZWN0LndpZHRoICsgJ3B4JztcclxuICAgICAgdGhpcy5kcm9wT3ZlcmxheS5zdHlsZS5oZWlnaHQgPSByZWN0LmhlaWdodCArICdweCc7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kcm9wT3ZlcmxheS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJblNvdXJjZSA9IHRoaXMuc291cmNlLnNvbWUoaXRlbSA9PiB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbVt0aGlzLml0ZW1JZEZpZWxkXV0pO1xyXG4gICAgICBjb25zdCBzZWxlY3RlZEluVGFyZ2V0ID0gdGhpcy50YXJnZXQuc29tZShpdGVtID0+IHRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtW3RoaXMuaXRlbUlkRmllbGRdXSk7XHJcbiAgICBcclxuICAgICAgaWYgKHNlbGVjdGVkSW5Tb3VyY2UpIHtcclxuICAgICAgICB0aGlzLk9uTW92ZVRvVGFyZ2V0KHt9KTtcclxuICAgICAgfSBlbHNlIGlmIChzZWxlY3RlZEluVGFyZ2V0KSB7XHJcbiAgICAgICAgdGhpcy5Pbk1vdmVUb1NvdXJjZSh7fSk7XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICB0aGlzLmhpZGVEcm9wT3ZlcmxheSgpO1xyXG4gICAgfSk7XHJcbiAgICBcclxuXHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuYmFja2dyb3VuZCA9ICcjOTNDNUZEJzsgLy8gQXp1bCB1bSBwb3VjbyBtYWlzIGVzY3VybyBubyBob3ZlclxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRyb3BPdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuYmFja2dyb3VuZCA9ICcjQkZEQkZFJztcclxuICAgIH0pO1xyXG4gICAgXHJcblxyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmRyb3BPdmVybGF5KTtcclxuICB9XHJcblxyXG5cclxuICBoYW5kbGVNb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMubW91c2VYID0gZXZlbnQuY2xpZW50WDtcclxuICAgIHRoaXMubW91c2VZID0gZXZlbnQuY2xpZW50WTtcclxuICB9XHJcblxyXG4gIGNsZWFyUHJldmlld0Nsb25lcygpIHtcclxuICAgIHRoaXMucHJldmlld0Nsb25lcy5mb3JFYWNoKGNsb25lID0+IGNsb25lLnJlbW92ZSgpKTtcclxuICAgIHRoaXMucHJldmlld0Nsb25lcyA9IFtdO1xyXG4gIH1cclxuICBcclxuICBPbk1vdmVUb1NvdXJjZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmNsZWFyUHJldmlld0Nsb25lcygpO1xyXG4gICAgdGhpcy5waWNrbGlzdC5tb3ZlTGVmdCgpO1xyXG4gICAgdGhpcy5vbk1vdmVUb1NvdXJjZS5lbWl0KGV2ZW50KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHt9O1xyXG4gICAgdGhpcy5oaWRlRHJvcE92ZXJsYXkoKVxyXG4gICAgdGhpcy5jbGVhclByZXZpZXdDbG9uZXMoKTtcclxuICB9XHJcbiAgXHJcbiAgT25Nb3ZlVG9UYXJnZXQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jbGVhclByZXZpZXdDbG9uZXMoKTtcclxuICAgIHRoaXMucGlja2xpc3QubW92ZVJpZ2h0KCk7XHJcbiAgICB0aGlzLm9uTW92ZVRvVGFyZ2V0LmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0ge307XHJcbiAgICB0aGlzLmhpZGVEcm9wT3ZlcmxheSgpXHJcbiAgICB0aGlzLmNsZWFyUHJldmlld0Nsb25lcygpO1xyXG4gIH1cclxuICBcclxuXHJcbiAgZ2V0U2VsZWN0ZWRJdGVtcygpOiBhbnlbXSB7XHJcbiAgICAvLyBGaWx0cmEgb3MgaXRlbnMgZGEgbGlzdGEgZGUgb3JpZ2VtIChzb3VyY2UpIGNvbSBiYXNlIG5vcyBpdGVucyBzZWxlY2lvbmFkb3NcclxuICAgIHJldHVybiB0aGlzLnNvdXJjZS5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW1JZCA9IGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF07IC8vIE9idMOpbSBvIElEIGRvIGl0ZW1cclxuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtSWRdID09PSB0cnVlOyAvLyBWZXJpZmljYSBzZSBlc3TDoSBtYXJjYWRvIGNvbW8gdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBPbk1vdmVBbGxUb1NvdXJjZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uTW92ZVRvU291cmNlLmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0ge307XHJcbiAgICB0aGlzLmhpZGVEcm9wT3ZlcmxheSgpXHJcbiAgICB0aGlzLmNsZWFyUHJldmlld0Nsb25lcygpO1xyXG4gIH1cclxuXHJcbiAgT25Nb3ZlQWxsVG9UYXJnZXQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vbk1vdmVUb1RhcmdldC5lbWl0KGV2ZW50KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHt9O1xyXG4gICAgdGhpcy5oaWRlRHJvcE92ZXJsYXkoKVxyXG4gICAgdGhpcy5jbGVhclByZXZpZXdDbG9uZXMoKTtcclxuICB9XHJcblxyXG4gIE9uU291cmNlU2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLmdldFNlbGVjdGVkSXRlbXMoKTtcclxuICBcclxuICAgIC8vIFByaW1laXJvIHJlbW92ZSB0b2RvcyBvcyBwcmV2aWV3cyBhbnRpZ29zXHJcbiAgICB0aGlzLmNsZWFyUHJldmlld0Nsb25lcygpO1xyXG4gIFxyXG4gICAgaWYgKHNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuaGlkZURyb3BPdmVybGF5KCk7XHJcbiAgICAgIHRoaXMub25Tb3VyY2VTZWxlY3QuZW1pdChldmVudCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICBcclxuICAgIHNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW1JZCA9IGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF07XHJcbiAgXHJcbiAgICAgIC8vIFNlIGrDoSBleGlzdGUgdW0gY2xvbmUgcGFyYSBlc3NlIGl0ZW0sIG7Do28gY3JpYSBub3ZhbWVudGVcclxuICAgICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJldmlld18nICsgaXRlbUlkKSkge1xyXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lkX3BpY2tfbGlzdCcgKyBpdGVtSWQpO1xyXG4gICAgICAgIGlmIChvcmlnaW5hbCkge1xyXG4gICAgICAgICAgY29uc3QgcmVjdCA9IG9yaWdpbmFsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgY29uc3QgY2xvbmUgPSBvcmlnaW5hbC5jbG9uZU5vZGUodHJ1ZSkgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICBjbG9uZS5jbGFzc0xpc3QuYWRkKCdkcmFnLXByZXZpZXctY2xvbmUnKTtcclxuICAgICAgICAgIGNsb25lLmNsYXNzTGlzdC5hZGQoYGxldmVsLSR7aW5kZXggKyAxfWApO1xyXG4gICAgICAgICAgY2xvbmUuaWQgPSAncHJldmlld18nICsgaXRlbUlkO1xyXG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjbG9uZSk7XHJcbiAgICAgICAgICB0aGlzLnByZXZpZXdDbG9uZXMucHVzaChjbG9uZSk7XHJcbiAgICAgICAgICB0aGlzLmFuaW1hdGVDbG9uZVRvQ3Vyc29yKGNsb25lLCByZWN0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIFxyXG4gICAgdGhpcy5zaG93RHJvcE92ZXJsYXkoKTtcclxuICAgIHRoaXMub25Tb3VyY2VTZWxlY3QuZW1pdChldmVudCk7XHJcbiAgfVxyXG4gIFxyXG5cclxuICBzaG93RHJvcE92ZXJsYXkoKSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZEluU291cmNlID0gdGhpcy5zb3VyY2Uuc29tZShpdGVtID0+IHRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtW3RoaXMuaXRlbUlkRmllbGRdXSk7XHJcbiAgICBjb25zdCBzZWxlY3RlZEluVGFyZ2V0ID0gdGhpcy50YXJnZXQuc29tZShpdGVtID0+IHRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtW3RoaXMuaXRlbUlkRmllbGRdXSk7XHJcbiAgXHJcbiAgICBsZXQgdGFyZ2V0TGlzdEVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gIFxyXG4gICAgaWYgKHNlbGVjdGVkSW5Tb3VyY2UpIHtcclxuICAgICAgLy8gSXRlbnMgc2VsZWNpb25hZG9zIG5hIGxpc3RhIGRhIGVzcXVlcmRhIOKGkiBvdmVybGF5IG5vIGxhZG8gZGlyZWl0b1xyXG4gICAgICB0YXJnZXRMaXN0RWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucC1waWNrbGlzdC10YXJnZXQnKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgdGhpcy5kcm9wT3ZlcmxheS5pbm5lclRleHQgPSAnU29sdGFyIGFxdWkgcGFyYSBtb3Zlcic7XHJcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGVkSW5UYXJnZXQpIHtcclxuICAgICAgLy8gSXRlbnMgc2VsZWNpb25hZG9zIG5hIGxpc3RhIGRhIGRpcmVpdGEg4oaSIG92ZXJsYXkgbm8gbGFkbyBlc3F1ZXJkb1xyXG4gICAgICB0YXJnZXRMaXN0RWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucC1waWNrbGlzdC1zb3VyY2UnKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgdGhpcy5kcm9wT3ZlcmxheS5pbm5lclRleHQgPSAnU29sdGFyIGFxdWkgcGFyYSByZXRvcm5hcic7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBpZiAodGFyZ2V0TGlzdEVsKSB7XHJcbiAgICAgIGNvbnN0IHJlY3QgPSB0YXJnZXRMaXN0RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUudG9wID0gcmVjdC50b3AgKyAncHgnO1xyXG4gICAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmxlZnQgPSByZWN0LmxlZnQgKyAncHgnO1xyXG4gICAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLndpZHRoID0gcmVjdC53aWR0aCArICdweCc7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuaGVpZ2h0ID0gcmVjdC5oZWlnaHQgKyAncHgnO1xyXG4gICAgICB0aGlzLmRyb3BPdmVybGF5LnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIFxyXG4gIGhpZGVEcm9wT3ZlcmxheSgpIHtcclxuICAgIGlmICh0aGlzLmRyb3BPdmVybGF5KSB7XHJcbiAgICAgIHRoaXMuZHJvcE92ZXJsYXkuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgXHJcbiAgYW5pbWF0ZUNsb25lVG9DdXJzb3IoY2xvbmU6IEhUTUxFbGVtZW50LCBvcmlnaW5SZWN0OiBET01SZWN0KSB7XHJcbiAgICAvLyBDb21lw6dhIGV4YXRhbWVudGUgZGEgcG9zacOnw6NvIGRvIG9yaWdpbmFsXHJcbiAgICBsZXQgcG9zWCA9IG9yaWdpblJlY3QubGVmdDtcclxuICAgIGxldCBwb3NZID0gb3JpZ2luUmVjdC50b3A7XHJcbiAgXHJcbiAgICBjbG9uZS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XHJcbiAgICBjbG9uZS5zdHlsZS5sZWZ0ID0gYCR7cG9zWH1weGA7XHJcbiAgICBjbG9uZS5zdHlsZS50b3AgPSBgJHtwb3NZfXB4YDtcclxuICAgIGNsb25lLnN0eWxlLndpZHRoID0gYCR7b3JpZ2luUmVjdC53aWR0aH1weGA7XHJcbiAgICBjbG9uZS5zdHlsZS5oZWlnaHQgPSBgJHtvcmlnaW5SZWN0LmhlaWdodH1weGA7XHJcbiAgICBjbG9uZS5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xyXG4gIFxyXG4gICAgY29uc3QgYW5pbWF0ZSA9ICgpID0+IHtcclxuICAgICAgY29uc3QgZHggPSB0aGlzLm1vdXNlWCAtIHBvc1g7XHJcbiAgICAgIGNvbnN0IGR5ID0gdGhpcy5tb3VzZVkgLSBwb3NZO1xyXG4gIFxyXG4gICAgICBwb3NYICs9IGR4ICogMC4xNTtcclxuICAgICAgcG9zWSArPSBkeSAqIDAuMTU7XHJcbiAgXHJcbiAgICAgIGNsb25lLnN0eWxlLmxlZnQgPSBgJHtwb3NYfXB4YDtcclxuICAgICAgY2xvbmUuc3R5bGUudG9wID0gYCR7cG9zWX1weGA7XHJcbiAgXHJcbiAgICAgIGlmIChkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGNsb25lKSkge1xyXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICBcclxuICAgIGFuaW1hdGUoKTtcclxuICB9XHJcbiAgXHJcbiAgXHJcblxyXG4gIE9uVGFyZ2V0U2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLnRhcmdldC5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW1JZCA9IGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF07XHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbUlkXSA9PT0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIFxyXG4gICAgLy8gTGltcGEgY2xvbmVzIGFudGlnb3NcclxuICAgIHRoaXMuY2xlYXJQcmV2aWV3Q2xvbmVzKCk7XHJcbiAgXHJcbiAgICBpZiAoc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5oaWRlRHJvcE92ZXJsYXkoKTtcclxuICAgICAgdGhpcy5vblRhcmdldFNlbGVjdC5lbWl0KGV2ZW50KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgY29uc3QgaXRlbUlkID0gaXRlbVt0aGlzLml0ZW1JZEZpZWxkXTtcclxuICBcclxuICAgICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJldmlld18nICsgaXRlbUlkKSkge1xyXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lkX3BpY2tfbGlzdCcgKyBpdGVtSWQpO1xyXG4gICAgICAgIGlmIChvcmlnaW5hbCkge1xyXG4gICAgICAgICAgY29uc3QgcmVjdCA9IG9yaWdpbmFsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgY29uc3QgY2xvbmUgPSBvcmlnaW5hbC5jbG9uZU5vZGUodHJ1ZSkgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICBjbG9uZS5jbGFzc0xpc3QuYWRkKCdkcmFnLXByZXZpZXctY2xvbmUnKTtcclxuICAgICAgICAgIGNsb25lLmNsYXNzTGlzdC5hZGQoYGxldmVsLSR7aW5kZXggKyAxfWApO1xyXG4gICAgICAgICAgY2xvbmUuaWQgPSAncHJldmlld18nICsgaXRlbUlkO1xyXG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjbG9uZSk7XHJcbiAgICAgICAgICB0aGlzLnByZXZpZXdDbG9uZXMucHVzaChjbG9uZSk7XHJcbiAgICAgICAgICB0aGlzLmFuaW1hdGVDbG9uZVRvQ3Vyc29yKGNsb25lLCByZWN0KTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBcclxuICAgIHRoaXMuc2hvd0Ryb3BPdmVybGF5KCk7XHJcbiAgICB0aGlzLm9uVGFyZ2V0U2VsZWN0LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICBcclxuXHJcbiAgb25TZWxlY3RBbGwoKSB7XHJcbiAgICB0aGlzLnNlbGVjdEFsbEl0ZW1zKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QWxsSXRlbXMoaXNTZWxlY3RlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zb3VyY2UuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgY29uc3QgaXRlbUlkID0gaXRlbVt0aGlzLml0ZW1JZEZpZWxkXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW2l0ZW1JZF0gPSBpc1NlbGVjdGVkO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy50YXJnZXQuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgY29uc3QgaXRlbUlkID0gaXRlbVt0aGlzLml0ZW1JZEZpZWxkXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW2l0ZW1JZF0gPSBpc1NlbGVjdGVkO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIGV2ZW50LmtleSA9PT0gJ2EnKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMub25TZWxlY3RBbGwoKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgXHJcbiAgICAgIGNvbnN0IHNvdXJjZVNlbGVjdGVkID0gdGhpcy5waWNrbGlzdC5zZWxlY3RlZEl0ZW1zU291cmNlO1xyXG4gIFxyXG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zSWRzID0gT2JqZWN0LmVudHJpZXModGhpcy5zZWxlY3RlZEl0ZW1zKVxyXG4gICAgICAgIC5maWx0ZXIoKFtfLCB2YWx1ZV0pID0+IHZhbHVlID09PSB0cnVlKVxyXG4gICAgICAgIC5tYXAoKFtrZXksIF9dKSA9PiBOdW1iZXIoa2V5KSk7XHJcbiAgXHJcbiAgICAgIGNvbnN0IG5vdEluU2VsZWN0ZWQgPSBzb3VyY2VTZWxlY3RlZC5maW5kKFxyXG4gICAgICAgIChpdGVtOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PlxyXG4gICAgICAgICAgIXNlbGVjdGVkSXRlbXNJZHMuaW5jbHVkZXMoaXRlbVt0aGlzLml0ZW1JZEZpZWxkXSlcclxuICAgICAgKTtcclxuICBcclxuICAgICAgY29uc3QgaW5kZXhJblNvdXJjZSA9IHRoaXMuc291cmNlLmZpbmRJbmRleChcclxuICAgICAgICAoaXRlbTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkgPT5cclxuICAgICAgICAgIGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF0gPT09IG5vdEluU2VsZWN0ZWQ/Llt0aGlzLml0ZW1JZEZpZWxkXVxyXG4gICAgICApO1xyXG4gIFxyXG4gICAgICBjb25zdCB1bHRpbW9JdGVtQXJyYXkgPSB7XHJcbiAgICAgICAgaXRlbTogbm90SW5TZWxlY3RlZCxcclxuICAgICAgICBpbmRleDogaW5kZXhJblNvdXJjZSxcclxuICAgICAgfTtcclxuICBcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleEluU291cmNlID0gdGhpcy5zb3VyY2UuZmluZEluZGV4KChzb3VyY2VJdGVtOiBhbnkpID0+XHJcbiAgICAgICAgc2VsZWN0ZWRJdGVtc0lkcy5pbmNsdWRlcyhzb3VyY2VJdGVtW3RoaXMuaXRlbUlkRmllbGRdKVxyXG4gICAgICApO1xyXG4gIFxyXG4gICAgICBpZiAobm90SW5TZWxlY3RlZCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgY29uc3QgYmVmb3JlSWRzID0gdGhpcy51bHRpbW9JdGVtU2VsZWNpb25hZG8ubWFwKGkgPT4gaS5pdGVtW3RoaXMuaXRlbUlkRmllbGRdKTtcclxuICAgICAgICBjb25zdCBhZnRlcklkcyA9IHRoaXMucGlja2xpc3Quc2VsZWN0ZWRJdGVtc1NvdXJjZS5tYXAoaSA9PiBpW3RoaXMuaXRlbUlkRmllbGRdKTtcclxuICAgICAgXHJcbiAgICAgICAgY29uc3QgcmVtb3ZlZElkID0gYmVmb3JlSWRzLmZpbmQoaWQgPT4gIWFmdGVySWRzLmluY2x1ZGVzKGlkKSk7XHJcbiAgICAgIFxyXG4gICAgICBcclxuICAgICAgICBpZiAocmVtb3ZlZElkICE9IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IHJlbW92ZWRJdGVtID0gdGhpcy5zb3VyY2UuZmluZChpdGVtID0+IGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF0gPT09IHJlbW92ZWRJZCk7XHJcbiAgICAgICAgICBpZiAocmVtb3ZlZEl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RDaGVja0JveChyZW1vdmVkSXRlbSk7XHJcbiAgICAgICAgICAgIHRoaXMudWx0aW1vSXRlbVNlbGVjaW9uYWRvID0gdGhpcy51bHRpbW9JdGVtU2VsZWNpb25hZG8uZmlsdGVyKFxyXG4gICAgICAgICAgICAgIChpKSA9PiBpLml0ZW1bdGhpcy5pdGVtSWRGaWVsZF0gIT09IHJlbW92ZWRJZFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBlbnRlcklkcyA9IHRoaXMudWx0aW1vSXRlbVNlbGVjaW9uYWRvLm1hcChpID0+IGkuaXRlbVt0aGlzLml0ZW1JZEZpZWxkXSk7XHJcblxyXG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtc0lkcyA9IE9iamVjdC5lbnRyaWVzKHRoaXMuc2VsZWN0ZWRJdGVtcylcclxuICAgICAgICAgICAgLmZpbHRlcigoW18sIHZhbHVlXSkgPT4gdmFsdWUgPT09IHRydWUpXHJcbiAgICAgICAgICAgIC5tYXAoKFtrZXksIF9dKSA9PiBOdW1iZXIoa2V5KSk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGNvbnN0IGNsaWNrZWRJZHMgPSBzZWxlY3RlZEl0ZW1zSWRzLmZpbHRlcihpZCA9PiAhZW50ZXJJZHMuaW5jbHVkZXMoaWQpKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKGNsaWNrZWRJZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBjbGlja2VkSXRlbSA9IHRoaXMuc291cmNlLmZpbmQoaXRlbSA9PiBpdGVtW3RoaXMuaXRlbUlkRmllbGRdID09PSBjbGlja2VkSWRzWzBdKTtcclxuICAgICAgICAgICAgaWYgKGNsaWNrZWRJdGVtKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RDaGVja0JveChjbGlja2VkSXRlbSk7XHJcbiAgICAgICAgICAgICAgdGhpcy51bHRpbW9JdGVtU2VsZWNpb25hZG8gPSB0aGlzLnVsdGltb0l0ZW1TZWxlY2lvbmFkby5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAoaSkgPT4gaS5pdGVtW3RoaXMuaXRlbUlkRmllbGRdICE9PSBjbGlja2VkSWRzWzBdXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICBcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIFxyXG4gIFxyXG4gICAgICB0aGlzLnNlbGVjdENoZWNrQm94KG5vdEluU2VsZWN0ZWQpO1xyXG4gIFxyXG4gICAgICB0aGlzLnVsdGltb0l0ZW1TZWxlY2lvbmFkbyA9IHRoaXMudWx0aW1vSXRlbVNlbGVjaW9uYWRvLmZpbHRlcihcclxuICAgICAgICAoaXRlbSkgPT4gaXRlbS5pbmRleCAhPT0gaW5kZXhJblNvdXJjZVxyXG4gICAgICApO1xyXG4gIFxyXG4gICAgICB0aGlzLnVsdGltb0l0ZW1TZWxlY2lvbmFkby5wdXNoKHVsdGltb0l0ZW1BcnJheSk7XHJcbiAgXHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBzZWxlY3RDaGVja0JveChpdGVtOiBhbnkpIHtcclxuICAgIGNvbnN0IGl0ZW1JZCA9IGl0ZW1bdGhpcy5pdGVtSWRGaWVsZF07XHJcblxyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3ID0gaXRlbTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbUlkXSA9IHRoaXMuc2VsZWN0ZWRJdGVtc1tpdGVtSWRdICE9PSB1bmRlZmluZWRcclxuICAgICAgPyAhdGhpcy5zZWxlY3RlZEl0ZW1zW2l0ZW1JZF1cclxuICAgICAgOiB0cnVlO1xyXG5cclxuXHJcbiAgICB0aGlzLm5nTW9kZWwgPSB0aGlzLnNlbGVjdGVkSXRlbXNbaXRlbUlkXTtcclxuXHJcbiAgfVxyXG5cclxuICBpc0l0ZW1TZWxlY3RlZChpdGVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUHJldmlldyA9PT0gaXRlbTtcclxuICB9XHJcbn1cclxuIiwiPHAtcGlja0xpc3RcclxuICBbc291cmNlXT1cInNvdXJjZVwiXHJcbiAgW3NvdXJjZUhlYWRlcl09XCJzb3VyY2VIZWFkZXJcIlxyXG4gIFtzb3VyY2VTdHlsZV09XCJzb3VyY2VTdHlsZVwiXHJcbiAgW3RhcmdldF09XCJ0YXJnZXRcIiBcclxuICBbdGFyZ2V0SGVhZGVyXT1cInRhcmdldEhlYWRlclwiXHJcbiAgW3RhcmdldFN0eWxlXT1cInRhcmdldFN0eWxlXCJcclxuICBbZHJhZ2Ryb3BdPVwiZHJhZ2Ryb3BcIlxyXG4gIFtyZXNwb25zaXZlXT1cInJlc3BvbnNpdmVcIlxyXG4gIFtmaWx0ZXJCeV09XCJmaWx0ZXJCeVwiXHJcbiAgW2JyZWFrcG9pbnRdPVwiYnJlYWtwb2ludFwiXHJcbiAgW3N0cmlwZWRSb3dzXT1cInN0cmlwZWRSb3dzXCJcclxuICBbc2hvd1NvdXJjZUNvbnRyb2xzXT1cInNob3dTb3VyY2VDb250cm9sc1wiXHJcbiAgW3Nob3dUYXJnZXRDb250cm9sc109XCJzaG93VGFyZ2V0Q29udHJvbHNcIlxyXG4gIChvbk1vdmVUb1NvdXJjZSk9XCJPbk1vdmVUb1NvdXJjZSgkZXZlbnQpXCJcclxuICAob25Nb3ZlVG9UYXJnZXQpPVwiT25Nb3ZlVG9UYXJnZXQoJGV2ZW50KVwiXHJcbiAgKG9uTW92ZUFsbFRvU291cmNlKT1cIk9uTW92ZUFsbFRvU291cmNlKCRldmVudClcIlxyXG4gIChvbk1vdmVBbGxUb1RhcmdldCk9XCJPbk1vdmVBbGxUb1RhcmdldCgkZXZlbnQpXCJcclxuICAob25Tb3VyY2VTZWxlY3QpPVwiT25Tb3VyY2VTZWxlY3QoJGV2ZW50KVwiXHJcbiAgKG9uVGFyZ2V0U2VsZWN0KT1cIk9uVGFyZ2V0U2VsZWN0KCRldmVudClcIlxyXG4+XHJcbiAgPG5nLXRlbXBsYXRlICBsZXQtaXRlbSBwVGVtcGxhdGU9XCJpdGVtXCIgKm5nSWY9XCJpdGVtVGVtcGxhdGVcIiA+XHJcbiAgICAgIDxkaXYgKGNsaWNrKT1cInNlbGVjdENoZWNrQm94KGl0ZW0pXCIgY2xhc3M9XCJmbGV4IG1yLTVcIiBbaWRdPVwiJ2lkX3BpY2tfbGlzdCcraXRlbS5pZGluZGljYXRpdm9sb3RhY2FvXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj5cclxuICAgICAgICBAaWYoc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgICAgICAgIDxrdi1jaGVjayAob25DaGVja0NoYW5nZSk9XCJzZWxlY3RDaGVja0JveChpdGVtKVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRJdGVtc1tpdGVtW2l0ZW1JZEZpZWxkXV1cIiBjbGFzcz1cIm1yLTFcIj48L2t2LWNoZWNrPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PiBcclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3AtcGlja0xpc3Q+XHJcbiJdfQ==
|