mis-crystal-design-system 18.0.13-test-2 → 18.0.13-test-4

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.
@@ -4,74 +4,70 @@ import * as i1 from "@angular/common";
4
4
  const _c0 = a0 => ({ "disabled": a0 });
5
5
  const _c1 = (a0, a1) => ({ "left": a0, "right": a1 });
6
6
  function ActionsCellComponent_div_1_div_1_img_1_Template(rf, ctx) { if (rf & 1) {
7
- i0.ɵɵelement(0, "img", 9);
7
+ i0.ɵɵelement(0, "img", 8);
8
8
  } if (rf & 2) {
9
9
  const item_r2 = i0.ɵɵnextContext().$implicit;
10
10
  i0.ɵɵproperty("src", item_r2.icon, i0.ɵɵsanitizeUrl)("alt", item_r2.label);
11
11
  } }
12
- function ActionsCellComponent_div_1_div_1_span_2_Template(rf, ctx) { if (rf & 1) {
13
- i0.ɵɵelement(0, "span", 10);
14
- } if (rf & 2) {
15
- const item_r2 = i0.ɵɵnextContext().$implicit;
16
- i0.ɵɵproperty("innerHTML", item_r2.icon, i0.ɵɵsanitizeHtml);
17
- } }
18
12
  function ActionsCellComponent_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
19
13
  const _r1 = i0.ɵɵgetCurrentView();
20
14
  i0.ɵɵelementStart(0, "div", 6);
21
15
  i0.ɵɵlistener("click", function ActionsCellComponent_div_1_div_1_Template_div_click_0_listener($event) { const item_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onActionClick(item_r2, $event)); });
22
- i0.ɵɵtemplate(1, ActionsCellComponent_div_1_div_1_img_1_Template, 1, 2, "img", 7)(2, ActionsCellComponent_div_1_div_1_span_2_Template, 1, 1, "span", 8);
16
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_1_div_1_img_1_Template, 1, 2, "img", 7);
23
17
  i0.ɵɵelementEnd();
24
18
  } if (rf & 2) {
25
19
  const item_r2 = ctx.$implicit;
26
20
  const ctx_r2 = i0.ɵɵnextContext(2);
27
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0, item_r2.disabled))("title", item_r2.label);
21
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, item_r2.disabled))("title", item_r2.label);
28
22
  i0.ɵɵadvance();
29
23
  i0.ɵɵproperty("ngIf", ctx_r2.isSvgFile(item_r2.icon));
30
- i0.ɵɵadvance();
31
- i0.ɵɵproperty("ngIf", !ctx_r2.isSvgFile(item_r2.icon));
32
24
  } }
33
25
  function ActionsCellComponent_div_1_Template(rf, ctx) { if (rf & 1) {
34
26
  i0.ɵɵelementStart(0, "div", 4);
35
- i0.ɵɵtemplate(1, ActionsCellComponent_div_1_div_1_Template, 3, 6, "div", 5);
27
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_1_div_1_Template, 2, 5, "div", 5);
36
28
  i0.ɵɵelementEnd();
37
29
  } if (rf & 2) {
38
30
  const ctx_r2 = i0.ɵɵnextContext();
39
31
  i0.ɵɵadvance();
40
32
  i0.ɵɵproperty("ngForOf", ctx_r2.actionItems)("ngForTrackBy", ctx_r2.trackByAction);
41
33
  } }
42
- function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_img_2_Template(rf, ctx) { if (rf & 1) {
43
- i0.ɵɵelement(0, "img", 29);
34
+ function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {
35
+ i0.ɵɵelementStart(0, "span", 26);
36
+ i0.ɵɵelement(1, "img", 27);
37
+ i0.ɵɵelementEnd();
44
38
  } if (rf & 2) {
45
39
  const item_r6 = i0.ɵɵnextContext(2).$implicit;
40
+ i0.ɵɵadvance();
46
41
  i0.ɵɵproperty("src", item_r6.icon, i0.ɵɵsanitizeUrl);
47
42
  } }
48
- function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_8_div_1_span_1_Template(rf, ctx) { if (rf & 1) {
49
- i0.ɵɵelementStart(0, "span", 22);
50
- i0.ɵɵelement(1, "img", 29);
43
+ function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_span_1_Template(rf, ctx) { if (rf & 1) {
44
+ i0.ɵɵelementStart(0, "span", 26);
45
+ i0.ɵɵelement(1, "img", 27);
51
46
  i0.ɵɵelementEnd();
52
47
  } if (rf & 2) {
53
48
  const child_r8 = i0.ɵɵnextContext().$implicit;
54
49
  i0.ɵɵadvance();
55
50
  i0.ɵɵproperty("src", child_r8.icon, i0.ɵɵsanitizeUrl);
56
51
  } }
57
- function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_8_div_1_Template(rf, ctx) { if (rf & 1) {
52
+ function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template(rf, ctx) { if (rf & 1) {
58
53
  const _r7 = i0.ɵɵgetCurrentView();
59
- i0.ɵɵelementStart(0, "div", 20);
60
- i0.ɵɵlistener("click", function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_8_div_1_Template_div_click_0_listener() { const child_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.handleAction(child_r8)); });
61
- i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_8_div_1_span_1_Template, 2, 1, "span", 31);
62
- i0.ɵɵelementStart(2, "span", 24);
54
+ i0.ɵɵelementStart(0, "div", 18);
55
+ i0.ɵɵlistener("click", function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template_div_click_0_listener() { const child_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.handleAction(child_r8)); });
56
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_span_1_Template, 2, 1, "span", 20);
57
+ i0.ɵɵelementStart(2, "span", 21);
63
58
  i0.ɵɵtext(3);
64
59
  i0.ɵɵelementEnd()();
65
60
  } if (rf & 2) {
66
61
  const child_r8 = ctx.$implicit;
62
+ const ctx_r2 = i0.ɵɵnextContext(6);
67
63
  i0.ɵɵadvance();
68
- i0.ɵɵproperty("ngIf", child_r8.icon);
64
+ i0.ɵɵproperty("ngIf", child_r8.icon && ctx_r2.isSvgFile(child_r8.icon));
69
65
  i0.ɵɵadvance(2);
70
66
  i0.ɵɵtextInterpolate(child_r8.label);
71
67
  } }
72
- function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_8_Template(rf, ctx) { if (rf & 1) {
73
- i0.ɵɵelementStart(0, "div", 30);
74
- i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_8_div_1_Template, 4, 2, "div", 19);
68
+ function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_Template(rf, ctx) { if (rf & 1) {
69
+ i0.ɵɵelementStart(0, "div", 28);
70
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template, 4, 2, "div", 17);
75
71
  i0.ɵɵelementEnd();
76
72
  } if (rf & 2) {
77
73
  const item_r6 = i0.ɵɵnextContext(2).$implicit;
@@ -82,31 +78,30 @@ function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_8_Template(rf
82
78
  } }
83
79
  function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
84
80
  i0.ɵɵelementContainerStart(0);
85
- i0.ɵɵelementStart(1, "span", 22);
86
- i0.ɵɵtemplate(2, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_img_2_Template, 1, 1, "img", 23);
87
- i0.ɵɵelementEnd();
88
- i0.ɵɵelementStart(3, "span", 24);
89
- i0.ɵɵtext(4);
81
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_span_1_Template, 2, 1, "span", 20);
82
+ i0.ɵɵelementStart(2, "span", 21);
83
+ i0.ɵɵtext(3);
90
84
  i0.ɵɵelementEnd();
91
- i0.ɵɵelementStart(5, "span", 25);
85
+ i0.ɵɵelementStart(4, "span", 22);
92
86
  i0.ɵɵnamespaceSVG();
93
- i0.ɵɵelementStart(6, "svg", 26);
94
- i0.ɵɵelement(7, "path", 27);
87
+ i0.ɵɵelementStart(5, "svg", 23);
88
+ i0.ɵɵelement(6, "path", 24);
95
89
  i0.ɵɵelementEnd()();
96
- i0.ɵɵtemplate(8, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_8_Template, 2, 5, "div", 28);
90
+ i0.ɵɵtemplate(7, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_Template, 2, 5, "div", 25);
97
91
  i0.ɵɵelementContainerEnd();
98
92
  } if (rf & 2) {
99
93
  const item_r6 = i0.ɵɵnextContext().$implicit;
100
- i0.ɵɵadvance(2);
101
- i0.ɵɵproperty("ngIf", item_r6.icon);
94
+ const ctx_r2 = i0.ɵɵnextContext(3);
95
+ i0.ɵɵadvance();
96
+ i0.ɵɵproperty("ngIf", item_r6.icon && ctx_r2.isSvgFile(item_r6.icon));
102
97
  i0.ɵɵadvance(2);
103
98
  i0.ɵɵtextInterpolate(item_r6.label);
104
99
  i0.ɵɵadvance(4);
105
100
  i0.ɵɵproperty("ngIf", item_r6.showSubmenu);
106
101
  } }
