@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.
@@ -1,8 +1,7 @@
1
- import { CdkMenuTrigger } from '@angular/cdk/menu';
2
- import { booleanAttribute, Directive, inject, Input, input, numberAttribute } from '@angular/core';
1
+ import { CdkMenuTrigger, MENU_TRIGGER, PARENT_OR_NEW_MENU_STACK_PROVIDER } from '@angular/cdk/menu';
2
+ import { booleanAttribute, Directive, Input, input, numberAttribute } from '@angular/core';
3
3
  import { outputFromObservable } from '@angular/core/rxjs-interop';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/cdk/menu";
6
5
  export var DropdownSide;
7
6
  (function (DropdownSide) {
8
7
  DropdownSide["Top"] = "top";
@@ -55,13 +54,16 @@ const dropdownPositions = {
55
54
  offsetY: 0
56
55
  }
57
56
  };
58
- export class RdxDropdownMenuTriggerDirective {
57
+ export class RdxDropdownMenuTriggerDirective extends CdkMenuTrigger {
58
+ set rdxDropdownMenuTrigger(value) {
59
+ this.menuTemplateRef = value;
60
+ }
59
61
  set side(value) {
60
62
  if (!Object.values(DropdownSide).includes(value)) {
61
63
  throw new Error(`Unknown side: ${value}`);
62
64
  }
63
65
  this._side = value;
64
- this.cdkMenuTrigger.menuPosition[0] = dropdownPositions[value];
66
+ this.menuPosition[0] = dropdownPositions[value];
65
67
  }
66
68
  get side() {
67
69
  return this._side;
@@ -103,58 +105,64 @@ export class RdxDropdownMenuTriggerDirective {
103
105
  return this._side === DropdownSide.Top || this._side === DropdownSide.Bottom;
104
106
  }
105
107
  get defaultPosition() {
106
- return this.cdkMenuTrigger.menuPosition[0];
108
+ return this.menuPosition[0];
107
109
  }
108
110
  constructor() {
109
- this.cdkMenuTrigger = inject(CdkMenuTrigger, { host: true });
111
+ super();
110
112
  this.disabled = input(false, {
111
113
  transform: booleanAttribute
112
114
  });
113
115
  this._side = DropdownSide.Bottom;
114
116
  this._align = DropdownAlign.Start;
115
- this.onOpenChange = outputFromObservable(this.cdkMenuTrigger?.opened);
117
+ this.onOpenChange = outputFromObservable(this.opened);
116
118
  // todo priority
117
- this.cdkMenuTrigger.menuPosition = [
118
- { ...dropdownPositions[DropdownSide.Bottom] }
119
- ];
119
+ this.menuPosition = [{ ...dropdownPositions[DropdownSide.Bottom] }];
120
120
  }
121
121
  onPointerDown($event) {
122
122
  // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)
123
123
  // but not when the control key is pressed (avoiding MacOS right click)
124
124
  if (!this.disabled() && $event.button === 0 && !$event.ctrlKey) {
125
125
  /* empty */
126
- if (!this.cdkMenuTrigger.isOpen()) {
126
+ if (!this.isOpen()) {
127
127
  // prevent trigger focusing when opening
128
128
  // this allows the content to be given focus without competition
129
129
  $event.preventDefault();
130
130
  }
131
131
  }
132
132
  }
133
+ getOverlayRef() {
134
+ return this.overlayRef;
135
+ }
133
136
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
134
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: RdxDropdownMenuTriggerDirective, isStandalone: true, selector: "[rdxDropdownMenuTrigger]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: false, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: false, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, alignOffset: { classPropertyName: "alignOffset", publicName: "alignOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute } }, outputs: { onOpenChange: "onOpenChange" }, host: { attributes: { "type": "button" }, listeners: { "pointerdown": "onPointerDown($event)" }, properties: { "attr.aria-haspopup": "'menu'", "attr.aria-expanded": "cdkMenuTrigger.isOpen()", "attr.data-state": "cdkMenuTrigger.isOpen() ? 'open': 'closed'", "attr.data-disabled": "disabled() ? '' : undefined", "disabled": "disabled()" } }, hostDirectives: [{ directive: i1.CdkMenuTrigger, inputs: ["cdkMenuTriggerFor", "rdxDropdownMenuTrigger"] }], ngImport: i0 }); }
137
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: RdxDropdownMenuTriggerDirective, isStandalone: true, selector: "[rdxDropdownMenuTrigger]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, rdxDropdownMenuTrigger: { classPropertyName: "rdxDropdownMenuTrigger", publicName: "rdxDropdownMenuTrigger", isSignal: false, isRequired: false, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: false, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: false, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, alignOffset: { classPropertyName: "alignOffset", publicName: "alignOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute } }, outputs: { onOpenChange: "onOpenChange" }, host: { attributes: { "type": "button" }, listeners: { "pointerdown": "onPointerDown($event)" }, properties: { "attr.aria-haspopup": "'menu'", "attr.aria-expanded": "isOpen()", "attr.data-state": "isOpen() ? 'open': 'closed'", "attr.data-disabled": "disabled() ? '' : undefined", "disabled": "disabled()" } }, providers: [
138
+ { provide: CdkMenuTrigger, useExisting: RdxDropdownMenuTriggerDirective },
139
+ { provide: MENU_TRIGGER, useExisting: CdkMenuTrigger },
140
+ PARENT_OR_NEW_MENU_STACK_PROVIDER
141
+ ], usesInheritance: true, ngImport: i0 }); }
135
142
  }
