@radix-ng/primitives 0.9.0 → 0.10.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/dropdown-menu/src/dropdown-menu-content.directive.d.ts +6 -7
- package/dropdown-menu/src/dropdown-menu-item-checkbox.directive.d.ts +3 -0
- package/dropdown-menu/src/dropdown-menu-item-selectable.d.ts +4 -6
- package/dropdown-menu/src/dropdown-menu-item.directive.d.ts +4 -4
- package/dropdown-menu/src/dropdown-menu-trigger.directive.d.ts +7 -6
- package/esm2022/dropdown-menu/src/dropdown-menu-content.directive.mjs +28 -15
- package/esm2022/dropdown-menu/src/dropdown-menu-item-checkbox.directive.mjs +13 -3
- package/esm2022/dropdown-menu/src/dropdown-menu-item-radio.directive.mjs +9 -5
- package/esm2022/dropdown-menu/src/dropdown-menu-item-selectable.mjs +6 -15
- package/esm2022/dropdown-menu/src/dropdown-menu-item.directive.mjs +31 -15
- package/esm2022/dropdown-menu/src/dropdown-menu-trigger.directive.mjs +32 -24
- package/esm2022/separator/src/separator.directive.mjs +5 -6
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +109 -67
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-separator.mjs +4 -5
- package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
- package/package.json +1 -1
- package/separator/src/separator.directive.d.ts +1 -1
@@ -1,16 +1,15 @@
|
|
1
|
-
import { CdkMenu, CdkMenuItem
|
1
|
+
import { CdkMenu, CdkMenuItem } from '@angular/cdk/menu';
|
2
2
|
import { Subject } from 'rxjs';
|
3
3
|
import { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';
|
4
4
|
import { RdxDropdownMenuTriggerDirective } from './dropdown-menu-trigger.directive';
|
5
5
|
import * as i0 from "@angular/core";
|
6
|
-
|
7
|
-
export declare class RdxDropdownMenuContentDirective {
|
6
|
+
export declare class RdxDropdownMenuContentDirective extends CdkMenu {
|
8
7
|
readonly highlighted: Subject<RdxDropdownMenuItemDirective>;
|
9
|
-
readonly
|
10
|
-
|
11
|
-
|
8
|
+
readonly menuTrigger: RdxDropdownMenuTriggerDirective | null;
|
9
|
+
onEscapeKeyDown: (event?: Event) => void;
|
10
|
+
closeOnEscape: boolean;
|
12
11
|
constructor();
|
13
12
|
updateActiveItem(item: CdkMenuItem): void;
|
14
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDropdownMenuContentDirective, never>;
|
15
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuContentDirective, "[rdxDropdownMenuContent]", never, {
|
14
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuContentDirective, "[rdxDropdownMenuContent]", never, { "onEscapeKeyDown": { "alias": "onEscapeKeyDown"; "required": false; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; }; }, {}, never, never, true, never>;
|
16
15
|
}
|
@@ -1,6 +1,9 @@
|
|
1
1
|
import { RdxDropdownMenuSelectable } from './dropdown-menu-item-selectable';
|
2
2
|
import * as i0 from "@angular/core";
|
3
3
|
export declare class RdxDropdownMenuItemCheckboxDirective extends RdxDropdownMenuSelectable {
|
4
|
+
trigger(options?: {
|
5
|
+
keepOpen: boolean;
|
6
|
+
}): void;
|
4
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDropdownMenuItemCheckboxDirective, never>;
|
5
8
|
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuItemCheckboxDirective, "[rdxDropdownMenuItemCheckbox]", never, {}, {}, never, never, true, never>;
|
6
9
|
}
|
@@ -2,13 +2,11 @@ import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
/** Base class providing checked state for selectable DropdownMenuItems. */
|
5
|
-
export declare
|
5
|
+
export declare class RdxDropdownMenuSelectable extends RdxDropdownMenuItemDirective {
|
6
6
|
/** Whether the element is checked */
|
7
|
-
|
8
|
-
|
9
|
-
private _checked;
|
10
|
-
readonly onCheckedChange: EventEmitter<boolean>;
|
7
|
+
checked: boolean;
|
8
|
+
readonly checkedChange: EventEmitter<boolean>;
|
11
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDropdownMenuSelectable, never>;
|
12
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuSelectable, never, never, { "checked": { "alias": "checked"; "required": false; }; }, { "
|
10
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuSelectable, never, never, { "checked": { "alias": "checked"; "required": false; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
|
13
11
|
static ngAcceptInputType_checked: unknown;
|
14
12
|
}
|
@@ -2,16 +2,16 @@ import { CdkMenuItem } from '@angular/cdk/menu';
|
|
2
2
|
import { EventEmitter } from '@angular/core';
|
3
3
|
import { RdxDropdownMenuContentDirective } from './dropdown-menu-content.directive';
|
4
4
|
import * as i0 from "@angular/core";
|
5
|
-
|
6
|
-
export declare class RdxDropdownMenuItemDirective {
|
5
|
+
export declare class RdxDropdownMenuItemDirective extends CdkMenuItem {
|
7
6
|
protected readonly menu: RdxDropdownMenuContentDirective;
|
8
|
-
protected readonly cdkMenuItem: CdkMenuItem;
|
9
7
|
protected readonly nativeElement: any;
|
10
8
|
highlighted: boolean;
|
9
|
+
disabled: boolean;
|
11
10
|
readonly onSelect: EventEmitter<void>;
|
12
11
|
constructor();
|
13
12
|
protected onPointerMove(): void;
|
14
13
|
protected onKeydown(event: KeyboardEvent): void;
|
15
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDropdownMenuItemDirective, never>;
|
16
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuItemDirective, "[rdxDropdownMenuItem]", never, {
|
15
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuItemDirective, "[rdxDropdownMenuItem]", never, { "disabled": { "alias": "disabled"; "required": false; }; }, { "onSelect": "onSelect"; }, never, never, true, never>;
|
16
|
+
static ngAcceptInputType_disabled: unknown;
|
17
17
|
}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { BooleanInput } from '@angular/cdk/coercion';
|
2
2
|
import { CdkMenuTrigger } from '@angular/cdk/menu';
|
3
|
-
import { ConnectedPosition } from '@angular/cdk/overlay';
|
3
|
+
import { ConnectedPosition, OverlayRef } from '@angular/cdk/overlay';
|
4
|
+
import { TemplateRef } from '@angular/core';
|
4
5
|
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "@angular/cdk/menu";
|
6
6
|
export declare enum DropdownSide {
|
7
7
|
Top = "top",
|
8
8
|
Right = "right",
|
@@ -19,9 +19,9 @@ export declare const mapRdxAlignToCdkPosition: {
|
|
19
19
|
center: string;
|
20
20
|
end: string;
|
21
21
|
};
|
22
|
-
export declare class RdxDropdownMenuTriggerDirective {
|
23
|
-
protected readonly cdkMenuTrigger: CdkMenuTrigger;
|
22
|
+
export declare class RdxDropdownMenuTriggerDirective extends CdkMenuTrigger {
|
24
23
|
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
|
24
|
+
set rdxDropdownMenuTrigger(value: TemplateRef<unknown> | null);
|
25
25
|
set side(value: DropdownSide);
|
26
26
|
get side(): DropdownSide;
|
27
27
|
private _side;
|
@@ -30,13 +30,14 @@ export declare class RdxDropdownMenuTriggerDirective {
|
|
30
30
|
private _align;
|
31
31
|
set sideOffset(value: number);
|
32
32
|
set alignOffset(value: number);
|
33
|
+
onOpenChange: import("@angular/core").OutputRef<void>;
|
33
34
|
get isVertical(): boolean;
|
34
35
|
get defaultPosition(): ConnectedPosition;
|
35
|
-
onOpenChange: import("@angular/core").OutputRef<void>;
|
36
36
|
constructor();
|
37
37
|
onPointerDown($event: MouseEvent): void;
|
38
|
+
getOverlayRef(): OverlayRef | null;
|
38
39
|
static ɵfac: i0.ɵɵFactoryDeclaration<RdxDropdownMenuTriggerDirective, never>;
|
39
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuTriggerDirective, "[rdxDropdownMenuTrigger]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; }; "align": { "alias": "align"; "required": false; }; "sideOffset": { "alias": "sideOffset"; "required": false; }; "alignOffset": { "alias": "alignOffset"; "required": false; }; }, { "onOpenChange": "onOpenChange"; }, never, never, true,
|
40
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuTriggerDirective, "[rdxDropdownMenuTrigger]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "rdxDropdownMenuTrigger": { "alias": "rdxDropdownMenuTrigger"; "required": false; }; "side": { "alias": "side"; "required": false; }; "align": { "alias": "align"; "required": false; }; "sideOffset": { "alias": "sideOffset"; "required": false; }; "alignOffset": { "alias": "alignOffset"; "required": false; }; }, { "onOpenChange": "onOpenChange"; }, never, never, true, never>;
|
40
41
|
static ngAcceptInputType_sideOffset: unknown;
|
41
42
|
static ngAcceptInputType_alignOffset: unknown;
|
42
43
|
}
|
@@ -1,16 +1,15 @@
|
|
1
|
-
import { CdkMenu
|
2
|
-
import { Directive, inject } from '@angular/core';
|
1
|
+
import { CdkMenu } from '@angular/cdk/menu';
|
2
|
+
import { Directive, inject, Input } from '@angular/core';
|
3
3
|
import { pairwise, startWith, Subject } from 'rxjs';
|
4
4
|
import { RdxDropdownMenuTriggerDirective } from './dropdown-menu-trigger.directive';
|
5
5
|
import * as i0 from "@angular/core";
|
6
|
-
|
7
|
-
export class RdxDropdownMenuContentDirective {
|
6
|
+
export class RdxDropdownMenuContentDirective extends CdkMenu {
|
8
7
|
constructor() {
|
8
|
+
super();
|
9
9
|
this.highlighted = new Subject();
|
10
|
-
this.cdkMenu = inject(CdkMenu);
|
11
|
-
this.cdkMenuTrigger = inject(CdkMenuTrigger, { host: true });
|
12
10
|
this.menuTrigger = inject(RdxDropdownMenuTriggerDirective, { optional: true });
|
13
|
-
|
11
|
+
this.onEscapeKeyDown = () => undefined;
|
12
|
+
this.closeOnEscape = true;
|
14
13
|
this.highlighted.pipe(startWith(null), pairwise()).subscribe(([prev, item]) => {
|
15
14
|
if (prev) {
|
16
15
|
prev.highlighted = false;
|
@@ -21,23 +20,37 @@ export class RdxDropdownMenuContentDirective {
|
|
21
20
|
});
|
22
21
|
}
|
23
22
|
updateActiveItem(item) {
|
24
|
-
this.
|
23
|
+
this.keyManager.updateActiveItem(item);
|
25
24
|
}
|
26
25
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
27
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: RdxDropdownMenuContentDirective, isStandalone: true, selector: "[rdxDropdownMenuContent]", host: { properties: { "attr.data-state": "
|
26
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: RdxDropdownMenuContentDirective, isStandalone: true, selector: "[rdxDropdownMenuContent]", inputs: { onEscapeKeyDown: "onEscapeKeyDown", closeOnEscape: "closeOnEscape" }, host: { properties: { "attr.data-state": "menuTrigger.isOpen() ? 'open': 'closed'", "attr.data-align": "menuTrigger!.align", "attr.data-side": "menuTrigger!.side", "attr.data-orientation": "orientation" } }, providers: [
|
27
|
+
{
|
28
|
+
provide: CdkMenu,
|
29
|
+
useExisting: RdxDropdownMenuContentDirective
|
30
|
+
}
|
31
|
+
], usesInheritance: true, ngImport: i0 }); }
|
28
32
|
}
|
29
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuContentDirective, decorators: [{
|
30
34
|
type: Directive,
|
31
35
|
args: [{
|
32
36
|
selector: '[rdxDropdownMenuContent]',
|
33
37
|
standalone: true,
|
34
|
-
hostDirectives: [CdkMenu, CdkTargetMenuAim],
|
35
38
|
host: {
|
36
|
-
'[attr.data-state]': "
|
39
|
+
'[attr.data-state]': "menuTrigger.isOpen() ? 'open': 'closed'",
|
37
40
|
'[attr.data-align]': 'menuTrigger!.align',
|
38
41
|
'[attr.data-side]': 'menuTrigger!.side',
|
39
|
-
'[attr.data-orientation]': '
|
40
|
-
}
|
42
|
+
'[attr.data-orientation]': 'orientation'
|
43
|
+
},
|
44
|
+
providers: [
|
45
|
+
{
|
46
|
+
provide: CdkMenu,
|
47
|
+
useExisting: RdxDropdownMenuContentDirective
|
48
|
+
}
|
49
|
+
]
|
41
50
|
}]
|
42
|
-
}], ctorParameters: () => []
|
43
|
-
|
51
|
+
}], ctorParameters: () => [], propDecorators: { onEscapeKeyDown: [{
|
52
|
+
type: Input
|
53
|
+
}], closeOnEscape: [{
|
54
|
+
type: Input
|
55
|
+
}] } });
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1jb250ZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvZHJvcGRvd24tbWVudS9zcmMvZHJvcGRvd24tbWVudS1jb250ZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFrQnBGLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxPQUFPO0lBT3hEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFQSCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFnQyxDQUFDO1FBQzFELGdCQUFXLEdBQUcsTUFBTSxDQUFDLCtCQUErQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFMUUsb0JBQWUsR0FBNEIsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQzNELGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBS25DLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDMUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUM3QixDQUFDO1lBRUQsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUM1QixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBaUI7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDOzhHQXZCUSwrQkFBK0I7a0dBQS9CLCtCQUErQix1V0FQN0I7WUFDUDtnQkFDSSxPQUFPLEVBQUUsT0FBTztnQkFDaEIsV0FBVyxFQUFFLCtCQUErQjthQUMvQztTQUNKOzsyRkFFUSwrQkFBK0I7a0JBaEIzQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsbUJBQW1CLEVBQUUseUNBQXlDO3dCQUM5RCxtQkFBbUIsRUFBRSxvQkFBb0I7d0JBQ3pDLGtCQUFrQixFQUFFLG1CQUFtQjt3QkFDdkMseUJBQXlCLEVBQUUsYUFBYTtxQkFDM0M7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxPQUFPOzRCQUNoQixXQUFXLGlDQUFpQzt5QkFDL0M7cUJBQ0o7aUJBQ0o7d0RBS1ksZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrTWVudSwgQ2RrTWVudUl0ZW0gfSBmcm9tICdAYW5ndWxhci9jZGsvbWVudSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHBhaXJ3aXNlLCBzdGFydFdpdGgsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkeERyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2Ryb3Bkb3duLW1lbnUtaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR4RHJvcGRvd25NZW51VHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4vZHJvcGRvd24tbWVudS10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeERyb3Bkb3duTWVudUNvbnRlbnRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc3RhdGVdJzogXCJtZW51VHJpZ2dlci5pc09wZW4oKSA/ICdvcGVuJzogJ2Nsb3NlZCdcIixcbiAgICAgICAgJ1thdHRyLmRhdGEtYWxpZ25dJzogJ21lbnVUcmlnZ2VyIS5hbGlnbicsXG4gICAgICAgICdbYXR0ci5kYXRhLXNpZGVdJzogJ21lbnVUcmlnZ2VyIS5zaWRlJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtb3JpZW50YXRpb25dJzogJ29yaWVudGF0aW9uJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENka01lbnUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogUmR4RHJvcGRvd25NZW51Q29udGVudERpcmVjdGl2ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBSZHhEcm9wZG93bk1lbnVDb250ZW50RGlyZWN0aXZlIGV4dGVuZHMgQ2RrTWVudSB7XG4gICAgcmVhZG9ubHkgaGlnaGxpZ2h0ZWQgPSBuZXcgU3ViamVjdDxSZHhEcm9wZG93bk1lbnVJdGVtRGlyZWN0aXZlPigpO1xuICAgIHJlYWRvbmx5IG1lbnVUcmlnZ2VyID0gaW5qZWN0KFJkeERyb3Bkb3duTWVudVRyaWdnZXJEaXJlY3RpdmUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICBASW5wdXQoKSBvbkVzY2FwZUtleURvd246IChldmVudD86IEV2ZW50KSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGNsb3NlT25Fc2NhcGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5oaWdobGlnaHRlZC5waXBlKHN0YXJ0V2l0aChudWxsKSwgcGFpcndpc2UoKSkuc3Vic2NyaWJlKChbcHJldiwgaXRlbV0pID0+IHtcbiAgICAgICAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgICAgICAgICAgcHJldi5oaWdobGlnaHRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgIGl0ZW0uaGlnaGxpZ2h0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGVBY3RpdmVJdGVtKGl0ZW06IENka01lbnVJdGVtKSB7XG4gICAgICAgIHRoaXMua2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKGl0ZW0pO1xuICAgIH1cbn1cbiJdfQ==
|
@@ -1,12 +1,21 @@
|
|
1
|
+
import { CdkMenuItem } from '@angular/cdk/menu';
|
1
2
|
import { Directive } from '@angular/core';
|
2
3
|
import { RdxDropdownMenuSelectable } from './dropdown-menu-item-selectable';
|
3
4
|
import { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';
|
4
5
|
import * as i0 from "@angular/core";
|
5
6
|
export class RdxDropdownMenuItemCheckboxDirective extends RdxDropdownMenuSelectable {
|
7
|
+
trigger(options) {
|
8
|
+
if (!this.disabled) {
|
9
|
+
this.checked = !this.checked;
|
10
|
+
this.checkedChange.emit(this.checked);
|
11
|
+
}
|
12
|
+
super.trigger(options);
|
13
|
+
}
|
6
14
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuItemCheckboxDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
7
15
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: RdxDropdownMenuItemCheckboxDirective, isStandalone: true, selector: "[rdxDropdownMenuItemCheckbox]", host: { attributes: { "role": "menuitemcheckbox" } }, providers: [
|
8
16
|
{ provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemCheckboxDirective },
|
9
|
-
{ provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable }
|
17
|
+
{ provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },
|
18
|
+
{ provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective }
|
10
19
|
], usesInheritance: true, ngImport: i0 }); }
|
11
20
|
}
|
12
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuItemCheckboxDirective, decorators: [{
|
@@ -19,8 +28,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
19
28
|
},
|
20
29
|
providers: [
|
21
30
|
{ provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemCheckboxDirective },
|
22
|
-
{ provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable }
|
31
|
+
{ provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },
|
32
|
+
{ provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective }
|
23
33
|
]
|
24
34
|
}]
|
25
35
|
}] });
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1pdGVtLWNoZWNrYm94LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvZHJvcGRvd24tbWVudS9zcmMvZHJvcGRvd24tbWVudS1pdGVtLWNoZWNrYm94LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFjOUUsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLHlCQUF5QjtJQUN0RSxPQUFPLENBQUMsT0FBK0I7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUU3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQzs4R0FUUSxvQ0FBb0M7a0dBQXBDLG9DQUFvQyxrSUFObEM7WUFDUCxFQUFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxXQUFXLEVBQUUsb0NBQW9DLEVBQUU7WUFDekYsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFO1lBQ2pGLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUU7U0FDdEU7OzJGQUVRLG9DQUFvQztrQkFaaEQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNGLElBQUksRUFBRSxrQkFBa0I7cUJBQzNCO29CQUNELFNBQVMsRUFBRTt3QkFDUCxFQUFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxXQUFXLHNDQUFzQyxFQUFFO3dCQUN6RixFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLEVBQUUseUJBQXlCLEVBQUU7d0JBQ2pGLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUU7cUJBQ3RFO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrTWVudUl0ZW0gfSBmcm9tICdAYW5ndWxhci9jZGsvbWVudSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeERyb3Bkb3duTWVudVNlbGVjdGFibGUgfSBmcm9tICcuL2Ryb3Bkb3duLW1lbnUtaXRlbS1zZWxlY3RhYmxlJztcbmltcG9ydCB7IFJkeERyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2Ryb3Bkb3duLW1lbnUtaXRlbS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhEcm9wZG93bk1lbnVJdGVtQ2hlY2tib3hdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ21lbnVpdGVtY2hlY2tib3gnXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBSZHhEcm9wZG93bk1lbnVTZWxlY3RhYmxlLCB1c2VFeGlzdGluZzogUmR4RHJvcGRvd25NZW51SXRlbUNoZWNrYm94RGlyZWN0aXZlIH0sXG4gICAgICAgIHsgcHJvdmlkZTogUmR4RHJvcGRvd25NZW51SXRlbURpcmVjdGl2ZSwgdXNlRXhpc3Rpbmc6IFJkeERyb3Bkb3duTWVudVNlbGVjdGFibGUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBDZGtNZW51SXRlbSwgdXNlRXhpc3Rpbmc6IFJkeERyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUmR4RHJvcGRvd25NZW51SXRlbUNoZWNrYm94RGlyZWN0aXZlIGV4dGVuZHMgUmR4RHJvcGRvd25NZW51U2VsZWN0YWJsZSB7XG4gICAgb3ZlcnJpZGUgdHJpZ2dlcihvcHRpb25zPzogeyBrZWVwT3BlbjogYm9vbGVhbiB9KSB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcblxuICAgICAgICAgICAgdGhpcy5jaGVja2VkQ2hhbmdlLmVtaXQodGhpcy5jaGVja2VkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLnRyaWdnZXIob3B0aW9ucyk7XG4gICAgfVxufVxuIl19
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { UniqueSelectionDispatcher } from '@angular/cdk/collections';
|
2
|
+
import { CdkMenuItem } from '@angular/cdk/menu';
|
2
3
|
import { Directive, inject, Input } from '@angular/core';
|
3
4
|
import { RdxDropdownMenuItemRadioGroupDirective } from './dropdown-menu-item-radio-group.directive';
|
4
5
|
import { RdxDropdownMenuSelectable } from './dropdown-menu-item-selectable';
|
@@ -20,8 +21,8 @@ export class RdxDropdownMenuItemRadioDirective extends RdxDropdownMenuSelectable
|
|
20
21
|
this.group = inject(RdxDropdownMenuItemRadioGroupDirective);
|
21
22
|
/** An ID to identify this radio item to the `UniqueSelectionDispatcher`. */
|
22
23
|
this.id = `${nextId++}`;
|
23
|
-
this.
|
24
|
-
if (!this.
|
24
|
+
this.triggered.subscribe(() => {
|
25
|
+
if (!this.disabled) {
|
25
26
|
this.selectionDispatcher.notify(this.value, '');
|
26
27
|
this.group.valueChange.emit(this.value);
|
27
28
|
}
|
@@ -33,12 +34,14 @@ export class RdxDropdownMenuItemRadioDirective extends RdxDropdownMenuSelectable
|
|
33
34
|
});
|
34
35
|
}
|
35
36
|
ngOnDestroy() {
|
37
|
+
super.ngOnDestroy();
|
36
38
|
this.removeDispatcherListener();
|
37
39
|
}
|
38
40
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuItemRadioDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
39
41
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: RdxDropdownMenuItemRadioDirective, isStandalone: true, selector: "[rdxDropdownMenuItemRadio]", inputs: { value: "value" }, host: { attributes: { "role": "menuitemradio" } }, providers: [
|
40
42
|
{ provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemRadioDirective },
|
41
|
-
{ provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable }
|
43
|
+
{ provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },
|
44
|
+
{ provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective }
|
42
45
|
], usesInheritance: true, ngImport: i0 }); }
|
43
46
|
}
|
44
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuItemRadioDirective, decorators: [{
|
@@ -51,10 +54,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
51
54
|
},
|
52
55
|
providers: [
|
53
56
|
{ provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemRadioDirective },
|
54
|
-
{ provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable }
|
57
|
+
{ provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },
|
58
|
+
{ provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective }
|
55
59
|
]
|
56
60
|
}]
|
57
61
|
}], ctorParameters: () => [], propDecorators: { value: [{
|
58
62
|
type: Input
|
59
63
|
}] } });
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1pdGVtLXJhZGlvLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvZHJvcGRvd24tbWVudS9zcmMvZHJvcGRvd24tbWVudS1pdGVtLXJhZGlvLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFvQixTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFFOUUscUVBQXFFO0FBQ3JFLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQWNmLE1BQU0sT0FBTyxpQ0FDVCxTQUFRLHlCQUF5QjtJQVFqQyxJQUNJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBU0Q7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQXRCWixpR0FBaUc7UUFDaEYsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFeEQsVUFBSyxHQUFHLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBYXhFLDRFQUE0RTtRQUNwRSxPQUFFLEdBQUcsR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBT3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBRWhELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBVSxFQUFFLEVBQUU7WUFDM0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzhHQTlDUSxpQ0FBaUM7a0dBQWpDLGlDQUFpQyx3SkFOL0I7WUFDUCxFQUFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxXQUFXLEVBQUUsaUNBQWlDLEVBQUU7WUFDdEYsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFO1lBQ2pGLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUU7U0FDdEU7OzJGQUVRLGlDQUFpQztrQkFaN0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNGLElBQUksRUFBRSxlQUFlO3FCQUN4QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsV0FBVyxtQ0FBbUMsRUFBRTt3QkFDdEYsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFO3dCQUNqRixFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFO3FCQUN0RTtpQkFDSjt3REFXTyxLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVbmlxdWVTZWxlY3Rpb25EaXNwYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IENka01lbnVJdGVtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL21lbnUnO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgRGlyZWN0aXZlLCBpbmplY3QsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeERyb3Bkb3duTWVudUl0ZW1SYWRpb0dyb3VwRGlyZWN0aXZlIH0gZnJvbSAnLi9kcm9wZG93bi1tZW51LWl0ZW0tcmFkaW8tZ3JvdXAuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeERyb3Bkb3duTWVudVNlbGVjdGFibGUgfSBmcm9tICcuL2Ryb3Bkb3duLW1lbnUtaXRlbS1zZWxlY3RhYmxlJztcbmltcG9ydCB7IFJkeERyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2Ryb3Bkb3duLW1lbnUtaXRlbS5kaXJlY3RpdmUnO1xuXG4vKiogQ291bnRlciB1c2VkIHRvIHNldCBhIHVuaXF1ZSBpZCBhbmQgbmFtZSBmb3IgYSBzZWxlY3RhYmxlIGl0ZW0gKi9cbmxldCBuZXh0SWQgPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhEcm9wZG93bk1lbnVJdGVtUmFkaW9dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ21lbnVpdGVtcmFkaW8nXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBSZHhEcm9wZG93bk1lbnVTZWxlY3RhYmxlLCB1c2VFeGlzdGluZzogUmR4RHJvcGRvd25NZW51SXRlbVJhZGlvRGlyZWN0aXZlIH0sXG4gICAgICAgIHsgcHJvdmlkZTogUmR4RHJvcGRvd25NZW51SXRlbURpcmVjdGl2ZSwgdXNlRXhpc3Rpbmc6IFJkeERyb3Bkb3duTWVudVNlbGVjdGFibGUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBDZGtNZW51SXRlbSwgdXNlRXhpc3Rpbmc6IFJkeERyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUmR4RHJvcGRvd25NZW51SXRlbVJhZGlvRGlyZWN0aXZlXG4gICAgZXh0ZW5kcyBSZHhEcm9wZG93bk1lbnVTZWxlY3RhYmxlXG4gICAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3lcbntcbiAgICAvKiogVGhlIHVuaXF1ZSBzZWxlY3Rpb24gZGlzcGF0Y2hlciBmb3IgdGhpcyByYWRpbydzIGBSZHhEcm9wZG93bk1lbnVJdGVtUmFkaW9Hcm91cERpcmVjdGl2ZWAuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3Rpb25EaXNwYXRjaGVyID0gaW5qZWN0KFVuaXF1ZVNlbGVjdGlvbkRpc3BhdGNoZXIpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBncm91cCA9IGluamVjdChSZHhEcm9wZG93bk1lbnVJdGVtUmFkaW9Hcm91cERpcmVjdGl2ZSk7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlIHx8IHRoaXMuaWQ7XG4gICAgfVxuXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEFuIElEIHRvIGlkZW50aWZ5IHRoaXMgcmFkaW8gaXRlbSB0byB0aGUgYFVuaXF1ZVNlbGVjdGlvbkRpc3BhdGNoZXJgLiAqL1xuICAgIHByaXZhdGUgaWQgPSBgJHtuZXh0SWQrK31gO1xuXG4gICAgcHJpdmF0ZSByZW1vdmVEaXNwYXRjaGVyTGlzdGVuZXIhOiAoKSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy50cmlnZ2VyZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uRGlzcGF0Y2hlci5ub3RpZnkodGhpcy52YWx1ZSwgJycpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5ncm91cC52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlRGlzcGF0Y2hlckxpc3RlbmVyID0gdGhpcy5zZWxlY3Rpb25EaXNwYXRjaGVyLmxpc3RlbigoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy52YWx1ZSA9PT0gaWQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLnJlbW92ZURpc3BhdGNoZXJMaXN0ZW5lcigpO1xuICAgIH1cbn1cbiJdfQ==
|
@@ -5,21 +5,12 @@ import * as i0 from "@angular/core";
|
|
5
5
|
export class RdxDropdownMenuSelectable extends RdxDropdownMenuItemDirective {
|
6
6
|
constructor() {
|
7
7
|
super(...arguments);
|
8
|
-
|
9
|
-
this.
|
10
|
-
|
11
|
-
/** Whether the element is checked */
|
12
|
-
set checked(value) {
|
13
|
-
if (this._checked == value)
|
14
|
-
return;
|
15
|
-
this._checked = value;
|
16
|
-
this.onCheckedChange.emit(value);
|
17
|
-
}
|
18
|
-
get checked() {
|
19
|
-
return this._checked;
|
8
|
+
/** Whether the element is checked */
|
9
|
+
this.checked = false;
|
10
|
+
this.checkedChange = new EventEmitter();
|
20
11
|
}
|
21
12
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuSelectable, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
22
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.2", type: RdxDropdownMenuSelectable, isStandalone: true, inputs: { checked: ["checked", "checked", booleanAttribute] }, outputs: {
|
13
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.2", type: RdxDropdownMenuSelectable, isStandalone: true, inputs: { checked: ["checked", "checked", booleanAttribute] }, outputs: { checkedChange: "checkedChange" }, host: { properties: { "attr.aria-checked": "!!checked", "attr.aria-disabled": "disabled || null", "attr.data-state": "checked ? \"checked\" : \"unchecked\"" } }, usesInheritance: true, ngImport: i0 }); }
|
23
14
|
}
|
24
15
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuSelectable, decorators: [{
|
25
16
|
type: Directive,
|
@@ -34,7 +25,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
34
25
|
}], propDecorators: { checked: [{
|
35
26
|
type: Input,
|
36
27
|
args: [{ transform: booleanAttribute }]
|
37
|
-
}],
|
28
|
+
}], checkedChange: [{
|
38
29
|
type: Output
|
39
30
|
}] } });
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1pdGVtLXNlbGVjdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2Ryb3Bkb3duLW1lbnUvc3JjL2Ryb3Bkb3duLW1lbnUtaXRlbS1zZWxlY3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRTlFLDJFQUEyRTtBQVMzRSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsNEJBQTRCO0lBUjNFOztRQVNJLHFDQUFxQztRQUNHLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFOUMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0tBQ2xFOzhHQUxZLHlCQUF5QjtrR0FBekIseUJBQXlCLGdFQUVkLGdCQUFnQjs7MkZBRjNCLHlCQUF5QjtrQkFSckMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNGLHFCQUFxQixFQUFFLFdBQVc7d0JBQ2xDLHNCQUFzQixFQUFFLGtCQUFrQjt3QkFDMUMsbUJBQW1CLEVBQUUsbUNBQW1DO3FCQUMzRDtpQkFDSjs4QkFHMkMsT0FBTztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFbkIsYUFBYTtzQkFBL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZHhEcm9wZG93bk1lbnVJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9kcm9wZG93bi1tZW51LWl0ZW0uZGlyZWN0aXZlJztcblxuLyoqIEJhc2UgY2xhc3MgcHJvdmlkaW5nIGNoZWNrZWQgc3RhdGUgZm9yIHNlbGVjdGFibGUgRHJvcGRvd25NZW51SXRlbXMuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmFyaWEtY2hlY2tlZF0nOiAnISFjaGVja2VkJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkIHx8IG51bGwnLFxuICAgICAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnY2hlY2tlZCA/IFwiY2hlY2tlZFwiIDogXCJ1bmNoZWNrZWRcIidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeERyb3Bkb3duTWVudVNlbGVjdGFibGUgZXh0ZW5kcyBSZHhEcm9wZG93bk1lbnVJdGVtRGlyZWN0aXZlIHtcbiAgICAvKiogV2hldGhlciB0aGUgZWxlbWVudCBpcyBjaGVja2VkICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSByZWFkb25seSBjaGVja2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xufVxuIl19
|
@@ -1,55 +1,71 @@
|
|
1
|
-
import { CdkMenuItem } from '@angular/cdk/menu';
|
2
|
-
import { Directive, ElementRef, EventEmitter, inject, Output } from '@angular/core';
|
1
|
+
import { CDK_MENU, CdkMenuItem } from '@angular/cdk/menu';
|
2
|
+
import { booleanAttribute, Directive, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
4
4
|
import { RdxDropdownMenuContentDirective } from './dropdown-menu-content.directive';
|
5
5
|
import * as i0 from "@angular/core";
|
6
|
-
|
7
|
-
export class RdxDropdownMenuItemDirective {
|
6
|
+
export class RdxDropdownMenuItemDirective extends CdkMenuItem {
|
8
7
|
constructor() {
|
8
|
+
super();
|
9
9
|
this.menu = inject(RdxDropdownMenuContentDirective);
|
10
|
-
this.cdkMenuItem = inject(CdkMenuItem);
|
11
10
|
this.nativeElement = inject(ElementRef).nativeElement;
|
12
11
|
this.highlighted = false;
|
12
|
+
this.disabled = false;
|
13
13
|
this.onSelect = new EventEmitter();
|
14
14
|
this.menu.highlighted.pipe(takeUntilDestroyed()).subscribe((value) => {
|
15
15
|
if (value !== this) {
|
16
16
|
this.highlighted = false;
|
17
17
|
}
|
18
18
|
});
|
19
|
-
this.
|
19
|
+
this.triggered.subscribe(this.onSelect);
|
20
20
|
}
|
21
21
|
onPointerMove() {
|
22
22
|
this.nativeElement.focus({ preventScroll: true });
|
23
|
-
this.menu.updateActiveItem(this
|
23
|
+
this.menu.updateActiveItem(this);
|
24
24
|
}
|
25
25
|
onKeydown(event) {
|
26
26
|
if (this.nativeElement.tagName !== 'BUTTON' && ['Enter', ' '].includes(event.key)) {
|
27
27
|
event.preventDefault();
|
28
28
|
}
|
29
|
+
if (event.key === 'Escape') {
|
30
|
+
if (!this.menu.closeOnEscape) {
|
31
|
+
event.stopPropagation();
|
32
|
+
}
|
33
|
+
else {
|
34
|
+
this.menu.onEscapeKeyDown(event);
|
35
|
+
}
|
36
|
+
}
|
29
37
|
}
|
30
38
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
31
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
39
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.2", type: RdxDropdownMenuItemDirective, isStandalone: true, selector: "[rdxDropdownMenuItem]", inputs: { disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { onSelect: "onSelect" }, host: { attributes: { "type": "button" }, listeners: { "pointermove": "onPointerMove()", "focus": "menu.highlighted.next(this)", "keydown": "onKeydown($event)" }, properties: { "attr.data-orientation": "\"vertical\"", "attr.data-highlighted": "highlighted ? \"\" : null", "attr.data-disabled": "disabled ? \"\" : null", "attr.disabled": "disabled ? \"\" : null" } }, providers: [
|
40
|
+
{ provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },
|
41
|
+
{ provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }
|
42
|
+
], usesInheritance: true, ngImport: i0 }); }
|
32
43
|
}
|
33
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuItemDirective, decorators: [{
|
34
45
|
type: Directive,
|
35
46
|
args: [{
|
36
47
|
selector: '[rdxDropdownMenuItem]',
|
37
48
|
standalone: true,
|
38
|
-
// todo hostDirectives + extends
|
39
|
-
hostDirectives: [{ directive: CdkMenuItem, inputs: ['cdkMenuItemDisabled: disabled'] }],
|
40
49
|
host: {
|
41
50
|
type: 'button',
|
42
51
|
// todo horizontal ?
|
43
52
|
'[attr.data-orientation]': '"vertical"',
|
44
53
|
'[attr.data-highlighted]': 'highlighted ? "" : null',
|
45
|
-
'[attr.data-disabled]': '
|
46
|
-
'[attr.disabled]': '
|
54
|
+
'[attr.data-disabled]': 'disabled ? "" : null',
|
55
|
+
'[attr.disabled]': 'disabled ? "" : null',
|
47
56
|
'(pointermove)': 'onPointerMove()',
|
48
57
|
'(focus)': 'menu.highlighted.next(this)',
|
49
58
|
'(keydown)': 'onKeydown($event)'
|
50
|
-
}
|
59
|
+
},
|
60
|
+
providers: [
|
61
|
+
{ provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },
|
62
|
+
{ provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }
|
63
|
+
]
|
51
64
|
}]
|
52
|
-
}], ctorParameters: () => [], propDecorators: {
|
65
|
+
}], ctorParameters: () => [], propDecorators: { disabled: [{
|
66
|
+
type: Input,
|
67
|
+
args: [{ transform: booleanAttribute }]
|
68
|
+
}], onSelect: [{
|
53
69
|
type: Output
|
54
70
|
}] } });
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvZHJvcGRvd24tbWVudS9zcmMvZHJvcGRvd24tbWVudS1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFxQnBGLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxXQUFXO0lBVXpEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFWTyxTQUFJLEdBQUcsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDL0Msa0JBQWEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBRXBFLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRTZCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFeEQsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFLbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqRSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDN0IsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFUyxhQUFhO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRVMsU0FBUyxDQUFDLEtBQW9CO1FBQ3BDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEtBQUssUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNoRixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDM0IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzVCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7OEdBdkNRLDRCQUE0QjtrR0FBNUIsNEJBQTRCLHNHQU1qQixnQkFBZ0Isa2FBWHpCO1lBQ1AsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSw0QkFBNEIsRUFBRTtZQUNuRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFO1NBQ3RFOzsyRkFFUSw0QkFBNEI7a0JBbkJ4QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsSUFBSSxFQUFFLFFBQVE7d0JBQ2Qsb0JBQW9CO3dCQUNwQix5QkFBeUIsRUFBRSxZQUFZO3dCQUN2Qyx5QkFBeUIsRUFBRSx5QkFBeUI7d0JBQ3BELHNCQUFzQixFQUFFLHNCQUFzQjt3QkFDOUMsaUJBQWlCLEVBQUUsc0JBQXNCO3dCQUN6QyxlQUFlLEVBQUUsaUJBQWlCO3dCQUNsQyxTQUFTLEVBQUUsNkJBQTZCO3dCQUN4QyxXQUFXLEVBQUUsbUJBQW1CO3FCQUNuQztvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsOEJBQThCLEVBQUU7d0JBQ25FLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsK0JBQStCLEVBQUU7cUJBQ3RFO2lCQUNKO3dEQU9vRCxRQUFRO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVuQixRQUFRO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ0RLX01FTlUsIENka01lbnVJdGVtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL21lbnUnO1xuaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQgeyBSZHhEcm9wZG93bk1lbnVDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9kcm9wZG93bi1tZW51LWNvbnRlbnQuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4RHJvcGRvd25NZW51SXRlbV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgLy8gdG9kbyBob3Jpem9udGFsID9cbiAgICAgICAgJ1thdHRyLmRhdGEtb3JpZW50YXRpb25dJzogJ1widmVydGljYWxcIicsXG4gICAgICAgICdbYXR0ci5kYXRhLWhpZ2hsaWdodGVkXSc6ICdoaWdobGlnaHRlZCA/IFwiXCIgOiBudWxsJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkID8gXCJcIiA6IG51bGwnLFxuICAgICAgICAnW2F0dHIuZGlzYWJsZWRdJzogJ2Rpc2FibGVkID8gXCJcIiA6IG51bGwnLFxuICAgICAgICAnKHBvaW50ZXJtb3ZlKSc6ICdvblBvaW50ZXJNb3ZlKCknLFxuICAgICAgICAnKGZvY3VzKSc6ICdtZW51LmhpZ2hsaWdodGVkLm5leHQodGhpcyknLFxuICAgICAgICAnKGtleWRvd24pJzogJ29uS2V5ZG93bigkZXZlbnQpJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogQ2RrTWVudUl0ZW0sIHVzZUV4aXN0aW5nOiBSZHhEcm9wZG93bk1lbnVJdGVtRGlyZWN0aXZlIH0sXG4gICAgICAgIHsgcHJvdmlkZTogQ0RLX01FTlUsIHVzZUV4aXN0aW5nOiBSZHhEcm9wZG93bk1lbnVDb250ZW50RGlyZWN0aXZlIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFJkeERyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUgZXh0ZW5kcyBDZGtNZW51SXRlbSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1lbnUgPSBpbmplY3QoUmR4RHJvcGRvd25NZW51Q29udGVudERpcmVjdGl2ZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5hdGl2ZUVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcblxuICAgIGhpZ2hsaWdodGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgb3ZlcnJpZGUgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSByZWFkb25seSBvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMubWVudS5oaWdobGlnaHRlZC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZ2hsaWdodGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudHJpZ2dlcmVkLnN1YnNjcmliZSh0aGlzLm9uU2VsZWN0KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Qb2ludGVyTW92ZSgpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgdGhpcy5tZW51LnVwZGF0ZUFjdGl2ZUl0ZW0odGhpcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVFbGVtZW50LnRhZ05hbWUgIT09ICdCVVRUT04nICYmIFsnRW50ZXInLCAnICddLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLm1lbnUuY2xvc2VPbkVzY2FwZSkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnUub25Fc2NhcGVLZXlEb3duKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|