@datarailsshared/datarailsshared 1.6.208 → 1.6.210
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/datarailsshared-datarailsshared-1.6.210.tgz +0 -0
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.mjs +6 -3
- package/esm2022/lib/dr-inputs/dr-select/dr-select.component.mjs +56 -38
- package/esm2022/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.mjs +47 -35
- package/fesm2022/datarailsshared-datarailsshared.mjs +106 -73
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
- package/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.d.ts +2 -2
- package/lib/dr-inputs/dr-select/dr-select.component.d.ts +2 -1
- package/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.d.ts +2 -1
- package/package.json +1 -1
- package/datarailsshared-datarailsshared-1.6.208.tgz +0 -0
|
@@ -9,42 +9,55 @@ import * as i3 from "@angular/forms";
|
|
|
9
9
|
import * as i4 from "@angular/common";
|
|
10
10
|
import * as i5 from "../dr-input/dr-input.component";
|
|
11
11
|
const _c0 = ["dynamicInputRef"];
|
|
12
|
-
function
|
|
13
|
-
i0.ɵɵ
|
|
12
|
+
function DrSelectAddItemComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
14
|
+
i0.ɵɵelementStart(0, "div", 3);
|
|
15
|
+
i0.ɵɵlistener("click", function DrSelectAddItemComponent_div_1_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDynamicAdding()); });
|
|
16
|
+
i0.ɵɵelement(1, "i", 4);
|
|
17
|
+
i0.ɵɵelementStart(2, "p", 5);
|
|
18
|
+
i0.ɵɵtext(3);
|
|
19
|
+
i0.ɵɵelementEnd()();
|
|
20
|
+
} if (rf & 2) {
|
|
21
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
22
|
+
i0.ɵɵadvance(3);
|
|
23
|
+
i0.ɵɵtextInterpolate(ctx_r0.dynamicAddLabel);
|
|
24
|
+
} }
|
|
25
|
+
function DrSelectAddItemComponent_div_2_p_1_Template(rf, ctx) { if (rf & 1) {
|
|
26
|
+
i0.ɵɵelementStart(0, "p", 13);
|
|
14
27
|
i0.ɵɵtext(1);
|
|
15
28
|
i0.ɵɵelementEnd();
|
|
16
29
|
} if (rf & 2) {
|
|
17
|
-
const
|
|
30
|
+
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
18
31
|
i0.ɵɵadvance(1);
|
|
19
|
-
i0.ɵɵtextInterpolate(
|
|
32
|
+
i0.ɵɵtextInterpolate(ctx_r4.alertMsg);
|
|
20
33
|
} }
|
|
21
|
-
function
|
|
22
|
-
const
|
|
23
|
-
i0.ɵɵelementStart(0, "dr-button",
|
|
24
|
-
i0.ɵɵlistener("click", function
|
|
34
|
+
function DrSelectAddItemComponent_div_2_dr_button_5_Template(rf, ctx) { if (rf & 1) {
|
|
35
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
36
|
+
i0.ɵɵelementStart(0, "dr-button", 14);
|
|
37
|
+
i0.ɵɵlistener("click", function DrSelectAddItemComponent_div_2_dr_button_5_Template_dr_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r7.onDynamicAdd(ctx_r7.dynamicValue)); });
|
|
25
38
|
i0.ɵɵelementEnd();
|
|
26
39
|
} }
|
|
27
|
-
function
|
|
28
|
-
const
|
|
29
|
-
i0.ɵɵelementStart(0, "div",
|
|
30
|
-
i0.ɵɵtemplate(1,
|
|
31
|
-
i0.ɵɵelementStart(2, "dr-input",
|
|
32
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
40
|
+
function DrSelectAddItemComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
41
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
42
|
+
i0.ɵɵelementStart(0, "div", 6);
|
|
43
|
+
i0.ɵɵtemplate(1, DrSelectAddItemComponent_div_2_p_1_Template, 2, 1, "p", 7);
|
|
44
|
+
i0.ɵɵelementStart(2, "dr-input", 8, 9);
|
|
45
|
+
i0.ɵɵlistener("ngModelChange", function DrSelectAddItemComponent_div_2_Template_dr_input_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.dynamicValue = $event); })("keydown", function DrSelectAddItemComponent_div_2_Template_dr_input_keydown_2_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.onDynamicAdd(ctx_r11.dynamicValue, $event)); });
|
|
33
46
|
i0.ɵɵelementEnd();
|
|
34
|
-
i0.ɵɵelementStart(4, "div",
|
|
35
|
-
i0.ɵɵtemplate(5,
|
|
36
|
-
i0.ɵɵelementStart(6, "dr-button",
|
|
37
|
-
i0.ɵɵlistener("click", function
|
|
47
|
+
i0.ɵɵelementStart(4, "div", 10);
|
|
48
|
+
i0.ɵɵtemplate(5, DrSelectAddItemComponent_div_2_dr_button_5_Template, 1, 0, "dr-button", 11);
|
|
49
|
+
i0.ɵɵelementStart(6, "dr-button", 12);
|
|
50
|
+
i0.ɵɵlistener("click", function DrSelectAddItemComponent_div_2_Template_dr_button_click_6_listener() { i0.ɵɵrestoreView(_r10); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.onDynamicAddingClose()); });
|
|
38
51
|
i0.ɵɵelementEnd()()();
|
|
39
52
|
} if (rf & 2) {
|
|
40
|
-
const
|
|
53
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
41
54
|
i0.ɵɵadvance(1);
|
|
42
|
-
i0.ɵɵproperty("ngIf",
|
|
55
|
+
i0.ɵɵproperty("ngIf", ctx_r1.alertMsg && !ctx_r1.isDynamicValueValid() && ctx_r1.isDirty);
|
|
43
56
|
i0.ɵɵadvance(1);
|
|
44
|
-
i0.ɵɵclassProp("dynamic-add__field__input--error", !
|
|
45
|
-
i0.ɵɵproperty("ngModel",
|
|
57
|
+
i0.ɵɵclassProp("dynamic-add__field__input--error", !ctx_r1.isDynamicValueValid() && ctx_r1.isDirty);
|
|
58
|
+
i0.ɵɵproperty("ngModel", ctx_r1.dynamicValue);
|
|
46
59
|
i0.ɵɵadvance(3);
|
|
47
|
-
i0.ɵɵproperty("ngIf",
|
|
60
|
+
i0.ɵɵproperty("ngIf", ctx_r1.dynamicValue && ctx_r1.isDynamicValueValid());
|
|
48
61
|
} }
|
|
49
62
|
export class DrSelectAddItemComponent {
|
|
50
63
|
set inputRef(input) {
|
|
@@ -57,6 +70,7 @@ export class DrSelectAddItemComponent {
|
|
|
57
70
|
this.currentValues = [];
|
|
58
71
|
this.dynamicAddLabel = 'Add new';
|
|
59
72
|
this.values = [];
|
|
73
|
+
this.showOnlyInput = false;
|
|
60
74
|
this.dynamicValueAdded = new EventEmitter();
|
|
61
75
|
}
|
|
62
76
|
ngOnChanges(changes) {
|
|
@@ -102,25 +116,21 @@ export class DrSelectAddItemComponent {
|
|
|
102
116
|
} if (rf & 2) {
|
|
103
117
|
let _t;
|
|
104
118
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputRef = _t.first);
|
|
105
|
-
} }, inputs: { dynamicAddLabel: "dynamicAddLabel", bindValue: "bindValue", values: "values", alertMsg: "alertMsg" }, outputs: { dynamicValueAdded: "dynamicValueAdded" }, features: [i0.ɵɵNgOnChangesFeature], decls:
|
|
106
|
-
i0.ɵɵelementStart(0, "div", 0)
|
|
107
|
-
i0.ɵɵ
|
|
108
|
-
i0.ɵɵ
|
|
109
|
-
i0.ɵɵelementStart(3, "p", 3);
|
|
110
|
-
i0.ɵɵtext(4);
|
|
111
|
-
i0.ɵɵelementEnd()();
|
|
112
|
-
i0.ɵɵtemplate(5, DrSelectAddItemComponent_div_5_Template, 7, 5, "div", 4);
|
|
119
|
+
} }, inputs: { dynamicAddLabel: "dynamicAddLabel", bindValue: "bindValue", values: "values", alertMsg: "alertMsg", showOnlyInput: "showOnlyInput" }, outputs: { dynamicValueAdded: "dynamicValueAdded" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 2, consts: [[1, "dr-select__dynamic-add", "dynamic-add"], ["class", "dynamic-add__add-item", 3, "click", 4, "ngIf"], ["class", "dynamic-add__field", 4, "ngIf"], [1, "dynamic-add__add-item", 3, "click"], [1, "dr-icon-add"], [1, "dynamic-add__add-item__text"], [1, "dynamic-add__field"], ["class", "dynamic-add__field__alert", 4, "ngIf"], ["placeholder", "Type...", 1, "dynamic-add__field__input", 3, "ngModel", "ngModelChange", "keydown"], ["dynamicInputRef", ""], [1, "dynamic-add__field__buttons"], ["theme", "icon", "icon", "dr-icon-approve", "iconSize", "18px", 3, "click", 4, "ngIf"], ["theme", "icon", "icon", "dr-icon-exit", "iconSize", "18px", 3, "click"], [1, "dynamic-add__field__alert"], ["theme", "icon", "icon", "dr-icon-approve", "iconSize", "18px", 3, "click"]], template: function DrSelectAddItemComponent_Template(rf, ctx) { if (rf & 1) {
|
|
120
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
121
|
+
i0.ɵɵtemplate(1, DrSelectAddItemComponent_div_1_Template, 4, 1, "div", 1);
|
|
122
|
+
i0.ɵɵtemplate(2, DrSelectAddItemComponent_div_2_Template, 7, 5, "div", 2);
|
|
113
123
|
i0.ɵɵelementEnd();
|
|
114
124
|
} if (rf & 2) {
|
|
115
|
-
i0.ɵɵadvance(
|
|
116
|
-
i0.ɵɵ
|
|
125
|
+
i0.ɵɵadvance(1);
|
|
126
|
+
i0.ɵɵproperty("ngIf", !(ctx.showOnlyInput && ctx.isDynamicAdding));
|
|
117
127
|
i0.ɵɵadvance(1);
|
|
118
128
|
i0.ɵɵproperty("ngIf", ctx.isDynamicAdding);
|
|
119
129
|
} }, dependencies: [i2.DrButtonComponent, i3.NgControlStatus, i3.NgModel, i4.NgIf, i5.DrInputComponent], styles: [".dynamic-add__add-item[_ngcontent-%COMP%]{cursor:pointer;display:flex;align-items:center;border-bottom:1px solid #dfe0e3;padding:6px}.dynamic-add__add-item[_ngcontent-%COMP%]:hover{background:#f9f7ff}.dynamic-add__add-item__text[_ngcontent-%COMP%]{font-size:14px;line-height:22px;margin:0;color:#6d6e6f}.dynamic-add__add-item[_ngcontent-%COMP%] .dr-icon-add[_ngcontent-%COMP%]{color:#6d6e6f}.dynamic-add__field[_ngcontent-%COMP%]{position:relative}.dynamic-add__field__buttons[_ngcontent-%COMP%]{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:center}.dynamic-add__field__alert[_ngcontent-%COMP%]{font-size:12px;position:absolute;color:#bf1d30;z-index:100;right:30px} .ng-dropdown-panel .ng-dropdown-footer:has(.dynamic-add), .ng-dropdown-panel .ng-dropdown-header:has(.dynamic-add){padding:0;border:none} .ng-dropdown-panel .ng-dropdown-footer .dynamic-add__add-item{border-bottom:none} .dynamic-add__field__input{padding-left:12px!important;height:36px!important;border:none!important;background:#f9f7ff!important;border-radius:0!important} .dynamic-add__field__input>input{background:#f9f7ff} .dynamic-add__field__input>input::placeholder{line-height:22px;font-size:14px;font-weight:400;color:#9ea1aa} .dynamic-add__field__input--error{background:#ffdfe4!important} .dynamic-add__field__input--error>input{background:#ffdfe4}"], changeDetection: 0 }); }
|
|
120
130
|
}
|
|
121
131
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrSelectAddItemComponent, [{
|
|
122
132
|
type: Component,
|
|
123
|
-
args: [{ selector: 'dr-select-add-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dr-select__dynamic-add dynamic-add\">\n <div class=\"dynamic-add__add-item\" (click)=\"onDynamicAdding()\">\n <i class=\"dr-icon-add\"></i>\n <p class=\"dynamic-add__add-item__text\">{{ dynamicAddLabel }}</p>\n </div>\n <div *ngIf=\"isDynamicAdding\" class=\"dynamic-add__field\">\n <p *ngIf=\"alertMsg && !isDynamicValueValid() && isDirty\"
|
|
133
|
+
args: [{ selector: 'dr-select-add-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dr-select__dynamic-add dynamic-add\">\n <div *ngIf=\"!(showOnlyInput && isDynamicAdding)\" class=\"dynamic-add__add-item\" (click)=\"onDynamicAdding()\">\n <i class=\"dr-icon-add\"></i>\n <p class=\"dynamic-add__add-item__text\">{{ dynamicAddLabel }}</p>\n </div>\n <div *ngIf=\"isDynamicAdding\" class=\"dynamic-add__field\">\n <p *ngIf=\"alertMsg && !isDynamicValueValid() && isDirty\" class=\"dynamic-add__field__alert\">{{ alertMsg }}</p>\n <dr-input\n #dynamicInputRef\n class=\"dynamic-add__field__input\"\n [class.dynamic-add__field__input--error]=\"!isDynamicValueValid() && isDirty\"\n [(ngModel)]=\"dynamicValue\"\n (keydown)=\"onDynamicAdd(dynamicValue, $event)\"\n placeholder=\"Type...\"></dr-input>\n <div class=\"dynamic-add__field__buttons\">\n <dr-button\n *ngIf=\"dynamicValue && isDynamicValueValid()\"\n theme=\"icon\"\n icon=\"dr-icon-approve\"\n iconSize=\"18px\"\n (click)=\"onDynamicAdd(dynamicValue)\"></dr-button>\n <dr-button theme=\"icon\" icon=\"dr-icon-exit\" iconSize=\"18px\" (click)=\"onDynamicAddingClose()\"></dr-button>\n </div>\n </div>\n</div>\n", styles: [".dynamic-add__add-item{cursor:pointer;display:flex;align-items:center;border-bottom:1px solid #dfe0e3;padding:6px}.dynamic-add__add-item:hover{background:#f9f7ff}.dynamic-add__add-item__text{font-size:14px;line-height:22px;margin:0;color:#6d6e6f}.dynamic-add__add-item .dr-icon-add{color:#6d6e6f}.dynamic-add__field{position:relative}.dynamic-add__field__buttons{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:center}.dynamic-add__field__alert{font-size:12px;position:absolute;color:#bf1d30;z-index:100;right:30px}::ng-deep .ng-dropdown-panel .ng-dropdown-footer:has(.dynamic-add),::ng-deep .ng-dropdown-panel .ng-dropdown-header:has(.dynamic-add){padding:0;border:none}::ng-deep .ng-dropdown-panel .ng-dropdown-footer .dynamic-add__add-item{border-bottom:none}::ng-deep .dynamic-add__field__input{padding-left:12px!important;height:36px!important;border:none!important;background:#f9f7ff!important;border-radius:0!important}::ng-deep .dynamic-add__field__input>input{background:#f9f7ff}::ng-deep .dynamic-add__field__input>input::placeholder{line-height:22px;font-size:14px;font-weight:400;color:#9ea1aa}::ng-deep .dynamic-add__field__input--error{background:#ffdfe4!important}::ng-deep .dynamic-add__field__input--error>input{background:#ffdfe4}\n"] }]
|
|
124
134
|
}], function () { return [{ type: i1.DrSelectComponent }]; }, { dynamicAddLabel: [{
|
|
125
135
|
type: Input
|
|
126
136
|
}], bindValue: [{
|
|
@@ -129,10 +139,12 @@ export class DrSelectAddItemComponent {
|
|
|
129
139
|
type: Input
|
|
130
140
|
}], alertMsg: [{
|
|
131
141
|
type: Input
|
|
142
|
+
}], showOnlyInput: [{
|
|
143
|
+
type: Input
|
|
132
144
|
}], dynamicValueAdded: [{
|
|
133
145
|
type: Output
|
|
134
146
|
}], inputRef: [{
|
|
135
147
|
type: ViewChild,
|
|
136
148
|
args: ['dynamicInputRef']
|
|
137
149
|
}] }); })();
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2VsZWN0LWFkZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci1zZWxlY3QtYWRkLWl0ZW0vZHItc2VsZWN0LWFkZC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci1zZWxlY3QtYWRkLWl0ZW0vZHItc2VsZWN0LWFkZC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxJQUFJLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7OztJQ1o5RCw4QkFBMkc7SUFBNUIsa0tBQVMsZUFBQSx3QkFBaUIsQ0FBQSxJQUFDO0lBQ3RHLHVCQUEyQjtJQUMzQiw0QkFBdUM7SUFBQSxZQUFxQjtJQUFBLGlCQUFJLEVBQUE7OztJQUF6QixlQUFxQjtJQUFyQiw0Q0FBcUI7OztJQUc1RCw2QkFBMkY7SUFBQSxZQUFjO0lBQUEsaUJBQUk7OztJQUFsQixlQUFjO0lBQWQscUNBQWM7Ozs7SUFTckcscUNBS3lDO0lBQXJDLHFMQUFTLGVBQUEsd0NBQTBCLENBQUEsSUFBQztJQUFDLGlCQUFZOzs7O0lBZjdELDhCQUF3RDtJQUNwRCwyRUFBNkc7SUFDN0csc0NBTTBCO0lBRnRCLDhPQUEwQixzS0FDZixlQUFBLGtEQUFrQyxD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QUFlO2tCQUE5QixLQUFLO1lBQ1UsU0FBUztrQkFBeEIsS0FBSztZQUNXLE1BQU07a0JBQXRCLEtBQUs7WUFDVSxRQUFRO2tCQUF2QixLQUFLO1lBQ1UsYUFBYTtrQkFBNUIsS0FBSztZQUNZLGlCQUFpQjtrQkFBbEMsTUFBTTtZQUUyQixRQUFRO2tCQUF6QyxTQUFTO21CQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEclNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uL2RyLXNlbGVjdC9kci1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IHJlZHVjZSBhcyBfcmVkdWNlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IERySW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9kci1pbnB1dC9kci1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLXNlbGVjdC1hZGQtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLXNlbGVjdC1hZGQtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItc2VsZWN0LWFkZC1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERyU2VsZWN0QWRkSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBwdWJsaWMgaXNEeW5hbWljQWRkaW5nOiBib29sZWFuO1xuICAgIHB1YmxpYyBkeW5hbWljVmFsdWU6IHN0cmluZztcbiAgICBwdWJsaWMgY3VycmVudFZhbHVlczogYW55W10gPSBbXTtcbiAgICBwdWJsaWMgaXNEaXJ0eTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBkeW5hbWljQWRkTGFiZWwgPSAnQWRkIG5ldyc7XG4gICAgQElucHV0KCkgcHVibGljIGJpbmRWYWx1ZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHByaXZhdGUgdmFsdWVzOiBhbnlbXSA9IFtdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhbGVydE1zZzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93T25seUlucHV0OiBib29sZWFuID0gZmFsc2U7XG4gICAgQE91dHB1dCgpIHByaXZhdGUgZHluYW1pY1ZhbHVlQWRkZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdkeW5hbWljSW5wdXRSZWYnKSBzZXQgaW5wdXRSZWYoaW5wdXQ6IERySW5wdXRDb21wb25lbnQpIHtcbiAgICAgICAgaWYgKCFpbnB1dCkgcmV0dXJuO1xuICAgICAgICBpbnB1dC5mb2N1cygpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZHJTZWxlY3Q6IERyU2VsZWN0Q29tcG9uZW50KSB7fVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVDdXJyZW50VmFsdWVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZUN1cnJlbnRWYWx1ZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25EeW5hbWljQWRkaW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRHluYW1pY0FkZGluZyA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRHluYW1pY0FkZGluZ0Nsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRHluYW1pY0FkZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmR5bmFtaWNWYWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0R5bmFtaWNWYWx1ZVZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB0cmltbWVkVmFsdWUgPSB0aGlzLmR5bmFtaWNWYWx1ZT8udHJpbSgpO1xuICAgICAgICBpZiAoIXRyaW1tZWRWYWx1ZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gIXRoaXMuY3VycmVudFZhbHVlcy5pbmNsdWRlcyh0cmltbWVkVmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkR5bmFtaWNBZGQodmFsdWU6IHN0cmluZywga2V5ZG93bkV2ZW50PzogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRGlydHkgPSB0cnVlO1xuICAgICAgICBpZiAoIXRoaXMuaXNEeW5hbWljVmFsdWVWYWxpZCgpKSByZXR1cm47XG4gICAgICAgIGlmIChrZXlkb3duRXZlbnQgJiYga2V5ZG93bkV2ZW50LmtleSAhPT0gJ0VudGVyJykgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMub25EeW5hbWljQWRkaW5nQ2xvc2UoKTtcbiAgICAgICAgdGhpcy5kclNlbGVjdC5jbG9zZSgpO1xuICAgICAgICB0aGlzLmR5bmFtaWNWYWx1ZUFkZGVkLmVtaXQodmFsdWU/LnRyaW0oKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVDdXJyZW50VmFsdWVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZXMgPSB0aGlzLmJpbmRWYWx1ZVxuICAgICAgICAgICAgPyBfcmVkdWNlKFxuICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZXMsXG4gICAgICAgICAgICAgICAgICAoYWNjLCBjdXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgYWNjLnB1c2goY3Vyclt0aGlzLmJpbmRWYWx1ZV0pO1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogdGhpcy52YWx1ZXM7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRyLXNlbGVjdF9fZHluYW1pYy1hZGQgZHluYW1pYy1hZGRcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIShzaG93T25seUlucHV0ICYmIGlzRHluYW1pY0FkZGluZylcIiBjbGFzcz1cImR5bmFtaWMtYWRkX19hZGQtaXRlbVwiIChjbGljayk9XCJvbkR5bmFtaWNBZGRpbmcoKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYWRkXCI+PC9pPlxuICAgICAgICA8cCBjbGFzcz1cImR5bmFtaWMtYWRkX19hZGQtaXRlbV9fdGV4dFwiPnt7IGR5bmFtaWNBZGRMYWJlbCB9fTwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNEeW5hbWljQWRkaW5nXCIgY2xhc3M9XCJkeW5hbWljLWFkZF9fZmllbGRcIj5cbiAgICAgICAgPHAgKm5nSWY9XCJhbGVydE1zZyAmJiAhaXNEeW5hbWljVmFsdWVWYWxpZCgpICYmIGlzRGlydHlcIiBjbGFzcz1cImR5bmFtaWMtYWRkX19maWVsZF9fYWxlcnRcIj57eyBhbGVydE1zZyB9fTwvcD5cbiAgICAgICAgPGRyLWlucHV0XG4gICAgICAgICAgICAjZHluYW1pY0lucHV0UmVmXG4gICAgICAgICAgICBjbGFzcz1cImR5bmFtaWMtYWRkX19maWVsZF9faW5wdXRcIlxuICAgICAgICAgICAgW2NsYXNzLmR5bmFtaWMtYWRkX19maWVsZF9faW5wdXQtLWVycm9yXT1cIiFpc0R5bmFtaWNWYWx1ZVZhbGlkKCkgJiYgaXNEaXJ0eVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImR5bmFtaWNWYWx1ZVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJvbkR5bmFtaWNBZGQoZHluYW1pY1ZhbHVlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVHlwZS4uLlwiPjwvZHItaW5wdXQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkeW5hbWljLWFkZF9fZmllbGRfX2J1dHRvbnNcIj5cbiAgICAgICAgICAgIDxkci1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImR5bmFtaWNWYWx1ZSAmJiBpc0R5bmFtaWNWYWx1ZVZhbGlkKClcIlxuICAgICAgICAgICAgICAgIHRoZW1lPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgaWNvbj1cImRyLWljb24tYXBwcm92ZVwiXG4gICAgICAgICAgICAgICAgaWNvblNpemU9XCIxOHB4XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25EeW5hbWljQWRkKGR5bmFtaWNWYWx1ZSlcIj48L2RyLWJ1dHRvbj5cbiAgICAgICAgICAgIDxkci1idXR0b24gdGhlbWU9XCJpY29uXCIgaWNvbj1cImRyLWljb24tZXhpdFwiIGljb25TaXplPVwiMThweFwiIChjbGljayk9XCJvbkR5bmFtaWNBZGRpbmdDbG9zZSgpXCI+PC9kci1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|