136
143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuTriggerDirective, decorators: [{
137
144
  type: Directive,
138
145
  args: [{
139
146
  selector: '[rdxDropdownMenuTrigger]',
140
147
  standalone: true,
141
- hostDirectives: [
142
- {
143
- directive: CdkMenuTrigger,
144
- inputs: ['cdkMenuTriggerFor: rdxDropdownMenuTrigger']
145
- }
146
- ],
147
148
  host: {
148
149
  type: 'button',
149
150
  '[attr.aria-haspopup]': "'menu'",
150
- '[attr.aria-expanded]': 'cdkMenuTrigger.isOpen()',
151
- '[attr.data-state]': "cdkMenuTrigger.isOpen() ? 'open': 'closed'",
151
+ '[attr.aria-expanded]': 'isOpen()',
152
+ '[attr.data-state]': "isOpen() ? 'open': 'closed'",
152
153
  '[attr.data-disabled]': "disabled() ? '' : undefined",
153
154
  '[disabled]': 'disabled()',
154
155
  '(pointerdown)': 'onPointerDown($event)'
155
- }
156
+ },
157
+ providers: [
158
+ { provide: CdkMenuTrigger, useExisting: RdxDropdownMenuTriggerDirective },
159
+ { provide: MENU_TRIGGER, useExisting: CdkMenuTrigger },
160
+ PARENT_OR_NEW_MENU_STACK_PROVIDER
161
+ ]
156
162
  }]
157
- }], ctorParameters: () => [], propDecorators: { side: [{
163
+ }], ctorParameters: () => [], propDecorators: { rdxDropdownMenuTrigger: [{
164
+ type: Input
165
+ }], side: [{
158
166
  type: Input
159
167
  }], align: [{
160
168
  type: Input
@@ -165,4 +173,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
165
173
  type: Input,
166
174
  args: [{ transform: numberAttribute }]
167
175
  }] } });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvZHJvcGRvd24tbWVudS9zcmMvZHJvcGRvd24tbWVudS10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUVsRSxNQUFNLENBQU4sSUFBWSxZQUtYO0FBTEQsV0FBWSxZQUFZO0lBQ3BCLDJCQUFXLENBQUE7SUFDWCwrQkFBZSxDQUFBO0lBQ2YsaUNBQWlCLENBQUE7SUFDakIsNkJBQWEsQ0FBQTtBQUNqQixDQUFDLEVBTFcsWUFBWSxLQUFaLFlBQVksUUFLdkI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3JCLGdDQUFlLENBQUE7SUFDZixrQ0FBaUIsQ0FBQTtJQUNqQiw0QkFBVyxDQUFBO0FBQ2YsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBRUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDcEMsS0FBSyxFQUFFLEtBQUs7SUFDWixNQUFNLEVBQUUsUUFBUTtJQUNoQixHQUFHLEVBQUUsUUFBUTtDQUNoQixDQUFDO0FBRUYsTUFBTSxpQkFBaUIsR0FBNEM7SUFDL0QsR0FBRyxFQUFFO1FBQ0QsT0FBTyxFQUFFLE9BQU87UUFDaEIsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsT0FBTztRQUNqQixRQUFRLEVBQUUsUUFBUTtRQUNsQixPQUFPLEVBQUUsQ0FBQztR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QUErQixzakJBK0NwQixlQUFlLHVJQVVmLGVBQWU7OzJGQXpEMUIsK0JBQStCO2tCQXBCM0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsY0FBYyxFQUFFO3dCQUNaOzRCQUNJLFNBQVMsRUFBRSxjQUFjOzRCQUN6QixNQUFNLEVBQUUsQ0FBQywyQ0FBMkMsQ0FBQzt5QkFDeEQ7cUJBQ0o7b0JBQ0QsSUFBSSxFQUFFO3dCQUNGLElBQUksRUFBRSxRQUFRO3dCQUNkLHNCQUFzQixFQUFFLFFBQVE7d0JBQ2hDLHNCQUFzQixFQUFFLHlCQUF5Qjt3QkFDakQsbUJBQW1CLEVBQUUsNENBQTRDO3dCQUNqRSxzQkFBc0IsRUFBRSw2QkFBNkI7d0JBQ3JELFlBQVksRUFBRSxZQUFZO3dCQUUxQixlQUFlLEVBQUUsdUJBQXVCO3FCQUMzQztpQkFDSjt3REFTTyxJQUFJO3NCQURQLEtBQUs7Z0JBa0JGLEtBQUs7c0JBRFIsS0FBSztnQkF3QkYsVUFBVTtzQkFEYixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFXakMsV0FBVztzQkFEZCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDZGtNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9tZW51JztcbmltcG9ydCB7IENvbm5lY3RlZFBvc2l0aW9uLCBWZXJ0aWNhbENvbm5lY3Rpb25Qb3MgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIGlucHV0LCBudW1iZXJBdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG91dHB1dEZyb21PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5leHBvcnQgZW51bSBEcm9wZG93blNpZGUge1xuICAgIFRvcCA9ICd0b3AnLFxuICAgIFJpZ2h0ID0gJ3JpZ2h0JyxcbiAgICBCb3R0b20gPSAnYm90dG9tJyxcbiAgICBMZWZ0ID0gJ2xlZnQnXG59XG5cbmV4cG9ydCBlbnVtIERyb3Bkb3duQWxpZ24ge1xuICAgIFN0YXJ0ID0gJ3N0YXJ0JyxcbiAgICBDZW50ZXIgPSAnY2VudGVyJyxcbiAgICBFbmQgPSAnZW5kJ1xufVxuXG5leHBvcnQgY29uc3QgbWFwUmR4QWxpZ25Ub0Nka1Bvc2l0aW9uID0ge1xuICAgIHN0YXJ0OiAndG9wJyxcbiAgICBjZW50ZXI6ICdjZW50ZXInLFxuICAgIGVuZDogJ2JvdHRvbSdcbn07XG5cbmNvbnN0IGRyb3Bkb3duUG9zaXRpb25zOiBSZWNvcmQ8RHJvcGRvd25TaWRlLCBDb25uZWN0ZWRQb3NpdGlvbj4gPSB7XG4gICAgdG9wOiB7XG4gICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICBvZmZzZXRYOiAwLFxuICAgICAgICBvZmZzZXRZOiAwXG4gICAgfSxcbiAgICByaWdodDoge1xuICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgIG9mZnNldFg6IDAsXG4gICAgICAgIG9mZnNldFk6IDBcbiAgICB9LFxuICAgIGJvdHRvbToge1xuICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgb2Zmc2V0WDogMCxcbiAgICAgICAgb2Zmc2V0WTogMFxuICAgIH0sXG4gICAgbGVmdDoge1xuICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgIG9mZnNldFg6IDAsXG4gICAgICAgIG9mZnNldFk6IDBcbiAgICB9XG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhEcm9wZG93bk1lbnVUcmlnZ2VyXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IENka01lbnVUcmlnZ2VyLFxuICAgICAgICAgICAgaW5wdXRzOiBbJ2Nka01lbnVUcmlnZ2VyRm9yOiByZHhEcm9wZG93bk1lbnVUcmlnZ2VyJ11cbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtaGFzcG9wdXBdJzogXCInbWVudSdcIixcbiAgICAgICAgJ1thdHRyLmFyaWEtZXhwYW5kZWRdJzogJ2Nka01lbnVUcmlnZ2VyLmlzT3BlbigpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc3RhdGVdJzogXCJjZGtNZW51VHJpZ2dlci5pc09wZW4oKSA/ICdvcGVuJzogJ2Nsb3NlZCdcIixcbiAgICAgICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogXCJkaXNhYmxlZCgpID8gJycgOiB1bmRlZmluZWRcIixcbiAgICAgICAgJ1tkaXNhYmxlZF0nOiAnZGlzYWJsZWQoKScsXG5cbiAgICAgICAgJyhwb2ludGVyZG93biknOiAnb25Qb2ludGVyRG93bigkZXZlbnQpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4RHJvcGRvd25NZW51VHJpZ2dlckRpcmVjdGl2ZSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNka01lbnVUcmlnZ2VyID0gaW5qZWN0KENka01lbnVUcmlnZ2VyLCB7IGhvc3Q6IHRydWUgfSk7XG5cbiAgICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIEJvb2xlYW5JbnB1dD4oZmFsc2UsIHtcbiAgICAgICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlXG4gICAgfSk7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBzaWRlKHZhbHVlOiBEcm9wZG93blNpZGUpIHtcbiAgICAgICAgaWYgKCFPYmplY3QudmFsdWVzKERyb3Bkb3duU2lkZSkuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc2lkZTogJHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3NpZGUgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLmNka01lbnVUcmlnZ2VyLm1lbnVQb3NpdGlvblswXSA9IGRyb3Bkb3duUG9zaXRpb25zW3ZhbHVlXTtcbiAgICB9XG5cbiAgICBnZXQgc2lkZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpZGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2lkZTogRHJvcGRvd25TaWRlID0gRHJvcGRvd25TaWRlLkJvdHRvbTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGFsaWduKHZhbHVlOiBEcm9wZG93bkFsaWduKSB7XG4gICAgICAgIGlmICghT2JqZWN0LnZhbHVlcyhEcm9wZG93bkFsaWduKS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBhbGlnbjogJHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2FsaWduID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNWZXJ0aWNhbCkge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0UG9zaXRpb24ub3ZlcmxheVggPSB0aGlzLmRlZmF1bHRQb3NpdGlvbi5vcmlnaW5YID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRQb3NpdGlvbi5vdmVybGF5WSA9IHRoaXMuZGVmYXVsdFBvc2l0aW9uLm9yaWdpblkgPSBtYXBSZHhBbGlnblRvQ2RrUG9zaXRpb25bXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIF0gYXMgVmVydGljYWxDb25uZWN0aW9uUG9zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGFsaWduKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWxpZ247XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYWxpZ246IERyb3Bkb3duQWxpZ24gPSBEcm9wZG93bkFsaWduLlN0YXJ0O1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgICBzZXQgc2lkZU9mZnNldCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIC8vIHRvZG8gbmVlZCBpbnZlcnQgdmFsdWUgZm9yIHRvcCBhbmQgbGVmdFxuICAgICAgICBpZiAodGhpcy5pc1ZlcnRpY2FsKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRQb3NpdGlvbi5vZmZzZXRZID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRQb3NpdGlvbi5vZmZzZXRYID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCBhbGlnbk9mZnNldCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIC8vIHRvZG8gbmVlZCBpbnZlcnQgdmFsdWUgZm9yIHRvcCBhbmQgbGVmdFxuICAgICAgICBpZiAodGhpcy5pc1ZlcnRpY2FsKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRQb3NpdGlvbi5vZmZzZXRYID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRQb3NpdGlvbi5vZmZzZXRZID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaXNWZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpZGUgPT09IERyb3Bkb3duU2lkZS5Ub3AgfHwgdGhpcy5fc2lkZSA9PT0gRHJvcGRvd25TaWRlLkJvdHRvbTtcbiAgICB9XG5cbiAgICBnZXQgZGVmYXVsdFBvc2l0aW9uKCk6IENvbm5lY3RlZFBvc2l0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2RrTWVudVRyaWdnZXIubWVudVBvc2l0aW9uWzBdO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZSA9IG91dHB1dEZyb21PYnNlcnZhYmxlKHRoaXMuY2RrTWVudVRyaWdnZXI/Lm9wZW5lZCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8gdG9kbyBwcmlvcml0eVxuICAgICAgICB0aGlzLmNka01lbnVUcmlnZ2VyLm1lbnVQb3NpdGlvbiA9IFtcbiAgICAgICAgICAgIHsgLi4uZHJvcGRvd25Qb3NpdGlvbnNbRHJvcGRvd25TaWRlLkJvdHRvbV0gfV07XG4gICAgfVxuXG4gICAgb25Qb2ludGVyRG93bigkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgLy8gb25seSBjYWxsIGhhbmRsZXIgaWYgaXQncyB0aGUgbGVmdCBidXR0b24gKG1vdXNlZG93biBnZXRzIHRyaWdnZXJlZCBieSBhbGwgbW91c2UgYnV0dG9ucylcbiAgICAgICAgLy8gYnV0IG5vdCB3aGVuIHRoZSBjb250cm9sIGtleSBpcyBwcmVzc2VkIChhdm9pZGluZyBNYWNPUyByaWdodCBjbGljaylcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKCkgJiYgJGV2ZW50LmJ1dHRvbiA9PT0gMCAmJiAhJGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgICAgICAgIC8qIGVtcHR5ICovXG4gICAgICAgICAgICBpZiAoIXRoaXMuY2RrTWVudVRyaWdnZXIuaXNPcGVuKCkpIHtcbiAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IHRyaWdnZXIgZm9jdXNpbmcgd2hlbiBvcGVuaW5nXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBhbGxvd3MgdGhlIGNvbnRlbnQgdG8gYmUgZ2l2ZW4gZm9jdXMgd2l0aG91dCBjb21wZXRpdGlvblxuICAgICAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvZHJvcGRvd24tbWVudS9zcmMvZHJvcGRvd24tbWVudS10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRWxFLE1BQU0sQ0FBTixJQUFZLFlBS1g7QUFMRCxXQUFZLFlBQVk7SUFDcEIsMkJBQVcsQ0FBQTtJQUNYLCtCQUFlLENBQUE7SUFDZixpQ0FBaUIsQ0FBQTtJQUNqQiw2QkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxZQUFZLEtBQVosWUFBWSxRQUt2QjtBQUVELE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDckIsZ0NBQWUsQ0FBQTtJQUNmLGtDQUFpQixDQUFBO0lBQ2pCLDRCQUFXLENBQUE7QUFDZixDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEI7QUFFRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUNwQyxLQUFLLEVBQUUsS0FBSztJQUNaLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEdBQUcsRUFBRSxRQUFRO0NBQ2hCLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUE0QztJQUMvRCxHQUFHLEVBQUU7UUFDRCxPQUFPLEVBQUUsT0FBTztRQUNoQixPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSxPQUFPO1FBQ2pCLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLE9BQU8s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QUFVLENBQUM7SUFDM0IsQ0FBQzs4R0FyR1EsK0JBQStCO2tHQUEvQiwrQkFBK0Isa3VCQWtEcEIsZUFBZSx1SUFVZixlQUFlLGtYQWxFeEI7WUFDUCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFO1lBQ3pFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFO1lBQ3RELGlDQUFpQztTQUNwQzs7MkZBRVEsK0JBQStCO2tCQW5CM0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNGLElBQUksRUFBRSxRQUFRO3dCQUNkLHNCQUFzQixFQUFFLFFBQVE7d0JBQ2hDLHNCQUFzQixFQUFFLFVBQVU7d0JBQ2xDLG1CQUFtQixFQUFFLDZCQUE2Qjt3QkFDbEQsc0JBQXNCLEVBQUUsNkJBQTZCO3dCQUNyRCxZQUFZLEVBQUUsWUFBWTt3QkFFMUIsZUFBZSxFQUFFLHVCQUF1QjtxQkFDM0M7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLGlDQUFpQyxFQUFFO3dCQUN6RSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRTt3QkFDdEQsaUNBQWlDO3FCQUNwQztpQkFDSjt3REFPTyxzQkFBc0I7c0JBRHpCLEtBQUs7Z0JBTUYsSUFBSTtzQkFEUCxLQUFLO2dCQWtCRixLQUFLO3NCQURSLEtBQUs7Z0JBd0JGLFVBQVU7c0JBRGIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBV2pDLFdBQVc7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ2RrTWVudVRyaWdnZXIsIE1FTlVfVFJJR0dFUiwgUEFSRU5UX09SX05FV19NRU5VX1NUQUNLX1BST1ZJREVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL21lbnUnO1xuaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIE92ZXJsYXlSZWYsIFZlcnRpY2FsQ29ubmVjdGlvblBvcyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIERpcmVjdGl2ZSwgSW5wdXQsIGlucHV0LCBudW1iZXJBdHRyaWJ1dGUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBvdXRwdXRGcm9tT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuZXhwb3J0IGVudW0gRHJvcGRvd25TaWRlIHtcbiAgICBUb3AgPSAndG9wJyxcbiAgICBSaWdodCA9ICdyaWdodCcsXG4gICAgQm90dG9tID0gJ2JvdHRvbScsXG4gICAgTGVmdCA9ICdsZWZ0J1xufVxuXG5leHBvcnQgZW51bSBEcm9wZG93bkFsaWduIHtcbiAgICBTdGFydCA9ICdzdGFydCcsXG4gICAgQ2VudGVyID0gJ2NlbnRlcicsXG4gICAgRW5kID0gJ2VuZCdcbn1cblxuZXhwb3J0IGNvbnN0IG1hcFJkeEFsaWduVG9DZGtQb3NpdGlvbiA9IHtcbiAgICBzdGFydDogJ3RvcCcsXG4gICAgY2VudGVyOiAnY2VudGVyJyxcbiAgICBlbmQ6ICdib3R0b20nXG59O1xuXG5jb25zdCBkcm9wZG93blBvc2l0aW9uczogUmVjb3JkPERyb3Bkb3duU2lkZSwgQ29ubmVjdGVkUG9zaXRpb24+ID0ge1xuICAgIHRvcDoge1xuICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgb2Zmc2V0WDogMCxcbiAgICAgICAgb2Zmc2V0WTogMFxuICAgIH0sXG4gICAgcmlnaHQ6IHtcbiAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICBvZmZzZXRYOiAwLFxuICAgICAgICBvZmZzZXRZOiAwXG4gICAgfSxcbiAgICBib3R0b206IHtcbiAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgIG9mZnNldFg6IDAsXG4gICAgICAgIG9mZnNldFk6IDBcbiAgICB9LFxuICAgIGxlZnQ6IHtcbiAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICBvZmZzZXRYOiAwLFxuICAgICAgICBvZmZzZXRZOiAwXG4gICAgfVxufTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4RHJvcGRvd25NZW51VHJpZ2dlcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtaGFzcG9wdXBdJzogXCInbWVudSdcIixcbiAgICAgICAgJ1thdHRyLmFyaWEtZXhwYW5kZWRdJzogJ2lzT3BlbigpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc3RhdGVdJzogXCJpc09wZW4oKSA/ICdvcGVuJzogJ2Nsb3NlZCdcIixcbiAgICAgICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogXCJkaXNhYmxlZCgpID8gJycgOiB1bmRlZmluZWRcIixcbiAgICAgICAgJ1tkaXNhYmxlZF0nOiAnZGlzYWJsZWQoKScsXG5cbiAgICAgICAgJyhwb2ludGVyZG93biknOiAnb25Qb2ludGVyRG93bigkZXZlbnQpJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogQ2RrTWVudVRyaWdnZXIsIHVzZUV4aXN0aW5nOiBSZHhEcm9wZG93bk1lbnVUcmlnZ2VyRGlyZWN0aXZlIH0sXG4gICAgICAgIHsgcHJvdmlkZTogTUVOVV9UUklHR0VSLCB1c2VFeGlzdGluZzogQ2RrTWVudVRyaWdnZXIgfSxcbiAgICAgICAgUEFSRU5UX09SX05FV19NRU5VX1NUQUNLX1BST1ZJREVSXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBSZHhEcm9wZG93bk1lbnVUcmlnZ2VyRGlyZWN0aXZlIGV4dGVuZHMgQ2RrTWVudVRyaWdnZXIge1xuICAgIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0PihmYWxzZSwge1xuICAgICAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGVcbiAgICB9KTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHJkeERyb3Bkb3duTWVudVRyaWdnZXIodmFsdWU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCkge1xuICAgICAgICB0aGlzLm1lbnVUZW1wbGF0ZVJlZiA9IHZhbHVlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNpZGUodmFsdWU6IERyb3Bkb3duU2lkZSkge1xuICAgICAgICBpZiAoIU9iamVjdC52YWx1ZXMoRHJvcGRvd25TaWRlKS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBzaWRlOiAke3ZhbHVlfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2lkZSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMubWVudVBvc2l0aW9uWzBdID0gZHJvcGRvd25Qb3NpdGlvbnNbdmFsdWVdO1xuICAgIH1cblxuICAgIGdldCBzaWRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2lkZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zaWRlOiBEcm9wZG93blNpZGUgPSBEcm9wZG93blNpZGUuQm90dG9tO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgYWxpZ24odmFsdWU6IERyb3Bkb3duQWxpZ24pIHtcbiAgICAgICAgaWYgKCFPYmplY3QudmFsdWVzKERyb3Bkb3duQWxpZ24pLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGFsaWduOiAke3ZhbHVlfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fYWxpZ24gPSB2YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy5pc1ZlcnRpY2FsKSB7XG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRQb3NpdGlvbi5vdmVybGF5WCA9IHRoaXMuZGVmYXVsdFBvc2l0aW9uLm9yaWdpblggPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFBvc2l0aW9uLm92ZXJsYXlZID0gdGhpcy5kZWZhdWx0UG9zaXRpb24ub3JpZ2luWSA9IG1hcFJkeEFsaWduVG9DZGtQb3NpdGlvbltcbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgXSBhcyBWZXJ0aWNhbENvbm5lY3Rpb25Qb3M7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgYWxpZ24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hbGlnbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hbGlnbjogRHJvcGRvd25BbGlnbiA9IERyb3Bkb3duQWxpZ24uU3RhcnQ7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHNldCBzaWRlT2Zmc2V0KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgLy8gdG9kbyBuZWVkIGludmVydCB2YWx1ZSBmb3IgdG9wIGFuZCBsZWZ0XG4gICAgICAgIGlmICh0aGlzLmlzVmVydGljYWwpIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFBvc2l0aW9uLm9mZnNldFkgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFBvc2l0aW9uLm9mZnNldFggPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gICAgc2V0IGFsaWduT2Zmc2V0KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgLy8gdG9kbyBuZWVkIGludmVydCB2YWx1ZSBmb3IgdG9wIGFuZCBsZWZ0XG4gICAgICAgIGlmICh0aGlzLmlzVmVydGljYWwpIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFBvc2l0aW9uLm9mZnNldFggPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFBvc2l0aW9uLm9mZnNldFkgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZSA9IG91dHB1dEZyb21PYnNlcnZhYmxlKHRoaXMub3BlbmVkKTtcblxuICAgIGdldCBpc1ZlcnRpY2FsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2lkZSA9PT0gRHJvcGRvd25TaWRlLlRvcCB8fCB0aGlzLl9zaWRlID09PSBEcm9wZG93blNpZGUuQm90dG9tO1xuICAgIH1cblxuICAgIGdldCBkZWZhdWx0UG9zaXRpb24oKTogQ29ubmVjdGVkUG9zaXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5tZW51UG9zaXRpb25bMF07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIC8vIHRvZG8gcHJpb3JpdHlcbiAgICAgICAgdGhpcy5tZW51UG9zaXRpb24gPSBbeyAuLi5kcm9wZG93blBvc2l0aW9uc1tEcm9wZG93blNpZGUuQm90dG9tXSB9XTtcbiAgICB9XG5cbiAgICBvblBvaW50ZXJEb3duKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICAvLyBvbmx5IGNhbGwgaGFuZGxlciBpZiBpdCdzIHRoZSBsZWZ0IGJ1dHRvbiAobW91c2Vkb3duIGdldHMgdHJpZ2dlcmVkIGJ5IGFsbCBtb3VzZSBidXR0b25zKVxuICAgICAgICAvLyBidXQgbm90IHdoZW4gdGhlIGNvbnRyb2wga2V5IGlzIHByZXNzZWQgKGF2b2lkaW5nIE1hY09TIHJpZ2h0IGNsaWNrKVxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQoKSAmJiAkZXZlbnQuYnV0dG9uID09PSAwICYmICEkZXZlbnQuY3RybEtleSkge1xuICAgICAgICAgICAgLyogZW1wdHkgKi9cbiAgICAgICAgICAgIGlmICghdGhpcy5pc09wZW4oKSkge1xuICAgICAgICAgICAgICAgIC8vIHByZXZlbnQgdHJpZ2dlciBmb2N1c2luZyB3aGVuIG9wZW5pbmdcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGFsbG93cyB0aGUgY29udGVudCB0byBiZSBnaXZlbiBmb2N1cyB3aXRob3V0IGNvbXBldGl0aW9uXG4gICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRPdmVybGF5UmVmKCk6IE92ZXJsYXlSZWYgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3ZlcmxheVJlZjtcbiAgICB9XG59XG4iXX0=
