@design-system-rte/angular 1.0.0 → 1.1.0
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/lib/components/assistive-text/assistive-text.component.mjs +34 -0
- package/esm2022/lib/components/badge/badge.component.mjs +7 -4
- package/esm2022/lib/components/banner/banner.component.mjs +3 -3
- package/esm2022/lib/components/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +18 -3
- package/esm2022/lib/components/breadcrumbs/breadcrumbs.component.mjs +19 -3
- package/esm2022/lib/components/button/button.component.mjs +2 -2
- package/esm2022/lib/components/card/card.component.mjs +3 -3
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/lib/components/checkbox-group/checkbox-group.component.mjs +3 -3
- package/esm2022/lib/components/chip/chip.component.mjs +3 -3
- package/esm2022/lib/components/divider/divider.component.mjs +3 -3
- package/esm2022/lib/components/dropdown/dropdown-item/dropdown-item.component.mjs +23 -6
- package/esm2022/lib/components/dropdown/dropdown-menu/dropdown-menu.component.mjs +16 -5
- package/esm2022/lib/components/dropdown/dropdown-trigger/dropdown-trigger.directive.mjs +23 -2
- package/esm2022/lib/components/dropdown/dropdown.directive.mjs +71 -15
- package/esm2022/lib/components/icon/icon.component.mjs +3 -3
- package/esm2022/lib/components/icon/icon.service.mjs +1 -1
- package/esm2022/lib/components/icon-button/icon-button.component.mjs +6 -6
- package/esm2022/lib/components/icon-button-toggle/icon-button-toggle.component.mjs +3 -3
- package/esm2022/lib/components/link/link.component.mjs +3 -3
- package/esm2022/lib/components/modal/modal.component.mjs +3 -3
- package/esm2022/lib/components/popover/popover.component.mjs +3 -3
- package/esm2022/lib/components/radio-button/radio-button.component.mjs +3 -3
- package/esm2022/lib/components/radio-button-group/radio-button-group.component.mjs +3 -3
- package/esm2022/lib/components/searchbar/searchbar.component.mjs +86 -0
- package/esm2022/lib/components/segmented-control/segmented-control.component.mjs +13 -3
- package/esm2022/lib/components/select/select.component.mjs +168 -0
- package/esm2022/lib/components/side-nav/base-side-nav/base-side-nav.component.mjs +3 -3
- package/esm2022/lib/components/side-nav/nav-item/nav-item.component.mjs +3 -3
- package/esm2022/lib/components/side-nav/nav-menu/nav-menu.component.mjs +3 -3
- package/esm2022/lib/components/side-nav/side-nav.component.mjs +3 -3
- package/esm2022/lib/components/split-button/split-button.component.mjs +17 -3
- package/esm2022/lib/components/switch/switch.component.mjs +3 -3
- package/esm2022/lib/components/tag/tag.component.mjs +43 -0
- package/esm2022/lib/components/text-input/base-text-input/base-text-input.component.mjs +109 -0
- package/esm2022/lib/components/text-input/text-input.component.mjs +8 -103
- package/esm2022/lib/components/textarea/textarea.component.mjs +8 -7
- package/esm2022/lib/components/toast/toast.component.mjs +3 -3
- package/esm2022/lib/components/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/lib/services/dropdown.service.mjs +2 -3
- package/esm2022/public-api.mjs +4 -1
- package/fesm2022/design-system-rte-angular.mjs +648 -187
- package/fesm2022/design-system-rte-angular.mjs.map +1 -1
- package/lib/components/assistive-text/assistive-text.component.d.ts +14 -0
- package/lib/components/badge/badge.directive.d.ts +1 -1
- package/lib/components/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +3 -2
- package/lib/components/breadcrumbs/breadcrumbs.component.d.ts +10 -3
- package/lib/components/dropdown/dropdown-item/dropdown-item.component.d.ts +4 -1
- package/lib/components/dropdown/dropdown-menu/dropdown-menu.component.d.ts +10 -1
- package/lib/components/dropdown/dropdown-trigger/dropdown-trigger.directive.d.ts +7 -1
- package/lib/components/dropdown/dropdown.directive.d.ts +10 -2
- package/lib/components/icon/icon.service.d.ts +1 -2
- package/lib/components/icon-button/icon-button.component.d.ts +5 -4
- package/lib/components/icon-button-toggle/icon-button-toggle.component.d.ts +2 -2
- package/lib/components/searchbar/searchbar.component.d.ts +31 -0
- package/lib/components/segmented-control/segmented-control.component.d.ts +1 -0
- package/lib/components/select/select.component.d.ts +56 -0
- package/lib/components/split-button/split-button.component.d.ts +10 -2
- package/lib/components/tag/tag.component.d.ts +14 -0
- package/lib/components/text-input/base-text-input/base-text-input.component.d.ts +47 -0
- package/lib/components/text-input/text-input.component.d.ts +3 -39
- package/package.json +2 -2
- package/public-api.d.ts +3 -0
|
@@ -20,10 +20,10 @@ export class RadioButtonGroupComponent {
|
|
|
20
20
|
this.isDisplayed = computed(() => !(this.disabled() && this.error()));
|
|
21
21
|
}
|
|
22
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RadioButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: RadioButtonGroupComponent, isStandalone: true, selector: "rte-radio-button-group", inputs: { groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, showItemsLabel: { classPropertyName: "showItemsLabel", publicName: "showItemsLabel", isSignal: true, isRequired: false, transformFunction: null }, groupTitle: { classPropertyName: "groupTitle", publicName: "groupTitle", isSignal: true, isRequired: false, transformFunction: null }, showGroupTitle: { classPropertyName: "showGroupTitle", publicName: "showGroupTitle", isSignal: true, isRequired: false, transformFunction: null }, groupHelpText: { classPropertyName: "groupHelpText", publicName: "groupHelpText", isSignal: true, isRequired: false, transformFunction: null }, showHelpText: { classPropertyName: "showHelpText", publicName: "showHelpText", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: RadioButtonGroupComponent, isStandalone: true, selector: "rte-radio-button-group", inputs: { groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, showItemsLabel: { classPropertyName: "showItemsLabel", publicName: "showItemsLabel", isSignal: true, isRequired: false, transformFunction: null }, groupTitle: { classPropertyName: "groupTitle", publicName: "groupTitle", isSignal: true, isRequired: false, transformFunction: null }, showGroupTitle: { classPropertyName: "showGroupTitle", publicName: "showGroupTitle", isSignal: true, isRequired: false, transformFunction: null }, groupHelpText: { classPropertyName: "groupHelpText", publicName: "groupHelpText", isSignal: true, isRequired: false, transformFunction: null }, showHelpText: { classPropertyName: "showHelpText", publicName: "showHelpText", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div *ngIf=\"isDisplayed()\" class=\"radio-button-group-container\">\n <div\n class=\"radio-button-group-header\"\n [ngClass]=\"{\n disabled: disabled(),\n error: error(),\n 'read-only': readOnly(),\n }\"\n >\n <h3 *ngIf=\"showGroupTitle()\" class=\"group-title\">\n {{ groupTitle() }}\n </h3>\n <p *ngIf=\"showHelpText()\" class=\"group-help-text\">\n {{ groupHelpText() }}\n </p>\n <p *ngIf=\"error()\" class=\"group-error-message\">\n {{ errorMessage() }}\n </p>\n </div>\n <div\n class=\"radio-button-group\"\n [ngClass]=\"{ horizontal: direction() === 'horizontal', vertical: direction() === 'vertical' }\"\n >\n <ng-container *ngFor=\"let item of items()\">\n <rte-radio-button\n [label]=\"item\"\n [groupName]=\"groupName()\"\n [showLabel]=\"showItemsLabel()\"\n [disabled]=\"disabled()\"\n [error]=\"error()\"\n [readOnly]=\"readOnly()\"\n />\n </ng-container>\n </div>\n</div>\n", styles: [".radio-button-group-container{display:flex;padding:0;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px}.radio-button-group-container .radio-button-group-header .group-title{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;align-self:stretch;margin:0}.radio-button-group-container .radio-button-group-header .group-help-text{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-tertiary);align-self:stretch;margin:0}.radio-button-group-container .radio-button-group-header .group-error-message{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-danger-default);align-self:stretch;margin:4px 0 0}.radio-button-group-container .radio-button-group-header.error .group-title{color:var(--content-danger-default)}.radio-button-group-container .radio-button-group-header.read-only .group-title{color:var(--content-tertiary)}.radio-button-group-container .radio-button-group-header.read-only .error .group-title{color:var(--content-danger-default)}.radio-button-group-container .radio-button-group-header.disabled{pointer-events:none}.radio-button-group-container .radio-button-group-header.disabled .group-title,.radio-button-group-container .radio-button-group-header.disabled .group-help-text{color:var(--content-disabled)}.radio-button-group-container .radio-button-group{display:flex;flex-direction:row;padding:0;align-items:flex-start;gap:24px}.radio-button-group-container .radio-button-group.vertical{flex-direction:column;gap:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: RadioButtonComponent, selector: "rte-radio-button", inputs: ["label", "groupName", "showLabel", "disabled", "error", "readOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
24
|
}
|
|
25
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RadioButtonGroupComponent, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
|
-
args: [{ selector: "rte-radio-button-group", imports: [CommonModule, RadioButtonComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div
|
|
27
|
+
args: [{ selector: "rte-radio-button-group", imports: [CommonModule, RadioButtonComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"isDisplayed()\" class=\"radio-button-group-container\">\n <div\n class=\"radio-button-group-header\"\n [ngClass]=\"{\n disabled: disabled(),\n error: error(),\n 'read-only': readOnly(),\n }\"\n >\n <h3 *ngIf=\"showGroupTitle()\" class=\"group-title\">\n {{ groupTitle() }}\n </h3>\n <p *ngIf=\"showHelpText()\" class=\"group-help-text\">\n {{ groupHelpText() }}\n </p>\n <p *ngIf=\"error()\" class=\"group-error-message\">\n {{ errorMessage() }}\n </p>\n </div>\n <div\n class=\"radio-button-group\"\n [ngClass]=\"{ horizontal: direction() === 'horizontal', vertical: direction() === 'vertical' }\"\n >\n <ng-container *ngFor=\"let item of items()\">\n <rte-radio-button\n [label]=\"item\"\n [groupName]=\"groupName()\"\n [showLabel]=\"showItemsLabel()\"\n [disabled]=\"disabled()\"\n [error]=\"error()\"\n [readOnly]=\"readOnly()\"\n />\n </ng-container>\n </div>\n</div>\n", styles: [".radio-button-group-container{display:flex;padding:0;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px}.radio-button-group-container .radio-button-group-header .group-title{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;align-self:stretch;margin:0}.radio-button-group-container .radio-button-group-header .group-help-text{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-tertiary);align-self:stretch;margin:0}.radio-button-group-container .radio-button-group-header .group-error-message{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-danger-default);align-self:stretch;margin:4px 0 0}.radio-button-group-container .radio-button-group-header.error .group-title{color:var(--content-danger-default)}.radio-button-group-container .radio-button-group-header.read-only .group-title{color:var(--content-tertiary)}.radio-button-group-container .radio-button-group-header.read-only .error .group-title{color:var(--content-danger-default)}.radio-button-group-container .radio-button-group-header.disabled{pointer-events:none}.radio-button-group-container .radio-button-group-header.disabled .group-title,.radio-button-group-container .radio-button-group-header.disabled .group-help-text{color:var(--content-disabled)}.radio-button-group-container .radio-button-group{display:flex;flex-direction:row;padding:0;align-items:flex-start;gap:24px}.radio-button-group-container .radio-button-group.vertical{flex-direction:column;gap:8px}\n"] }]
|
|
28
28
|
}] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLXJ0ZS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3JhZGlvLWJ1dHRvbi1ncm91cC9yYWRpby1idXR0b24tZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcmFkaW8tYnV0dG9uLWdyb3VwL3JhZGlvLWJ1dHRvbi1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFVOUUsTUFBTSxPQUFPLHlCQUF5QjtJQVJ0QztRQVNXLGNBQVMsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsVUFBSyxHQUFHLEtBQUssQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUM1QixjQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hDLG1CQUFjLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLGVBQVUsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkIsbUJBQWMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsa0JBQWEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsaUJBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsaUJBQVksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsVUFBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLGFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEIsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQzNFOytHQWZZLHlCQUF5QjttR0FBekIseUJBQXlCLCtxRENidEMsdy9CQW1DQSxrMERENUJZLFlBQVksOFZBQUUsb0JBQW9COzs0RkFNakMseUJBQXlCO2tCQVJyQyxTQUFTOytCQUNFLHdCQUF3QixXQUN6QixDQUFDLFlBQVksRUFBRSxvQkFBb0IsQ0FBQyxjQUNqQyxJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBSYWRpb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwicnRlLXJhZGlvLWJ1dHRvbi1ncm91cFwiLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSYWRpb0J1dHRvbkNvbXBvbmVudF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiBcIi4vcmFkaW8tYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsOiBcIi4vcmFkaW8tYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5zY3NzXCIsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb0J1dHRvbkdyb3VwQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgZ3JvdXBOYW1lID0gaW5wdXQoXCJcIik7XG4gIHJlYWRvbmx5IGl0ZW1zID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcbiAgcmVhZG9ubHkgZGlyZWN0aW9uID0gaW5wdXQoXCJob3Jpem9udGFsXCIpO1xuICByZWFkb25seSBzaG93SXRlbXNMYWJlbCA9IGlucHV0KHRydWUpO1xuICByZWFkb25seSBncm91cFRpdGxlID0gaW5wdXQoXCJcIik7XG4gIHJlYWRvbmx5IHNob3dHcm91cFRpdGxlID0gaW5wdXQoZmFsc2UpO1xuICByZWFkb25seSBncm91cEhlbHBUZXh0ID0gaW5wdXQoXCJcIik7XG4gIHJlYWRvbmx5IHNob3dIZWxwVGV4dCA9IGlucHV0KGZhbHNlKTtcbiAgcmVhZG9ubHkgZXJyb3JNZXNzYWdlID0gaW5wdXQoXCJcIik7XG4gIHJlYWRvbmx5IGVycm9yID0gaW5wdXQoZmFsc2UpO1xuICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcbiAgcmVhZG9ubHkgcmVhZE9ubHkgPSBpbnB1dChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgaXNEaXNwbGF5ZWQgPSBjb21wdXRlZCgoKSA9PiAhKHRoaXMuZGlzYWJsZWQoKSAmJiB0aGlzLmVycm9yKCkpKTtcbn1cbiIsIjxkaXYgKm5nSWY9XCJpc0Rpc3BsYXllZCgpXCIgY2xhc3M9XCJyYWRpby1idXR0b24tZ3JvdXAtY29udGFpbmVyXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInJhZGlvLWJ1dHRvbi1ncm91cC1oZWFkZXJcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCgpLFxuICAgICAgZXJyb3I6IGVycm9yKCksXG4gICAgICAncmVhZC1vbmx5JzogcmVhZE9ubHkoKSxcbiAgICB9XCJcbiAgPlxuICAgIDxoMyAqbmdJZj1cInNob3dHcm91cFRpdGxlKClcIiBjbGFzcz1cImdyb3VwLXRpdGxlXCI+XG4gICAgICB7eyBncm91cFRpdGxlKCkgfX1cbiAgICA8L2gzPlxuICAgIDxwICpuZ0lmPVwic2hvd0hlbHBUZXh0KClcIiBjbGFzcz1cImdyb3VwLWhlbHAtdGV4dFwiPlxuICAgICAge3sgZ3JvdXBIZWxwVGV4dCgpIH19XG4gICAgPC9wPlxuICAgIDxwICpuZ0lmPVwiZXJyb3IoKVwiIGNsYXNzPVwiZ3JvdXAtZXJyb3ItbWVzc2FnZVwiPlxuICAgICAge3sgZXJyb3JNZXNzYWdlKCkgfX1cbiAgICA8L3A+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJyYWRpby1idXR0b24tZ3JvdXBcIlxuICAgIFtuZ0NsYXNzXT1cInsgaG9yaXpvbnRhbDogZGlyZWN0aW9uKCkgPT09ICdob3Jpem9udGFsJywgdmVydGljYWw6IGRpcmVjdGlvbigpID09PSAndmVydGljYWwnIH1cIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcygpXCI+XG4gICAgICA8cnRlLXJhZGlvLWJ1dHRvblxuICAgICAgICBbbGFiZWxdPVwiaXRlbVwiXG4gICAgICAgIFtncm91cE5hbWVdPVwiZ3JvdXBOYW1lKClcIlxuICAgICAgICBbc2hvd0xhYmVsXT1cInNob3dJdGVtc0xhYmVsKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgIFtlcnJvcl09XCJlcnJvcigpXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5KClcIlxuICAgICAgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { CommonModule } from "@angular/common";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, computed, input, output, signal } from "@angular/core";
|
|
3
|
+
import { APPEARANCE_CONFIG, SEARCHBAR_BORDER_RADIUS, SEARCHBAR_BUTTON_HEIGHT_COMPACT, SEARCHBAR_BUTTON_WIDTH, SEARCHBAR_PADDING_LEFT, } from "@design-system-rte/core/components/searchbar/searchbar.constants";
|
|
4
|
+
import { ENTER_KEY } from "@design-system-rte/core/constants/keyboard/keyboard.constants";
|
|
5
|
+
import { IconButtonComponent } from "../icon-button/icon-button.component";
|
|
6
|
+
import { BaseTextInputComponent } from "../text-input/base-text-input/base-text-input.component";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
export class SearchbarComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.id = input();
|
|
12
|
+
this.label = input("Rechercher");
|
|
13
|
+
this.disabled = input(false);
|
|
14
|
+
this.showResetButton = input(true);
|
|
15
|
+
this.appearance = input("primary");
|
|
16
|
+
this.compactSpacing = input(false);
|
|
17
|
+
this.value = input("");
|
|
18
|
+
this.assistiveText = input("");
|
|
19
|
+
this.valueChange = output();
|
|
20
|
+
this.searchEvent = output();
|
|
21
|
+
this.clear = output();
|
|
22
|
+
this.hasFocusWithin = signal(false);
|
|
23
|
+
this.appearanceConfig = computed(() => APPEARANCE_CONFIG[this.appearance()]);
|
|
24
|
+
this.placeholder = computed(() => (this.disabled() ? "Recherche indisponible" : this.label()));
|
|
25
|
+
this.textInputStyles = computed(() => {
|
|
26
|
+
const styles = {};
|
|
27
|
+
const hasLeftIcon = this.appearanceConfig().showLeftIcon;
|
|
28
|
+
if (this.appearance() === "primary") {
|
|
29
|
+
styles["border-right"] = "none";
|
|
30
|
+
styles["border-radius"] = `${SEARCHBAR_BORDER_RADIUS} 0 0 ${SEARCHBAR_BORDER_RADIUS}`;
|
|
31
|
+
if (!hasLeftIcon) {
|
|
32
|
+
styles["padding-left"] = SEARCHBAR_PADDING_LEFT;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else if (this.appearance() === "secondary") {
|
|
36
|
+
styles["border-radius"] = SEARCHBAR_BORDER_RADIUS;
|
|
37
|
+
}
|
|
38
|
+
return styles;
|
|
39
|
+
});
|
|
40
|
+
this.searchButtonStyles = computed(() => {
|
|
41
|
+
const styles = {
|
|
42
|
+
width: SEARCHBAR_BUTTON_WIDTH,
|
|
43
|
+
"border-radius": `0 ${SEARCHBAR_BORDER_RADIUS} ${SEARCHBAR_BORDER_RADIUS} 0`,
|
|
44
|
+
display: "flex",
|
|
45
|
+
"justify-content": "center",
|
|
46
|
+
};
|
|
47
|
+
if (this.compactSpacing()) {
|
|
48
|
+
styles["height"] = SEARCHBAR_BUTTON_HEIGHT_COMPACT;
|
|
49
|
+
}
|
|
50
|
+
return styles;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
handleChange(value) {
|
|
54
|
+
this.valueChange.emit(value);
|
|
55
|
+
}
|
|
56
|
+
handleSearch() {
|
|
57
|
+
this.searchEvent.emit(this.value());
|
|
58
|
+
}
|
|
59
|
+
handleEnter(event) {
|
|
60
|
+
if (event.key === ENTER_KEY) {
|
|
61
|
+
this.handleSearch();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
handleClear() {
|
|
65
|
+
this.valueChange.emit("");
|
|
66
|
+
this.clear.emit();
|
|
67
|
+
}
|
|
68
|
+
handleFocusIn() {
|
|
69
|
+
this.hasFocusWithin.set(true);
|
|
70
|
+
}
|
|
71
|
+
handleFocusOut(event) {
|
|
72
|
+
const next = event.relatedTarget;
|
|
73
|
+
const currentTarget = event.currentTarget;
|
|
74
|
+
if (next && currentTarget.contains(next)) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
this.hasFocusWithin.set(false);
|
|
78
|
+
}
|
|
79
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SearchbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
80
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SearchbarComponent, isStandalone: true, selector: "rte-searchbar", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, showResetButton: { classPropertyName: "showResetButton", publicName: "showResetButton", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, assistiveText: { classPropertyName: "assistiveText", publicName: "assistiveText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", searchEvent: "searchEvent", clear: "clear" }, ngImport: i0, template: "<div class=\"searchbar-container\" role=\"search\" [ngClass]=\"appearance()\">\n <div\n class=\"text-input-wrapper\"\n [attr.data-disabled]=\"disabled()\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut($event)\"\n >\n <rte-base-text-input\n rightIconAction=\"clean\"\n autocomplete=\"off\"\n [id]=\"id() ?? ''\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [value]=\"value()\"\n [showRightIcon]=\"showResetButton()\"\n [assistiveTextLabel]=\"assistiveText()\"\n [compactSpacing]=\"compactSpacing()\"\n [leftIcon]=\"appearanceConfig().showLeftIcon ? 'search' : null\"\n [customStyle]=\"textInputStyles()\"\n [highlighted]=\"hasFocusWithin()\"\n (valueChange)=\"handleChange($event)\"\n (rightIconClick)=\"handleClear()\"\n >\n @if (appearanceConfig().showSearchButton) {\n <rte-icon-button\n baseTextInputRightSlot\n name=\"search\"\n size=\"m\"\n variant=\"primary\"\n appearance=\"filled\"\n class=\"search-button\"\n [ariaLabel]=\"label()\"\n [disabled]=\"disabled()\"\n [compactSpacing]=\"compactSpacing()\"\n [customStyle]=\"searchButtonStyles()\"\n (clickEvent)=\"handleSearch()\"\n />\n }\n </rte-base-text-input>\n </div>\n</div>\n", styles: [".searchbar-container{display:flex;flex-direction:column;width:fit-content}.text-input-wrapper{min-width:0;display:flex;align-items:stretch;border-radius:8px;transition:outline .2s,border .2s}.text-input-wrapper:focus-within{outline:1px solid var(--border-brand-default);outline-offset:0}.search-button{flex-shrink:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BaseTextInputComponent, selector: "rte-base-text-input", inputs: ["id", "label", "labelPosition", "placeholder", "required", "showCounter", "value", "leftIcon", "showRightIcon", "rightIconAction", "showLabelRequirement", "assistiveAppearance", "showAssistiveIcon", "assistiveTextLabel", "error", "maxLength", "disabled", "readOnly", "width", "ariaLabel", "ariaRequired", "ariaLabelledby", "compactSpacing", "customStyle", "autocomplete", "highlighted"], outputs: ["valueChange", "rightIconClick"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
81
|
+
}
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SearchbarComponent, decorators: [{
|
|
83
|
+
type: Component,
|
|
84
|
+
args: [{ selector: "rte-searchbar", imports: [CommonModule, BaseTextInputComponent, IconButtonComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"searchbar-container\" role=\"search\" [ngClass]=\"appearance()\">\n <div\n class=\"text-input-wrapper\"\n [attr.data-disabled]=\"disabled()\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut($event)\"\n >\n <rte-base-text-input\n rightIconAction=\"clean\"\n autocomplete=\"off\"\n [id]=\"id() ?? ''\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [value]=\"value()\"\n [showRightIcon]=\"showResetButton()\"\n [assistiveTextLabel]=\"assistiveText()\"\n [compactSpacing]=\"compactSpacing()\"\n [leftIcon]=\"appearanceConfig().showLeftIcon ? 'search' : null\"\n [customStyle]=\"textInputStyles()\"\n [highlighted]=\"hasFocusWithin()\"\n (valueChange)=\"handleChange($event)\"\n (rightIconClick)=\"handleClear()\"\n >\n @if (appearanceConfig().showSearchButton) {\n <rte-icon-button\n baseTextInputRightSlot\n name=\"search\"\n size=\"m\"\n variant=\"primary\"\n appearance=\"filled\"\n class=\"search-button\"\n [ariaLabel]=\"label()\"\n [disabled]=\"disabled()\"\n [compactSpacing]=\"compactSpacing()\"\n [customStyle]=\"searchButtonStyles()\"\n (clickEvent)=\"handleSearch()\"\n />\n }\n </rte-base-text-input>\n </div>\n</div>\n", styles: [".searchbar-container{display:flex;flex-direction:column;width:fit-content}.text-input-wrapper{min-width:0;display:flex;align-items:stretch;border-radius:8px;transition:outline .2s,border .2s}.text-input-wrapper:focus-within{outline:1px solid var(--border-brand-default);outline-offset:0}.search-button{flex-shrink:0}\n"] }]
|
|
85
|
+
}] });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLXJ0ZS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaGJhci9zZWFyY2hiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoYmFyL3NlYXJjaGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUNMLGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsK0JBQStCLEVBQy9CLHNCQUFzQixFQUN0QixzQkFBc0IsR0FDdkIsTUFBTSxrRUFBa0UsQ0FBQztBQUUxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFMUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seURBQXlELENBQUM7OztBQVVqRyxNQUFNLE9BQU8sa0JBQWtCO0lBUi9CO1FBU1csT0FBRSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3JCLFVBQUssR0FBRyxLQUFLLENBQVMsWUFBWSxDQUFDLENBQUM7UUFDcEMsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNqQyxvQkFBZSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUN2QyxlQUFVLEdBQUcsS0FBSyxDQUFzQixTQUFTLENBQUMsQ0FBQztRQUNuRCxtQkFBYyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUN2QyxVQUFLLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLGtCQUFhLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRWxDLGdCQUFXLEdBQUcsTUFBTSxFQUFVLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxNQUFNLEVBQXNCLENBQUM7UUFDM0MsVUFBSyxHQUFHLE1BQU0sRUFBUSxDQUFDO1FBRXZCLG1CQUFjLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXhDLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXhFLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUxRixvQkFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsTUFBTSxNQUFNLEdBQTJCLEVBQUUsQ0FBQztZQUMxQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFFekQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxNQUFNLENBQUM7Z0JBQ2hDLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxHQUFHLHVCQUF1QixRQUFRLHVCQUF1QixFQUFFLENBQUM7Z0JBQ3RGLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDakIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLHNCQUFzQixDQUFDO2dCQUNsRCxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDN0MsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLHVCQUF1QixDQUFDO1lBQ3BELENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUVNLHVCQUFrQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDMUMsTUFBTSxNQUFNLEdBQTJCO2dCQUNyQyxLQUFLLEVBQUUsc0JBQXNCO2dCQUM3QixlQUFlLEVBQUUsS0FBSyx1QkFBdUIsSUFBSSx1QkFBdUIsSUFBSTtnQkFDNUUsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsaUJBQWlCLEVBQUUsUUFBUTthQUM1QixDQUFDO1lBQ0YsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLCtCQUErQixDQUFDO1lBQ3JELENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztLQWlDSjtJQS9CQyxZQUFZLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBb0I7UUFDOUIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFpQjtRQUM5QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsYUFBNEIsQ0FBQztRQUNoRCxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBcUIsQ0FBQztRQUNsRCxJQUFJLElBQUksSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOytHQWhGVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiwwc0NDdkIvQiwrMkNBeUNBLHVYRHhCWSxZQUFZLDZIQUFFLHNCQUFzQix5ZkFBRSxtQkFBbUI7OzRGQU14RCxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsZUFBZSxXQUNoQixDQUFDLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsQ0FBQyxjQUN4RCxJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIEFQUEVBUkFOQ0VfQ09ORklHLFxuICBTRUFSQ0hCQVJfQk9SREVSX1JBRElVUyxcbiAgU0VBUkNIQkFSX0JVVFRPTl9IRUlHSFRfQ09NUEFDVCxcbiAgU0VBUkNIQkFSX0JVVFRPTl9XSURUSCxcbiAgU0VBUkNIQkFSX1BBRERJTkdfTEVGVCxcbn0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbXBvbmVudHMvc2VhcmNoYmFyL3NlYXJjaGJhci5jb25zdGFudHNcIjtcbmltcG9ydCB7IFNlYXJjaEJhckFwcGVhcmFuY2UgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9zZWFyY2hiYXIvc2VhcmNoYmFyLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRU5URVJfS0VZIH0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbnN0YW50cy9rZXlib2FyZC9rZXlib2FyZC5jb25zdGFudHNcIjtcblxuaW1wb3J0IHsgSWNvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEJhc2VUZXh0SW5wdXRDb21wb25lbnQgfSBmcm9tIFwiLi4vdGV4dC1pbnB1dC9iYXNlLXRleHQtaW5wdXQvYmFzZS10ZXh0LWlucHV0LmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwicnRlLXNlYXJjaGJhclwiLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCYXNlVGV4dElucHV0Q29tcG9uZW50LCBJY29uQnV0dG9uQ29tcG9uZW50XSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zZWFyY2hiYXIuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmw6IFwiLi9zZWFyY2hiYXIuY29tcG9uZW50LnNjc3NcIixcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaGJhckNvbXBvbmVudCB7XG4gIHJlYWRvbmx5IGlkID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBsYWJlbCA9IGlucHV0PHN0cmluZz4oXCJSZWNoZXJjaGVyXCIpO1xuICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgc2hvd1Jlc2V0QnV0dG9uID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBpbnB1dDxTZWFyY2hCYXJBcHBlYXJhbmNlPihcInByaW1hcnlcIik7XG4gIHJlYWRvbmx5IGNvbXBhY3RTcGFjaW5nID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB2YWx1ZSA9IGlucHV0PHN0cmluZz4oXCJcIik7XG4gIHJlYWRvbmx5IGFzc2lzdGl2ZVRleHQgPSBpbnB1dDxzdHJpbmc+KFwiXCIpO1xuXG4gIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgc2VhcmNoRXZlbnQgPSBvdXRwdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBjbGVhciA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGhhc0ZvY3VzV2l0aGluID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBhcHBlYXJhbmNlQ29uZmlnID0gY29tcHV0ZWQoKCkgPT4gQVBQRUFSQU5DRV9DT05GSUdbdGhpcy5hcHBlYXJhbmNlKCldKTtcblxuICByZWFkb25seSBwbGFjZWhvbGRlciA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmRpc2FibGVkKCkgPyBcIlJlY2hlcmNoZSBpbmRpc3BvbmlibGVcIiA6IHRoaXMubGFiZWwoKSkpO1xuXG4gIHJlYWRvbmx5IHRleHRJbnB1dFN0eWxlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzdHlsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBjb25zdCBoYXNMZWZ0SWNvbiA9IHRoaXMuYXBwZWFyYW5jZUNvbmZpZygpLnNob3dMZWZ0SWNvbjtcblxuICAgIGlmICh0aGlzLmFwcGVhcmFuY2UoKSA9PT0gXCJwcmltYXJ5XCIpIHtcbiAgICAgIHN0eWxlc1tcImJvcmRlci1yaWdodFwiXSA9IFwibm9uZVwiO1xuICAgICAgc3R5bGVzW1wiYm9yZGVyLXJhZGl1c1wiXSA9IGAke1NFQVJDSEJBUl9CT1JERVJfUkFESVVTfSAwIDAgJHtTRUFSQ0hCQVJfQk9SREVSX1JBRElVU31gO1xuICAgICAgaWYgKCFoYXNMZWZ0SWNvbikge1xuICAgICAgICBzdHlsZXNbXCJwYWRkaW5nLWxlZnRcIl0gPSBTRUFSQ0hCQVJfUEFERElOR19MRUZUO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5hcHBlYXJhbmNlKCkgPT09IFwic2Vjb25kYXJ5XCIpIHtcbiAgICAgIHN0eWxlc1tcImJvcmRlci1yYWRpdXNcIl0gPSBTRUFSQ0hCQVJfQk9SREVSX1JBRElVUztcbiAgICB9XG5cbiAgICByZXR1cm4gc3R5bGVzO1xuICB9KTtcblxuICByZWFkb25seSBzZWFyY2hCdXR0b25TdHlsZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc3R5bGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgd2lkdGg6IFNFQVJDSEJBUl9CVVRUT05fV0lEVEgsXG4gICAgICBcImJvcmRlci1yYWRpdXNcIjogYDAgJHtTRUFSQ0hCQVJfQk9SREVSX1JBRElVU30gJHtTRUFSQ0hCQVJfQk9SREVSX1JBRElVU30gMGAsXG4gICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgIFwianVzdGlmeS1jb250ZW50XCI6IFwiY2VudGVyXCIsXG4gICAgfTtcbiAgICBpZiAodGhpcy5jb21wYWN0U3BhY2luZygpKSB7XG4gICAgICBzdHlsZXNbXCJoZWlnaHRcIl0gPSBTRUFSQ0hCQVJfQlVUVE9OX0hFSUdIVF9DT01QQUNUO1xuICAgIH1cbiAgICByZXR1cm4gc3R5bGVzO1xuICB9KTtcblxuICBoYW5kbGVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBoYW5kbGVTZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hFdmVudC5lbWl0KHRoaXMudmFsdWUoKSk7XG4gIH1cblxuICBoYW5kbGVFbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgPT09IEVOVEVSX0tFWSkge1xuICAgICAgdGhpcy5oYW5kbGVTZWFyY2goKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVDbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoXCJcIik7XG4gICAgdGhpcy5jbGVhci5lbWl0KCk7XG4gIH1cblxuICBoYW5kbGVGb2N1c0luKCk6IHZvaWQge1xuICAgIHRoaXMuaGFzRm9jdXNXaXRoaW4uc2V0KHRydWUpO1xuICB9XG5cbiAgaGFuZGxlRm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0ID0gZXZlbnQucmVsYXRlZFRhcmdldCBhcyBOb2RlIHwgbnVsbDtcbiAgICBjb25zdCBjdXJyZW50VGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBOb2RlO1xuICAgIGlmIChuZXh0ICYmIGN1cnJlbnRUYXJnZXQuY29udGFpbnMobmV4dCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5oYXNGb2N1c1dpdGhpbi5zZXQoZmFsc2UpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2VhcmNoYmFyLWNvbnRhaW5lclwiIHJvbGU9XCJzZWFyY2hcIiBbbmdDbGFzc109XCJhcHBlYXJhbmNlKClcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwidGV4dC1pbnB1dC13cmFwcGVyXCJcbiAgICBbYXR0ci5kYXRhLWRpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgIChmb2N1c2luKT1cImhhbmRsZUZvY3VzSW4oKVwiXG4gICAgKGZvY3Vzb3V0KT1cImhhbmRsZUZvY3VzT3V0KCRldmVudClcIlxuICA+XG4gICAgPHJ0ZS1iYXNlLXRleHQtaW5wdXRcbiAgICAgIHJpZ2h0SWNvbkFjdGlvbj1cImNsZWFuXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBbaWRdPVwiaWQoKSA/PyAnJ1wiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICBbdmFsdWVdPVwidmFsdWUoKVwiXG4gICAgICBbc2hvd1JpZ2h0SWNvbl09XCJzaG93UmVzZXRCdXR0b24oKVwiXG4gICAgICBbYXNzaXN0aXZlVGV4dExhYmVsXT1cImFzc2lzdGl2ZVRleHQoKVwiXG4gICAgICBbY29tcGFjdFNwYWNpbmddPVwiY29tcGFjdFNwYWNpbmcoKVwiXG4gICAgICBbbGVmdEljb25dPVwiYXBwZWFyYW5jZUNvbmZpZygpLnNob3dMZWZ0SWNvbiA/ICdzZWFyY2gnIDogbnVsbFwiXG4gICAgICBbY3VzdG9tU3R5bGVdPVwidGV4dElucHV0U3R5bGVzKClcIlxuICAgICAgW2hpZ2hsaWdodGVkXT1cImhhc0ZvY3VzV2l0aGluKClcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChyaWdodEljb25DbGljayk9XCJoYW5kbGVDbGVhcigpXCJcbiAgICA+XG4gICAgICBAaWYgKGFwcGVhcmFuY2VDb25maWcoKS5zaG93U2VhcmNoQnV0dG9uKSB7XG4gICAgICAgIDxydGUtaWNvbi1idXR0b25cbiAgICAgICAgICBiYXNlVGV4dElucHV0UmlnaHRTbG90XG4gICAgICAgICAgbmFtZT1cInNlYXJjaFwiXG4gICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICBhcHBlYXJhbmNlPVwiZmlsbGVkXCJcbiAgICAgICAgICBjbGFzcz1cInNlYXJjaC1idXR0b25cIlxuICAgICAgICAgIFthcmlhTGFiZWxdPVwibGFiZWwoKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAgIFtjb21wYWN0U3BhY2luZ109XCJjb21wYWN0U3BhY2luZygpXCJcbiAgICAgICAgICBbY3VzdG9tU3R5bGVdPVwic2VhcmNoQnV0dG9uU3R5bGVzKClcIlxuICAgICAgICAgIChjbGlja0V2ZW50KT1cImhhbmRsZVNlYXJjaCgpXCJcbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICA8L3J0ZS1iYXNlLXRleHQtaW5wdXQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { CommonModule } from "@angular/common";
|
|
2
2
|
import { ChangeDetectionStrategy, Component, input, output, viewChildren, computed, signal, } from "@angular/core";
|
|
3
|
+
import { shouldDisplayBadge as CoreShouldDisplayBadge } from "@design-system-rte/core/components/badge/badge.utils";
|
|
3
4
|
import { getSegmentPosition, focusNextNotSegmentElement, focusPreviousNotSegmentElement, focusNextSegmentElement, focusPreviousSegmentElement, isValidSegmentedControlOptions, } from "@design-system-rte/core/components/segmented-control/segmented-control-utils";
|
|
4
5
|
import { FOCUSABLE_ELEMENTS_QUERY } from "@design-system-rte/core/constants/dom/dom.constants";
|
|
5
6
|
import { ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ENTER_KEY, SPACE_KEY, TAB_KEY, } from "@design-system-rte/core/constants/keyboard/keyboard.constants";
|
|
7
|
+
import { BadgeComponent } from "../badge/badge.component";
|
|
6
8
|
import { IconComponent } from "../icon/icon.component";
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
8
10
|
import * as i1 from "@angular/common";
|
|
@@ -50,6 +52,14 @@ export class SegmentedControlComponent {
|
|
|
50
52
|
segmentElement.nativeElement.addEventListener("focus", this.focusCurrentSegmentElement.bind(this));
|
|
51
53
|
});
|
|
52
54
|
}
|
|
55
|
+
shouldDisplayBadge(option) {
|
|
56
|
+
return CoreShouldDisplayBadge({
|
|
57
|
+
showBadge: !!option.showBadge,
|
|
58
|
+
badgeContent: option.badgeContent,
|
|
59
|
+
badgeCount: option.badgeCount,
|
|
60
|
+
badgeIcon: option.badgeIcon,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
53
63
|
selectSegment(id) {
|
|
54
64
|
this.change.emit(id);
|
|
55
65
|
}
|
|
@@ -114,10 +124,10 @@ export class SegmentedControlComponent {
|
|
|
114
124
|
}
|
|
115
125
|
}
|
|
116
126
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SegmentedControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
117
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: SegmentedControlComponent, isStandalone: true, selector: "rte-segmented-control", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedSegment: { classPropertyName: "selectedSegment", publicName: "selectedSegment", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, viewQueries: [{ propertyName: "segmentRefs", predicate: ["segment"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"isValidOptions()\" class=\"rte-segmented-control\" role=\"radiogroup\" [attr.aria-label]=\"ariaLabel()\">\n <span class=\"rte-segment-selected-indicator\" [ngStyle]=\"segmentSelectedIndicatorStyle()\"></span>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <div class=\"rte-segment-container\" [attr.data-position]=\"getSegmentPosition(idx)\">\n <div\n
|
|
127
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: SegmentedControlComponent, isStandalone: true, selector: "rte-segmented-control", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedSegment: { classPropertyName: "selectedSegment", publicName: "selectedSegment", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, viewQueries: [{ propertyName: "segmentRefs", predicate: ["segment"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"isValidOptions()\" class=\"rte-segmented-control\" role=\"radiogroup\" [attr.aria-label]=\"ariaLabel()\">\n <span class=\"rte-segment-selected-indicator\" [ngStyle]=\"segmentSelectedIndicatorStyle()\"></span>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <div class=\"rte-segment-container\" [attr.data-position]=\"getSegmentPosition(idx)\">\n <div\n #segment\n role=\"radio\"\n class=\"rte-segment\"\n tabindex=\"0\"\n [attr.data-id]=\"option.id\"\n [attr.data-segment-type]=\"option.icon ? 'icon' : 'label'\"\n [class.selected]=\"isSegmentSelected(option.id)\"\n [attr.aria-checked]=\"isSegmentSelected(option.id)\"\n [attr.aria-label]=\"option.label\"\n (click)=\"selectSegment(option.id)\"\n (keydown)=\"handleKeyDown($event)\"\n (keyup)=\"handleKeyUp($event)\"\n >\n <rte-icon *ngIf=\"isSegmentSelected(option.id)\" name=\"check-small\" class=\"rte-selected-icon\" [size]=\"24\" />\n <div class=\"rte-segment-content\">\n <ng-container *ngIf=\"option.icon; else label\">\n <rte-icon\n [name]=\"option.icon\"\n [size]=\"24\"\n [appearance]=\"isSegmentSelected(option.id) ? 'filled' : 'outlined'\"\n ></rte-icon>\n </ng-container>\n <ng-template #label>\n <span class=\"rte-segment-label\">{{ option.label }}</span>\n </ng-template>\n </div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge(option)\"\n [count]=\"option.badgeCount\"\n [badgeContent]=\"option.badgeContent!\"\n [icon]=\"option.badgeIcon!\"\n [badgeType]=\"option.badgeType!\"\n [simpleBadge]=\"true\"\n [badgeSize]=\"option.badgeSize!\"\n ></rte-badge>\n </div>\n </div>\n </ng-container>\n</div>\n", styles: [".rte-segmented-control{display:flex;min-width:168px;max-width:720px;height:48px}.rte-segmented-control[data-number-of-segments=\"3\"]{min-width:256px}.rte-segment-selected-indicator{position:absolute;top:4px;height:40px;background:var(--background-default);border-radius:999px;transition:left .2s ease-out,width .2s ease-out}.rte-segment-container{display:flex;border-top:1px solid var(--border-inverse);border-bottom:1px solid var(--border-inverse);background:var(--background-brand-default);padding:4px 2px;align-items:center;flex:1 0 0;overflow:hidden}.rte-segment-container[data-position=left]{border-radius:999px 0 0 999px;border-left:1px solid var(--border-inverse);background:var(--background-brand-default);padding-left:4px}.rte-segment-container[data-position=right]{border-radius:0 999px 999px 0;border-right:1px solid var(--border-inverse);background:var(--background-brand-default);padding-right:4px}.rte-segment{display:flex;padding:6px 8px;align-items:center;border-radius:999px;color:var(--content-primary-inverse);flex:1 1 auto;overflow:hidden;width:100%;z-index:0}.rte-segment:focus-visible{outline:1px solid var(--border-inverse);outline-offset:-2px}.rte-segment.selected{transition:color .2s ease-out;color:var(--content-brand-default)}.rte-segment.selected:focus-visible{outline:1px solid var(--border-brand-focused)}.rte-segment:hover:not(.selected){background:var(--background-brand-hover);cursor:pointer}.rte-segment[data-segment-type=icon]{padding:8px}.rte-segment .rte-segment-content{display:flex;align-items:center;justify-content:center;width:100%;overflow:hidden}.rte-segment .rte-segment-content .rte-segment-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;padding:0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-segment .rte-selected-icon{min-width:24px;min-height:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
118
128
|
}
|
|
119
129
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SegmentedControlComponent, decorators: [{
|
|
120
130
|
type: Component,
|
|
121
|
-
args: [{ selector: "rte-segmented-control", imports: [CommonModule, IconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"isValidOptions()\" class=\"rte-segmented-control\" role=\"radiogroup\" [attr.aria-label]=\"ariaLabel()\">\n <span class=\"rte-segment-selected-indicator\" [ngStyle]=\"segmentSelectedIndicatorStyle()\"></span>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <div class=\"rte-segment-container\" [attr.data-position]=\"getSegmentPosition(idx)\">\n <div\n
|
|
131
|
+
args: [{ selector: "rte-segmented-control", imports: [CommonModule, IconComponent, BadgeComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"isValidOptions()\" class=\"rte-segmented-control\" role=\"radiogroup\" [attr.aria-label]=\"ariaLabel()\">\n <span class=\"rte-segment-selected-indicator\" [ngStyle]=\"segmentSelectedIndicatorStyle()\"></span>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <div class=\"rte-segment-container\" [attr.data-position]=\"getSegmentPosition(idx)\">\n <div\n #segment\n role=\"radio\"\n class=\"rte-segment\"\n tabindex=\"0\"\n [attr.data-id]=\"option.id\"\n [attr.data-segment-type]=\"option.icon ? 'icon' : 'label'\"\n [class.selected]=\"isSegmentSelected(option.id)\"\n [attr.aria-checked]=\"isSegmentSelected(option.id)\"\n [attr.aria-label]=\"option.label\"\n (click)=\"selectSegment(option.id)\"\n (keydown)=\"handleKeyDown($event)\"\n (keyup)=\"handleKeyUp($event)\"\n >\n <rte-icon *ngIf=\"isSegmentSelected(option.id)\" name=\"check-small\" class=\"rte-selected-icon\" [size]=\"24\" />\n <div class=\"rte-segment-content\">\n <ng-container *ngIf=\"option.icon; else label\">\n <rte-icon\n [name]=\"option.icon\"\n [size]=\"24\"\n [appearance]=\"isSegmentSelected(option.id) ? 'filled' : 'outlined'\"\n ></rte-icon>\n </ng-container>\n <ng-template #label>\n <span class=\"rte-segment-label\">{{ option.label }}</span>\n </ng-template>\n </div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge(option)\"\n [count]=\"option.badgeCount\"\n [badgeContent]=\"option.badgeContent!\"\n [icon]=\"option.badgeIcon!\"\n [badgeType]=\"option.badgeType!\"\n [simpleBadge]=\"true\"\n [badgeSize]=\"option.badgeSize!\"\n ></rte-badge>\n </div>\n </div>\n </ng-container>\n</div>\n", styles: [".rte-segmented-control{display:flex;min-width:168px;max-width:720px;height:48px}.rte-segmented-control[data-number-of-segments=\"3\"]{min-width:256px}.rte-segment-selected-indicator{position:absolute;top:4px;height:40px;background:var(--background-default);border-radius:999px;transition:left .2s ease-out,width .2s ease-out}.rte-segment-container{display:flex;border-top:1px solid var(--border-inverse);border-bottom:1px solid var(--border-inverse);background:var(--background-brand-default);padding:4px 2px;align-items:center;flex:1 0 0;overflow:hidden}.rte-segment-container[data-position=left]{border-radius:999px 0 0 999px;border-left:1px solid var(--border-inverse);background:var(--background-brand-default);padding-left:4px}.rte-segment-container[data-position=right]{border-radius:0 999px 999px 0;border-right:1px solid var(--border-inverse);background:var(--background-brand-default);padding-right:4px}.rte-segment{display:flex;padding:6px 8px;align-items:center;border-radius:999px;color:var(--content-primary-inverse);flex:1 1 auto;overflow:hidden;width:100%;z-index:0}.rte-segment:focus-visible{outline:1px solid var(--border-inverse);outline-offset:-2px}.rte-segment.selected{transition:color .2s ease-out;color:var(--content-brand-default)}.rte-segment.selected:focus-visible{outline:1px solid var(--border-brand-focused)}.rte-segment:hover:not(.selected){background:var(--background-brand-hover);cursor:pointer}.rte-segment[data-segment-type=icon]{padding:8px}.rte-segment .rte-segment-content{display:flex;align-items:center;justify-content:center;width:100%;overflow:hidden}.rte-segment .rte-segment-content .rte-segment-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;padding:0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-segment .rte-selected-icon{min-width:24px;min-height:24px}\n"] }]
|
|
122
132
|
}] });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUdaLFFBQVEsRUFDUixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIsOEJBQThCLEVBQzlCLHVCQUF1QixFQUN2QiwyQkFBMkIsRUFDM0IsOEJBQThCLEdBQy9CLE1BQU0sOEVBQThFLENBQUM7QUFLdEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUNMLGNBQWMsRUFDZCxlQUFlLEVBQ2YsU0FBUyxFQUNULFNBQVMsRUFDVCxPQUFPLEdBQ1IsTUFBTSwrREFBK0QsQ0FBQztBQUV2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQUV2RCxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUM7QUFDbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztBQVUzQyxNQUFNLE9BQU8seUJBQXlCO0lBUnRDO1FBU1csWUFBTyxHQUFHLEtBQUssQ0FBbUIsRUFBRSxDQUFDLENBQUM7UUFDdEMs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QUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFRTywwQkFBMEI7UUFDaEMsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQy9CLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ2pFLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FDckQsRUFBRSxhQUFhLENBQUM7WUFDakIsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO2dCQUMzQixzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNoRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBaklVLHlCQUF5QjttR0FBekIseUJBQXlCLHV5QkNqRHRDLHkrQ0FtQ00sb3FFRFFNLFlBQVkscVZBQUUsYUFBYTs7NEZBTTFCLHlCQUF5QjtrQkFSckMsU0FBUzsrQkFDRSx1QkFBdUIsV0FDeEIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLGNBQzFCLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHZpZXdDaGlsZHJlbixcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgT25EZXN0cm95LFxuICBjb21wdXRlZCxcbiAgc2lnbmFsLFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBnZXRTZWdtZW50UG9zaXRpb24sXG4gIGZvY3VzTmV4dE5vdFNlZ21lbnRFbGVtZW50LFxuICBmb2N1c1ByZXZpb3VzTm90U2VnbWVudEVsZW1lbnQsXG4gIGZvY3VzTmV4dFNlZ21lbnRFbGVtZW50LFxuICBmb2N1c1ByZXZpb3VzU2VnbWVudEVsZW1lbnQsXG4gIGlzVmFsaWRTZWdtZW50ZWRDb250cm9sT3B0aW9ucyxcbn0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbXBvbmVudHMvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wtdXRpbHNcIjtcbmltcG9ydCB7XG4gIFNlZ21lbnRPcHRpb25zLFxuICBTZWdtZW50UHJvcHMsXG59IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3NlZ21lbnRlZC1jb250cm9sL3NlZ21lbnRlZC1jb250cm9sLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRk9DVVNBQkxFX0VMRU1FTlRTX1FVRVJZIH0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbnN0YW50cy9kb20vZG9tLmNvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgQVJST1dfTEVGVF9LRVksXG4gIEFSUk9XX1JJR0hUX0tFWSxcbiAgRU5URVJfS0VZLFxuICBTUEFDRV9LRVksXG4gIFRBQl9LRVksXG59IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb25zdGFudHMva2V5Ym9hcmQva2V5Ym9hcmQuY29uc3RhbnRzXCI7XG5cbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi9pY29uLmNvbXBvbmVudFwiO1xuXG5jb25zdCBzZWdtZW50Q2xhc3MgPSBcInJ0ZS1zZWdtZW50XCI7XG5jb25zdCBzZWdtZW50U2VsZWN0b3IgPSBgLiR7c2VnbWVudENsYXNzfWA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJydGUtc2VnbWVudGVkLWNvbnRyb2xcIixcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbkNvbXBvbmVudF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmw6IFwiLi9zZWdtZW50ZWQtY29udHJvbC5jb21wb25lbnQuc2Nzc1wiLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2VnbWVudGVkQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgb3B0aW9ucyA9IGlucHV0PFNlZ21lbnRPcHRpb25zW10+KFtdKTtcbiAgcmVhZG9ubHkgY2hhbmdlID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgc2VsZWN0ZWRTZWdtZW50ID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBhcmlhTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGFyaWFMYWJlbGxlZEJ5ID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIHJlYWRvbmx5IHNlZ21lbnRSZWZzID0gdmlld0NoaWxkcmVuPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PihcInNlZ21lbnRcIik7XG5cbiAgcmVhZG9ubHkgc2xpZGVyTGVmdCA9IHNpZ25hbCgwKTtcbiAgcmVhZG9ubHkgc2xpZGVyV2lkdGggPSBzaWduYWwoMCk7XG4gIHJlYWRvbmx5IHNsaWRlclRvcCA9IHNpZ25hbCgwKTtcblxuICByZWFkb25seSBzZWdtZW50U2VsZWN0ZWRJbmRpY2F0b3JTdHlsZSA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgbGVmdDogYCR7dGhpcy5zbGlkZXJMZWZ0KCl9cHhgLFxuICAgIHRvcDogYCR7dGhpcy5zbGlkZXJUb3AoKX1weGAsXG4gICAgd2lkdGg6IGAke3RoaXMuc2xpZGVyV2lkdGgoKX1weGAsXG4gIH0pKTtcblxuICByZWFkb25seSBpc1ZhbGlkT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IGlzVmFsaWRTZWdtZW50ZWRDb250cm9sT3B0aW9ucyh0aGlzLm9wdGlvbnMoKSkpO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1tcInNlbGVjdGVkU2VnbWVudFwiXSkge1xuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFNlZ21lbnRJbmRpY2F0b3IoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZFNlZ21lbnRJbmRpY2F0b3IoKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aGlzLnVwZGF0ZVNlbGVjdGVkU2VnbWVudEluZGljYXRvci5iaW5kKHRoaXMpKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5vbkdsb2JhbEtleURvd24uYmluZCh0aGlzKSk7XG5cbiAgICB0aGlzLnNlZ21lbnRSZWZzKCkuZm9yRWFjaCgoc2VnbWVudEVsZW1lbnQpID0+IHtcbiAgICAgIHNlZ21lbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsIHRoaXMuZm9jdXNDdXJyZW50U2VnbWVudEVsZW1lbnQuYmluZCh0aGlzKSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aGlzLnVwZGF0ZVNlbGVjdGVkU2VnbWVudEluZGljYXRvci5iaW5kKHRoaXMpKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5vbkdsb2JhbEtleURvd24uYmluZCh0aGlzKSk7XG5cbiAgICB0aGlzLnNlZ21lbnRSZWZzKCkuZm9yRWFjaCgoc2VnbWVudEVsZW1lbnQpID0+IHtcbiAgICAgIHNlZ21lbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsIHRoaXMuZm9jdXNDdXJyZW50U2VnbWVudEVsZW1lbnQuYmluZCh0aGlzKSk7XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RTZWdtZW50KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KGlkKTtcbiAgfVxuXG4gIGlzU2VnbWVudFNlbGVjdGVkKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFNlZ21lbnQoKSA9PT0gaWQ7XG4gIH1cblxuICBoYW5kbGVLZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gQVJST1dfUklHSFRfS0VZIHx8IGV2ZW50LmtleSA9PT0gQVJST1dfTEVGVF9LRVkpIHtcbiAgICAgIGNvbnN0IGFsbFNlZ21lbnRFbGVtZW50cyA9XG4gICAgICAgIEFycmF5LmZyb20oXG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8ucGFyZW50RWxlbWVudD8ucGFyZW50RWxlbWVudD8ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgIHNlZ21lbnRTZWxlY3RvcixcbiAgICAgICAgICApIGFzIE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+LFxuICAgICAgICApIHx8IFtdO1xuXG4gICAgICBjb25zdCBjdXJyZW50QWN0aXZlU2VnbWVudEVsZW1lbnRJbmRleCA9IEFycmF5LmZyb20oYWxsU2VnbWVudEVsZW1lbnRzKS5maW5kSW5kZXgoXG4gICAgICAgIChlbGVtZW50KSA9PiBlbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50LFxuICAgICAgKTtcblxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gQVJST1dfUklHSFRfS0VZKSB7XG4gICAgICAgIGZvY3VzTmV4dFNlZ21lbnRFbGVtZW50KGN1cnJlbnRBY3RpdmVTZWdtZW50RWxlbWVudEluZGV4LCBhbGxTZWdtZW50RWxlbWVudHMpO1xuICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IEFSUk9XX0xFRlRfS0VZKSB7XG4gICAgICAgIGZvY3VzUHJldmlvdXNTZWdtZW50RWxlbWVudChjdXJyZW50QWN0aXZlU2VnbWVudEVsZW1lbnRJbmRleCwgYWxsU2VnbWVudEVsZW1lbnRzKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gU1BBQ0VfS0VZIHx8IGV2ZW50LmtleSA9PT0gRU5URVJfS0VZKSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBkYXRhSWQgPSB0YXJnZXQuZ2V0QXR0cmlidXRlKFwiZGF0YS1pZFwiKTtcbiAgICAgIHRoaXMuc2VsZWN0U2VnbWVudChkYXRhSWQgfHwgXCJcIik7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09IFRBQl9LRVkgfHwgZXZlbnQua2V5ID09PSBTUEFDRV9LRVkgfHwgZXZlbnQua2V5ID09PSBFTlRFUl9LRVkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChldmVudC5rZXkgPT09IFRBQl9LRVkpIHtcbiAgICAgIGNvbnN0IGFsbEZvY3VzYWJsZUVsZW1lbnRzID0gQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKEZPQ1VTQUJMRV9FTEVNRU5UU19RVUVSWSkpIGFzIEhUTUxFbGVtZW50W107XG4gICAgICBjb25zdCBjdXJyZW50QWN0aXZlRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBhbGxGb2N1c2FibGVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRBY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcblxuICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgIGZvY3VzUHJldmlvdXNOb3RTZWdtZW50RWxlbWVudChjdXJyZW50SW5kZXgsIGFsbEZvY3VzYWJsZUVsZW1lbnRzLCBzZWdtZW50Q2xhc3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9jdXNOZXh0Tm90U2VnbWVudEVsZW1lbnQoY3VycmVudEluZGV4LCBhbGxGb2N1c2FibGVFbGVtZW50cywgc2VnbWVudENsYXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRTZWdtZW50UG9zaXRpb24oaW5kZXg6IG51bWJlcik6IFNlZ21lbnRQcm9wc1tcInBvc2l0aW9uXCJdIHtcbiAgICByZXR1cm4gZ2V0U2VnbWVudFBvc2l0aW9uKGluZGV4LCB0aGlzLm9wdGlvbnMoKS5sZW5ndGgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZFNlZ21lbnRJbmRpY2F0b3IoKSB7XG4gICAgY29uc3QgaWR4ID0gdGhpcy5vcHRpb25zKCkuZmluZEluZGV4KChvcHQpID0+IG9wdC5pZCA9PT0gdGhpcy5zZWxlY3RlZFNlZ21lbnQoKSk7XG4gICAgY29uc3Qgc2VnbWVudCA9IHRoaXMuc2VnbWVudFJlZnMoKVtpZHhdPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKHNlZ21lbnQpIHtcbiAgICAgIHRoaXMuc2xpZGVyV2lkdGguc2V0KHNlZ21lbnQub2Zmc2V0V2lkdGgpO1xuICAgICAgdGhpcy5zbGlkZXJUb3Auc2V0KHNlZ21lbnQub2Zmc2V0VG9wKTtcbiAgICAgIHRoaXMuc2xpZGVyTGVmdC5zZXQoc2VnbWVudC5vZmZzZXRMZWZ0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxhc3RLZXlkb3duOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIG9uR2xvYmFsS2V5RG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgIHRoaXMubGFzdEtleWRvd24gPSBldmVudC5rZXk7XG4gIH07XG5cbiAgcHJpdmF0ZSBmb2N1c0N1cnJlbnRTZWdtZW50RWxlbWVudCgpIHtcbiAgICBpZiAodGhpcy5sYXN0S2V5ZG93biA9PT0gXCJUYWJcIikge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRTZWdtZW50RWxlbWVudCA9IHRoaXMuc2VnbWVudFJlZnMoKS5maW5kKChzZWdtZW50KSA9PlxuICAgICAgICBzZWdtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwic2VsZWN0ZWRcIiksXG4gICAgICApPy5uYXRpdmVFbGVtZW50O1xuICAgICAgaWYgKHNlbGVjdGVkU2VnbWVudEVsZW1lbnQpIHtcbiAgICAgICAgc2VsZWN0ZWRTZWdtZW50RWxlbWVudC5mb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWdtZW50UmVmcygpWzBdPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImlzVmFsaWRPcHRpb25zKClcIiBjbGFzcz1cInJ0ZS1zZWdtZW50ZWQtY29udHJvbFwiIHJvbGU9XCJyYWRpb2dyb3VwXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKVwiPlxuICA8c3BhbiBjbGFzcz1cInJ0ZS1zZWdtZW50LXNlbGVjdGVkLWluZGljYXRvclwiIFtuZ1N0eWxlXT1cInNlZ21lbnRTZWxlY3RlZEluZGljYXRvclN0eWxlKClcIj48L3NwYW4+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zKCk7IGxldCBpZHggPSBpbmRleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJydGUtc2VnbWVudC1jb250YWluZXJcIiBbYXR0ci5kYXRhLXBvc2l0aW9uXT1cImdldFNlZ21lbnRQb3NpdGlvbihpZHgpXCI+XG4gICAgICA8ZGl2XG4gICAgICAjc2VnbWVudFxuICAgICAgcm9sZT1cInJhZGlvXCJcbiAgICAgIGNsYXNzPVwicnRlLXNlZ21lbnRcIlxuICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgIFthdHRyLmRhdGEtaWRdPVwib3B0aW9uLmlkXCJcbiAgICAgIFthdHRyLmRhdGEtc2VnbWVudC10eXBlXT1cIm9wdGlvbi5pY29uID8gICdpY29uJyA6ICdsYWJlbCdcIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzU2VnbWVudFNlbGVjdGVkKG9wdGlvbi5pZClcIlxuICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cImlzU2VnbWVudFNlbGVjdGVkKG9wdGlvbi5pZClcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJvcHRpb24ubGFiZWxcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdFNlZ21lbnQob3B0aW9uLmlkKVwiXG4gICAgICAoa2V5ZG93bik9XCJoYW5kbGVLZXlEb3duKCRldmVudClcIlxuICAgICAgKGtleXVwKT1cImhhbmRsZUtleVVwKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPHJ0ZS1pY29uXG4gICAgICAgICAgKm5nSWY9XCJpc1NlZ21lbnRTZWxlY3RlZChvcHRpb24uaWQpXCJcbiAgICAgICAgICBuYW1lPVwiY2hlY2stc21hbGxcIlxuICAgICAgICAgIGNsYXNzPVwicnRlLXNlbGVjdGVkLWljb25cIlxuICAgICAgICAgIFtzaXplXT1cIjI0XCJcbiAgICAgIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwicnRlLXNlZ21lbnQtY29udGVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uLmljb247IGVsc2UgbGFiZWxcIj5cbiAgICAgICAgICA8cnRlLWljb24gW25hbWVdPVwib3B0aW9uLmljb25cIiBbc2l6ZV09XCIyNFwiIFthcHBlYXJhbmNlXT1cImlzU2VnbWVudFNlbGVjdGVkKG9wdGlvbi5pZCkgPyAnZmlsbGVkJyA6ICdvdXRsaW5lZCcgXCI+PC9ydGUtaWNvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbGFiZWw+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJydGUtc2VnbWVudC1sYWJlbFwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj4iXX0=
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUdaLFFBQVEsRUFDUixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixJQUFJLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDcEgsT0FBTyxFQUNMLGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIsOEJBQThCLEVBQzlCLHVCQUF1QixFQUN2QiwyQkFBMkIsRUFDM0IsOEJBQThCLEdBQy9CLE1BQU0sOEVBQThFLENBQUM7QUFLdEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUNMLGNBQWMsRUFDZCxlQUFlLEVBQ2YsU0FBUyxFQUNULFNBQVMsRUFDVCxPQUFPLEdBQ1IsTUFBTSwrREFBK0QsQ0FBQztBQUV2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFFdkQsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDO0FBQ25DLE1BQU0sZUFBZSxH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MUlVLHlCQUF5QjttR0FBekIseUJBQXlCLHV5QkNuRHRDLDAzREE0Q0EseThERENZLFlBQVkscVZBQUUsYUFBYSxpSEFBRSxjQUFjOzs0RkFNMUMseUJBQXlCO2tCQVJyQyxTQUFTOytCQUNFLHVCQUF1QixXQUN4QixDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDLGNBQzFDLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHZpZXdDaGlsZHJlbixcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgT25EZXN0cm95LFxuICBjb21wdXRlZCxcbiAgc2lnbmFsLFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBzaG91bGREaXNwbGF5QmFkZ2UgYXMgQ29yZVNob3VsZERpc3BsYXlCYWRnZSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL2JhZGdlL2JhZGdlLnV0aWxzXCI7XG5pbXBvcnQge1xuICBnZXRTZWdtZW50UG9zaXRpb24sXG4gIGZvY3VzTmV4dE5vdFNlZ21lbnRFbGVtZW50LFxuICBmb2N1c1ByZXZpb3VzTm90U2VnbWVudEVsZW1lbnQsXG4gIGZvY3VzTmV4dFNlZ21lbnRFbGVtZW50LFxuICBmb2N1c1ByZXZpb3VzU2VnbWVudEVsZW1lbnQsXG4gIGlzVmFsaWRTZWdtZW50ZWRDb250cm9sT3B0aW9ucyxcbn0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbXBvbmVudHMvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wtdXRpbHNcIjtcbmltcG9ydCB7XG4gIFNlZ21lbnRPcHRpb25zLFxuICBTZWdtZW50UHJvcHMsXG59IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3NlZ21lbnRlZC1jb250cm9sL3NlZ21lbnRlZC1jb250cm9sLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRk9DVVNBQkxFX0VMRU1FTlRTX1FVRVJZIH0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbnN0YW50cy9kb20vZG9tLmNvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgQVJST1dfTEVGVF9LRVksXG4gIEFSUk9XX1JJR0hUX0tFWSxcbiAgRU5URVJfS0VZLFxuICBTUEFDRV9LRVksXG4gIFRBQl9LRVksXG59IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb25zdGFudHMva2V5Ym9hcmQva2V5Ym9hcmQuY29uc3RhbnRzXCI7XG5cbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50IH0gZnJvbSBcIi4uL2JhZGdlL2JhZGdlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9pY29uL2ljb24uY29tcG9uZW50XCI7XG5cbmNvbnN0IHNlZ21lbnRDbGFzcyA9IFwicnRlLXNlZ21lbnRcIjtcbmNvbnN0IHNlZ21lbnRTZWxlY3RvciA9IGAuJHtzZWdtZW50Q2xhc3N9YDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInJ0ZS1zZWdtZW50ZWQtY29udHJvbFwiLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uQ29tcG9uZW50LCBCYWRnZUNvbXBvbmVudF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmw6IFwiLi9zZWdtZW50ZWQtY29udHJvbC5jb21wb25lbnQuc2Nzc1wiLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2VnbWVudGVkQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgb3B0aW9ucyA9IGlucHV0PFNlZ21lbnRPcHRpb25zW10+KFtdKTtcbiAgcmVhZG9ubHkgY2hhbmdlID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgc2VsZWN0ZWRTZWdtZW50ID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBhcmlhTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGFyaWFMYWJlbGxlZEJ5ID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIHJlYWRvbmx5IHNlZ21lbnRSZWZzID0gdmlld0NoaWxkcmVuPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PihcInNlZ21lbnRcIik7XG5cbiAgcmVhZG9ubHkgc2xpZGVyTGVmdCA9IHNpZ25hbCgwKTtcbiAgcmVhZG9ubHkgc2xpZGVyV2lkdGggPSBzaWduYWwoMCk7XG4gIHJlYWRvbmx5IHNsaWRlclRvcCA9IHNpZ25hbCgwKTtcblxuICByZWFkb25seSBzZWdtZW50U2VsZWN0ZWRJbmRpY2F0b3JTdHlsZSA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgbGVmdDogYCR7dGhpcy5zbGlkZXJMZWZ0KCl9cHhgLFxuICAgIHRvcDogYCR7dGhpcy5zbGlkZXJUb3AoKX1weGAsXG4gICAgd2lkdGg6IGAke3RoaXMuc2xpZGVyV2lkdGgoKX1weGAsXG4gIH0pKTtcblxuICByZWFkb25seSBpc1ZhbGlkT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IGlzVmFsaWRTZWdtZW50ZWRDb250cm9sT3B0aW9ucyh0aGlzLm9wdGlvbnMoKSkpO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1tcInNlbGVjdGVkU2VnbWVudFwiXSkge1xuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFNlZ21lbnRJbmRpY2F0b3IoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZFNlZ21lbnRJbmRpY2F0b3IoKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aGlzLnVwZGF0ZVNlbGVjdGVkU2VnbWVudEluZGljYXRvci5iaW5kKHRoaXMpKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5vbkdsb2JhbEtleURvd24uYmluZCh0aGlzKSk7XG5cbiAgICB0aGlzLnNlZ21lbnRSZWZzKCkuZm9yRWFjaCgoc2VnbWVudEVsZW1lbnQpID0+IHtcbiAgICAgIHNlZ21lbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsIHRoaXMuZm9jdXNDdXJyZW50U2VnbWVudEVsZW1lbnQuYmluZCh0aGlzKSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aGlzLnVwZGF0ZVNlbGVjdGVkU2VnbWVudEluZGljYXRvci5iaW5kKHRoaXMpKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5vbkdsb2JhbEtleURvd24uYmluZCh0aGlzKSk7XG5cbiAgICB0aGlzLnNlZ21lbnRSZWZzKCkuZm9yRWFjaCgoc2VnbWVudEVsZW1lbnQpID0+IHtcbiAgICAgIHNlZ21lbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsIHRoaXMuZm9jdXNDdXJyZW50U2VnbWVudEVsZW1lbnQuYmluZCh0aGlzKSk7XG4gICAgfSk7XG4gIH1cblxuICBzaG91bGREaXNwbGF5QmFkZ2Uob3B0aW9uOiBTZWdtZW50T3B0aW9ucyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBDb3JlU2hvdWxkRGlzcGxheUJhZGdlKHtcbiAgICAgIHNob3dCYWRnZTogISFvcHRpb24uc2hvd0JhZGdlLFxuICAgICAgYmFkZ2VDb250ZW50OiBvcHRpb24uYmFkZ2VDb250ZW50LFxuICAgICAgYmFkZ2VDb3VudDogb3B0aW9uLmJhZGdlQ291bnQsXG4gICAgICBiYWRnZUljb246IG9wdGlvbi5iYWRnZUljb24sXG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RTZWdtZW50KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KGlkKTtcbiAgfVxuXG4gIGlzU2VnbWVudFNlbGVjdGVkKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFNlZ21lbnQoKSA9PT0gaWQ7XG4gIH1cblxuICBoYW5kbGVLZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gQVJST1dfUklHSFRfS0VZIHx8IGV2ZW50LmtleSA9PT0gQVJST1dfTEVGVF9LRVkpIHtcbiAgICAgIGNvbnN0IGFsbFNlZ21lbnRFbGVtZW50cyA9XG4gICAgICAgIEFycmF5LmZyb20oXG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8ucGFyZW50RWxlbWVudD8ucGFyZW50RWxlbWVudD8ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgIHNlZ21lbnRTZWxlY3RvcixcbiAgICAgICAgICApIGFzIE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+LFxuICAgICAgICApIHx8IFtdO1xuXG4gICAgICBjb25zdCBjdXJyZW50QWN0aXZlU2VnbWVudEVsZW1lbnRJbmRleCA9IEFycmF5LmZyb20oYWxsU2VnbWVudEVsZW1lbnRzKS5maW5kSW5kZXgoXG4gICAgICAgIChlbGVtZW50KSA9PiBlbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50LFxuICAgICAgKTtcblxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gQVJST1dfUklHSFRfS0VZKSB7XG4gICAgICAgIGZvY3VzTmV4dFNlZ21lbnRFbGVtZW50KGN1cnJlbnRBY3RpdmVTZWdtZW50RWxlbWVudEluZGV4LCBhbGxTZWdtZW50RWxlbWVudHMpO1xuICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IEFSUk9XX0xFRlRfS0VZKSB7XG4gICAgICAgIGZvY3VzUHJldmlvdXNTZWdtZW50RWxlbWVudChjdXJyZW50QWN0aXZlU2VnbWVudEVsZW1lbnRJbmRleCwgYWxsU2VnbWVudEVsZW1lbnRzKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gU1BBQ0VfS0VZIHx8IGV2ZW50LmtleSA9PT0gRU5URVJfS0VZKSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBkYXRhSWQgPSB0YXJnZXQuZ2V0QXR0cmlidXRlKFwiZGF0YS1pZFwiKTtcbiAgICAgIHRoaXMuc2VsZWN0U2VnbWVudChkYXRhSWQgfHwgXCJcIik7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09IFRBQl9LRVkgfHwgZXZlbnQua2V5ID09PSBTUEFDRV9LRVkgfHwgZXZlbnQua2V5ID09PSBFTlRFUl9LRVkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmIChldmVudC5rZXkgPT09IFRBQl9LRVkpIHtcbiAgICAgIGNvbnN0IGFsbEZvY3VzYWJsZUVsZW1lbnRzID0gQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKEZPQ1VTQUJMRV9FTEVNRU5UU19RVUVSWSkpIGFzIEhUTUxFbGVtZW50W107XG4gICAgICBjb25zdCBjdXJyZW50QWN0aXZlRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBhbGxGb2N1c2FibGVFbGVtZW50cy5pbmRleE9mKGN1cnJlbnRBY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcblxuICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgIGZvY3VzUHJldmlvdXNOb3RTZWdtZW50RWxlbWVudChjdXJyZW50SW5kZXgsIGFsbEZvY3VzYWJsZUVsZW1lbnRzLCBzZWdtZW50Q2xhc3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9jdXNOZXh0Tm90U2VnbWVudEVsZW1lbnQoY3VycmVudEluZGV4LCBhbGxGb2N1c2FibGVFbGVtZW50cywgc2VnbWVudENsYXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRTZWdtZW50UG9zaXRpb24oaW5kZXg6IG51bWJlcik6IFNlZ21lbnRQcm9wc1tcInBvc2l0aW9uXCJdIHtcbiAgICByZXR1cm4gZ2V0U2VnbWVudFBvc2l0aW9uKGluZGV4LCB0aGlzLm9wdGlvbnMoKS5sZW5ndGgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZFNlZ21lbnRJbmRpY2F0b3IoKSB7XG4gICAgY29uc3QgaWR4ID0gdGhpcy5vcHRpb25zKCkuZmluZEluZGV4KChvcHQpID0+IG9wdC5pZCA9PT0gdGhpcy5zZWxlY3RlZFNlZ21lbnQoKSk7XG4gICAgY29uc3Qgc2VnbWVudCA9IHRoaXMuc2VnbWVudFJlZnMoKVtpZHhdPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKHNlZ21lbnQpIHtcbiAgICAgIHRoaXMuc2xpZGVyV2lkdGguc2V0KHNlZ21lbnQub2Zmc2V0V2lkdGgpO1xuICAgICAgdGhpcy5zbGlkZXJUb3Auc2V0KHNlZ21lbnQub2Zmc2V0VG9wKTtcbiAgICAgIHRoaXMuc2xpZGVyTGVmdC5zZXQoc2VnbWVudC5vZmZzZXRMZWZ0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxhc3RLZXlkb3duOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIG9uR2xvYmFsS2V5RG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgIHRoaXMubGFzdEtleWRvd24gPSBldmVudC5rZXk7XG4gIH07XG5cbiAgcHJpdmF0ZSBmb2N1c0N1cnJlbnRTZWdtZW50RWxlbWVudCgpIHtcbiAgICBpZiAodGhpcy5sYXN0S2V5ZG93biA9PT0gXCJUYWJcIikge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRTZWdtZW50RWxlbWVudCA9IHRoaXMuc2VnbWVudFJlZnMoKS5maW5kKChzZWdtZW50KSA9PlxuICAgICAgICBzZWdtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwic2VsZWN0ZWRcIiksXG4gICAgICApPy5uYXRpdmVFbGVtZW50O1xuICAgICAgaWYgKHNlbGVjdGVkU2VnbWVudEVsZW1lbnQpIHtcbiAgICAgICAgc2VsZWN0ZWRTZWdtZW50RWxlbWVudC5mb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWdtZW50UmVmcygpWzBdPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImlzVmFsaWRPcHRpb25zKClcIiBjbGFzcz1cInJ0ZS1zZWdtZW50ZWQtY29udHJvbFwiIHJvbGU9XCJyYWRpb2dyb3VwXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKVwiPlxuICA8c3BhbiBjbGFzcz1cInJ0ZS1zZWdtZW50LXNlbGVjdGVkLWluZGljYXRvclwiIFtuZ1N0eWxlXT1cInNlZ21lbnRTZWxlY3RlZEluZGljYXRvclN0eWxlKClcIj48L3NwYW4+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zKCk7IGxldCBpZHggPSBpbmRleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJydGUtc2VnbWVudC1jb250YWluZXJcIiBbYXR0ci5kYXRhLXBvc2l0aW9uXT1cImdldFNlZ21lbnRQb3NpdGlvbihpZHgpXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICNzZWdtZW50XG4gICAgICAgIHJvbGU9XCJyYWRpb1wiXG4gICAgICAgIGNsYXNzPVwicnRlLXNlZ21lbnRcIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICBbYXR0ci5kYXRhLWlkXT1cIm9wdGlvbi5pZFwiXG4gICAgICAgIFthdHRyLmRhdGEtc2VnbWVudC10eXBlXT1cIm9wdGlvbi5pY29uID8gJ2ljb24nIDogJ2xhYmVsJ1wiXG4gICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc1NlZ21lbnRTZWxlY3RlZChvcHRpb24uaWQpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cImlzU2VnbWVudFNlbGVjdGVkKG9wdGlvbi5pZClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RTZWdtZW50KG9wdGlvbi5pZClcIlxuICAgICAgICAoa2V5ZG93bik9XCJoYW5kbGVLZXlEb3duKCRldmVudClcIlxuICAgICAgICAoa2V5dXApPVwiaGFuZGxlS2V5VXAoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxydGUtaWNvbiAqbmdJZj1cImlzU2VnbWVudFNlbGVjdGVkKG9wdGlvbi5pZClcIiBuYW1lPVwiY2hlY2stc21hbGxcIiBjbGFzcz1cInJ0ZS1zZWxlY3RlZC1pY29uXCIgW3NpemVdPVwiMjRcIiAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicnRlLXNlZ21lbnQtY29udGVudFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb24uaWNvbjsgZWxzZSBsYWJlbFwiPlxuICAgICAgICAgICAgPHJ0ZS1pY29uXG4gICAgICAgICAgICAgIFtuYW1lXT1cIm9wdGlvbi5pY29uXCJcbiAgICAgICAgICAgICAgW3NpemVdPVwiMjRcIlxuICAgICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJpc1NlZ21lbnRTZWxlY3RlZChvcHRpb24uaWQpID8gJ2ZpbGxlZCcgOiAnb3V0bGluZWQnXCJcbiAgICAgICAgICAgID48L3J0ZS1pY29uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbGFiZWw+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJ0ZS1zZWdtZW50LWxhYmVsXCI+e3sgb3B0aW9uLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cnRlLWJhZGdlXG4gICAgICAgICAgKm5nSWY9XCJzaG91bGREaXNwbGF5QmFkZ2Uob3B0aW9uKVwiXG4gICAgICAgICAgW2NvdW50XT1cIm9wdGlvbi5iYWRnZUNvdW50XCJcbiAgICAgICAgICBbYmFkZ2VDb250ZW50XT1cIm9wdGlvbi5iYWRnZUNvbnRlbnQhXCJcbiAgICAgICAgICBbaWNvbl09XCJvcHRpb24uYmFkZ2VJY29uIVwiXG4gICAgICAgICAgW2JhZGdlVHlwZV09XCJvcHRpb24uYmFkZ2VUeXBlIVwiXG4gICAgICAgICAgW3NpbXBsZUJhZGdlXT1cInRydWVcIlxuICAgICAgICAgIFtiYWRnZVNpemVdPVwib3B0aW9uLmJhZGdlU2l6ZSFcIlxuICAgICAgICA+PC9ydGUtYmFkZ2U+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|