@trudb/tru-common-lib 0.1.261 → 0.1.263
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.
|
@@ -2,13 +2,16 @@ import { Component, Input, ViewChild } from '@angular/core';
|
|
|
2
2
|
import * as _ from 'underscore';
|
|
3
3
|
import { breeze } from 'breeze-client';
|
|
4
4
|
import { v4 as uuidv4 } from 'uuid';
|
|
5
|
+
import { forkJoin, skip } from 'rxjs';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "../../services/tru-data-context";
|
|
7
8
|
import * as i2 from "../../services/tru-model-type-lookup";
|
|
8
|
-
import * as i3 from "
|
|
9
|
+
import * as i3 from "../../base-views/search/services/tru-search-view-event-handler";
|
|
10
|
+
import * as i4 from "@angular/common";
|
|
9
11
|
export class TruCardColumn {
|
|
10
12
|
dataContext;
|
|
11
13
|
modelTypeLookup;
|
|
14
|
+
searchViewEventHandler;
|
|
12
15
|
config;
|
|
13
16
|
name;
|
|
14
17
|
portal;
|
|
@@ -38,13 +41,15 @@ export class TruCardColumn {
|
|
|
38
41
|
columnFilterRefs = [];
|
|
39
42
|
cardFilterStr;
|
|
40
43
|
uniqueId;
|
|
44
|
+
subs = [];
|
|
41
45
|
busyMessage = 'Rendering...';
|
|
42
46
|
isBusy = false;
|
|
43
47
|
columns = [];
|
|
44
48
|
lockedColumns = [];
|
|
45
|
-
constructor(dataContext, modelTypeLookup) {
|
|
49
|
+
constructor(dataContext, modelTypeLookup, searchViewEventHandler) {
|
|
46
50
|
this.dataContext = dataContext;
|
|
47
51
|
this.modelTypeLookup = modelTypeLookup;
|
|
52
|
+
this.searchViewEventHandler = searchViewEventHandler;
|
|
48
53
|
}
|
|
49
54
|
parentTableModel = null; //dataService.model.tables[parentTableName];
|
|
50
55
|
userHasParentTableRole = null; //parentTableModel.canDisplay;
|
|
@@ -262,6 +267,26 @@ export class TruCardColumn {
|
|
|
262
267
|
}
|
|
263
268
|
}
|
|
264
269
|
}
|
|
270
|
+
subscribeTo = () => {
|
|
271
|
+
this.subs.push(this.searchViewEventHandler.onSearch().pipe(skip(1)).subscribe((setupQuery) => {
|
|
272
|
+
this.onSearch(setupQuery);
|
|
273
|
+
}));
|
|
274
|
+
};
|
|
275
|
+
onSearch = (setupQuery) => {
|
|
276
|
+
this.isBusy = true;
|
|
277
|
+
this.busyMessage = 'Searching...';
|
|
278
|
+
let joins = [];
|
|
279
|
+
joins.push(this.dataContext.entityAccess().search(this.modelTypeLookup.getType(this.childTableName), setupQuery, null, false));
|
|
280
|
+
forkJoin(joins).subscribe({
|
|
281
|
+
next: results => {
|
|
282
|
+
this.updateItemsSource(results[0], false);
|
|
283
|
+
},
|
|
284
|
+
complete: () => {
|
|
285
|
+
this.isBusy = false;
|
|
286
|
+
this.busyMessage = '';
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
};
|
|
265
290
|
ngOnInit() {
|
|
266
291
|
this.parentTableName = this.config.parentTableName;
|
|
267
292
|
this.parentTablePluralLabel = this.config.parentTablePluralLabel;
|
|
@@ -293,19 +318,20 @@ export class TruCardColumn {
|
|
|
293
318
|
this.relatedChildName = this.childTablePluralLabel;
|
|
294
319
|
}
|
|
295
320
|
this.uniqueId = uuidv4();
|
|
321
|
+
this.subscribeTo();
|
|
296
322
|
}
|
|
297
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruCardColumn, deps: [{ token: i1.TruDataContext }, { token: i2.TruModelTypeLookup }], target: i0.ɵɵFactoryTarget.Component });
|
|
298
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TruCardColumn, selector: "tru-card-column", inputs: { config: "config", name: "name" }, viewQueries: [{ propertyName: "portal", first: true, predicate: ["
|
|
323
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruCardColumn, deps: [{ token: i1.TruDataContext }, { token: i2.TruModelTypeLookup }, { token: i3.TruSearchViewEventHandler }], target: i0.ɵɵFactoryTarget.Component });
|
|
324
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TruCardColumn, selector: "tru-card-column", inputs: { config: "config", name: "name" }, viewQueries: [{ propertyName: "portal", first: true, predicate: ["cardPortal"], descendants: true }], ngImport: i0, template: "<div class=\"tru-card\">\r\n <div *ngIf=\"isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.childTablePluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{busyMessage}}</p>\r\n </div>\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar\"></tru-toolbar>-->\r\n <div class=\"tru-card-portal\" #cardPortal>\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}.tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
299
325
|
}
|
|
300
326
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruCardColumn, decorators: [{
|
|
301
327
|
type: Component,
|
|
302
|
-
args: [{ selector: 'tru-card-column', template: "<div class=\"tru-card\">\r\n <div *ngIf=\"isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.childTablePluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{busyMessage}}</p>\r\n </div>\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar\"></tru-toolbar>-->\r\n <div class=\"tru-card-portal\">\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}.tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"] }]
|
|
303
|
-
}], ctorParameters: () => [{ type: i1.TruDataContext }, { type: i2.TruModelTypeLookup }], propDecorators: { config: [{
|
|
328
|
+
args: [{ selector: 'tru-card-column', template: "<div class=\"tru-card\">\r\n <div *ngIf=\"isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.childTablePluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{busyMessage}}</p>\r\n </div>\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar\"></tru-toolbar>-->\r\n <div class=\"tru-card-portal\" #cardPortal>\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}.tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"] }]
|
|
329
|
+
}], ctorParameters: () => [{ type: i1.TruDataContext }, { type: i2.TruModelTypeLookup }, { type: i3.TruSearchViewEventHandler }], propDecorators: { config: [{
|
|
304
330
|
type: Input
|
|
305
331
|
}], name: [{
|
|
306
332
|
type: Input
|
|
307
333
|
}], portal: [{
|
|
308
334
|
type: ViewChild,
|
|
309
|
-
args: ['
|
|
335
|
+
args: ['cardPortal', { static: false }]
|
|
310
336
|
}] } });
|
|
311
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNhcmQtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtY29sdW1uL3RydS1jYXJkLWNvbHVtbi50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWNvbHVtbi90cnUtY2FyZC1jb2x1bW4uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxLQUFLLENBQUMsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFXcEMsTUFBTSxPQUFPLGFBQWE7SUEwQ2Q7SUFDQTtJQTFDRCxNQUFNLENBQXVCO0lBQzdCLElBQUksQ0FBTztJQUU4QixNQUFNLENBQWtCO0lBRWxFLGVBQWUsQ0FBVTtJQUN6QixzQkFBc0IsQ0FBVTtJQUNoQyxjQUFjLENBQVU7SUFDeEIscUJBQXFCLENBQVU7SUFDL0IsR0FBRyxDQUFVO0lBQ2IsV0FBVyxHQUFHLElBQUksQ0FBQztJQUNuQixZQUFZLENBQWlCO0lBQzdCLEtBQUssQ0FBaUI7SUFDdEIsaUJBQWlCLENBQVc7SUFDNUIsY0FBYyxDQUFpQjtJQUMvQixnQkFBZ0IsQ0FBVTtJQUMxQixlQUFlLENBQWlCO0lBQ2hDLG1CQUFtQixDQUFXO0lBQzlCLG1CQUFtQixDQUFXO0lBRTlCLGVBQWUsQ0FBVztJQUMxQixpQkFBaUIsQ0FBVztJQUM1QixpQkFBaUIsQ0FBVztJQUU1QixVQUFVLENBQXNDO0lBQ2hELFFBQVEsQ0FBb0M7SUFFNUMsaUJB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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAndW5kZXJzY29yZSc7XHJcbmltcG9ydCB7IGJyZWV6ZSB9IGZyb20gJ2JyZWV6ZS1jbGllbnQnO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgVHJ1RGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtZGF0YS1jb250ZXh0JztcclxuaW1wb3J0IHsgVHJ1RW50aXR5QmFzZSB9IGZyb20gJy4uLy4uL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2UnO1xyXG5pbXBvcnQgeyBUcnVNb2RlbFR5cGVMb29rdXAgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtbW9kZWwtdHlwZS1sb29rdXAnO1xyXG5pbXBvcnQgeyBJVHJ1Q2FyZENvbHVtbkNvbmZpZyB9IGZyb20gJy4vY2xhc3Nlcy90cnUtY2FyZC1jb2x1bW4tY29uZmlnJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHJ1LWNhcmQtY29sdW1uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJ1LWNhcmQtY29sdW1uLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RydS1jYXJkLWNvbHVtbi5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1Q2FyZENvbHVtbiB7XHJcbiAgQElucHV0KCkgY29uZmlnITogSVRydUNhcmRDb2x1bW5Db25maWdcclxuICBASW5wdXQoKSBuYW1lITogYW55O1xyXG5cclxuICBAVmlld0NoaWxkKCcudHJ1LWNhcmQtcG9ydGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIHBvcnRhbCE6IEhUTUxEaXZFbGVtZW50O1xyXG5cclxuICBwcml2YXRlIHBhcmVudFRhYmxlTmFtZSE6IHN0cmluZztcclxuICBwcml2YXRlIHBhcmVudFRhYmxlUGx1cmFsTGFiZWwhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBjaGlsZFRhYmxlTmFtZSE6IHN0cmluZztcclxuICBwcml2YXRlIGNoaWxkVGFibGVQbHVyYWxMYWJlbCE6IHN0cmluZztcclxuICBwcml2YXRlIGtleSE6IHN0cmluZztcclxuICBwcml2YXRlIHBhcmVudFF1ZXJ5ID0gbnVsbDtcclxuICBwcml2YXRlIGxvY2tQcm9wZXJ0eSE6IHN0cmluZyB8IG51bGw7XHJcbiAgcHJpdmF0ZSBjb2xvciE6IHN0cmluZyB8IG51bGw7XHJcbiAgcHJpdmF0ZSB1bmFzc2lnbmVkVmlzaWJsZSE6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSB1bmFzc2lnbmVkTmFtZSE6IHN0cmluZyB8IG51bGw7XHJcbiAgcHJpdmF0ZSB1bmFzc2lnbmVkTG9ja2VkITogc3RyaW5nO1xyXG4gIHByaXZhdGUgdW5hc3NpZ25lZENvbG9yITogc3RyaW5nIHwgbnVsbDtcclxuICBwcml2YXRlIHVuYXNzaWduZWREcmFnZ2FibGUhOiBib29sZWFuO1xyXG4gIHByaXZhdGUgdW5hc3NpZ25lZERyb3BwYWJsZSE6IGJvb2xlYW47XHJcblxyXG4gIHByaXZhdGUgaW5hY3RpdmVWaXNpYmxlITogYm9vbGVhbjtcclxuICBwcml2YXRlIGluYWN0aXZlRHJhZ2dhYmxlITogYm9vbGVhbjtcclxuICBwcml2YXRlIGluYWN0aXZlRHJvcHBhYmxlITogYm9vbGVhbjtcclxuXHJcbiAgcHJpdmF0ZSBjb2x1bW5Tb3J0OiAoKGNvbHVtbnM6IGFueSkgPT4gYW55KSB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIGNhcmRTb3J0OiAoKGNhcmRzOiBhbnkpID0+IGFueSkgfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByaXZhdGUgcmVsYXRlZFBhcmVudE5hbWUhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSByZWxhdGVkQ2hpbGROYW1lITogc3RyaW5nO1xyXG4gIHByaXZhdGUgaW5zZXJ0QmVmb3JlOiBhbnk7XHJcbiAgcHJpdmF0ZSBzZWxlY3RlZENhcmRzID0gW107XHJcbiAgcHJpdmF0ZSBjb2x1bW5GaWx0ZXJSZWZzID0gW107XHJcbiAgcHJpdmF0ZSBjYXJkRmlsdGVyU3RyOiBhbnk7XHJcbiAgcHJpdmF0ZSB1bmlxdWVJZCE6IHN0cmluZztcclxuXHJcbiAgYnVzeU1lc3NhZ2U6IHN0cmluZyA9ICdSZW5kZXJpbmcuLi4nO1xyXG4gIGlzQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbHVtbnM6IGFueSA9IFtdO1xyXG4gIGxvY2tlZENvbHVtbnM6IGFueSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGF0YUNvbnRleHQ6IFRydURhdGFDb250ZXh0LFxyXG4gICAgcHJpdmF0ZSBtb2RlbFR5cGVMb29rdXA6IFRydU1vZGVsVHlwZUxvb2t1cCkge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJlbnRUYWJsZU1vZGVsID0gbnVsbDsvL2RhdGFTZXJ2aWNlLm1vZGVsLnRhYmxlc1twYXJlbnRUYWJsZU5hbWVdO1xyXG4gIHByaXZhdGUgdXNlckhhc1BhcmVudFRhYmxlUm9sZSA9IG51bGw7IC8vcGFyZW50VGFibGVNb2RlbC5jYW5EaXNwbGF5O1xyXG5cclxuICBwcml2YXRlIGNyZWF0ZURhdGFGb3JFbnRpdHkgPSAoZW50aXR5OiBUcnVFbnRpdHlCYXNlKSA9PiB7XHJcbiAgICB2YXIgZGF0YSA9IHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5yb3dEYXRhRW5oYW5jZXIoKTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgaGFzVW5kZWZpbmVkQ2hpbGRyZW4gPSAoZW50aXR5OiBUcnVFbnRpdHlCYXNlKSA9PiB7XHJcbiAgICB0eXBlIEVudGl0eU9iamVjdEtleSA9IGtleW9mIHR5cGVvZiBlbnRpdHk7XHJcbiAgICBjb25zdCBlbnRpdHlQcm9wZXJ0eU5hbWUgPSAnbycgKyB0aGlzLnJlbGF0ZWRDaGlsZE5hbWUgYXMgRW50aXR5T2JqZWN0S2V5O1xyXG4gICAgcmV0dXJuICFlbnRpdHlbZW50aXR5UHJvcGVydHlOYW1lXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzRW1wdHlDaGlsZHJlbiA9IChlbnRpdHk6IFRydUVudGl0eUJhc2UpID0+IHtcclxuICAgIHR5cGUgRW50aXR5T2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgIGNvbnN0IGVudGl0eVByb3BlcnR5TmFtZSA9ICdvJyArIHRoaXMucmVsYXRlZENoaWxkTmFtZSBhcyBFbnRpdHlPYmplY3RLZXk7XHJcbiAgICByZXR1cm4gIWVudGl0eVtlbnRpdHlQcm9wZXJ0eU5hbWVdLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzSW5hY3RpdmVDaGlsZHJlbiA9IChlbnRpdHk6IFRydUVudGl0eUJhc2UpID0+IHtcclxuICAgIHR5cGUgRW50aXR5T2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgIGNvbnN0IGVudGl0eVByb3BlcnR5TmFtZSA9ICdvJyArIHRoaXMucmVsYXRlZENoaWxkTmFtZSBhcyBFbnRpdHlPYmplY3RLZXk7XHJcbiAgICByZXR1cm4gXy5ldmVyeShbZW50aXR5UHJvcGVydHlOYW1lXSwgKGNoaWxkOiBhbnkpID0+IHsgcmV0dXJuICFjaGlsZC5hY3RpdmU7IH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNBZGRlZFVuc2F2ZWRDaGlsZHJlbiA9IChlbnRpdGllczogQXJyYXk8VHJ1RW50aXR5QmFzZT4sIHBhcmVudFJlZjogbnVtYmVyKSA9PiB7XHJcbiAgICByZXR1cm4gXy5zb21lKGVudGl0aWVzLCAoZW50aXR5OiBUcnVFbnRpdHlCYXNlKSA9PiB7XHJcbiAgICAgIHR5cGUgRW50aXR5T2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgICAgY29uc3QgZW50aXR5UHJvcGVydHlOYW1lID0gdGhpcy5rZXkgYXMgRW50aXR5T2JqZWN0S2V5O1xyXG4gICAgICByZXR1cm4gZW50aXR5W2VudGl0eVByb3BlcnR5TmFtZV0gPT09IHBhcmVudFJlZlxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyID0gKCkgPT4ge1xyXG4gICAgdmFyIGxvY2tlZENvbHVtbnMgPSB0aGlzLnBvcnRhbC5xdWVyeVNlbGVjdG9yQWxsKCcubG9ja2VkLWNvbHVtbnMnKVswXTtcclxuICAgIHZhciB1bmxvY2tlZENvbHVtbnMgPSB0aGlzLnBvcnRhbC5xdWVyeVNlbGVjdG9yQWxsKCcudW5sb2NrZWQtY29sdW1ucycpWzBdO1xyXG5cclxuICAgIHdoaWxlIChsb2NrZWRDb2x1bW5zICYmIGxvY2tlZENvbHVtbnMubGFzdENoaWxkKSB7IGxvY2tlZENvbHVtbnMucmVtb3ZlQ2hpbGQobG9ja2VkQ29sdW1ucy5sYXN0Q2hpbGQpOyB9O1xyXG4gICAgd2hpbGUgKHVubG9ja2VkQ29sdW1ucyAmJiB1bmxvY2tlZENvbHVtbnMubGFzdENoaWxkKSB7IHVubG9ja2VkQ29sdW1ucy5yZW1vdmVDaGlsZCh1bmxvY2tlZENvbHVtbnMubGFzdENoaWxkKTsgfVxyXG4gICAgd2hpbGUgKHRoaXMuc2VsZWN0ZWRDYXJkcy5sZW5ndGgpIHsgdGhpcy5zZWxlY3RlZENhcmRzLnBvcCgpOyB9O1xyXG4gICAgLy90aGlzLmNvbmZpZy5vblNlbGVjdGlvbkNoYW5nZWQoW10pO1xyXG4gICAgLy90aGlzLmNvbmZpZy5jbGVhckZpbHRlcnMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VmFsdWVGcm9tU29ydFBhdGggPSAoYXJnczogW2FueSwgc3RyaW5nW11dKTogYW55ID0+IHtcclxuICAgIGxldCBjdXJyZW50OiBhbnkgPSBhcmdzWzBdO1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGFyZ3NbMV0ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHBhcnROYW1lOiBzdHJpbmc7XHJcbiAgICAgIGlmIChpICE9PSBhcmdzWzFdLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICBwYXJ0TmFtZSA9ICdvJyArIGFyZ3NbMV1baV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcGFydE5hbWUgPSBhcmdzWzFdW2ldO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY3VycmVudFtwYXJ0TmFtZV0pIHtcclxuICAgICAgICBjdXJyZW50ID0gY3VycmVudFtwYXJ0TmFtZV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjdXJyZW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVJdGVtc1NvdXJjZShuZXdFbnRpdGllczogQXJyYXk8YW55PiwgcmV2ZXJ0OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICBpZiAoIXJldmVydClcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Njcm9sbF9wb3NpdGlvbicgKyB1dWlkdjQoKSwgJzAnKTtcclxuXHJcbiAgICBpZiAobmV3RW50aXRpZXMubGVuZ3RoKVxyXG4gICAgICB0aGlzLmJ1c3lNZXNzYWdlID0gJ1JlbmRlcmluZy4uLic7XHJcblxyXG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJSZWZzID0gW107XHJcbiAgICB0aGlzLmNhcmRGaWx0ZXJTdHIgPSBudWxsO1xyXG5cclxuICAgIGlmICghbmV3RW50aXRpZXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMubG9ja2VkQ29sdW1ucyA9IFtdO1xyXG4gICAgICB0aGlzLmNvbHVtbnMgPSBbXTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBsb2NrZWRDb2x1bW5zOiBBcnJheTxhbnk+ID0gW107XHJcbiAgICBsZXQgZW1wdHlQYXJlbnRzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgICBsZXQgY29sdW1uczogQXJyYXk8YW55PiA9IFtdO1xyXG5cclxuICAgIGxldCBxdWVyeSA9IG5ldyBicmVlemUuRW50aXR5UXVlcnkoJ1F1ZXJ5JyArIHRoaXMucGFyZW50VGFibGVOYW1lKTtcclxuXHJcbiAgICB2YXIgcmVsYXRlZENoaWxkUHJvcGVydHkgPSAnbycgKyB0aGlzLnJlbGF0ZWRDaGlsZE5hbWU7XHJcblxyXG4gICAgaWYgKHRoaXMuY29uZmlnLnF1ZXJ5KVxyXG4gICAgICBxdWVyeSA9IHRoaXMuY29uZmlnLnF1ZXJ5KHF1ZXJ5LCByZWxhdGVkQ2hpbGRQcm9wZXJ0eSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHF1ZXJ5ID0gcXVlcnkuZXhwYW5kKCdvJyArIHRoaXMucmVsYXRlZENoaWxkTmFtZSk7XHJcblxyXG4gICAgLy9pZiAodGhpcy5wYXJlbnRRdWVyeSlcclxuICAgIC8vICBxdWVyeSA9IHF1ZXJpZXNbdGhpcy5wYXJlbnRRdWVyeV0ocXVlcnkpO1xyXG5cclxuICAgIHRoaXMuZGF0YUNvbnRleHQuZW50aXR5QWNjZXNzKCkuY3VzdG9tU2VhcmNoKHRoaXMubW9kZWxUeXBlTG9va3VwLmdldFR5cGUodGhpcy5wYXJlbnRUYWJsZU5hbWUpLCBxdWVyeSkuc3Vic2NyaWJlKChwYXJlbnRzKSA9PiB7XHJcbiAgICAgIC8vdGhpcy5jb25maWcuYWRkUGFyZW50c1RvRmlsdGVyKHBhcmVudHMpO1xyXG5cclxuICAgICAgZW1wdHlQYXJlbnRzID0gXy5maWx0ZXIocGFyZW50cywgKHBhcmVudCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc1VuZGVmaW5lZENoaWxkcmVuKHBhcmVudCkgfHwgdGhpcy5oYXNFbXB0eUNoaWxkcmVuKHBhcmVudCkgfHwgdGhpcy5oYXNJbmFjdGl2ZUNoaWxkcmVuKHBhcmVudCkpIHtcclxuICAgICAgICAgIGlmICghdGhpcy5oYXNBZGRlZFVuc2F2ZWRDaGlsZHJlbihuZXdFbnRpdGllcywgcGFyZW50LlJlZikpIHtcclxuICAgICAgICAgICAgcGFyZW50WydjYXJkcyddID0gW107XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgcXVlcnlhYmxlUGFyZW50UmVmcyA9IF8ucGx1Y2socGFyZW50cywgdGhpcy5rZXkpXHJcblxyXG4gICAgICBsZXQgaW5hY3RpdmVXaXRoUGFyZW50OiBBcnJheTxhbnk+ID0gW107XHJcbiAgICAgIGxldCBhY3RpdmVXaXRob3V0UGFyZW50OiBBcnJheTxhbnk+ID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHVuYXNzaWduZWQ6IHRydWUsXHJcbiAgICAgICAgICBjYXJkczogW11cclxuICAgICAgICB9XHJcbiAgICAgIF07XHJcblxyXG4gICAgICBwYXJlbnRzLmZvckVhY2goKHBhcmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgcGFyZW50WydjYXJkcyddID0gW107XHJcbiAgICAgICAgaWYgKHF1ZXJ5YWJsZVBhcmVudFJlZnMuaW5kZXhPZihwYXJlbnRbdGhpcy5rZXldKSAhPT0gLTEpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmxvY2tQcm9wZXJ0eSAhPT0gbnVsbCAmJiBwYXJlbnRbdGhpcy5sb2NrUHJvcGVydHldKSB7XHJcbiAgICAgICAgICAgIGxvY2tlZENvbHVtbnMucHVzaChwYXJlbnQpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmxvY2tQcm9wZXJ0eSAhPT0gbnVsbCAmJiAhcGFyZW50W3RoaXMubG9ja1Byb3BlcnR5XSAmJiAhXy5jb250YWlucyhlbXB0eVBhcmVudHMsIHBhcmVudCkpIHtcclxuICAgICAgICAgICAgY29sdW1ucy5wdXNoKHBhcmVudCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHBhcmVudFsnaW5hY3RpdmUnXSA9IHRydWU7XHJcbiAgICAgICAgICBpbmFjdGl2ZVdpdGhQYXJlbnQucHVzaChwYXJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBuZXdFbnRpdGllcy5mb3JFYWNoKChlbnRpdHkpID0+IHtcclxuICAgICAgICB2YXIgZW50aXR5UGFyZW50ID0gXy5maW5kKHBhcmVudHMsIChwKSA9PiB7XHJcbiAgICAgICAgICBpZiAoZW50aXR5WydvJyArIHRoaXMucmVsYXRlZFBhcmVudE5hbWVdKVxyXG4gICAgICAgICAgICByZXR1cm4gcC5SZWYgPT09IGVudGl0eVsnbycgKyB0aGlzLnJlbGF0ZWRQYXJlbnROYW1lXS5SZWY7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChlbnRpdHlQYXJlbnQpIHtcclxuICAgICAgICAgIGlmIChxdWVyeWFibGVQYXJlbnRSZWZzLmluZGV4T2YoZW50aXR5UGFyZW50W3RoaXMua2V5XSkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgIGVudGl0eVBhcmVudC5jYXJkcy5wdXNoKHRoaXMuY3JlYXRlRGF0YUZvckVudGl0eShlbnRpdHkpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGVudGl0eVBhcmVudC5jYXJkcy5wdXNoKHRoaXMuY3JlYXRlRGF0YUZvckVudGl0eShlbnRpdHkpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgIWVudGl0eVBhcmVudCAmJlxyXG4gICAgICAgICAgZW50aXR5WydvJyArIHRoaXMucmVsYXRlZFBhcmVudE5hbWVdICYmXHJcbiAgICAgICAgICBlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV0uUmVmID4gMCkge1xyXG4gICAgICAgICAgbGV0IGluYWN0aXZlUGFyZW50ID0gZW50aXR5WydvJyArIHRoaXMucmVsYXRlZFBhcmVudE5hbWVdO1xyXG4gICAgICAgICAgaWYgKGluYWN0aXZlV2l0aFBhcmVudC5pbmRleE9mKGluYWN0aXZlUGFyZW50KSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgaW5hY3RpdmVQYXJlbnRbJ2NhcmRzJ10gPSBbXTtcclxuICAgICAgICAgICAgaW5hY3RpdmVQYXJlbnRbJ2luYWN0aXZlJ10gPSB0cnVlO1xyXG4gICAgICAgICAgICBpbmFjdGl2ZVdpdGhQYXJlbnQucHVzaChpbmFjdGl2ZVBhcmVudCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpbmFjdGl2ZVBhcmVudC5jYXJkcy5wdXNoKHRoaXMuY3JlYXRlRGF0YUZvckVudGl0eShlbnRpdHkpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgYWN0aXZlV2l0aG91dFBhcmVudFswXS5jYXJkcy5wdXNoKHRoaXMuY3JlYXRlRGF0YUZvckVudGl0eShlbnRpdHkpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHRoaXMuY29sdW1uU29ydCkge1xyXG4gICAgICAgIHZhciBjb2x1bW5Tb3J0UGFydHMgPSBbJyddOyAvL3RoaXMuY29sdW1uU29ydC5zcGxpdCgnLycpO1xyXG5cclxuICAgICAgICBsb2NrZWRDb2x1bW5zID0gXy5zb3J0QnkobG9ja2VkQ29sdW1ucywgKG8pID0+IHtcclxuICAgICAgICAgIHZhciB2ID0gdGhpcy5nZXRWYWx1ZUZyb21Tb3J0UGF0aChbbywgY29sdW1uU29ydFBhcnRzXSk7XHJcbiAgICAgICAgICBpZiAodilcclxuICAgICAgICAgICAgcmV0dXJuIF8uaXNTdHJpbmcodikgPyB2LnRyaW0oKSA6IHY7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbHVtbnMgPSBfLnNvcnRCeShjb2x1bW5zLCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaW5hY3RpdmVXaXRoUGFyZW50ID0gXy5zb3J0QnkoaW5hY3RpdmVXaXRoUGFyZW50LCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZW1wdHlQYXJlbnRzID0gXy5zb3J0QnkoZW1wdHlQYXJlbnRzLCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcuY2FyZFNvcnQgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBsb2NrZWRDb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xyXG4gICAgICAgICAgY29sdW1uLmNhcmRzID0gdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmNhcmRTb3J0KGNvbHVtbi5jYXJkcyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgICBjb2x1bW4uY2FyZHMgPSB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuY2FyZFNvcnQoY29sdW1uLmNhcmRzKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaW5hY3RpdmVXaXRoUGFyZW50LmZvckVhY2goKGNvbHVtbikgPT4ge1xyXG4gICAgICAgICAgY29sdW1uLmNhcmRzID0gdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLmNhcmRTb3J0KGNvbHVtbi5jYXJkcyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGFjdGl2ZVdpdGhvdXRQYXJlbnQuZm9yRWFjaCgoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgICBjb2x1bW4uY2FyZHMgPSB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuY2FyZFNvcnQoY29sdW1uLmNhcmRzKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuaW5hY3RpdmVWaXNpYmxlKVxyXG4gICAgICAgIGNvbHVtbnMgPSBjb2x1bW5zLmNvbmNhdChpbmFjdGl2ZVdpdGhQYXJlbnQpO1xyXG5cclxuICAgICAgY29sdW1ucyA9IGNvbHVtbnMuY29uY2F0KGVtcHR5UGFyZW50cyk7XHJcblxyXG4gICAgICBpZiAodGhpcy51bmFzc2lnbmVkVmlzaWJsZSAmJiAhdGhpcy51bmFzc2lnbmVkTG9ja2VkKVxyXG4gICAgICAgIGNvbHVtbnMgPSBjb2x1bW5zLmNvbmNhdChhY3RpdmVXaXRob3V0UGFyZW50KTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnVuYXNzaWduZWRWaXNpYmxlICYmIHRoaXMudW5hc3NpZ25lZExvY2tlZClcclxuICAgICAgICBsb2NrZWRDb2x1bW5zID0gY29sdW1ucy5jb25jYXQobG9ja2VkQ29sdW1ucyk7XHJcblxyXG4gICAgICB0aGlzLmxvY2tlZENvbHVtbnMgPSBsb2NrZWRDb2x1bW5zO1xyXG4gICAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jbGVhcigpO1xyXG4gICAgICAgIG5ldyBDYXJkVmlldyh0aGlzLmxvY2tlZENvbHVtbnMsIHRoaXMuY29sdW1ucyk7XHJcblxyXG4gICAgICAgIGlmIChyZXZlcnQpIHtcclxuICAgICAgICAgIGxldCBjb2x1bW5FbGVtZW50ID0gdGhpcy5wb3J0YWwucXVlcnlTZWxlY3RvckFsbCgnLnRydS1jYXJkLXBvcnRhbC1jb2x1bW5zJylbMF07XHJcbiAgICAgICAgICBsZXQgcHJldmlvdXNTY3JvbGxQb3NpdGlvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzY3JvbGxfcG9zaXRpb24nICsgdXVpZHY0KCkpO1xyXG4gICAgICAgICAgY29sdW1uRWxlbWVudC5zY3JvbGxMZWZ0ID0gcHJldmlvdXNTY3JvbGxQb3NpdGlvbiA/ICtwcmV2aW91c1Njcm9sbFBvc2l0aW9uIDogMDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY2xhc3MgQ2FyZFZpZXcge1xyXG4gICAgICBjb25zdHJ1Y3Rvcihsb2NrZWRDb2x1bW5zOiBhbnksIGNvbHVtbnM6IGFueSkge1xyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhcmVudFRhYmxlTmFtZSA9IHRoaXMuY29uZmlnLnBhcmVudFRhYmxlTmFtZTtcclxuICAgIHRoaXMucGFyZW50VGFibGVQbHVyYWxMYWJlbCA9IHRoaXMuY29uZmlnLnBhcmVudFRhYmxlUGx1cmFsTGFiZWw7XHJcbiAgICB0aGlzLmNoaWxkVGFibGVOYW1lID0gdGhpcy5jb25maWcuY2hpbGRUYWJsZU5hbWU7XHJcbiAgICB0aGlzLmNoaWxkVGFibGVQbHVyYWxMYWJlbCA9IHRoaXMuY29uZmlnLmNoaWxkVGFibGVQbHVyYWxMYWJlbDtcclxuICAgIHRoaXMua2V5ID0gdGhpcy5jb25maWcua2V5O1xyXG4gICAgdGhpcy5wYXJlbnRRdWVyeSA9IG51bGxcclxuICAgIHRoaXMubG9ja1Byb3BlcnR5ID0gdGhpcy5jb25maWcubG9ja1Byb3BlcnR5O1xyXG4gICAgdGhpcy5jb2xvciA9IHRoaXMuY29uZmlnLmNvbG9yO1xyXG4gICAgdGhpcy51bmFzc2lnbmVkVmlzaWJsZSA9IHRoaXMuY29uZmlnLnVuYXNzaWduZWRWaXNpYmxlO1xyXG4gICAgdGhpcy51bmFzc2lnbmVkTmFtZSA9IHRoaXMuY29uZmlnLnVuYXNzaWduZWROYW1lO1xyXG4gICAgdGhpcy51bmFzc2lnbmVkTG9ja2VkID0gdGhpcy5jb25maWcudW5hc3NpZ25lZExvY2tlZDtcclxuICAgIHRoaXMudW5hc3NpZ25lZENvbG9yID0gdGhpcy5jb25maWcudW5hc3NpZ25lZENvbG9yO1xyXG4gICAgdGhpcy51bmFzc2lnbmVkRHJhZ2dhYmxlID0gdGhpcy5jb25maWcudW5hc3NpZ25lZERyYWdnYWJsZTtcclxuICAgIHRoaXMudW5hc3NpZ25lZERyb3BwYWJsZSA9IHRoaXMuY29uZmlnLnVuYXNzaWduZWREcm9wcGFibGU7XHJcblxyXG4gICAgdGhpcy5pbmFjdGl2ZVZpc2libGUgPSB0aGlzLmNvbmZpZy5pbmFjdGl2ZVZpc2libGU7XHJcbiAgICB0aGlzLmluYWN0aXZlRHJhZ2dhYmxlID0gdGhpcy5jb25maWcuaW5hY3RpdmVEcmFnZ2FibGU7XHJcbiAgICB0aGlzLmluYWN0aXZlRHJvcHBhYmxlID0gdGhpcy5jb25maWcuaW5hY3RpdmVEcm9wcGFibGU7XHJcblxyXG4gICAgdGhpcy5jb2x1bW5Tb3J0ID0gdGhpcy5jb25maWcuY29sdW1uU29ydDtcclxuICAgIHRoaXMuY2FyZFNvcnQgPSB0aGlzLmNvbmZpZy5jYXJkU29ydDtcclxuXHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLmtleS5sYXN0SW5kZXhPZih0aGlzLnBhcmVudFRhYmxlTmFtZSk7XHJcbiAgICBsZXQgcHJlZml4ID0gdGhpcy5rZXkuc3Vic3RyaW5nKGluZGV4LCAtMSk7XHJcbiAgICBpZiAocHJlZml4KSB7XHJcbiAgICAgIHRoaXMucmVsYXRlZFBhcmVudE5hbWUgPSBwcmVmaXggKyB0aGlzLnBhcmVudFRhYmxlTmFtZTtcclxuICAgICAgdGhpcy5yZWxhdGVkQ2hpbGROYW1lID0gcHJlZml4ICsgdGhpcy5jaGlsZFRhYmxlUGx1cmFsTGFiZWw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbGF0ZWRQYXJlbnROYW1lID0gdGhpcy5wYXJlbnRUYWJsZU5hbWU7XHJcbiAgICAgIHRoaXMucmVsYXRlZENoaWxkTmFtZSA9IHRoaXMuY2hpbGRUYWJsZVBsdXJhbExhYmVsO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudW5pcXVlSWQgPSB1dWlkdjQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRydS1jYXJkXCI+XHJcbiAgPGRpdiAqbmdJZj1cImlzQnVzeVwiXHJcbiAgICAgICBjbGFzcz1cInRydS1jYXJkLWJ1c3ktaW5kaWNhdG9yXCI+XHJcbiAgICA8cD5TZWFyY2hpbmcgZm9yIHt7Y29uZmlnLmNoaWxkVGFibGVQbHVyYWxMYWJlbH19Li4uPC9wPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJidXN5TWVzc2FnZVwiXHJcbiAgICAgICBjbGFzcz1cInRydS1jYXJkLWJ1c3ktaW5kaWNhdG9yXCI+XHJcbiAgICA8cD57e2J1c3lNZXNzYWdlfX08L3A+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLTx0cnUtdG9vbGJhciBbY29uZmlnXT1cImNvbmZpZy50b29sYmFyQ29uZmlnXCIgY2xhc3M9XCJtYWluLXRvb2xiYXJcIj48L3RydS10b29sYmFyPi0tPlxyXG4gIDxkaXYgY2xhc3M9XCJ0cnUtY2FyZC1wb3J0YWxcIj5cclxuICAgIDxkaXYgW25nU3R5bGVdPVwieyd3aWR0aCc6ICgoY29uZmlnLndpZHRoICogbG9ja2VkQ29sdW1ucy5sZW5ndGgpICsgKDEwICogbG9ja2VkQ29sdW1ucy5sZW5ndGggLSAxKSkgKyAncHgnIH1cIlxyXG4gICAgICAgICBbbmdDbGFzc109XCJ7J3RydS1jYXJkLXBvcnRhbC1sb2NrZWQtY29sdW1ucy1kaXZpZGVyJzogbG9ja2VkQ29sdW1ucy5sZW5ndGh9XCJcclxuICAgICAgICAgKm5nSWY9XCJsb2NrZWRDb2x1bW5zLmxlbmd0aFwiXHJcbiAgICAgICAgIGNsYXNzPVwidHJ1LWNhcmQtcG9ydGFsLWxvY2tlZC1jb2x1bW5zIGxvY2tlZC1jb2x1bW5zXCI+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IFtuZ1N0eWxlXT1cInsnbGVmdCc6IGxvY2tlZENvbHVtbnMubGVuZ3RoID8gKChjb25maWcud2lkdGggKiBsb2NrZWRDb2x1bW5zLmxlbmd0aCkgKyAoMTAgKiBsb2NrZWRDb2x1bW5zLmxlbmd0aCAtIDEpICsgMjIpICsgJ3B4JyA6IDAgfVwiXHJcbiAgICAgICAgIGNsYXNzPVwidHJ1LWNhcmQtcG9ydGFsLWNvbHVtbnMgdW5sb2NrZWQtY29sdW1uc1wiPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNhcmQtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtY29sdW1uL3RydS1jYXJkLWNvbHVtbi50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWNvbHVtbi90cnUtY2FyZC1jb2x1bW4uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxLQUFLLENBQUMsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUtwQyxPQUFPLEVBQWdCLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVFwRCxNQUFNLE9BQU8sYUFBYTtJQTJDZDtJQUNBO0lBQ0E7SUE1Q0QsTUFBTSxDQUF1QjtJQUM3QixJQUFJLENBQU87SUFFd0IsTUFBTSxDQUFrQjtJQUU1RCxlQUFlLENBQVU7SUFDekIsc0JBQXNCLENBQVU7SUFDaEMsY0FBYyxDQUFVO0lBQ3hCLHFCQUFxQixDQUFVO0lBQy9CLEdBQUcsQ0FBVTtJQUNiLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDbkIsWUFBWSxDQUFpQjtJQUM3QixLQUFLLENBQWlCO0lBQ3RCLGlCQUFpQixDQUFXO0lBQzVCLGNBQWMsQ0FBaUI7SUFDL0IsZ0JBQWdCLENBQVU7SUFDMUIsZUFBZSxDQUFpQjtJQUNoQyxtQkFBbUIsQ0FBVztJQUM5QixtQkFBbUIsQ0FBVztJQUU5QixlQUFlLENBQVc7SUFDMUIsaUJBQWlCLENBQVc7SUFDNUIsaUJBQWlCLENBQVc7SUFFNUIsVUFBVSxDQUFzQztJQUNoRCxRQUFRLENBQW9DO0lBRTVDLGlCQUFpQixDQUFVO0lBQzNCLGdCQUFnQixDQUFVO0lBQzFCLFlBQVksQ0FBTTtJQUNsQixhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ25CLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUN0QixhQUFhLENBQU07SUFDbkIsUUFBUSxDQUFVO0lBQ2xCLElBQUksR0FBd0IsRUFBRSxDQUFDO0lBRXZDLFdBQVcsR0FBVyxjQUFjLENBQUM7SUFDckMsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixPQUFPLEdBQVEsRUFBRSxDQUFDO0lBQ2xCLGFBQWEsR0FBUSxFQUFFLENBQUM7SUFFeEIsWUFDVSxXQUEyQixFQUMzQixlQUFtQyxFQUNuQyxzQkFBaUQ7UUFGakQsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLG9CQUFlLEdBQWYsZUFBZSxDQUFvQjtRQUNuQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQTJCO0lBQzNELENBQUM7SUFFTyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsQ0FBQSw0Q0FBNEM7SUFDcEUsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLENBQUMsOEJBQThCO0lBRTdELG1CQUFtQixHQUFHLENBQUMsTUFBcUIsRUFBRSxFQUFFO1FBQ3RELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRU0sb0JBQW9CLEdBQUcsQ0FBQyxNQUFxQixFQUFFLEVBQUU7UUFFdkQsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFtQyxDQUFDO1FBQzFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNyQyxDQUFDLENBQUE7SUFFTyxnQkFBZ0IsR0FBRyxDQUFDLE1BQXFCLEVBQUUsRUFBRTtRQUVuRCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQW1DLENBQUM7UUFDMUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxDQUFDLENBQUE7SUFFTyxtQkFBbUIsR0FBRyxDQUFDLE1BQXFCLEVBQUUsRUFBRTtRQUV0RCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQW1DLENBQUM7UUFDMUUsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDLENBQUE7SUFFTyx1QkFBdUIsR0FBRyxDQUFDLFFBQThCLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQ3RGLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFxQixFQUFFLEVBQUU7WUFFaEQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsR0FBc0IsQ0FBQztZQUN2RCxPQUFPLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLFNBQVMsQ0FBQTtRQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQTtJQUVPLEtBQUssR0FBRyxHQUFHLEVBQUU7UUFDbkIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUzRSxPQUFPLGFBQWEsSUFBSSxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7WUFBQyxhQUFhLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUFDLENBQUM7UUFBQSxDQUFDO1FBQ3pHLE9BQU8sZUFBZSxJQUFJLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUNoSCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7WUFBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQUMsQ0FBQztRQUFBLENBQUM7UUFDaEUscUNBQXFDO1FBQ3JDLDZCQUE2QjtJQUMvQixDQUFDLENBQUE7SUFFTyxvQkFBb0IsR0FBRyxDQUFDLElBQXFCLEVBQU8sRUFBRTtRQUM1RCxJQUFJLE9BQU8sR0FBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNoRCxJQUFJLFFBQWdCLENBQUM7WUFDckIsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsUUFBUSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsQ0FBQztZQUVELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLENBQUE7SUFFTyxpQkFBaUIsQ0FBQyxXQUF1QixFQUFFLE1BQWU7UUFDaEUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLE1BQU07WUFDVCxZQUFZLENBQUMsT0FBTyxDQUFDLGlCQUFpQixHQUFHLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRTFELElBQUksV0FBVyxDQUFDLE1BQU07WUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUM7UUFFcEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUUxQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxhQUFhLEdBQWUsRUFBRSxDQUFDO1FBQ25DLElBQUksWUFBWSxHQUFlLEVBQUUsQ0FBQztRQUNsQyxJQUFJLE9BQU8sR0FBZSxFQUFFLENBQUM7UUFFN0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFbkUsSUFBSSxvQkFBb0IsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBRXZELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ25CLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQUMsQ0FBQzs7WUFFdkQsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXBELHVCQUF1QjtRQUN2Qiw2Q0FBNkM7UUFFN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzVILDBDQUEwQztZQUUxQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDMUMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUMzRyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDM0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDckIsT0FBTyxJQUFJLENBQUM7b0JBQ2QsQ0FBQztnQkFDSCxDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUVwRCxJQUFJLGtCQUFrQixHQUFlLEVBQUUsQ0FBQztZQUN4QyxJQUFJLG1CQUFtQixHQUFlO2dCQUNwQztvQkFDRSxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsS0FBSyxFQUFFLEVBQUU7aUJBQ1Y7YUFDRixDQUFDO1lBRUYsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO2dCQUM5QixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixJQUFJLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDekQsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7d0JBQzVELGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzdCLENBQUM7eUJBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO3dCQUN6RyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN2QixDQUFDO2dCQUNILENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDO29CQUMxQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2xDLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDN0IsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDdkMsSUFBSSxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQzt3QkFDdEMsT0FBTyxDQUFDLENBQUMsR0FBRyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDO29CQUM1RCxPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLFlBQVksRUFBRSxDQUFDO29CQUNqQixJQUFJLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDL0QsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQzVELENBQUM7eUJBQU0sQ0FBQzt3QkFDTixZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDNUQsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLElBQ0wsQ0FBQyxZQUFZO29CQUNiLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO29CQUNwQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDL0MsSUFBSSxjQUFjLEdBQUcsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDMUQsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDdEQsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDN0IsY0FBYyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQzt3QkFDbEMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUMxQyxDQUFDO29CQUNELGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDdEUsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksZUFBZSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw2QkFBNkI7Z0JBRXpELGFBQWEsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUM1QyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztvQkFDeEQsSUFBSSxDQUFDO3dCQUNILE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7O3dCQUVwQyxPQUFPLElBQUksQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ2hDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO29CQUN4RCxJQUFJLENBQUM7d0JBQ0gsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7d0JBRXBDLE9BQU8sSUFBSSxDQUFDO2dCQUNoQixDQUFDLENBQUMsQ0FBQztnQkFDSCxrQkFBa0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ3RELElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO29CQUN4RCxJQUFJLENBQUM7d0JBQ0gsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7d0JBRXBDLE9BQU8sSUFBSSxDQUFDO2dCQUNoQixDQUFDLENBQUMsQ0FBQztnQkFDSCxZQUFZLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDMUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7b0JBQ3hELElBQUksQ0FBQzt3QkFDSCxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzt3QkFFcEMsT0FBTyxJQUFJLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDL0MsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUMvQixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pFLENBQUMsQ0FBQyxDQUFDO2dCQUVILE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDekIsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNqRSxDQUFDLENBQUMsQ0FBQztnQkFFSCxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDcEMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNqRSxDQUFDLENBQUMsQ0FBQztnQkFFSCxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDckMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNqRSxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxlQUFlO2dCQUN0QixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBRS9DLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRXZDLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQjtnQkFDbEQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUVoRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCO2dCQUNqRCxhQUFhLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUVoRCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztZQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUV2QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDYixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFL0MsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hGLElBQUksc0JBQXNCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUNoRixhQUFhLENBQUMsVUFBVSxHQUFHLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xGLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRO1lBQ1osWUFBWSxhQUFrQixFQUFFLE9BQVk7WUFFNUMsQ0FBQztTQUNGO0lBQ0gsQ0FBQztJQUVPLFdBQVcsR0FBRyxHQUFHLEVBQUU7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRTtZQUNoRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDLENBQUE7SUFFTyxRQUFRLEdBQUcsQ0FBQyxVQUFlLEVBQUUsRUFBRTtRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQztRQUNsQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFZixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUMvQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQ2pELFVBQVUsRUFDVixJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVoQixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3hCLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRTtnQkFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVDLENBQUM7WUFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN4QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFBO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFDbkQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUM7UUFDakUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUNqRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztRQUMvRCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUN2RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQ2pELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1FBQ3JELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFDbkQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUM7UUFDM0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUM7UUFFM0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUNuRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUN2RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUV2RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFFckMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDdkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7UUFDOUQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBQ3JELENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO3VHQXBXVSxhQUFhOzJGQUFiLGFBQWEseU1DaEIxQiw2Z0NBdUJBOzsyRkRQYSxhQUFhO2tCQUx6QixTQUFTOytCQUNFLGlCQUFpQjs0SkFLbEIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFc0MsTUFBTTtzQkFBakQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAndW5kZXJzY29yZSc7XHJcbmltcG9ydCB7IGJyZWV6ZSB9IGZyb20gJ2JyZWV6ZS1jbGllbnQnO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgVHJ1RGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtZGF0YS1jb250ZXh0JztcclxuaW1wb3J0IHsgVHJ1RW50aXR5QmFzZSB9IGZyb20gJy4uLy4uL2Jhc2UtY2xhc3Nlcy90cnUtZW50aXR5LWJhc2UnO1xyXG5pbXBvcnQgeyBUcnVNb2RlbFR5cGVMb29rdXAgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cnUtbW9kZWwtdHlwZS1sb29rdXAnO1xyXG5pbXBvcnQgeyBJVHJ1Q2FyZENvbHVtbkNvbmZpZyB9IGZyb20gJy4vY2xhc3Nlcy90cnUtY2FyZC1jb2x1bW4tY29uZmlnJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmb3JrSm9pbiwgc2tpcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcnVTZWFyY2hWaWV3RXZlbnRIYW5kbGVyIH0gZnJvbSAnLi4vLi4vYmFzZS12aWV3cy9zZWFyY2gvc2VydmljZXMvdHJ1LXNlYXJjaC12aWV3LWV2ZW50LWhhbmRsZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cnUtY2FyZC1jb2x1bW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cnUtY2FyZC1jb2x1bW4uaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJ1LWNhcmQtY29sdW1uLmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVDYXJkQ29sdW1uIHtcclxuICBASW5wdXQoKSBjb25maWchOiBJVHJ1Q2FyZENvbHVtbkNvbmZpZ1xyXG4gIEBJbnB1dCgpIG5hbWUhOiBhbnk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NhcmRQb3J0YWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgcG9ydGFsITogSFRNTERpdkVsZW1lbnQ7XHJcblxyXG4gIHByaXZhdGUgcGFyZW50VGFibGVOYW1lITogc3RyaW5nO1xyXG4gIHByaXZhdGUgcGFyZW50VGFibGVQbHVyYWxMYWJlbCE6IHN0cmluZztcclxuICBwcml2YXRlIGNoaWxkVGFibGVOYW1lITogc3RyaW5nO1xyXG4gIHByaXZhdGUgY2hpbGRUYWJsZVBsdXJhbExhYmVsITogc3RyaW5nO1xyXG4gIHByaXZhdGUga2V5ITogc3RyaW5nO1xyXG4gIHByaXZhdGUgcGFyZW50UXVlcnkgPSBudWxsO1xyXG4gIHByaXZhdGUgbG9ja1Byb3BlcnR5ITogc3RyaW5nIHwgbnVsbDtcclxuICBwcml2YXRlIGNvbG9yITogc3RyaW5nIHwgbnVsbDtcclxuICBwcml2YXRlIHVuYXNzaWduZWRWaXNpYmxlITogYm9vbGVhbjtcclxuICBwcml2YXRlIHVuYXNzaWduZWROYW1lITogc3RyaW5nIHwgbnVsbDtcclxuICBwcml2YXRlIHVuYXNzaWduZWRMb2NrZWQhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSB1bmFzc2lnbmVkQ29sb3IhOiBzdHJpbmcgfCBudWxsO1xyXG4gIHByaXZhdGUgdW5hc3NpZ25lZERyYWdnYWJsZSE6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSB1bmFzc2lnbmVkRHJvcHBhYmxlITogYm9vbGVhbjtcclxuXHJcbiAgcHJpdmF0ZSBpbmFjdGl2ZVZpc2libGUhOiBib29sZWFuO1xyXG4gIHByaXZhdGUgaW5hY3RpdmVEcmFnZ2FibGUhOiBib29sZWFuO1xyXG4gIHByaXZhdGUgaW5hY3RpdmVEcm9wcGFibGUhOiBib29sZWFuO1xyXG5cclxuICBwcml2YXRlIGNvbHVtblNvcnQ6ICgoY29sdW1uczogYW55KSA9PiBhbnkpIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgY2FyZFNvcnQ6ICgoY2FyZHM6IGFueSkgPT4gYW55KSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJpdmF0ZSByZWxhdGVkUGFyZW50TmFtZSE6IHN0cmluZztcclxuICBwcml2YXRlIHJlbGF0ZWRDaGlsZE5hbWUhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBpbnNlcnRCZWZvcmU6IGFueTtcclxuICBwcml2YXRlIHNlbGVjdGVkQ2FyZHMgPSBbXTtcclxuICBwcml2YXRlIGNvbHVtbkZpbHRlclJlZnMgPSBbXTtcclxuICBwcml2YXRlIGNhcmRGaWx0ZXJTdHI6IGFueTtcclxuICBwcml2YXRlIHVuaXF1ZUlkITogc3RyaW5nO1xyXG4gIHByaXZhdGUgc3ViczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xyXG5cclxuICBidXN5TWVzc2FnZTogc3RyaW5nID0gJ1JlbmRlcmluZy4uLic7XHJcbiAgaXNCdXN5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgY29sdW1uczogYW55ID0gW107XHJcbiAgbG9ja2VkQ29sdW1uczogYW55ID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkYXRhQ29udGV4dDogVHJ1RGF0YUNvbnRleHQsXHJcbiAgICBwcml2YXRlIG1vZGVsVHlwZUxvb2t1cDogVHJ1TW9kZWxUeXBlTG9va3VwLFxyXG4gICAgcHJpdmF0ZSBzZWFyY2hWaWV3RXZlbnRIYW5kbGVyOiBUcnVTZWFyY2hWaWV3RXZlbnRIYW5kbGVyKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcmVudFRhYmxlTW9kZWwgPSBudWxsOy8vZGF0YVNlcnZpY2UubW9kZWwudGFibGVzW3BhcmVudFRhYmxlTmFtZV07XHJcbiAgcHJpdmF0ZSB1c2VySGFzUGFyZW50VGFibGVSb2xlID0gbnVsbDsgLy9wYXJlbnRUYWJsZU1vZGVsLmNhbkRpc3BsYXk7XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRGF0YUZvckVudGl0eSA9IChlbnRpdHk6IFRydUVudGl0eUJhc2UpID0+IHtcclxuICAgIHZhciBkYXRhID0gdGhpcy5jb25maWcucmVzdWx0Q29uZmlnLnJvd0RhdGFFbmhhbmNlcigpO1xyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBoYXNVbmRlZmluZWRDaGlsZHJlbiA9IChlbnRpdHk6IFRydUVudGl0eUJhc2UpID0+IHtcclxuICAgIHR5cGUgRW50aXR5T2JqZWN0S2V5ID0ga2V5b2YgdHlwZW9mIGVudGl0eTtcclxuICAgIGNvbnN0IGVudGl0eVByb3BlcnR5TmFtZSA9ICdvJyArIHRoaXMucmVsYXRlZENoaWxkTmFtZSBhcyBFbnRpdHlPYmplY3RLZXk7XHJcbiAgICByZXR1cm4gIWVudGl0eVtlbnRpdHlQcm9wZXJ0eU5hbWVdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNFbXB0eUNoaWxkcmVuID0gKGVudGl0eTogVHJ1RW50aXR5QmFzZSkgPT4ge1xyXG4gICAgdHlwZSBFbnRpdHlPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgZW50aXR5O1xyXG4gICAgY29uc3QgZW50aXR5UHJvcGVydHlOYW1lID0gJ28nICsgdGhpcy5yZWxhdGVkQ2hpbGROYW1lIGFzIEVudGl0eU9iamVjdEtleTtcclxuICAgIHJldHVybiAhZW50aXR5W2VudGl0eVByb3BlcnR5TmFtZV0ubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNJbmFjdGl2ZUNoaWxkcmVuID0gKGVudGl0eTogVHJ1RW50aXR5QmFzZSkgPT4ge1xyXG4gICAgdHlwZSBFbnRpdHlPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgZW50aXR5O1xyXG4gICAgY29uc3QgZW50aXR5UHJvcGVydHlOYW1lID0gJ28nICsgdGhpcy5yZWxhdGVkQ2hpbGROYW1lIGFzIEVudGl0eU9iamVjdEtleTtcclxuICAgIHJldHVybiBfLmV2ZXJ5KFtlbnRpdHlQcm9wZXJ0eU5hbWVdLCAoY2hpbGQ6IGFueSkgPT4geyByZXR1cm4gIWNoaWxkLmFjdGl2ZTsgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc0FkZGVkVW5zYXZlZENoaWxkcmVuID0gKGVudGl0aWVzOiBBcnJheTxUcnVFbnRpdHlCYXNlPiwgcGFyZW50UmVmOiBudW1iZXIpID0+IHtcclxuICAgIHJldHVybiBfLnNvbWUoZW50aXRpZXMsIChlbnRpdHk6IFRydUVudGl0eUJhc2UpID0+IHtcclxuICAgICAgdHlwZSBFbnRpdHlPYmplY3RLZXkgPSBrZXlvZiB0eXBlb2YgZW50aXR5O1xyXG4gICAgICBjb25zdCBlbnRpdHlQcm9wZXJ0eU5hbWUgPSB0aGlzLmtleSBhcyBFbnRpdHlPYmplY3RLZXk7XHJcbiAgICAgIHJldHVybiBlbnRpdHlbZW50aXR5UHJvcGVydHlOYW1lXSA9PT0gcGFyZW50UmVmXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXIgPSAoKSA9PiB7XHJcbiAgICB2YXIgbG9ja2VkQ29sdW1ucyA9IHRoaXMucG9ydGFsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5sb2NrZWQtY29sdW1ucycpWzBdO1xyXG4gICAgdmFyIHVubG9ja2VkQ29sdW1ucyA9IHRoaXMucG9ydGFsLnF1ZXJ5U2VsZWN0b3JBbGwoJy51bmxvY2tlZC1jb2x1bW5zJylbMF07XHJcblxyXG4gICAgd2hpbGUgKGxvY2tlZENvbHVtbnMgJiYgbG9ja2VkQ29sdW1ucy5sYXN0Q2hpbGQpIHsgbG9ja2VkQ29sdW1ucy5yZW1vdmVDaGlsZChsb2NrZWRDb2x1bW5zLmxhc3RDaGlsZCk7IH07XHJcbiAgICB3aGlsZSAodW5sb2NrZWRDb2x1bW5zICYmIHVubG9ja2VkQ29sdW1ucy5sYXN0Q2hpbGQpIHsgdW5sb2NrZWRDb2x1bW5zLnJlbW92ZUNoaWxkKHVubG9ja2VkQ29sdW1ucy5sYXN0Q2hpbGQpOyB9XHJcbiAgICB3aGlsZSAodGhpcy5zZWxlY3RlZENhcmRzLmxlbmd0aCkgeyB0aGlzLnNlbGVjdGVkQ2FyZHMucG9wKCk7IH07XHJcbiAgICAvL3RoaXMuY29uZmlnLm9uU2VsZWN0aW9uQ2hhbmdlZChbXSk7XHJcbiAgICAvL3RoaXMuY29uZmlnLmNsZWFyRmlsdGVycygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRWYWx1ZUZyb21Tb3J0UGF0aCA9IChhcmdzOiBbYW55LCBzdHJpbmdbXV0pOiBhbnkgPT4ge1xyXG4gICAgbGV0IGN1cnJlbnQ6IGFueSA9IGFyZ3NbMF07XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgYXJnc1sxXS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgcGFydE5hbWU6IHN0cmluZztcclxuICAgICAgaWYgKGkgIT09IGFyZ3NbMV0ubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIHBhcnROYW1lID0gJ28nICsgYXJnc1sxXVtpXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJ0TmFtZSA9IGFyZ3NbMV1baV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjdXJyZW50W3BhcnROYW1lXSkge1xyXG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W3BhcnROYW1lXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGN1cnJlbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUl0ZW1zU291cmNlKG5ld0VudGl0aWVzOiBBcnJheTxhbnk+LCByZXZlcnQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIGlmICghcmV2ZXJ0KVxyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2Nyb2xsX3Bvc2l0aW9uJyArIHV1aWR2NCgpLCAnMCcpO1xyXG5cclxuICAgIGlmIChuZXdFbnRpdGllcy5sZW5ndGgpXHJcbiAgICAgIHRoaXMuYnVzeU1lc3NhZ2UgPSAnUmVuZGVyaW5nLi4uJztcclxuXHJcbiAgICB0aGlzLmNvbHVtbkZpbHRlclJlZnMgPSBbXTtcclxuICAgIHRoaXMuY2FyZEZpbHRlclN0ciA9IG51bGw7XHJcblxyXG4gICAgaWYgKCFuZXdFbnRpdGllcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5sb2NrZWRDb2x1bW5zID0gW107XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IFtdO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGxvY2tlZENvbHVtbnM6IEFycmF5PGFueT4gPSBbXTtcclxuICAgIGxldCBlbXB0eVBhcmVudHM6IEFycmF5PGFueT4gPSBbXTtcclxuICAgIGxldCBjb2x1bW5zOiBBcnJheTxhbnk+ID0gW107XHJcblxyXG4gICAgbGV0IHF1ZXJ5ID0gbmV3IGJyZWV6ZS5FbnRpdHlRdWVyeSgnUXVlcnknICsgdGhpcy5wYXJlbnRUYWJsZU5hbWUpO1xyXG5cclxuICAgIHZhciByZWxhdGVkQ2hpbGRQcm9wZXJ0eSA9ICdvJyArIHRoaXMucmVsYXRlZENoaWxkTmFtZTtcclxuXHJcbiAgICBpZiAodGhpcy5jb25maWcucXVlcnkpXHJcbiAgICAgIHF1ZXJ5ID0gdGhpcy5jb25maWcucXVlcnkocXVlcnksIHJlbGF0ZWRDaGlsZFByb3BlcnR5KTtcclxuICAgIGVsc2VcclxuICAgICAgcXVlcnkgPSBxdWVyeS5leHBhbmQoJ28nICsgdGhpcy5yZWxhdGVkQ2hpbGROYW1lKTtcclxuXHJcbiAgICAvL2lmICh0aGlzLnBhcmVudFF1ZXJ5KVxyXG4gICAgLy8gIHF1ZXJ5ID0gcXVlcmllc1t0aGlzLnBhcmVudFF1ZXJ5XShxdWVyeSk7XHJcblxyXG4gICAgdGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5jdXN0b21TZWFyY2godGhpcy5tb2RlbFR5cGVMb29rdXAuZ2V0VHlwZSh0aGlzLnBhcmVudFRhYmxlTmFtZSksIHF1ZXJ5KS5zdWJzY3JpYmUoKHBhcmVudHMpID0+IHtcclxuICAgICAgLy90aGlzLmNvbmZpZy5hZGRQYXJlbnRzVG9GaWx0ZXIocGFyZW50cyk7XHJcblxyXG4gICAgICBlbXB0eVBhcmVudHMgPSBfLmZpbHRlcihwYXJlbnRzLCAocGFyZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuaGFzVW5kZWZpbmVkQ2hpbGRyZW4ocGFyZW50KSB8fCB0aGlzLmhhc0VtcHR5Q2hpbGRyZW4ocGFyZW50KSB8fCB0aGlzLmhhc0luYWN0aXZlQ2hpbGRyZW4ocGFyZW50KSkge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmhhc0FkZGVkVW5zYXZlZENoaWxkcmVuKG5ld0VudGl0aWVzLCBwYXJlbnQuUmVmKSkge1xyXG4gICAgICAgICAgICBwYXJlbnRbJ2NhcmRzJ10gPSBbXTtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBxdWVyeWFibGVQYXJlbnRSZWZzID0gXy5wbHVjayhwYXJlbnRzLCB0aGlzLmtleSlcclxuXHJcbiAgICAgIGxldCBpbmFjdGl2ZVdpdGhQYXJlbnQ6IEFycmF5PGFueT4gPSBbXTtcclxuICAgICAgbGV0IGFjdGl2ZVdpdGhvdXRQYXJlbnQ6IEFycmF5PGFueT4gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdW5hc3NpZ25lZDogdHJ1ZSxcclxuICAgICAgICAgIGNhcmRzOiBbXVxyXG4gICAgICAgIH1cclxuICAgICAgXTtcclxuXHJcbiAgICAgIHBhcmVudHMuZm9yRWFjaCgocGFyZW50OiBhbnkpID0+IHtcclxuICAgICAgICBwYXJlbnRbJ2NhcmRzJ10gPSBbXTtcclxuICAgICAgICBpZiAocXVlcnlhYmxlUGFyZW50UmVmcy5pbmRleE9mKHBhcmVudFt0aGlzLmtleV0pICE9PSAtMSkge1xyXG4gICAgICAgICAgaWYgKHRoaXMubG9ja1Byb3BlcnR5ICE9PSBudWxsICYmIHBhcmVudFt0aGlzLmxvY2tQcm9wZXJ0eV0pIHtcclxuICAgICAgICAgICAgbG9ja2VkQ29sdW1ucy5wdXNoKHBhcmVudCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubG9ja1Byb3BlcnR5ICE9PSBudWxsICYmICFwYXJlbnRbdGhpcy5sb2NrUHJvcGVydHldICYmICFfLmNvbnRhaW5zKGVtcHR5UGFyZW50cywgcGFyZW50KSkge1xyXG4gICAgICAgICAgICBjb2x1bW5zLnB1c2gocGFyZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcGFyZW50WydpbmFjdGl2ZSddID0gdHJ1ZTtcclxuICAgICAgICAgIGluYWN0aXZlV2l0aFBhcmVudC5wdXNoKHBhcmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIG5ld0VudGl0aWVzLmZvckVhY2goKGVudGl0eSkgPT4ge1xyXG4gICAgICAgIHZhciBlbnRpdHlQYXJlbnQgPSBfLmZpbmQocGFyZW50cywgKHApID0+IHtcclxuICAgICAgICAgIGlmIChlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV0pXHJcbiAgICAgICAgICAgIHJldHVybiBwLlJlZiA9PT0gZW50aXR5WydvJyArIHRoaXMucmVsYXRlZFBhcmVudE5hbWVdLlJlZjtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGVudGl0eVBhcmVudCkge1xyXG4gICAgICAgICAgaWYgKHF1ZXJ5YWJsZVBhcmVudFJlZnMuaW5kZXhPZihlbnRpdHlQYXJlbnRbdGhpcy5rZXldKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgZW50aXR5UGFyZW50LmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZW50aXR5UGFyZW50LmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICAhZW50aXR5UGFyZW50ICYmXHJcbiAgICAgICAgICBlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV0gJiZcclxuICAgICAgICAgIGVudGl0eVsnbycgKyB0aGlzLnJlbGF0ZWRQYXJlbnROYW1lXS5SZWYgPiAwKSB7XHJcbiAgICAgICAgICBsZXQgaW5hY3RpdmVQYXJlbnQgPSBlbnRpdHlbJ28nICsgdGhpcy5yZWxhdGVkUGFyZW50TmFtZV07XHJcbiAgICAgICAgICBpZiAoaW5hY3RpdmVXaXRoUGFyZW50LmluZGV4T2YoaW5hY3RpdmVQYXJlbnQpID09PSAtMSkge1xyXG4gICAgICAgICAgICBpbmFjdGl2ZVBhcmVudFsnY2FyZHMnXSA9IFtdO1xyXG4gICAgICAgICAgICBpbmFjdGl2ZVBhcmVudFsnaW5hY3RpdmUnXSA9IHRydWU7XHJcbiAgICAgICAgICAgIGluYWN0aXZlV2l0aFBhcmVudC5wdXNoKGluYWN0aXZlUGFyZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGluYWN0aXZlUGFyZW50LmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhY3RpdmVXaXRob3V0UGFyZW50WzBdLmNhcmRzLnB1c2godGhpcy5jcmVhdGVEYXRhRm9yRW50aXR5KGVudGl0eSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5jb2x1bW5Tb3J0KSB7XHJcbiAgICAgICAgdmFyIGNvbHVtblNvcnRQYXJ0cyA9IFsnJ107IC8vdGhpcy5jb2x1bW5Tb3J0LnNwbGl0KCcvJyk7XHJcblxyXG4gICAgICAgIGxvY2tlZENvbHVtbnMgPSBfLnNvcnRCeShsb2NrZWRDb2x1bW5zLCAobykgPT4ge1xyXG4gICAgICAgICAgdmFyIHYgPSB0aGlzLmdldFZhbHVlRnJvbVNvcnRQYXRoKFtvLCBjb2x1bW5Tb3J0UGFydHNdKTtcclxuICAgICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgICByZXR1cm4gXy5pc1N0cmluZyh2KSA/IHYudHJpbSgpIDogdjtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29sdW1ucyA9IF8uc29ydEJ5KGNvbHVtbnMsIChvKSA9PiB7XHJcbiAgICAgICAgICB2YXIgdiA9IHRoaXMuZ2V0VmFsdWVGcm9tU29ydFBhdGgoW28sIGNvbHVtblNvcnRQYXJ0c10pO1xyXG4gICAgICAgICAgaWYgKHYpXHJcbiAgICAgICAgICAgIHJldHVybiBfLmlzU3RyaW5nKHYpID8gdi50cmltKCkgOiB2O1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpbmFjdGl2ZVdpdGhQYXJlbnQgPSBfLnNvcnRCeShpbmFjdGl2ZVdpdGhQYXJlbnQsIChvKSA9PiB7XHJcbiAgICAgICAgICB2YXIgdiA9IHRoaXMuZ2V0VmFsdWVGcm9tU29ydFBhdGgoW28sIGNvbHVtblNvcnRQYXJ0c10pO1xyXG4gICAgICAgICAgaWYgKHYpXHJcbiAgICAgICAgICAgIHJldHVybiBfLmlzU3RyaW5nKHYpID8gdi50cmltKCkgOiB2O1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBlbXB0eVBhcmVudHMgPSBfLnNvcnRCeShlbXB0eVBhcmVudHMsIChvKSA9PiB7XHJcbiAgICAgICAgICB2YXIgdiA9IHRoaXMuZ2V0VmFsdWVGcm9tU29ydFBhdGgoW28sIGNvbHVtblNvcnRQYXJ0c10pO1xyXG4gICAgICAgICAgaWYgKHYpXHJcbiAgICAgICAgICAgIHJldHVybiBfLmlzU3RyaW5nKHYpID8gdi50cmltKCkgOiB2O1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy5jYXJkU29ydCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIGxvY2tlZENvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgICBjb2x1bW4uY2FyZHMgPSB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuY2FyZFNvcnQoY29sdW1uLmNhcmRzKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgICAgIGNvbHVtbi5jYXJkcyA9IHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5jYXJkU29ydChjb2x1bW4uY2FyZHMpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpbmFjdGl2ZVdpdGhQYXJlbnQuZm9yRWFjaCgoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgICBjb2x1bW4uY2FyZHMgPSB0aGlzLmNvbmZpZy5yZXN1bHRDb25maWcuY2FyZFNvcnQoY29sdW1uLmNhcmRzKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgYWN0aXZlV2l0aG91dFBhcmVudC5mb3JFYWNoKChjb2x1bW4pID0+IHtcclxuICAgICAgICAgIGNvbHVtbi5jYXJkcyA9IHRoaXMuY29uZmlnLnJlc3VsdENvbmZpZy5jYXJkU29ydChjb2x1bW4uY2FyZHMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5pbmFjdGl2ZVZpc2libGUpXHJcbiAgICAgICAgY29sdW1ucyA9IGNvbHVtbnMuY29uY2F0KGluYWN0aXZlV2l0aFBhcmVudCk7XHJcblxyXG4gICAgICBjb2x1bW5zID0gY29sdW1ucy5jb25jYXQoZW1wdHlQYXJlbnRzKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnVuYXNzaWduZWRWaXNpYmxlICYmICF0aGlzLnVuYXNzaWduZWRMb2NrZWQpXHJcbiAgICAgICAgY29sdW1ucyA9IGNvbHVtbnMuY29uY2F0KGFjdGl2ZVdpdGhvdXRQYXJlbnQpO1xyXG5cclxuICAgICAgaWYgKHRoaXMudW5hc3NpZ25lZFZpc2libGUgJiYgdGhpcy51bmFzc2lnbmVkTG9ja2VkKVxyXG4gICAgICAgIGxvY2tlZENvbHVtbnMgPSBjb2x1bW5zLmNvbmNhdChsb2NrZWRDb2x1bW5zKTtcclxuXHJcbiAgICAgIHRoaXMubG9ja2VkQ29sdW1ucyA9IGxvY2tlZENvbHVtbnM7XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICAgICAgbmV3IENhcmRWaWV3KHRoaXMubG9ja2VkQ29sdW1ucywgdGhpcy5jb2x1bW5zKTtcclxuXHJcbiAgICAgICAgaWYgKHJldmVydCkge1xyXG4gICAgICAgICAgbGV0IGNvbHVtbkVsZW1lbnQgPSB0aGlzLnBvcnRhbC5xdWVyeVNlbGVjdG9yQWxsKCcudHJ1LWNhcmQtcG9ydGFsLWNvbHVtbnMnKVswXTtcclxuICAgICAgICAgIGxldCBwcmV2aW91c1Njcm9sbFBvc2l0aW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Njcm9sbF9wb3NpdGlvbicgKyB1dWlkdjQoKSk7XHJcbiAgICAgICAgICBjb2x1bW5FbGVtZW50LnNjcm9sbExlZnQgPSBwcmV2aW91c1Njcm9sbFBvc2l0aW9uID8gK3ByZXZpb3VzU2Nyb2xsUG9zaXRpb24gOiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjbGFzcyBDYXJkVmlldyB7XHJcbiAgICAgIGNvbnN0cnVjdG9yKGxvY2tlZENvbHVtbnM6IGFueSwgY29sdW1uczogYW55KSB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNjcmliZVRvID0gKCkgPT4ge1xyXG4gICAgdGhpcy5zdWJzLnB1c2godGhpcy5zZWFyY2hWaWV3RXZlbnRIYW5kbGVyLm9uU2VhcmNoKCkucGlwZShza2lwKDEpKS5zdWJzY3JpYmUoKHNldHVwUXVlcnk6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLm9uU2VhcmNoKHNldHVwUXVlcnkpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblNlYXJjaCA9IChzZXR1cFF1ZXJ5OiBhbnkpID0+IHtcclxuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcclxuICAgIHRoaXMuYnVzeU1lc3NhZ2UgPSAnU2VhcmNoaW5nLi4uJztcclxuICAgIGxldCBqb2lucyA9IFtdO1xyXG5cclxuICAgIGpvaW5zLnB1c2godGhpcy5kYXRhQ29udGV4dC5lbnRpdHlBY2Nlc3MoKS5zZWFyY2goXHJcbiAgICAgIHRoaXMubW9kZWxUeXBlTG9va3VwLmdldFR5cGUodGhpcy5jaGlsZFRhYmxlTmFtZSksXHJcbiAgICAgIHNldHVwUXVlcnksXHJcbiAgICAgIG51bGwsIGZhbHNlKSk7XHJcblxyXG4gICAgZm9ya0pvaW4oam9pbnMpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHJlc3VsdHMgPT4ge1xyXG4gICAgICAgIHRoaXMudXBkYXRlSXRlbXNTb3VyY2UocmVzdWx0c1swXSwgZmFsc2UpO1xyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5idXN5TWVzc2FnZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5wYXJlbnRUYWJsZU5hbWUgPSB0aGlzLmNvbmZpZy5wYXJlbnRUYWJsZU5hbWU7XHJcbiAgICB0aGlzLnBhcmVudFRhYmxlUGx1cmFsTGFiZWwgPSB0aGlzLmNvbmZpZy5wYXJlbnRUYWJsZVBsdXJhbExhYmVsO1xyXG4gICAgdGhpcy5jaGlsZFRhYmxlTmFtZSA9IHRoaXMuY29uZmlnLmNoaWxkVGFibGVOYW1lO1xyXG4gICAgdGhpcy5jaGlsZFRhYmxlUGx1cmFsTGFiZWwgPSB0aGlzLmNvbmZpZy5jaGlsZFRhYmxlUGx1cmFsTGFiZWw7XHJcbiAgICB0aGlzLmtleSA9IHRoaXMuY29uZmlnLmtleTtcclxuICAgIHRoaXMucGFyZW50UXVlcnkgPSBudWxsXHJcbiAgICB0aGlzLmxvY2tQcm9wZXJ0eSA9IHRoaXMuY29uZmlnLmxvY2tQcm9wZXJ0eTtcclxuICAgIHRoaXMuY29sb3IgPSB0aGlzLmNvbmZpZy5jb2xvcjtcclxuICAgIHRoaXMudW5hc3NpZ25lZFZpc2libGUgPSB0aGlzLmNvbmZpZy51bmFzc2lnbmVkVmlzaWJsZTtcclxuICAgIHRoaXMudW5hc3NpZ25lZE5hbWUgPSB0aGlzLmNvbmZpZy51bmFzc2lnbmVkTmFtZTtcclxuICAgIHRoaXMudW5hc3NpZ25lZExvY2tlZCA9IHRoaXMuY29uZmlnLnVuYXNzaWduZWRMb2NrZWQ7XHJcbiAgICB0aGlzLnVuYXNzaWduZWRDb2xvciA9IHRoaXMuY29uZmlnLnVuYXNzaWduZWRDb2xvcjtcclxuICAgIHRoaXMudW5hc3NpZ25lZERyYWdnYWJsZSA9IHRoaXMuY29uZmlnLnVuYXNzaWduZWREcmFnZ2FibGU7XHJcbiAgICB0aGlzLnVuYXNzaWduZWREcm9wcGFibGUgPSB0aGlzLmNvbmZpZy51bmFzc2lnbmVkRHJvcHBhYmxlO1xyXG5cclxuICAgIHRoaXMuaW5hY3RpdmVWaXNpYmxlID0gdGhpcy5jb25maWcuaW5hY3RpdmVWaXNpYmxlO1xyXG4gICAgdGhpcy5pbmFjdGl2ZURyYWdnYWJsZSA9IHRoaXMuY29uZmlnLmluYWN0aXZlRHJhZ2dhYmxlO1xyXG4gICAgdGhpcy5pbmFjdGl2ZURyb3BwYWJsZSA9IHRoaXMuY29uZmlnLmluYWN0aXZlRHJvcHBhYmxlO1xyXG5cclxuICAgIHRoaXMuY29sdW1uU29ydCA9IHRoaXMuY29uZmlnLmNvbHVtblNvcnQ7XHJcbiAgICB0aGlzLmNhcmRTb3J0ID0gdGhpcy5jb25maWcuY2FyZFNvcnQ7XHJcblxyXG4gICAgbGV0IGluZGV4ID0gdGhpcy5rZXkubGFzdEluZGV4T2YodGhpcy5wYXJlbnRUYWJsZU5hbWUpO1xyXG4gICAgbGV0IHByZWZpeCA9IHRoaXMua2V5LnN1YnN0cmluZyhpbmRleCwgLTEpO1xyXG4gICAgaWYgKHByZWZpeCkge1xyXG4gICAgICB0aGlzLnJlbGF0ZWRQYXJlbnROYW1lID0gcHJlZml4ICsgdGhpcy5wYXJlbnRUYWJsZU5hbWU7XHJcbiAgICAgIHRoaXMucmVsYXRlZENoaWxkTmFtZSA9IHByZWZpeCArIHRoaXMuY2hpbGRUYWJsZVBsdXJhbExhYmVsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZWxhdGVkUGFyZW50TmFtZSA9IHRoaXMucGFyZW50VGFibGVOYW1lO1xyXG4gICAgICB0aGlzLnJlbGF0ZWRDaGlsZE5hbWUgPSB0aGlzLmNoaWxkVGFibGVQbHVyYWxMYWJlbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVuaXF1ZUlkID0gdXVpZHY0KCk7XHJcbiAgICB0aGlzLnN1YnNjcmliZVRvKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0cnUtY2FyZFwiPlxyXG4gIDxkaXYgKm5nSWY9XCJpc0J1c3lcIlxyXG4gICAgICAgY2xhc3M9XCJ0cnUtY2FyZC1idXN5LWluZGljYXRvclwiPlxyXG4gICAgPHA+U2VhcmNoaW5nIGZvciB7e2NvbmZpZy5jaGlsZFRhYmxlUGx1cmFsTGFiZWx9fS4uLjwvcD5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiYnVzeU1lc3NhZ2VcIlxyXG4gICAgICAgY2xhc3M9XCJ0cnUtY2FyZC1idXN5LWluZGljYXRvclwiPlxyXG4gICAgPHA+e3tidXN5TWVzc2FnZX19PC9wPlxyXG4gIDwvZGl2PlxyXG4gIDwhLS08dHJ1LXRvb2xiYXIgW2NvbmZpZ109XCJjb25maWcudG9vbGJhckNvbmZpZ1wiIGNsYXNzPVwibWFpbi10b29sYmFyXCI+PC90cnUtdG9vbGJhcj4tLT5cclxuICA8ZGl2IGNsYXNzPVwidHJ1LWNhcmQtcG9ydGFsXCIgI2NhcmRQb3J0YWw+XHJcbiAgICA8ZGl2IFtuZ1N0eWxlXT1cInsnd2lkdGgnOiAoKGNvbmZpZy53aWR0aCAqIGxvY2tlZENvbHVtbnMubGVuZ3RoKSArICgxMCAqIGxvY2tlZENvbHVtbnMubGVuZ3RoIC0gMSkpICsgJ3B4JyB9XCJcclxuICAgICAgICAgW25nQ2xhc3NdPVwieyd0cnUtY2FyZC1wb3J0YWwtbG9ja2VkLWNvbHVtbnMtZGl2aWRlcic6IGxvY2tlZENvbHVtbnMubGVuZ3RofVwiXHJcbiAgICAgICAgICpuZ0lmPVwibG9ja2VkQ29sdW1ucy5sZW5ndGhcIlxyXG4gICAgICAgICBjbGFzcz1cInRydS1jYXJkLXBvcnRhbC1sb2NrZWQtY29sdW1ucyBsb2NrZWQtY29sdW1uc1wiPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBbbmdTdHlsZV09XCJ7J2xlZnQnOiBsb2NrZWRDb2x1bW5zLmxlbmd0aCA/ICgoY29uZmlnLndpZHRoICogbG9ja2VkQ29sdW1ucy5sZW5ndGgpICsgKDEwICogbG9ja2VkQ29sdW1ucy5sZW5ndGggLSAxKSArIDIyKSArICdweCcgOiAwIH1cIlxyXG4gICAgICAgICBjbGFzcz1cInRydS1jYXJkLXBvcnRhbC1jb2x1bW5zIHVubG9ja2VkLWNvbHVtbnNcIj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -2630,6 +2630,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
2630
2630
|
class TruCardColumn {
|
|
2631
2631
|
dataContext;
|
|
2632
2632
|
modelTypeLookup;
|
|
2633
|
+
searchViewEventHandler;
|
|
2633
2634
|
config;
|
|
2634
2635
|
name;
|
|
2635
2636
|
portal;
|
|
@@ -2659,13 +2660,15 @@ class TruCardColumn {
|
|
|
2659
2660
|
columnFilterRefs = [];
|
|
2660
2661
|
cardFilterStr;
|
|
2661
2662
|
uniqueId;
|
|
2663
|
+
subs = [];
|
|
2662
2664
|
busyMessage = 'Rendering...';
|
|
2663
2665
|
isBusy = false;
|
|
2664
2666
|
columns = [];
|
|
2665
2667
|
lockedColumns = [];
|
|
2666
|
-
constructor(dataContext, modelTypeLookup) {
|
|
2668
|
+
constructor(dataContext, modelTypeLookup, searchViewEventHandler) {
|
|
2667
2669
|
this.dataContext = dataContext;
|
|
2668
2670
|
this.modelTypeLookup = modelTypeLookup;
|
|
2671
|
+
this.searchViewEventHandler = searchViewEventHandler;
|
|
2669
2672
|
}
|
|
2670
2673
|
parentTableModel = null; //dataService.model.tables[parentTableName];
|
|
2671
2674
|
userHasParentTableRole = null; //parentTableModel.canDisplay;
|
|
@@ -2883,6 +2886,26 @@ class TruCardColumn {
|
|
|
2883
2886
|
}
|
|
2884
2887
|
}
|
|
2885
2888
|
}
|
|
2889
|
+
subscribeTo = () => {
|
|
2890
|
+
this.subs.push(this.searchViewEventHandler.onSearch().pipe(skip(1)).subscribe((setupQuery) => {
|
|
2891
|
+
this.onSearch(setupQuery);
|
|
2892
|
+
}));
|
|
2893
|
+
};
|
|
2894
|
+
onSearch = (setupQuery) => {
|
|
2895
|
+
this.isBusy = true;
|
|
2896
|
+
this.busyMessage = 'Searching...';
|
|
2897
|
+
let joins = [];
|
|
2898
|
+
joins.push(this.dataContext.entityAccess().search(this.modelTypeLookup.getType(this.childTableName), setupQuery, null, false));
|
|
2899
|
+
forkJoin(joins).subscribe({
|
|
2900
|
+
next: results => {
|
|
2901
|
+
this.updateItemsSource(results[0], false);
|
|
2902
|
+
},
|
|
2903
|
+
complete: () => {
|
|
2904
|
+
this.isBusy = false;
|
|
2905
|
+
this.busyMessage = '';
|
|
2906
|
+
}
|
|
2907
|
+
});
|
|
2908
|
+
};
|
|
2886
2909
|
ngOnInit() {
|
|
2887
2910
|
this.parentTableName = this.config.parentTableName;
|
|
2888
2911
|
this.parentTablePluralLabel = this.config.parentTablePluralLabel;
|
|
@@ -2914,20 +2937,21 @@ class TruCardColumn {
|
|
|
2914
2937
|
this.relatedChildName = this.childTablePluralLabel;
|
|
2915
2938
|
}
|
|
2916
2939
|
this.uniqueId = v4();
|
|
2940
|
+
this.subscribeTo();
|
|
2917
2941
|
}
|
|
2918
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruCardColumn, deps: [{ token: TruDataContext }, { token: TruModelTypeLookup }], target: i0.ɵɵFactoryTarget.Component });
|
|
2919
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TruCardColumn, selector: "tru-card-column", inputs: { config: "config", name: "name" }, viewQueries: [{ propertyName: "portal", first: true, predicate: ["
|
|
2942
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruCardColumn, deps: [{ token: TruDataContext }, { token: TruModelTypeLookup }, { token: TruSearchViewEventHandler }], target: i0.ɵɵFactoryTarget.Component });
|
|
2943
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: TruCardColumn, selector: "tru-card-column", inputs: { config: "config", name: "name" }, viewQueries: [{ propertyName: "portal", first: true, predicate: ["cardPortal"], descendants: true }], ngImport: i0, template: "<div class=\"tru-card\">\r\n <div *ngIf=\"isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.childTablePluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{busyMessage}}</p>\r\n </div>\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar\"></tru-toolbar>-->\r\n <div class=\"tru-card-portal\" #cardPortal>\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}.tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
2920
2944
|
}
|
|
2921
2945
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: TruCardColumn, decorators: [{
|
|
2922
2946
|
type: Component,
|
|
2923
|
-
args: [{ selector: 'tru-card-column', template: "<div class=\"tru-card\">\r\n <div *ngIf=\"isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.childTablePluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{busyMessage}}</p>\r\n </div>\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar\"></tru-toolbar>-->\r\n <div class=\"tru-card-portal\">\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}.tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"] }]
|
|
2924
|
-
}], ctorParameters: () => [{ type: TruDataContext }, { type: TruModelTypeLookup }], propDecorators: { config: [{
|
|
2947
|
+
args: [{ selector: 'tru-card-column', template: "<div class=\"tru-card\">\r\n <div *ngIf=\"isBusy\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>Searching for {{config.childTablePluralLabel}}...</p>\r\n </div>\r\n <div *ngIf=\"busyMessage\"\r\n class=\"tru-card-busy-indicator\">\r\n <p>{{busyMessage}}</p>\r\n </div>\r\n <!--<tru-toolbar [config]=\"config.toolbarConfig\" class=\"main-toolbar\"></tru-toolbar>-->\r\n <div class=\"tru-card-portal\" #cardPortal>\r\n <div [ngStyle]=\"{'width': ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1)) + 'px' }\"\r\n [ngClass]=\"{'tru-card-portal-locked-columns-divider': lockedColumns.length}\"\r\n *ngIf=\"lockedColumns.length\"\r\n class=\"tru-card-portal-locked-columns locked-columns\">\r\n\r\n </div>\r\n <div [ngStyle]=\"{'left': lockedColumns.length ? ((config.width * lockedColumns.length) + (10 * lockedColumns.length - 1) + 22) + 'px' : 0 }\"\r\n class=\"tru-card-portal-columns unlocked-columns\">\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tru-card-busy-indicator{position:absolute;inset:25px 0 0;z-index:10000;background-color:transparent}.tru-card-busy-indicator p{position:relative;float:left;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff}.tru-card-filter{position:absolute;top:0;left:0;right:0;height:30px;line-height:30px;padding-left:10px}.tru-card-portal{position:absolute;inset:30px 10px 0;border:1px solid #ddd;padding:10px;background-color:#0079bf}.tru-card-portal-disabled>*{opacity:.75;pointer-events:none}.tru-card-portal-locked-columns{position:absolute;top:10px;left:0;bottom:0;padding:0 5px 10px 10px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start}.tru-card-portal-locked-columns .tru-card-portal-column{margin-left:0;margin-bottom:0}.tru-card-portal-locked-columns .tru-card-portal-column:not(:first-child){margin-left:10px!important}.tru-card-portal-locked-columns-divider{border-right:1px solid #cdd2d4}.tru-card-portal-columns{position:absolute;inset:10px 10px 10px 222px;padding-top:0;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;overflow-x:auto;overflow-y:hidden}.tru-card-portal-column{position:relative;border:1px solid #ddd;border-radius:4px;background:#e2e4e6;vertical-align:top;max-height:calc(100% + 8px);margin-left:10px;margin-bottom:10px;display:flex;flex-direction:column}.tru-card-portal-column-inactive *{font-style:italic;opacity:.7}.tru-card-portal-column-header{flex:0 0 auto;padding:5px;position:relative;min-height:18px}.tru-card-portal-column-header-extras{position:absolute;right:5px;top:4px}.tru-card-portal-column-header-extra-button{border-radius:3px;background:transparent}.tru-card-portal-column-header-extra-button:hover{border-radius:3px;background:#cdd2d4}.tru-card-portal-column-footer{flex:0 0 auto;padding:0 3px 3px;position:relative;height:25px;line-height:25px;display:none}.tru-card-portal-column-footer-text{font-size:14px;color:#777;padding-left:5px;text-decoration:none}.tru-card-portal-column-footer-text:hover{text-decoration:underline;color:#777}.tru-card-portal-column-footer-text:active,.tru-card-portal-column-footer-text:visited{color:#777}.tru-card-icon-small{color:#999;height:18px;font-size:14px;line-height:18px;width:19px;-webkit-font-smoothing:antialiased;display:inline-block!important;font-style:normal;font-weight:400;text-align:center;text-decoration:none;position:relative}.tru-card-portal-column-headertext{font-weight:700;font-size:16px;color:#333;padding-left:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px}.tru-card-portal-column-headertext-hover:hover{text-decoration:underline}.tru-card-portal-card-scroll-port{overflow-y:auto;overflow-x:hidden}.tru-card-portal-card-container{margin:0 3px;padding:0 2px;height:37px;transition:all .4s ease-out;opacity:1}.tru-card-portal-card-container.show{opacity:1}.tru-card-portal-card-container *{pointer-events:none}.tru-card-portal-card{background-color:#fff;border:1px solid #fff;border-radius:3px;padding:2px 6px 2px 8px;position:relative;cursor:pointer;display:block;min-height:15px;text-decoration:none;z-index:0;outline:none;box-shadow:0 .5px #ccc}.tru-card-portal-card:hover{background-color:#efefef;border:1px solid #efefef}.tru-card-portal-card p{word-wrap:break-word}.tru-card-portal-card:focus{outline:none}.tru-card-portal-card.empty{border:1px dashed #999}.tru-card-placeholder{position:absolute;left:0;right:0;margin:0;z-index:100;border-color:#0079bf;border-top-style:dashed;border-bottom-style:dashed}.tru-card-selected{border-color:#52a8eccc!important;background-color:#52a8eccc!important}.tru-card-selected p{color:#000!important}.tru-card-menu{position:absolute;top:20px;right:0;background:#fff;border:1px #ccc solid;border-radius:3px;z-index:1;padding:7px;width:200px}.tru-card-menu hr{height:1px;border:1px #ccc solid;border-bottom:0;border-left:0;border-right:0;width:100%;margin:0;padding:0}.tru-card-menu a{color:#777;text-decoration:none;float:left;line-height:16px;margin-top:2px;margin-bottom:2px}.tru-card-menu span{color:#777;float:left;line-height:16px;margin-top:3px}.tru-card-menu a:hover{text-decoration:underline;color:#777}.tru-card-menu a:active,.tru-card-menu a:visited{color:#777}.tru-card-menu-move-container{width:100%!important;display:inline-flex}.tru-card-menu-move-container select{width:100%!important}.tru-card-menu-move-container a{margin-top:1px;margin-left:3px;display:block}.tru-card-menu-move-container span{color:#0079bf;margin-top:0}.tru-card-menu-move-container .move-button-disabled{pointer-events:none;opacity:.75}.tru-card-menu-move-container .move-button-disabled span{color:#ccc}.tru-card-portal-column-filtered,.tru-card-portal-card-filtered{display:none}\n"] }]
|
|
2948
|
+
}], ctorParameters: () => [{ type: TruDataContext }, { type: TruModelTypeLookup }, { type: TruSearchViewEventHandler }], propDecorators: { config: [{
|
|
2925
2949
|
type: Input
|
|
2926
2950
|
}], name: [{
|
|
2927
2951
|
type: Input
|
|
2928
2952
|
}], portal: [{
|
|
2929
2953
|
type: ViewChild,
|
|
2930
|
-
args: ['
|
|
2954
|
+
args: ['cardPortal', { static: false }]
|
|
2931
2955
|
}] } });
|
|
2932
2956
|
|
|
2933
2957
|
class TruToolbar {
|