@@ -8,12 +8,12 @@ export class RdxSeparatorRootDirective {
8
8
  this.decorative = false;
9
9
  }
10
10
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxSeparatorRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.2", type: RdxSeparatorRootDirective, isStandalone: true, selector: "div[SeparatorRoot]", inputs: { orientation: ["rdxOrientation", "orientation"], decorative: ["rdxDecorative", "decorative", booleanAttribute] }, host: { properties: { "attr.role": "decorative ? \"none\" : \"separator\"", "attr.aria-orientation": "!decorative && orientation === \"vertical\" ? \"vertical\" : null", "attr.data-orientation": "orientation" } }, ngImport: i0 }); }
11
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.2", type: RdxSeparatorRootDirective, isStandalone: true, selector: "div[rdxSeparatorRoot]", inputs: { orientation: "orientation", decorative: ["decorative", "decorative", booleanAttribute] }, host: { properties: { "attr.role": "decorative ? \"none\" : \"separator\"", "attr.aria-orientation": "!decorative && orientation === \"vertical\" ? \"vertical\" : null", "attr.data-orientation": "orientation" } }, ngImport: i0 }); }
12
12
  }
13
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxSeparatorRootDirective, decorators: [{
14
14
  type: Directive,
15
15
  args: [{
16
- selector: 'div[SeparatorRoot]',
16
+ selector: 'div[rdxSeparatorRoot]',
17
17
  standalone: true,
18
18
  host: {
19
19
  '[attr.role]': 'decorative ? "none" : "separator"',
@@ -23,10 +23,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
23
23
  }
24
24
  }]
25
25
  }], propDecorators: { orientation: [{
26
- type: Input,
27
- args: ['rdxOrientation']
26
+ type: Input
28
27
  }], decorative: [{
29
28
  type: Input,
30
- args: [{ alias: 'rdxDecorative', transform: booleanAttribute }]
29
+ args: [{ transform: booleanAttribute }]
31
30
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwYXJhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvc2VwYXJhdG9yL3NyYy9zZXBhcmF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVuRSxNQUFNLG1CQUFtQixHQUFHLFlBQVksQ0FBQztBQUN6QyxNQUFNLFlBQVksR0FBRyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQVUsQ0FBQztBQTBCekQsTUFBTSxPQUFPLHlCQUF5QjtJQVZ0QztRQVc2QixnQkFBVyxHQUFnQixtQkFBbUIsQ0FBQztRQUVSLGVBQVUsR0FBRyxLQUFLLENBQUM7S0FDdEY7OEdBSlkseUJBQXlCO2tHQUF6Qix5QkFBeUIsNEpBR1UsZ0JBQWdCOzsyRkFIbkQseUJBQXlCO2tCQVZyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsYUFBYSxFQUFFLG1DQUFtQzt3QkFDbEQsOEZBQThGO3dCQUM5Rix5QkFBeUIsRUFBRSwrREFBK0Q7d0JBQzFGLHlCQUF5QixFQUFFLGFBQWE7cUJBQzNDO2lCQUNKOzhCQUU0QixXQUFXO3NCQUFuQyxLQUFLO3VCQUFDLGdCQUFnQjtnQkFFeUMsVUFBVTtzQkFBekUsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jb25zdCBERUZBVUxUX09SSUVOVEFUSU9OID0gJ2hvcml6b250YWwnO1xuY29uc3QgT1JJRU5UQVRJT05TID0gWydob3Jpem9udGFsJywgJ3ZlcnRpY2FsJ10gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIE9yaWVudGF0aW9uID0gKHR5cGVvZiBPUklFTlRBVElPTlMpW251bWJlcl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VwYXJhdG9yUHJvcHMge1xuICAgIC8qKlxuICAgICAqIEVpdGhlciBgdmVydGljYWxgIG9yIGBob3Jpem9udGFsYC4gRGVmYXVsdHMgdG8gYGhvcml6b250YWxgLlxuICAgICAqL1xuICAgIG9yaWVudGF0aW9uPzogT3JpZW50YXRpb247XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIHB1cmVseSBkZWNvcmF0aXZlLiBXaGVuIHRydWUsIGFjY2Vzc2liaWxpdHktcmVsYXRlZCBhdHRyaWJ1dGVzXG4gICAgICogYXJlIHVwZGF0ZWQgc28gdGhhdCB0aGUgcmVuZGVyZWQgZWxlbWVudCBpcyByZW1vdmVkIGZyb20gdGhlIGFjY2Vzc2liaWxpdHkgdHJlZS5cbiAgICAgKi9cbiAgICBkZWNvcmF0aXZlPzogYm9vbGVhbjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdkaXZbU2VwYXJhdG9yUm9vdF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIucm9sZV0nOiAnZGVjb3JhdGl2ZSA/IFwibm9uZVwiIDogXCJzZXBhcmF0b3JcIicsXG4gICAgICAgIC8vIGBhcmlhLW9yaWVudGF0aW9uYCBkZWZhdWx0cyB0byBgaG9yaXpvbnRhbGAgc28gd2Ugb25seSBuZWVkIGl0IGlmIGBvcmllbnRhdGlvbmAgaXMgdmVydGljYWxcbiAgICAgICAgJ1thdHRyLmFyaWEtb3JpZW50YXRpb25dJzogJyFkZWNvcmF0aXZlICYmIG9yaWVudGF0aW9uID09PSBcInZlcnRpY2FsXCIgPyBcInZlcnRpY2FsXCIgOiBudWxsJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtb3JpZW50YXRpb25dJzogJ29yaWVudGF0aW9uJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4U2VwYXJhdG9yUm9vdERpcmVjdGl2ZSBpbXBsZW1lbnRzIFNlcGFyYXRvclByb3BzIHtcbiAgICBASW5wdXQoJ3JkeE9yaWVudGF0aW9uJykgb3JpZW50YXRpb246IE9yaWVudGF0aW9uID0gREVGQVVMVF9PUklFTlRBVElPTjtcblxuICAgIEBJbnB1dCh7IGFsaWFzOiAncmR4RGVjb3JhdGl2ZScsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkZWNvcmF0aXZlID0gZmFsc2U7XG59XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwYXJhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvc2VwYXJhdG9yL3NyYy9zZXBhcmF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVuRSxNQUFNLG1CQUFtQixHQUFHLFlBQVksQ0FBQztBQUN6QyxNQUFNLFlBQVksR0FBRyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQVUsQ0FBQztBQTBCekQsTUFBTSxPQUFPLHlCQUF5QjtJQVZ0QztRQVdhLGdCQUFXLEdBQWdCLG1CQUFtQixDQUFDO1FBRWhCLGVBQVUsR0FBRyxLQUFLLENBQUM7S0FDOUQ7OEdBSlkseUJBQXlCO2tHQUF6Qix5QkFBeUIsd0lBR2QsZ0JBQWdCOzsyRkFIM0IseUJBQXlCO2tCQVZyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsYUFBYSxFQUFFLG1DQUFtQzt3QkFDbEQsOEZBQThGO3dCQUM5Rix5QkFBeUIsRUFBRSwrREFBK0Q7d0JBQzFGLHlCQUF5QixFQUFFLGFBQWE7cUJBQzNDO2lCQUNKOzhCQUVZLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRWtDLFVBQVU7c0JBQWpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IERFRkFVTFRfT1JJRU5UQVRJT04gPSAnaG9yaXpvbnRhbCc7XG5jb25zdCBPUklFTlRBVElPTlMgPSBbJ2hvcml6b250YWwnLCAndmVydGljYWwnXSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgT3JpZW50YXRpb24gPSAodHlwZW9mIE9SSUVOVEFUSU9OUylbbnVtYmVyXTtcblxuZXhwb3J0IGludGVyZmFjZSBTZXBhcmF0b3JQcm9wcyB7XG4gICAgLyoqXG4gICAgICogRWl0aGVyIGB2ZXJ0aWNhbGAgb3IgYGhvcml6b250YWxgLiBEZWZhdWx0cyB0byBgaG9yaXpvbnRhbGAuXG4gICAgICovXG4gICAgb3JpZW50YXRpb24/OiBPcmllbnRhdGlvbjtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgcHVyZWx5IGRlY29yYXRpdmUuIFdoZW4gdHJ1ZSwgYWNjZXNzaWJpbGl0eS1yZWxhdGVkIGF0dHJpYnV0ZXNcbiAgICAgKiBhcmUgdXBkYXRlZCBzbyB0aGF0IHRoZSByZW5kZXJlZCBlbGVtZW50IGlzIHJlbW92ZWQgZnJvbSB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlLlxuICAgICAqL1xuICAgIGRlY29yYXRpdmU/OiBib29sZWFuO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2RpdltyZHhTZXBhcmF0b3JSb290XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5yb2xlXSc6ICdkZWNvcmF0aXZlID8gXCJub25lXCIgOiBcInNlcGFyYXRvclwiJyxcbiAgICAgICAgLy8gYGFyaWEtb3JpZW50YXRpb25gIGRlZmF1bHRzIHRvIGBob3Jpem9udGFsYCBzbyB3ZSBvbmx5IG5lZWQgaXQgaWYgYG9yaWVudGF0aW9uYCBpcyB2ZXJ0aWNhbFxuICAgICAgICAnW2F0dHIuYXJpYS1vcmllbnRhdGlvbl0nOiAnIWRlY29yYXRpdmUgJiYgb3JpZW50YXRpb24gPT09IFwidmVydGljYWxcIiA/IFwidmVydGljYWxcIiA6IG51bGwnLFxuICAgICAgICAnW2F0dHIuZGF0YS1vcmllbnRhdGlvbl0nOiAnb3JpZW50YXRpb24nXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSZHhTZXBhcmF0b3JSb290RGlyZWN0aXZlIGltcGxlbWVudHMgU2VwYXJhdG9yUHJvcHMge1xuICAgIEBJbnB1dCgpIG9yaWVudGF0aW9uOiBPcmllbnRhdGlvbiA9IERFRkFVTFRfT1JJRU5UQVRJT047XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGVjb3JhdGl2ZSA9IGZhbHNlO1xufVxuIl19
@@ -1,11 +1,10 @@
1
- import * as i1 from '@angular/cdk/menu';
2
- import { CdkMenuTrigger, CdkMenu, CdkTargetMenuAim, CdkMenuItem } from '@angular/cdk/menu';
1
+ import { CdkMenuTrigger, MENU_TRIGGER, PARENT_OR_NEW_MENU_STACK_PROVIDER, CdkMenu, CdkMenuItem, CDK_MENU } from '@angular/cdk/menu';
3
2
  import * as i0 from '@angular/core';
4
- import { inject, input, booleanAttribute, numberAttribute, Directive, Input, ElementRef, EventEmitter, Output } from '@angular/core';
3
+ import { input, booleanAttribute, numberAttribute, Directive, Input, inject, ElementRef, EventEmitter, Output } from '@angular/core';
5
4
  import { Subject, startWith, pairwise } from 'rxjs';
6
5
  import { outputFromObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
7
6
  import { UniqueSelectionDispatcher } from '@angular/cdk/collections';
8
- import * as i1$1 from '@radix-ng/primitives/separator';
7
+ import * as i1 from '@radix-ng/primitives/separator';
9
8
  import { RdxSeparatorRootDirective } from '@radix-ng/primitives/separator';
10
9
 
11
10
  var DropdownSide;
@@ -60,13 +59,16 @@ const dropdownPositions = {
60
59
  offsetY: 0
61
60
  }
62
61
  };
63
- class RdxDropdownMenuTriggerDirective {
62
+ class RdxDropdownMenuTriggerDirective extends CdkMenuTrigger {
63
+ set rdxDropdownMenuTrigger(value) {
64
+ this.menuTemplateRef = value;
65
+ }
64
66
  set side(value) {
65
67
  if (!Object.values(DropdownSide).includes(value)) {
66
68
  throw new Error(`Unknown side: ${value}`);
67
69
  }
68
70
  this._side = value;
69
- this.cdkMenuTrigger.menuPosition[0] = dropdownPositions[value];
71
+ this.menuPosition[0] = dropdownPositions[value];
70
72
  }
71
73
  get side() {
72
74
  return this._side;
@@ -108,58 +110,64 @@ class RdxDropdownMenuTriggerDirective {
108
110
  return this._side === DropdownSide.Top || this._side === DropdownSide.Bottom;
109
111
  }
110
112
  get defaultPosition() {
111
- return this.cdkMenuTrigger.menuPosition[0];
113
+ return this.menuPosition[0];
112
114
  }
113
115
  constructor() {
114
- this.cdkMenuTrigger = inject(CdkMenuTrigger, { host: true });
116
+ super();
115
117
  this.disabled = input(false, {
116
118
  transform: booleanAttribute
117
119
  });
118
120
  this._side = DropdownSide.Bottom;
119
121
  this._align = DropdownAlign.Start;
120
- this.onOpenChange = outputFromObservable(this.cdkMenuTrigger?.opened);
122
+ this.onOpenChange = outputFromObservable(this.opened);
121
123
  // todo priority
122
- this.cdkMenuTrigger.menuPosition = [
123
- { ...dropdownPositions[DropdownSide.Bottom] }
124
- ];
124
+ this.menuPosition = [{ ...dropdownPositions[DropdownSide.Bottom] }];
125
125
  }
126
126
  onPointerDown($event) {
127
127
  // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)
128
128
  // but not when the control key is pressed (avoiding MacOS right click)
129
129
  if (!this.disabled() && $event.button === 0 && !$event.ctrlKey) {
130
130
  /* empty */
131
- if (!this.cdkMenuTrigger.isOpen()) {
131
+ if (!this.isOpen()) {
132
132
  // prevent trigger focusing when opening
133
133
  // this allows the content to be given focus without competition
134
134
  $event.preventDefault();
135
135
  }
136
136
  }
137
137
  }
138
+ getOverlayRef() {
139
+ return this.overlayRef;
140
+ }
138
141
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
139
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: RdxDropdownMenuTriggerDirective, isStandalone: true, selector: "[rdxDropdownMenuTrigger]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: false, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: false, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, alignOffset: { classPropertyName: "alignOffset", publicName: "alignOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute } }, outputs: { onOpenChange: "onOpenChange" }, host: { attributes: { "type": "button" }, listeners: { "pointerdown": "onPointerDown($event)" }, properties: { "attr.aria-haspopup": "'menu'", "attr.aria-expanded": "cdkMenuTrigger.isOpen()", "attr.data-state": "cdkMenuTrigger.isOpen() ? 'open': 'closed'", "attr.data-disabled": "disabled() ? '' : undefined", "disabled": "disabled()" } }, hostDirectives: [{ directive: i1.CdkMenuTrigger, inputs: ["cdkMenuTriggerFor", "rdxDropdownMenuTrigger"] }], ngImport: i0 }); }
142
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: RdxDropdownMenuTriggerDirective, isStandalone: true, selector: "[rdxDropdownMenuTrigger]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, rdxDropdownMenuTrigger: { classPropertyName: "rdxDropdownMenuTrigger", publicName: "rdxDropdownMenuTrigger", isSignal: false, isRequired: false, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: false, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: false, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, alignOffset: { classPropertyName: "alignOffset", publicName: "alignOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute } }, outputs: { onOpenChange: "onOpenChange" }, host: { attributes: { "type": "button" }, listeners: { "pointerdown": "onPointerDown($event)" }, properties: { "attr.aria-haspopup": "'menu'", "attr.aria-expanded": "isOpen()", "attr.data-state": "isOpen() ? 'open': 'closed'", "attr.data-disabled": "disabled() ? '' : undefined", "disabled": "disabled()" } }, providers: [
143
+ { provide: CdkMenuTrigger, useExisting: RdxDropdownMenuTriggerDirective },
144
+ { provide: MENU_TRIGGER, useExisting: CdkMenuTrigger },
145
+ PARENT_OR_NEW_MENU_STACK_PROVIDER
146
+ ], usesInheritance: true, ngImport: i0 }); }
140
147
  }
