suis 0.32.4 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +4 -63
- package/esm2022/lib/components/suis-alert/suis-alert.component.mjs +3 -3
- package/esm2022/lib/components/suis-button/suis-button.component.mjs +3 -3
- package/esm2022/lib/components/suis-button-link/suis-button-link.component.mjs +3 -3
- package/esm2022/lib/components/suis-button-outlined/suis-button-outlined.component.mjs +3 -3
- package/esm2022/lib/components/suis-chip/suis-chip.component.mjs +3 -3
- package/esm2022/lib/components/suis-dialog/suis-dialog.component.mjs +3 -3
- package/esm2022/lib/components/suis-icon/suis-icon-type.pipe.mjs +4 -4
- package/esm2022/lib/components/suis-icon/suis-icon.component.mjs +5 -5
- package/esm2022/lib/components/suis-icon/suis-icon.types.mjs +1 -1
- package/esm2022/lib/components/suis-input-checkbox/suis-input-checkbox.component.mjs +3 -3
- package/esm2022/lib/components/suis-input-image/suis-input-image.component.mjs +3 -3
- package/esm2022/lib/components/suis-navigation/suis-navigation.component.mjs +5 -5
- package/esm2022/lib/components/suis-notification/suis-notification.component.mjs +8 -3
- package/esm2022/lib/components/suis-notification/suis-notification.interfaces.mjs +1 -1
- package/esm2022/lib/components/suis-pagination/suis-pagination.component.mjs +4 -4
- package/esm2022/lib/components/suis-select/suis-select.component.mjs +3 -3
- package/esm2022/lib/components/suis-select-multi/suis-select-multi.component.mjs +3 -3
- package/esm2022/lib/components/suis-select-option/suis-select-option.component.mjs +3 -3
- package/esm2022/lib/services/suis-notification.service.mjs +15 -11
- package/fesm2022/suis.mjs +57 -48
- package/fesm2022/suis.mjs.map +1 -1
- package/lib/components/suis-icon/suis-icon.component.d.ts +1 -1
- package/lib/components/suis-icon/suis-icon.types.d.ts +1 -1
- package/lib/components/suis-navigation/suis-navigation.component.d.ts +2 -2
- package/lib/components/suis-notification/suis-notification.component.d.ts +1 -1
- package/lib/components/suis-notification/suis-notification.interfaces.d.ts +1 -0
- package/lib/components/suis-pagination/suis-pagination.component.d.ts +3 -3
- package/lib/services/suis-notification.service.d.ts +9 -6
- package/package.json +7 -1
@@ -22,11 +22,11 @@ export class SuisSelectOptionComponent {
|
|
22
22
|
this.clicked.emit();
|
23
23
|
}
|
24
24
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SuisSelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
25
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SuisSelectOptionComponent, isStandalone: true, selector: "suis-select-option", inputs: { option: "option", templateRef: "templateRef", selected: "selected", checkbox: "checkbox" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<button\n class=\"suis-select-option\"\n type=\"button\"\n tabindex=\"-1\"\n (click)=\"onClick()\"\n>\n <span\n class=\"suis-select-option__checkbox\"\n [class.suis-select-option__checkbox--selected]=\"selected\"\n *ngIf=\"checkbox\"\n >\n <suis-icon\n *ngIf=\"selected\"\n [bold]=\"true\"\n color=\"primary\"\n type=\"check\"\n size=\"sm\"\n ></suis-icon>\n </span>\n <span class=\"suis-select-option__label\">\n <ng-container *ngIf=\"templateRef; else label\">\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: option }\"\n ></ng-container>\n </ng-container>\n <ng-template #label>\n {{ option?.label }}\n </ng-template>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-option{width:100%;display:flex;align-items:center;background-color:transparent;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;cursor:pointer}.suis-select-option:hover{background-color:#f5f6fa}.suis-select-option__checkbox{min-width:
|
25
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SuisSelectOptionComponent, isStandalone: true, selector: "suis-select-option", inputs: { option: "option", templateRef: "templateRef", selected: "selected", checkbox: "checkbox" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<button\n class=\"suis-select-option\"\n type=\"button\"\n tabindex=\"-1\"\n (click)=\"onClick()\"\n>\n <span\n class=\"suis-select-option__checkbox\"\n [class.suis-select-option__checkbox--selected]=\"selected\"\n *ngIf=\"checkbox\"\n >\n <suis-icon\n *ngIf=\"selected\"\n [bold]=\"true\"\n color=\"primary\"\n type=\"check\"\n size=\"sm\"\n ></suis-icon>\n </span>\n <span class=\"suis-select-option__label\">\n <ng-container *ngIf=\"templateRef; else label\">\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: option }\"\n ></ng-container>\n </ng-container>\n <ng-template #label>\n {{ option?.label }}\n </ng-template>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-option{width:100%;display:flex;align-items:center;background-color:transparent;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;cursor:pointer}.suis-select-option:hover{background-color:#f5f6fa}.suis-select-option__checkbox{min-width:1.125rem;min-height:1.125rem;border:.0625rem solid #dcdde1;margin-right:.75rem;display:flex;justify-content:center;align-items:center}.suis-select-option__checkbox--selected{border:.0625rem solid #bcbcbc}.suis-select-option__label{display:flex;justify-content:left;align-items:center;text-align:left}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SuisIconComponent, selector: "suis-icon", inputs: ["size", "color", "type", "outlined", "filled", "pointer", "bold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
26
26
|
}
|
27
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SuisSelectOptionComponent, decorators: [{
|
28
28
|
type: Component,
|
29
|
-
args: [{ selector: 'suis-select-option', standalone: true, imports: [NgIf, NgTemplateOutlet, SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n class=\"suis-select-option\"\n type=\"button\"\n tabindex=\"-1\"\n (click)=\"onClick()\"\n>\n <span\n class=\"suis-select-option__checkbox\"\n [class.suis-select-option__checkbox--selected]=\"selected\"\n *ngIf=\"checkbox\"\n >\n <suis-icon\n *ngIf=\"selected\"\n [bold]=\"true\"\n color=\"primary\"\n type=\"check\"\n size=\"sm\"\n ></suis-icon>\n </span>\n <span class=\"suis-select-option__label\">\n <ng-container *ngIf=\"templateRef; else label\">\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: option }\"\n ></ng-container>\n </ng-container>\n <ng-template #label>\n {{ option?.label }}\n </ng-template>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-option{width:100%;display:flex;align-items:center;background-color:transparent;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;cursor:pointer}.suis-select-option:hover{background-color:#f5f6fa}.suis-select-option__checkbox{min-width:
|
29
|
+
args: [{ selector: 'suis-select-option', standalone: true, imports: [NgIf, NgTemplateOutlet, SuisIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n class=\"suis-select-option\"\n type=\"button\"\n tabindex=\"-1\"\n (click)=\"onClick()\"\n>\n <span\n class=\"suis-select-option__checkbox\"\n [class.suis-select-option__checkbox--selected]=\"selected\"\n *ngIf=\"checkbox\"\n >\n <suis-icon\n *ngIf=\"selected\"\n [bold]=\"true\"\n color=\"primary\"\n type=\"check\"\n size=\"sm\"\n ></suis-icon>\n </span>\n <span class=\"suis-select-option__label\">\n <ng-container *ngIf=\"templateRef; else label\">\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: option }\"\n ></ng-container>\n </ng-container>\n <ng-template #label>\n {{ option?.label }}\n </ng-template>\n </span>\n</button>\n", styles: ["*{margin:0;padding:0;box-sizing:border-box}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{display:block}.suis-select-option{width:100%;display:flex;align-items:center;background-color:transparent;border:none;border-bottom:1px solid #dcdde1;padding:.375rem 1rem;cursor:pointer}.suis-select-option:hover{background-color:#f5f6fa}.suis-select-option__checkbox{min-width:1.125rem;min-height:1.125rem;border:.0625rem solid #dcdde1;margin-right:.75rem;display:flex;justify-content:center;align-items:center}.suis-select-option__checkbox--selected{border:.0625rem solid #bcbcbc}.suis-select-option__label{display:flex;justify-content:left;align-items:center;text-align:left}\n"] }]
|
30
30
|
}], propDecorators: { option: [{
|
31
31
|
type: Input,
|
32
32
|
args: [{ required: true }]
|
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
39
39
|
}], clicked: [{
|
40
40
|
type: Output
|
41
41
|
}] } });
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vpcy1zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc3Vpcy9zcmMvbGliL2NvbXBvbmVudHMvc3Vpcy1zZWxlY3Qtb3B0aW9uL3N1aXMtc2VsZWN0LW9wdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3N1aXMvc3JjL2xpYi9jb21wb25lbnRzL3N1aXMtc2VsZWN0LW9wdGlvbi9zdWlzLXNlbGVjdC1vcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFVckUsTUFBTSxPQUFPLHlCQUF5QjtJQVJ0QztRQW1CRTs7V0FFRztRQUNNLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFbkM7O1dBRUc7UUFDTSxhQUFRLEdBQVksSUFBSSxDQUFDO1FBRWxDOztXQUVHO1FBQ08sWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FNOUM7SUFKQyxnQkFBZ0I7SUFDaEIsT0FBTztRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQzsrR0E3QlUseUJBQXlCO21HQUF6Qix5QkFBeUIscU5DcEJ0QyxpdkJBOEJBLGt2QkRmWSxJQUFJLDZGQUFFLGdCQUFnQixvSkFBRSxpQkFBaUI7OzRGQUt4Qyx5QkFBeUI7a0JBUnJDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxtQkFHbkMsdUJBQXVCLENBQUMsTUFBTTs4QkFNcEIsTUFBTTtzQkFBaEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBS2hCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3Vpc1NlbGVjdE9wdGlvbiB9IGZyb20gJy4vc3Vpcy1zZWxlY3Qtb3B0aW9uLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgU3Vpc0ljb25Db21wb25lbnQgfSBmcm9tICcuLi9zdWlzLWljb24vc3Vpcy1pY29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N1aXMtc2VsZWN0LW9wdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBTdWlzSWNvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zdWlzLXNlbGVjdC1vcHRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdWlzLXNlbGVjdC1vcHRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFN1aXNTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4ge1xuICAvKipcbiAgICogT3B0aW9uIGRhdGEuIFR5cGUgb2YgU3Vpc1NlbGVjdE9wdGlvbjxUPi4gUmVxdWlyZWQgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBvcHRpb24/OiBTdWlzU2VsZWN0T3B0aW9uPFQ+O1xuXG4gIC8qKlxuICAgKiBUZW1wbGF0ZSB0byBiZSBkaXNwbGF5ZWQgaW5zdGVhZCBvZiBvcHRpb24ncyBsYWJlbC5cbiAgICovXG4gIEBJbnB1dCgpIHRlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFN1aXNTZWxlY3RPcHRpb248VD4gfT47XG5cbiAgLyoqXG4gICAqIEFkZHMgY2hlY2ttYXJrIGljb24gdG8gY2hlY2tib3ggKGlmIGNoZWNrYm94IGlucHV0IHNldCB0byB0cnVlKS4gQnkgZGVmYXVsdCBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBASW5wdXQoKSBzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IGNoZWNrYm94IG5leHQgdG8gb3B0aW9uIGxhYmVsLiBCeSBkZWZhdWx0IHNldCB0byB0cnVlLlxuICAgKi9cbiAgQElucHV0KCkgY2hlY2tib3g6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBvbiBvcHRpb24gc2VsZWN0ZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogQGludGVybmFsICovXG4gIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5jbGlja2VkLmVtaXQoKTtcbiAgfVxufVxuIiwiPGJ1dHRvblxuICBjbGFzcz1cInN1aXMtc2VsZWN0LW9wdGlvblwiXG4gIHR5cGU9XCJidXR0b25cIlxuICB0YWJpbmRleD1cIi0xXCJcbiAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJzdWlzLXNlbGVjdC1vcHRpb25fX2NoZWNrYm94XCJcbiAgICBbY2xhc3Muc3Vpcy1zZWxlY3Qtb3B0aW9uX19jaGVja2JveC0tc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxuICAgICpuZ0lmPVwiY2hlY2tib3hcIlxuICA+XG4gICAgPHN1aXMtaWNvblxuICAgICAgKm5nSWY9XCJzZWxlY3RlZFwiXG4gICAgICBbYm9sZF09XCJ0cnVlXCJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICB0eXBlPVwiY2hlY2tcIlxuICAgICAgc2l6ZT1cInNtXCJcbiAgICA+PC9zdWlzLWljb24+XG4gIDwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJzdWlzLXNlbGVjdC1vcHRpb25fX2xhYmVsXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlUmVmOyBlbHNlIGxhYmVsXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVSZWY7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBvcHRpb24gfVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNsYWJlbD5cbiAgICAgIHt7IG9wdGlvbj8ubGFiZWwgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3NwYW4+XG48L2J1dHRvbj5cbiJdfQ==
|
@@ -13,27 +13,30 @@ export class SuisNotificationService {
|
|
13
13
|
}
|
14
14
|
/**
|
15
15
|
* Adds success notification
|
16
|
-
* @param
|
16
|
+
* @param header text displayed in the notification header
|
17
|
+
* @param message text displayed in the notification message
|
17
18
|
* @param delay time in ms after notification will be destroyed
|
18
19
|
*/
|
19
|
-
success(message, delay = 2500) {
|
20
|
-
this.addNotification(message, delay, 'success');
|
20
|
+
success(header, message, delay = 2500) {
|
21
|
+
this.addNotification(header, message, delay, 'success');
|
21
22
|
}
|
22
23
|
/**
|
23
24
|
* Adds warning notification
|
24
|
-
* @param
|
25
|
+
* @param header text displayed in the notification header
|
26
|
+
* @param message text displayed in the notification message
|
25
27
|
* @param delay time in ms after notification will be destroyed
|
26
28
|
*/
|
27
|
-
warning(message, delay = 2500) {
|
28
|
-
this.addNotification(message, delay, 'warning');
|
29
|
+
warning(header, message, delay = 2500) {
|
30
|
+
this.addNotification(header, message, delay, 'warning');
|
29
31
|
}
|
30
32
|
/**
|
31
33
|
* Adds danger notification
|
32
|
-
* @param
|
34
|
+
* @param header text displayed in the notification header
|
35
|
+
* @param message text displayed in the notification message
|
33
36
|
* @param delay time in ms after notification will be destroyed
|
34
37
|
*/
|
35
|
-
danger(message, delay = 2500) {
|
36
|
-
this.addNotification(message, delay, 'danger');
|
38
|
+
danger(header, message, delay = 2500) {
|
39
|
+
this.addNotification(header, message, delay, 'danger');
|
37
40
|
}
|
38
41
|
/**
|
39
42
|
* Removes notification immediately
|
@@ -47,9 +50,10 @@ export class SuisNotificationService {
|
|
47
50
|
return `suis-notification--${UNIQUE_ID++}`;
|
48
51
|
}
|
49
52
|
/** @internal */
|
50
|
-
addNotification(message, delay, type) {
|
53
|
+
addNotification(header, message, delay, type) {
|
51
54
|
const notification = {
|
52
55
|
id: this.getId(),
|
56
|
+
header: header,
|
53
57
|
message: message,
|
54
58
|
delay: delay,
|
55
59
|
type: type,
|
@@ -75,4 +79,4 @@ export class SuisNotificationService {
|
|
75
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SuisNotificationService, decorators: [{
|
76
80
|
type: Injectable
|
77
81
|
}] });
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vpcy1ub3RpZmljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc3Vpcy9zcmMvbGliL3NlcnZpY2VzL3N1aXMtbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBa0IsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQUkzRSxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7QUFHbEIsTUFBTSxPQUFPLHVCQUF1QjtJQURwQztRQUVVLGtCQUFhLEdBQXVDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztLQXFGeEU7SUFuRkM7O09BRUc7SUFDSCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLE1BQWMsRUFBRSxPQUFlLEVBQUUsUUFBZ0IsSUFBSTtRQUMzRCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxNQUFjLEVBQUUsT0FBZSxFQUFFLFFBQWdCLElBQUk7UUFDM0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsTUFBYyxFQUFFLE9BQWUsRUFBRSxRQUFnQixJQUFJO1FBQzFELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7T0FHRztJQUNILHVCQUF1QixDQUFDLEVBQVU7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxnQkFBZ0I7SUFDUixLQUFLO1FBQ1gsT0FBTyxzQkFBc0IsU0FBUyxFQUFFLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ1IsZUFBZSxDQUNyQixNQUFjLEVBQ2QsT0FBZSxFQUNmLEtBQWEsRUFDYixJQUEwQjtRQUUxQixNQUFNLFlBQVksR0FBcUI7WUFDckMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDaEIsTUFBTSxFQUFFLE1BQU07WUFDZCxPQUFPLEVBQUUsT0FBTztZQUNoQixLQUFLLEVBQUUsS0FBSztZQUNaLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUVoRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELGdCQUFnQjtJQUNSLGtCQUFrQixDQUFDLEVBQVU7UUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUM7WUFDckIsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUN6RSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ1IsMkJBQTJCLENBQUMsRUFBVSxFQUFFLEtBQWE7UUFDM0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDWixDQUFDOytHQXJGVSx1QkFBdUI7bUhBQXZCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFdyaXRhYmxlU2lnbmFsLCBzaWduYWwsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vpc05vdGlmaWNhdGlvbiB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3Vpcy1ub3RpZmljYXRpb24vc3Vpcy1ub3RpZmljYXRpb24uaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTdWlzTm90aWZpY2F0aW9uVHlwZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3Vpcy1ub3RpZmljYXRpb24vc3Vpcy1ub3RpZmljYXRpb24udHlwZXMnO1xuXG5sZXQgVU5JUVVFX0lEID0gMTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFN1aXNOb3RpZmljYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBub3RpZmljYXRpb25zOiBXcml0YWJsZVNpZ25hbDxTdWlzTm90aWZpY2F0aW9uW10+ID0gc2lnbmFsKFtdKTtcblxuICAvKipcbiAgICogQHJldHVybnMgYXJyYXkgb2YgdGhlIGN1cnJlbnQgbm90aWZpY2F0aW9ucy4gVHlwZSBvZiBTdWlzTm90aWZpY2F0aW9uW10uXG4gICAqL1xuICBnZXROb3RpZmljYXRpb25zKCk6IFNpZ25hbDxTdWlzTm90aWZpY2F0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5ub3RpZmljYXRpb25zLmFzUmVhZG9ubHkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHN1Y2Nlc3Mgbm90aWZpY2F0aW9uXG4gICAqIEBwYXJhbSBoZWFkZXIgdGV4dCBkaXNwbGF5ZWQgaW4gdGhlIG5vdGlmaWNhdGlvbiBoZWFkZXJcbiAgICogQHBhcmFtIG1lc3NhZ2UgdGV4dCBkaXNwbGF5ZWQgaW4gdGhlIG5vdGlmaWNhdGlvbiBtZXNzYWdlXG4gICAqIEBwYXJhbSBkZWxheSB0aW1lIGluIG1zIGFmdGVyIG5vdGlmaWNhdGlvbiB3aWxsIGJlIGRlc3Ryb3llZFxuICAgKi9cbiAgc3VjY2VzcyhoZWFkZXI6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBkZWxheTogbnVtYmVyID0gMjUwMCk6IHZvaWQge1xuICAgIHRoaXMuYWRkTm90aWZpY2F0aW9uKGhlYWRlciwgbWVzc2FnZSwgZGVsYXksICdzdWNjZXNzJyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyB3YXJuaW5nIG5vdGlmaWNhdGlvblxuICAgKiBAcGFyYW0gaGVhZGVyIHRleHQgZGlzcGxheWVkIGluIHRoZSBub3RpZmljYXRpb24gaGVhZGVyXG4gICAqIEBwYXJhbSBtZXNzYWdlIHRleHQgZGlzcGxheWVkIGluIHRoZSBub3RpZmljYXRpb24gbWVzc2FnZVxuICAgKiBAcGFyYW0gZGVsYXkgdGltZSBpbiBtcyBhZnRlciBub3RpZmljYXRpb24gd2lsbCBiZSBkZXN0cm95ZWRcbiAgICovXG4gIHdhcm5pbmcoaGVhZGVyOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgZGVsYXk6IG51bWJlciA9IDI1MDApOiB2b2lkIHtcbiAgICB0aGlzLmFkZE5vdGlmaWNhdGlvbihoZWFkZXIsIG1lc3NhZ2UsIGRlbGF5LCAnd2FybmluZycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgZGFuZ2VyIG5vdGlmaWNhdGlvblxuICAgKiBAcGFyYW0gaGVhZGVyIHRleHQgZGlzcGxheWVkIGluIHRoZSBub3RpZmljYXRpb24gaGVhZGVyXG4gICAqIEBwYXJhbSBtZXNzYWdlIHRleHQgZGlzcGxheWVkIGluIHRoZSBub3RpZmljYXRpb24gbWVzc2FnZVxuICAgKiBAcGFyYW0gZGVsYXkgdGltZSBpbiBtcyBhZnRlciBub3RpZmljYXRpb24gd2lsbCBiZSBkZXN0cm95ZWRcbiAgICovXG4gIGRhbmdlcihoZWFkZXI6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCBkZWxheTogbnVtYmVyID0gMjUwMCk6IHZvaWQge1xuICAgIHRoaXMuYWRkTm90aWZpY2F0aW9uKGhlYWRlciwgbWVzc2FnZSwgZGVsYXksICdkYW5nZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIG5vdGlmaWNhdGlvbiBpbW1lZGlhdGVseVxuICAgKiBAcGFyYW0gaWQgaWQgb2YgdGhlIG5vdGlmaWNhdGlvbiB0byBiZSByZW1vdmVkXG4gICAqL1xuICBmb3JjZVJlbW92ZU5vdGlmaWNhdGlvbihpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVOb3RpZmljYXRpb24oaWQpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcml2YXRlIGdldElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBzdWlzLW5vdGlmaWNhdGlvbi0tJHtVTklRVUVfSUQrK31gO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcml2YXRlIGFkZE5vdGlmaWNhdGlvbihcbiAgICBoZWFkZXI6IHN0cmluZyxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgZGVsYXk6IG51bWJlcixcbiAgICB0eXBlOiBTdWlzTm90aWZpY2F0aW9uVHlwZVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBub3RpZmljYXRpb246IFN1aXNOb3RpZmljYXRpb24gPSB7XG4gICAgICBpZDogdGhpcy5nZXRJZCgpLFxuICAgICAgaGVhZGVyOiBoZWFkZXIsXG4gICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgZGVsYXk6IGRlbGF5LFxuICAgICAgdHlwZTogdHlwZSxcbiAgICB9O1xuXG4gICAgdGhpcy5ub3RpZmljYXRpb25zLnNldChbLi4udGhpcy5ub3RpZmljYXRpb25zKCksIG5vdGlmaWNhdGlvbl0pO1xuXG4gICAgdGhpcy5yZW1vdmVOb3RpZmljYXRpb25XaXRoRGVsYXkobm90aWZpY2F0aW9uLmlkLCBub3RpZmljYXRpb24uZGVsYXkpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcml2YXRlIHJlbW92ZU5vdGlmaWNhdGlvbihpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25zLnNldChbXG4gICAgICAuLi50aGlzLm5vdGlmaWNhdGlvbnMoKS5maWx0ZXIoKG5vdGlmaWNhdGlvbikgPT4gbm90aWZpY2F0aW9uLmlkICE9PSBpZCksXG4gICAgXSk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHByaXZhdGUgcmVtb3ZlTm90aWZpY2F0aW9uV2l0aERlbGF5KGlkOiBzdHJpbmcsIGRlbGF5OiBudW1iZXIpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVtb3ZlTm90aWZpY2F0aW9uKGlkKTtcbiAgICB9LCBkZWxheSk7XG4gIH1cbn1cbiJdfQ==
|