mis-crystal-design-system 18.0.13-test-12 → 18.0.13-test-13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/table/actions-cell/actions-cell.component.mjs +67 -70
- package/esm2022/table/table.component.mjs +154 -103
- package/esm2022/table/table.module.mjs +3 -2
- package/fesm2022/mis-crystal-design-system-table.mjs +220 -172
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/package.json +24 -24
- package/table/actions-cell/actions-cell.component.d.ts +2 -2
- package/table/table.component.d.ts +11 -4
|
@@ -6,73 +6,75 @@ const _c0 = a0 => ({ "disabled": a0 });
|
|
|
6
6
|
function ActionsCellComponent_div_1_div_1_img_1_Template(rf, ctx) { if (rf & 1) {
|
|
7
7
|
i0.ɵɵelement(0, "img", 9);
|
|
8
8
|
} if (rf & 2) {
|
|
9
|
-
const
|
|
10
|
-
i0.ɵɵproperty("src",
|
|
9
|
+
const item_r2 = i0.ɵɵnextContext().$implicit;
|
|
10
|
+
i0.ɵɵproperty("src", item_r2.icon, i0.ɵɵsanitizeUrl)("alt", item_r2.label);
|
|
11
11
|
} }
|
|
12
12
|
function ActionsCellComponent_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
13
14
|
i0.ɵɵelementStart(0, "div", 7);
|
|
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)); });
|
|
14
16
|
i0.ɵɵtemplate(1, ActionsCellComponent_div_1_div_1_img_1_Template, 1, 2, "img", 8);
|
|
15
17
|
i0.ɵɵelementEnd();
|
|
16
18
|
} if (rf & 2) {
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c0,
|
|
19
|
+
const item_r2 = ctx.$implicit;
|
|
20
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
21
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c0, ctx_r2.isDisabled(item_r2)));
|
|
20
22
|
i0.ɵɵadvance();
|
|
21
|
-
i0.ɵɵproperty("ngIf",
|
|
23
|
+
i0.ɵɵproperty("ngIf", ctx_r2.isSvgFile(item_r2.icon));
|
|
22
24
|
} }
|
|
23
25
|
function ActionsCellComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
24
26
|
i0.ɵɵelementStart(0, "div", 5);
|
|
25
27
|
i0.ɵɵtemplate(1, ActionsCellComponent_div_1_div_1_Template, 2, 4, "div", 6);
|
|
26
28
|
i0.ɵɵelementEnd();
|
|
27
29
|
} if (rf & 2) {
|
|
28
|
-
const
|
|
30
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
29
31
|
i0.ɵɵadvance();
|
|
30
|
-
i0.ɵɵproperty("ngForOf",
|
|
32
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.actionItems)("ngForTrackBy", ctx_r2.trackByAction);
|
|
31
33
|
} }
|
|
32
34
|
function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
33
35
|
i0.ɵɵelementStart(0, "span", 27);
|
|
34
36
|
i0.ɵɵelement(1, "img", 28);
|
|
35
37
|
i0.ɵɵelementEnd();
|
|
36
38
|
} if (rf & 2) {
|
|
37
|
-
const
|
|
39
|
+
const item_r6 = i0.ɵɵnextContext(2).$implicit;
|
|
38
40
|
i0.ɵɵadvance();
|
|
39
|
-
i0.ɵɵproperty("src",
|
|
41
|
+
i0.ɵɵproperty("src", item_r6.icon, i0.ɵɵsanitizeUrl);
|
|
40
42
|
} }
|
|
41
43
|
function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
42
44
|
i0.ɵɵelementStart(0, "span", 27);
|
|
43
45
|
i0.ɵɵelement(1, "img", 28);
|
|
44
46
|
i0.ɵɵelementEnd();
|
|
45
47
|
} if (rf & 2) {
|
|
46
|
-
const
|
|
48
|
+
const child_r8 = i0.ɵɵnextContext().$implicit;
|
|
47
49
|
i0.ɵɵadvance();
|
|
48
|
-
i0.ɵɵproperty("src",
|
|
50
|
+
i0.ɵɵproperty("src", child_r8.icon, i0.ɵɵsanitizeUrl);
|
|
49
51
|
} }
|
|
50
52
|
function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
51
|
-
const
|
|
53
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
52
54
|
i0.ɵɵelementStart(0, "div", 19);
|
|
53
|
-
i0.ɵɵlistener("click", function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template_div_click_0_listener($event) { const
|
|
55
|
+
i0.ɵɵlistener("click", function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template_div_click_0_listener($event) { const child_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.onDropdownItemClick(child_r8, $event)); });
|
|
54
56
|
i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_span_1_Template, 2, 1, "span", 21);
|
|
55
57
|
i0.ɵɵelementStart(2, "span", 22);
|
|
56
58
|
i0.ɵɵtext(3);
|
|
57
59
|
i0.ɵɵelementEnd()();
|
|
58
60
|
} if (rf & 2) {
|
|
59
|
-
const
|
|
60
|
-
const
|
|
61
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0,
|
|
61
|
+
const child_r8 = ctx.$implicit;
|
|
62
|
+
const ctx_r2 = i0.ɵɵnextContext(6);
|
|
63
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, ctx_r2.isDisabled(child_r8)));
|
|
62
64
|
i0.ɵɵadvance();
|
|
63
|
-
i0.ɵɵproperty("ngIf",
|
|
65
|
+
i0.ɵɵproperty("ngIf", child_r8.icon && ctx_r2.isSvgFile(child_r8.icon));
|
|
64
66
|
i0.ɵɵadvance(2);
|
|
65
|
-
i0.ɵɵtextInterpolate(
|
|
67
|
+
i0.ɵɵtextInterpolate(child_r8.label);
|
|
66
68
|
} }
|
|
67
69
|
function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
68
70
|
i0.ɵɵelementStart(0, "div", 29);
|
|
69
71
|
i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template, 4, 5, "div", 18);
|
|
70
72
|
i0.ɵɵelementEnd();
|
|
71
73
|
} if (rf & 2) {
|
|
72
|
-
const
|
|
73
|
-
i0.ɵɵproperty("ngClass",
|
|
74
|
+
const item_r6 = i0.ɵɵnextContext(2).$implicit;
|
|
75
|
+
i0.ɵɵproperty("ngClass", item_r6.submenuAlign);
|
|
74
76
|
i0.ɵɵadvance();
|
|
75
|
-
i0.ɵɵproperty("ngForOf",
|
|
77
|
+
i0.ɵɵproperty("ngForOf", item_r6.children);
|
|
76
78
|
} }
|
|
77
79
|
function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
78
80
|
i0.ɵɵelementContainerStart(0);
|
|
@@ -88,23 +90,23 @@ function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_Template(rf, ctx)
|
|
|
88
90
|
i0.ɵɵtemplate(7, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_Template, 2, 2, "div", 26);
|
|
89
91
|
i0.ɵɵelementContainerEnd();
|
|
90
92
|
} if (rf & 2) {
|
|
91
|
-
const
|
|
92
|
-
const
|
|
93
|
+
const item_r6 = i0.ɵɵnextContext().$implicit;
|
|
94
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
93
95
|
i0.ɵɵadvance();
|
|
94
|
-
i0.ɵɵproperty("ngIf",
|
|
96
|
+
i0.ɵɵproperty("ngIf", item_r6.icon && ctx_r2.isSvgFile(item_r6.icon));
|
|
95
97
|
i0.ɵɵadvance(2);
|
|
96
|
-
i0.ɵɵtextInterpolate(
|
|
98
|
+
i0.ɵɵtextInterpolate(item_r6.label);
|
|
97
99
|
i0.ɵɵadvance(4);
|
|
98
|
-
i0.ɵɵproperty("ngIf",
|
|
100
|
+
i0.ɵɵproperty("ngIf", item_r6.showSubmenu);
|
|
99
101
|
} }
|
|
100
102
|
function ActionsCellComponent_div_2_div_6_div_1_ng_template_2_span_0_Template(rf, ctx) { if (rf & 1) {
|
|
101
103
|
i0.ɵɵelementStart(0, "span", 27);
|
|
102
104
|
i0.ɵɵelement(1, "img", 28);
|
|
103
105
|
i0.ɵɵelementEnd();
|
|
104
106
|
} if (rf & 2) {
|
|
105
|
-
const
|
|
107
|
+
const item_r6 = i0.ɵɵnextContext(2).$implicit;
|
|
106
108
|
i0.ɵɵadvance();
|
|
107
|
-
i0.ɵɵproperty("src",
|
|
109
|
+
i0.ɵɵproperty("src", item_r6.icon, i0.ɵɵsanitizeUrl);
|
|
108
110
|
} }
|
|
109
111
|
function ActionsCellComponent_div_2_div_6_div_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
110
112
|
i0.ɵɵtemplate(0, ActionsCellComponent_div_2_div_6_div_1_ng_template_2_span_0_Template, 2, 1, "span", 21);
|
|
@@ -112,40 +114,40 @@ function ActionsCellComponent_div_2_div_6_div_1_ng_template_2_Template(rf, ctx)
|
|
|
112
114
|
i0.ɵɵtext(2);
|
|
113
115
|
i0.ɵɵelementEnd();
|
|
114
116
|
} if (rf & 2) {
|
|
115
|
-
const
|
|
116
|
-
const
|
|
117
|
-
i0.ɵɵproperty("ngIf",
|
|
117
|
+
const item_r6 = i0.ɵɵnextContext().$implicit;
|
|
118
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
119
|
+
i0.ɵɵproperty("ngIf", item_r6.icon && ctx_r2.isSvgFile(item_r6.icon));
|
|
118
120
|
i0.ɵɵadvance(2);
|
|
119
|
-
i0.ɵɵtextInterpolate(
|
|
121
|
+
i0.ɵɵtextInterpolate(item_r6.label);
|
|
120
122
|
} }
|
|
121
123
|
function ActionsCellComponent_div_2_div_6_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
122
|
-
const
|
|
124
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
123
125
|
i0.ɵɵelementStart(0, "div", 19);
|
|
124
|
-
i0.ɵɵlistener("click", function ActionsCellComponent_div_2_div_6_div_1_Template_div_click_0_listener($event) { const
|
|
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)); });
|
|
125
127
|
i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_Template, 8, 3, "ng-container", 20)(2, ActionsCellComponent_div_2_div_6_div_1_ng_template_2_Template, 3, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
126
128
|
i0.ɵɵelementEnd();
|
|
127
129
|
} if (rf & 2) {
|
|
128
|
-
const
|
|
129
|
-
const
|
|
130
|
-
const
|
|
131
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0,
|
|
130
|
+
const item_r6 = ctx.$implicit;
|
|
131
|
+
const noChildren_r9 = i0.ɵɵreference(3);
|
|
132
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
133
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, ctx_r2.isDisabled(item_r6)));
|
|
132
134
|
i0.ɵɵadvance();
|
|
133
|
-
i0.ɵɵproperty("ngIf",
|
|
135
|
+
i0.ɵɵproperty("ngIf", item_r6.children == null ? null : item_r6.children.length)("ngIfElse", noChildren_r9);
|
|
134
136
|
} }
|
|
135
137
|
function ActionsCellComponent_div_2_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
136
138
|
i0.ɵɵelementStart(0, "div", 17);
|
|
137
139
|
i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_Template, 4, 5, "div", 18);
|
|
138
140
|
i0.ɵɵelementEnd();
|
|
139
141
|
} if (rf & 2) {
|
|
140
|
-
const
|
|
141
|
-
i0.ɵɵproperty("ngClass",
|
|
142
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
143
|
+
i0.ɵɵproperty("ngClass", ctx_r2.menuAlign);
|
|
142
144
|
i0.ɵɵadvance();
|
|
143
|
-
i0.ɵɵproperty("ngForOf",
|
|
145
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.actionItems);
|
|
144
146
|
} }
|
|
145
147
|
function ActionsCellComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
146
|
-
const
|
|
148
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
147
149
|
i0.ɵɵelementStart(0, "div", 10)(1, "div", 11);
|
|
148
|
-
i0.ɵɵlistener("click", function ActionsCellComponent_div_2_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(
|
|
150
|
+
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)); });
|
|
149
151
|
i0.ɵɵnamespaceSVG();
|
|
150
152
|
i0.ɵɵelementStart(2, "svg", 12);
|
|
151
153
|
i0.ɵɵelement(3, "circle", 13)(4, "circle", 14)(5, "circle", 15);
|
|
@@ -153,19 +155,19 @@ function ActionsCellComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
153
155
|
i0.ɵɵtemplate(6, ActionsCellComponent_div_2_div_6_Template, 2, 2, "div", 16);
|
|
154
156
|
i0.ɵɵelementEnd();
|
|
155
157
|
} if (rf & 2) {
|
|
156
|
-
const
|
|
158
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
157
159
|
i0.ɵɵadvance(6);
|
|
158
|
-
i0.ɵɵproperty("ngIf",
|
|
160
|
+
i0.ɵɵproperty("ngIf", ctx_r2.isDropdownOpen);
|
|
159
161
|
} }
|
|
160
162
|
function ActionsCellComponent_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
161
|
-
const
|
|
163
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
162
164
|
i0.ɵɵelementStart(0, "div", 30)(1, "mis-checkbox", 31);
|
|
163
|
-
i0.ɵɵlistener("valueChange", function ActionsCellComponent_div_3_Template_mis_checkbox_valueChange_1_listener($event) { i0.ɵɵrestoreView(
|
|
165
|
+
i0.ɵɵlistener("valueChange", function ActionsCellComponent_div_3_Template_mis_checkbox_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onCheckboxChange($event)); });
|
|
164
166
|
i0.ɵɵelementEnd()();
|
|
165
167
|
} if (rf & 2) {
|
|
166
|
-
const
|
|
168
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
167
169
|
i0.ɵɵadvance();
|
|
168
|
-
i0.ɵɵproperty("checked",
|
|
170
|
+
i0.ɵɵproperty("checked", ctx_r2.isChecked);
|
|
169
171
|
} }
|
|
170
172
|
export class ActionsCellComponent {
|
|
171
173
|
constructor() {
|
|
@@ -204,9 +206,8 @@ export class ActionsCellComponent {
|
|
|
204
206
|
onActionClick(item, event) {
|
|
205
207
|
event.stopPropagation();
|
|
206
208
|
// Check permissions before executing action
|
|
207
|
-
if (this.
|
|
209
|
+
if (this.isDisabled(item))
|
|
208
210
|
return;
|
|
209
|
-
}
|
|
210
211
|
// Execute action only if permitted
|
|
211
212
|
if (item.action) {
|
|
212
213
|
item.action(this.data);
|
|
@@ -233,15 +234,11 @@ export class ActionsCellComponent {
|
|
|
233
234
|
this.actionItems.forEach((item) => item.showSubmenu = false);
|
|
234
235
|
}
|
|
235
236
|
onDropdownItemClick(item, event) {
|
|
237
|
+
console.log("1:", event, item);
|
|
236
238
|
event.stopPropagation();
|
|
237
|
-
|
|
238
|
-
if (this.actionPermissions && this.actionPermissions.hasOwnProperty(item.value) && this.actionPermissions[item.value] === false) {
|
|
239
|
-
console.log('Action blocked: insufficient permissions');
|
|
240
|
-
return; // Don't close dropdown or execute action
|
|
241
|
-
}
|
|
242
|
-
if (item.disabled)
|
|
239
|
+
if (this.isDisabled(item))
|
|
243
240
|
return;
|
|
244
|
-
if (item.children) {
|
|
241
|
+
if (item.children.length) {
|
|
245
242
|
// Toggle submenu
|
|
246
243
|
item.showSubmenu = !item.showSubmenu;
|
|
247
244
|
// Optionally close other submenus
|
|
@@ -259,19 +256,21 @@ export class ActionsCellComponent {
|
|
|
259
256
|
}
|
|
260
257
|
}
|
|
261
258
|
onCheckboxChange(event) {
|
|
262
|
-
// Check permissions before allowing change
|
|
263
|
-
if (this.actionPermissions && this.actionPermissions.hasOwnProperty('checkbox') && this.actionPermissions['checkbox'] === false) {
|
|
264
|
-
return; // Don't allow change if disabled
|
|
265
|
-
}
|
|
266
259
|
this.isChecked = event.value;
|
|
267
260
|
this.actionClick.emit({ isChecked: this.isChecked, data: this.data });
|
|
268
261
|
}
|
|
262
|
+
isDisabled(item) {
|
|
263
|
+
if (typeof item.disable === 'function') {
|
|
264
|
+
return item.disable(this.data);
|
|
265
|
+
}
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
269
268
|
static { this.ɵfac = function ActionsCellComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ActionsCellComponent)(); }; }
|
|
270
269
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActionsCellComponent, selectors: [["mis-actions-cell"]], hostBindings: function ActionsCellComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
271
270
|
i0.ɵɵlistener("click", function ActionsCellComponent_click_HostBindingHandler() { return ctx.onDocumentClick(); }, false, i0.ɵɵresolveDocument);
|
|
272
|
-
} }, inputs: { data: "data", actionItems: "actionItems", actionType: "actionType", dropdownIcon: "dropdownIcon", submenuAlign: "submenuAlign", menuAlign: "menuAlign",
|
|
271
|
+
} }, inputs: { data: "data", actionItems: "actionItems", actionType: "actionType", dropdownIcon: "dropdownIcon", submenuAlign: "submenuAlign", menuAlign: "menuAlign", isChecked: "isChecked", style: "style" }, outputs: { checkboxChange: "checkboxChange", actionClick: "actionClick" }, decls: 4, vars: 4, consts: [["noChildren", ""], [1, "actions-cell-container", 3, "ngStyle"], ["class", "inline-actions", 4, "ngIf"], ["class", "dropdown-actions", 4, "ngIf"], ["class", "checkbox-actions", 4, "ngIf"], [1, "inline-actions"], ["class", "action-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "action-item", 3, "click", "ngClass"], ["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", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none"], ["cx", "10", "cy", "4", "r", "2", "fill", "#333"], ["cx", "10", "cy", "10", "r", "2", "fill", "#333"], ["cx", "10", "cy", "16", "r", "2", "fill", "#333"], ["class", "dropdown-menu", 3, "ngClass", 4, "ngIf"], [1, "dropdown-menu", 3, "ngClass"], ["class", "dropdown-menu-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], [1, "dropdown-menu-item", 3, "click", "ngClass"], [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"], [1, "checkbox-actions"], [3, "valueChange", "checked"]], template: function ActionsCellComponent_Template(rf, ctx) { if (rf & 1) {
|
|
273
272
|
i0.ɵɵelementStart(0, "div", 1);
|
|
274
|
-
i0.ɵɵtemplate(1, ActionsCellComponent_div_1_Template, 2, 2, "div", 2)(2, ActionsCellComponent_div_2_Template, 7, 1, "div", 3)(3, ActionsCellComponent_div_3_Template, 2,
|
|
273
|
+
i0.ɵɵtemplate(1, ActionsCellComponent_div_1_Template, 2, 2, "div", 2)(2, ActionsCellComponent_div_2_Template, 7, 1, "div", 3)(3, ActionsCellComponent_div_3_Template, 2, 1, "div", 4);
|
|
275
274
|
i0.ɵɵelementEnd();
|
|
276
275
|
} if (rf & 2) {
|
|
277
276
|
i0.ɵɵproperty("ngStyle", ctx.containerStyle);
|
|
@@ -285,7 +284,7 @@ export class ActionsCellComponent {
|
|
|
285
284
|
}
|
|
286
285
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionsCellComponent, [{
|
|
287
286
|
type: Component,
|
|
288
|
-
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':
|
|
287
|
+
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': isDisabled(item) }\" (click)=\"onActionClick(item, $event)\"> \n <img *ngIf=\"isSvgFile(item.icon)\" [src]=\"item.icon\" [alt]=\"item.label\" class=\"action-icon-svg\" />\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=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"4\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"10\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"16\" r=\"2\" fill=\"#333\" />\n </svg>\n </div>\n\n <div class=\"dropdown-menu\" \n *ngIf=\"isDropdownOpen\" \n [ngClass]=\"menuAlign\"\n >\n <div class=\"dropdown-menu-item\" *ngFor=\"let item of actionItems\" \n (click)=\"onDropdownItemClick(item, $event)\" [ngClass]=\"{ 'disabled': isDisabled(item)}\">\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]=\"item.submenuAlign\"\n *ngIf=\"item.showSubmenu\">\n <div class=\"dropdown-menu-item\" *ngFor=\"let child of item.children\"\n [ngClass]=\"{ 'disabled': isDisabled(child) }\"\n (click)=\"onDropdownItemClick(child, $event)\">\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\n <!-- Checkbox Actions -->\n <div *ngIf=\"actionType === 'checkbox'\" class=\"checkbox-actions\">\n <mis-checkbox \n [checked]=\"isChecked\"\n (valueChange)=\"onCheckboxChange($event)\">\n </mis-checkbox>\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%;width:232px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;z-index:1000;padding:8px 0}.dropdown-menu.left{right:0!important;left:auto!important}.dropdown-menu.right{left:0!important;right:auto!important}.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:132px;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;margin-right:4px}.submenu-arrow{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon{display:flex;justify-content:center;align-items:center}.dropdown-menu-item.disabled{color:#181f33;filter:grayscale(100%) opacity(.3);cursor:not-allowed}\n"] }]
|
|
289
288
|
}], null, { data: [{
|
|
290
289
|
type: Input
|
|
291
290
|
}], actionItems: [{
|
|
@@ -298,8 +297,6 @@ export class ActionsCellComponent {
|
|
|
298
297
|
type: Input
|
|
299
298
|
}], menuAlign: [{
|
|
300
299
|
type: Input
|
|
301
|
-
}], actionPermissions: [{
|
|
302
|
-
type: Input
|
|
303
300
|
}], isChecked: [{
|
|
304
301
|
type: Input
|
|
305
302
|
}], checkboxChange: [{
|
|
@@ -313,4 +310,4 @@ export class ActionsCellComponent {
|
|
|
313
310
|
args: ['document:click']
|
|
314
311
|
}] }); })();
|
|
315
312
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActionsCellComponent, { className: "ActionsCellComponent" }); })();
|
|
316
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RhYmxlL2FjdGlvbnMtY2VsbC9hY3Rpb25zLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvYWN0aW9ucy1jZWxsL2FjdGlvbnMtY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0lDS2pGLHlCQUFpRzs7O0lBQTdDLEFBQWxCLG9EQUFpQixzQkFBbUI7OztJQUYxRSw4QkFDeUk7SUFDckksaUZBQWlHO0lBQ3JHLGlCQUFNOzs7O0lBRk4sNkxBQXdJO0lBQzlILGNBQTBCO0lBQTFCLHFEQUEwQjs7O0lBSHhDLDhCQUE0RDtJQUN4RCwyRUFDeUk7SUFHN0ksaUJBQU07OztJQUpvQixjQUFnQjtJQUFBLEFBQWhCLDRDQUFnQixzQ0FBc0I7OztJQXVCaEQsZ0NBQXNFO0lBQ2xFLDBCQUF5QjtJQUM3QixpQkFBTzs7O0lBREUsY0FBaUI7SUFBakIsb0RBQWlCOzs7SUFpQmxCLGdDQUF3RTtJQUNwRSwwQkFBMEI7SUFDOUIsaUJBQU87OztJQURFLGNBQWtCO0lBQWxCLHFEQUFrQjs7OztJQUovQiwrQkFFaUQ7SUFBN0Msc1BBQVMsNENBQWtDLEtBQUM7SUFDNUMscUhBQXdFO0lBR3hFLGdDQUE2QjtJQUFBLFlBQWlCO0lBQ2xELEFBRGtELGlCQUFPLEVBQ25EOzs7O0lBTkYsK0xBQTBJO0lBRTdHLGNBQXlDO0lBQXpDLHVFQUF5QztJQUd6QyxlQUFpQjtJQUFqQixvQ0FBaUI7OztJQVR0RCwrQkFFNkI7SUFDekIsNkdBRWlEO0lBTXJELGlCQUFNOzs7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dCwgT3V0cHV0LCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbkl0ZW0gfSBmcm9tICcuLi90YWJsZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtaXMtYWN0aW9ucy1jZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbnMtY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hY3Rpb25zLWNlbGwuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uc0NlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBkYXRhOiBhbnk7XG4gIEBJbnB1dCgpIGFjdGlvbkl0ZW1zOiBBY3Rpb25JdGVtW10gPSBbXTtcbiAgQElucHV0KCkgYWN0aW9uVHlwZTogJ2lubGluZScgfCAnZHJvcGRvd24nIHwgJ2NoZWNrYm94JyA9ICdpbmxpbmUnO1xuICBASW5wdXQoKSBkcm9wZG93bkljb246IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBzdWJtZW51QWxpZ246ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnO1xuICBASW5wdXQoKSBtZW51QWxpZ246ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCc7XG4gIEBJbnB1dCgpIGFjdGlvblBlcm1pc3Npb25zOiBhbnk7XG4gIEBJbnB1dCgpIGlzQ2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgY2hlY2tib3hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgXG4gIHByaXZhdGUgX3N0eWxlOiBhbnkgPSB7fTtcbiAgY29udGFpbmVyU3R5bGU6IGFueSA9IHt9O1xuXG4gIEBJbnB1dCgpIHNldCBzdHlsZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fc3R5bGUgPSB2YWx1ZSB8fCB7fTtcbiAgICB0aGlzLnByb2Nlc3NTdHlsZSgpO1xuICB9XG5cbiAgZ2V0IHN0eWxlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0eWxlO1xuICB9XG4gIFxuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbT86IEFjdGlvbkl0ZW0sIGRhdGE6IGFueSwgaXNDaGVja2VkPzogYm9vbGVhbiB9PigpO1xuXG4gIGlzRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gIGRlZmF1bHREcm9wZG93bkljb24gPSBgXG4gIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCI0XCIgcj1cIjJcIiBmaWxsPVwiIzMzM1wiLz5cbiAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiOFwiIHI9XCIyXCIgZmlsbD1cIiMzMzNcIi8+XG4gICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjEyXCIgcj1cIjJcIiBmaWxsPVwiIzMzM1wiLz5cbiAgPC9zdmc+XG5gO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBwcml2YXRlIHByb2Nlc3NTdHlsZSgpOiB2b2lkIHtcbiAgICAvLyBSZW1vdmUgd2lkdGggZnJvbSBzdHlsZSB0byBhdm9pZCBjb25mbGljdHMgd2l0aCB0YWJsZSBjb2x1bW4gd2lkdGhcbiAgICBjb25zdCB7IHdpZHRoLCAuLi5yZXN0U3R5bGUgfSA9IHRoaXMuX3N0eWxlO1xuICAgIHRoaXMuY29udGFpbmVyU3R5bGUgPSByZXN0U3R5bGU7XG4gIH1cblxuICBvbkFjdGlvbkNsaWNrKGl0ZW06IEFjdGlvbkl0ZW0sIGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIFxuICAgIC8vIENoZWNrIHBlcm1pc3Npb25zIGJlZm9yZSBleGVjdXRpbmcgYWN0aW9uXG4gICAgaWYgKHRoaXMuYWN0aW9uUGVybWlzc2lvbnMgJiYgdGhpcy5hY3Rpb25QZXJtaXNzaW9ucy5oYXNPd25Qcm9wZXJ0eShpdGVtLnZhbHVlKSAmJiB0aGlzLmFjdGlvblBlcm1pc3Npb25zW2l0ZW0udmFsdWVdID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuOyBcbiAgICB9XG4gICAgXG4gICAgLy8gRXhlY3V0ZSBhY3Rpb24gb25seSBpZiBwZXJtaXR0ZWRcbiAgICBpZiAoaXRlbS5hY3Rpb24pIHtcbiAgICAgIGl0ZW0uYWN0aW9uKHRoaXMuZGF0YSk7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdCh7IGl0ZW0sIGRhdGE6IHRoaXMuZGF0YSB9KTtcbiAgfVxuXG4gIHRyYWNrQnlBY3Rpb24oaW5kZXg6IG51bWJlciwgaXRlbTogQWN0aW9uSXRlbSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0udmFsdWU7XG4gIH1cblxuICBpc1N2Z0ZpbGUoaWNvblBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghaWNvblBhdGgpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gaWNvblBhdGgudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnLnN2ZycpIHx8IGljb25QYXRoLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2Fzc2V0cy9pY29ucy8nKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJylcbiAgb25Eb2N1bWVudENsaWNrKCkge1xuICAgIGlmICh0aGlzLmlzRHJvcGRvd25PcGVuKSB7XG4gICAgICB0aGlzLmlzRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRHJvcGRvd24oZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiA9ICF0aGlzLmlzRHJvcGRvd25PcGVuO1xuICAgIC8vIENsb3NlIGFsbCBzdWJtZW51cyB3aGVuIG9wZW5pbmcvY2xvc2luZyBtYWluIG1lbnVcbiAgICB0aGlzLmFjdGlvbkl0ZW1zLmZvckVhY2goKGl0ZW06IGFueSkgPT4gaXRlbS5zaG93U3VibWVudSA9IGZhbHNlKTtcbiAgfVxuICBcbiAgb25Ecm9wZG93bkl0ZW1DbGljayhpdGVtOiBhbnksIGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIFxuICAgIC8vIENoZWNrIHBlcm1pc3Npb25zIGZpcnN0XG4gICAgaWYgKHRoaXMuYWN0aW9uUGVybWlzc2lvbnMgJiYgdGhpcy5hY3Rpb25QZXJtaXNzaW9ucy5oYXNPd25Qcm9wZXJ0eShpdGVtLnZhbHVlKSAmJiB0aGlzLmFjdGlvblBlcm1pc3Npb25zW2l0ZW0udmFsdWVdID09PSBmYWxzZSkge1xuICAgICAgY29uc29sZS5sb2coJ0FjdGlvbiBibG9ja2VkOiBpbnN1ZmZpY2llbnQgcGVybWlzc2lvbnMnKTtcbiAgICAgIHJldHVybjsgLy8gRG9uJ3QgY2xvc2UgZHJvcGRvd24gb3IgZXhlY3V0ZSBhY3Rpb25cbiAgICB9XG4gICAgXG4gICAgaWYgKGl0ZW0uZGlzYWJsZWQpIHJldHVybjtcbiAgICBcbiAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgLy8gVG9nZ2xlIHN1Ym1lbnVcbiAgICAgIGl0ZW0uc2hvd1N1Ym1lbnUgPSAhaXRlbS5zaG93U3VibWVudTtcbiAgICAgIC8vIE9wdGlvbmFsbHkgY2xvc2Ugb3RoZXIgc3VibWVudXNcbiAgICAgIHRoaXMuYWN0aW9uSXRlbXMuZm9yRWFjaCgoaTogYW55KSA9PiB7XG4gICAgICAgIGlmIChpICE9PSBpdGVtKSBpLnNob3dTdWJtZW51ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSGFuZGxlIGFjdGlvblxuICAgICAgaWYgKGl0ZW0uYWN0aW9uKSBpdGVtLmFjdGlvbih0aGlzLmRhdGEpO1xuICAgICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KHsgaXRlbSwgZGF0YTogdGhpcy5kYXRhIH0pO1xuICAgICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlOyAvLyBPbmx5IGNsb3NlIGlmIGFjdGlvbiB3YXMgZXhlY3V0ZWRcbiAgICB9XG4gIH1cblxuICBvbkNoZWNrYm94Q2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICAvLyBDaGVjayBwZXJtaXNzaW9ucyBiZWZvcmUgYWxsb3dpbmcgY2hhbmdlXG4gICAgaWYgKHRoaXMuYWN0aW9uUGVybWlzc2lvbnMgJiYgdGhpcy5hY3Rpb25QZXJtaXNzaW9ucy5oYXNPd25Qcm9wZXJ0eSgnY2hlY2tib3gnKSAmJiB0aGlzLmFjdGlvblBlcm1pc3Npb25zWydjaGVja2JveCddID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuOyAvLyBEb24ndCBhbGxvdyBjaGFuZ2UgaWYgZGlzYWJsZWRcbiAgICB9XG4gICAgdGhpcy5pc0NoZWNrZWQgPSBldmVudC52YWx1ZTtcbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoeyBpc0NoZWNrZWQ6IHRoaXMuaXNDaGVja2VkLCBkYXRhOiB0aGlzLmRhdGEgfSk7XG4gIH1cbn0iLCI8ZGl2IGNsYXNzPVwiYWN0aW9ucy1jZWxsLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cImNvbnRhaW5lclN0eWxlXCI+XG4gICAgPCEtLSBJbmxpbmUgQWN0aW9ucyAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gJ2lubGluZSdcIiBjbGFzcz1cImlubGluZS1hY3Rpb25zXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWN0aW9uSXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlBY3Rpb25cIiBjbGFzcz1cImFjdGlvbi1pdGVtXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnZGlzYWJsZWQnOiBhY3Rpb25QZXJtaXNzaW9ucyAmJiBhY3Rpb25QZXJtaXNzaW9ucy5oYXNPd25Qcm9wZXJ0eShpdGVtLnZhbHVlKSAmJiBhY3Rpb25QZXJtaXNzaW9uc1tpdGVtLnZhbHVlXSA9PT0gZmFsc2UgfVwiPiBcbiAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJpc1N2Z0ZpbGUoaXRlbS5pY29uKVwiIFtzcmNdPVwiaXRlbS5pY29uXCIgW2FsdF09XCJpdGVtLmxhYmVsXCIgY2xhc3M9XCJhY3Rpb24taWNvbi1zdmdcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gRHJvcGRvd24gQWN0aW9ucyAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gJ2Ryb3Bkb3duJ1wiIGNsYXNzPVwiZHJvcGRvd24tYWN0aW9uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tdHJpZ2dlclwiIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bigkZXZlbnQpXCIgdGl0bGU9XCJNb3JlIGFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjEwXCIgY3k9XCI0XCIgcj1cIjJcIiBmaWxsPVwiIzMzM1wiIC8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjEwXCIgY3k9XCIxMFwiIHI9XCIyXCIgZmlsbD1cIiMzMzNcIiAvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMFwiIGN5PVwiMTZcIiByPVwiMlwiIGZpbGw9XCIjMzMzXCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIFxuICAgICAgICAgICAgICpuZ0lmPVwiaXNEcm9wZG93bk9wZW5cIiBcbiAgICAgICAgICAgICBbbmdDbGFzc109XCJtZW51QWxpZ25cIlxuICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51LWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhY3Rpb25JdGVtc1wiIFxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRyb3Bkb3duSXRlbUNsaWNrKGl0ZW0sICRldmVudClcIiBbbmdDbGFzc109XCJ7ICdkaXNhYmxlZCc6IGFjdGlvblBlcm1pc3Npb25zICYmIGFjdGlvblBlcm1pc3Npb25zLmhhc093blByb3BlcnR5KGl0ZW0udmFsdWUpICYmIGFjdGlvblBlcm1pc3Npb25zW2l0ZW0udmFsdWVdID09PSBmYWxzZSB9XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uY2hpbGRyZW4/Lmxlbmd0aDsgZWxzZSBub0NoaWxkcmVuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24taWNvblwiICpuZ0lmPVwiaXRlbS5pY29uICYmIGlzU3ZnRmlsZShpdGVtLmljb24pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaXRlbS5pY29uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWxhYmVsXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJtZW51LWFycm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOSA2TDE1IDEyTDkgMThcIiBzdHJva2U9XCIjMEQxMzIxXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gRFlOQU1JQyBTVUJNRU5VIC0tPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tc3VibWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnN1Ym1lbnVBbGlnblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uc2hvd1N1Ym1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51LWl0ZW1cIiAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgaXRlbS5jaGlsZHJlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZGlzYWJsZWQnOiBhY3Rpb25QZXJtaXNzaW9ucyAmJiBhY3Rpb25QZXJtaXNzaW9ucy5oYXNPd25Qcm9wZXJ0eShjaGlsZC52YWx1ZSkgJiYgYWN0aW9uUGVybWlzc2lvbnNbY2hpbGQudmFsdWVdID09PSBmYWxzZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Ecm9wZG93bkl0ZW1DbGljayhjaGlsZCwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24taWNvblwiICpuZ0lmPVwiY2hpbGQuaWNvbiAmJiBpc1N2Z0ZpbGUoY2hpbGQuaWNvbilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImNoaWxkLmljb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWxhYmVsXCI+e3sgY2hpbGQubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vQ2hpbGRyZW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24taWNvblwiICpuZ0lmPVwiaXRlbS5pY29uICYmIGlzU3ZnRmlsZShpdGVtLmljb24pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaXRlbS5pY29uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWxhYmVsXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBDaGVja2JveCBBY3Rpb25zIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJhY3Rpb25UeXBlID09PSAnY2hlY2tib3gnXCIgY2xhc3M9XCJjaGVja2JveC1hY3Rpb25zXCI+XG4gICAgICAgIDxtaXMtY2hlY2tib3ggXG4gICAgICAgIFtjaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlKCRldmVudClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uUGVybWlzc2lvbnMgJiYgYWN0aW9uUGVybWlzc2lvbnMuaGFzT3duUHJvcGVydHkoJ2NoZWNrYm94JykgJiYgYWN0aW9uUGVybWlzc2lvbnNbJ2NoZWNrYm94J10gPT09IGZhbHNlXCI+XG4gICAgPC9taXMtY2hlY2tib3g+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
313
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RhYmxlL2FjdGlvbnMtY2VsbC9hY3Rpb25zLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvYWN0aW9ucy1jZWxsL2FjdGlvbnMtY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0lDS2pGLHlCQUFpRzs7O0lBQTdDLEFBQWxCLG9EQUFpQixzQkFBbUI7Ozs7SUFGMUUsOEJBQ21GO0lBQXRDLG9OQUFTLHFDQUEyQixLQUFDO0lBQzlFLGlGQUFpRztJQUNyRyxpQkFBTTs7OztJQUZOLGdGQUE0QztJQUNsQyxjQUEwQjtJQUExQixxREFBMEI7OztJQUh4Qyw4QkFBNEQ7SUFDeEQsMkVBQ21GO0lBR3ZGLGlCQUFNOzs7SUFKb0IsY0FBZ0I7SUFBQSxBQUFoQiw0Q0FBZ0Isc0NBQXNCOzs7SUF1QmhELGdDQUFzRTtJQUNsRSwwQkFBeUI7SUFDN0IsaUJBQU87OztJQURFLGNBQWlCO0lBQWpCLG9EQUFpQjs7O0lBaUJsQixnQ0FBd0U7SUFDcEUsMEJBQTBCO0lBQzlCLGlCQUFPOzs7SUFERSxjQUFrQjtJQUFsQixxREFBa0I7Ozs7SUFKL0IsK0JBRWlEO0lBQTdDLHNQQUFTLDRDQUFrQyxLQUFDO0lBQzVDLHFIQUF3RTtJQUd4RSxnQ0FBNkI7SUFBQSxZQUFpQjtJQUNsRCxBQURrRCxpQkFBTyxFQUNuRDs7OztJQU5OLGlGQUE2QztJQUVaLGNBQXlDO0lBQXpDLHVFQUF5QztJQUd6QyxlQUFpQjtJQUFqQixvQ0FBaUI7OztJQVR0RCwrQkFFNkI7SUFD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LENBQUM7SUFDZixDQUFDO3FIQTlHWSxvQkFBb0I7b0VBQXBCLG9CQUFvQjtZQUFwQix5RkFBQSxxQkFBaUIsaUNBQUc7O1lDUmpDLDhCQUErRDtZQStEM0QsQUFyREEsQUFSQSxxRUFBNEQsd0RBUUksd0RBcURBO1lBTXBFLGlCQUFNOztZQXJFOEIsNENBQTBCO1lBRXBELGNBQTZCO1lBQTdCLGtEQUE2QjtZQVE3QixjQUErQjtZQUEvQixvREFBK0I7WUFxRC9CLGNBQStCO1lBQS9CLG9EQUErQjs7O2lGRHZENUIsb0JBQW9CO2NBTGhDLFNBQVM7MkJBQ0Usa0JBQWtCO2dCQUtuQixJQUFJO2tCQUFaLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csU0FBUztrQkFBakIsS0FBSztZQUNHLFNBQVM7a0JBQWpCLEtBQUs7WUFDSSxjQUFjO2tCQUF2QixNQUFNO1lBTU0sS0FBSztrQkFBakIsS0FBSztZQVNJLFdBQVc7a0JBQXBCLE1BQU07WUEyQ1AsZUFBZTtrQkFEZCxZQUFZO21CQUFDLGdCQUFnQjs7a0ZBakVuQixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbkl0ZW0gfSBmcm9tICcuLi90YWJsZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtaXMtYWN0aW9ucy1jZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbnMtY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hY3Rpb25zLWNlbGwuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uc0NlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBkYXRhOiBhbnk7XG4gIEBJbnB1dCgpIGFjdGlvbkl0ZW1zOiBBY3Rpb25JdGVtW10gPSBbXTtcbiAgQElucHV0KCkgYWN0aW9uVHlwZTogJ2lubGluZScgfCAnZHJvcGRvd24nIHwgJ2NoZWNrYm94JyA9ICdpbmxpbmUnO1xuICBASW5wdXQoKSBkcm9wZG93bkljb246IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBzdWJtZW51QWxpZ246ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnO1xuICBASW5wdXQoKSBtZW51QWxpZ246ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCc7XG4gIEBJbnB1dCgpIGlzQ2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgY2hlY2tib3hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgXG4gIHByaXZhdGUgX3N0eWxlOiBhbnkgPSB7fTtcbiAgY29udGFpbmVyU3R5bGU6IGFueSA9IHt9O1xuXG4gIEBJbnB1dCgpIHNldCBzdHlsZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fc3R5bGUgPSB2YWx1ZSB8fCB7fTtcbiAgICB0aGlzLnByb2Nlc3NTdHlsZSgpO1xuICB9XG5cbiAgZ2V0IHN0eWxlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0eWxlO1xuICB9XG4gIFxuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbT86IEFjdGlvbkl0ZW0sIGRhdGE6IGFueSwgaXNDaGVja2VkPzogYm9vbGVhbiB9PigpO1xuXG4gIGlzRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gIGRlZmF1bHREcm9wZG93bkljb24gPSBgXG4gIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCI0XCIgcj1cIjJcIiBmaWxsPVwiIzMzM1wiLz5cbiAgICA8Y2lyY2xlIGN4PVwiOFwiIGN5PVwiOFwiIHI9XCIyXCIgZmlsbD1cIiMzMzNcIi8+XG4gICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjEyXCIgcj1cIjJcIiBmaWxsPVwiIzMzM1wiLz5cbiAgPC9zdmc+XG5gO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBwcml2YXRlIHByb2Nlc3NTdHlsZSgpOiB2b2lkIHtcbiAgICAvLyBSZW1vdmUgd2lkdGggZnJvbSBzdHlsZSB0byBhdm9pZCBjb25mbGljdHMgd2l0aCB0YWJsZSBjb2x1bW4gd2lkdGhcbiAgICBjb25zdCB7IHdpZHRoLCAuLi5yZXN0U3R5bGUgfSA9IHRoaXMuX3N0eWxlO1xuICAgIHRoaXMuY29udGFpbmVyU3R5bGUgPSByZXN0U3R5bGU7XG4gIH1cblxuICBvbkFjdGlvbkNsaWNrKGl0ZW06IEFjdGlvbkl0ZW0sIGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIFxuICAgIC8vIENoZWNrIHBlcm1pc3Npb25zIGJlZm9yZSBleGVjdXRpbmcgYWN0aW9uXG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZChpdGVtKSkgcmV0dXJuO1xuICAgIFxuICAgIC8vIEV4ZWN1dGUgYWN0aW9uIG9ubHkgaWYgcGVybWl0dGVkXG4gICAgaWYgKGl0ZW0uYWN0aW9uKSB7XG4gICAgICBpdGVtLmFjdGlvbih0aGlzLmRhdGEpO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoeyBpdGVtLCBkYXRhOiB0aGlzLmRhdGEgfSk7XG4gIH1cblxuICB0cmFja0J5QWN0aW9uKGluZGV4OiBudW1iZXIsIGl0ZW06IEFjdGlvbkl0ZW0pOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICB9XG5cbiAgaXNTdmdGaWxlKGljb25QYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIWljb25QYXRoKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGljb25QYXRoLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJy5zdmcnKSB8fCBpY29uUGF0aC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdhc3NldHMvaWNvbnMvJyk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycpXG4gIG9uRG9jdW1lbnRDbGljaygpIHtcbiAgICBpZiAodGhpcy5pc0Ryb3Bkb3duT3Blbikge1xuICAgICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZURyb3Bkb3duKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaXNEcm9wZG93bk9wZW4gPSAhdGhpcy5pc0Ryb3Bkb3duT3BlbjtcbiAgICAvLyBDbG9zZSBhbGwgc3VibWVudXMgd2hlbiBvcGVuaW5nL2Nsb3NpbmcgbWFpbiBtZW51XG4gICAgdGhpcy5hY3Rpb25JdGVtcy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IGl0ZW0uc2hvd1N1Ym1lbnUgPSBmYWxzZSk7XG4gIH1cbiAgXG4gIG9uRHJvcGRvd25JdGVtQ2xpY2soaXRlbTogYW55LCBldmVudDogRXZlbnQpIHtcbiAgICBjb25zb2xlLmxvZyhcIjE6XCIsZXZlbnQsIGl0ZW0pXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgXG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZChpdGVtKSkgcmV0dXJuO1xuICAgIFxuICAgIGlmIChpdGVtLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgLy8gVG9nZ2xlIHN1Ym1lbnVcbiAgICAgIGl0ZW0uc2hvd1N1Ym1lbnUgPSAhaXRlbS5zaG93U3VibWVudTtcbiAgICAgIC8vIE9wdGlvbmFsbHkgY2xvc2Ugb3RoZXIgc3VibWVudXNcbiAgICAgIHRoaXMuYWN0aW9uSXRlbXMuZm9yRWFjaCgoaTogYW55KSA9PiB7XG4gICAgICAgIGlmIChpICE9PSBpdGVtKSBpLnNob3dTdWJtZW51ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSGFuZGxlIGFjdGlvblxuICAgICAgaWYgKGl0ZW0uYWN0aW9uKSBpdGVtLmFjdGlvbih0aGlzLmRhdGEpO1xuICAgICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KHsgaXRlbSwgZGF0YTogdGhpcy5kYXRhIH0pO1xuICAgICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlOyAvLyBPbmx5IGNsb3NlIGlmIGFjdGlvbiB3YXMgZXhlY3V0ZWRcbiAgICB9XG4gIH1cblxuICBvbkNoZWNrYm94Q2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmlzQ2hlY2tlZCA9IGV2ZW50LnZhbHVlO1xuICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdCh7IGlzQ2hlY2tlZDogdGhpcy5pc0NoZWNrZWQsIGRhdGE6IHRoaXMuZGF0YSB9KTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQoaXRlbTogQWN0aW9uSXRlbSk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIGl0ZW0uZGlzYWJsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBpdGVtLmRpc2FibGUodGhpcy5kYXRhKTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbn0iLCI8ZGl2IGNsYXNzPVwiYWN0aW9ucy1jZWxsLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cImNvbnRhaW5lclN0eWxlXCI+XG4gICAgPCEtLSBJbmxpbmUgQWN0aW9ucyAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gJ2lubGluZSdcIiBjbGFzcz1cImlubGluZS1hY3Rpb25zXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWN0aW9uSXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlBY3Rpb25cIiBjbGFzcz1cImFjdGlvbi1pdGVtXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnZGlzYWJsZWQnOiBpc0Rpc2FibGVkKGl0ZW0pIH1cIiAoY2xpY2spPVwib25BY3Rpb25DbGljayhpdGVtLCAkZXZlbnQpXCI+IFxuICAgICAgICAgICAgPGltZyAqbmdJZj1cImlzU3ZnRmlsZShpdGVtLmljb24pXCIgW3NyY109XCJpdGVtLmljb25cIiBbYWx0XT1cIml0ZW0ubGFiZWxcIiBjbGFzcz1cImFjdGlvbi1pY29uLXN2Z1wiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBEcm9wZG93biBBY3Rpb25zIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJhY3Rpb25UeXBlID09PSAnZHJvcGRvd24nXCIgY2xhc3M9XCJkcm9wZG93bi1hY3Rpb25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi10cmlnZ2VyXCIgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKCRldmVudClcIiB0aXRsZT1cIk1vcmUgYWN0aW9uc1wiPlxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTBcIiBjeT1cIjRcIiByPVwiMlwiIGZpbGw9XCIjMzMzXCIgLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTBcIiBjeT1cIjEwXCIgcj1cIjJcIiBmaWxsPVwiIzMzM1wiIC8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjEwXCIgY3k9XCIxNlwiIHI9XCIyXCIgZmlsbD1cIiMzMzNcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgXG4gICAgICAgICAgICAgKm5nSWY9XCJpc0Ryb3Bkb3duT3BlblwiIFxuICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1lbnVBbGlnblwiXG4gICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUtaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFjdGlvbkl0ZW1zXCIgXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRHJvcGRvd25JdGVtQ2xpY2soaXRlbSwgJGV2ZW50KVwiIFtuZ0NsYXNzXT1cInsgJ2Rpc2FibGVkJzogaXNEaXNhYmxlZChpdGVtKX1cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5jaGlsZHJlbj8ubGVuZ3RoOyBlbHNlIG5vQ2hpbGRyZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1pY29uXCIgKm5nSWY9XCJpdGVtLmljb24gJiYgaXNTdmdGaWxlKGl0ZW0uaWNvbilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtLmljb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24tbGFiZWxcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Ym1lbnUtYXJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk05IDZMMTUgMTJMOSAxOFwiIHN0cm9rZT1cIiMwRDEzMjFcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBEWU5BTUlDIFNVQk1FTlUgLS0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1zdWJtZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uc3VibWVudUFsaWduXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5zaG93U3VibWVudVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUtaXRlbVwiICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBpdGVtLmNoaWxkcmVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2Rpc2FibGVkJzogaXNEaXNhYmxlZChjaGlsZCkgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRHJvcGRvd25JdGVtQ2xpY2soY2hpbGQsICRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWljb25cIiAqbmdJZj1cImNoaWxkLmljb24gJiYgaXNTdmdGaWxlKGNoaWxkLmljb24pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJjaGlsZC5pY29uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1sYWJlbFwiPnt7IGNoaWxkLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0NoaWxkcmVuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWljb25cIiAqbmdJZj1cIml0ZW0uaWNvbiAmJiBpc1N2Z0ZpbGUoaXRlbS5pY29uKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0uaWNvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1sYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQ2hlY2tib3ggQWN0aW9ucyAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gJ2NoZWNrYm94J1wiIGNsYXNzPVwiY2hlY2tib3gtYWN0aW9uc1wiPlxuICAgICAgICA8bWlzLWNoZWNrYm94IFxuICAgICAgICBbY2hlY2tlZF09XCJpc0NoZWNrZWRcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25DaGVja2JveENoYW5nZSgkZXZlbnQpXCI+XG4gICAgPC9taXMtY2hlY2tib3g+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
|