141
148
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuTriggerDirective, decorators: [{
142
149
  type: Directive,
143
150
  args: [{
144
151
  selector: '[rdxDropdownMenuTrigger]',
145
152
  standalone: true,
146
- hostDirectives: [
147
- {
148
- directive: CdkMenuTrigger,
149
- inputs: ['cdkMenuTriggerFor: rdxDropdownMenuTrigger']
150
- }
151
- ],
152
153
  host: {
153
154
  type: 'button',
154
155
  '[attr.aria-haspopup]': "'menu'",
155
- '[attr.aria-expanded]': 'cdkMenuTrigger.isOpen()',
156
- '[attr.data-state]': "cdkMenuTrigger.isOpen() ? 'open': 'closed'",
156
+ '[attr.aria-expanded]': 'isOpen()',
157
+ '[attr.data-state]': "isOpen() ? 'open': 'closed'",
157
158
  '[attr.data-disabled]': "disabled() ? '' : undefined",
158
159
  '[disabled]': 'disabled()',
159
160
  '(pointerdown)': 'onPointerDown($event)'
160
- }
161
+ },
162
+ providers: [
163
+ { provide: CdkMenuTrigger, useExisting: RdxDropdownMenuTriggerDirective },
164
+ { provide: MENU_TRIGGER, useExisting: CdkMenuTrigger },
165
+ PARENT_OR_NEW_MENU_STACK_PROVIDER
166
+ ]
161
167
  }]
162
- }], ctorParameters: () => [], propDecorators: { side: [{
168
+ }], ctorParameters: () => [], propDecorators: { rdxDropdownMenuTrigger: [{
169
+ type: Input
170
+ }], side: [{
163
171
  type: Input
164
172
  }], align: [{
165
173
  type: Input
@@ -171,13 +179,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
171
179
  args: [{ transform: numberAttribute }]
172
180
  }] } });