107
102
  function ActionsCellComponent_div_2_div_6_div_1_ng_template_2_span_0_Template(rf, ctx) { if (rf & 1) {
108
- i0.ɵɵelementStart(0, "span", 22);
109
- i0.ɵɵelement(1, "img", 29);
103
+ i0.ɵɵelementStart(0, "span", 26);
104
+ i0.ɵɵelement(1, "img", 27);
110
105
  i0.ɵɵelementEnd();
111
106
  } if (rf & 2) {
112
107
  const item_r6 = i0.ɵɵnextContext(2).$implicit;
@@ -114,21 +109,22 @@ function ActionsCellComponent_div_2_div_6_div_1_ng_template_2_span_0_Template(rf
114
109
  i0.ɵɵproperty("src", item_r6.icon, i0.ɵɵsanitizeUrl);
115
110
  } }
116
111
  function ActionsCellComponent_div_2_div_6_div_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
117
- i0.ɵɵtemplate(0, ActionsCellComponent_div_2_div_6_div_1_ng_template_2_span_0_Template, 2, 1, "span", 31);
118
- i0.ɵɵelementStart(1, "span", 24);
112
+ i0.ɵɵtemplate(0, ActionsCellComponent_div_2_div_6_div_1_ng_template_2_span_0_Template, 2, 1, "span", 20);
113
+ i0.ɵɵelementStart(1, "span", 21);
119
114
  i0.ɵɵtext(2);
120
115
  i0.ɵɵelementEnd();
121
116
  } if (rf & 2) {
122
117
  const item_r6 = i0.ɵɵnextContext().$implicit;
123
- i0.ɵɵproperty("ngIf", item_r6.icon);
118
+ const ctx_r2 = i0.ɵɵnextContext(3);
119
+ i0.ɵɵproperty("ngIf", item_r6.icon && ctx_r2.isSvgFile(item_r6.icon));
124
120
  i0.ɵɵadvance(2);
125
121
  i0.ɵɵtextInterpolate(item_r6.label);
126
122
  } }
127
123
  function ActionsCellComponent_div_2_div_6_div_1_Template(rf, ctx) { if (rf & 1) {
128
124
  const _r5 = i0.ɵɵgetCurrentView();
129
- i0.ɵɵelementStart(0, "div", 20);
125
+ i0.ɵɵelementStart(0, "div", 18);
130
126
  i0.ɵɵlistener("click", function ActionsCellComponent_div_2_div_6_div_1_Template_div_click_0_listener($event) { const item_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onDropdownItemClick(item_r6, $event)); });
131
- i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_Template, 9, 3, "ng-container", 21)(2, ActionsCellComponent_div_2_div_6_div_1_ng_template_2_Template, 3, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
127
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_Template, 8, 3, "ng-container", 19)(2, ActionsCellComponent_div_2_div_6_div_1_ng_template_2_Template, 3, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
132
128
  i0.ɵɵelementEnd();
133
129
  } if (rf & 2) {
134
130
  const item_r6 = ctx.$implicit;
@@ -137,8 +133,8 @@ function ActionsCellComponent_div_2_div_6_div_1_Template(rf, ctx) { if (rf & 1)
137
133
  i0.ɵɵproperty("ngIf", item_r6.children == null ? null : item_r6.children.length)("ngIfElse", noChildren_r9);
138
134
  } }
139
135
  function ActionsCellComponent_div_2_div_6_Template(rf, ctx) { if (rf & 1) {
140
- i0.ɵɵelementStart(0, "div", 18);
141
- i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_Template, 4, 2, "div", 19);
136
+ i0.ɵɵelementStart(0, "div", 16);
137
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_Template, 4, 2, "div", 17);
142
138
  i0.ɵɵelementEnd();
143
139
  } if (rf & 2) {
144
140
  const ctx_r2 = i0.ɵɵnextContext(2);
@@ -147,13 +143,13 @@ function ActionsCellComponent_div_2_div_6_Template(rf, ctx) { if (rf & 1) {
147
143
  } }
148
144
  function ActionsCellComponent_div_2_Template(rf, ctx) { if (rf & 1) {
149
145
  const _r4 = i0.ɵɵgetCurrentView();
150
- i0.ɵɵelementStart(0, "div", 11)(1, "div", 12);
146
+ i0.ɵɵelementStart(0, "div", 9)(1, "div", 10);
151
147
  i0.ɵɵlistener("click", function ActionsCellComponent_div_2_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleDropdown($event)); });
152
148
  i0.ɵɵnamespaceSVG();
153
- i0.ɵɵelementStart(2, "svg", 13);
154
- i0.ɵɵelement(3, "circle", 14)(4, "circle", 15)(5, "circle", 16);
149
+ i0.ɵɵelementStart(2, "svg", 11);
150
+ i0.ɵɵelement(3, "circle", 12)(4, "circle", 13)(5, "circle", 14);
155
151
  i0.ɵɵelementEnd()();
156
- i0.ɵɵtemplate(6, ActionsCellComponent_div_2_div_6_Template, 2, 1, "div", 17);
152
+ i0.ɵɵtemplate(6, ActionsCellComponent_div_2_div_6_Template, 2, 1, "div", 15);
157
153
  i0.ɵɵelementEnd();
158
154
  } if (rf & 2) {
159
155
  const ctx_r2 = i0.ɵɵnextContext();
@@ -254,7 +250,7 @@ export class ActionsCellComponent {
254
250
  static { this.ɵfac = function ActionsCellComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ActionsCellComponent)(); }; }
