mis-crystal-design-system 18.1.18 → 18.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/analytics/analytics.service.d.ts +1 -1
- package/esm2022/analytics/analytics.service.mjs +3 -3
- package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +50 -35
- package/esm2022/table/filter/filter.component.mjs +32 -32
- package/fesm2022/mis-crystal-design-system-analytics.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-analytics.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +49 -34
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +31 -31
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/multi-select-dropdown/multi-select-dropdown.component.d.ts +2 -1
- package/package.json +13 -13
|
@@ -8,7 +8,7 @@ export declare class AnalyticsService {
|
|
|
8
8
|
private scriptLoaded;
|
|
9
9
|
private pendingEvents;
|
|
10
10
|
constructor(document: any);
|
|
11
|
-
insertScript(measurementId: string, renderer: Renderer2): void;
|
|
11
|
+
insertScript(measurementId: string, renderer: Renderer2, config?: {}): void;
|
|
12
12
|
private handlePendingEvents;
|
|
13
13
|
send(eventAction: string, event_category: string, event_label?: string, event_value?: string, force?: boolean, customParameters?: TCustomParameters): void;
|
|
14
14
|
setIdentity(identifier: string): void;
|
|
@@ -7,12 +7,12 @@ export class AnalyticsService {
|
|
|
7
7
|
this.scriptLoaded = false;
|
|
8
8
|
this.pendingEvents = [];
|
|
9
9
|
}
|
|
10
|
-
insertScript(measurementId, renderer) {
|
|
10
|
+
insertScript(measurementId, renderer, config = {}) {
|
|
11
11
|
const loadScript = renderer.createElement("script");
|
|
12
12
|
loadScript.setAttribute("async", true);
|
|
13
13
|
loadScript.setAttribute("src", `https://www.googletagmanager.com/gtag/js?id=${measurementId}`);
|
|
14
14
|
const initScript = renderer.createElement("script");
|
|
15
|
-
initScript.innerText = `window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag(\'js\', new Date());gtag(\'config\', \'${measurementId}\');`;
|
|
15
|
+
initScript.innerText = `window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag(\'js\', new Date());gtag(\'config\', \'${measurementId}\', ${JSON.stringify(config)});`;
|
|
16
16
|
renderer.appendChild(this.document.head, loadScript);
|
|
17
17
|
renderer.appendChild(this.document.head, initScript);
|
|
18
18
|
this.handlePendingEvents(loadScript);
|
|
@@ -61,4 +61,4 @@ export class AnalyticsService {
|
|
|
61
61
|
type: Inject,
|
|
62
62
|
args: [DOCUMENT]
|
|
63
63
|
}] }], null); })();
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9hbmFseXRpY3MvYW5hbHl0aWNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDOztBQVE5RCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQXNDLFFBQWE7UUFBYixhQUFRLEdBQVIsUUFBUSxDQUFLO1FBSDNDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztJQUVXLENBQUM7SUFFdkQsWUFBWSxDQUFDLGFBQXFCLEVBQUUsUUFBbUIsRUFBRSxNQUFNLEdBQUcsRUFBRTtRQUNsRSxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLFVBQVUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLCtDQUErQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBRS9GLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEQsVUFBVSxDQUFDLFNBQVMsR0FBRyxvSUFBb0ksYUFBYSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUUxTSxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxNQUF5QjtRQUNuRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUN6QixLQUFLLE1BQU0sWUFBWSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssT0FBTyxFQUFFLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hGLENBQUM7cUJBQU0sSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxDQUNGLFdBQW1CLEVBQ25CLGNBQXNCLEVBQ3RCLFdBQW9CLEVBQ3BCLFdBQW9CLEVBQ3BCLEtBQUssR0FBRyxLQUFLLEVBQ2IsZ0JBQW9DO1FBRXBDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUM1RyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUU7WUFDM0IsY0FBYyxFQUFFLGNBQWM7WUFDOUIsV0FBVyxFQUFFLFdBQVc7WUFDeEIsV0FBVyxFQUFFLFdBQVc7WUFDeEIsR0FBRyxnQkFBZ0I7U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxVQUFrQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDN0MsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO2lIQTFEVSxnQkFBZ0IsY0FJUCxRQUFRO3VFQUpqQixnQkFBZ0IsV0FBaEIsZ0JBQWdCLG1CQUZmLE1BQU07O2lGQUVQLGdCQUFnQjtjQUg1QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQUtjLE1BQU07dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlcjIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuZGVjbGFyZSBjb25zdCBndGFnOiBGdW5jdGlvbjtcbnR5cGUgVEN1c3RvbVBhcmFtZXRlcnMgPSB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfTtcbnR5cGUgVFBlbmRpbmdFdmVudHMgPSAoW1wiZXZlbnRcIiwgc3RyaW5nLCBzdHJpbmcsIHN0cmluZz8sIHN0cmluZz8sIFRDdXN0b21QYXJhbWV0ZXJzP10gfCBbXCJzZXRcIiwgc3RyaW5nXSlbXTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiBcInJvb3RcIlxufSlcbmV4cG9ydCBjbGFzcyBBbmFseXRpY3NTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzY3JpcHRMb2FkZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBwZW5kaW5nRXZlbnRzOiBUUGVuZGluZ0V2ZW50cyA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSkge31cblxuICBpbnNlcnRTY3JpcHQobWVhc3VyZW1lbnRJZDogc3RyaW5nLCByZW5kZXJlcjogUmVuZGVyZXIyLCBjb25maWcgPSB7fSk6IHZvaWQge1xuICAgIGNvbnN0IGxvYWRTY3JpcHQgPSByZW5kZXJlci5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgIGxvYWRTY3JpcHQuc2V0QXR0cmlidXRlKFwiYXN5bmNcIiwgdHJ1ZSk7XG4gICAgbG9hZFNjcmlwdC5zZXRBdHRyaWJ1dGUoXCJzcmNcIiwgYGh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM/aWQ9JHttZWFzdXJlbWVudElkfWApO1xuXG4gICAgY29uc3QgaW5pdFNjcmlwdCA9IHJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7XG4gICAgaW5pdFNjcmlwdC5pbm5lclRleHQgPSBgd2luZG93LmRhdGFMYXllciA9IHdpbmRvdy5kYXRhTGF5ZXIgfHwgW107ZnVuY3Rpb24gZ3RhZygpe2RhdGFMYXllci5wdXNoKGFyZ3VtZW50cyk7fWd0YWcoXFwnanNcXCcsIG5ldyBEYXRlKCkpO2d0YWcoXFwnY29uZmlnXFwnLCBcXCcke21lYXN1cmVtZW50SWR9XFwnLCAke0pTT04uc3RyaW5naWZ5KGNvbmZpZyl9KTtgO1xuXG4gICAgcmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudC5oZWFkLCBsb2FkU2NyaXB0KTtcbiAgICByZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50LmhlYWQsIGluaXRTY3JpcHQpO1xuICAgIHRoaXMuaGFuZGxlUGVuZGluZ0V2ZW50cyhsb2FkU2NyaXB0KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUGVuZGluZ0V2ZW50cyhzY3JpcHQ6IEhUTUxTY3JpcHRFbGVtZW50KTogdm9pZCB7XG4gICAgc2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsICgpID0+IHtcbiAgICAgIHRoaXMuc2NyaXB0TG9hZGVkID0gdHJ1ZTtcbiAgICAgIGZvciAoY29uc3QgZXZlbnREZXRhaWxzIG9mIHRoaXMucGVuZGluZ0V2ZW50cykge1xuICAgICAgICBpZiAoZXZlbnREZXRhaWxzWzBdID09PSBcImV2ZW50XCIpIHtcbiAgICAgICAgICB0aGlzLnNlbmQoZXZlbnREZXRhaWxzWzFdLCBldmVudERldGFpbHNbMl0sIGV2ZW50RGV0YWlsc1szXSwgZXZlbnREZXRhaWxzWzRdKTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudERldGFpbHNbMF0gPT09IFwic2V0XCIpIHtcbiAgICAgICAgICB0aGlzLnNldElkZW50aXR5KGV2ZW50RGV0YWlsc1sxXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNlbmQoXG4gICAgZXZlbnRBY3Rpb246IHN0cmluZywgXG4gICAgZXZlbnRfY2F0ZWdvcnk6IHN0cmluZywgXG4gICAgZXZlbnRfbGFiZWw/OiBzdHJpbmcsIFxuICAgIGV2ZW50X3ZhbHVlPzogc3RyaW5nLCBcbiAgICBmb3JjZSA9IGZhbHNlLCBcbiAgICBjdXN0b21QYXJhbWV0ZXJzPzogVEN1c3RvbVBhcmFtZXRlcnNcbiAgKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNjcmlwdExvYWRlZCAmJiAhZm9yY2UpIHtcbiAgICAgIHRoaXMucGVuZGluZ0V2ZW50cy5wdXNoKFtcImV2ZW50XCIsIGV2ZW50QWN0aW9uLCBldmVudF9jYXRlZ29yeSwgZXZlbnRfbGFiZWwsIGV2ZW50X3ZhbHVlLCBjdXN0b21QYXJhbWV0ZXJzXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGd0YWc/LihcImV2ZW50XCIsIGV2ZW50QWN0aW9uLCB7XG4gICAgICBldmVudF9jYXRlZ29yeTogZXZlbnRfY2F0ZWdvcnksXG4gICAgICBldmVudF9sYWJlbDogZXZlbnRfbGFiZWwsXG4gICAgICBldmVudF92YWx1ZTogZXZlbnRfdmFsdWUsXG4gICAgICAuLi5jdXN0b21QYXJhbWV0ZXJzXG4gICAgfSk7XG4gIH1cblxuICBzZXRJZGVudGl0eShpZGVudGlmaWVyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2NyaXB0TG9hZGVkKSB7XG4gICAgICB0aGlzLnBlbmRpbmdFdmVudHMucHVzaChbXCJzZXRcIiwgaWRlbnRpZmllcl0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBndGFnPy4oXCJzZXRcIiwgeyB1c2VyX2lkOiBpZGVudGlmaWVyIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -53,26 +53,26 @@ function MultiSelectDropdownComponent_ng_container_5_Template(rf, ctx) { if (rf
|
|
|
53
53
|
} }
|
|
54
54
|
function MultiSelectDropdownComponent_ng_template_8_div_1__svg_svg_1_Template(rf, ctx) { if (rf & 1) {
|
|
55
55
|
i0.ɵɵnamespaceSVG();
|
|
56
|
-
i0.ɵɵelementStart(0, "svg",
|
|
57
|
-
i0.ɵɵelement(1, "path",
|
|
56
|
+
i0.ɵɵelementStart(0, "svg", 23);
|
|
57
|
+
i0.ɵɵelement(1, "path", 24);
|
|
58
58
|
i0.ɵɵelementEnd();
|
|
59
59
|
} }
|
|
60
60
|
function MultiSelectDropdownComponent_ng_template_8_div_1__svg_svg_3_Template(rf, ctx) { if (rf & 1) {
|
|
61
61
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
62
62
|
i0.ɵɵnamespaceSVG();
|
|
63
|
-
i0.ɵɵelementStart(0, "svg",
|
|
63
|
+
i0.ɵɵelementStart(0, "svg", 25);
|
|
64
64
|
i0.ɵɵlistener("click", function MultiSelectDropdownComponent_ng_template_8_div_1__svg_svg_3_Template_svg_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.searchInputCanceled($event)); });
|
|
65
|
-
i0.ɵɵelement(1, "path",
|
|
65
|
+
i0.ɵɵelement(1, "path", 26);
|
|
66
66
|
i0.ɵɵelementEnd();
|
|
67
67
|
} }
|
|
68
68
|
function MultiSelectDropdownComponent_ng_template_8_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
69
69
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
70
|
-
i0.ɵɵelementStart(0, "div",
|
|
71
|
-
i0.ɵɵtemplate(1, MultiSelectDropdownComponent_ng_template_8_div_1__svg_svg_1_Template, 2, 0, "svg",
|
|
72
|
-
i0.ɵɵelementStart(2, "input",
|
|
70
|
+
i0.ɵɵelementStart(0, "div", 19);
|
|
71
|
+
i0.ɵɵtemplate(1, MultiSelectDropdownComponent_ng_template_8_div_1__svg_svg_1_Template, 2, 0, "svg", 20);
|
|
72
|
+
i0.ɵɵelementStart(2, "input", 21);
|
|
73
73
|
i0.ɵɵlistener("ngModelChange", function MultiSelectDropdownComponent_ng_template_8_div_1_Template_input_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.searchInputOnChange($event)); })("focus", function MultiSelectDropdownComponent_ng_template_8_div_1_Template_input_focus_2_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.searchInputFocused(true)); });
|
|
74
74
|
i0.ɵɵelementEnd();
|
|
75
|
-
i0.ɵɵtemplate(3, MultiSelectDropdownComponent_ng_template_8_div_1__svg_svg_3_Template, 2, 0, "svg",
|
|
75
|
+
i0.ɵɵtemplate(3, MultiSelectDropdownComponent_ng_template_8_div_1__svg_svg_3_Template, 2, 0, "svg", 22);
|
|
76
76
|
i0.ɵɵelementEnd();
|
|
77
77
|
} if (rf & 2) {
|
|
78
78
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -83,26 +83,38 @@ function MultiSelectDropdownComponent_ng_template_8_div_1_Template(rf, ctx) { if
|
|
|
83
83
|
i0.ɵɵadvance();
|
|
84
84
|
i0.ɵɵproperty("ngIf", ctx_r1.isSearchInputFocused());
|
|
85
85
|
} }
|
|
86
|
-
function
|
|
87
|
-
i0.ɵɵ
|
|
88
|
-
|
|
86
|
+
function MultiSelectDropdownComponent_ng_template_8_Conditional_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
87
|
+
i0.ɵɵelementContainer(0);
|
|
88
|
+
} }
|
|
89
|
+
function MultiSelectDropdownComponent_ng_template_8_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
90
|
+
i0.ɵɵelementStart(0, "div", 14);
|
|
91
|
+
i0.ɵɵtemplate(1, MultiSelectDropdownComponent_ng_template_8_Conditional_2_ng_container_1_Template, 1, 0, "ng-container", 11);
|
|
92
|
+
i0.ɵɵelementEnd();
|
|
93
|
+
} if (rf & 2) {
|
|
94
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
95
|
+
i0.ɵɵadvance();
|
|
96
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.customMessageTemplate());
|
|
97
|
+
} }
|
|
98
|
+
function MultiSelectDropdownComponent_ng_template_8_div_4_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
99
|
+
i0.ɵɵelementStart(0, "div", 32);
|
|
100
|
+
i0.ɵɵelement(1, "img", 33);
|
|
89
101
|
i0.ɵɵelementEnd();
|
|
90
102
|
} if (rf & 2) {
|
|
91
103
|
const item_r6 = i0.ɵɵnextContext().$implicit;
|
|
92
104
|
i0.ɵɵadvance();
|
|
93
105
|
i0.ɵɵproperty("src", item_r6.icon, i0.ɵɵsanitizeUrl);
|
|
94
106
|
} }
|
|
95
|
-
function
|
|
107
|
+
function MultiSelectDropdownComponent_ng_template_8_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
96
108
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
97
|
-
i0.ɵɵelementStart(0, "div",
|
|
98
|
-
i0.ɵɵlistener("keyup.enter", function
|
|
99
|
-
i0.ɵɵelementStart(1, "div",
|
|
100
|
-
i0.ɵɵelement(3, "mis-checkbox",
|
|
109
|
+
i0.ɵɵelementStart(0, "div", 27);
|
|
110
|
+
i0.ɵɵlistener("keyup.enter", function MultiSelectDropdownComponent_ng_template_8_div_4_Template_div_keyup_enter_0_listener($event) { const item_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleSelectedItems($event, item_r6)); })("click", function MultiSelectDropdownComponent_ng_template_8_div_4_Template_div_click_0_listener($event) { const item_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleSelectedItems($event, item_r6)); });
|
|
111
|
+
i0.ɵɵelementStart(1, "div", 28)(2, "div", 29);
|
|
112
|
+
i0.ɵɵelement(3, "mis-checkbox", 30);
|
|
101
113
|
i0.ɵɵelementEnd();
|
|
102
114
|
i0.ɵɵelementStart(4, "p", 4);
|
|
103
115
|
i0.ɵɵtext(5);
|
|
104
116
|
i0.ɵɵelementEnd()();
|
|
105
|
-
i0.ɵɵtemplate(6,
|
|
117
|
+
i0.ɵɵtemplate(6, MultiSelectDropdownComponent_ng_template_8_div_4_div_6_Template, 2, 1, "div", 31);
|
|
106
118
|
i0.ɵɵelementEnd();
|
|
107
119
|
} if (rf & 2) {
|
|
108
120
|
const item_r6 = ctx.$implicit;
|
|
@@ -114,8 +126,8 @@ function MultiSelectDropdownComponent_ng_template_8_div_3_Template(rf, ctx) { if
|
|
|
114
126
|
i0.ɵɵadvance();
|
|
115
127
|
i0.ɵɵproperty("ngIf", item_r6.icon);
|
|
116
128
|
} }
|
|
117
|
-
function
|
|
118
|
-
i0.ɵɵelementStart(0, "div",
|
|
129
|
+
function MultiSelectDropdownComponent_ng_template_8_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
130
|
+
i0.ɵɵelementStart(0, "div", 34);
|
|
119
131
|
i0.ɵɵtext(1);
|
|
120
132
|
i0.ɵɵelementEnd();
|
|
121
133
|
} if (rf & 2) {
|
|
@@ -123,15 +135,15 @@ function MultiSelectDropdownComponent_ng_template_8_div_4_Template(rf, ctx) { if
|
|
|
123
135
|
i0.ɵɵadvance();
|
|
124
136
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.searchInput() === "" ? ctx_r1.noDataMessage() : "No results", " ");
|
|
125
137
|
} }
|
|
126
|
-
function
|
|
138
|
+
function MultiSelectDropdownComponent_ng_template_8_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
127
139
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
128
|
-
i0.ɵɵelementStart(0, "div",
|
|
129
|
-
i0.ɵɵlistener("click", function
|
|
130
|
-
i0.ɵɵelement(2, "mis-button",
|
|
140
|
+
i0.ɵɵelementStart(0, "div", 35)(1, "div", 36);
|
|
141
|
+
i0.ɵɵlistener("click", function MultiSelectDropdownComponent_ng_template_8_div_6_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onReset()); });
|
|
142
|
+
i0.ɵɵelement(2, "mis-button", 37);
|
|
131
143
|
i0.ɵɵelementEnd();
|
|
132
|
-
i0.ɵɵelementStart(3, "div",
|
|
133
|
-
i0.ɵɵlistener("click", function
|
|
134
|
-
i0.ɵɵelement(4, "mis-button",
|
|
144
|
+
i0.ɵɵelementStart(3, "div", 36);
|
|
145
|
+
i0.ɵɵlistener("click", function MultiSelectDropdownComponent_ng_template_8_div_6_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.applyFilters()); });
|
|
146
|
+
i0.ɵɵelement(4, "mis-button", 37);
|
|
135
147
|
i0.ɵɵelementEnd()();
|
|
136
148
|
} if (rf & 2) {
|
|
137
149
|
i0.ɵɵadvance();
|
|
@@ -145,17 +157,19 @@ function MultiSelectDropdownComponent_ng_template_8_div_5_Template(rf, ctx) { if
|
|
|
145
157
|
} }
|
|
146
158
|
function MultiSelectDropdownComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
|
|
147
159
|
i0.ɵɵelementStart(0, "div", 12);
|
|
148
|
-
i0.ɵɵtemplate(1, MultiSelectDropdownComponent_ng_template_8_div_1_Template, 4, 9, "div", 13);
|
|
149
|
-
i0.ɵɵelementStart(
|
|
150
|
-
i0.ɵɵtemplate(
|
|
160
|
+
i0.ɵɵtemplate(1, MultiSelectDropdownComponent_ng_template_8_div_1_Template, 4, 9, "div", 13)(2, MultiSelectDropdownComponent_ng_template_8_Conditional_2_Template, 2, 1, "div", 14);
|
|
161
|
+
i0.ɵɵelementStart(3, "div", 15);
|
|
162
|
+
i0.ɵɵtemplate(4, MultiSelectDropdownComponent_ng_template_8_div_4_Template, 7, 6, "div", 16)(5, MultiSelectDropdownComponent_ng_template_8_div_5_Template, 2, 1, "div", 17);
|
|
151
163
|
i0.ɵɵelementEnd();
|
|
152
|
-
i0.ɵɵtemplate(
|
|
164
|
+
i0.ɵɵtemplate(6, MultiSelectDropdownComponent_ng_template_8_div_6_Template, 5, 10, "div", 18);
|
|
153
165
|
i0.ɵɵelementEnd();
|
|
154
166
|
} if (rf & 2) {
|
|
155
167
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
156
|
-
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(
|
|
168
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(7, _c5, ctx_r1.dropdownListHeight(), ctx_r1.dropdownListWidth()))("ngClass", i0.ɵɵpureFunction2(10, _c6, ctx_r1.dropdownListPosition() === "Left", ctx_r1.dropdownListPosition() === "Right"));
|
|
157
169
|
i0.ɵɵadvance();
|
|
158
170
|
i0.ɵɵproperty("ngIf", ctx_r1.searchEnabled());
|
|
171
|
+
i0.ɵɵadvance();
|
|
172
|
+
i0.ɵɵconditional(ctx_r1.customMessageTemplate() ? 2 : -1);
|
|
159
173
|
i0.ɵɵadvance(2);
|
|
160
174
|
i0.ɵɵproperty("ngForOf", ctx_r1.displayData());
|
|
161
175
|
i0.ɵɵadvance();
|
|
@@ -182,6 +196,7 @@ export class MultiSelectDropdownComponent {
|
|
|
182
196
|
this.searchEnabled = input(true);
|
|
183
197
|
this.showSelectedCount = input(false);
|
|
184
198
|
this.noDataMessage = input('No Data');
|
|
199
|
+
this.customMessageTemplate = input();
|
|
185
200
|
this.options = input({
|
|
186
201
|
sortLabels: true,
|
|
187
202
|
});
|
|
@@ -410,7 +425,7 @@ export class MultiSelectDropdownComponent {
|
|
|
410
425
|
let _t;
|
|
411
426
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.selectElement = _t.first);
|
|
412
427
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.popupContainer = _t.first);
|
|
413
|
-
} }, inputs: { data: [1, "data"], selectedItems: [1, "selectedItems"], label: [1, "label"], height: [1, "height"], width: [1, "width"], dropdownListHeight: [1, "dropdownListHeight"], dropdownListWidth: [1, "dropdownListWidth"], dropdownListPosition: [1, "dropdownListPosition"], enableSelectAll: [1, "enableSelectAll"], searchEnabled: [1, "searchEnabled"], showSelectedCount: [1, "showSelectedCount"], noDataMessage: [1, "noDataMessage"], options: [1, "options"], hideApplyButton: [1, "hideApplyButton"], searchInputPlaceholder: [1, "searchInputPlaceholder"], customLabelTemplate: [1, "customLabelTemplate"] }, outputs: { onChange: "onChange" }, decls: 10, vars: 12, consts: [["select", ""], ["popupContainer", ""], [1, "container", 3, "ngStyle"], ["tabindex", "0", 1, "dropdown", 3, "keyup.enter", "click", "ngStyle"], [1, "label"], [4, "ngIf"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "handle", 3, "ngStyle"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z", "fill", "#181F33"], [1, "text"], ["class", "count", 4, "ngIf"], [1, "count"], [4, "ngTemplateOutlet"], [1, "popup-container", 3, "ngStyle", "ngClass"], ["class", "search-container", 4, "ngIf"], [1, "items"], ["class", "item", "tabindex", "0", 3, "ngClass", "keyup.enter", "click", 4, "ngFor", "ngForOf"], ["class", "noData", 4, "ngIf"], ["class", "actions-container", 4, "ngIf"], [1, "search-container"], ["class", "search-icon", "width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 4, "ngIf"], [1, "search-input", 3, "ngModelChange", "focus", "ngModel", "ngStyle", "placeholder"], ["class", "cancel-icon", "width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 3, "click", 4, "ngIf"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "search-icon"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z", "fill", "#6A737D"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "cancel-icon", 3, "click"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z", "fill", "#6A737D"], ["tabindex", "0", 1, "item", 3, "keyup.enter", "click", "ngClass"], [1, "checkbox-container-wrapper"], [1, "checkbox-container"], ["tabindex", "-1", 3, "checked"], ["class", "icon-container", 4, "ngIf"], [1, "icon-container"], ["alt", "no img", 1, "icon", 3, "src"], [1, "noData"], [1, "actions-container"], [3, "click", "ngStyle"], [3, "name", "type", "width"]], template: function MultiSelectDropdownComponent_Template(rf, ctx) { if (rf & 1) {
|
|
428
|
+
} }, inputs: { data: [1, "data"], selectedItems: [1, "selectedItems"], label: [1, "label"], height: [1, "height"], width: [1, "width"], dropdownListHeight: [1, "dropdownListHeight"], dropdownListWidth: [1, "dropdownListWidth"], dropdownListPosition: [1, "dropdownListPosition"], enableSelectAll: [1, "enableSelectAll"], searchEnabled: [1, "searchEnabled"], showSelectedCount: [1, "showSelectedCount"], noDataMessage: [1, "noDataMessage"], customMessageTemplate: [1, "customMessageTemplate"], options: [1, "options"], hideApplyButton: [1, "hideApplyButton"], searchInputPlaceholder: [1, "searchInputPlaceholder"], customLabelTemplate: [1, "customLabelTemplate"] }, outputs: { onChange: "onChange" }, decls: 10, vars: 12, consts: [["select", ""], ["popupContainer", ""], [1, "container", 3, "ngStyle"], ["tabindex", "0", 1, "dropdown", 3, "keyup.enter", "click", "ngStyle"], [1, "label"], [4, "ngIf"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "handle", 3, "ngStyle"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z", "fill", "#181F33"], [1, "text"], ["class", "count", 4, "ngIf"], [1, "count"], [4, "ngTemplateOutlet"], [1, "popup-container", 3, "ngStyle", "ngClass"], ["class", "search-container", 4, "ngIf"], [1, "custom-message-container"], [1, "items"], ["class", "item", "tabindex", "0", 3, "ngClass", "keyup.enter", "click", 4, "ngFor", "ngForOf"], ["class", "noData", 4, "ngIf"], ["class", "actions-container", 4, "ngIf"], [1, "search-container"], ["class", "search-icon", "width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 4, "ngIf"], [1, "search-input", 3, "ngModelChange", "focus", "ngModel", "ngStyle", "placeholder"], ["class", "cancel-icon", "width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 3, "click", 4, "ngIf"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "search-icon"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z", "fill", "#6A737D"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "cancel-icon", 3, "click"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z", "fill", "#6A737D"], ["tabindex", "0", 1, "item", 3, "keyup.enter", "click", "ngClass"], [1, "checkbox-container-wrapper"], [1, "checkbox-container"], ["tabindex", "-1", 3, "checked"], ["class", "icon-container", 4, "ngIf"], [1, "icon-container"], ["alt", "no img", 1, "icon", 3, "src"], [1, "noData"], [1, "actions-container"], [3, "click", "ngStyle"], [3, "name", "type", "width"]], template: function MultiSelectDropdownComponent_Template(rf, ctx) { if (rf & 1) {
|
|
414
429
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
415
430
|
i0.ɵɵelementStart(0, "div", 2)(1, "div", 3, 0);
|
|
416
431
|
i0.ɵɵlistener("keyup.enter", function MultiSelectDropdownComponent_Template_div_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleDropdown()); })("click", function MultiSelectDropdownComponent_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleDropdown()); });
|
|
@@ -421,7 +436,7 @@ export class MultiSelectDropdownComponent {
|
|
|
421
436
|
i0.ɵɵelementStart(6, "svg", 6);
|
|
422
437
|
i0.ɵɵelement(7, "path", 7);
|
|
423
438
|
i0.ɵɵelementEnd()()();
|
|
424
|
-
i0.ɵɵtemplate(8, MultiSelectDropdownComponent_ng_template_8_Template,
|
|
439
|
+
i0.ɵɵtemplate(8, MultiSelectDropdownComponent_ng_template_8_Template, 7, 13, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
|
|
425
440
|
} if (rf & 2) {
|
|
426
441
|
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(5, _c2, ctx.height().length > 0 ? ctx.height() : "", ctx.width().length > 0 ? ctx.width() : ""));
|
|
427
442
|
i0.ɵɵadvance();
|
|
@@ -436,7 +451,7 @@ export class MultiSelectDropdownComponent {
|
|
|
436
451
|
}
|
|
437
452
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MultiSelectDropdownComponent, [{
|
|
438
453
|
type: Component,
|
|
439
|
-
args: [{ selector: 'mis-multi-select-dropdown', template: "<div\n class=\"container\"\n [ngStyle]=\"{\n height: height().length > 0 ? height() : '',\n width: width().length > 0 ? width() : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"{ 'background': isOpen() ? '#E6EBF7' : '' }\"\n >\n <div class=\"label\">\n <ng-container *ngIf=\"!customLabelTemplate()\">\n <p class=\"text\">{{ label() }}</p>\n <p *ngIf=\"showSelectedCount() && internalSelectedItems().length > 0\" class=\"count\">\n {{ internalSelectedItems().length }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"customLabelTemplate()\">\n <ng-container *ngTemplateOutlet=\"customLabelTemplate()\">\n </ng-container>\n </ng-container>\n </div>\n <svg\n class=\"handle\"\n [ngStyle]=\"{ 'transform': isOpen() ? 'rotate(180deg)' : 'rotate(0deg)' }\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z\"\n fill=\"#181F33\"\n />\n </svg>\n </div>\n</div>\n<ng-template #popupContainer>\n <div\n class=\"popup-container\"\n [ngStyle]=\"{\n 'height': dropdownListHeight(),\n width: dropdownListWidth()\n }\"\n [ngClass]=\"{\n 'position-left': dropdownListPosition() === 'Left',\n 'position-right': dropdownListPosition() === 'Right'\n }\"\n >\n <div *ngIf=\"searchEnabled()\" class=\"search-container\">\n <svg\n *ngIf=\"!isSearchInputFocused()\"\n class=\"search-icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z\"\n fill=\"#6A737D\"\n />\n </svg>\n <input\n [ngModel]=\"searchInput()\"\n [ngStyle]=\"{\n paddingLeft: isSearchInputFocused() ? '12px' : '45px',\n border: isSearchInputFocused() ? '1px solid #0937B2' : '1px solid #e0e0e0',\n paddingRight: isSearchInputFocused() ? '45px' : '10px'\n }\"\n (ngModelChange)=\"searchInputOnChange($event)\"\n [placeholder]=\"isSearchInputFocused() ? '' : searchInputPlaceholder()\"\n (focus)=\"searchInputFocused(true)\"\n class=\"search-input\"\n />\n <svg\n *ngIf=\"isSearchInputFocused()\"\n class=\"cancel-icon\"\n (click)=\"searchInputCanceled($event)\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z\"\n fill=\"#6A737D\"\n />\n </svg>\n </div>\n <div class=\"items\">\n <div\n class=\"item\"\n tabindex=\"0\"\n (keyup.enter)=\"toggleSelectedItems($event, item)\"\n (click)=\"toggleSelectedItems($event, item)\"\n *ngFor=\"let item of displayData()\"\n [ngClass]=\"{'disabled':item.disabled}\"\n >\n <div class=\"checkbox-container-wrapper\">\n <div class=\"checkbox-container\">\n <mis-checkbox [checked]=\"item.checked\" tabindex=\"-1\"></mis-checkbox>\n </div>\n <p class=\"label\">\n {{ item.label }}\n </p>\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </div>\n <div class=\"noData\" *ngIf=\"displayData().length === 0\">\n {{ searchInput() === \"\" ? noDataMessage() : \"No results\" }}\n </div>\n </div>\n <div *ngIf=\"internalData().length !== 0 && !hideApplyButton()\" class=\"actions-container\">\n <div [ngStyle]=\"{'width': 'calc(50% - 4px)'}\" (click)=\"onReset()\">\n <mis-button [name]=\"'Reset'\" [type]=\"'Text'\" [width]=\"'100%'\" ></mis-button>\n </div>\n <div [ngStyle]=\"{'width': 'calc(50% - 4px)'}\" (click)=\"applyFilters()\">\n <mis-button [name]=\"'Apply'\" [type]=\"'Solid'\" [width]=\"'100%'\" ></mis-button>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n", styles: [":root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-muted-secondary: #E5E5E5;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.container{position:relative;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;height:32px;width:256px;font-family:Lato,sans-serif!important}.container .dropdown{height:inherit;border:1px solid var(--border-primary, #E0E0E0);border-radius:6px;background-color:var(--bg-primary, #FFFFFF);cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;padding:0 12px;overflow:hidden}.container .dropdown:hover,.container .dropdown:focus-visible{background-color:var(--brand-primary-hover, #F0F3FA);outline:none}.container .dropdown .label{display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px);font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.container .dropdown .label .text{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.container .dropdown .label .count{background-color:var(--border-primary, #E0E0E0);border-radius:50%;padding:2px 7px;margin:0 0 0 8px;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px;color:var(--text-primary, #181F33)}.container .dropdown .handle{width:24px;height:24px;transition:.3s;position:absolute;right:12px;border-radius:50%;overflow:hidden}.popup-container{width:100%;max-height:340px;padding-bottom:0;border:1px solid var(--border-primary, #E0E0E0);border-radius:8px;background-color:var(--bg-primary, #FFFFFF);box-shadow:0 12px 24px #0000001f;display:flex;flex-direction:column;overflow:hidden;justify-content:flex-start}.popup-container::-webkit-scrollbar{width:0;height:0}.popup-container .search-container{position:relative;box-sizing:border-box;padding:8px}.popup-container .search-container .search-icon{position:absolute;width:24px;height:24px;top:50%;transform:translateY(-50%);left:18px;z-index:1}.popup-container .search-container .search-input{height:40px;width:100%;padding:12px;border:1px solid var(--border-primary, #E0E0E0);box-sizing:border-box;border-radius:8px;outline:none;caret-color:var(--brand-primary, #0937B2);font-style:normal;font-weight:400;font-size:12px;line-height:18px;display:flex;align-items:center;letter-spacing:.2px;color:var(--text-primary, #181F33)}.popup-container .search-container .cancel-icon{position:absolute;cursor:pointer;width:24px;height:24px;top:50%;transform:translateY(-50%);right:18px;z-index:1}.popup-container .items{padding:8px 0 8px 8px;overflow-y:scroll}.popup-container .items::-webkit-scrollbar{width:5px;height:0}.popup-container .items::-webkit-scrollbar-thumb{background:var(--text-tertiary, #929DAB);border-radius:10px}.popup-container .items .noData{display:flex;justify-content:center;align-items:center;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.popup-container .items .disabled{pointer-events:none;opacity:.5}.popup-container .items .item{cursor:pointer;display:flex;justify-content:flex-start;align-items:center;padding:8px 12px;border-radius:6px;height:auto}.popup-container .items .item:hover,.popup-container .items .item:focus-visible{background-color:var(--brand-primary-hover, #F0F3FA);outline:none}.popup-container .items .item .checkbox-container-wrapper{display:flex;justify-content:flex-start;align-items:center;width:90%}.popup-container .items .item .checkbox-container-wrapper .checkbox-container{display:block;position:relative;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.popup-container .items .item .checkbox-container-wrapper .checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.popup-container .items .item .checkbox-container-wrapper .checkbox-container input:checked~.checkmark:after{display:block}.popup-container .items .item .checkbox-container-wrapper .checkbox-container .checkmark{position:absolute;top:-8px;left:0;height:15px;width:15px;border-radius:4px;background-color:var(--brand-info, #0091FF);border:1px solid var(--text-secondary, #6A737D)}.popup-container .items .item .checkbox-container-wrapper .checkbox-container .checkmark:after{content:\"\";position:absolute;display:none;left:5px;top:2px;width:3px;height:6px;border:solid var(--bg-primary, #FFFFFF);border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.popup-container .items .item .checkbox-container-wrapper .label{margin:0 0 0 8px;line-height:20px;font-size:14px;font-style:normal;font-weight:400;letter-spacing:.2;text-overflow:ellipsis;overflow:hidden}.popup-container .items .item .icon-container{width:10%;display:flex;justify-content:flex-end}.popup-container .items .item .icon-container .icon{width:20px;height:20px}.popup-container .actions-container{display:flex;justify-content:space-between;bottom:0;align-items:center;position:sticky;padding:16px;background-color:var(--bg-primary, #FFFFFF);border-top:1px solid var(--border-primary, #E0E0E0);margin-top:auto}.popup-container .actions-container .cancel{cursor:pointer;padding:10px 32px;text-align:center;font-size:16px;line-height:24px;border-radius:8px}.popup-container .actions-container .cancel:hover{background:var(--bg-overlay-lightest, rgba(0, 0, 0, .04))}.popup-container .actions-container .apply{cursor:pointer;padding:10px 32px;text-align:center;color:var(--bg-primary, #FFFFFF);font-size:16px;line-height:24px;background:var(--brand-primary, #0937B2);border-radius:8px}\n"] }]
|
|
454
|
+
args: [{ selector: 'mis-multi-select-dropdown', template: "<div\n class=\"container\"\n [ngStyle]=\"{\n height: height().length > 0 ? height() : '',\n width: width().length > 0 ? width() : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"{ 'background': isOpen() ? '#E6EBF7' : '' }\"\n >\n <div class=\"label\">\n <ng-container *ngIf=\"!customLabelTemplate()\">\n <p class=\"text\">{{ label() }}</p>\n <p *ngIf=\"showSelectedCount() && internalSelectedItems().length > 0\" class=\"count\">\n {{ internalSelectedItems().length }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"customLabelTemplate()\">\n <ng-container *ngTemplateOutlet=\"customLabelTemplate()\">\n </ng-container>\n </ng-container>\n </div>\n <svg\n class=\"handle\"\n [ngStyle]=\"{ 'transform': isOpen() ? 'rotate(180deg)' : 'rotate(0deg)' }\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z\"\n fill=\"#181F33\"\n />\n </svg>\n </div>\n</div>\n<ng-template #popupContainer>\n <div\n class=\"popup-container\"\n [ngStyle]=\"{\n 'height': dropdownListHeight(),\n width: dropdownListWidth()\n }\"\n [ngClass]=\"{\n 'position-left': dropdownListPosition() === 'Left',\n 'position-right': dropdownListPosition() === 'Right'\n }\"\n >\n <!-- Search Bar -->\n <div *ngIf=\"searchEnabled()\" class=\"search-container\">\n <svg\n *ngIf=\"!isSearchInputFocused()\"\n class=\"search-icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z\"\n fill=\"#6A737D\"\n />\n </svg>\n <input\n [ngModel]=\"searchInput()\"\n [ngStyle]=\"{\n paddingLeft: isSearchInputFocused() ? '12px' : '45px',\n border: isSearchInputFocused() ? '1px solid #0937B2' : '1px solid #e0e0e0',\n paddingRight: isSearchInputFocused() ? '45px' : '10px'\n }\"\n (ngModelChange)=\"searchInputOnChange($event)\"\n [placeholder]=\"isSearchInputFocused() ? '' : searchInputPlaceholder()\"\n (focus)=\"searchInputFocused(true)\"\n class=\"search-input\"\n />\n <svg\n *ngIf=\"isSearchInputFocused()\"\n class=\"cancel-icon\"\n (click)=\"searchInputCanceled($event)\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z\"\n fill=\"#6A737D\"\n />\n </svg>\n </div>\n\n <!-- Custom Message Template -->\n @if(customMessageTemplate()){\n <div class=\"custom-message-container\">\n <ng-container *ngTemplateOutlet=\"customMessageTemplate()\"></ng-container>\n </div>\n }\n\n <div class=\"items\">\n <div\n class=\"item\"\n tabindex=\"0\"\n (keyup.enter)=\"toggleSelectedItems($event, item)\"\n (click)=\"toggleSelectedItems($event, item)\"\n *ngFor=\"let item of displayData()\"\n [ngClass]=\"{'disabled':item.disabled}\"\n >\n <div class=\"checkbox-container-wrapper\">\n <div class=\"checkbox-container\">\n <mis-checkbox [checked]=\"item.checked\" tabindex=\"-1\"></mis-checkbox>\n </div>\n <p class=\"label\">\n {{ item.label }}\n </p>\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </div>\n <div class=\"noData\" *ngIf=\"displayData().length === 0\">\n {{ searchInput() === \"\" ? noDataMessage() : \"No results\" }}\n </div>\n </div>\n <div *ngIf=\"internalData().length !== 0 && !hideApplyButton()\" class=\"actions-container\">\n <div [ngStyle]=\"{'width': 'calc(50% - 4px)'}\" (click)=\"onReset()\">\n <mis-button [name]=\"'Reset'\" [type]=\"'Text'\" [width]=\"'100%'\" ></mis-button>\n </div>\n <div [ngStyle]=\"{'width': 'calc(50% - 4px)'}\" (click)=\"applyFilters()\">\n <mis-button [name]=\"'Apply'\" [type]=\"'Solid'\" [width]=\"'100%'\" ></mis-button>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n", styles: [":root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-muted-secondary: #E5E5E5;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.container{position:relative;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;height:32px;width:256px;font-family:Lato,sans-serif!important}.container .dropdown{height:inherit;border:1px solid var(--border-primary, #E0E0E0);border-radius:6px;background-color:var(--bg-primary, #FFFFFF);cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;padding:0 12px;overflow:hidden}.container .dropdown:hover,.container .dropdown:focus-visible{background-color:var(--brand-primary-hover, #F0F3FA);outline:none}.container .dropdown .label{display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px);font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.container .dropdown .label .text{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.container .dropdown .label .count{background-color:var(--border-primary, #E0E0E0);border-radius:50%;padding:2px 7px;margin:0 0 0 8px;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px;color:var(--text-primary, #181F33)}.container .dropdown .handle{width:24px;height:24px;transition:.3s;position:absolute;right:12px;border-radius:50%;overflow:hidden}.popup-container{width:100%;max-height:340px;padding-bottom:0;border:1px solid var(--border-primary, #E0E0E0);border-radius:8px;background-color:var(--bg-primary, #FFFFFF);box-shadow:0 12px 24px #0000001f;display:flex;flex-direction:column;overflow:hidden;justify-content:flex-start}.popup-container::-webkit-scrollbar{width:0;height:0}.popup-container .search-container{position:relative;box-sizing:border-box;padding:8px}.popup-container .search-container .search-icon{position:absolute;width:24px;height:24px;top:50%;transform:translateY(-50%);left:18px;z-index:1}.popup-container .search-container .search-input{height:40px;width:100%;padding:12px;border:1px solid var(--border-primary, #E0E0E0);box-sizing:border-box;border-radius:8px;outline:none;caret-color:var(--brand-primary, #0937B2);font-style:normal;font-weight:400;font-size:12px;line-height:18px;display:flex;align-items:center;letter-spacing:.2px;color:var(--text-primary, #181F33)}.popup-container .search-container .cancel-icon{position:absolute;cursor:pointer;width:24px;height:24px;top:50%;transform:translateY(-50%);right:18px;z-index:1}.popup-container .items{padding:8px 0 8px 8px;overflow-y:scroll}.popup-container .items::-webkit-scrollbar{width:5px;height:0}.popup-container .items::-webkit-scrollbar-thumb{background:var(--text-tertiary, #929DAB);border-radius:10px}.popup-container .items .noData{display:flex;justify-content:center;align-items:center;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.popup-container .items .disabled{pointer-events:none;opacity:.5}.popup-container .items .item{cursor:pointer;display:flex;justify-content:flex-start;align-items:center;padding:8px 12px;border-radius:6px;height:auto}.popup-container .items .item:hover,.popup-container .items .item:focus-visible{background-color:var(--brand-primary-hover, #F0F3FA);outline:none}.popup-container .items .item .checkbox-container-wrapper{display:flex;justify-content:flex-start;align-items:center;width:90%}.popup-container .items .item .checkbox-container-wrapper .checkbox-container{display:block;position:relative;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.popup-container .items .item .checkbox-container-wrapper .checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.popup-container .items .item .checkbox-container-wrapper .checkbox-container input:checked~.checkmark:after{display:block}.popup-container .items .item .checkbox-container-wrapper .checkbox-container .checkmark{position:absolute;top:-8px;left:0;height:15px;width:15px;border-radius:4px;background-color:var(--brand-info, #0091FF);border:1px solid var(--text-secondary, #6A737D)}.popup-container .items .item .checkbox-container-wrapper .checkbox-container .checkmark:after{content:\"\";position:absolute;display:none;left:5px;top:2px;width:3px;height:6px;border:solid var(--bg-primary, #FFFFFF);border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.popup-container .items .item .checkbox-container-wrapper .label{margin:0 0 0 8px;line-height:20px;font-size:14px;font-style:normal;font-weight:400;letter-spacing:.2;text-overflow:ellipsis;overflow:hidden}.popup-container .items .item .icon-container{width:10%;display:flex;justify-content:flex-end}.popup-container .items .item .icon-container .icon{width:20px;height:20px}.popup-container .actions-container{display:flex;justify-content:space-between;bottom:0;align-items:center;position:sticky;padding:16px;background-color:var(--bg-primary, #FFFFFF);border-top:1px solid var(--border-primary, #E0E0E0);margin-top:auto}.popup-container .actions-container .cancel{cursor:pointer;padding:10px 32px;text-align:center;font-size:16px;line-height:24px;border-radius:8px}.popup-container .actions-container .cancel:hover{background:var(--bg-overlay-lightest, rgba(0, 0, 0, .04))}.popup-container .actions-container .apply{cursor:pointer;padding:10px 32px;text-align:center;color:var(--bg-primary, #FFFFFF);font-size:16px;line-height:24px;background:var(--brand-primary, #0937B2);border-radius:8px}\n"] }]
|
|
440
455
|
}], () => [], { selectElement: [{
|
|
441
456
|
type: ViewChild,
|
|
442
457
|
args: ['select', { static: false }]
|
|
@@ -445,4 +460,4 @@ export class MultiSelectDropdownComponent {
|
|
|
445
460
|
args: ['popupContainer', { static: false }]
|
|
446
461
|
}] }); })();
|
|
447
462
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MultiSelectDropdownComponent, { className: "MultiSelectDropdownComponent" }); })();
|
|
448
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL211bHRpLXNlbGVjdC1kcm9wZG93bi9tdWx0aS1zZWxlY3QtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvbXVsdGktc2VsZWN0LWRyb3Bkb3duL211bHRpLXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFFVixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBRUwsT0FBTyxFQUNQLHNCQUFzQixFQUN0QixhQUFhLEdBQ2QsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNEeEIsNkJBQW1GO0lBQ2pGLFlBQ0Y7SUFBQSxpQkFBSTs7O0lBREYsY0FDRjtJQURFLHNFQUNGOzs7SUFKQSw2QkFBNkM7SUFDN0MsNEJBQWdCO0lBQUEsWUFBYTtJQUFBLGlCQUFJO0lBQ2pDLHdGQUFtRjs7OztJQURuRSxlQUFhO0lBQWIsb0NBQWE7SUFDekIsY0FBK0Q7SUFBL0QsOEZBQStEOzs7SUFLbkUsd0JBQ2U7OztJQUZqQiw2QkFBNEM7SUFDMUMsK0dBQXdEOzs7O0lBQXpDLGNBQXVDO0lBQXZDLCtEQUF1Qzs7OztJQW1DcEQsK0JBUUM7SUFDQywyQkFLRTtJQUNKLGlCQUFNOzs7OztJQWFOLCtCQVNDO0lBTkMscU5BQVMsa0NBQTJCLEtBQUM7SUFPckMsMkJBS0U7SUFDSixpQkFBTTs7OztJ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QztZQUcxQiw4QkFBbUI7WUFPbkIsQUFORSwrRkFBNkMsa0ZBTUg7WUFJNUMsaUJBQU07O1lBQ04sOEJBUUM7WUFDQywwQkFLRTtZQUdSLEFBREUsQUFERSxpQkFBTSxFQUNGLEVBQ0Y7WUFDTiwrSEFBNkI7O1lBM0MzQiw0SUFHRTtZQVFBLGNBQXVEO1lBQXZELG1GQUF1RDtZQUd0QyxlQUE0QjtZQUE1QixpREFBNEI7WUFNOUIsY0FBMkI7WUFBM0IsZ0RBQTJCO1lBT3hDLGNBQXlFO1lBQXpFLHVHQUF5RTs7O2lGRFNsRSw0QkFBNEI7Y0FMeEMsU0FBUzsyQkFDRSwyQkFBMkI7b0JBMkNHLGFBQWE7a0JBQXBELFNBQVM7bUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNVLGNBQWM7a0JBQTdELFNBQVM7bUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOztrRkF4Q25DLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgc2lnbmFsLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgT3ZlcmxheVJlZixcbiAgT3ZlcmxheSxcbiAgQ29ubmVjdGlvblBvc2l0aW9uUGFpcixcbiAgT3ZlcmxheUNvbmZpZyxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpU2VsZWN0RHJvcGRvd25JdGVtIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgY2hlY2tlZD86IGJvb2xlYW47XG4gIGljb24/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPUFRJT05TIHtcbiAgc29ydExhYmVsczogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWlzLW11bHRpLXNlbGVjdC1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QtZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdERyb3Bkb3duQ29tcG9uZW50IHtcbiAgLy8gRGVwZW5kZW5jaWVzIEluamVjdGlvblxuICBwcml2YXRlIHJlYWRvbmx5IGVSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG4gIC8vIFNpZ25hbC1iYXNlZCBJbnB1dHNcbiAgcHVibGljIGRhdGEgPSBpbnB1dDxNdWx0aVNlbGVjdERyb3Bkb3duSXRlbVtdPihbXSk7XG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW1zID0gaW5wdXQ8TXVsdGlTZWxlY3REcm9wZG93bkl0ZW1bXT4oW10pO1xuICBwdWJsaWMgbGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdTZWxlY3QnKTtcbiAgcHVibGljIGhlaWdodCA9IGlucHV0PHN0cmluZz4oJycpO1xuICBwdWJsaWMgd2lkdGggPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcHVibGljIGRyb3Bkb3duTGlzdEhlaWdodCA9IGlucHV0PHN0cmluZz4oJycpO1xuICBwdWJsaWMgZHJvcGRvd25MaXN0V2lkdGggPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcHVibGljIGRyb3Bkb3duTGlzdFBvc2l0aW9uID0gaW5wdXQ8J0xlZnQnIHwgJ1JpZ2h0Jz4oJ0xlZnQnKTtcbiAgcHVibGljIGVuYWJsZVNlbGVjdEFsbCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHNlYXJjaEVuYWJsZWQgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHNob3dTZWxlY3RlZENvdW50ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgbm9EYXRhTWVzc2FnZSA9IGlucHV0PHN0cmluZz4oJ05vIERhdGEnKTtcbiAgcHVibGljIG9wdGlvbnMgPSBpbnB1dDxPUFRJT05TPih7XG4gICAgc29ydExhYmVsczogdHJ1ZSxcbiAgfSk7XG4gIHB1YmxpYyBoaWRlQXBwbHlCdXR0b24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyBzZWFyY2hJbnB1dFBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignU2VhcmNoIEtleXdvcmQnKTtcbiAgcHVibGljIGN1c3RvbUxhYmVsVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuXG4gIC8vIFNpZ25hbC1iYXNlZCBPdXRwdXRcbiAgcHVibGljIG9uQ2hhbmdlID0gb3V0cHV0PE11bHRpU2VsZWN0RHJvcGRvd25JdGVtW10+KCk7XG5cbiAgLy8gSW50ZXJuYWwgU2lnbmFscyBmb3IgY29tcG9uZW50IHN0YXRlXG4gIHB1YmxpYyBpc09wZW4gPSBzaWduYWwoZmFsc2UpO1xuICBwdWJsaWMgc2VhcmNoSW5wdXQgPSBzaWduYWwoJycpO1xuICBwdWJsaWMgaXNTZWFyY2hJbnB1dEZvY3VzZWQgPSBzaWduYWwoZmFsc2UpO1xuICBwdWJsaWMgaW50ZXJuYWxTZWxlY3RlZEl0ZW1zID0gc2lnbmFsPE11bHRpU2VsZWN0RHJvcGRvd25JdGVtW10+KFtdKTtcbiAgcHVibGljIGludGVybmFsRGF0YSA9IHNpZ25hbDxNdWx0aVNlbGVjdERyb3Bkb3duSXRlbVtdPihbXSk7XG5cbiAgLy8gQ29uc3RhbnRzXG4gIHByaXZhdGUgcmVhZG9ubHkgU0VMRUNUX0FMTF9FTlVNID0gJ1NFTEVDVF9BTExfRU5BQkxFRCc7XG5cbiAgQFZpZXdDaGlsZCgnc2VsZWN0JywgeyBzdGF0aWM6IGZhbHNlIH0pIHNlbGVjdEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3BvcHVwQ29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHBvcHVwQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjxFbGVtZW50PjtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlcygpO1xuICAgIH0sIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24odGhpcy5wb3B1cENvbnRhaW5lciwgdGhpcy5zZWxlY3RFbGVtZW50Py5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRWZmZWN0IHRvIG1hbmFnZSB0aGUgY29tcG9uZW50J3MgaW50ZXJuYWwgc3RhdGUgYmFzZWQgb24gZXh0ZXJuYWwgaW5wdXRzLlxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVJbnB1dENoYW5nZXMoKTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5kYXRhKCk7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkSXRlbXMoKTtcblxuICAgIGNvbnN0IGZvcm1hdHRlZERhdGEgPSB2YWx1ZXM/Lm1hcChpdGVtID0+ICh7XG4gICAgICAuLi5pdGVtLFxuICAgICAgY2hlY2tlZDogc2VsZWN0ZWQ/LnNvbWUocyA9PiBzLnZhbHVlID09PSBpdGVtLnZhbHVlKSA/PyBmYWxzZVxuICAgIH0pKSB8fCBbXTtcbiAgICBcbiAgICB0aGlzLmludGVybmFsRGF0YS5zZXQoZm9ybWF0dGVkRGF0YSk7XG4gICAgdGhpcy5pbnRlcm5hbFNlbGVjdGVkSXRlbXMuc2V0KHNlbGVjdGVkKTtcblxuICAgIC8vIEFwcGx5IHRoZSAnc2VsZWN0IGFsbCcgbG9naWNcbiAgICB0aGlzLmludGVybmFsRGF0YS51cGRhdGUoY3VycmVudERhdGEgPT4ge1xuICAgICAgY29uc3QgaXNTZWxlY3RBbGwgPSB0aGlzLmVuYWJsZVNlbGVjdEFsbCgpICYmIGN1cnJlbnREYXRhLmV2ZXJ5KGl0ZW0gPT4gaXRlbS5jaGVja2VkIHx8IGl0ZW0udmFsdWUgPT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNKTtcbiAgICAgIGNvbnN0IHNlbGVjdEFsbEl0ZW0gPSB7XG4gICAgICAgIGxhYmVsOiAnU2VsZWN0IGFsbCcsXG4gICAgICAgIHZhbHVlOiB0aGlzLlNFTEVDVF9BTExfRU5VTSxcbiAgICAgICAgY2hlY2tlZDogaXNTZWxlY3RBbGxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGhhc1NlbGVjdEFsbCA9IGN1cnJlbnREYXRhLnNvbWUodCA9PiB0LnZhbHVlID09PSB0aGlzLlNFTEVDVF9BTExfRU5VTSk7XG4gICAgICBpZiAodGhpcy5lbmFibGVTZWxlY3RBbGwoKSkge1xuICAgICAgICBpZiAoIWhhc1NlbGVjdEFsbCkge1xuICAgICAgICAgIHJldHVybiBbc2VsZWN0QWxsSXRlbSwgLi4uY3VycmVudERhdGFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBjdXJyZW50RGF0YS5tYXAoaXRlbSA9PiBpdGVtLnZhbHVlID09PSB0aGlzLlNFTEVDVF9BTExfRU5VTSA/IHNlbGVjdEFsbEl0ZW0gOiBpdGVtKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnREYXRhLmZpbHRlcihpdGVtID0+IGl0ZW0udmFsdWUgIT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wdXRlZCBzaWduYWwgZm9yIHRoZSBkYXRhIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZHJvcGRvd24gbGlzdC5cbiAgICogRmlsdGVycyBiYXNlZCBvbiBzZWFyY2ggaW5wdXQgYW5kIHNvcnRzIGlmIHRoZSBvcHRpb24gaXMgZW5hYmxlZC5cbiAgICovXG4gIHB1YmxpYyBkaXNwbGF5RGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBsZXQgZGF0YVRvRGlzcGxheSA9IHRoaXMuc2VhcmNoRW5hYmxlZCgpICYmIHRoaXMuc2VhcmNoSW5wdXQoKSA/IFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJCeVZhbHVlKHRoaXMuaW50ZXJuYWxEYXRhKCksIHRoaXMuc2VhcmNoSW5wdXQoKSkgOiBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxEYXRhKCk7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zKCkuc29ydExhYmVscykge1xuICAgICAgZGF0YVRvRGlzcGxheSA9IHRoaXMuc29ydERhdGEoZGF0YVRvRGlzcGxheSk7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBkYXRhVG9EaXNwbGF5O1xuICB9KTtcblxuICAvKipcbiAgICogSGVscGVyIGZ1bmN0aW9uIHRvIHNvcnQgdGhlIGRhdGEuXG4gICAqL1xuICBwcml2YXRlIHNvcnREYXRhKGRhdGE6IE11bHRpU2VsZWN0RHJvcGRvd25JdGVtW10pOiBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbVtdIHtcbiAgICAvLyBTZXBhcmF0ZSBcIlNlbGVjdCBBbGxcIiBvcHRpb24gZnJvbSBvdGhlciBpdGVtc1xuICAgIGNvbnN0IHNlbGVjdEFsbEl0ZW0gPSBkYXRhLmZpbmQodCA9PiB0LnZhbHVlID09PSB0aGlzLlNFTEVDVF9BTExfRU5VTSk7XG4gICAgY29uc3Qgb3RoZXJJdGVtcyA9IGRhdGEuZmlsdGVyKHQgPT4gdC52YWx1ZSAhPT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU0pO1xuICAgIFxuICAgIGNvbnN0IGNoZWNrZWRWYWx1ZXMgPSBvdGhlckl0ZW1zLmZpbHRlcihhID0+IGEuY2hlY2tlZCk7XG4gICAgY29uc3QgdW5DaGVja2VkVmFsdWVzID0gb3RoZXJJdGVtcy5maWx0ZXIoYSA9PiAhYS5jaGVja2VkKTtcblxuICAgIGNvbnN0IHNvcnRGbiA9IChhOiBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbSwgYjogTXVsdGlTZWxlY3REcm9wZG93bkl0ZW0pID0+IGEubGFiZWwgPiBiLmxhYmVsID8gMSA6IC0xO1xuICAgIFxuICAgIGNvbnN0IHNvcnRlZEl0ZW1zID0gW1xuICAgICAgLi4uY2hlY2tlZFZhbHVlcy5zb3J0KHNvcnRGbiksXG4gICAgICAuLi51bkNoZWNrZWRWYWx1ZXMuc29ydChzb3J0Rm4pXG4gICAgXTtcbiAgICBcbiAgICAvLyBBZGQgXCJTZWxlY3QgQWxsXCIgYXQgdGhlIHRvcCBpZiBpdCBleGlzdHNcbiAgICByZXR1cm4gc2VsZWN0QWxsSXRlbSA/IFtzZWxlY3RBbGxJdGVtLCAuLi5zb3J0ZWRJdGVtc10gOiBzb3J0ZWRJdGVtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgZnVuY3Rpb24gdG8gZmlsdGVyIHRoZSBkYXRhLlxuICAgKi9cbiAgcHJpdmF0ZSBmaWx0ZXJCeVZhbHVlKGFycmF5OiBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbVtdLCBzZWFyY2g6IHN0cmluZyk6IE11bHRpU2VsZWN0RHJvcGRvd25JdGVtW10ge1xuICAgIHJldHVybiBhcnJheS5maWx0ZXIobyA9PiBvPy5sYWJlbD8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSkpIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIGRyb3Bkb3duJ3Mgb3Blbi9jbG9zZSBzdGF0ZS5cbiAgICovXG4gIHB1YmxpYyB0b2dnbGVEcm9wZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmlzT3Blbi51cGRhdGUoY3VycmVudCA9PiAhY3VycmVudCk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgY2hlY2tlZCBzdGF0ZSBvZiBhIHNwZWNpZmljIGl0ZW0uXG4gICAqIEhhbmRsZXMgdGhlICdTZWxlY3QgQWxsJyBsb2dpYy5cbiAgICovXG4gIHB1YmxpYyB0b2dnbGVTZWxlY3RlZEl0ZW1zKGV2ZW50OiBFdmVudCwgaXRlbTogTXVsdGlTZWxlY3REcm9wZG93bkl0ZW0pOiB2b2lkIHtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5lbmFibGVTZWxlY3RBbGwoKSAmJiBpdGVtLnZhbHVlID09PSB0aGlzLlNFTEVDVF9BTExfRU5VTSkge1xuICAgICAgdGhpcy5pbnRlcm5hbERhdGEudXBkYXRlKGl0ZW1zID0+XG4gICAgICAgIGl0ZW1zLm1hcCh0ID0+ICh7IC4uLnQsIGNoZWNrZWQ6ICFpdGVtLmNoZWNrZWQgfSkpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmludGVybmFsRGF0YS51cGRhdGUoaXRlbXMgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkSXRlbXMgPSBpdGVtcy5tYXAoYSA9PiBcbiAgICAgICAgICBhLnZhbHVlID09PSBpdGVtLnZhbHVlID8geyAuLi5hLCBjaGVja2VkOiAhYS5jaGVja2VkIH0gOiBhXG4gICAgICAgICk7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBhbGxDaGVja2VkID0gdXBkYXRlZEl0ZW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihyID0+IHIudmFsdWUgIT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5ldmVyeSh0ID0+IHQuY2hlY2tlZCk7XG4gICAgICAgIFxuICAgICAgICByZXR1cm4gdXBkYXRlZEl0ZW1zLm1hcChhID0+IFxuICAgICAgICAgIGEudmFsdWUgPT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNID8geyAuLi5hLCBjaGVja2VkOiBhbGxDaGVja2VkIH0gOiBhXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oaWRlQXBwbHlCdXR0b24oKSkge1xuICAgICAgdGhpcy5hcHBseUZpbHRlcnMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgdGhlIHNlbGVjdGVkIGl0ZW1zIGFuZCBjbG9zZXMgdGhlIGRyb3Bkb3duLlxuICAgKi9cbiAgcHVibGljIGFwcGx5RmlsdGVycygpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuaW50ZXJuYWxEYXRhKClcbiAgICAgIC5maWx0ZXIoYSA9PiBhLmNoZWNrZWQgJiYgYS52YWx1ZSAhPT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU0pXG4gICAgICAubWFwKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCB7IGNoZWNrZWQsIC4uLmRhdGEgfSA9IGl0ZW07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfSk7XG4gICAgXG4gICAgLy8gVXNlIHRoZSBzaWduYWwgb3V0cHV0J3MgZW1pdCBtZXRob2RcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoc2VsZWN0ZWQgYXMgTXVsdGlTZWxlY3REcm9wZG93bkl0ZW1bXSk7XG4gICAgdGhpcy5pbnRlcm5hbFNlbGVjdGVkSXRlbXMuc2V0KHNlbGVjdGVkIGFzIE11bHRpU2VsZWN0RHJvcGRvd25JdGVtW10pO1xuICAgIGlmICghdGhpcy5oaWRlQXBwbHlCdXR0b24oKSkge1xuICAgICAgdGhpcy5pc09wZW4uc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBkcm9wZG93biB0byBhbiBlbXB0eSBzdGF0ZS5cbiAgICovXG4gIHB1YmxpYyBvblJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZXJuYWxEYXRhLnVwZGF0ZShpdGVtcyA9PiBcbiAgICAgIGl0ZW1zLm1hcChpdGVtID0+ICh7IC4uLml0ZW0sIGNoZWNrZWQ6IGZhbHNlIH0pKVxuICAgICk7XG4gICAgdGhpcy5hcHBseUZpbHRlcnMoKTtcbiAgICB0aGlzLmlzT3Blbi5zZXQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgZHJvcGRvd24gYW5kIHJldmVydHMgYW55IGNoYW5nZXMuXG4gICAqL1xuICBwdWJsaWMgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5pc09wZW4uc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNlYXJjaElucHV0LnNldCgnJyk7XG4gICAgLy8gUmV2ZXJ0IGludGVybmFsIGRhdGEgdG8gbWF0Y2ggdGhlIGxhc3Qgc2VsZWN0ZWQgaXRlbXNcbiAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIGZvY3VzIHN0YXRlIG9mIHRoZSBzZWFyY2ggaW5wdXQuXG4gICAqL1xuICBwdWJsaWMgc2VhcmNoSW5wdXRGb2N1c2VkKGlzRm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNTZWFyY2hJbnB1dEZvY3VzZWQuc2V0KGlzRm9jdXNlZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBzZWFyY2ggaW5wdXQgYW5kIHVuZm9jdXNlcyBpdC5cbiAgICovXG4gIHB1YmxpYyBzZWFyY2hJbnB1dENhbmNlbGVkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc2VhcmNoSW5wdXQuc2V0KCcnKTtcbiAgICB0aGlzLmlzU2VhcmNoSW5wdXRGb2N1c2VkLnNldChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgY2hhbmdlIGV2ZW50IGZyb20gdGhlIHNlYXJjaCBpbnB1dC5cbiAgICovXG4gIHB1YmxpYyBzZWFyY2hJbnB1dE9uQ2hhbmdlKG5ld1ZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaElucHV0LnNldChuZXdWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbmQgZGlzcGxheXMgdGhlIG92ZXJsYXkgZm9yIHRoZSBkcm9wZG93biBsaXN0LlxuICAgKi9cbiAgcHJpdmF0ZSBvcGVuRHJvcGRvd24oXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+LFxuICAgIG9yaWdpbjogSFRNTEVsZW1lbnRcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZiAmJiB0aGlzLm92ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBwb3NpdGlvbnNCb3R0b20gPSBbXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICdib3R0b20nIH0sIHsgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJyB9LCAwLCA0KSxcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICdib3R0b20nIH0sIHsgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ3RvcCcgfSwgMCwgNCksXG4gICAgXTtcbiAgICBjb25zdCBwb3NpdGlvbnNUb3AgPSBbXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICd0b3AnIH0sIHsgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAnYm90dG9tJyB9LCAwLCAtNCksXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6ICdlbmQnLCBvcmlnaW5ZOiAndG9wJyB9LCB7IG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICdib3R0b20nIH0sIDAsIC00KSxcbiAgICBdO1xuXG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgLnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKG9yaWdpbilcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgLi4uKHRoaXMuZHJvcGRvd25MaXN0UG9zaXRpb24oKSA9PT0gJ1JpZ2h0JyA/IHBvc2l0aW9uc0JvdHRvbS5yZXZlcnNlKCkgOiBwb3NpdGlvbnNCb3R0b20pLFxuICAgICAgICAuLi4odGhpcy5kcm9wZG93bkxpc3RQb3NpdGlvbigpID09PSAnUmlnaHQnID8gcG9zaXRpb25zVG9wLnJldmVyc2UoKSA6IHBvc2l0aW9uc1RvcCksXG4gICAgICBdKVxuICAgICAgLndpdGhQdXNoKHRydWUpO1xuXG4gICAgY29uc3QgY29uZmlncyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgYmFja2Ryb3BDbGFzczogJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJyxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgd2lkdGg6IG9yaWdpbj8uY2xpZW50V2lkdGgsXG4gICAgfSk7XG4gICAgXG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWdzKTtcbiAgICBcbiAgICBpZiAodGhpcy5kcm9wZG93bkxpc3RXaWR0aCgpKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYudXBkYXRlU2l6ZSh7IHdpZHRoOiB0aGlzLmRyb3Bkb3duTGlzdFdpZHRoKCkgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRyb3Bkb3duTGlzdEhlaWdodCgpKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYudXBkYXRlU2l6ZSh7IGhlaWdodDogdGhpcy5kcm9wZG93bkxpc3RIZWlnaHQoKSB9KTtcbiAgICB9XG4gICAgXG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMub25DYW5jZWwoKSk7XG4gIH1cbn1cblxuIiwiPGRpdlxuICBjbGFzcz1cImNvbnRhaW5lclwiXG4gIFtuZ1N0eWxlXT1cIntcbiAgICBoZWlnaHQ6IGhlaWdodCgpLmxlbmd0aCA+IDAgPyBoZWlnaHQoKSA6ICcnLFxuICAgIHdpZHRoOiB3aWR0aCgpLmxlbmd0aCA+IDAgPyB3aWR0aCgpIDogJydcbiAgfVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImRyb3Bkb3duXCJcbiAgICAjc2VsZWN0XG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgICAoa2V5dXAuZW50ZXIpPVwidG9nZ2xlRHJvcGRvd24oKVwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKClcIlxuICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQnOiBpc09wZW4oKSA/ICcjRTZFQkY3JyA6ICcnIH1cIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWN1c3RvbUxhYmVsVGVtcGxhdGUoKVwiPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0XCI+e3sgbGFiZWwoKSB9fTwvcD5cbiAgICAgIDxwICpuZ0lmPVwic2hvd1NlbGVjdGVkQ291bnQoKSAmJiBpbnRlcm5hbFNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAwXCIgY2xhc3M9XCJjb3VudFwiPlxuICAgICAgICB7eyBpbnRlcm5hbFNlbGVjdGVkSXRlbXMoKS5sZW5ndGggfX1cbiAgICAgIDwvcD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tTGFiZWxUZW1wbGF0ZSgpXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tTGFiZWxUZW1wbGF0ZSgpXCI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8c3ZnXG4gICAgICBjbGFzcz1cImhhbmRsZVwiXG4gICAgICBbbmdTdHlsZV09XCJ7ICd0cmFuc2Zvcm0nOiBpc09wZW4oKSA/ICdyb3RhdGUoMTgwZGVnKScgOiAncm90YXRlKDBkZWcpJyB9XCJcbiAgICAgIHdpZHRoPVwiMjBcIlxuICAgICAgaGVpZ2h0PVwiMjBcIlxuICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMTMuODI1IDcuMTU4NDVMMTAgMTAuOTc1MUw2LjE3NSA3LjE1ODQ1TDUgOC4zMzM0NUwxMCAxMy4zMzM0TDE1IDguMzMzNDVMMTMuODI1IDcuMTU4NDVaXCJcbiAgICAgICAgZmlsbD1cIiMxODFGMzNcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjcG9wdXBDb250YWluZXI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInBvcHVwLWNvbnRhaW5lclwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgJ2hlaWdodCc6IGRyb3Bkb3duTGlzdEhlaWdodCgpLFxuICAgICAgd2lkdGg6IGRyb3Bkb3duTGlzdFdpZHRoKClcbiAgICB9XCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAncG9zaXRpb24tbGVmdCc6IGRyb3Bkb3duTGlzdFBvc2l0aW9uKCkgPT09ICdMZWZ0JyxcbiAgICAgICdwb3NpdGlvbi1yaWdodCc6IGRyb3Bkb3duTGlzdFBvc2l0aW9uKCkgPT09ICdSaWdodCdcbiAgICB9XCJcbiAgPlxuICAgICAgPGRpdiAqbmdJZj1cInNlYXJjaEVuYWJsZWQoKVwiIGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgICA8c3ZnXG4gICAgICAgICAgKm5nSWY9XCIhaXNTZWFyY2hJbnB1dEZvY3VzZWQoKVwiXG4gICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaWNvblwiXG4gICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgaGVpZ2h0PVwiMjRcIlxuICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgZD1cIk00LjIxNTA4IDExLjE0NTZDNC4yMTUwOCA3LjMxNzkgNy4zMzcyMiA0LjIxMTY1IDExLjE5MjYgNC4yMTE2NUMxNS4wNDggNC4yMTE2NSAxOC4xNzAyIDcuMzE3OSAxOC4xNzAyIDExLjE0NTZDMTguMTcwMiAxMi42OTMxIDE3LjY1OTkgMTQuMTIyNiAxNi43OTcyIDE1LjI3NjdMMTUuMzY4NSAxNi43MDEzQzE0LjIwNDQgMTcuNTY2OCAxMi43NTkgMTguMDc5NiAxMS4xOTI2IDE4LjA3OTZDNy4zMzcyMiAxOC4wNzk2IDQuMjE1MDggMTQuOTczNCA0LjIxNTA4IDExLjE0NTZaTTE1Ljk0MjEgMTcuNzgzNUMxNC42MDIxIDE4LjczMjkgMTIuOTYyNyAxOS4yOTEzIDExLjE5MjYgMTkuMjkxM0M2LjY2OTc3IDE5LjI5MTMgMyAxNS42NDYxIDMgMTEuMTQ1NkMzIDYuNjQ1MTIgNi42Njk3NyAzIDExLjE5MjYgM0MxNS43MTU1IDMgMTkuMzg1MiA2LjY0NTEyIDE5LjM4NTIgMTEuMTQ1NkMxOS4zODUyIDEyLjkzNzEgMTguODAzNyAxNC41OTMxIDE3LjgxODQgMTUuOTM3NUwxOS44MzYxIDE3LjQwNDhDMjAuNjcwNSAxNy45MTIgMjEuNzU1NCAxOC42NTQzIDIwLjI0NTQgMjAuMjE1QzE4LjczNTMgMjEuNzc1NiAxOC4wMDk5IDIwLjY2NjMgMTcuNDk5MSAxOS44MzY0TDE1Ljk0MjEgMTcuNzgzNVpcIlxuICAgICAgICAgICAgZmlsbD1cIiM2QTczN0RcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBbbmdNb2RlbF09XCJzZWFyY2hJbnB1dCgpXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICBwYWRkaW5nTGVmdDogaXNTZWFyY2hJbnB1dEZvY3VzZWQoKSA/ICcxMnB4JyA6ICc0NXB4JyxcbiAgICAgICAgICAgIGJvcmRlcjogaXNTZWFyY2hJbnB1dEZvY3VzZWQoKSA/ICcxcHggc29saWQgIzA5MzdCMicgOiAnMXB4IHNvbGlkICNlMGUwZTAnLFxuICAgICAgICAgICAgcGFkZGluZ1JpZ2h0OiBpc1NlYXJjaElucHV0Rm9jdXNlZCgpID8gJzQ1cHgnIDogJzEwcHgnXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoSW5wdXRPbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaXNTZWFyY2hJbnB1dEZvY3VzZWQoKSA/ICcnIDogc2VhcmNoSW5wdXRQbGFjZWhvbGRlcigpXCJcbiAgICAgICAgICAoZm9jdXMpPVwic2VhcmNoSW5wdXRGb2N1c2VkKHRydWUpXCJcbiAgICAgICAgICBjbGFzcz1cInNlYXJjaC1pbnB1dFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICAqbmdJZj1cImlzU2VhcmNoSW5wdXRGb2N1c2VkKClcIlxuICAgICAgICAgIGNsYXNzPVwiY2FuY2VsLWljb25cIlxuICAgICAgICAgIChjbGljayk9XCJzZWFyY2hJbnB1dENhbmNlbGVkKCRldmVudClcIlxuICAgICAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgICAgIGhlaWdodD1cIjI0XCJcbiAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgID5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgIGQ9XCJNOC44NzQ0NiA3LjMyMTQ0QzguNDQ1ODggNi44OTI4NSA3Ljc1MSA2Ljg5Mjg1IDcuMzIyNDIgNy4zMjE0NEM2Ljg5MzgzIDcuNzUwMDIgNi44OTM4MyA4LjQ0NDkgNy4zMjI0MiA4Ljg3MzQ5TDEwLjQ0ODggMTEuOTk5OUw3LjMyMzU3IDE1LjEyNTJDNi44OTQ5OCAxNS41NTM4IDYuODk0OTggMTYuMjQ4NiA3LjMyMzU3IDE2LjY3NzJDNy43NTIxNSAxNy4xMDU4IDguNDQ3MDMgMTcuMTA1OCA4Ljg3NTYxIDE2LjY3NzJMMTIuMDAwOSAxMy41NTJMMTUuMTI2MSAxNi42NzcyQzE1LjU1NDcgMTcuMTA1OCAxNi4yNDk2IDE3LjEwNTggMTYuNjc4MSAxNi42NzcyQzE3LjEwNjcgMTYuMjQ4NiAxNy4xMDY3IDE1LjU1MzcgMTYuNjc4MSAxNS4xMjUxTDEzLjU1MjkgMTEuOTk5OUwxNi42NzkzIDguODczNTRDMTcuMTA3OSA4LjQ0NDk2IDE3LjEwNzkgNy43NTAwOCAxNi42NzkzIDcuMzIxNUMxNi4yNTA3IDYuODkyOTEgMTUuNTU1OCA2Ljg5MjkxIDE1LjEyNzMgNy4zMjE1TDEyLjAwMDkgMTAuNDQ3OUw4Ljg3NDQ2IDcuMzIxNDRaXCJcbiAgICAgICAgICAgIGZpbGw9XCIjNkE3MzdEXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIml0ZW1zXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIml0ZW1cIlxuICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgKGtleXVwLmVudGVyKT1cInRvZ2dsZVNlbGVjdGVkSXRlbXMoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNlbGVjdGVkSXRlbXMoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGlzcGxheURhdGEoKVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6aXRlbS5kaXNhYmxlZH1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWNvbnRhaW5lci13cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3gtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxtaXMtY2hlY2tib3ggW2NoZWNrZWRdPVwiaXRlbS5jaGVja2VkXCIgdGFiaW5kZXg9XCItMVwiPjwvbWlzLWNoZWNrYm94PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiICpuZ0lmPVwiaXRlbS5pY29uXCI+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiaWNvblwiIFtzcmNdPVwiaXRlbS5pY29uXCIgYWx0PVwibm8gaW1nXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJub0RhdGFcIiAqbmdJZj1cImRpc3BsYXlEYXRhKCkubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAge3sgc2VhcmNoSW5wdXQoKSA9PT0gXCJcIiA/IG5vRGF0YU1lc3NhZ2UoKSA6IFwiTm8gcmVzdWx0c1wiIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImludGVybmFsRGF0YSgpLmxlbmd0aCAhPT0gMCAmJiAhaGlkZUFwcGx5QnV0dG9uKClcIiBjbGFzcz1cImFjdGlvbnMtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsnd2lkdGgnOiAnY2FsYyg1MCUgLSA0cHgpJ31cIiAoY2xpY2spPVwib25SZXNldCgpXCI+XG4gICAgICAgIDxtaXMtYnV0dG9uIFtuYW1lXT1cIidSZXNldCdcIiBbdHlwZV09XCInVGV4dCdcIiBbd2lkdGhdPVwiJzEwMCUnXCIgPjwvbWlzLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogJ2NhbGMoNTAlIC0gNHB4KSd9XCIgKGNsaWNrKT1cImFwcGx5RmlsdGVycygpXCI+XG4gICAgICAgIDxtaXMtYnV0dG9uIFtuYW1lXT1cIidBcHBseSdcIiBbdHlwZV09XCInU29saWQnXCIgW3dpZHRoXT1cIicxMDAlJ1wiID48L21pcy1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG5cbiJdfQ==
|
|
463
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL211bHRpLXNlbGVjdC1kcm9wZG93bi9tdWx0aS1zZWxlY3QtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvbXVsdGktc2VsZWN0LWRyb3Bkb3duL211bHRpLXNlbGVjdC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFFVixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBRUwsT0FBTyxFQUNQLHNCQUFzQixFQUN0QixhQUFhLEdBQ2QsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNEeEIsNkJBQW1GO0lBQ2pGLFlBQ0Y7SUFBQSxpQkFBSTs7O0lBREYsY0FDRjtJQURFLHNFQUNGOzs7SUFKQSw2QkFBNkM7SUFDN0MsNEJBQWdCO0lBQUEsWUFBYTtJQUFBLGlCQUFJO0lBQ2pDLHdGQUFtRjs7OztJQURuRSxlQUFhO0lBQWIsb0NBQWE7SUFDekIsY0FBK0Q7SUFBL0QsOEZBQStEOzs7SUFLbkUsd0JBQ2U7OztJQUZqQiw2QkFBNEM7SUFDMUMsK0dBQXdEOzs7O0lBQXpDLGNBQXVDO0lBQXZDLCtEQUF1Qzs7OztJQW9DcEQsK0JBUUM7SUFDQywyQkFLRTtJQUNKLGlCQUFNOzs7OztJQWFOLCtCQVNDO0lBTkMscU5BQVMsa0NBQTJCLEtBQUM7SUFPckMsMkJBS0U7SUFDSixpQkFBTTs7OztJ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RSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7NkhBbFNVLDRCQUE0QjtvRUFBNUIsNEJBQTRCOzs7Ozs7Ozs7WUMvQnZDLEFBUEYsOEJBTUMsZ0JBUUU7WUFGQyxBQURBLHdKQUFlLG9CQUFnQixLQUFDLCtIQUN2QixvQkFBZ0IsS0FBQztZQUcxQiw4QkFBbUI7WUFPbkIsQUFORSwrRkFBNkMsa0ZBTUg7WUFJNUMsaUJBQU07O1lBQ04sOEJBUUM7WUFDQywwQkFLRTtZQUdSLEFBREUsQUFERSxpQkFBTSxFQUNGLEVBQ0Y7WUFDTiwrSEFBNkI7O1lBM0MzQiw0SUFHRTtZQVFBLGNBQXVEO1lBQXZELG1GQUF1RDtZQUd0QyxlQUE0QjtZQUE1QixpREFBNEI7WUFNOUIsY0FBMkI7WUFBM0IsZ0RBQTJCO1lBT3hDLGNBQXlFO1lBQXpFLHVHQUF5RTs7O2lGRFNsRSw0QkFBNEI7Y0FMeEMsU0FBUzsyQkFDRSwyQkFBMkI7b0JBNENHLGFBQWE7a0JBQXBELFNBQVM7bUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNVLGNBQWM7a0JBQTdELFNBQVM7bUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOztrRkF6Q25DLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgc2lnbmFsLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgT3ZlcmxheVJlZixcbiAgT3ZlcmxheSxcbiAgQ29ubmVjdGlvblBvc2l0aW9uUGFpcixcbiAgT3ZlcmxheUNvbmZpZyxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpU2VsZWN0RHJvcGRvd25JdGVtIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgY2hlY2tlZD86IGJvb2xlYW47XG4gIGljb24/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPUFRJT05TIHtcbiAgc29ydExhYmVsczogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWlzLW11bHRpLXNlbGVjdC1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QtZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdERyb3Bkb3duQ29tcG9uZW50IHtcbiAgLy8gRGVwZW5kZW5jaWVzIEluamVjdGlvblxuICBwcml2YXRlIHJlYWRvbmx5IGVSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG4gIC8vIFNpZ25hbC1iYXNlZCBJbnB1dHNcbiAgcHVibGljIGRhdGEgPSBpbnB1dDxNdWx0aVNlbGVjdERyb3Bkb3duSXRlbVtdPihbXSk7XG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW1zID0gaW5wdXQ8TXVsdGlTZWxlY3REcm9wZG93bkl0ZW1bXT4oW10pO1xuICBwdWJsaWMgbGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdTZWxlY3QnKTtcbiAgcHVibGljIGhlaWdodCA9IGlucHV0PHN0cmluZz4oJycpO1xuICBwdWJsaWMgd2lkdGggPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcHVibGljIGRyb3Bkb3duTGlzdEhlaWdodCA9IGlucHV0PHN0cmluZz4oJycpO1xuICBwdWJsaWMgZHJvcGRvd25MaXN0V2lkdGggPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcHVibGljIGRyb3Bkb3duTGlzdFBvc2l0aW9uID0gaW5wdXQ8J0xlZnQnIHwgJ1JpZ2h0Jz4oJ0xlZnQnKTtcbiAgcHVibGljIGVuYWJsZVNlbGVjdEFsbCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHNlYXJjaEVuYWJsZWQgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHNob3dTZWxlY3RlZENvdW50ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgbm9EYXRhTWVzc2FnZSA9IGlucHV0PHN0cmluZz4oJ05vIERhdGEnKTtcbiAgcHVibGljIGN1c3RvbU1lc3NhZ2VUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KCk7XG4gIHB1YmxpYyBvcHRpb25zID0gaW5wdXQ8T1BUSU9OUz4oe1xuICAgIHNvcnRMYWJlbHM6IHRydWUsXG4gIH0pO1xuICBwdWJsaWMgaGlkZUFwcGx5QnV0dG9uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgc2VhcmNoSW5wdXRQbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oJ1NlYXJjaCBLZXl3b3JkJyk7XG4gIHB1YmxpYyBjdXN0b21MYWJlbFRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55Pj4oKTtcblxuICAvLyBTaWduYWwtYmFzZWQgT3V0cHV0XG4gIHB1YmxpYyBvbkNoYW5nZSA9IG91dHB1dDxNdWx0aVNlbGVjdERyb3Bkb3duSXRlbVtdPigpO1xuXG4gIC8vIEludGVybmFsIFNpZ25hbHMgZm9yIGNvbXBvbmVudCBzdGF0ZVxuICBwdWJsaWMgaXNPcGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgcHVibGljIHNlYXJjaElucHV0ID0gc2lnbmFsKCcnKTtcbiAgcHVibGljIGlzU2VhcmNoSW5wdXRGb2N1c2VkID0gc2lnbmFsKGZhbHNlKTtcbiAgcHVibGljIGludGVybmFsU2VsZWN0ZWRJdGVtcyA9IHNpZ25hbDxNdWx0aVNlbGVjdERyb3Bkb3duSXRlbVtdPihbXSk7XG4gIHB1YmxpYyBpbnRlcm5hbERhdGEgPSBzaWduYWw8TXVsdGlTZWxlY3REcm9wZG93bkl0ZW1bXT4oW10pO1xuXG4gIC8vIENvbnN0YW50c1xuICBwcml2YXRlIHJlYWRvbmx5IFNFTEVDVF9BTExfRU5VTSA9ICdTRUxFQ1RfQUxMX0VOQUJMRUQnO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdCcsIHsgc3RhdGljOiBmYWxzZSB9KSBzZWxlY3RFbGVtZW50OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdwb3B1cENvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBwb3B1cENvbnRhaW5lcjogVGVtcGxhdGVSZWY8RWxlbWVudD47XG4gIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZXMoKTtcbiAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XG4gICAgICAgIHRoaXMub3BlbkRyb3Bkb3duKHRoaXMucG9wdXBDb250YWluZXIsIHRoaXMuc2VsZWN0RWxlbWVudD8ubmF0aXZlRWxlbWVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEVmZmVjdCB0byBtYW5hZ2UgdGhlIGNvbXBvbmVudCdzIGludGVybmFsIHN0YXRlIGJhc2VkIG9uIGV4dGVybmFsIGlucHV0cy5cbiAgICovXG4gIHByaXZhdGUgaGFuZGxlSW5wdXRDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZGF0YSgpO1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZEl0ZW1zKCk7XG5cbiAgICBjb25zdCBmb3JtYXR0ZWREYXRhID0gdmFsdWVzPy5tYXAoaXRlbSA9PiAoe1xuICAgICAgLi4uaXRlbSxcbiAgICAgIGNoZWNrZWQ6IHNlbGVjdGVkPy5zb21lKHMgPT4gcy52YWx1ZSA9PT0gaXRlbS52YWx1ZSkgPz8gZmFsc2VcbiAgICB9KSkgfHwgW107XG4gICAgXG4gICAgdGhpcy5pbnRlcm5hbERhdGEuc2V0KGZvcm1hdHRlZERhdGEpO1xuICAgIHRoaXMuaW50ZXJuYWxTZWxlY3RlZEl0ZW1zLnNldChzZWxlY3RlZCk7XG5cbiAgICAvLyBBcHBseSB0aGUgJ3NlbGVjdCBhbGwnIGxvZ2ljXG4gICAgdGhpcy5pbnRlcm5hbERhdGEudXBkYXRlKGN1cnJlbnREYXRhID0+IHtcbiAgICAgIGNvbnN0IGlzU2VsZWN0QWxsID0gdGhpcy5lbmFibGVTZWxlY3RBbGwoKSAmJiBjdXJyZW50RGF0YS5ldmVyeShpdGVtID0+IGl0ZW0uY2hlY2tlZCB8fCBpdGVtLnZhbHVlID09PSB0aGlzLlNFTEVDVF9BTExfRU5VTSk7XG4gICAgICBjb25zdCBzZWxlY3RBbGxJdGVtID0ge1xuICAgICAgICBsYWJlbDogJ1NlbGVjdCBhbGwnLFxuICAgICAgICB2YWx1ZTogdGhpcy5TRUxFQ1RfQUxMX0VOVU0sXG4gICAgICAgIGNoZWNrZWQ6IGlzU2VsZWN0QWxsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBoYXNTZWxlY3RBbGwgPSBjdXJyZW50RGF0YS5zb21lKHQgPT4gdC52YWx1ZSA9PT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU0pO1xuICAgICAgaWYgKHRoaXMuZW5hYmxlU2VsZWN0QWxsKCkpIHtcbiAgICAgICAgaWYgKCFoYXNTZWxlY3RBbGwpIHtcbiAgICAgICAgICByZXR1cm4gW3NlbGVjdEFsbEl0ZW0sIC4uLmN1cnJlbnREYXRhXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gY3VycmVudERhdGEubWFwKGl0ZW0gPT4gaXRlbS52YWx1ZSA9PT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU0gPyBzZWxlY3RBbGxJdGVtIDogaXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50RGF0YS5maWx0ZXIoaXRlbSA9PiBpdGVtLnZhbHVlICE9PSB0aGlzLlNFTEVDVF9BTExfRU5VTSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZWQgc2lnbmFsIGZvciB0aGUgZGF0YSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGRyb3Bkb3duIGxpc3QuXG4gICAqIEZpbHRlcnMgYmFzZWQgb24gc2VhcmNoIGlucHV0IGFuZCBzb3J0cyBpZiB0aGUgb3B0aW9uIGlzIGVuYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgZGlzcGxheURhdGEgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgbGV0IGRhdGFUb0Rpc3BsYXkgPSB0aGlzLnNlYXJjaEVuYWJsZWQoKSAmJiB0aGlzLnNlYXJjaElucHV0KCkgPyBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyQnlWYWx1ZSh0aGlzLmludGVybmFsRGF0YSgpLCB0aGlzLnNlYXJjaElucHV0KCkpIDogXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmludGVybmFsRGF0YSgpO1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucygpLnNvcnRMYWJlbHMpIHtcbiAgICAgIGRhdGFUb0Rpc3BsYXkgPSB0aGlzLnNvcnREYXRhKGRhdGFUb0Rpc3BsYXkpO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gZGF0YVRvRGlzcGxheTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEhlbHBlciBmdW5jdGlvbiB0byBzb3J0IHRoZSBkYXRhLlxuICAgKi9cbiAgcHJpdmF0ZSBzb3J0RGF0YShkYXRhOiBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbVtdKTogTXVsdGlTZWxlY3REcm9wZG93bkl0ZW1bXSB7XG4gICAgLy8gU2VwYXJhdGUgXCJTZWxlY3QgQWxsXCIgb3B0aW9uIGZyb20gb3RoZXIgaXRlbXNcbiAgICBjb25zdCBzZWxlY3RBbGxJdGVtID0gZGF0YS5maW5kKHQgPT4gdC52YWx1ZSA9PT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU0pO1xuICAgIGNvbnN0IG90aGVySXRlbXMgPSBkYXRhLmZpbHRlcih0ID0+IHQudmFsdWUgIT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNKTtcbiAgICBcbiAgICBjb25zdCBjaGVja2VkVmFsdWVzID0gb3RoZXJJdGVtcy5maWx0ZXIoYSA9PiBhLmNoZWNrZWQpO1xuICAgIGNvbnN0IHVuQ2hlY2tlZFZhbHVlcyA9IG90aGVySXRlbXMuZmlsdGVyKGEgPT4gIWEuY2hlY2tlZCk7XG5cbiAgICBjb25zdCBzb3J0Rm4gPSAoYTogTXVsdGlTZWxlY3REcm9wZG93bkl0ZW0sIGI6IE11bHRpU2VsZWN0RHJvcGRvd25JdGVtKSA9PiBhLmxhYmVsID4gYi5sYWJlbCA/IDEgOiAtMTtcbiAgICBcbiAgICBjb25zdCBzb3J0ZWRJdGVtcyA9IFtcbiAgICAgIC4uLmNoZWNrZWRWYWx1ZXMuc29ydChzb3J0Rm4pLFxuICAgICAgLi4udW5DaGVja2VkVmFsdWVzLnNvcnQoc29ydEZuKVxuICAgIF07XG4gICAgXG4gICAgLy8gQWRkIFwiU2VsZWN0IEFsbFwiIGF0IHRoZSB0b3AgaWYgaXQgZXhpc3RzXG4gICAgcmV0dXJuIHNlbGVjdEFsbEl0ZW0gPyBbc2VsZWN0QWxsSXRlbSwgLi4uc29ydGVkSXRlbXNdIDogc29ydGVkSXRlbXM7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIGZ1bmN0aW9uIHRvIGZpbHRlciB0aGUgZGF0YS5cbiAgICovXG4gIHByaXZhdGUgZmlsdGVyQnlWYWx1ZShhcnJheTogTXVsdGlTZWxlY3REcm9wZG93bkl0ZW1bXSwgc2VhcmNoOiBzdHJpbmcpOiBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbVtdIHtcbiAgICByZXR1cm4gYXJyYXkuZmlsdGVyKG8gPT4gbz8ubGFiZWw/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoLnRvTG93ZXJDYXNlKCkpKSB8fCBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSBkcm9wZG93bidzIG9wZW4vY2xvc2Ugc3RhdGUuXG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy5pc09wZW4udXBkYXRlKGN1cnJlbnQgPT4gIWN1cnJlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIGNoZWNrZWQgc3RhdGUgb2YgYSBzcGVjaWZpYyBpdGVtLlxuICAgKiBIYW5kbGVzIHRoZSAnU2VsZWN0IEFsbCcgbG9naWMuXG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlU2VsZWN0ZWRJdGVtcyhldmVudDogRXZlbnQsIGl0ZW06IE11bHRpU2VsZWN0RHJvcGRvd25JdGVtKTogdm9pZCB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKHRoaXMuZW5hYmxlU2VsZWN0QWxsKCkgJiYgaXRlbS52YWx1ZSA9PT0gdGhpcy5TRUxFQ1RfQUxMX0VOVU0pIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxEYXRhLnVwZGF0ZShpdGVtcyA9PlxuICAgICAgICBpdGVtcy5tYXAodCA9PiAoeyAuLi50LCBjaGVja2VkOiAhaXRlbS5jaGVja2VkIH0pKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnRlcm5hbERhdGEudXBkYXRlKGl0ZW1zID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZEl0ZW1zID0gaXRlbXMubWFwKGEgPT4gXG4gICAgICAgICAgYS52YWx1ZSA9PT0gaXRlbS52YWx1ZSA/IHsgLi4uYSwgY2hlY2tlZDogIWEuY2hlY2tlZCB9IDogYVxuICAgICAgICApO1xuICAgICAgICBcbiAgICAgICAgY29uc3QgYWxsQ2hlY2tlZCA9IHVwZGF0ZWRJdGVtc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIociA9PiByLnZhbHVlICE9PSB0aGlzLlNFTEVDVF9BTExfRU5VTSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZXZlcnkodCA9PiB0LmNoZWNrZWQpO1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWRJdGVtcy5tYXAoYSA9PiBcbiAgICAgICAgICBhLnZhbHVlID09PSB0aGlzLlNFTEVDVF9BTExfRU5VTSA/IHsgLi4uYSwgY2hlY2tlZDogYWxsQ2hlY2tlZCB9IDogYVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGlkZUFwcGx5QnV0dG9uKCkpIHtcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBzZWxlY3RlZCBpdGVtcyBhbmQgY2xvc2VzIHRoZSBkcm9wZG93bi5cbiAgICovXG4gIHB1YmxpYyBhcHBseUZpbHRlcnMoKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmludGVybmFsRGF0YSgpXG4gICAgICAuZmlsdGVyKGEgPT4gYS5jaGVja2VkICYmIGEudmFsdWUgIT09IHRoaXMuU0VMRUNUX0FMTF9FTlVNKVxuICAgICAgLm1hcChpdGVtID0+IHtcbiAgICAgICAgY29uc3QgeyBjaGVja2VkLCAuLi5kYXRhIH0gPSBpdGVtO1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH0pO1xuICAgIFxuICAgIC8vIFVzZSB0aGUgc2lnbmFsIG91dHB1dCdzIGVtaXQgbWV0aG9kXG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KHNlbGVjdGVkIGFzIE11bHRpU2VsZWN0RHJvcGRvd25JdGVtW10pO1xuICAgIHRoaXMuaW50ZXJuYWxTZWxlY3RlZEl0ZW1zLnNldChzZWxlY3RlZCBhcyBNdWx0aVNlbGVjdERyb3Bkb3duSXRlbVtdKTtcbiAgICBpZiAoIXRoaXMuaGlkZUFwcGx5QnV0dG9uKCkpIHtcbiAgICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgZHJvcGRvd24gdG8gYW4gZW1wdHkgc3RhdGUuXG4gICAqL1xuICBwdWJsaWMgb25SZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmludGVybmFsRGF0YS51cGRhdGUoaXRlbXMgPT4gXG4gICAgICBpdGVtcy5tYXAoaXRlbSA9PiAoeyAuLi5pdGVtLCBjaGVja2VkOiBmYWxzZSB9KSlcbiAgICApO1xuICAgIHRoaXMuYXBwbHlGaWx0ZXJzKCk7XG4gICAgdGhpcy5pc09wZW4uc2V0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGRyb3Bkb3duIGFuZCByZXZlcnRzIGFueSBjaGFuZ2VzLlxuICAgKi9cbiAgcHVibGljIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XG4gICAgdGhpcy5zZWFyY2hJbnB1dC5zZXQoJycpO1xuICAgIC8vIFJldmVydCBpbnRlcm5hbCBkYXRhIHRvIG1hdGNoIHRoZSBsYXN0IHNlbGVjdGVkIGl0ZW1zXG4gICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSBmb2N1cyBzdGF0ZSBvZiB0aGUgc2VhcmNoIGlucHV0LlxuICAgKi9cbiAgcHVibGljIHNlYXJjaElucHV0Rm9jdXNlZChpc0ZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzU2VhcmNoSW5wdXRGb2N1c2VkLnNldChpc0ZvY3VzZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgc2VhcmNoIGlucHV0IGFuZCB1bmZvY3VzZXMgaXQuXG4gICAqL1xuICBwdWJsaWMgc2VhcmNoSW5wdXRDYW5jZWxlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnNlYXJjaElucHV0LnNldCgnJyk7XG4gICAgdGhpcy5pc1NlYXJjaElucHV0Rm9jdXNlZC5zZXQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGNoYW5nZSBldmVudCBmcm9tIHRoZSBzZWFyY2ggaW5wdXQuXG4gICAqL1xuICBwdWJsaWMgc2VhcmNoSW5wdXRPbkNoYW5nZShuZXdWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hJbnB1dC5zZXQobmV3VmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW5kIGRpc3BsYXlzIHRoZSBvdmVybGF5IGZvciB0aGUgZHJvcGRvd24gbGlzdC5cbiAgICovXG4gIHByaXZhdGUgb3BlbkRyb3Bkb3duKFxuICAgIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxFbGVtZW50PixcbiAgICBvcmlnaW46IEhUTUxFbGVtZW50XG4gICk6IHZvaWQge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYgJiYgdGhpcy5vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgY29uc3QgcG9zaXRpb25zQm90dG9tID0gW1xuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAnYm90dG9tJyB9LCB7IG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ3RvcCcgfSwgMCwgNCksXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6ICdlbmQnLCBvcmlnaW5ZOiAnYm90dG9tJyB9LCB7IG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICd0b3AnIH0sIDAsIDQpLFxuICAgIF07XG4gICAgY29uc3QgcG9zaXRpb25zVG9wID0gW1xuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAndG9wJyB9LCB7IG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ2JvdHRvbScgfSwgMCwgLTQpLFxuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiAnZW5kJywgb3JpZ2luWTogJ3RvcCcgfSwgeyBvdmVybGF5WDogJ2VuZCcsIG92ZXJsYXlZOiAnYm90dG9tJyB9LCAwLCAtNCksXG4gICAgXTtcblxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhvcmlnaW4pXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgIC4uLih0aGlzLmRyb3Bkb3duTGlzdFBvc2l0aW9uKCkgPT09ICdSaWdodCcgPyBwb3NpdGlvbnNCb3R0b20ucmV2ZXJzZSgpIDogcG9zaXRpb25zQm90dG9tKSxcbiAgICAgICAgLi4uKHRoaXMuZHJvcGRvd25MaXN0UG9zaXRpb24oKSA9PT0gJ1JpZ2h0JyA/IHBvc2l0aW9uc1RvcC5yZXZlcnNlKCkgOiBwb3NpdGlvbnNUb3ApLFxuICAgICAgXSlcbiAgICAgIC53aXRoUHVzaCh0cnVlKTtcblxuICAgIGNvbnN0IGNvbmZpZ3MgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHdpZHRoOiBvcmlnaW4/LmNsaWVudFdpZHRoLFxuICAgIH0pO1xuICAgIFxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoY29uZmlncyk7XG4gICAgXG4gICAgaWYgKHRoaXMuZHJvcGRvd25MaXN0V2lkdGgoKSkge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVNpemUoeyB3aWR0aDogdGhpcy5kcm9wZG93bkxpc3RXaWR0aCgpIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5kcm9wZG93bkxpc3RIZWlnaHQoKSkge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVNpemUoeyBoZWlnaHQ6IHRoaXMuZHJvcGRvd25MaXN0SGVpZ2h0KCkgfSk7XG4gICAgfVxuICAgIFxuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uQ2FuY2VsKCkpO1xuICB9XG59XG5cbiIsIjxkaXZcbiAgY2xhc3M9XCJjb250YWluZXJcIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgaGVpZ2h0OiBoZWlnaHQoKS5sZW5ndGggPiAwID8gaGVpZ2h0KCkgOiAnJyxcbiAgICB3aWR0aDogd2lkdGgoKS5sZW5ndGggPiAwID8gd2lkdGgoKSA6ICcnXG4gIH1cIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJkcm9wZG93blwiXG4gICAgI3NlbGVjdFxuICAgIHRhYmluZGV4PVwiMFwiXG4gICAgKGtleXVwLmVudGVyKT1cInRvZ2dsZURyb3Bkb3duKClcIlxuICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bigpXCJcbiAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kJzogaXNPcGVuKCkgPyAnI0U2RUJGNycgOiAnJyB9XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjdXN0b21MYWJlbFRlbXBsYXRlKClcIj5cbiAgICAgIDxwIGNsYXNzPVwidGV4dFwiPnt7IGxhYmVsKCkgfX08L3A+XG4gICAgICA8cCAqbmdJZj1cInNob3dTZWxlY3RlZENvdW50KCkgJiYgaW50ZXJuYWxTZWxlY3RlZEl0ZW1zKCkubGVuZ3RoID4gMFwiIGNsYXNzPVwiY291bnRcIj5cbiAgICAgICAge3sgaW50ZXJuYWxTZWxlY3RlZEl0ZW1zKCkubGVuZ3RoIH19XG4gICAgICA8L3A+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbUxhYmVsVGVtcGxhdGUoKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUxhYmVsVGVtcGxhdGUoKVwiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPHN2Z1xuICAgICAgY2xhc3M9XCJoYW5kbGVcIlxuICAgICAgW25nU3R5bGVdPVwieyAndHJhbnNmb3JtJzogaXNPcGVuKCkgPyAncm90YXRlKDE4MGRlZyknIDogJ3JvdGF0ZSgwZGVnKScgfVwiXG4gICAgICB3aWR0aD1cIjIwXCJcbiAgICAgIGhlaWdodD1cIjIwXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEzLjgyNSA3LjE1ODQ1TDEwIDEwLjk3NTFMNi4xNzUgNy4xNTg0NUw1IDguMzMzNDVMMTAgMTMuMzMzNEwxNSA4LjMzMzQ1TDEzLjgyNSA3LjE1ODQ1WlwiXG4gICAgICAgIGZpbGw9XCIjMTgxRjMzXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3BvcHVwQ29udGFpbmVyPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJwb3B1cC1jb250YWluZXJcIlxuICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICdoZWlnaHQnOiBkcm9wZG93bkxpc3RIZWlnaHQoKSxcbiAgICAgIHdpZHRoOiBkcm9wZG93bkxpc3RXaWR0aCgpXG4gICAgfVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3Bvc2l0aW9uLWxlZnQnOiBkcm9wZG93bkxpc3RQb3NpdGlvbigpID09PSAnTGVmdCcsXG4gICAgICAncG9zaXRpb24tcmlnaHQnOiBkcm9wZG93bkxpc3RQb3NpdGlvbigpID09PSAnUmlnaHQnXG4gICAgfVwiXG4gID5cbiAgICAgIDwhLS0gU2VhcmNoIEJhciAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hFbmFibGVkKClcIiBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIj5cbiAgICAgICAgPHN2Z1xuICAgICAgICAgICpuZ0lmPVwiIWlzU2VhcmNoSW5wdXRGb2N1c2VkKClcIlxuICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWljb25cIlxuICAgICAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgICAgIGhlaWdodD1cIjI0XCJcbiAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgID5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgIGQ9XCJNNC4yMTUwOCAxMS4xNDU2QzQuMjE1MDggNy4zMTc5IDcuMzM3MjIgNC4yMTE2NSAxMS4xOTI2IDQuMjExNjVDMTUuMDQ4IDQuMjExNjUgMTguMTcwMiA3LjMxNzkgMTguMTcwMiAxMS4xNDU2QzE4LjE3MDIgMTIuNjkzMSAxNy42NTk5IDE0LjEyMjYgMTYuNzk3MiAxNS4yNzY3TDE1LjM2ODUgMTYuNzAxM0MxNC4yMDQ0IDE3LjU2NjggMTIuNzU5IDE4LjA3OTYgMTEuMTkyNiAxOC4wNzk2QzcuMzM3MjIgMTguMDc5NiA0LjIxNTA4IDE0Ljk3MzQgNC4yMTUwOCAxMS4xNDU2Wk0xNS45NDIxIDE3Ljc4MzVDMTQuNjAyMSAxOC43MzI5IDEyLjk2MjcgMTkuMjkxMyAxMS4xOTI2IDE5LjI5MTNDNi42Njk3NyAxOS4yOTEzIDMgMTUuNjQ2MSAzIDExLjE0NTZDMyA2LjY0NTEyIDYuNjY5NzcgMyAxMS4xOTI2IDNDMTUuNzE1NSAzIDE5LjM4NTIgNi42NDUxMiAxOS4zODUyIDExLjE0NTZDMTkuMzg1MiAxMi45MzcxIDE4LjgwMzcgMTQuNTkzMSAxNy44MTg0IDE1LjkzNzVMMTkuODM2MSAxNy40MDQ4QzIwLjY3MDUgMTcuOTEyIDIxLjc1NTQgMTguNjU0MyAyMC4yNDU0IDIwLjIxNUMxOC43MzUzIDIxLjc3NTYgMTguMDA5OSAyMC42NjYzIDE3LjQ5OTEgMTkuODM2NEwxNS45NDIxIDE3Ljc4MzVaXCJcbiAgICAgICAgICAgIGZpbGw9XCIjNkE3MzdEXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgW25nTW9kZWxdPVwic2VhcmNoSW5wdXQoKVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IGlzU2VhcmNoSW5wdXRGb2N1c2VkKCkgPyAnMTJweCcgOiAnNDVweCcsXG4gICAgICAgICAgICBib3JkZXI6IGlzU2VhcmNoSW5wdXRGb2N1c2VkKCkgPyAnMXB4IHNvbGlkICMwOTM3QjInIDogJzFweCBzb2xpZCAjZTBlMGUwJyxcbiAgICAgICAgICAgIHBhZGRpbmdSaWdodDogaXNTZWFyY2hJbnB1dEZvY3VzZWQoKSA/ICc0NXB4JyA6ICcxMHB4J1xuICAgICAgICAgIH1cIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaElucHV0T25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImlzU2VhcmNoSW5wdXRGb2N1c2VkKCkgPyAnJyA6IHNlYXJjaElucHV0UGxhY2Vob2xkZXIoKVwiXG4gICAgICAgICAgKGZvY3VzKT1cInNlYXJjaElucHV0Rm9jdXNlZCh0cnVlKVwiXG4gICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIlxuICAgICAgICAvPlxuICAgICAgICA8c3ZnXG4gICAgICAgICAgKm5nSWY9XCJpc1NlYXJjaElucHV0Rm9jdXNlZCgpXCJcbiAgICAgICAgICBjbGFzcz1cImNhbmNlbC1pY29uXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VhcmNoSW5wdXRDYW5jZWxlZCgkZXZlbnQpXCJcbiAgICAgICAgICB3aWR0aD1cIjI0XCJcbiAgICAgICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICA+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICBkPVwiTTguODc0NDYgNy4zMjE0NEM4LjQ0NTg4IDYuODkyODUgNy43NTEgNi44OTI4NSA3LjMyMjQyIDcuMzIxNDRDNi44OTM4MyA3Ljc1MDAyIDYuODkzODMgOC40NDQ5IDcuMzIyNDIgOC44NzM0OUwxMC40NDg4IDExLjk5OTlMNy4zMjM1NyAxNS4xMjUyQzYuODk0OTggMTUuNTUzOCA2Ljg5NDk4IDE2LjI0ODYgNy4zMjM1NyAxNi42NzcyQzcuNzUyMTUgMTcuMTA1OCA4LjQ0NzAzIDE3LjEwNTggOC44NzU2MSAxNi42NzcyTDEyLjAwMDkgMTMuNTUyTDE1LjEyNjEgMTYuNjc3MkMxNS41NTQ3IDE3LjEwNTggMTYuMjQ5NiAxNy4xMDU4IDE2LjY3ODEgMTYuNjc3MkMxNy4xMDY3IDE2LjI0ODYgMTcuMTA2NyAxNS41NTM3IDE2LjY3ODEgMTUuMTI1MUwxMy41NTI5IDExLjk5OTlMMTYuNjc5MyA4Ljg3MzU0QzE3LjEwNzkgOC40NDQ5NiAxNy4xMDc5IDcuNzUwMDggMTYuNjc5MyA3LjMyMTVDMTYuMjUwNyA2Ljg5MjkxIDE1LjU1NTggNi44OTI5MSAxNS4xMjczIDcuMzIxNUwxMi4wMDA5IDEwLjQ0NzlMOC44NzQ0NiA3LjMyMTQ0WlwiXG4gICAgICAgICAgICBmaWxsPVwiIzZBNzM3RFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBDdXN0b20gTWVzc2FnZSBUZW1wbGF0ZSAtLT5cbiAgICAgICBAaWYoY3VzdG9tTWVzc2FnZVRlbXBsYXRlKCkpe1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLW1lc3NhZ2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbU1lc3NhZ2VUZW1wbGF0ZSgpXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbXNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiaXRlbVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwidG9nZ2xlU2VsZWN0ZWRJdGVtcygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlU2VsZWN0ZWRJdGVtcygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkaXNwbGF5RGF0YSgpXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzppdGVtLmRpc2FibGVkfVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3gtY29udGFpbmVyLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPG1pcy1jaGVja2JveCBbY2hlY2tlZF09XCJpdGVtLmNoZWNrZWRcIiB0YWJpbmRleD1cIi0xXCI+PC9taXMtY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCIgKm5nSWY9XCJpdGVtLmljb25cIj5cbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpY29uXCIgW3NyY109XCJpdGVtLmljb25cIiBhbHQ9XCJubyBpbWdcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5vRGF0YVwiICpuZ0lmPVwiZGlzcGxheURhdGEoKS5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICB7eyBzZWFyY2hJbnB1dCgpID09PSBcIlwiID8gbm9EYXRhTWVzc2FnZSgpIDogXCJObyByZXN1bHRzXCIgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiaW50ZXJuYWxEYXRhKCkubGVuZ3RoICE9PSAwICYmICFoaWRlQXBwbHlCdXR0b24oKVwiIGNsYXNzPVwiYWN0aW9ucy1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgW25nU3R5bGVdPVwieyd3aWR0aCc6ICdjYWxjKDUwJSAtIDRweCknfVwiIChjbGljayk9XCJvblJlc2V0KClcIj5cbiAgICAgICAgPG1pcy1idXR0b24gW25hbWVdPVwiJ1Jlc2V0J1wiIFt0eXBlXT1cIidUZXh0J1wiIFt3aWR0aF09XCInMTAwJSdcIiA+PC9taXMtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsnd2lkdGgnOiAnY2FsYyg1MCUgLSA0cHgpJ31cIiAoY2xpY2spPVwiYXBwbHlGaWx0ZXJzKClcIj5cbiAgICAgICAgPG1pcy1idXR0b24gW25hbWVdPVwiJ0FwcGx5J1wiIFt0eXBlXT1cIidTb2xpZCdcIiBbd2lkdGhdPVwiJzEwMCUnXCIgPjwvbWlzLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuIl19
|