173
181
 
174
- class RdxDropdownMenuContentDirective {
182
+ class RdxDropdownMenuContentDirective extends CdkMenu {
175
183
  constructor() {
184
+ super();
176
185
  this.highlighted = new Subject();
177
- this.cdkMenu = inject(CdkMenu);
178
- this.cdkMenuTrigger = inject(CdkMenuTrigger, { host: true });
179
186
  this.menuTrigger = inject(RdxDropdownMenuTriggerDirective, { optional: true });
180
- // todo need sync with keyManager
187
+ this.onEscapeKeyDown = () => undefined;
188
+ this.closeOnEscape = true;
181
189
  this.highlighted.pipe(startWith(null), pairwise()).subscribe(([prev, item]) => {
182
190
  if (prev) {
183
191
  prev.highlighted = false;
@@ -188,72 +196,103 @@ class RdxDropdownMenuContentDirective {
188
196
  });
189
197
  }
190
198
  updateActiveItem(item) {
191
- this.cdkMenu['keyManager'].updateActiveItem(item);
199
+ this.keyManager.updateActiveItem(item);
192
200
  }
193
201
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
194
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: RdxDropdownMenuContentDirective, isStandalone: true, selector: "[rdxDropdownMenuContent]", host: { properties: { "attr.data-state": "cdkMenuTrigger.isOpen() ? 'open': 'closed'", "attr.data-align": "menuTrigger!.align", "attr.data-side": "menuTrigger!.side", "attr.data-orientation": "cdkMenu.orientation" } }, hostDirectives: [{ directive: i1.CdkMenu }, { directive: i1.CdkTargetMenuAim }], ngImport: i0 }); }
202
+ 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: [
203
+ {
204
+ provide: CdkMenu,
205
+ useExisting: RdxDropdownMenuContentDirective
206
+ }
207
+ ], usesInheritance: true, ngImport: i0 }); }
195
208
  }