255
251
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActionsCellComponent, selectors: [["mis-actions-cell"]], hostBindings: function ActionsCellComponent_HostBindings(rf, ctx) { if (rf & 1) {
256
252
  i0.ɵɵlistener("click", function ActionsCellComponent_click_HostBindingHandler() { return ctx.onDocumentClick(); }, false, i0.ɵɵresolveDocument);
257
- } }, inputs: { data: "data", actionItems: "actionItems", actionType: "actionType", dropdownIcon: "dropdownIcon", submenuAlign: "submenuAlign", style: "style" }, outputs: { actionClick: "actionClick" }, decls: 3, vars: 3, consts: [["noChildren", ""], [1, "actions-cell-container", 3, "ngStyle"], ["class", "inline-actions", 4, "ngIf"], ["class", "dropdown-actions", 4, "ngIf"], [1, "inline-actions"], ["class", "action-item", 3, "ngClass", "title", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "action-item", 3, "click", "ngClass", "title"], ["class", "action-icon-svg", 3, "src", "alt", 4, "ngIf"], ["class", "action-icon", 3, "innerHTML", 4, "ngIf"], [1, "action-icon-svg", 3, "src", "alt"], [1, "action-icon", 3, "innerHTML"], [1, "dropdown-actions"], ["title", "More actions", 1, "dropdown-trigger", 3, "click"], ["width", "16", "height", "16", "viewBox", "0 0 16 16", "fill", "none"], ["cx", "8", "cy", "4", "r", "1.5", "fill", "#333"], ["cx", "8", "cy", "8", "r", "1.5", "fill", "#333"], ["cx", "8", "cy", "12", "r", "1.5", "fill", "#333"], ["class", "dropdown-menu", 4, "ngIf"], [1, "dropdown-menu"], ["class", "dropdown-menu-item", 3, "click", 4, "ngFor", "ngForOf"], [1, "dropdown-menu-item", 3, "click"], [4, "ngIf", "ngIfElse"], [1, "dropdown-icon"], [3, "src", 4, "ngIf"], [1, "dropdown-label"], [1, "submenu-arrow"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none"], ["d", "M9 6L15 12L9 18", "stroke", "#0D1321", "stroke-width", "2", "stroke-linecap", "round", "stroke-linejoin", "round"], ["class", "dropdown-submenu", 3, "ngClass", 4, "ngIf"], [3, "src"], [1, "dropdown-submenu", 3, "ngClass"], ["class", "dropdown-icon", 4, "ngIf"]], template: function ActionsCellComponent_Template(rf, ctx) { if (rf & 1) {
253
+ } }, inputs: { data: "data", actionItems: "actionItems", actionType: "actionType", dropdownIcon: "dropdownIcon", submenuAlign: "submenuAlign", style: "style" }, outputs: { actionClick: "actionClick" }, decls: 3, vars: 3, consts: [["noChildren", ""], [1, "actions-cell-container", 3, "ngStyle"], ["class", "inline-actions", 4, "ngIf"], ["class", "dropdown-actions", 4, "ngIf"], [1, "inline-actions"], ["class", "action-item", 3, "ngClass", "title", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "action-item", 3, "click", "ngClass", "title"], ["class", "action-icon-svg", 3, "src", "alt", 4, "ngIf"], [1, "action-icon-svg", 3, "src", "alt"], [1, "dropdown-actions"], ["title", "More actions", 1, "dropdown-trigger", 3, "click"], ["width", "16", "height", "16", "viewBox", "0 0 16 16", "fill", "none"], ["cx", "8", "cy", "4", "r", "1.5", "fill", "#333"], ["cx", "8", "cy", "8", "r", "1.5", "fill", "#333"], ["cx", "8", "cy", "12", "r", "1.5", "fill", "#333"], ["class", "dropdown-menu", 4, "ngIf"], [1, "dropdown-menu"], ["class", "dropdown-menu-item", 3, "click", 4, "ngFor", "ngForOf"], [1, "dropdown-menu-item", 3, "click"], [4, "ngIf", "ngIfElse"], ["class", "dropdown-icon", 4, "ngIf"], [1, "dropdown-label"], [1, "submenu-arrow"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none"], ["d", "M9 6L15 12L9 18", "stroke", "#0D1321", "stroke-width", "2", "stroke-linecap", "round", "stroke-linejoin", "round"], ["class", "dropdown-submenu", 3, "ngClass", 4, "ngIf"], [1, "dropdown-icon"], [3, "src"], [1, "dropdown-submenu", 3, "ngClass"]], template: function ActionsCellComponent_Template(rf, ctx) { if (rf & 1) {
258
254
  i0.ɵɵelementStart(0, "div", 1);
259
255
  i0.ɵɵtemplate(1, ActionsCellComponent_div_1_Template, 2, 2, "div", 2)(2, ActionsCellComponent_div_2_Template, 7, 1, "div", 3);
260
256
  i0.ɵɵelementEnd();
@@ -264,11 +260,11 @@ export class ActionsCellComponent {
264
260
  i0.ɵɵproperty("ngIf", ctx.actionType === "inline");
265
261
  i0.ɵɵadvance();
266
262
  i0.ɵɵproperty("ngIf", ctx.actionType === "dropdown");
267
- } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle], styles: [".actions-cell-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item[_ngcontent-%COMP%]:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item[_ngcontent-%COMP%]:active:not(.disabled){transform:scale(.95)}.action-item.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.action-item.disabled[_ngcontent-%COMP%]:hover{background-color:transparent;transform:none}.action-icon[_ngcontent-%COMP%]{font-size:16px;color:#666;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg[_ngcontent-%COMP%]{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg[_ngcontent-%COMP%]:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger[_ngcontent-%COMP%]{cursor:pointer}.dropdown-actions[_ngcontent-%COMP%]{position:relative}.dropdown-trigger[_ngcontent-%COMP%]{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-menu[_ngcontent-%COMP%]{position:absolute;top:100%;right:0;width:240px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;z-index:1000;padding:8px 0}.dropdown-menu-item.disabled[_ngcontent-%COMP%]{color:#aaa;cursor:not-allowed}.dropdown-menu-item[_ngcontent-%COMP%]:hover:not(.disabled), .dropdown-menu-item.has-submenu[_ngcontent-%COMP%]:hover{background:#f5f5f5}.dropdown-menu-item[_ngcontent-%COMP%]{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item[_ngcontent-%COMP%] .dropdown-label[_ngcontent-%COMP%]{flex:1;margin-left:8px}.dropdown-menu-item[_ngcontent-%COMP%] .submenu-arrow[_ngcontent-%COMP%]{margin-left:auto;width:16px;height:16px}.submenu-container[_ngcontent-%COMP%]{position:absolute;top:0;left:100%;margin-left:4px;background:#fff;box-shadow:0 4px 8px #0000001a;border-radius:8px;z-index:1000;white-space:nowrap}.dropdown-submenu[_ngcontent-%COMP%]{position:absolute;top:0;min-width:180px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu.right[_ngcontent-%COMP%]{left:100%;margin-left:4px}.dropdown-submenu.left[_ngcontent-%COMP%]{left:auto;right:100%;margin-right:8px;background-color:#fff;border:1px solid #ddd;z-index:9999;position:absolute}.submenu-arrow[_ngcontent-%COMP%]{display:flex;align-items:center;margin-left:auto;z-index:9999}"] }); }
263
+ } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle], styles: [".actions-cell-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item[_ngcontent-%COMP%]:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item[_ngcontent-%COMP%]:active:not(.disabled){transform:scale(.95)}.action-item.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.action-item.disabled[_ngcontent-%COMP%]:hover{background-color:transparent;transform:none}.action-icon[_ngcontent-%COMP%]{font-size:16px;color:#666;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg[_ngcontent-%COMP%]{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg[_ngcontent-%COMP%]:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger[_ngcontent-%COMP%]{cursor:pointer}.dropdown-actions[_ngcontent-%COMP%]{position:relative}.dropdown-trigger[_ngcontent-%COMP%]{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-menu[_ngcontent-%COMP%]{position:absolute;top:100%;right:0;width:240px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;z-index:1000;padding:8px 0}.dropdown-menu-item.disabled[_ngcontent-%COMP%]{color:#aaa;cursor:not-allowed}.dropdown-menu-item[_ngcontent-%COMP%]:hover:not(.disabled), .dropdown-menu-item.has-submenu[_ngcontent-%COMP%]:hover{background:#f5f5f5}.dropdown-menu-item[_ngcontent-%COMP%]{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item[_ngcontent-%COMP%] .dropdown-label[_ngcontent-%COMP%]{flex:1;margin-left:8px}.dropdown-menu-item[_ngcontent-%COMP%] .submenu-arrow[_ngcontent-%COMP%]{margin-left:auto;width:16px;height:16px}.submenu-container[_ngcontent-%COMP%]{position:absolute;top:0;left:100%;margin-left:4px;background:#fff;box-shadow:0 4px 8px #0000001a;border-radius:8px;z-index:1000;white-space:nowrap}.dropdown-submenu[_ngcontent-%COMP%]{position:absolute;top:0;min-width:180px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu.right[_ngcontent-%COMP%]{left:100%;margin-left:4px}.dropdown-submenu.left[_ngcontent-%COMP%]{left:auto;right:100%;background-color:#fff;border:1px solid #ddd;z-index:9999;position:absolute}.submenu-arrow[_ngcontent-%COMP%]{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}"] }); }
268
264
  }
