@design-system-rte/angular 0.13.0 → 0.15.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/badge/badge.component.mjs +3 -3
- package/esm2022/lib/components/badge/badge.directive.mjs +3 -3
- package/esm2022/lib/components/banner/banner.component.mjs +5 -5
- package/esm2022/lib/components/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +38 -0
- package/esm2022/lib/components/breadcrumbs/breadcrumbs.component.mjs +12 -14
- package/esm2022/lib/components/button/button.component.mjs +14 -19
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +4 -5
- package/esm2022/lib/components/checkbox-group/checkbox-group.component.mjs +5 -6
- package/esm2022/lib/components/chip/chip.component.mjs +3 -3
- package/esm2022/lib/components/divider/divider.component.mjs +5 -5
- package/esm2022/lib/components/dropdown/dropdown-item/dropdown-item.component.mjs +41 -0
- package/esm2022/lib/components/dropdown/dropdown-menu/dropdown-menu.component.mjs +44 -0
- package/esm2022/lib/components/dropdown/dropdown-trigger/dropdown-trigger.directive.mjs +39 -0
- package/esm2022/lib/components/dropdown/dropdown.directive.mjs +147 -0
- package/esm2022/lib/components/dropdown/dropdown.module.mjs +19 -0
- package/esm2022/lib/components/dropdown/dropdown.utils.mjs +40 -0
- package/esm2022/lib/components/dropdown/index.mjs +8 -0
- package/esm2022/lib/components/grid/col/col.directive.mjs +3 -3
- package/esm2022/lib/components/grid/grid.directive.mjs +3 -3
- package/esm2022/lib/components/icon/icon.component.mjs +3 -3
- package/esm2022/lib/components/icon/icon.service.mjs +3 -3
- package/esm2022/lib/components/icon-button/icon-button.component.mjs +5 -5
- package/esm2022/lib/components/icon-button-toggle/icon-button-toggle.component.mjs +3 -3
- package/esm2022/lib/components/link/link.component.mjs +7 -5
- package/esm2022/lib/components/popover/popover.component.mjs +5 -5
- package/esm2022/lib/components/popover/popover.directive.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/segmented-control/segmented-control.component.mjs +3 -3
- package/esm2022/lib/components/split-button/split-button.component.mjs +33 -7
- package/esm2022/lib/components/switch/switch.component.mjs +3 -3
- package/esm2022/lib/components/text-input/text-input.component.mjs +3 -3
- package/esm2022/lib/components/textarea/textarea.component.mjs +4 -4
- package/esm2022/lib/components/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/lib/components/tooltip/tooltip.directive.mjs +20 -5
- package/esm2022/lib/services/dropdown.service.mjs +81 -0
- package/esm2022/lib/services/overlay.service.mjs +3 -3
- package/fesm2022/design-system-rte-angular.mjs +571 -134
- package/fesm2022/design-system-rte-angular.mjs.map +1 -1
- package/lib/components/badge/badge.directive.d.ts +1 -1
- package/lib/components/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +16 -0
- package/lib/components/breadcrumbs/breadcrumbs.component.d.ts +2 -2
- package/lib/components/button/button.component.d.ts +4 -12
- package/lib/components/checkbox/checkbox.component.d.ts +1 -2
- package/lib/components/checkbox-group/checkbox-group.component.d.ts +1 -2
- package/lib/components/chip/chip.component.d.ts +1 -1
- package/lib/components/dropdown/dropdown-item/dropdown-item.component.d.ts +25 -0
- package/lib/components/dropdown/dropdown-menu/dropdown-menu.component.d.ts +20 -0
- package/lib/components/dropdown/dropdown-trigger/dropdown-trigger.directive.d.ts +14 -0
- package/lib/components/dropdown/dropdown.directive.d.ts +49 -0
- package/lib/components/dropdown/dropdown.module.d.ts +10 -0
- package/lib/components/dropdown/dropdown.utils.d.ts +4 -0
- package/lib/components/dropdown/index.d.ts +5 -0
- package/lib/components/icon-button/icon-button.component.d.ts +2 -2
- package/lib/components/icon-button-toggle/icon-button-toggle.component.d.ts +2 -2
- package/lib/components/link/link.component.d.ts +3 -1
- package/lib/components/split-button/split-button.component.d.ts +12 -5
- package/lib/components/text-input/text-input.component.d.ts +3 -3
- package/lib/components/tooltip/tooltip.directive.d.ts +2 -1
- package/lib/services/dropdown.service.d.ts +27 -0
- package/package.json +4 -4
|
@@ -5,7 +5,6 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
import * as i1 from "@angular/common";
|
|
6
6
|
export class CheckboxGroupComponent {
|
|
7
7
|
constructor() {
|
|
8
|
-
this.groupName = input.required();
|
|
9
8
|
this.items = input.required();
|
|
10
9
|
this.direction = input("horizontal");
|
|
11
10
|
this.showItemsLabel = input(true);
|
|
@@ -19,11 +18,11 @@ export class CheckboxGroupComponent {
|
|
|
19
18
|
this.readOnly = input(false);
|
|
20
19
|
this.isDisplayed = computed(() => !(this.disabled() && this.error()));
|
|
21
20
|
}
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CheckboxGroupComponent, isStandalone: true, selector: "rte-checkbox-group", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, 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 \n *ngIf=\"isDisplayed()\"\n class=\"checkbox-group-container\">\n <div\n class=\"checkbox-group-header\"\n [ngClass]=\"{\n 'disabled': disabled(),\n 'error': error(),\n 'read-only': readOnly(),\n }\">\n <h3\n *ngIf=\"showGroupTitle()\"\n class=\"group-title\"\n >\n {{ groupTitle() }}\n </h3>\n <p\n *ngIf=\"showHelpText()\"\n class=\"group-help-text\"\n >\n {{ groupHelpText() }}\n\n </p>\n <p\n *ngIf=\"error()\"\n class=\"group-error-message\"\n >\n {{ errorMessage() }}\n </p>\n </div>\n <div class=\"checkbox-group\" \n [ngClass]=\"{'horizontal': direction() === 'horizontal', 'vertical': direction() === 'vertical'}\">\n <ng-container \n *ngFor=\"let item of items(); let i = index\">\n <rte-checkbox\n [id]=\"item + '-' + i\"\n [label]=\"item\"\n [showLabel]=\"showItemsLabel()\"\n [disabled]=\"disabled()\"\n [error]=\"error()\"\n [readOnly]=\"readOnly()\"\n />\n </ng-container>\n </div>\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.checkbox-group-container{display:flex;padding:0;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px}.checkbox-group-container .checkbox-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}.checkbox-group-container .checkbox-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}.checkbox-group-container .checkbox-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);align-self:stretch;margin:4px 0 0}.checkbox-group-container .checkbox-group-header.error .group-title{color:var(--content-danger)}.checkbox-group-container .checkbox-group-header.read-only .group-title{color:var(--content-tertiary)}.checkbox-group-container .checkbox-group-header.read-only .error .group-title{color:var(--content-danger)}.checkbox-group-container .checkbox-group-header.disabled{pointer-events:none}.checkbox-group-container .checkbox-group-header.disabled .group-title,.checkbox-group-container .checkbox-group-header.disabled .group-help-text{color:var(--content-disabled)}.checkbox-group-container .checkbox-group{display:flex;flex-direction:row;padding:0;align-items:flex-start;gap:24px}.checkbox-group-container .checkbox-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: CheckboxComponent, selector: "rte-checkbox", inputs: ["id", "label", "value", "indeterminate", "description", "showLabel", "disabled", "error", "errorMessage", "readOnly", "checked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
23
|
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxGroupComponent, decorators: [{
|
|
26
25
|
type: Component,
|
|
27
|
-
args: [{ selector: "rte-checkbox-group", imports: [CommonModule, CheckboxComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div \n *ngIf=\"isDisplayed()\"\n class=\"checkbox-group-container\">\n <div\n class=\"checkbox-group-header\"\n [ngClass]=\"{\n 'disabled': disabled(),\n 'error': error(),\n 'read-only': readOnly(),\n }\">\n <h3\n *ngIf=\"showGroupTitle()\"\n class=\"group-title\"\n >\n {{ groupTitle() }}\n </h3>\n <p\n *ngIf=\"showHelpText()\"\n class=\"group-help-text\"\n >\n {{ groupHelpText() }}\n\n </p>\n <p\n *ngIf=\"error()\"\n class=\"group-error-message\"\n >\n {{ errorMessage() }}\n </p>\n </div>\n <div class=\"checkbox-group\" \n [ngClass]=\"{'horizontal': direction() === 'horizontal', 'vertical': direction() === 'vertical'}\">\n <ng-container \n *ngFor=\"let item of items(); let i = index\">\n <rte-checkbox\n
|
|
26
|
+
args: [{ selector: "rte-checkbox-group", imports: [CommonModule, CheckboxComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div \n *ngIf=\"isDisplayed()\"\n class=\"checkbox-group-container\">\n <div\n class=\"checkbox-group-header\"\n [ngClass]=\"{\n 'disabled': disabled(),\n 'error': error(),\n 'read-only': readOnly(),\n }\">\n <h3\n *ngIf=\"showGroupTitle()\"\n class=\"group-title\"\n >\n {{ groupTitle() }}\n </h3>\n <p\n *ngIf=\"showHelpText()\"\n class=\"group-help-text\"\n >\n {{ groupHelpText() }}\n\n </p>\n <p\n *ngIf=\"error()\"\n class=\"group-error-message\"\n >\n {{ errorMessage() }}\n </p>\n </div>\n <div class=\"checkbox-group\" \n [ngClass]=\"{'horizontal': direction() === 'horizontal', 'vertical': direction() === 'vertical'}\">\n <ng-container \n *ngFor=\"let item of items(); let i = index\">\n <rte-checkbox\n [id]=\"item + '-' + i\"\n [label]=\"item\"\n [showLabel]=\"showItemsLabel()\"\n [disabled]=\"disabled()\"\n [error]=\"error()\"\n [readOnly]=\"readOnly()\"\n />\n </ng-container>\n </div>\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.checkbox-group-container{display:flex;padding:0;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px}.checkbox-group-container .checkbox-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}.checkbox-group-container .checkbox-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}.checkbox-group-container .checkbox-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);align-self:stretch;margin:4px 0 0}.checkbox-group-container .checkbox-group-header.error .group-title{color:var(--content-danger)}.checkbox-group-container .checkbox-group-header.read-only .group-title{color:var(--content-tertiary)}.checkbox-group-container .checkbox-group-header.read-only .error .group-title{color:var(--content-danger)}.checkbox-group-container .checkbox-group-header.disabled{pointer-events:none}.checkbox-group-container .checkbox-group-header.disabled .group-title,.checkbox-group-container .checkbox-group-header.disabled .group-help-text{color:var(--content-disabled)}.checkbox-group-container .checkbox-group{display:flex;flex-direction:row;padding:0;align-items:flex-start;gap:24px}.checkbox-group-container .checkbox-group.vertical{flex-direction:column;gap:8px}\n"] }]
|
|
28
27
|
}] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2tib3gtZ3JvdXAvY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2tib3gtZ3JvdXAvY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBVW5FLE1BQU0sT0FBTyxzQkFBc0I7SUFSbkM7UUFTVyxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBWSxDQUFDO1FBQ25DLGNBQVMsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEMsbUJBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsZUFBVSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QixtQkFBYyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixrQkFBYSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixpQkFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixpQkFBWSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixVQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLGFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QixnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDM0U7K0dBZFksc0JBQXNCO21HQUF0QixzQkFBc0Isc2lEQ2JuQywybENBNENNLHk2RERyQ00sWUFBWSw4VkFBRSxpQkFBaUI7OzRGQU05QixzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0Usb0JBQW9CLFdBQ3JCLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDLGNBQzlCLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSBcIi4uL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwicnRlLWNoZWNrYm94LWdyb3VwXCIsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENoZWNrYm94Q29tcG9uZW50XSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9jaGVja2JveC1ncm91cC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybDogXCIuL2NoZWNrYm94LWdyb3VwLmNvbXBvbmVudC5zY3NzXCIsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveEdyb3VwQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgaXRlbXMgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmdbXT4oKTtcbiAgcmVhZG9ubHkgZGlyZWN0aW9uID0gaW5wdXQoXCJob3Jpem9udGFsXCIpO1xuICByZWFkb25seSBzaG93SXRlbXNMYWJlbCA9IGlucHV0KHRydWUpO1xuICByZWFkb25seSBncm91cFRpdGxlID0gaW5wdXQoXCJcIik7XG4gIHJlYWRvbmx5IHNob3dHcm91cFRpdGxlID0gaW5wdXQoZmFsc2UpO1xuICByZWFkb25seSBncm91cEhlbHBUZXh0ID0gaW5wdXQoXCJcIik7XG4gIHJlYWRvbmx5IHNob3dIZWxwVGV4dCA9IGlucHV0KGZhbHNlKTtcbiAgcmVhZG9ubHkgZXJyb3JNZXNzYWdlID0gaW5wdXQoXCJcIik7XG4gIHJlYWRvbmx5IGVycm9yID0gaW5wdXQoZmFsc2UpO1xuICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcbiAgcmVhZG9ubHkgcmVhZE9ubHkgPSBpbnB1dChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgaXNEaXNwbGF5ZWQgPSBjb21wdXRlZCgoKSA9PiAhKHRoaXMuZGlzYWJsZWQoKSAmJiB0aGlzLmVycm9yKCkpKTtcbn1cbiIsIjxkaXYgIFxuICAqbmdJZj1cImlzRGlzcGxheWVkKClcIlxuICBjbGFzcz1cImNoZWNrYm94LWdyb3VwLWNvbnRhaW5lclwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjaGVja2JveC1ncm91cC1oZWFkZXJcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2Rpc2FibGVkJzogZGlzYWJsZWQoKSxcbiAgICAgICAgJ2Vycm9yJzogZXJyb3IoKSxcbiAgICAgICAgJ3JlYWQtb25seSc6IHJlYWRPbmx5KCksXG4gICAgfVwiPlxuICAgIDxoM1xuICAgICAgICAqbmdJZj1cInNob3dHcm91cFRpdGxlKClcIlxuICAgICAgICBjbGFzcz1cImdyb3VwLXRpdGxlXCJcbiAgICAgICAgPlxuICAgICAgICB7eyBncm91cFRpdGxlKCkgfX1cbiAgICA8L2gzPlxuICAgIDxwXG4gICAgICAgICpuZ0lmPVwic2hvd0hlbHBUZXh0KClcIlxuICAgICAgICBjbGFzcz1cImdyb3VwLWhlbHAtdGV4dFwiXG4gICAgICAgID5cbiAgICAgICAge3sgZ3JvdXBIZWxwVGV4dCgpIH19XG5cbiAgICA8L3A+XG4gICAgPHBcbiAgICAgICAgKm5nSWY9XCJlcnJvcigpXCJcbiAgICAgICAgY2xhc3M9XCJncm91cC1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgPlxuICAgICAgICB7eyBlcnJvck1lc3NhZ2UoKSB9fVxuICAgIDwvcD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjaGVja2JveC1ncm91cFwiIFxuICAgIFtuZ0NsYXNzXT1cInsnaG9yaXpvbnRhbCc6IGRpcmVjdGlvbigpID09PSAnaG9yaXpvbnRhbCcsICd2ZXJ0aWNhbCc6IGRpcmVjdGlvbigpID09PSAndmVydGljYWwnfVwiPlxuICAgIDxuZy1jb250YWluZXIgXG4gICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXMoKTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgPHJ0ZS1jaGVja2JveFxuICAgICAgICBbaWRdPVwiaXRlbSArICctJyArIGlcIlxuICAgICAgICBbbGFiZWxdPVwiaXRlbVwiXG4gICAgICAgIFtzaG93TGFiZWxdPVwic2hvd0l0ZW1zTGFiZWwoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgICAgW2Vycm9yXT1cImVycm9yKClcIlxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHkoKVwiXG4gICAgICAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -54,10 +54,10 @@ export class ChipComponent {
|
|
|
54
54
|
this.close.emit(event);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
58
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: ChipComponent, isStandalone: true, selector: "rte-chip", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click", close: "close" }, ngImport: i0, template: "<span\n class=\"chip\"\n tabindex=\"0\"\n [attr.role]=\"role()\"\n [attr.data-selected]=\"isCheckable() ? selected() : null\"\n [attr.data-disabled]=\"disabled()\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n [attr.data-type]=\"type()\"\n [attr.aria-checked]=\"isCheckable() ? selected() : null\"\n [attr.aria-disabled]=\"disabled()\"\n (click)=\"onClick($event)\"\n (keyup)=\"onKeyUp($event)\"\n (blur)=\"onBlur($event)\"\n>\n <ng-container *ngIf=\"type() === 'multi'\">\n <span class=\"chip-icon-container\">\n <span\n class=\"chip-icon\"\n [class.chip-icon--visible]=\"selected()\"\n [attr.aria-hidden]=\"!selected()\"\n >\n <rte-icon name=\"check-circle\" appearance=\"filled\" [size]=\"16\"></rte-icon>\n </span>\n <span\n class=\"chip-icon\"\n [class.chip-icon--visible]=\"!selected()\"\n [attr.aria-hidden]=\"selected()\"\n >\n <rte-icon name=\"radio-button-empty\" [size]=\"16\"></rte-icon>\n </span>\n </span>\n </ng-container>\n <span class=\"chip-label\" [attr.data-type]=\"type()\">{{ label() }}</span>\n <button\n *ngIf=\"type() === 'input'\"\n type=\"button\"\n class=\"chip-close-button\"\n [attr.aria-label]=\"'Supprimer ' + label()\"\n [disabled]=\"disabled()\"\n [value]=\"label()\"\n (click)=\"onCloseClick($event)\"\n >\n <rte-icon class=\"chip-close-button--icon\" name=\"close\" [size]=\"16\"></rte-icon>\n </button>\n</span>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.chip{overflow:hidden;color:var(--content-brand-default);text-overflow:ellipsis;display:inline-flex;padding:4px 12px;justify-content:center;align-items:center;gap:0px;border-radius:999px;background:var(--background-brand-unselected-default);transition:background-color .2s ease-in-out,color .2s ease-in-out}.chip:hover{cursor:pointer;color:var(--content-brand-hover);background:var(--background-brand-unselected-hover)}.chip:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}.chip[data-disabled=true]{cursor:default;color:var(--content-disabled);background:var(--background-disabled);outline:none}.chip[data-selected=true]{color:var(--content-primary-inverse);background:var(--background-brand-selected-default)}.chip[data-selected=true]:hover{background:var(--background-brand-selected-hover)}.chip[data-selected=true][data-disabled=true]{cursor:default;color:var(--content-disabled);background:var(--background-disabled)}.chip[data-compact-spacing=true]{padding:0 12px}.chip[data-type=input]{padding:0 4px;pointer-events:none}.chip-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;padding:0 6px}.chip-label[data-type=input]{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;padding:0 8px}.chip-icon-container{position:relative;width:16px;height:16px}.chip-icon{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease-in-out,transform .2s ease-in-out;pointer-events:none}.chip-icon--visible{opacity:1;pointer-events:auto}.chip-close-button{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--content-brand-default);border-radius:999px;width:16px;height:16px;pointer-events:auto;transition:background-color .2s ease-in-out}.chip-close-button:disabled{cursor:default;color:var(--content-disabled);background:var(--background-disabled);outline:none}.chip-close-button:hover:not(:disabled){background:var(--background-brand-hover);color:var(--background-brand-unselected-hover)}.chip-close-button:focus-visible{outline:1px solid var(--border-brand-focused)}.chip-close-button--icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
59
59
|
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipComponent, decorators: [{
|
|
61
61
|
type: Component,
|
|
62
62
|
args: [{ selector: "rte-chip", imports: [CommonModule, IconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n class=\"chip\"\n tabindex=\"0\"\n [attr.role]=\"role()\"\n [attr.data-selected]=\"isCheckable() ? selected() : null\"\n [attr.data-disabled]=\"disabled()\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n [attr.data-type]=\"type()\"\n [attr.aria-checked]=\"isCheckable() ? selected() : null\"\n [attr.aria-disabled]=\"disabled()\"\n (click)=\"onClick($event)\"\n (keyup)=\"onKeyUp($event)\"\n (blur)=\"onBlur($event)\"\n>\n <ng-container *ngIf=\"type() === 'multi'\">\n <span class=\"chip-icon-container\">\n <span\n class=\"chip-icon\"\n [class.chip-icon--visible]=\"selected()\"\n [attr.aria-hidden]=\"!selected()\"\n >\n <rte-icon name=\"check-circle\" appearance=\"filled\" [size]=\"16\"></rte-icon>\n </span>\n <span\n class=\"chip-icon\"\n [class.chip-icon--visible]=\"!selected()\"\n [attr.aria-hidden]=\"selected()\"\n >\n <rte-icon name=\"radio-button-empty\" [size]=\"16\"></rte-icon>\n </span>\n </span>\n </ng-container>\n <span class=\"chip-label\" [attr.data-type]=\"type()\">{{ label() }}</span>\n <button\n *ngIf=\"type() === 'input'\"\n type=\"button\"\n class=\"chip-close-button\"\n [attr.aria-label]=\"'Supprimer ' + label()\"\n [disabled]=\"disabled()\"\n [value]=\"label()\"\n (click)=\"onCloseClick($event)\"\n >\n <rte-icon class=\"chip-close-button--icon\" name=\"close\" [size]=\"16\"></rte-icon>\n </button>\n</span>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.chip{overflow:hidden;color:var(--content-brand-default);text-overflow:ellipsis;display:inline-flex;padding:4px 12px;justify-content:center;align-items:center;gap:0px;border-radius:999px;background:var(--background-brand-unselected-default);transition:background-color .2s ease-in-out,color .2s ease-in-out}.chip:hover{cursor:pointer;color:var(--content-brand-hover);background:var(--background-brand-unselected-hover)}.chip:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}.chip[data-disabled=true]{cursor:default;color:var(--content-disabled);background:var(--background-disabled);outline:none}.chip[data-selected=true]{color:var(--content-primary-inverse);background:var(--background-brand-selected-default)}.chip[data-selected=true]:hover{background:var(--background-brand-selected-hover)}.chip[data-selected=true][data-disabled=true]{cursor:default;color:var(--content-disabled);background:var(--background-disabled)}.chip[data-compact-spacing=true]{padding:0 12px}.chip[data-type=input]{padding:0 4px;pointer-events:none}.chip-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;padding:0 6px}.chip-label[data-type=input]{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;padding:0 8px}.chip-icon-container{position:relative;width:16px;height:16px}.chip-icon{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease-in-out,transform .2s ease-in-out;pointer-events:none}.chip-icon--visible{opacity:1;pointer-events:auto}.chip-close-button{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--content-brand-default);border-radius:999px;width:16px;height:16px;pointer-events:auto;transition:background-color .2s ease-in-out}.chip-close-button:disabled{cursor:default;color:var(--content-disabled);background:var(--background-disabled);outline:none}.chip-close-button:hover:not(:disabled){background:var(--background-brand-hover);color:var(--background-brand-unselected-hover)}.chip-close-button:focus-visible{outline:1px solid var(--border-brand-focused)}.chip-close-button--icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center}\n"] }]
|
|
63
63
|
}] });
|
|
@@ -9,11 +9,11 @@ export class DividerComponent {
|
|
|
9
9
|
this.endPoint = input("round");
|
|
10
10
|
this.isHorizontal = computed(() => this.orientation() === "horizontal");
|
|
11
11
|
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DividerComponent, isStandalone: true, selector: "rte-divider", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, thickness: { classPropertyName: "thickness", publicName: "thickness", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, endPoint: { classPropertyName: "endPoint", publicName: "endPoint", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (isHorizontal()) {\n <hr class=\"horizontal {{thickness()}} {{appearance()}} {{endPoint()}}\" />\n} @else {\n <div class=\"vertical {{thickness()}} {{appearance()}} {{endPoint()}}\" role=\"separator\"></div>\n}", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.horizontal{border:none;padding:0;margin:0;width:100%}.horizontal.round{border-radius:999px}.horizontal.light{border-top:1px solid var(--border-divider)}.horizontal.medium{border-top:2px solid var(--border-divider)}.horizontal.bold{border-top:4px solid var(--border-divider)}.horizontal.inverse{border-top-color:var(--border-inverse)}.horizontal.brand{border-top-color:var(--border-brand-default)}.vertical{height:100%;background-color:var(--border-divider);margin:0;padding:0}.vertical.round{border-radius:999px}.vertical.light{width:1px}.vertical.medium{width:2px}.vertical.bold{width:4px}.vertical.inverse{background-color:var(--border-inverse)}.vertical.brand{background-color:var(--border-brand-default)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DividerComponent, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
|
-
args: [{ selector: "rte-divider", imports: [CommonModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isHorizontal()) {\n <hr class=\"horizontal {{thickness()}} {{appearance()}} {{endPoint()}}\" />\n} @else {\n <div class=\"vertical {{thickness()}} {{appearance()}} {{endPoint()}}\" role=\"separator\"></div>\n}", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.horizontal{border:none;padding:0;margin:0;width:100%}.horizontal.round{border-radius:999px}.horizontal.light{border-top:1px solid var(--border-divider)}.horizontal.medium{border-top:2px solid var(--border-divider)}.horizontal.bold{border-top:4px solid var(--border-divider)}.horizontal.inverse{border-top-color:var(--border-inverse)}.vertical{height:100%;background-color:var(--border-divider);margin:0;padding:0}.vertical.round{border-radius:999px}.vertical.light{width:1px}.vertical.medium{width:2px}.vertical.bold{width:4px}.vertical.inverse{background-color:var(--border-inverse)}\n"] }]
|
|
17
|
+
args: [{ selector: "rte-divider", imports: [CommonModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isHorizontal()) {\n <hr class=\"horizontal {{thickness()}} {{appearance()}} {{endPoint()}}\" />\n} @else {\n <div class=\"vertical {{thickness()}} {{appearance()}} {{endPoint()}}\" role=\"separator\"></div>\n}", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.horizontal{border:none;padding:0;margin:0;width:100%}.horizontal.round{border-radius:999px}.horizontal.light{border-top:1px solid var(--border-divider)}.horizontal.medium{border-top:2px solid var(--border-divider)}.horizontal.bold{border-top:4px solid var(--border-divider)}.horizontal.inverse{border-top-color:var(--border-inverse)}.horizontal.brand{border-top-color:var(--border-brand-default)}.vertical{height:100%;background-color:var(--border-divider);margin:0;padding:0}.vertical.round{border-radius:999px}.vertical.light{width:1px}.vertical.medium{width:2px}.vertical.bold{width:4px}.vertical.inverse{background-color:var(--border-inverse)}.vertical.brand{background-color:var(--border-brand-default)}\n"] }]
|
|
18
18
|
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGl2aWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy9kaXZpZGVyL2RpdmlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZGl2aWRlci9kaXZpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBV3BGLE1BQU0sT0FBTyxnQkFBZ0I7SUFSN0I7UUFTVyxnQkFBVyxHQUFHLEtBQUssQ0FBOEIsWUFBWSxDQUFDLENBQUM7UUFDL0QsY0FBUyxHQUFHLEtBQUssQ0FBNEIsT0FBTyxDQUFDLENBQUM7UUFDdEQsZUFBVSxHQUFHLEtBQUssQ0FBNkIsU0FBUyxDQUFDLENBQUM7UUFDMUQsYUFBUSxHQUFHLEtBQUssQ0FBMkIsT0FBTyxDQUFDLENBQUM7UUFFcEQsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLFlBQVksQ0FBQyxDQUFDO0tBQzdFOytHQVBZLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHltQkNaN0IsME5BSUMsMjlCREVXLFlBQVk7OzRGQU1YLGdCQUFnQjtrQkFSNUIsU0FBUzsrQkFDRSxhQUFhLFdBQ2QsQ0FBQyxZQUFZLENBQUMsY0FDWCxJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRGl2aWRlclByb3BzIH0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbXBvbmVudHMvZGl2aWRlci9kaXZpZGVyLmludGVyZmFjZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwicnRlLWRpdmlkZXJcIixcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiBcIi4vZGl2aWRlci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybDogXCIuL2RpdmlkZXIuY29tcG9uZW50LnNjc3NcIixcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERpdmlkZXJDb21wb25lbnQge1xuICByZWFkb25seSBvcmllbnRhdGlvbiA9IGlucHV0PERpdmlkZXJQcm9wc1tcIm9yaWVudGF0aW9uXCJdPihcImhvcml6b250YWxcIik7XG4gIHJlYWRvbmx5IHRoaWNrbmVzcyA9IGlucHV0PERpdmlkZXJQcm9wc1tcInRoaWNrbmVzc1wiXT4oXCJsaWdodFwiKTtcbiAgcmVhZG9ubHkgYXBwZWFyYW5jZSA9IGlucHV0PERpdmlkZXJQcm9wc1tcImFwcGVhcmFuY2VcIl0+KFwiZGVmYXVsdFwiKTtcbiAgcmVhZG9ubHkgZW5kUG9pbnQgPSBpbnB1dDxEaXZpZGVyUHJvcHNbXCJlbmRQb2ludFwiXT4oXCJyb3VuZFwiKTtcblxuICByZWFkb25seSBpc0hvcml6b250YWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9yaWVudGF0aW9uKCkgPT09IFwiaG9yaXpvbnRhbFwiKTtcbn1cbiIsIkBpZiAoaXNIb3Jpem9udGFsKCkpIHtcbiAgPGhyIGNsYXNzPVwiaG9yaXpvbnRhbCB7e3RoaWNrbmVzcygpfX0ge3thcHBlYXJhbmNlKCl9fSB7e2VuZFBvaW50KCl9fVwiIC8+XG59IEBlbHNlIHtcbiAgPGRpdiBjbGFzcz1cInZlcnRpY2FsIHt7dGhpY2tuZXNzKCl9fSB7e2FwcGVhcmFuY2UoKX19IHt7ZW5kUG9pbnQoKX19XCIgcm9sZT1cInNlcGFyYXRvclwiPjwvZGl2PlxufSJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { CommonModule } from "@angular/common";
|
|
2
|
+
import { Component, input, output } from "@angular/core";
|
|
3
|
+
import { ENTER_KEY, SPACE_KEY } from "@design-system-rte/core/constants/keyboard/keyboard.constants";
|
|
4
|
+
import { DividerComponent } from "../../divider/divider.component";
|
|
5
|
+
import { IconComponent } from "../../icon/icon.component";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
export class DropdownItemComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.item = input();
|
|
11
|
+
this.menuId = input();
|
|
12
|
+
this.itemEvent = output();
|
|
13
|
+
}
|
|
14
|
+
handleClick(event) {
|
|
15
|
+
if (this.item()?.disabled) {
|
|
16
|
+
event.preventDefault();
|
|
17
|
+
event.stopPropagation();
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
this.itemEvent.emit({ event, id: this.item()?.id || this.item()?.label || "" });
|
|
21
|
+
}
|
|
22
|
+
handleKeyDown(event) {
|
|
23
|
+
event.preventDefault();
|
|
24
|
+
if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {
|
|
25
|
+
if (this.item()?.link) {
|
|
26
|
+
const link = event.target.closest("li")?.querySelector("a");
|
|
27
|
+
link?.click();
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.itemEvent.emit({ event, id: this.item()?.id || this.item()?.label || "" });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: DropdownItemComponent, isStandalone: true, selector: "rte-dropdown-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, menuId: { classPropertyName: "menuId", publicName: "menuId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemEvent: "itemEvent" }, ngImport: i0, template: "<ng-container>\n <li\n #itemRef\n class=\"rte-dropdown-item\"\n role=\"menuitem\"\n tabindex=\"0\"\n [attr.data-disabled]=\"item()?.disabled\"\n [attr.aria-disabled]=\"item()?.disabled\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeyDown($event)\"\n >\n <span *ngIf=\"item()?.hasIndent && !item()?.leftIcon\" style=\"width: 20px\"></span>\n <rte-icon *ngIf=\"item()?.leftIcon\" [name]=\"item()?.leftIcon ?? ''\" />\n <ng-container [ngSwitch]=\"!!item()?.link\">\n <a *ngSwitchCase=\"true\" style=\"flex: 2; text-decoration: none; color: inherit\" [href]=\"item()?.link\">{{ item()?.label }} </a>\n <span *ngSwitchDefault style=\"flex: 2\">{{ item()?.label }}</span>\n </ng-container>\n <div *ngIf=\"item()?.trailingText\">{{ item()?.trailingText }}</div>\n </li>\n <div *ngIf=\"item()?.hasSeparator\" class=\"dropdown-divider\">\n <rte-divider/>\n </div>\n</ng-container>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.rte-dropdown-item{font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;color:var(--content-secondary);display:flex;height:40px;padding:8px 12px;align-items:center;gap:12px;align-self:stretch;cursor:pointer;box-sizing:border-box}.rte-dropdown-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-dropdown-item:hover{background-color:var(--background-hover)}.rte-dropdown-item[data-disabled=true]{cursor:not-allowed;color:var(--content-disabled);background:var(--background-disabled)}.rte-dropdown-item:focus-visible{outline:none;background-color:var(--background-hover)}.dropdown-divider{width:100%;padding:8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: DividerComponent, selector: "rte-divider", inputs: ["orientation", "thickness", "appearance", "endPoint"] }] }); }
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownItemComponent, decorators: [{
|
|
38
|
+
type: Component,
|
|
39
|
+
args: [{ selector: "rte-dropdown-item", imports: [CommonModule, IconComponent, DividerComponent], standalone: true, template: "<ng-container>\n <li\n #itemRef\n class=\"rte-dropdown-item\"\n role=\"menuitem\"\n tabindex=\"0\"\n [attr.data-disabled]=\"item()?.disabled\"\n [attr.aria-disabled]=\"item()?.disabled\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeyDown($event)\"\n >\n <span *ngIf=\"item()?.hasIndent && !item()?.leftIcon\" style=\"width: 20px\"></span>\n <rte-icon *ngIf=\"item()?.leftIcon\" [name]=\"item()?.leftIcon ?? ''\" />\n <ng-container [ngSwitch]=\"!!item()?.link\">\n <a *ngSwitchCase=\"true\" style=\"flex: 2; text-decoration: none; color: inherit\" [href]=\"item()?.link\">{{ item()?.label }} </a>\n <span *ngSwitchDefault style=\"flex: 2\">{{ item()?.label }}</span>\n </ng-container>\n <div *ngIf=\"item()?.trailingText\">{{ item()?.trailingText }}</div>\n </li>\n <div *ngIf=\"item()?.hasSeparator\" class=\"dropdown-divider\">\n <rte-divider/>\n </div>\n</ng-container>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.rte-dropdown-item{font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;color:var(--content-secondary);display:flex;height:40px;padding:8px 12px;align-items:center;gap:12px;align-self:stretch;cursor:pointer;box-sizing:border-box}.rte-dropdown-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-dropdown-item:hover{background-color:var(--background-hover)}.rte-dropdown-item[data-disabled=true]{cursor:not-allowed;color:var(--content-disabled);background:var(--background-disabled)}.rte-dropdown-item:focus-visible{outline:none;background-color:var(--background-hover)}.dropdown-divider{width:100%;padding:8px 0}\n"] }]
|
|
40
|
+
}] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi1pdGVtL2Ryb3Bkb3duLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24taXRlbS9kcm9wZG93bi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFnQixLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFckcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFxQjFELE1BQU0sT0FBTyxxQkFBcUI7SUFQbEM7UUFRVyxTQUFJLEdBQUcsS0FBSyxFQUFzQixDQUFDO1FBQ25DLFdBQU0sR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUN6QixjQUFTLEdBQUcsTUFBTSxFQUFnQyxDQUFDO0tBdUI3RDtJQXJCQyxXQUFXLENBQUMsS0FBWTtRQUN0QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUMxQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBb0I7UUFDaEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXZCLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9DLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUN0QixNQUFNLElBQUksR0FBSSxLQUFLLENBQUMsTUFBc0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM3RSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDaEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNsRixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBekJVLHFCQUFxQjttR0FBckIscUJBQXFCLDhXQzFCbEMsdTlCQXNCZSwrNkJEREgsWUFBWSwrWUFBRSxhQUFhLGlIQUFFLGdCQUFnQjs7NEZBSzVDLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxtQkFBbUIsV0FDcEIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDLGNBQzVDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5wdXQsIG91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFTlRFUl9LRVksIFNQQUNFX0tFWSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb25zdGFudHMva2V5Ym9hcmQva2V5Ym9hcmQuY29uc3RhbnRzXCI7XG5cbmltcG9ydCB7IERpdmlkZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vZGl2aWRlci9kaXZpZGVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9pY29uL2ljb24uY29tcG9uZW50XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25JdGVtQ29uZmlnIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGxlZnRJY29uPzogc3RyaW5nO1xuICB0cmFpbGluZ1RleHQ/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaGFzU2VwYXJhdG9yPzogYm9vbGVhbjtcbiAgaGFzSW5kZW50PzogYm9vbGVhbjtcbiAgbGluaz86IHN0cmluZztcbiAgY2xpY2s/OiBFdmVudEVtaXR0ZXI8RXZlbnQ+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwicnRlLWRyb3Bkb3duLWl0ZW1cIixcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbkNvbXBvbmVudCwgRGl2aWRlckNvbXBvbmVudF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiBcIi4vZHJvcGRvd24taXRlbS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybDogXCIuL2Ryb3Bkb3duLWl0ZW0uY29tcG9uZW50LnNjc3NcIixcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25JdGVtQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgaXRlbSA9IGlucHV0PERyb3Bkb3duSXRlbUNvbmZpZz4oKTtcbiAgcmVhZG9ubHkgbWVudUlkID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBpdGVtRXZlbnQgPSBvdXRwdXQ8eyBldmVudDogRXZlbnQ7IGlkOiBzdHJpbmcgfT4oKTtcblxuICBoYW5kbGVDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pdGVtKCk/LmRpc2FibGVkKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXRlbUV2ZW50LmVtaXQoeyBldmVudCwgaWQ6IHRoaXMuaXRlbSgpPy5pZCB8fCB0aGlzLml0ZW0oKT8ubGFiZWwgfHwgXCJcIiB9KTtcbiAgfVxuXG4gIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgaWYgKFtTUEFDRV9LRVksIEVOVEVSX0tFWV0uaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgaWYgKHRoaXMuaXRlbSgpPy5saW5rKSB7XG4gICAgICAgIGNvbnN0IGxpbmsgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbG9zZXN0KFwibGlcIik/LnF1ZXJ5U2VsZWN0b3IoXCJhXCIpO1xuICAgICAgICBsaW5rPy5jbGljaygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pdGVtRXZlbnQuZW1pdCh7IGV2ZW50LCBpZDogdGhpcy5pdGVtKCk/LmlkIHx8IHRoaXMuaXRlbSgpPy5sYWJlbCB8fCBcIlwiIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj5cbiAgICA8bGlcbiAgICAgICNpdGVtUmVmXG4gICAgICBjbGFzcz1cInJ0ZS1kcm9wZG93bi1pdGVtXCJcbiAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgW2F0dHIuZGF0YS1kaXNhYmxlZF09XCJpdGVtKCk/LmRpc2FibGVkXCJcbiAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiaXRlbSgpPy5kaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiXG4gICAgICAoa2V5ZG93bik9XCJoYW5kbGVLZXlEb3duKCRldmVudClcIlxuICAgID5cbiAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbSgpPy5oYXNJbmRlbnQgJiYgIWl0ZW0oKT8ubGVmdEljb25cIiBzdHlsZT1cIndpZHRoOiAyMHB4XCI+PC9zcGFuPlxuICAgICAgPHJ0ZS1pY29uICpuZ0lmPVwiaXRlbSgpPy5sZWZ0SWNvblwiIFtuYW1lXT1cIml0ZW0oKT8ubGVmdEljb24gPz8gJydcIiAvPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiISFpdGVtKCk/LmxpbmtcIj5cbiAgICAgICAgPGEgKm5nU3dpdGNoQ2FzZT1cInRydWVcIiBzdHlsZT1cImZsZXg6IDI7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6IGluaGVyaXRcIiBbaHJlZl09XCJpdGVtKCk/LmxpbmtcIj57eyBpdGVtKCk/LmxhYmVsIH19IDwvYT5cbiAgICAgICAgPHNwYW4gKm5nU3dpdGNoRGVmYXVsdCBzdHlsZT1cImZsZXg6IDJcIj57eyBpdGVtKCk/LmxhYmVsIH19PC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaXRlbSgpPy50cmFpbGluZ1RleHRcIj57eyBpdGVtKCk/LnRyYWlsaW5nVGV4dCB9fTwvZGl2PlxuICAgIDwvbGk+XG4gICAgPGRpdiAqbmdJZj1cIml0ZW0oKT8uaGFzU2VwYXJhdG9yXCIgY2xhc3M9XCJkcm9wZG93bi1kaXZpZGVyXCI+XG4gICAgICA8cnRlLWRpdmlkZXIvPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { CommonModule } from "@angular/common";
|
|
2
|
+
import { Component, ElementRef, HostListener, inject, input, output } from "@angular/core";
|
|
3
|
+
import { ARROW_DOWN_KEY, ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, TAB_KEY, } from "@design-system-rte/core/constants/keyboard/keyboard.constants";
|
|
4
|
+
import { DropdownService } from "../../../services/dropdown.service";
|
|
5
|
+
import { DropdownItemComponent } from "../dropdown-item/dropdown-item.component";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class DropdownMenuComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.elementRef = inject(ElementRef);
|
|
10
|
+
this.dropdownService = inject(DropdownService);
|
|
11
|
+
this.items = input([]);
|
|
12
|
+
this.menuId = input();
|
|
13
|
+
this.itemEvent = output();
|
|
14
|
+
}
|
|
15
|
+
getChildMenuId(itemIndex) {
|
|
16
|
+
return `${this.menuId()}:${itemIndex + 1}`;
|
|
17
|
+
}
|
|
18
|
+
handleItemEvent(itemEvent) {
|
|
19
|
+
this.itemEvent.emit(itemEvent);
|
|
20
|
+
}
|
|
21
|
+
onKeyDown(event) {
|
|
22
|
+
if (!event.target || !this.menuId()) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if ([ARROW_UP_KEY, ARROW_DOWN_KEY, ARROW_LEFT_KEY, ARROW_RIGHT_KEY, TAB_KEY].includes(event.key)) {
|
|
26
|
+
event.preventDefault();
|
|
27
|
+
}
|
|
28
|
+
const menuId = this.menuId();
|
|
29
|
+
this.dropdownService.handleKeyboardInput(event.key, {
|
|
30
|
+
menuElement: this.elementRef,
|
|
31
|
+
menuId,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DropdownMenuComponent, isStandalone: true, selector: "rte-dropdown-menu", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, menuId: { classPropertyName: "menuId", publicName: "menuId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemEvent: "itemEvent" }, host: { listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.data-menu-id": "menuId()" } }, ngImport: i0, template: "<div class=\"rte-dropdown-menu\">\n <ul \n class=\"rte-dropdown-items\"\n role=\"menu\" \n [attr.aria-activedescendant]=\"menuId()\"\n >\n @for (item of items(); track item.label; let i = $index) {\n <rte-dropdown-item \n [item]=\"item\"\n (itemEvent)=\"handleItemEvent($event)\"\n />\n }\n </ul>\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";:host{opacity:0;display:none;position:absolute}.rte-dropdown-menu{box-shadow:0 8px 16px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-4) 0%,var(--elevation-surface-shadow-4) 100%);background-color:var(--background-default);position:absolute;top:0;left:0;display:flex;min-width:112px;max-width:280px;padding:8px 0;flex-direction:column;align-items:flex-start;gap:0px;border-radius:4px;transition:opacity .1s ease-in-out;pointer-events:auto;overflow-x:hidden;overflow-y:auto}.rte-dropdown-menu.open{transition:opacity .15s ease-in-out}.rte-dropdown-menu .rte-dropdown-items{width:100%;padding:0;margin:0}.rte-dropdown-menu .rte-dropdown-items li{list-style:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DropdownItemComponent, selector: "rte-dropdown-item", inputs: ["item", "menuId"], outputs: ["itemEvent"] }] }); }
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownMenuComponent, decorators: [{
|
|
38
|
+
type: Component,
|
|
39
|
+
args: [{ selector: "rte-dropdown-menu", imports: [CommonModule, DropdownItemComponent], standalone: true, host: { "[attr.data-menu-id]": "menuId()" }, template: "<div class=\"rte-dropdown-menu\">\n <ul \n class=\"rte-dropdown-items\"\n role=\"menu\" \n [attr.aria-activedescendant]=\"menuId()\"\n >\n @for (item of items(); track item.label; let i = $index) {\n <rte-dropdown-item \n [item]=\"item\"\n (itemEvent)=\"handleItemEvent($event)\"\n />\n }\n </ul>\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";:host{opacity:0;display:none;position:absolute}.rte-dropdown-menu{box-shadow:0 8px 16px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-4) 0%,var(--elevation-surface-shadow-4) 100%);background-color:var(--background-default);position:absolute;top:0;left:0;display:flex;min-width:112px;max-width:280px;padding:8px 0;flex-direction:column;align-items:flex-start;gap:0px;border-radius:4px;transition:opacity .1s ease-in-out;pointer-events:auto;overflow-x:hidden;overflow-y:auto}.rte-dropdown-menu.open{transition:opacity .15s ease-in-out}.rte-dropdown-menu .rte-dropdown-items{width:100%;padding:0;margin:0}.rte-dropdown-menu .rte-dropdown-items li{list-style:none}\n"] }]
|
|
40
|
+
}], propDecorators: { onKeyDown: [{
|
|
41
|
+
type: HostListener,
|
|
42
|
+
args: ["keydown", ["$event"]]
|
|
43
|
+
}] } });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUNMLGNBQWMsRUFDZCxjQUFjLEVBQ2QsZUFBZSxFQUNmLFlBQVksRUFDWixPQUFPLEdBQ1IsTUFBTSwrREFBK0QsQ0FBQztBQUV2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFzQixNQUFNLDBDQUEwQyxDQUFDOztBQVVyRyxNQUFNLE9BQU8scUJBQXFCO0lBUmxDO1FBU21CLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFbEQsVUFBSyxHQUFHLEtBQUssQ0FBdUIsRUFBRSxDQUFDLENBQUM7UUFDeEMsV0FBTSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBRXpCLGNBQVMsR0FBRyxNQUFNLEVBQWdDLENBQUM7S0EyQjdEO0lBekJDLGNBQWMsQ0FBQyxTQUFpQjtRQUM5QixPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQXVDO1FBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFHRCxTQUFTLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNwQyxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pHLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBWSxDQUFDO1FBRXZDLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNsRCxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDNUIsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBakNVLHFCQUFxQjttR0FBckIscUJBQXFCLDJkQ3JCbEMsNFZBYU0sbWdDREVNLFlBQVksK0JBQUUscUJBQXFCOzs0RkFNbEMscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLG1CQUFtQixXQUNwQixDQUFDLFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxjQUNsQyxJQUFJLFFBR1YsRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUU7OEJBb0IzQyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgaW5wdXQsIG91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBBUlJPV19ET1dOX0tFWSxcbiAgQVJST1dfTEVGVF9LRVksXG4gIEFSUk9XX1JJR0hUX0tFWSxcbiAgQVJST1dfVVBfS0VZLFxuICBUQUJfS0VZLFxufSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29uc3RhbnRzL2tleWJvYXJkL2tleWJvYXJkLmNvbnN0YW50c1wiO1xuXG5pbXBvcnQgeyBEcm9wZG93blNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvZHJvcGRvd24uc2VydmljZVwiO1xuaW1wb3J0IHsgRHJvcGRvd25JdGVtQ29tcG9uZW50LCBEcm9wZG93bkl0ZW1Db25maWcgfSBmcm9tIFwiLi4vZHJvcGRvd24taXRlbS9kcm9wZG93bi1pdGVtLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwicnRlLWRyb3Bkb3duLW1lbnVcIixcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRHJvcGRvd25JdGVtQ29tcG9uZW50XSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9kcm9wZG93bi1tZW51LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsOiBcIi4vZHJvcGRvd24tbWVudS5jb21wb25lbnQuc2Nzc1wiLFxuICBob3N0OiB7IFwiW2F0dHIuZGF0YS1tZW51LWlkXVwiOiBcIm1lbnVJZCgpXCIgfSxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25NZW51Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bkb3duU2VydmljZSA9IGluamVjdChEcm9wZG93blNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGl0ZW1zID0gaW5wdXQ8RHJvcGRvd25JdGVtQ29uZmlnW10+KFtdKTtcbiAgcmVhZG9ubHkgbWVudUlkID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIHJlYWRvbmx5IGl0ZW1FdmVudCA9IG91dHB1dDx7IGV2ZW50OiBFdmVudDsgaWQ6IHN0cmluZyB9PigpO1xuXG4gIGdldENoaWxkTWVudUlkKGl0ZW1JbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5tZW51SWQoKX06JHtpdGVtSW5kZXggKyAxfWA7XG4gIH1cblxuICBoYW5kbGVJdGVtRXZlbnQoaXRlbUV2ZW50OiB7IGV2ZW50OiBFdmVudDsgaWQ6IHN0cmluZyB9KTogdm9pZCB7XG4gICAgdGhpcy5pdGVtRXZlbnQuZW1pdChpdGVtRXZlbnQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImtleWRvd25cIiwgW1wiJGV2ZW50XCJdKVxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIWV2ZW50LnRhcmdldCB8fCAhdGhpcy5tZW51SWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChbQVJST1dfVVBfS0VZLCBBUlJPV19ET1dOX0tFWSwgQVJST1dfTEVGVF9LRVksIEFSUk9XX1JJR0hUX0tFWSwgVEFCX0tFWV0uaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZW51SWQgPSB0aGlzLm1lbnVJZCgpIGFzIHN0cmluZztcblxuICAgIHRoaXMuZHJvcGRvd25TZXJ2aWNlLmhhbmRsZUtleWJvYXJkSW5wdXQoZXZlbnQua2V5LCB7XG4gICAgICBtZW51RWxlbWVudDogdGhpcy5lbGVtZW50UmVmLFxuICAgICAgbWVudUlkLFxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRlLWRyb3Bkb3duLW1lbnVcIj5cbiAgPHVsIFxuICAgIGNsYXNzPVwicnRlLWRyb3Bkb3duLWl0ZW1zXCJcbiAgICByb2xlPVwibWVudVwiIFxuICAgIFthdHRyLmFyaWEtYWN0aXZlZGVzY2VuZGFudF09XCJtZW51SWQoKVwiXG4gID5cbiAgICBAZm9yIChpdGVtIG9mIGl0ZW1zKCk7IHRyYWNrIGl0ZW0ubGFiZWw7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICA8cnRlLWRyb3Bkb3duLWl0ZW0gXG4gICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAoaXRlbUV2ZW50KT1cImhhbmRsZUl0ZW1FdmVudCgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgfVxuICA8L3VsPlxuPC9kaXY+Il19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Directive, ElementRef, HostListener, inject, input, output } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class DropdownTriggerDirective {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.elementRef = inject(ElementRef);
|
|
6
|
+
this.rteDropdownTriggerActivateWithArrowDown = input(false);
|
|
7
|
+
this.dropdownKeyDown = output();
|
|
8
|
+
this.dropdownTriggered = output();
|
|
9
|
+
this.dropdownTriggerFocus = output();
|
|
10
|
+
}
|
|
11
|
+
onDropdownTriggered(event) {
|
|
12
|
+
this.dropdownTriggered.emit(event);
|
|
13
|
+
}
|
|
14
|
+
onDropdownTriggerFocus(event) {
|
|
15
|
+
this.dropdownTriggerFocus.emit(event);
|
|
16
|
+
}
|
|
17
|
+
onKeyDown(event) {
|
|
18
|
+
this.dropdownKeyDown.emit(event);
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: DropdownTriggerDirective, isStandalone: true, selector: "[rteDropdownTrigger]", inputs: { rteDropdownTriggerActivateWithArrowDown: { classPropertyName: "rteDropdownTriggerActivateWithArrowDown", publicName: "rteDropdownTriggerActivateWithArrowDown", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dropdownKeyDown: "dropdownKeyDown", dropdownTriggered: "dropdownTriggered", dropdownTriggerFocus: "dropdownTriggerFocus" }, host: { listeners: { "click": "onDropdownTriggered($event)", "focus": "onDropdownTriggerFocus($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownTriggerDirective, decorators: [{
|
|
24
|
+
type: Directive,
|
|
25
|
+
args: [{
|
|
26
|
+
selector: "[rteDropdownTrigger]",
|
|
27
|
+
standalone: true,
|
|
28
|
+
}]
|
|
29
|
+
}], propDecorators: { onDropdownTriggered: [{
|
|
30
|
+
type: HostListener,
|
|
31
|
+
args: ["click", ["$event"]]
|
|
32
|
+
}], onDropdownTriggerFocus: [{
|
|
33
|
+
type: HostListener,
|
|
34
|
+
args: ["focus", ["$event"]]
|
|
35
|
+
}], onKeyDown: [{
|
|
36
|
+
type: HostListener,
|
|
37
|
+
args: ["keydown", ["$event"]]
|
|
38
|
+
}] } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi10cmlnZ2VyL2Ryb3Bkb3duLXRyaWdnZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0YsTUFBTSxPQUFPLHdCQUF3QjtJQUpyQztRQUtXLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFaEMsNENBQXVDLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRWhFLG9CQUFlLEdBQUcsTUFBTSxFQUFpQixDQUFDO1FBRTFDLHNCQUFpQixHQUFHLE1BQU0sRUFBUyxDQUFDO1FBRXBDLHlCQUFvQixHQUFHLE1BQU0sRUFBUyxDQUFDO0tBZ0JqRDtJQWJDLG1CQUFtQixDQUFDLEtBQVk7UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBR0Qsc0JBQXNCLENBQUMsS0FBWTtRQUNqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFHRCxTQUFTLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzsrR0F4QlUsd0JBQXdCO21HQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBSnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQWFDLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTWpDLHNCQUFzQjtzQkFEckIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTWpDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltydGVEcm9wZG93blRyaWdnZXJdXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSB7XG4gIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25UcmlnZ2VyQWN0aXZhdGVXaXRoQXJyb3dEb3duID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHJlYWRvbmx5IGRyb3Bkb3duS2V5RG93biA9IG91dHB1dDxLZXlib2FyZEV2ZW50PigpO1xuXG4gIHJlYWRvbmx5IGRyb3Bkb3duVHJpZ2dlcmVkID0gb3V0cHV0PEV2ZW50PigpO1xuXG4gIHJlYWRvbmx5IGRyb3Bkb3duVHJpZ2dlckZvY3VzID0gb3V0cHV0PEV2ZW50PigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoXCJjbGlja1wiLCBbXCIkZXZlbnRcIl0pXG4gIG9uRHJvcGRvd25UcmlnZ2VyZWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5kcm9wZG93blRyaWdnZXJlZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJmb2N1c1wiLCBbXCIkZXZlbnRcIl0pXG4gIG9uRHJvcGRvd25UcmlnZ2VyRm9jdXMoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5kcm9wZG93blRyaWdnZXJGb2N1cy5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duXCIsIFtcIiRldmVudFwiXSlcbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5kcm9wZG93bktleURvd24uZW1pdChldmVudCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { ChangeDetectorRef, contentChild, DestroyRef, Directive, ElementRef, inject, input, output, Renderer2, ViewContainerRef, } from "@angular/core";
|
|
2
|
+
import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
|
|
3
|
+
import { getAutoAlignment, getAutoPlacementDropdown, getCoordinates, } from "@design-system-rte/core/components/utils/auto-placement";
|
|
4
|
+
import { ARROW_DOWN_KEY, ENTER_KEY, SPACE_KEY } from "@design-system-rte/core/constants/keyboard/keyboard.constants";
|
|
5
|
+
import { DropdownService } from "../../services/dropdown.service";
|
|
6
|
+
import { OverlayService } from "../../services/overlay.service";
|
|
7
|
+
import { DropdownMenuComponent } from "./dropdown-menu/dropdown-menu.component";
|
|
8
|
+
import { DropdownTriggerDirective } from "./dropdown-trigger/dropdown-trigger.directive";
|
|
9
|
+
import { focusDropdownFirstElement } from "./dropdown.utils";
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class DropdownDirective {
|
|
12
|
+
static { this.idCounter = 0; }
|
|
13
|
+
constructor() {
|
|
14
|
+
this.trigger = contentChild(DropdownTriggerDirective);
|
|
15
|
+
this.menu = contentChild(DropdownMenuComponent);
|
|
16
|
+
this.rteDropdownPosition = input("bottom");
|
|
17
|
+
this.rteDropdownAlignment = input("start");
|
|
18
|
+
this.rteDropdownIsOpen = input(false);
|
|
19
|
+
this.rteDropdownOffset = input(0);
|
|
20
|
+
this.dropdownId = `dropdown_${++DropdownDirective.idCounter}`;
|
|
21
|
+
this.menuEvent = output();
|
|
22
|
+
this.overlayService = inject(OverlayService);
|
|
23
|
+
this.dropdownService = inject(DropdownService);
|
|
24
|
+
this.viewContainerRef = inject(ViewContainerRef);
|
|
25
|
+
this.elementRef = inject(ElementRef);
|
|
26
|
+
this.renderer = inject(Renderer2);
|
|
27
|
+
this.destroyRef = inject(DestroyRef);
|
|
28
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
29
|
+
this.dropdownMenuRef = null;
|
|
30
|
+
this.handleClickOutside = (event) => {
|
|
31
|
+
const target = event.target;
|
|
32
|
+
const isMenuItemClick = target.closest(".rte-dropdown-item") !== null;
|
|
33
|
+
if (isMenuItemClick) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const clickedInTrigger = this.hostElement.contains(target);
|
|
37
|
+
if (!clickedInTrigger) {
|
|
38
|
+
this.closeDropdown();
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
this.hostElement = this.elementRef.nativeElement;
|
|
42
|
+
}
|
|
43
|
+
onTrigger() {
|
|
44
|
+
this.showDropdownMenu();
|
|
45
|
+
}
|
|
46
|
+
onTriggerKeyEvent(event) {
|
|
47
|
+
if (event.key === SPACE_KEY ||
|
|
48
|
+
event.key === ENTER_KEY ||
|
|
49
|
+
(event.key === ARROW_DOWN_KEY && this.trigger()?.rteDropdownTriggerActivateWithArrowDown())) {
|
|
50
|
+
this.showDropdownMenu();
|
|
51
|
+
requestAnimationFrame(() => {
|
|
52
|
+
requestAnimationFrame(() => focusDropdownFirstElement(this.dropdownId));
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
onMenuEvent(event) {
|
|
57
|
+
this.menuEvent.emit(event);
|
|
58
|
+
this.dropdownService.closeAllMenus();
|
|
59
|
+
}
|
|
60
|
+
ngAfterContentInit() {
|
|
61
|
+
if (this.trigger()) {
|
|
62
|
+
this.trigger()?.dropdownTriggered.subscribe(() => {
|
|
63
|
+
this.onTrigger();
|
|
64
|
+
});
|
|
65
|
+
this.trigger()?.dropdownKeyDown.subscribe((event) => {
|
|
66
|
+
this.onTriggerKeyEvent(event);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
showDropdownMenu() {
|
|
71
|
+
if (this.dropdownMenuRef) {
|
|
72
|
+
this.dropdownMenuRef.destroy();
|
|
73
|
+
}
|
|
74
|
+
this.dropdownMenuRef = this.overlayService.create(DropdownMenuComponent, this.viewContainerRef);
|
|
75
|
+
const menuId = this.dropdownId;
|
|
76
|
+
this.dropdownMenuRef.setInput("menuId", menuId);
|
|
77
|
+
this.dropdownService.openMenu(menuId);
|
|
78
|
+
this.assignItems();
|
|
79
|
+
this.positionDropdownMenu(this.rteDropdownPosition());
|
|
80
|
+
this.addClickOutsideListener();
|
|
81
|
+
this.dropdownMenuRef.instance.itemEvent.subscribe((event) => {
|
|
82
|
+
this.onMenuEvent(event);
|
|
83
|
+
});
|
|
84
|
+
const dropdownStateSubscription = this.dropdownService.state$
|
|
85
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
86
|
+
.subscribe((state) => {
|
|
87
|
+
if (state === null) {
|
|
88
|
+
if (this.dropdownMenuRef) {
|
|
89
|
+
this.dropdownMenuRef.destroy();
|
|
90
|
+
this.dropdownMenuRef = null;
|
|
91
|
+
this.removeClickOutsideListener();
|
|
92
|
+
dropdownStateSubscription.unsubscribe();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
assignItems() {
|
|
98
|
+
if (this.dropdownMenuRef) {
|
|
99
|
+
this.dropdownMenuRef.setInput("items", this.menu()?.items());
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
positionDropdownMenu(position = "bottom") {
|
|
103
|
+
if (this.dropdownMenuRef && this.trigger()) {
|
|
104
|
+
const dropdownMenuElement = this.dropdownMenuRef.location.nativeElement;
|
|
105
|
+
const triggerElement = this.trigger()?.elementRef.nativeElement;
|
|
106
|
+
if (triggerElement) {
|
|
107
|
+
this.renderer.setStyle(dropdownMenuElement, "display", "block");
|
|
108
|
+
this.cdr.detectChanges();
|
|
109
|
+
const computedPosition = position === "auto" ? getAutoPlacementDropdown(triggerElement, dropdownMenuElement, "bottom") : position;
|
|
110
|
+
const autoAlignment = this.rteDropdownAlignment() ?? getAutoAlignment(triggerElement, dropdownMenuElement, computedPosition);
|
|
111
|
+
const computedCoordinates = getCoordinates(computedPosition, triggerElement, dropdownMenuElement.children[0], this.rteDropdownOffset(), autoAlignment);
|
|
112
|
+
this.renderer.setStyle(dropdownMenuElement, "top", `${computedCoordinates.top}px`);
|
|
113
|
+
this.renderer.setStyle(dropdownMenuElement, "left", `${computedCoordinates.left}px`);
|
|
114
|
+
this.renderer.setStyle(dropdownMenuElement, "opacity", "1");
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
ngOnDestroy() {
|
|
119
|
+
this.removeClickOutsideListener();
|
|
120
|
+
if (this.dropdownMenuRef) {
|
|
121
|
+
this.dropdownMenuRef.destroy();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
addClickOutsideListener() {
|
|
125
|
+
document.addEventListener("mousedown", this.handleClickOutside);
|
|
126
|
+
}
|
|
127
|
+
removeClickOutsideListener() {
|
|
128
|
+
document.removeEventListener("mousedown", this.handleClickOutside);
|
|
129
|
+
}
|
|
130
|
+
closeDropdown() {
|
|
131
|
+
this.dropdownService.closeAllMenus();
|
|
132
|
+
}
|
|
133
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
134
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.14", type: DropdownDirective, isStandalone: true, selector: "[rteDropdown]", inputs: { rteDropdownPosition: { classPropertyName: "rteDropdownPosition", publicName: "rteDropdownPosition", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAlignment: { classPropertyName: "rteDropdownAlignment", publicName: "rteDropdownAlignment", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownIsOpen: { classPropertyName: "rteDropdownIsOpen", publicName: "rteDropdownIsOpen", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownOffset: { classPropertyName: "rteDropdownOffset", publicName: "rteDropdownOffset", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuEvent: "menuEvent" }, host: { properties: { "class.dropdown": "true", "attr.data-dropdown-id": "dropdownId" } }, queries: [{ propertyName: "trigger", first: true, predicate: DropdownTriggerDirective, descendants: true, isSignal: true }, { propertyName: "menu", first: true, predicate: DropdownMenuComponent, descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
135
|
+
}
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownDirective, decorators: [{
|
|
137
|
+
type: Directive,
|
|
138
|
+
args: [{
|
|
139
|
+
selector: "[rteDropdown]",
|
|
140
|
+
host: {
|
|
141
|
+
"[class.dropdown]": "true",
|
|
142
|
+
"[attr.data-dropdown-id]": "dropdownId",
|
|
143
|
+
},
|
|
144
|
+
standalone: true,
|
|
145
|
+
}]
|
|
146
|
+
}], ctorParameters: () => [] });
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFFakIsWUFBWSxFQUNaLFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHaEUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0seURBQXlELENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFckgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFVN0QsTUFBTSxPQUFPLGlCQUFpQjthQUNiLGNBQVMsR0FBRyxDQUFDLEFBQUosQ0FBSztJQXNCN0I7UUFwQlMsWUFBTyxHQUFHLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ2pELFNBQUksR0FBRyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUUzQyx3QkFBbUIsR0FBRyxLQUFLLENBQVcsUUFBUSxD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LFFBQVEsRUFBRSxlQUFlO29CQUN6QixJQUFJLEVBQUU7d0JBQ0osa0JBQWtCLEVBQUUsTUFBTTt3QkFDMUIseUJBQXlCLEVBQUUsWUFBWTtxQkFDeEM7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudFJlZixcbiAgY29udGVudENoaWxkLFxuICBEZXN0cm95UmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgb3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcbmltcG9ydCB7IEFsaWdubWVudCB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21tb24vY29tbW9uLXR5cGVzXCI7XG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL2NvbW1vbi9jb21tb24tdHlwZXNcIjtcbmltcG9ydCB7XG4gIGdldEF1dG9BbGlnbm1lbnQsXG4gIGdldEF1dG9QbGFjZW1lbnREcm9wZG93bixcbiAgZ2V0Q29vcmRpbmF0ZXMsXG59IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3V0aWxzL2F1dG8tcGxhY2VtZW50XCI7XG5pbXBvcnQgeyBBUlJPV19ET1dOX0tFWSwgRU5URVJfS0VZLCBTUEFDRV9LRVkgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29uc3RhbnRzL2tleWJvYXJkL2tleWJvYXJkLmNvbnN0YW50c1wiO1xuXG5pbXBvcnQgeyBEcm9wZG93blNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZHJvcGRvd24uc2VydmljZVwiO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvb3ZlcmxheS5zZXJ2aWNlXCI7XG5cbmltcG9ydCB7IERyb3Bkb3duTWVudUNvbXBvbmVudCB9IGZyb20gXCIuL2Ryb3Bkb3duLW1lbnUvZHJvcGRvd24tbWVudS5jb21wb25lbnRcIjtcbmltcG9ydCB7IERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gXCIuL2Ryb3Bkb3duLXRyaWdnZXIvZHJvcGRvd24tdHJpZ2dlci5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IGZvY3VzRHJvcGRvd25GaXJzdEVsZW1lbnQgfSBmcm9tIFwiLi9kcm9wZG93bi51dGlsc1wiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW3J0ZURyb3Bkb3duXVwiLFxuICBob3N0OiB7XG4gICAgXCJbY2xhc3MuZHJvcGRvd25dXCI6IFwidHJ1ZVwiLFxuICAgIFwiW2F0dHIuZGF0YS1kcm9wZG93bi1pZF1cIjogXCJkcm9wZG93bklkXCIsXG4gIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdGF0aWMgaWRDb3VudGVyID0gMDtcblxuICByZWFkb25seSB0cmlnZ2VyID0gY29udGVudENoaWxkKERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSk7XG4gIHJlYWRvbmx5IG1lbnUgPSBjb250ZW50Q2hpbGQoRHJvcGRvd25NZW51Q29tcG9uZW50KTtcblxuICByZWFkb25seSBydGVEcm9wZG93blBvc2l0aW9uID0gaW5wdXQ8UG9zaXRpb24+KFwiYm90dG9tXCIpO1xuICByZWFkb25seSBydGVEcm9wZG93bkFsaWdubWVudCA9IGlucHV0PEFsaWdubWVudD4oXCJzdGFydFwiKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25Jc09wZW4gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duT2Zmc2V0ID0gaW5wdXQ8bnVtYmVyPigwKTtcblxuICByZWFkb25seSBkcm9wZG93bklkID0gYGRyb3Bkb3duXyR7KytEcm9wZG93bkRpcmVjdGl2ZS5pZENvdW50ZXJ9YDtcbiAgcmVhZG9ubHkgbWVudUV2ZW50ID0gb3V0cHV0PHsgZXZlbnQ6IEV2ZW50OyBpZDogc3RyaW5nIH0+KCk7XG5cbiAgcmVhZG9ubHkgb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoT3ZlcmxheVNlcnZpY2UpO1xuICByZWFkb25seSBkcm9wZG93blNlcnZpY2UgPSBpbmplY3QoRHJvcGRvd25TZXJ2aWNlKTtcbiAgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcmVhZG9ubHkgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIGRyb3Bkb3duTWVudVJlZjogQ29tcG9uZW50UmVmPERyb3Bkb3duTWVudUNvbXBvbmVudD4gfCBudWxsID0gbnVsbDtcblxuICBvblRyaWdnZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gIH1cblxuICBvblRyaWdnZXJLZXlFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LmtleSA9PT0gU1BBQ0VfS0VZIHx8XG4gICAgICBldmVudC5rZXkgPT09IEVOVEVSX0tFWSB8fFxuICAgICAgKGV2ZW50LmtleSA9PT0gQVJST1dfRE9XTl9LRVkgJiYgdGhpcy50cmlnZ2VyKCk/LnJ0ZURyb3Bkb3duVHJpZ2dlckFjdGl2YXRlV2l0aEFycm93RG93bigpKVxuICAgICkge1xuICAgICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gZm9jdXNEcm9wZG93bkZpcnN0RWxlbWVudCh0aGlzLmRyb3Bkb3duSWQpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uTWVudUV2ZW50KGV2ZW50OiB7IGV2ZW50OiBFdmVudDsgaWQ6IHN0cmluZyB9KTogdm9pZCB7XG4gICAgdGhpcy5tZW51RXZlbnQuZW1pdChldmVudCk7XG4gICAgdGhpcy5kcm9wZG93blNlcnZpY2UuY2xvc2VBbGxNZW51cygpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIoKSkge1xuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duVHJpZ2dlcmVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMub25UcmlnZ2VyKCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duS2V5RG93bi5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMub25UcmlnZ2VyS2V5RXZlbnQoZXZlbnQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2hvd0Ryb3Bkb3duTWVudSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICB0aGlzLmRyb3Bkb3duTWVudVJlZiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlKERyb3Bkb3duTWVudUNvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcblxuICAgIGNvbnN0IG1lbnVJZCA9IHRoaXMuZHJvcGRvd25JZDtcblxuICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwibWVudUlkXCIsIG1lbnVJZCk7XG5cbiAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5vcGVuTWVudShtZW51SWQpO1xuXG4gICAgdGhpcy5hc3NpZ25JdGVtcygpO1xuICAgIHRoaXMucG9zaXRpb25Ecm9wZG93bk1lbnUodGhpcy5ydGVEcm9wZG93blBvc2l0aW9uKCkpO1xuICAgIHRoaXMuYWRkQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcblxuICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmluc3RhbmNlLml0ZW1FdmVudC5zdWJzY3JpYmUoKGV2ZW50OiB7IGV2ZW50OiBFdmVudDsgaWQ6IHN0cmluZyB9KSA9PiB7XG4gICAgICB0aGlzLm9uTWVudUV2ZW50KGV2ZW50KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24gPSB0aGlzLmRyb3Bkb3duU2VydmljZS5zdGF0ZSRcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgICAgaWYgKHN0YXRlID09PSBudWxsKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZHJvcGRvd25NZW51UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZiA9IG51bGw7XG5cbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIGRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3NpZ25JdGVtcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwiaXRlbXNcIiwgdGhpcy5tZW51KCk/Lml0ZW1zKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9zaXRpb25Ecm9wZG93bk1lbnUocG9zaXRpb246IFBvc2l0aW9uID0gXCJib3R0b21cIik6IHZvaWQge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZiAmJiB0aGlzLnRyaWdnZXIoKSkge1xuICAgICAgY29uc3QgZHJvcGRvd25NZW51RWxlbWVudCA9IHRoaXMuZHJvcGRvd25NZW51UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCB0cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcigpPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgIGlmICh0cmlnZ2VyRWxlbWVudCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRyb3Bkb3duTWVudUVsZW1lbnQsIFwiZGlzcGxheVwiLCBcImJsb2NrXCIpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkUG9zaXRpb246IEV4Y2x1ZGU8UG9zaXRpb24sIFwiYXV0b1wiPiA9XG4gICAgICAgICAgcG9zaXRpb24gPT09IFwiYXV0b1wiID8gZ2V0QXV0b1BsYWNlbWVudERyb3Bkb3duKHRyaWdnZXJFbGVtZW50LCBkcm9wZG93bk1lbnVFbGVtZW50LCBcImJvdHRvbVwiKSA6IHBvc2l0aW9uO1xuICAgICAgICBjb25zdCBhdXRvQWxpZ25tZW50ID1cbiAgICAgICAgICB0aGlzLnJ0ZURyb3Bkb3duQWxpZ25tZW50KCkgPz8gZ2V0QXV0b0FsaWdubWVudCh0cmlnZ2VyRWxlbWVudCwgZHJvcGRvd25NZW51RWxlbWVudCwgY29tcHV0ZWRQb3NpdGlvbik7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkQ29vcmRpbmF0ZXMgPSBnZXRDb29yZGluYXRlcyhcbiAgICAgICAgICBjb21wdXRlZFBvc2l0aW9uLFxuICAgICAgICAgIHRyaWdnZXJFbGVtZW50LFxuICAgICAgICAgIGRyb3Bkb3duTWVudUVsZW1lbnQuY2hpbGRyZW5bMF0sXG4gICAgICAgICAgdGhpcy5ydGVEcm9wZG93bk9mZnNldCgpLFxuICAgICAgICAgIGF1dG9BbGlnbm1lbnQsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcm9wZG93bk1lbnVFbGVtZW50LCBcInRvcFwiLCBgJHtjb21wdXRlZENvb3JkaW5hdGVzLnRvcH1weGApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRyb3Bkb3duTWVudUVsZW1lbnQsIFwibGVmdFwiLCBgJHtjb21wdXRlZENvb3JkaW5hdGVzLmxlZnR9cHhgKTtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRyb3Bkb3duTWVudUVsZW1lbnQsIFwib3BhY2l0eVwiLCBcIjFcIik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpO1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQ7XG5cbiAgICBjb25zdCBpc01lbnVJdGVtQ2xpY2sgPSB0YXJnZXQuY2xvc2VzdChcIi5ydGUtZHJvcGRvd24taXRlbVwiKSAhPT0gbnVsbDtcbiAgICBpZiAoaXNNZW51SXRlbUNsaWNrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2xpY2tlZEluVHJpZ2dlciA9IHRoaXMuaG9zdEVsZW1lbnQuY29udGFpbnModGFyZ2V0KTtcblxuICAgIGlmICghY2xpY2tlZEluVHJpZ2dlcikge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgYWRkQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCB0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5oYW5kbGVDbGlja091dHNpZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgIHRoaXMuZHJvcGRvd25TZXJ2aWNlLmNsb3NlQWxsTWVudXMoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { DropdownItemComponent } from "./dropdown-item/dropdown-item.component";
|
|
3
|
+
import { DropdownMenuComponent } from "./dropdown-menu/dropdown-menu.component";
|
|
4
|
+
import { DropdownTriggerDirective } from "./dropdown-trigger/dropdown-trigger.directive";
|
|
5
|
+
import { DropdownDirective } from "./dropdown.directive";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class DropdownModule {
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DropdownModule, imports: [DropdownDirective, DropdownTriggerDirective, DropdownMenuComponent, DropdownItemComponent], exports: [DropdownDirective, DropdownTriggerDirective, DropdownMenuComponent, DropdownItemComponent] }); }
|
|
10
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownModule, imports: [DropdownMenuComponent, DropdownItemComponent] }); }
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
imports: [DropdownDirective, DropdownTriggerDirective, DropdownMenuComponent, DropdownItemComponent],
|
|
16
|
+
exports: [DropdownDirective, DropdownTriggerDirective, DropdownMenuComponent, DropdownItemComponent],
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBTXpELE1BQU0sT0FBTyxjQUFjOytHQUFkLGNBQWM7Z0hBQWQsY0FBYyxZQUhmLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixhQUN6RixpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUI7Z0hBRXhGLGNBQWMsWUFIOEIscUJBQXFCLEVBQUUscUJBQXFCOzs0RkFHeEYsY0FBYztrQkFKMUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBQztvQkFDcEcsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLENBQUM7aUJBQ3JHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBEcm9wZG93bkl0ZW1Db21wb25lbnQgfSBmcm9tIFwiLi9kcm9wZG93bi1pdGVtL2Ryb3Bkb3duLWl0ZW0uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEcm9wZG93bk1lbnVDb21wb25lbnQgfSBmcm9tIFwiLi9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEcm9wZG93blRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tIFwiLi9kcm9wZG93bi10cmlnZ2VyL2Ryb3Bkb3duLXRyaWdnZXIuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gXCIuL2Ryb3Bkb3duLmRpcmVjdGl2ZVwiO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbRHJvcGRvd25EaXJlY3RpdmUsIERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSwgRHJvcGRvd25NZW51Q29tcG9uZW50LCBEcm9wZG93bkl0ZW1Db21wb25lbnRdLFxuICBleHBvcnRzOiBbRHJvcGRvd25EaXJlY3RpdmUsIERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSwgRHJvcGRvd25NZW51Q29tcG9uZW50LCBEcm9wZG93bkl0ZW1Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bk1vZHVsZSB7fVxuIl19
|