196
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuContentDirective, decorators: [{
197
210
  type: Directive,
198
211
  args: [{
199
212
  selector: '[rdxDropdownMenuContent]',
200
213
  standalone: true,
201
- hostDirectives: [CdkMenu, CdkTargetMenuAim],
202
214
  host: {
203
- '[attr.data-state]': "cdkMenuTrigger.isOpen() ? 'open': 'closed'",
215
+ '[attr.data-state]': "menuTrigger.isOpen() ? 'open': 'closed'",
204
216
  '[attr.data-align]': 'menuTrigger!.align',
205
217
  '[attr.data-side]': 'menuTrigger!.side',
206
- '[attr.data-orientation]': 'cdkMenu.orientation'
207
- }
218
+ '[attr.data-orientation]': 'orientation'
219
+ },
220
+ providers: [
221
+ {
222
+ provide: CdkMenu,
223
+ useExisting: RdxDropdownMenuContentDirective
224
+ }
225
+ ]
208
226
  }]
209
- }], ctorParameters: () => [] });
227
+ }], ctorParameters: () => [], propDecorators: { onEscapeKeyDown: [{
228
+ type: Input
229
+ }], closeOnEscape: [{
230
+ type: Input
231
+ }] } });
210
232
 
211
- class RdxDropdownMenuItemDirective {
233
+ class RdxDropdownMenuItemDirective extends CdkMenuItem {
212
234
  constructor() {
235
+ super();
213
236
  this.menu = inject(RdxDropdownMenuContentDirective);
214
- this.cdkMenuItem = inject(CdkMenuItem);
215
237
  this.nativeElement = inject(ElementRef).nativeElement;
216
238
  this.highlighted = false;
239
+ this.disabled = false;
217
240
  this.onSelect = new EventEmitter();
218
241
  this.menu.highlighted.pipe(takeUntilDestroyed()).subscribe((value) => {
219
242
  if (value !== this) {
220
243
  this.highlighted = false;
221
244
  }
222
245
  });
223
- this.cdkMenuItem.triggered.subscribe(this.onSelect);
246
+ this.triggered.subscribe(this.onSelect);
224
247
  }
225
248
  onPointerMove() {
226
249
  this.nativeElement.focus({ preventScroll: true });
227
- this.menu.updateActiveItem(this.cdkMenuItem);
250
+ this.menu.updateActiveItem(this);
228
251
  }
229
252
  onKeydown(event) {
230
253
  if (this.nativeElement.tagName !== 'BUTTON' && ['Enter', ' '].includes(event.key)) {
231
254
  event.preventDefault();
232
255
  }
256
+ if (event.key === 'Escape') {
257
+ if (!this.menu.closeOnEscape) {
258
+ event.stopPropagation();
259
+ }
260
+ else {
261
+ this.menu.onEscapeKeyDown(event);
262
+ }
263
+ }
233
264
  }
234
265
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
235
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: RdxDropdownMenuItemDirective, isStandalone: true, selector: "[rdxDropdownMenuItem]", 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": "cdkMenuItem.disabled ? \"\" : null", "attr.disabled": "cdkMenuItem.disabled ? \"\" : null" } }, hostDirectives: [{ directive: i1.CdkMenuItem, inputs: ["cdkMenuItemDisabled", "disabled"] }], ngImport: i0 }); }
266
+ 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: [
267
+ { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },
268
+ { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }
269
+ ], usesInheritance: true, ngImport: i0 }); }
236
270
  }