269
265
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionsCellComponent, [{
270
266
  type: Component,
271
- args: [{ selector: 'mis-actions-cell', template: "<div class=\"actions-cell-container\" [ngStyle]=\"containerStyle\">\n <!-- Inline Actions -->\n <div *ngIf=\"actionType === 'inline'\" class=\"inline-actions\">\n <div *ngFor=\"let item of actionItems; trackBy: trackByAction\" class=\"action-item\"\n [ngClass]=\"{ 'disabled': item.disabled }\" (click)=\"onActionClick(item, $event)\" [title]=\"item.label\">\n <img *ngIf=\"isSvgFile(item.icon)\" [src]=\"item.icon\" [alt]=\"item.label\" class=\"action-icon-svg\" />\n <span *ngIf=\"!isSvgFile(item.icon)\" class=\"action-icon\" [innerHTML]=\"item.icon\"></span>\n </div>\n </div>\n\n <!-- Dropdown Actions -->\n <div *ngIf=\"actionType === 'dropdown'\" class=\"dropdown-actions\">\n <div class=\"dropdown-trigger\" (click)=\"toggleDropdown($event)\" title=\"More actions\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <circle cx=\"8\" cy=\"4\" r=\"1.5\" fill=\"#333\" />\n <circle cx=\"8\" cy=\"8\" r=\"1.5\" fill=\"#333\" />\n <circle cx=\"8\" cy=\"12\" r=\"1.5\" fill=\"#333\" />\n </svg>\n </div>\n\n <div class=\"dropdown-menu\" *ngIf=\"isDropdownOpen\">\n <div class=\"dropdown-menu-item\" *ngFor=\"let item of actionItems\" \n (click)=\"onDropdownItemClick(item, $event)\">\n <ng-container *ngIf=\"item.children?.length; else noChildren\">\n <span class=\"dropdown-icon\">\n <img *ngIf=\"item.icon\" [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n <span class=\"submenu-arrow\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"#0D1321\" stroke-width=\"2\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </span>\n\n <!-- DYNAMIC SUBMENU -->\n <div class=\"dropdown-submenu\"\n [ngClass]=\"{ 'left': submenuAlign === 'left', 'right': submenuAlign !== 'left' }\"\n *ngIf=\"item.showSubmenu\">\n <div class=\"dropdown-menu-item\" *ngFor=\"let child of item.children\"\n (click)=\"handleAction(child)\">\n <span class=\"dropdown-icon\" *ngIf=\"child.icon\">\n <img [src]=\"child.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ child.label }}</span>\n </div>\n </div>\n </ng-container>\n\n <ng-template #noChildren>\n <span class=\"dropdown-icon\" *ngIf=\"item.icon\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n </ng-template>\n </div>\n </div>\n </div>\n</div>", styles: [".actions-cell-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item:active:not(.disabled){transform:scale(.95)}.action-item.disabled{opacity:.5;cursor:not-allowed}.action-item.disabled:hover{background-color:transparent;transform:none}.action-icon{font-size:16px;color:#666;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger{cursor:pointer}.dropdown-actions{position:relative}.dropdown-trigger{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-menu{position:absolute;top:100%;right:0;width:240px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;z-index:1000;padding:8px 0}.dropdown-menu-item.disabled{color:#aaa;cursor:not-allowed}.dropdown-menu-item:hover:not(.disabled),.dropdown-menu-item.has-submenu:hover{background:#f5f5f5}.dropdown-menu-item{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item .dropdown-label{flex:1;margin-left:8px}.dropdown-menu-item .submenu-arrow{margin-left:auto;width:16px;height:16px}.submenu-container{position:absolute;top:0;left:100%;margin-left:4px;background:#fff;box-shadow:0 4px 8px #0000001a;border-radius:8px;z-index:1000;white-space:nowrap}.dropdown-submenu{position:absolute;top:0;min-width:180px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu.right{left:100%;margin-left:4px}.dropdown-submenu.left{left:auto;right:100%;margin-right:8px;background-color:#fff;border:1px solid #ddd;z-index:9999;position:absolute}.submenu-arrow{display:flex;align-items:center;margin-left:auto;z-index:9999}\n"] }]
267
+ args: [{ selector: 'mis-actions-cell', template: "<div class=\"actions-cell-container\" [ngStyle]=\"containerStyle\">\n <!-- Inline Actions -->\n <div *ngIf=\"actionType === 'inline'\" class=\"inline-actions\">\n <div *ngFor=\"let item of actionItems; trackBy: trackByAction\" class=\"action-item\"\n [ngClass]=\"{ 'disabled': item.disabled }\" (click)=\"onActionClick(item, $event)\" [title]=\"item.label\">\n <img *ngIf=\"isSvgFile(item.icon)\" [src]=\"item.icon\" [alt]=\"item.label\" class=\"action-icon-svg\" />\n <!-- <span *ngIf=\"!isSvgFile(item.icon)\" class=\"action-icon\" [innerHTML]=\"item.icon\"></span> -->\n </div>\n </div>\n\n <!-- Dropdown Actions -->\n <div *ngIf=\"actionType === 'dropdown'\" class=\"dropdown-actions\">\n <div class=\"dropdown-trigger\" (click)=\"toggleDropdown($event)\" title=\"More actions\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <circle cx=\"8\" cy=\"4\" r=\"1.5\" fill=\"#333\" />\n <circle cx=\"8\" cy=\"8\" r=\"1.5\" fill=\"#333\" />\n <circle cx=\"8\" cy=\"12\" r=\"1.5\" fill=\"#333\" />\n </svg>\n </div>\n\n <div class=\"dropdown-menu\" *ngIf=\"isDropdownOpen\">\n <div class=\"dropdown-menu-item\" *ngFor=\"let item of actionItems\" \n (click)=\"onDropdownItemClick(item, $event)\">\n <ng-container *ngIf=\"item.children?.length; else noChildren\">\n <span class=\"dropdown-icon\" *ngIf=\"item.icon && isSvgFile(item.icon)\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n <span class=\"submenu-arrow\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"#0D1321\" stroke-width=\"2\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </span>\n\n <!-- DYNAMIC SUBMENU -->\n <div class=\"dropdown-submenu\"\n [ngClass]=\"{ 'left': submenuAlign === 'left', 'right': submenuAlign !== 'left' }\"\n *ngIf=\"item.showSubmenu\">\n <div class=\"dropdown-menu-item\" *ngFor=\"let child of item.children\"\n (click)=\"handleAction(child)\">\n <span class=\"dropdown-icon\" *ngIf=\"child.icon && isSvgFile(child.icon)\">\n <img [src]=\"child.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ child.label }}</span>\n </div>\n </div>\n </ng-container>\n\n <ng-template #noChildren>\n <span class=\"dropdown-icon\" *ngIf=\"item.icon && isSvgFile(item.icon)\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n </ng-template>\n </div>\n </div>\n </div>\n</div>", styles: [".actions-cell-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item:active:not(.disabled){transform:scale(.95)}.action-item.disabled{opacity:.5;cursor:not-allowed}.action-item.disabled:hover{background-color:transparent;transform:none}.action-icon{font-size:16px;color:#666;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger{cursor:pointer}.dropdown-actions{position:relative}.dropdown-trigger{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-menu{position:absolute;top:100%;right:0;width:240px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;z-index:1000;padding:8px 0}.dropdown-menu-item.disabled{color:#aaa;cursor:not-allowed}.dropdown-menu-item:hover:not(.disabled),.dropdown-menu-item.has-submenu:hover{background:#f5f5f5}.dropdown-menu-item{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item .dropdown-label{flex:1;margin-left:8px}.dropdown-menu-item .submenu-arrow{margin-left:auto;width:16px;height:16px}.submenu-container{position:absolute;top:0;left:100%;margin-left:4px;background:#fff;box-shadow:0 4px 8px #0000001a;border-radius:8px;z-index:1000;white-space:nowrap}.dropdown-submenu{position:absolute;top:0;min-width:180px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu.right{left:100%;margin-left:4px}.dropdown-submenu.left{left:auto;right:100%;background-color:#fff;border:1px solid #ddd;z-index:9999;position:absolute}.submenu-arrow{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon{display:flex;justify-content:center;align-items:center}\n"] }]
272
268
  }], null, { data: [{
273
269
  type: Input
274
270
  }], actionItems: [{
@@ -288,4 +284,4 @@ export class ActionsCellComponent {
288
284
  args: ['document:click']
289
285
  }] }); })();
290
286
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActionsCellComponent, { className: "ActionsCellComponent" }); })();
291
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RhYmxlL2FjdGlvbnMtY2VsbC9hY3Rpb25zLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvYWN0aW9ucy1jZWxsL2FjdGlvbnMtY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0lDS2pGLHlCQUFpRzs7O0lBQTdDLEFBQWxCLG9EQUFpQixzQkFBbUI7OztJQUN0RSwyQkFBdUY7OztJQUEvQiwyREFBdUI7Ozs7SUFIbkYsOEJBQ3lHO0lBQTNELG9OQUFTLHFDQUEyQixLQUFDO0lBRS9FLEFBREEsaUZBQWlHLHNFQUNqQjtJQUNwRixpQkFBTTs7OztJQUg4RSxBQUFoRixzRUFBeUMsd0JBQTJEO0lBQzlGLGNBQTBCO0lBQTFCLHFEQUEwQjtJQUN6QixjQUEyQjtJQUEzQixzREFBMkI7OztJQUoxQyw4QkFBNEQ7SUFDeEQsMkVBQ3lHO0lBSTdHLGlCQUFNOzs7SUFMb0IsY0FBZ0I7SUFBQSxBQUFoQiw0Q0FBZ0Isc0NBQXNCOzs7SUFzQjVDLDBCQUEyQzs7O0lBQXBCLG9EQUFpQjs7O0lBZ0JwQyxnQ0FBK0M7SUFDM0MsMEJBQTBCO0lBQzlCLGlCQUFPOzs7SUFERSxjQUFrQjtJQUFsQixxREFBa0I7Ozs7SUFIL0IsK0JBQ2tDO0lBQTlCLGdQQUFTLDZCQUFtQixLQUFDO0lBQzdCLHFIQUErQztJQUcvQyxnQ0FBNkI7SUFBQSxZQUFpQjtJQUNsRCxBQURrRCxpQkFBTyxFQUNuRDs7O0lBSjJCLGNBQWdCO0lBQWhCLG9DQUFnQjtJQUdoQixlQUFp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QkFBcEIsS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFNTyxLQUFLO2tCQUFqQixLQUFLO1lBU0ksV0FBVztrQkFBcEIsTUFBTTtZQXlEUCxlQUFlO2tCQURkLFlBQVk7bUJBQUMsZ0JBQWdCOztrRkE1RW5CLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uSXRlbSB9IGZyb20gJy4uL3RhYmxlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21pcy1hY3Rpb25zLWNlbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9ucy1jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2FjdGlvbnMtY2VsbC5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25zQ2VsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcbiAgQElucHV0KCkgYWN0aW9uSXRlbXM6IEFjdGlvbkl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBhY3Rpb25UeXBlOiAnaW5saW5lJyB8ICdkcm9wZG93bicgPSAnaW5saW5lJztcbiAgQElucHV0KCkgZHJvcGRvd25JY29uOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgc3VibWVudUFsaWduOiAnbGVmdCcgfCAncmlnaHQnID0gJ3JpZ2h0JztcblxuICBcbiAgcHJpdmF0ZSBfc3R5bGU6IGFueSA9IHt9O1xuICBjb250YWluZXJTdHlsZTogYW55ID0ge307XG5cbiAgQElucHV0KCkgc2V0IHN0eWxlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLl9zdHlsZSA9IHZhbHVlIHx8IHt9O1xuICAgIHRoaXMucHJvY2Vzc1N0eWxlKCk7XG4gIH1cblxuICBnZXQgc3R5bGUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fc3R5bGU7XG4gIH1cbiAgXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpdGVtOiBBY3Rpb25JdGVtLCBkYXRhOiBhbnkgfT4oKTtcblxuICBpc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICBkZWZhdWx0RHJvcGRvd25JY29uID0gYFxuICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiNFwiIHI9XCIyXCIgZmlsbD1cIiMzMzNcIi8+XG4gICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjhcIiByPVwiMlwiIGZpbGw9XCIjMzMzXCIvPlxuICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCIxMlwiIHI9XCIyXCIgZmlsbD1cIiMzMzNcIi8+XG4gIDwvc3ZnPlxuYDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyhcIkFDVElPTiBJVEVNUzpcIiwgdGhpcy5hY3Rpb25JdGVtcyk7XG4gICAgY29uc29sZS5sb2coXCJBQ1RJT04gVFlQRTpcIiwgdGhpcy5hY3Rpb25UeXBlKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1N0eWxlKCk6IHZvaWQge1xuICAgIC8vIFJlbW92ZSB3aWR0aCBmcm9tIHN0eWxlIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIHRhYmxlIGNvbHVtbiB3aWR0aFxuICAgIGNvbnN0IHsgd2lkdGgsIC4uLnJlc3RTdHlsZSB9ID0gdGhpcy5fc3R5bGU7XG4gICAgdGhpcy5jb250YWluZXJTdHlsZSA9IHJlc3RTdHlsZTtcbiAgfVxuXG4gIGhhbmRsZUFjdGlvbihpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICAvLyBZb3UgY2FuIGN1c3RvbWl6ZSB0aGlzIGxvZ2ljIHRvIGVtaXQgYW4gZXZlbnQgb3IgZGlyZWN0bHkgdHJpZ2dlciBzb21ldGhpbmdcbiAgICBjb25zb2xlLmxvZygnQWN0aW9uIGNsaWNrZWQ6JywgaXRlbSk7XG4gIFxuICAgIC8vIEV4YW1wbGU6IElmIHlvdSdyZSBlbWl0dGluZyBpdCB0byBwYXJlbnRcbiAgICAvLyB0aGlzLmFjdGlvblRyaWdnZXJlZC5lbWl0KGl0ZW0pO1xuICB9XG4gIFxuXG4gIG9uQWN0aW9uQ2xpY2soaXRlbTogQWN0aW9uSXRlbSwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgXG4gICAgaWYgKGl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgY29uc29sZS5sb2coXCJBY3Rpb24gY2xpY2tlZDpcIiwgaXRlbS5sYWJlbCwgXCJEYXRhOlwiLCB0aGlzLmRhdGEpO1xuICAgIFxuICAgIGlmIChpdGVtLmFjdGlvbikge1xuICAgICAgaXRlbS5hY3Rpb24odGhpcy5kYXRhKTtcbiAgICB9XG4gICAgXG4gICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KHsgaXRlbSwgZGF0YTogdGhpcy5kYXRhIH0pO1xuICB9XG5cbiAgdHJhY2tCeUFjdGlvbihpbmRleDogbnVtYmVyLCBpdGVtOiBBY3Rpb25JdGVtKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgfVxuXG4gIGlzU3ZnRmlsZShpY29uUGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFpY29uUGF0aCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBpY29uUGF0aC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCcuc3ZnJykgfHwgaWNvblBhdGgudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnYXNzZXRzL2ljb25zLycpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snKVxuICBvbkRvY3VtZW50Q2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaXNEcm9wZG93bk9wZW4pIHtcbiAgICAgIHRoaXMuaXNEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVEcm9wZG93bihldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmlzRHJvcGRvd25PcGVuID0gIXRoaXMuaXNEcm9wZG93bk9wZW47XG4gICAgLy8gQ2xvc2UgYWxsIHN1Ym1lbnVzIHdoZW4gb3BlbmluZy9jbG9zaW5nIG1haW4gbWVudVxuICAgIHRoaXMuYWN0aW9uSXRlbXMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiBpdGVtLnNob3dTdWJtZW51ID0gZmFsc2UpO1xuICB9XG4gIFxuICBvbkRyb3Bkb3duSXRlbUNsaWNrKGl0ZW06IGFueSwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKGl0ZW0uZGlzYWJsZWQpIHJldHVybjtcbiAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgLy8gVG9nZ2xlIHN1Ym1lbnVcbiAgICAgIGl0ZW0uc2hvd1N1Ym1lbnUgPSAhaXRlbS5zaG93U3VibWVudTtcbiAgICAgIC8vIE9wdGlvbmFsbHkgY2xvc2Ugb3RoZXIgc3VibWVudXNcbiAgICAgIHRoaXMuYWN0aW9uSXRlbXMuZm9yRWFjaCgoaTogYW55KSA9PiB7XG4gICAgICAgIGlmIChpICE9PSBpdGVtKSBpLnNob3dTdWJtZW51ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSGFuZGxlIGFjdGlvblxuICAgICAgaWYgKGl0ZW0uYWN0aW9uKSBpdGVtLmFjdGlvbih0aGlzLmRhdGEpO1xuICAgICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KHsgaXRlbSwgZGF0YTogdGhpcy5kYXRhIH0pO1xuICAgICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxufSIsIjxkaXYgY2xhc3M9XCJhY3Rpb25zLWNlbGwtY29udGFpbmVyXCIgW25nU3R5bGVdPVwiY29udGFpbmVyU3R5bGVcIj5cbiAgICA8IS0tIElubGluZSBBY3Rpb25zIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJhY3Rpb25UeXBlID09PSAnaW5saW5lJ1wiIGNsYXNzPVwiaW5saW5lLWFjdGlvbnNcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhY3Rpb25JdGVtczsgdHJhY2tCeTogdHJhY2tCeUFjdGlvblwiIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZGlzYWJsZWQnOiBpdGVtLmRpc2FibGVkIH1cIiAoY2xpY2spPVwib25BY3Rpb25DbGljayhpdGVtLCAkZXZlbnQpXCIgW3RpdGxlXT1cIml0ZW0ubGFiZWxcIj5cbiAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJpc1N2Z0ZpbGUoaXRlbS5pY29uKVwiIFtzcmNdPVwiaXRlbS5pY29uXCIgW2FsdF09XCJpdGVtLmxhYmVsXCIgY2xhc3M9XCJhY3Rpb24taWNvbi1zdmdcIiAvPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXNTdmdGaWxlKGl0ZW0uaWNvbilcIiBjbGFzcz1cImFjdGlvbi1pY29uXCIgW2lubmVySFRNTF09XCJpdGVtLmljb25cIj48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBEcm9wZG93biBBY3Rpb25zIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJhY3Rpb25UeXBlID09PSAnZHJvcGRvd24nXCIgY2xhc3M9XCJkcm9wZG93bi1hY3Rpb25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi10cmlnZ2VyXCIgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKCRldmVudClcIiB0aXRsZT1cIk1vcmUgYWN0aW9uc1wiPlxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiNFwiIHI9XCIxLjVcIiBmaWxsPVwiIzMzM1wiIC8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjhcIiByPVwiMS41XCIgZmlsbD1cIiMzMzNcIiAvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCIxMlwiIHI9XCIxLjVcIiBmaWxsPVwiIzMzM1wiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiAqbmdJZj1cImlzRHJvcGRvd25PcGVuXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudS1pdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWN0aW9uSXRlbXNcIiBcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Ecm9wZG93bkl0ZW1DbGljayhpdGVtLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uY2hpbGRyZW4/Lmxlbmd0aDsgZWxzZSBub0NoaWxkcmVuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIml0ZW0uaWNvblwiIFtzcmNdPVwiaXRlbS5pY29uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWxhYmVsXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJtZW51LWFycm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOSA2TDE1IDEyTDkgMThcIiBzdHJva2U9XCIjMEQxMzIxXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gRFlOQU1JQyBTVUJNRU5VIC0tPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tc3VibWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdsZWZ0Jzogc3VibWVudUFsaWduID09PSAnbGVmdCcsICdyaWdodCc6IHN1Ym1lbnVBbGlnbiAhPT0gJ2xlZnQnIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnNob3dTdWJtZW51XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudS1pdGVtXCIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGl0ZW0uY2hpbGRyZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVBY3Rpb24oY2hpbGQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1pY29uXCIgKm5nSWY9XCJjaGlsZC5pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJjaGlsZC5pY29uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1sYWJlbFwiPnt7IGNoaWxkLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0NoaWxkcmVuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWljb25cIiAqbmdJZj1cIml0ZW0uaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0uaWNvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1sYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==
287
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RhYmxlL2FjdGlvbnMtY2VsbC9hY3Rpb25zLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvYWN0aW9ucy1jZWxsL2FjdGlvbnMtY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0lDS2pGLHlCQUFpRzs7O0lBQTdDLEFBQWxCLG9EQUFpQixzQkFBbUI7Ozs7SUFGMUUsOEJBQ3lHO0lBQTNELG9OQUFTLHFDQUEyQixLQUFDO0lBQy9FLGlGQUFpRztJQUVyRyxpQkFBTTs7OztJQUg4RSxBQUFoRixzRUFBeUMsd0JBQTJEO0lBQzlGLGNBQTBCO0lBQTFCLHFEQUEwQjs7O0lBSHhDLDhCQUE0RDtJQUN4RCwyRUFDeUc7SUFJN0csaUJBQU07OztJQUxvQixjQUFnQjtJQUFBLEFBQWhCLDRDQUFnQixzQ0FBc0I7OztJQXFCaEQsZ0NBQXNFO0lBQ2xFLDBCQUF5QjtJQUM3QixpQkFBTzs7O0lBREUsY0FBaUI7SUFBakIsb0RBQWlCOzs7SUFnQmxCLGdDQUF3RTtJQUNwRSwwQkFBMEI7SUFDOUIsaUJBQU87OztJQURFLGNBQWtCO0lBQWxCLHFEQUFrQjs7OztJQUgvQiwrQkFDa0M7SUFBOUIsZ1BBQVMsNkJBQW1CLEtBQUM7SUFDN0IscUhBQXdFO0lBR3hFLGdDQUE2QjtJQUFBLFlBQWlCO0lBQ2xELEFBRGtELGlCQUFPLEVBQ25EOzs7O0lBSjJCLGNBQXlDO0lBQXpDLHVFQUF5QztJQUd6QyxlQUFpQjtJQUFqQixvQ0FBaUI7OztJQVJ0RCwrQkFFNkI7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akIsS0FBSztZQVNJLFdBQVc7a0JBQXBCLE1BQU07WUF5RFAsZUFBZTtrQkFEZCxZQUFZO21CQUFDLGdCQUFnQjs7a0ZBNUVuQixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbkl0ZW0gfSBmcm9tICcuLi90YWJsZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtaXMtYWN0aW9ucy1jZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbnMtY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hY3Rpb25zLWNlbGwuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uc0NlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBkYXRhOiBhbnk7XG4gIEBJbnB1dCgpIGFjdGlvbkl0ZW1zOiBBY3Rpb25JdGVtW10gPSBbXTtcbiAgQElucHV0KCkgYWN0aW9uVHlwZTogJ2lubGluZScgfCAnZHJvcGRvd24nID0gJ2lubGluZSc7XG4gIEBJbnB1dCgpIGRyb3Bkb3duSWNvbjogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHN1Ym1lbnVBbGlnbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdyaWdodCc7XG5cbiAgXG4gIHByaXZhdGUgX3N0eWxlOiBhbnkgPSB7fTtcbiAgY29udGFpbmVyU3R5bGU6IGFueSA9IHt9O1xuXG4gIEBJbnB1dCgpIHNldCBzdHlsZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fc3R5bGUgPSB2YWx1ZSB8fCB7fTtcbiAgICB0aGlzLnByb2Nlc3NTdHlsZSgpO1xuICB9XG5cbiAgZ2V0IHN0eWxlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0eWxlO1xuICB9XG4gIFxuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbTogQWN0aW9uSXRlbSwgZGF0YTogYW55IH0+KCk7XG5cbiAgaXNEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgZGVmYXVsdERyb3Bkb3duSWNvbiA9IGBcbiAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjRcIiByPVwiMlwiIGZpbGw9XCIjMzMzXCIvPlxuICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCI4XCIgcj1cIjJcIiBmaWxsPVwiIzMzM1wiLz5cbiAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiMTJcIiByPVwiMlwiIGZpbGw9XCIjMzMzXCIvPlxuICA8L3N2Zz5cbmA7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coXCJBQ1RJT04gSVRFTVM6XCIsIHRoaXMuYWN0aW9uSXRlbXMpO1xuICAgIGNvbnNvbGUubG9nKFwiQUNUSU9OIFRZUEU6XCIsIHRoaXMuYWN0aW9uVHlwZSk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NTdHlsZSgpOiB2b2lkIHtcbiAgICAvLyBSZW1vdmUgd2lkdGggZnJvbSBzdHlsZSB0byBhdm9pZCBjb25mbGljdHMgd2l0aCB0YWJsZSBjb2x1bW4gd2lkdGhcbiAgICBjb25zdCB7IHdpZHRoLCAuLi5yZXN0U3R5bGUgfSA9IHRoaXMuX3N0eWxlO1xuICAgIHRoaXMuY29udGFpbmVyU3R5bGUgPSByZXN0U3R5bGU7XG4gIH1cblxuICBoYW5kbGVBY3Rpb24oaXRlbTogYW55KTogdm9pZCB7XG4gICAgLy8gWW91IGNhbiBjdXN0b21pemUgdGhpcyBsb2dpYyB0byBlbWl0IGFuIGV2ZW50IG9yIGRpcmVjdGx5IHRyaWdnZXIgc29tZXRoaW5nXG4gICAgY29uc29sZS5sb2coJ0FjdGlvbiBjbGlja2VkOicsIGl0ZW0pO1xuICBcbiAgICAvLyBFeGFtcGxlOiBJZiB5b3UncmUgZW1pdHRpbmcgaXQgdG8gcGFyZW50XG4gICAgLy8gdGhpcy5hY3Rpb25UcmlnZ2VyZWQuZW1pdChpdGVtKTtcbiAgfVxuICBcblxuICBvbkFjdGlvbkNsaWNrKGl0ZW06IEFjdGlvbkl0ZW0sIGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIFxuICAgIGlmIChpdGVtLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIGNvbnNvbGUubG9nKFwiQWN0aW9uIGNsaWNrZWQ6XCIsIGl0ZW0ubGFiZWwsIFwiRGF0YTpcIiwgdGhpcy5kYXRhKTtcbiAgICBcbiAgICBpZiAoaXRlbS5hY3Rpb24pIHtcbiAgICAgIGl0ZW0uYWN0aW9uKHRoaXMuZGF0YSk7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdCh7IGl0ZW0sIGRhdGE6IHRoaXMuZGF0YSB9KTtcbiAgfVxuXG4gIHRyYWNrQnlBY3Rpb24oaW5kZXg6IG51bWJlciwgaXRlbTogQWN0aW9uSXRlbSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0udmFsdWU7XG4gIH1cblxuICBpc1N2Z0ZpbGUoaWNvblBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghaWNvblBhdGgpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gaWNvblBhdGgudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnLnN2ZycpIHx8IGljb25QYXRoLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2Fzc2V0cy9pY29ucy8nKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJylcbiAgb25Eb2N1bWVudENsaWNrKCkge1xuICAgIGlmICh0aGlzLmlzRHJvcGRvd25PcGVuKSB7XG4gICAgICB0aGlzLmlzRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRHJvcGRvd24oZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiA9ICF0aGlzLmlzRHJvcGRvd25PcGVuO1xuICAgIC8vIENsb3NlIGFsbCBzdWJtZW51cyB3aGVuIG9wZW5pbmcvY2xvc2luZyBtYWluIG1lbnVcbiAgICB0aGlzLmFjdGlvbkl0ZW1zLmZvckVhY2goKGl0ZW06IGFueSkgPT4gaXRlbS5zaG93U3VibWVudSA9IGZhbHNlKTtcbiAgfVxuICBcbiAgb25Ecm9wZG93bkl0ZW1DbGljayhpdGVtOiBhbnksIGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmIChpdGVtLmRpc2FibGVkKSByZXR1cm47XG4gICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgIC8vIFRvZ2dsZSBzdWJtZW51XG4gICAgICBpdGVtLnNob3dTdWJtZW51ID0gIWl0ZW0uc2hvd1N1Ym1lbnU7XG4gICAgICAvLyBPcHRpb25hbGx5IGNsb3NlIG90aGVyIHN1Ym1lbnVzXG4gICAgICB0aGlzLmFjdGlvbkl0ZW1zLmZvckVhY2goKGk6IGFueSkgPT4ge1xuICAgICAgICBpZiAoaSAhPT0gaXRlbSkgaS5zaG93U3VibWVudSA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEhhbmRsZSBhY3Rpb25cbiAgICAgIGlmIChpdGVtLmFjdGlvbikgaXRlbS5hY3Rpb24odGhpcy5kYXRhKTtcbiAgICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdCh7IGl0ZW0sIGRhdGE6IHRoaXMuZGF0YSB9KTtcbiAgICAgIHRoaXMuaXNEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICB9XG4gIH1cbn0iLCI8ZGl2IGNsYXNzPVwiYWN0aW9ucy1jZWxsLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cImNvbnRhaW5lclN0eWxlXCI+XG4gICAgPCEtLSBJbmxpbmUgQWN0aW9ucyAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gJ2lubGluZSdcIiBjbGFzcz1cImlubGluZS1hY3Rpb25zXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWN0aW9uSXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlBY3Rpb25cIiBjbGFzcz1cImFjdGlvbi1pdGVtXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2Rpc2FibGVkJzogaXRlbS5kaXNhYmxlZCB9XCIgKGNsaWNrKT1cIm9uQWN0aW9uQ2xpY2soaXRlbSwgJGV2ZW50KVwiIFt0aXRsZV09XCJpdGVtLmxhYmVsXCI+XG4gICAgICAgICAgICA8aW1nICpuZ0lmPVwiaXNTdmdGaWxlKGl0ZW0uaWNvbilcIiBbc3JjXT1cIml0ZW0uaWNvblwiIFthbHRdPVwiaXRlbS5sYWJlbFwiIGNsYXNzPVwiYWN0aW9uLWljb24tc3ZnXCIgLz5cbiAgICAgICAgICAgIDwhLS0gPHNwYW4gKm5nSWY9XCIhaXNTdmdGaWxlKGl0ZW0uaWNvbilcIiBjbGFzcz1cImFjdGlvbi1pY29uXCIgW2lubmVySFRNTF09XCJpdGVtLmljb25cIj48L3NwYW4+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gRHJvcGRvd24gQWN0aW9ucyAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gJ2Ryb3Bkb3duJ1wiIGNsYXNzPVwiZHJvcGRvd24tYWN0aW9uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tdHJpZ2dlclwiIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bigkZXZlbnQpXCIgdGl0bGU9XCJNb3JlIGFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjRcIiByPVwiMS41XCIgZmlsbD1cIiMzMzNcIiAvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCI4XCIgcj1cIjEuNVwiIGZpbGw9XCIjMzMzXCIgLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiMTJcIiByPVwiMS41XCIgZmlsbD1cIiMzMzNcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgKm5nSWY9XCJpc0Ryb3Bkb3duT3BlblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUtaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFjdGlvbkl0ZW1zXCIgXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRHJvcGRvd25JdGVtQ2xpY2soaXRlbSwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmNoaWxkcmVuPy5sZW5ndGg7IGVsc2Ugbm9DaGlsZHJlblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWljb25cIiAqbmdJZj1cIml0ZW0uaWNvbiAmJiBpc1N2Z0ZpbGUoaXRlbS5pY29uKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0uaWNvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1sYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VibWVudS1hcnJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTkgNkwxNSAxMkw5IDE4XCIgc3Ryb2tlPVwiIzBEMTMyMVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICA8IS0tIERZTkFNSUMgU1VCTUVOVSAtLT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLXN1Ym1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnbGVmdCc6IHN1Ym1lbnVBbGlnbiA9PT0gJ2xlZnQnLCAncmlnaHQnOiBzdWJtZW51QWxpZ24gIT09ICdsZWZ0JyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5zaG93U3VibWVudVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUtaXRlbVwiICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBpdGVtLmNoaWxkcmVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQWN0aW9uKGNoaWxkKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24taWNvblwiICpuZ0lmPVwiY2hpbGQuaWNvbiAmJiBpc1N2Z0ZpbGUoY2hpbGQuaWNvbilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImNoaWxkLmljb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWxhYmVsXCI+e3sgY2hpbGQubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vQ2hpbGRyZW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24taWNvblwiICpuZ0lmPVwiaXRlbS5pY29uICYmIGlzU3ZnRmlsZShpdGVtLmljb24pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaXRlbS5pY29uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWxhYmVsXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19