237
271
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuItemDirective, decorators: [{
238
272
  type: Directive,
239
273
  args: [{
240
274
  selector: '[rdxDropdownMenuItem]',
241
275
  standalone: true,
242
- // todo hostDirectives + extends
243
- hostDirectives: [{ directive: CdkMenuItem, inputs: ['cdkMenuItemDisabled: disabled'] }],
244
276
  host: {
245
277
  type: 'button',
246
278
  // todo horizontal ?
247
279
  '[attr.data-orientation]': '"vertical"',
248
280
  '[attr.data-highlighted]': 'highlighted ? "" : null',
249
- '[attr.data-disabled]': 'cdkMenuItem.disabled ? "" : null',
250
- '[attr.disabled]': 'cdkMenuItem.disabled ? "" : null',
281
+ '[attr.data-disabled]': 'disabled ? "" : null',
282
+ '[attr.disabled]': 'disabled ? "" : null',
251
283
  '(pointermove)': 'onPointerMove()',
252
284
  '(focus)': 'menu.highlighted.next(this)',
253
285
  '(keydown)': 'onKeydown($event)'
254
- }
286
+ },
287
+ providers: [
288
+ { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },
289
+ { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }
290
+ ]
255
291
  }]
256
- }], ctorParameters: () => [], propDecorators: { onSelect: [{
292
+ }], ctorParameters: () => [], propDecorators: { disabled: [{
293
+ type: Input,
294
+ args: [{ transform: booleanAttribute }]
295
+ }], onSelect: [{
257
296
  type: Output
258
297
  }] } });
259
298
 
@@ -261,21 +300,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
261
300
  class RdxDropdownMenuSelectable extends RdxDropdownMenuItemDirective {
262
301
  constructor() {
263
302
  super(...arguments);
264
- this._checked = false;
265
- this.onCheckedChange = new EventEmitter();
266
- }
267
- /** Whether the element is checked */
268
- set checked(value) {
269
- if (this._checked == value)
270
- return;
271
- this._checked = value;
272
- this.onCheckedChange.emit(value);
273
- }
274
- get checked() {
275
- return this._checked;
303
+ /** Whether the element is checked */
304
+ this.checked = false;
305
+ this.checkedChange = new EventEmitter();
276
306
  }
277
307
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuSelectable, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
278
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.2", type: RdxDropdownMenuSelectable, isStandalone: true, inputs: { checked: ["checked", "checked", booleanAttribute] }, outputs: { onCheckedChange: "onCheckedChange" }, host: { properties: { "attr.aria-checked": "!!checked", "attr.aria-disabled": "disabled || null", "attr.data-state": "checked ? \"checked\" : \"unchecked\"" } }, usesInheritance: true, ngImport: i0 }); }
308
+ 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 }); }
279
309
  }
280
310
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuSelectable, decorators: [{
281
311
  type: Directive,
@@ -290,15 +320,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
290
320
  }], propDecorators: { checked: [{
291
321
  type: Input,
292
322
  args: [{ transform: booleanAttribute }]
293
- }], onCheckedChange: [{
323
+ }], checkedChange: [{
294
324
  type: Output
295
325
  }] } });
296
326
 
297
327
  class RdxDropdownMenuItemCheckboxDirective extends RdxDropdownMenuSelectable {
328
+ trigger(options) {
329
+ if (!this.disabled) {
330
+ this.checked = !this.checked;
331
+ this.checkedChange.emit(this.checked);
332
+ }
333
+ super.trigger(options);
334
+ }
298
335
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuItemCheckboxDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
299
336
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: RdxDropdownMenuItemCheckboxDirective, isStandalone: true, selector: "[rdxDropdownMenuItemCheckbox]", host: { attributes: { "role": "menuitemcheckbox" } }, providers: [
300
337
  { provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemCheckboxDirective },
301
- { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable }
338
+ { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },
339
+ { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective }
302
340
  ], usesInheritance: true, ngImport: i0 }); }
303
341
  }
304
342
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuItemCheckboxDirective, decorators: [{
@@ -311,7 +349,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
311
349
  },
312
350
  providers: [
313
351
  { provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemCheckboxDirective },
314
- { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable }
352
+ { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },
353
+ { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective }
315
354
  ]
316
355
  }]
317
356
  }] });
@@ -385,8 +424,8 @@ class RdxDropdownMenuItemRadioDirective extends RdxDropdownMenuSelectable {
385
424
  this.group = inject(RdxDropdownMenuItemRadioGroupDirective);
386
425
  /** An ID to identify this radio item to the `UniqueSelectionDispatcher`. */
387
426
  this.id = `${nextId++}`;
388
- this.cdkMenuItem.triggered.subscribe(() => {
389
- if (!this.cdkMenuItem.disabled) {
427
+ this.triggered.subscribe(() => {
428
+ if (!this.disabled) {
390
429
  this.selectionDispatcher.notify(this.value, '');
391
430
  this.group.valueChange.emit(this.value);
392
431
  }
@@ -398,12 +437,14 @@ class RdxDropdownMenuItemRadioDirective extends RdxDropdownMenuSelectable {
398
437
  });
399
438
  }
400
439
  ngOnDestroy() {
440
+ super.ngOnDestroy();
401
441
  this.removeDispatcherListener();
402
442
  }
403
443
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuItemRadioDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
404
444
  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: [
405
445
  { provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemRadioDirective },
406
- { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable }
446
+ { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },
447
+ { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective }
407
448
  ], usesInheritance: true, ngImport: i0 }); }
408
449
  }
409
450
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuItemRadioDirective, decorators: [{
@@ -416,7 +457,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
416
457
  },
417
458
  providers: [
418
459
  { provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemRadioDirective },
419
- { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable }
460
+ { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },
461
+ { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective }
420
462
  ]
421
463
  }]
422
464
  }], ctorParameters: () => [], propDecorators: { value: [{
@@ -437,7 +479,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
437
479
 
438
480
  class RdxDropdownMenuSeparatorDirective {
439
481
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuSeparatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
440
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: RdxDropdownMenuSeparatorDirective, isStandalone: true, selector: "[rdxDropdownMenuSeparator]", host: { attributes: { "role": "separator" }, properties: { "attr.aria-orientation": "'horizontal'" } }, hostDirectives: [{ directive: i1$1.RdxSeparatorRootDirective }], ngImport: i0 }); }
482
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: RdxDropdownMenuSeparatorDirective, isStandalone: true, selector: "[rdxDropdownMenuSeparator]", host: { attributes: { "role": "separator" }, properties: { "attr.aria-orientation": "'horizontal'" } }, hostDirectives: [{ directive: i1.RdxSeparatorRootDirective }], ngImport: i0 }); }
441
483
  }
442
484
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RdxDropdownMenuSeparatorDirective, decorators: [{
443
485
  type: Directive,