@radix-ng/primitives 0.22.0 → 0.24.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/accordion/src/accordion-item.directive.d.ts +22 -13
- package/accordion/src/accordion-root.directive.d.ts +22 -3
- package/aspect-ratio/src/aspect-ratio.directive.d.ts +5 -3
- package/avatar/index.d.ts +9 -0
- package/avatar/src/avatar-fallback.directive.d.ts +9 -0
- package/avatar/src/avatar-image.directive.d.ts +12 -0
- package/collapsible/src/collapsible-content.directive.d.ts +0 -3
- package/collapsible/src/collapsible-root.directive.d.ts +11 -4
- package/compodoc/documentation.json +3848 -3623
- package/dropdown-menu/src/dropdown-menu-trigger.directive.d.ts +30 -3
- package/esm2022/accordion/src/accordion-item.directive.mjs +23 -14
- package/esm2022/accordion/src/accordion-root.directive.mjs +19 -3
- package/esm2022/aspect-ratio/src/aspect-ratio.directive.mjs +4 -2
- package/esm2022/avatar/index.mjs +27 -1
- package/esm2022/avatar/src/avatar-fallback.directive.mjs +10 -1
- package/esm2022/avatar/src/avatar-image.directive.mjs +13 -1
- package/esm2022/collapsible/src/collapsible-content.directive.mjs +1 -4
- package/esm2022/collapsible/src/collapsible-root.directive.mjs +17 -8
- package/esm2022/dropdown-menu/src/dropdown-menu-trigger.directive.mjs +35 -4
- package/esm2022/label/src/label.directive.mjs +6 -8
- package/esm2022/popover/src/popover-anchor.directive.mjs +8 -3
- package/esm2022/popover/src/popover-content.directive.mjs +30 -15
- package/esm2022/popover/src/popover-root.directive.mjs +6 -1
- package/esm2022/popover/src/popover.utils.mjs +17 -23
- package/esm2022/popover/src/utils/cdk-event.service.mjs +153 -0
- package/esm2022/popover/src/utils/constants.mjs +2 -0
- package/esm2022/popover/src/utils/types.mjs +2 -0
- package/esm2022/progress/src/progress-indicator.directive.mjs +1 -2
- package/esm2022/progress/src/progress-root.directive.mjs +8 -3
- package/esm2022/separator/src/separator.directive.mjs +9 -2
- package/esm2022/switch/src/switch-input.directive.mjs +4 -1
- package/esm2022/switch/src/switch-root.directive.mjs +28 -3
- package/esm2022/switch/src/switch-thumb.directive.mjs +4 -1
- package/fesm2022/radix-ng-primitives-accordion.mjs +40 -15
- package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +3 -1
- package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-avatar.mjs +45 -2
- package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-collapsible.mjs +16 -10
- package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +34 -3
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-label.mjs +5 -7
- package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popover.mjs +208 -39
- package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-progress.mjs +7 -3
- package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-separator.mjs +8 -1
- package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-switch.mjs +33 -2
- package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
- package/label/src/label.directive.d.ts +5 -7
- package/package.json +1 -1
- package/popover/src/popover-content.directive.d.ts +14 -6
- package/popover/src/popover-root.directive.d.ts +24 -1
- package/popover/src/utils/cdk-event.service.d.ts +29 -0
- package/popover/src/utils/constants.d.ts +1 -0
- package/popover/src/utils/types.d.ts +7 -0
- package/progress/src/progress-indicator.directive.d.ts +0 -1
- package/progress/src/progress-root.directive.d.ts +7 -2
- package/separator/src/separator.directive.d.ts +8 -1
- package/switch/src/switch-input.directive.d.ts +3 -0
- package/switch/src/switch-root.directive.d.ts +27 -2
- package/switch/src/switch-thumb.directive.d.ts +3 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { signal, Injectable, Directive, InjectionToken, inject, input, computed, effect, ElementRef, output } from '@angular/core';
|
2
|
+
import { signal, Injectable, Directive, InjectionToken, inject, input, computed, effect, ElementRef, output, NgModule } from '@angular/core';
|
3
3
|
|
4
4
|
class RdxAvatarRootContext {
|
5
5
|
constructor() {
|
@@ -41,10 +41,19 @@ function injectAvatarConfig() {
|
|
41
41
|
return inject(RdxAvatarConfigToken, { optional: true }) ?? defaultAvatarConfig;
|
42
42
|
}
|
43
43
|
|
44
|
+
/**
|
45
|
+
* @group Components
|
46
|
+
*/
|
44
47
|
class RdxAvatarFallbackDirective {
|
45
48
|
constructor() {
|
46
49
|
this.avatarRoot = inject(RdxAvatarRootContext);
|
47
50
|
this.config = injectAvatarConfig();
|
51
|
+
/**
|
52
|
+
* Useful for delaying rendering so it only appears for those with slower connections.
|
53
|
+
*
|
54
|
+
* @group Props
|
55
|
+
* @defaultValue 0
|
56
|
+
*/
|
48
57
|
this.delayMs = input(this.config.delayMs);
|
49
58
|
this.shouldRender = computed(() => this.canRender() && this.avatarRoot.imageLoadingStatus() !== 'loaded');
|
50
59
|
this.canRender = signal(false);
|
@@ -95,11 +104,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
95
104
|
}]
|
96
105
|
}], ctorParameters: () => [] });
|
97
106
|
|
107
|
+
/**
|
108
|
+
* @group Components
|
109
|
+
*/
|
98
110
|
class RdxAvatarImageDirective {
|
99
111
|
constructor() {
|
100
112
|
this.avatarRoot = inject(RdxAvatarRootContext);
|
101
113
|
this.elementRef = inject((ElementRef));
|
114
|
+
/**
|
115
|
+
* @group Props
|
116
|
+
*/
|
102
117
|
this.src = input();
|
118
|
+
/**
|
119
|
+
* A callback providing information about the loading status of the image.
|
120
|
+
* This is useful in case you want to control more precisely what to render as the image is loading.
|
121
|
+
*
|
122
|
+
* @group Emits
|
123
|
+
*/
|
103
124
|
this.onLoadingStatusChange = output();
|
104
125
|
this.imageLoadingStatus = computed(() => this.avatarRoot.imageLoadingStatus());
|
105
126
|
}
|
@@ -145,9 +166,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
145
166
|
}]
|
146
167
|
}] });
|
147
168
|
|
169
|
+
const _imports = [
|
170
|
+
RdxAvatarRootDirective,
|
171
|
+
RdxAvatarFallbackDirective,
|
172
|
+
RdxAvatarImageDirective
|
173
|
+
];
|
174
|
+
class RdxCheckboxModule {
|
175
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
176
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: RdxCheckboxModule, imports: [RdxAvatarRootDirective,
|
177
|
+
RdxAvatarFallbackDirective,
|
178
|
+
RdxAvatarImageDirective], exports: [RdxAvatarRootDirective,
|
179
|
+
RdxAvatarFallbackDirective,
|
180
|
+
RdxAvatarImageDirective] }); }
|
181
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxCheckboxModule }); }
|
182
|
+
}
|
183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxCheckboxModule, decorators: [{
|
184
|
+
type: NgModule,
|
185
|
+
args: [{
|
186
|
+
imports: [..._imports],
|
187
|
+
exports: [..._imports]
|
188
|
+
}]
|
189
|
+
}] });
|
190
|
+
|
148
191
|
/**
|
149
192
|
* Generated bundle index. Do not edit.
|
150
193
|
*/
|
151
194
|
|
152
|
-
export { RdxAvatarConfigToken, RdxAvatarFallbackDirective, RdxAvatarImageDirective, RdxAvatarRootContext, RdxAvatarRootDirective, defaultAvatarConfig, injectAvatarConfig, provideRdxAvatarConfig };
|
195
|
+
export { RdxAvatarConfigToken, RdxAvatarFallbackDirective, RdxAvatarImageDirective, RdxAvatarRootContext, RdxAvatarRootDirective, RdxCheckboxModule, defaultAvatarConfig, injectAvatarConfig, provideRdxAvatarConfig };
|
153
196
|
//# sourceMappingURL=radix-ng-primitives-avatar.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"radix-ng-primitives-avatar.mjs","sources":["../../../packages/primitives/avatar/src/avatar-root.directive.ts","../../../packages/primitives/avatar/src/avatar.config.ts","../../../packages/primitives/avatar/src/avatar-fallback.directive.ts","../../../packages/primitives/avatar/src/avatar-image.directive.ts","../../../packages/primitives/avatar/radix-ng-primitives-avatar.ts"],"sourcesContent":["import { Directive, Injectable, signal } from '@angular/core';\n\nexport type RdxImageLoadingStatus = 'idle' | 'loading' | 'loaded' | 'error';\n\n@Injectable()\nexport class RdxAvatarRootContext {\n readonly imageLoadingStatus = signal<RdxImageLoadingStatus>('loading');\n}\n\n@Directive({\n selector: 'span[rdxAvatarRoot]',\n exportAs: 'rdxAvatarRoot',\n standalone: true,\n providers: [RdxAvatarRootContext]\n})\nexport class RdxAvatarRootDirective {}\n","import { inject, InjectionToken, Provider } from '@angular/core';\n\nexport interface RdxAvatarConfig {\n /**\n * Define a delay before the fallback is shown.\n * This is useful to only show the fallback for those with slower connections.\n * @default 0\n */\n delayMs: number;\n}\n\nexport const defaultAvatarConfig: RdxAvatarConfig = {\n delayMs: 0\n};\n\nexport const RdxAvatarConfigToken = new InjectionToken<RdxAvatarConfig>('RdxAvatarConfigToken');\n\nexport function provideRdxAvatarConfig(config: Partial<RdxAvatarConfig>): Provider[] {\n return [\n {\n provide: RdxAvatarConfigToken,\n useValue: { ...defaultAvatarConfig, ...config }\n }\n ];\n}\n\nexport function injectAvatarConfig(): RdxAvatarConfig {\n return inject(RdxAvatarConfigToken, { optional: true }) ?? defaultAvatarConfig;\n}\n","import { computed, Directive, effect, inject, input, OnDestroy, signal } from '@angular/core';\nimport { RdxAvatarRootContext } from './avatar-root.directive';\nimport { injectAvatarConfig } from './avatar.config';\n\n@Directive({\n selector: 'span[rdxAvatarFallback]',\n standalone: true,\n exportAs: 'rdxAvatarFallback',\n host: {\n '[style.display]': 'shouldRender() ? null : \"none\" '\n }\n})\nexport class RdxAvatarFallbackDirective implements OnDestroy {\n protected readonly avatarRoot = inject(RdxAvatarRootContext);\n\n private readonly config = injectAvatarConfig();\n\n readonly delayMs = input<number>(this.config.delayMs);\n\n protected readonly shouldRender = computed(\n () => this.canRender() && this.avatarRoot.imageLoadingStatus() !== 'loaded'\n );\n\n protected readonly canRender = signal(false);\n private timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n constructor() {\n effect(\n () => {\n const status = this.avatarRoot.imageLoadingStatus();\n if (status === 'loading') {\n this.startDelayTimer();\n } else {\n this.clearDelayTimer();\n this.canRender.set(true);\n }\n },\n { allowSignalWrites: true }\n );\n }\n\n private startDelayTimer() {\n this.clearDelayTimer();\n if (this.delayMs() > 0) {\n this.timeoutId = setTimeout(() => {\n this.canRender.set(true);\n }, this.delayMs());\n } else {\n this.canRender.set(true);\n }\n }\n\n private clearDelayTimer() {\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n\n ngOnDestroy() {\n this.clearDelayTimer();\n }\n}\n","import { computed, Directive, ElementRef, inject, input, OnInit, output } from '@angular/core';\nimport { RdxAvatarRootContext, RdxImageLoadingStatus } from './avatar-root.directive';\n\n@Directive({\n selector: 'img[rdxAvatarImage]',\n standalone: true,\n exportAs: 'rdxAvatarImage',\n host: {\n '(load)': 'onLoad()',\n '(error)': 'onError()',\n '[style.display]': '(imageLoadingStatus() === \"loaded\")? null : \"none\"'\n }\n})\nexport class RdxAvatarImageDirective implements OnInit {\n private readonly avatarRoot = inject(RdxAvatarRootContext);\n private readonly elementRef = inject(ElementRef<HTMLImageElement>);\n\n readonly src = input<string>();\n\n readonly onLoadingStatusChange = output<RdxImageLoadingStatus>();\n\n protected readonly imageLoadingStatus = computed(() => this.avatarRoot.imageLoadingStatus());\n\n ngOnInit(): void {\n this.nativeElement.src = this.src();\n\n if (!this.nativeElement.src) {\n this.setImageStatus('error');\n } else if (this.nativeElement.complete) {\n this.setImageStatus('loaded');\n } else {\n this.setImageStatus('loading');\n }\n }\n\n onLoad() {\n this.setImageStatus('loaded');\n }\n\n onError() {\n this.setImageStatus('error');\n }\n\n private setImageStatus(status: RdxImageLoadingStatus) {\n this.avatarRoot.imageLoadingStatus.set(status);\n this.onLoadingStatusChange.emit(status);\n }\n\n get nativeElement() {\n return this.elementRef.nativeElement;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"radix-ng-primitives-avatar.mjs","sources":["../../../packages/primitives/avatar/src/avatar-root.directive.ts","../../../packages/primitives/avatar/src/avatar.config.ts","../../../packages/primitives/avatar/src/avatar-fallback.directive.ts","../../../packages/primitives/avatar/src/avatar-image.directive.ts","../../../packages/primitives/avatar/index.ts","../../../packages/primitives/avatar/radix-ng-primitives-avatar.ts"],"sourcesContent":["import { Directive, Injectable, signal } from '@angular/core';\n\nexport type RdxImageLoadingStatus = 'idle' | 'loading' | 'loaded' | 'error';\n\n@Injectable()\nexport class RdxAvatarRootContext {\n readonly imageLoadingStatus = signal<RdxImageLoadingStatus>('loading');\n}\n\n@Directive({\n selector: 'span[rdxAvatarRoot]',\n exportAs: 'rdxAvatarRoot',\n standalone: true,\n providers: [RdxAvatarRootContext]\n})\nexport class RdxAvatarRootDirective {}\n","import { inject, InjectionToken, Provider } from '@angular/core';\n\nexport interface RdxAvatarConfig {\n /**\n * Define a delay before the fallback is shown.\n * This is useful to only show the fallback for those with slower connections.\n * @default 0\n */\n delayMs: number;\n}\n\nexport const defaultAvatarConfig: RdxAvatarConfig = {\n delayMs: 0\n};\n\nexport const RdxAvatarConfigToken = new InjectionToken<RdxAvatarConfig>('RdxAvatarConfigToken');\n\nexport function provideRdxAvatarConfig(config: Partial<RdxAvatarConfig>): Provider[] {\n return [\n {\n provide: RdxAvatarConfigToken,\n useValue: { ...defaultAvatarConfig, ...config }\n }\n ];\n}\n\nexport function injectAvatarConfig(): RdxAvatarConfig {\n return inject(RdxAvatarConfigToken, { optional: true }) ?? defaultAvatarConfig;\n}\n","import { computed, Directive, effect, inject, input, OnDestroy, signal } from '@angular/core';\nimport { RdxAvatarRootContext } from './avatar-root.directive';\nimport { injectAvatarConfig } from './avatar.config';\n\n/**\n * @group Components\n */\n@Directive({\n selector: 'span[rdxAvatarFallback]',\n standalone: true,\n exportAs: 'rdxAvatarFallback',\n host: {\n '[style.display]': 'shouldRender() ? null : \"none\" '\n }\n})\nexport class RdxAvatarFallbackDirective implements OnDestroy {\n protected readonly avatarRoot = inject(RdxAvatarRootContext);\n\n private readonly config = injectAvatarConfig();\n\n /**\n * Useful for delaying rendering so it only appears for those with slower connections.\n *\n * @group Props\n * @defaultValue 0\n */\n readonly delayMs = input<number>(this.config.delayMs);\n\n protected readonly shouldRender = computed(\n () => this.canRender() && this.avatarRoot.imageLoadingStatus() !== 'loaded'\n );\n\n protected readonly canRender = signal(false);\n private timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n constructor() {\n effect(\n () => {\n const status = this.avatarRoot.imageLoadingStatus();\n if (status === 'loading') {\n this.startDelayTimer();\n } else {\n this.clearDelayTimer();\n this.canRender.set(true);\n }\n },\n { allowSignalWrites: true }\n );\n }\n\n private startDelayTimer() {\n this.clearDelayTimer();\n if (this.delayMs() > 0) {\n this.timeoutId = setTimeout(() => {\n this.canRender.set(true);\n }, this.delayMs());\n } else {\n this.canRender.set(true);\n }\n }\n\n private clearDelayTimer() {\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n\n ngOnDestroy() {\n this.clearDelayTimer();\n }\n}\n","import { computed, Directive, ElementRef, inject, input, OnInit, output } from '@angular/core';\nimport { RdxAvatarRootContext, RdxImageLoadingStatus } from './avatar-root.directive';\n\n/**\n * @group Components\n */\n@Directive({\n selector: 'img[rdxAvatarImage]',\n standalone: true,\n exportAs: 'rdxAvatarImage',\n host: {\n '(load)': 'onLoad()',\n '(error)': 'onError()',\n '[style.display]': '(imageLoadingStatus() === \"loaded\")? null : \"none\"'\n }\n})\nexport class RdxAvatarImageDirective implements OnInit {\n private readonly avatarRoot = inject(RdxAvatarRootContext);\n private readonly elementRef = inject(ElementRef<HTMLImageElement>);\n\n /**\n * @group Props\n */\n readonly src = input<string>();\n\n /**\n * A callback providing information about the loading status of the image.\n * This is useful in case you want to control more precisely what to render as the image is loading.\n *\n * @group Emits\n */\n readonly onLoadingStatusChange = output<RdxImageLoadingStatus>();\n\n protected readonly imageLoadingStatus = computed(() => this.avatarRoot.imageLoadingStatus());\n\n ngOnInit(): void {\n this.nativeElement.src = this.src();\n\n if (!this.nativeElement.src) {\n this.setImageStatus('error');\n } else if (this.nativeElement.complete) {\n this.setImageStatus('loaded');\n } else {\n this.setImageStatus('loading');\n }\n }\n\n onLoad() {\n this.setImageStatus('loaded');\n }\n\n onError() {\n this.setImageStatus('error');\n }\n\n private setImageStatus(status: RdxImageLoadingStatus) {\n this.avatarRoot.imageLoadingStatus.set(status);\n this.onLoadingStatusChange.emit(status);\n }\n\n get nativeElement() {\n return this.elementRef.nativeElement;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxAvatarFallbackDirective } from './src/avatar-fallback.directive';\nimport { RdxAvatarImageDirective } from './src/avatar-image.directive';\nimport { RdxAvatarRootDirective } from './src/avatar-root.directive';\n\nexport * from './src/avatar-fallback.directive';\nexport * from './src/avatar-image.directive';\nexport * from './src/avatar-root.directive';\nexport type { RdxImageLoadingStatus } from './src/avatar-root.directive';\nexport * from './src/avatar.config';\n\nconst _imports = [\n RdxAvatarRootDirective,\n RdxAvatarFallbackDirective,\n RdxAvatarImageDirective\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class RdxCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -8,35 +8,41 @@ const RdxCollapsibleRootToken = new InjectionToken('RdxCollapsibleRootToken');
|
|
8
8
|
function injectCollapsible() {
|
9
9
|
return inject(RdxCollapsibleRootDirective);
|
10
10
|
}
|
11
|
+
/**
|
12
|
+
* @group Components
|
13
|
+
*/
|
11
14
|
class RdxCollapsibleRootDirective {
|
12
15
|
constructor() {
|
13
16
|
/**
|
14
17
|
* Reference to RdxCollapsibleContent directive
|
15
18
|
* @private
|
16
|
-
* @ignore
|
17
19
|
*/
|
18
20
|
this.contentDirective = contentChild.required(RdxCollapsibleContentToken);
|
19
21
|
/**
|
20
22
|
* Stores collapsible state
|
21
|
-
* @private
|
22
|
-
* @ignore
|
23
23
|
*/
|
24
24
|
this._open = false;
|
25
25
|
/**
|
26
26
|
* Determines whether a directive is available for interaction.
|
27
27
|
* When true, prevents the user from interacting with the collapsible.
|
28
|
+
*
|
29
|
+
* @group Props
|
28
30
|
*/
|
29
31
|
this.disabled = false;
|
30
32
|
/**
|
31
33
|
* Emitted with new value when directive state changed.
|
32
34
|
* Event handler called when the open state of the collapsible changes.
|
35
|
+
*
|
36
|
+
* @group Emits
|
33
37
|
*/
|
34
38
|
this.onOpenChange = new EventEmitter();
|
35
39
|
}
|
36
40
|
/**
|
37
41
|
* The controlled open state of the collapsible.
|
38
42
|
* Sets the state of the directive. `true` - expanded, `false` - collapsed
|
39
|
-
*
|
43
|
+
*
|
44
|
+
* @group Props
|
45
|
+
* @defaultValue false
|
40
46
|
*/
|
41
47
|
set open(value) {
|
42
48
|
if (value !== this._open) {
|
@@ -45,6 +51,9 @@ class RdxCollapsibleRootDirective {
|
|
45
51
|
this._open = value;
|
46
52
|
this.setPresence();
|
47
53
|
}
|
54
|
+
get open() {
|
55
|
+
return this._open;
|
56
|
+
}
|
48
57
|
/**
|
49
58
|
* Allows to change directive state
|
50
59
|
* @param {boolean | undefined} value
|
@@ -54,7 +63,7 @@ class RdxCollapsibleRootDirective {
|
|
54
63
|
return;
|
55
64
|
}
|
56
65
|
if (value === undefined) {
|
57
|
-
this.open = !this.
|
66
|
+
this.open = !this.open;
|
58
67
|
}
|
59
68
|
else {
|
60
69
|
this.open = value;
|
@@ -65,13 +74,13 @@ class RdxCollapsibleRootDirective {
|
|
65
74
|
* Returns directive state (open | closed)
|
66
75
|
*/
|
67
76
|
getState() {
|
68
|
-
return this.
|
77
|
+
return this.open ? 'open' : 'closed';
|
69
78
|
}
|
70
79
|
/**
|
71
80
|
* Returns current directive state
|
72
81
|
*/
|
73
82
|
isOpen() {
|
74
|
-
return this.
|
83
|
+
return this.open;
|
75
84
|
}
|
76
85
|
/**
|
77
86
|
* Controls visibility of content
|
@@ -120,9 +129,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
120
129
|
|
121
130
|
class RdxCollapsibleContentDirective {
|
122
131
|
constructor() {
|
123
|
-
/**
|
124
|
-
* @ignore
|
125
|
-
*/
|
126
132
|
this.collapsible = inject(RdxCollapsibleRootDirective);
|
127
133
|
/**
|
128
134
|
* Reference to CollapsibleContent host element
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"radix-ng-primitives-collapsible.mjs","sources":["../../../packages/primitives/collapsible/src/collapsible-content.token.ts","../../../packages/primitives/collapsible/src/collapsible-root.directive.ts","../../../packages/primitives/collapsible/src/collapsible-content.directive.ts","../../../packages/primitives/collapsible/src/collapsible-trigger.directive.ts","../../../packages/primitives/collapsible/radix-ng-primitives-collapsible.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { RdxCollapsibleContentDirective } from './collapsible-content.directive';\n\nexport const RdxCollapsibleContentToken = new InjectionToken<RdxCollapsibleContentDirective>(\n 'RdxCollapsibleContentToken'\n);\n","import { contentChild, Directive, EventEmitter, inject, InjectionToken, Input, Output } from '@angular/core';\nimport { asyncScheduler } from 'rxjs';\nimport { RdxCollapsibleContentToken } from './collapsible-content.token';\n\nconst RdxCollapsibleRootToken = new InjectionToken<RdxCollapsibleRootDirective>('RdxCollapsibleRootToken');\n\nexport function injectCollapsible(): RdxCollapsibleRootDirective {\n return inject(RdxCollapsibleRootDirective);\n}\n\nexport type RdxCollapsibleState = 'open' | 'closed';\n\n@Directive({\n selector: '[rdxCollapsibleRoot]',\n standalone: true,\n exportAs: 'collapsibleRoot',\n providers: [{ provide: RdxCollapsibleRootToken, useExisting: RdxCollapsibleRootDirective }],\n host: {\n '[attr.data-state]': 'getState()',\n '[attr.data-disabled]': 'disabled ? \"\" : undefined'\n }\n})\nexport class RdxCollapsibleRootDirective {\n /**\n * Reference to RdxCollapsibleContent directive\n * @private\n * @ignore\n */\n private readonly contentDirective = contentChild.required(RdxCollapsibleContentToken);\n\n /**\n * Stores collapsible state\n * @private\n * @ignore\n */\n private _open = false;\n\n /**\n * Determines whether a directive is available for interaction.\n * When true, prevents the user from interacting with the collapsible.\n */\n @Input() disabled = false;\n\n /**\n * The controlled open state of the collapsible.\n * Sets the state of the directive. `true` - expanded, `false` - collapsed\n * @param {boolean} value\n */\n @Input() set open(value: boolean) {\n if (value !== this._open) {\n this.onOpenChange.emit(value);\n }\n\n this._open = value;\n this.setPresence();\n }\n\n /**\n * Emitted with new value when directive state changed.\n * Event handler called when the open state of the collapsible changes.\n */\n @Output() onOpenChange = new EventEmitter<boolean>();\n\n /**\n * Allows to change directive state\n * @param {boolean | undefined} value\n */\n setOpen(value?: boolean) {\n if (this.disabled) {\n return;\n }\n\n if (value === undefined) {\n this.open = !this._open;\n } else {\n this.open = value;\n }\n\n this.setPresence();\n }\n\n /**\n * Returns directive state (open | closed)\n */\n getState(): RdxCollapsibleState {\n return this._open ? 'open' : 'closed';\n }\n\n /**\n * Returns current directive state\n */\n isOpen(): boolean {\n return this._open;\n }\n\n /**\n * Controls visibility of content\n * @private\n * @ignore\n */\n private setPresence(): void {\n if (!this.contentDirective) {\n return;\n }\n\n this.contentDirective().elementRef.nativeElement.setAttribute('data-state', this.getState());\n\n if (this.isOpen()) {\n this.contentDirective().elementRef.nativeElement.removeAttribute('hidden');\n } else {\n asyncScheduler.schedule(() => {\n const animations = this.contentDirective().elementRef.nativeElement.getAnimations();\n\n if (animations === undefined || animations.length === 0) {\n this.contentDirective().elementRef.nativeElement.setAttribute('hidden', '');\n }\n });\n }\n }\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\nimport { RdxCollapsibleContentToken } from './collapsible-content.token';\nimport { RdxCollapsibleRootDirective } from './collapsible-root.directive';\n\n@Directive({\n selector: '[rdxCollapsibleContent]',\n standalone: true,\n providers: [\n {\n provide: RdxCollapsibleContentToken,\n useExisting: RdxCollapsibleContentDirective\n }\n ],\n host: {\n '[attr.data-state]': 'collapsible.getState()',\n '[attr.data-disabled]': 'getDisabled()'\n }\n})\nexport class RdxCollapsibleContentDirective {\n /**\n * @ignore\n */\n protected readonly collapsible = inject(RdxCollapsibleRootDirective);\n\n /**\n * Reference to CollapsibleContent host element\n * @ignore\n */\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n getDisabled(): string | undefined {\n return this.collapsible.disabled ? 'disabled' : undefined;\n }\n}\n","import { Directive } from '@angular/core';\nimport { injectCollapsible, RdxCollapsibleState } from './collapsible-root.directive';\n\n@Directive({\n selector: '[rdxCollapsibleTrigger]',\n standalone: true,\n host: {\n '(click)': 'onOpenToggle()',\n '[attr.data-state]': 'getState()',\n '[attr.aria-expanded]': 'getState() === \"open\" ? \"true\" : \"false\"',\n '[disabled]': 'getDisabled()'\n }\n})\nexport class RdxCollapsibleTriggerDirective {\n /**\n * Reference to CollapsibleRoot\n * @private\n * @ignore\n */\n private readonly collapsible = injectCollapsible();\n\n /**\n * Called on trigger clicked\n */\n onOpenToggle(): void {\n this.collapsible.setOpen();\n }\n\n /**\n * Returns current directive state (open | closed)\n * @ignore\n */\n getState(): RdxCollapsibleState {\n return this.collapsible.getState();\n }\n\n /**\n * Returns current trigger state\n * @ignore\n */\n getDisabled(): string | undefined {\n return this.collapsible.disabled ? 'disabled' : undefined;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"radix-ng-primitives-collapsible.mjs","sources":["../../../packages/primitives/collapsible/src/collapsible-content.token.ts","../../../packages/primitives/collapsible/src/collapsible-root.directive.ts","../../../packages/primitives/collapsible/src/collapsible-content.directive.ts","../../../packages/primitives/collapsible/src/collapsible-trigger.directive.ts","../../../packages/primitives/collapsible/radix-ng-primitives-collapsible.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { RdxCollapsibleContentDirective } from './collapsible-content.directive';\n\nexport const RdxCollapsibleContentToken = new InjectionToken<RdxCollapsibleContentDirective>(\n 'RdxCollapsibleContentToken'\n);\n","import { contentChild, Directive, EventEmitter, inject, InjectionToken, Input, Output } from '@angular/core';\nimport { asyncScheduler } from 'rxjs';\nimport { RdxCollapsibleContentToken } from './collapsible-content.token';\n\nconst RdxCollapsibleRootToken = new InjectionToken<RdxCollapsibleRootDirective>('RdxCollapsibleRootToken');\n\nexport function injectCollapsible(): RdxCollapsibleRootDirective {\n return inject(RdxCollapsibleRootDirective);\n}\n\nexport type RdxCollapsibleState = 'open' | 'closed';\n\n/**\n * @group Components\n */\n@Directive({\n selector: '[rdxCollapsibleRoot]',\n standalone: true,\n exportAs: 'collapsibleRoot',\n providers: [{ provide: RdxCollapsibleRootToken, useExisting: RdxCollapsibleRootDirective }],\n host: {\n '[attr.data-state]': 'getState()',\n '[attr.data-disabled]': 'disabled ? \"\" : undefined'\n }\n})\nexport class RdxCollapsibleRootDirective {\n /**\n * Reference to RdxCollapsibleContent directive\n * @private\n */\n private readonly contentDirective = contentChild.required(RdxCollapsibleContentToken);\n\n /**\n * Stores collapsible state\n */\n private _open = false;\n\n /**\n * Determines whether a directive is available for interaction.\n * When true, prevents the user from interacting with the collapsible.\n *\n * @group Props\n */\n @Input() disabled = false;\n\n /**\n * The controlled open state of the collapsible.\n * Sets the state of the directive. `true` - expanded, `false` - collapsed\n *\n * @group Props\n * @defaultValue false\n */\n @Input() set open(value: boolean) {\n if (value !== this._open) {\n this.onOpenChange.emit(value);\n }\n\n this._open = value;\n this.setPresence();\n }\n\n get open(): boolean {\n return this._open;\n }\n\n /**\n * Emitted with new value when directive state changed.\n * Event handler called when the open state of the collapsible changes.\n *\n * @group Emits\n */\n @Output() onOpenChange = new EventEmitter<boolean>();\n\n /**\n * Allows to change directive state\n * @param {boolean | undefined} value\n */\n setOpen(value?: boolean) {\n if (this.disabled) {\n return;\n }\n\n if (value === undefined) {\n this.open = !this.open;\n } else {\n this.open = value;\n }\n\n this.setPresence();\n }\n\n /**\n * Returns directive state (open | closed)\n */\n getState(): RdxCollapsibleState {\n return this.open ? 'open' : 'closed';\n }\n\n /**\n * Returns current directive state\n */\n isOpen(): boolean {\n return this.open;\n }\n\n /**\n * Controls visibility of content\n * @private\n * @ignore\n */\n private setPresence(): void {\n if (!this.contentDirective) {\n return;\n }\n\n this.contentDirective().elementRef.nativeElement.setAttribute('data-state', this.getState());\n\n if (this.isOpen()) {\n this.contentDirective().elementRef.nativeElement.removeAttribute('hidden');\n } else {\n asyncScheduler.schedule(() => {\n const animations = this.contentDirective().elementRef.nativeElement.getAnimations();\n\n if (animations === undefined || animations.length === 0) {\n this.contentDirective().elementRef.nativeElement.setAttribute('hidden', '');\n }\n });\n }\n }\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\nimport { RdxCollapsibleContentToken } from './collapsible-content.token';\nimport { RdxCollapsibleRootDirective } from './collapsible-root.directive';\n\n@Directive({\n selector: '[rdxCollapsibleContent]',\n standalone: true,\n providers: [\n {\n provide: RdxCollapsibleContentToken,\n useExisting: RdxCollapsibleContentDirective\n }\n ],\n host: {\n '[attr.data-state]': 'collapsible.getState()',\n '[attr.data-disabled]': 'getDisabled()'\n }\n})\nexport class RdxCollapsibleContentDirective {\n protected readonly collapsible = inject(RdxCollapsibleRootDirective);\n\n /**\n * Reference to CollapsibleContent host element\n * @ignore\n */\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n getDisabled(): string | undefined {\n return this.collapsible.disabled ? 'disabled' : undefined;\n }\n}\n","import { Directive } from '@angular/core';\nimport { injectCollapsible, RdxCollapsibleState } from './collapsible-root.directive';\n\n@Directive({\n selector: '[rdxCollapsibleTrigger]',\n standalone: true,\n host: {\n '(click)': 'onOpenToggle()',\n '[attr.data-state]': 'getState()',\n '[attr.aria-expanded]': 'getState() === \"open\" ? \"true\" : \"false\"',\n '[disabled]': 'getDisabled()'\n }\n})\nexport class RdxCollapsibleTriggerDirective {\n /**\n * Reference to CollapsibleRoot\n * @private\n * @ignore\n */\n private readonly collapsible = injectCollapsible();\n\n /**\n * Called on trigger clicked\n */\n onOpenToggle(): void {\n this.collapsible.setOpen();\n }\n\n /**\n * Returns current directive state (open | closed)\n * @ignore\n */\n getState(): RdxCollapsibleState {\n return this.collapsible.getState();\n }\n\n /**\n * Returns current trigger state\n * @ignore\n */\n getDisabled(): string | undefined {\n return this.collapsible.disabled ? 'disabled' : undefined;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -59,10 +59,20 @@ const dropdownPositions = {
|
|
59
59
|
offsetY: 0
|
60
60
|
}
|
61
61
|
};
|
62
|
+
/**
|
63
|
+
* @group Components
|
64
|
+
*/
|
62
65
|
class RdxDropdownMenuTriggerDirective extends CdkMenuTrigger {
|
63
66
|
set rdxDropdownMenuTrigger(value) {
|
64
67
|
this.menuTemplateRef = value;
|
65
68
|
}
|
69
|
+
/**
|
70
|
+
* The preferred side of the trigger to render against when open.
|
71
|
+
* Will be reversed when collisions occur and `avoidCollisions` is enabled.
|
72
|
+
*
|
73
|
+
* @group Props
|
74
|
+
* @defaultValue 'bottom'
|
75
|
+
*/
|
66
76
|
set side(value) {
|
67
77
|
if (!Object.values(DropdownSide).includes(value)) {
|
68
78
|
throw new Error(`Unknown side: ${value}`);
|
@@ -73,6 +83,12 @@ class RdxDropdownMenuTriggerDirective extends CdkMenuTrigger {
|
|
73
83
|
get side() {
|
74
84
|
return this._side;
|
75
85
|
}
|
86
|
+
/**
|
87
|
+
* The preferred alignment against the trigger. May change when collisions occur.
|
88
|
+
*
|
89
|
+
* @group Props
|
90
|
+
* @defaultValue 'center'
|
91
|
+
*/
|
76
92
|
set align(value) {
|
77
93
|
if (!Object.values(DropdownAlign).includes(value)) {
|
78
94
|
throw new Error(`Unknown align: ${value}`);
|
@@ -88,6 +104,11 @@ class RdxDropdownMenuTriggerDirective extends CdkMenuTrigger {
|
|
88
104
|
get align() {
|
89
105
|
return this._align;
|
90
106
|
}
|
107
|
+
/**
|
108
|
+
* The distance in pixels from the trigger.
|
109
|
+
* @group Props
|
110
|
+
* @defaultValue 0
|
111
|
+
*/
|
91
112
|
set sideOffset(value) {
|
92
113
|
// todo need invert value for top and left
|
93
114
|
if (this.isVertical) {
|
@@ -97,6 +118,14 @@ class RdxDropdownMenuTriggerDirective extends CdkMenuTrigger {
|
|
97
118
|
this.defaultPosition.offsetX = value;
|
98
119
|
}
|
99
120
|
}
|
121
|
+
get sideOffset() {
|
122
|
+
return this._sideOffset;
|
123
|
+
}
|
124
|
+
/**
|
125
|
+
* An offset in pixels from the "start" or "end" alignment options.
|
126
|
+
* @group Props
|
127
|
+
* @defaultValue 0
|
128
|
+
*/
|
100
129
|
set alignOffset(value) {
|
101
130
|
// todo need invert value for top and left
|
102
131
|
if (this.isVertical) {
|
@@ -106,6 +135,9 @@ class RdxDropdownMenuTriggerDirective extends CdkMenuTrigger {
|
|
106
135
|
this.defaultPosition.offsetY = value;
|
107
136
|
}
|
108
137
|
}
|
138
|
+
get alignOffset() {
|
139
|
+
return this._alignOffset;
|
140
|
+
}
|
109
141
|
get isVertical() {
|
110
142
|
return this._side === DropdownSide.Top || this._side === DropdownSide.Bottom;
|
111
143
|
}
|
@@ -114,14 +146,13 @@ class RdxDropdownMenuTriggerDirective extends CdkMenuTrigger {
|
|
114
146
|
}
|
115
147
|
constructor() {
|
116
148
|
super();
|
117
|
-
/**
|
118
|
-
* @ignore
|
119
|
-
*/
|
120
149
|
this.disabled = input(false, {
|
121
150
|
transform: booleanAttribute
|
122
151
|
});
|
123
152
|
this._side = DropdownSide.Bottom;
|
124
153
|
this._align = DropdownAlign.Start;
|
154
|
+
this._sideOffset = 0;
|
155
|
+
this._alignOffset = 0;
|
125
156
|
this.onOpenChange = outputFromObservable(this.opened);
|
126
157
|
// todo priority
|
127
158
|
this.menuPosition = [{ ...dropdownPositions[DropdownSide.Bottom] }];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"radix-ng-primitives-dropdown-menu.mjs","sources":["../../../packages/primitives/dropdown-menu/src/dropdown-menu-trigger.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-content.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item-selectable.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item-checkbox.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item-indicator.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item-radio-group.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item-radio.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-label.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-separator.directive.ts","../../../packages/primitives/dropdown-menu/index.ts","../../../packages/primitives/dropdown-menu/radix-ng-primitives-dropdown-menu.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuTrigger, MENU_TRIGGER, PARENT_OR_NEW_MENU_STACK_PROVIDER } from '@angular/cdk/menu';\nimport { ConnectedPosition, OverlayRef, VerticalConnectionPos } from '@angular/cdk/overlay';\nimport { booleanAttribute, Directive, Input, input, numberAttribute, TemplateRef } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\n\nexport enum DropdownSide {\n Top = 'top',\n Right = 'right',\n Bottom = 'bottom',\n Left = 'left'\n}\n\nexport enum DropdownAlign {\n Start = 'start',\n Center = 'center',\n End = 'end'\n}\n\nexport const mapRdxAlignToCdkPosition = {\n start: 'top',\n center: 'center',\n end: 'bottom'\n};\n\nconst dropdownPositions: Record<DropdownSide, ConnectedPosition> = {\n top: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: 0\n },\n right: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 0\n },\n bottom: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 0\n },\n left: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 0\n }\n};\n\n@Directive({\n selector: '[rdxDropdownMenuTrigger]',\n standalone: true,\n host: {\n type: 'button',\n '[attr.aria-haspopup]': \"'menu'\",\n '[attr.aria-expanded]': 'isOpen()',\n '[attr.data-state]': \"isOpen() ? 'open': 'closed'\",\n '[attr.data-disabled]': \"disabled() ? '' : undefined\",\n '[disabled]': 'disabled()',\n\n '(pointerdown)': 'onPointerDown($event)'\n },\n providers: [\n { provide: CdkMenuTrigger, useExisting: RdxDropdownMenuTriggerDirective },\n { provide: MENU_TRIGGER, useExisting: CdkMenuTrigger },\n PARENT_OR_NEW_MENU_STACK_PROVIDER\n ]\n})\nexport class RdxDropdownMenuTriggerDirective extends CdkMenuTrigger {\n /**\n * @ignore\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute\n });\n\n @Input()\n set rdxDropdownMenuTrigger(value: TemplateRef<unknown> | null) {\n this.menuTemplateRef = value;\n }\n\n @Input()\n set side(value: DropdownSide) {\n if (!Object.values(DropdownSide).includes(value)) {\n throw new Error(`Unknown side: ${value}`);\n }\n\n this._side = value;\n\n this.menuPosition[0] = dropdownPositions[value];\n }\n\n get side() {\n return this._side;\n }\n\n private _side: DropdownSide = DropdownSide.Bottom;\n\n @Input()\n set align(value: DropdownAlign) {\n if (!Object.values(DropdownAlign).includes(value)) {\n throw new Error(`Unknown align: ${value}`);\n }\n\n this._align = value;\n\n if (this.isVertical) {\n this.defaultPosition.overlayX = this.defaultPosition.originX = value;\n } else {\n this.defaultPosition.overlayY = this.defaultPosition.originY = mapRdxAlignToCdkPosition[\n value\n ] as VerticalConnectionPos;\n }\n }\n\n get align() {\n return this._align;\n }\n\n private _align: DropdownAlign = DropdownAlign.Start;\n\n @Input({ transform: numberAttribute })\n set sideOffset(value: number) {\n // todo need invert value for top and left\n if (this.isVertical) {\n this.defaultPosition.offsetY = value;\n } else {\n this.defaultPosition.offsetX = value;\n }\n }\n\n @Input({ transform: numberAttribute })\n set alignOffset(value: number) {\n // todo need invert value for top and left\n if (this.isVertical) {\n this.defaultPosition.offsetX = value;\n } else {\n this.defaultPosition.offsetY = value;\n }\n }\n\n onOpenChange = outputFromObservable(this.opened);\n\n get isVertical(): boolean {\n return this._side === DropdownSide.Top || this._side === DropdownSide.Bottom;\n }\n\n get defaultPosition(): ConnectedPosition {\n return this.menuPosition[0];\n }\n\n constructor() {\n super();\n // todo priority\n this.menuPosition = [{ ...dropdownPositions[DropdownSide.Bottom] }];\n }\n\n onPointerDown($event: MouseEvent) {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!this.disabled() && $event.button === 0 && !$event.ctrlKey) {\n /* empty */\n if (!this.isOpen()) {\n // prevent trigger focusing when opening\n // this allows the content to be given focus without competition\n $event.preventDefault();\n }\n }\n }\n\n getOverlayRef(): OverlayRef | null {\n return this.overlayRef;\n }\n}\n","import { CdkMenu, CdkMenuItem } from '@angular/cdk/menu';\nimport { Directive, inject, Input } from '@angular/core';\nimport { pairwise, startWith, Subject } from 'rxjs';\nimport { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';\nimport { RdxDropdownMenuTriggerDirective } from './dropdown-menu-trigger.directive';\n\n@Directive({\n selector: '[rdxDropdownMenuContent]',\n standalone: true,\n host: {\n '[attr.data-state]': \"menuTrigger.isOpen() ? 'open': 'closed'\",\n '[attr.data-align]': 'menuTrigger!.align',\n '[attr.data-side]': 'menuTrigger!.side',\n '[attr.data-orientation]': 'orientation'\n },\n providers: [\n {\n provide: CdkMenu,\n useExisting: RdxDropdownMenuContentDirective\n }\n ]\n})\nexport class RdxDropdownMenuContentDirective extends CdkMenu {\n readonly highlighted = new Subject<RdxDropdownMenuItemDirective>();\n readonly menuTrigger = inject(RdxDropdownMenuTriggerDirective, { optional: true });\n\n @Input() onEscapeKeyDown: (event?: Event) => void = () => undefined;\n @Input() closeOnEscape: boolean = true;\n\n constructor() {\n super();\n\n this.highlighted.pipe(startWith(null), pairwise()).subscribe(([prev, item]) => {\n if (prev) {\n prev.highlighted = false;\n }\n\n if (item) {\n item.highlighted = true;\n }\n });\n }\n\n updateActiveItem(item: CdkMenuItem) {\n this.keyManager.updateActiveItem(item);\n }\n}\n","import { CDK_MENU, CdkMenuItem } from '@angular/cdk/menu';\nimport { booleanAttribute, Directive, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { RdxDropdownMenuContentDirective } from './dropdown-menu-content.directive';\n\n@Directive({\n selector: '[rdxDropdownMenuItem]',\n standalone: true,\n host: {\n type: 'button',\n // todo horizontal ?\n '[attr.data-orientation]': '\"vertical\"',\n '[attr.data-highlighted]': 'highlighted ? \"\" : null',\n '[attr.data-disabled]': 'disabled ? \"\" : null',\n '[attr.disabled]': 'disabled ? \"\" : null',\n '(pointermove)': 'onPointerMove()',\n '(focus)': 'menu.highlighted.next(this)',\n '(keydown)': 'onKeydown($event)'\n },\n providers: [\n { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },\n { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }\n ]\n})\nexport class RdxDropdownMenuItemDirective extends CdkMenuItem {\n protected readonly menu = inject(RdxDropdownMenuContentDirective);\n protected readonly nativeElement = inject(ElementRef).nativeElement;\n\n highlighted = false;\n\n @Input({ transform: booleanAttribute }) override disabled: boolean = false;\n\n @Output() readonly onSelect = new EventEmitter<void>();\n\n constructor() {\n super();\n\n this.menu.highlighted.pipe(takeUntilDestroyed()).subscribe((value) => {\n if (value !== this) {\n this.highlighted = false;\n }\n });\n\n this.triggered.subscribe(this.onSelect);\n }\n\n protected onPointerMove() {\n if (!this.highlighted) {\n this.nativeElement.focus({ preventScroll: true });\n this.menu.updateActiveItem(this);\n }\n }\n\n protected onKeydown(event: KeyboardEvent) {\n if (this.nativeElement.tagName !== 'BUTTON' && ['Enter', ' '].includes(event.key)) {\n event.preventDefault();\n }\n\n if (event.key === 'Escape') {\n if (!this.menu.closeOnEscape) {\n event.stopPropagation();\n } else {\n this.menu.onEscapeKeyDown(event);\n }\n }\n }\n}\n","import { booleanAttribute, Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';\n\n/** Base class providing checked state for selectable DropdownMenuItems. */\n@Directive({\n standalone: true,\n host: {\n '[attr.aria-checked]': '!!checked',\n '[attr.aria-disabled]': 'disabled || null',\n '[attr.data-state]': 'checked ? \"checked\" : \"unchecked\"'\n }\n})\nexport class RdxDropdownMenuSelectable extends RdxDropdownMenuItemDirective {\n /** Whether the element is checked */\n @Input({ transform: booleanAttribute }) checked: boolean = false;\n\n @Output() readonly checkedChange = new EventEmitter<boolean>();\n}\n","import { CDK_MENU, CdkMenuItem } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\nimport { RdxDropdownMenuContentDirective } from './dropdown-menu-content.directive';\nimport { RdxDropdownMenuSelectable } from './dropdown-menu-item-selectable';\nimport { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';\n\n@Directive({\n selector: '[rdxDropdownMenuItemCheckbox]',\n standalone: true,\n host: {\n role: 'menuitemcheckbox'\n },\n providers: [\n { provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemCheckboxDirective },\n { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },\n { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },\n { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }\n ]\n})\nexport class RdxDropdownMenuItemCheckboxDirective extends RdxDropdownMenuSelectable {\n override trigger(options?: { keepOpen: boolean }) {\n if (!this.disabled) {\n this.checked = !this.checked;\n\n this.checkedChange.emit(this.checked);\n }\n\n super.trigger(options);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { RdxDropdownMenuSelectable } from './dropdown-menu-item-selectable';\n\n@Directive({\n selector: '[rdxDropdownMenuItemIndicator]',\n standalone: true,\n host: {\n '[style.display]': \"item.checked ? 'block' : 'none'\",\n '[attr.data-state]': \"item.checked ? 'checked' : 'unchecked'\"\n }\n})\nexport class RdxDropdownMenuItemIndicatorDirective {\n item = inject(RdxDropdownMenuSelectable);\n}\n","import { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { AfterContentInit, Directive, EventEmitter, inject, Input, Output } from '@angular/core';\n\n@Directive({\n selector: '[rdxDropdownMenuItemRadioGroup]',\n standalone: true,\n host: {\n role: 'group'\n },\n providers: [{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }]\n})\nexport class RdxDropdownMenuItemRadioGroupDirective<T> implements AfterContentInit {\n private readonly selectionDispatcher = inject(UniqueSelectionDispatcher);\n\n @Input()\n set value(id: T | null) {\n this._value = id;\n }\n\n get value(): T | null {\n return this._value;\n }\n\n private _value: T | null = null;\n\n @Output() readonly valueChange = new EventEmitter();\n\n ngAfterContentInit(): void {\n this.selectionDispatcher.notify(this.value as string, '');\n }\n}\n","import { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { CDK_MENU, CdkMenuItem } from '@angular/cdk/menu';\nimport { AfterContentInit, Directive, inject, Input, OnDestroy } from '@angular/core';\nimport { RdxDropdownMenuContentDirective } from './dropdown-menu-content.directive';\nimport { RdxDropdownMenuItemRadioGroupDirective } from './dropdown-menu-item-radio-group.directive';\nimport { RdxDropdownMenuSelectable } from './dropdown-menu-item-selectable';\nimport { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';\n\n/** Counter used to set a unique id and name for a selectable item */\nlet nextId = 0;\n\n@Directive({\n selector: '[rdxDropdownMenuItemRadio]',\n standalone: true,\n host: {\n role: 'menuitemradio'\n },\n providers: [\n { provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemRadioDirective },\n { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },\n { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },\n { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }\n ]\n})\nexport class RdxDropdownMenuItemRadioDirective\n extends RdxDropdownMenuSelectable\n implements AfterContentInit, OnDestroy\n{\n /** The unique selection dispatcher for this radio's `RdxDropdownMenuItemRadioGroupDirective`. */\n private readonly selectionDispatcher = inject(UniqueSelectionDispatcher);\n\n private readonly group = inject(RdxDropdownMenuItemRadioGroupDirective);\n\n @Input()\n get value() {\n return this._value || this.id;\n }\n\n set value(value: string) {\n this._value = value;\n }\n\n private _value: string | undefined;\n\n /** An ID to identify this radio item to the `UniqueSelectionDispatcher`. */\n private id = `${nextId++}`;\n\n private removeDispatcherListener!: () => void;\n\n constructor() {\n super();\n\n this.triggered.subscribe(() => {\n if (!this.disabled) {\n this.selectionDispatcher.notify(this.value, '');\n\n this.group.valueChange.emit(this.value);\n }\n });\n }\n\n ngAfterContentInit() {\n this.removeDispatcherListener = this.selectionDispatcher.listen((id: string) => {\n this.checked = this.value === id;\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.removeDispatcherListener();\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[rdxDropdownMenuLabel]',\n standalone: true\n})\nexport class RdxDropdownMenuLabelDirective {}\n","import { Directive } from '@angular/core';\nimport { RdxSeparatorRootDirective } from '@radix-ng/primitives/separator';\n\n@Directive({\n selector: '[rdxDropdownMenuSeparator]',\n standalone: true,\n hostDirectives: [RdxSeparatorRootDirective],\n host: {\n role: 'separator',\n '[attr.aria-orientation]': \"'horizontal'\"\n }\n})\nexport class RdxDropdownMenuSeparatorDirective {}\n","import { NgModule } from '@angular/core';\nimport { RdxDropdownMenuContentDirective } from './src/dropdown-menu-content.directive';\nimport { RdxDropdownMenuItemCheckboxDirective } from './src/dropdown-menu-item-checkbox.directive';\nimport { RdxDropdownMenuItemIndicatorDirective } from './src/dropdown-menu-item-indicator.directive';\nimport { RdxDropdownMenuItemRadioGroupDirective } from './src/dropdown-menu-item-radio-group.directive';\nimport { RdxDropdownMenuItemRadioDirective } from './src/dropdown-menu-item-radio.directive';\nimport { RdxDropdownMenuSelectable } from './src/dropdown-menu-item-selectable';\nimport { RdxDropdownMenuItemDirective } from './src/dropdown-menu-item.directive';\nimport { RdxDropdownMenuLabelDirective } from './src/dropdown-menu-label.directive';\nimport { RdxDropdownMenuSeparatorDirective } from './src/dropdown-menu-separator.directive';\nimport { RdxDropdownMenuTriggerDirective } from './src/dropdown-menu-trigger.directive';\n\nexport * from './src/dropdown-menu-content.directive';\nexport * from './src/dropdown-menu-item-checkbox.directive';\nexport * from './src/dropdown-menu-item-indicator.directive';\nexport * from './src/dropdown-menu-item-radio-group.directive';\nexport * from './src/dropdown-menu-item-radio.directive';\nexport * from './src/dropdown-menu-item-selectable';\nexport * from './src/dropdown-menu-item.directive';\nexport * from './src/dropdown-menu-label.directive';\nexport * from './src/dropdown-menu-separator.directive';\nexport * from './src/dropdown-menu-trigger.directive';\n\nconst _imports = [\n RdxDropdownMenuTriggerDirective,\n RdxDropdownMenuContentDirective,\n RdxDropdownMenuItemCheckboxDirective,\n RdxDropdownMenuItemIndicatorDirective,\n RdxDropdownMenuItemRadioGroupDirective,\n RdxDropdownMenuItemRadioDirective,\n RdxDropdownMenuSelectable,\n RdxDropdownMenuItemDirective,\n RdxDropdownMenuLabelDirective,\n RdxDropdownMenuSeparatorDirective,\n RdxDropdownMenuTriggerDirective\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class Rdx {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"radix-ng-primitives-dropdown-menu.mjs","sources":["../../../packages/primitives/dropdown-menu/src/dropdown-menu-trigger.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-content.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item-selectable.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item-checkbox.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item-indicator.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item-radio-group.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-item-radio.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-label.directive.ts","../../../packages/primitives/dropdown-menu/src/dropdown-menu-separator.directive.ts","../../../packages/primitives/dropdown-menu/index.ts","../../../packages/primitives/dropdown-menu/radix-ng-primitives-dropdown-menu.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuTrigger, MENU_TRIGGER, PARENT_OR_NEW_MENU_STACK_PROVIDER } from '@angular/cdk/menu';\nimport { ConnectedPosition, OverlayRef, VerticalConnectionPos } from '@angular/cdk/overlay';\nimport { booleanAttribute, Directive, Input, input, numberAttribute, TemplateRef } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\n\nexport enum DropdownSide {\n Top = 'top',\n Right = 'right',\n Bottom = 'bottom',\n Left = 'left'\n}\n\nexport enum DropdownAlign {\n Start = 'start',\n Center = 'center',\n End = 'end'\n}\n\nexport const mapRdxAlignToCdkPosition = {\n start: 'top',\n center: 'center',\n end: 'bottom'\n};\n\nconst dropdownPositions: Record<DropdownSide, ConnectedPosition> = {\n top: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: 0\n },\n right: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 0\n },\n bottom: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 0\n },\n left: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 0\n }\n};\n\n/**\n * @group Components\n */\n@Directive({\n selector: '[rdxDropdownMenuTrigger]',\n standalone: true,\n host: {\n type: 'button',\n '[attr.aria-haspopup]': \"'menu'\",\n '[attr.aria-expanded]': 'isOpen()',\n '[attr.data-state]': \"isOpen() ? 'open': 'closed'\",\n '[attr.data-disabled]': \"disabled() ? '' : undefined\",\n '[disabled]': 'disabled()',\n\n '(pointerdown)': 'onPointerDown($event)'\n },\n providers: [\n { provide: CdkMenuTrigger, useExisting: RdxDropdownMenuTriggerDirective },\n { provide: MENU_TRIGGER, useExisting: CdkMenuTrigger },\n PARENT_OR_NEW_MENU_STACK_PROVIDER\n ]\n})\nexport class RdxDropdownMenuTriggerDirective extends CdkMenuTrigger {\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute\n });\n\n @Input()\n set rdxDropdownMenuTrigger(value: TemplateRef<unknown> | null) {\n this.menuTemplateRef = value;\n }\n\n /**\n * The preferred side of the trigger to render against when open.\n * Will be reversed when collisions occur and `avoidCollisions` is enabled.\n *\n * @group Props\n * @defaultValue 'bottom'\n */\n @Input()\n set side(value: DropdownSide) {\n if (!Object.values(DropdownSide).includes(value)) {\n throw new Error(`Unknown side: ${value}`);\n }\n\n this._side = value;\n\n this.menuPosition[0] = dropdownPositions[value];\n }\n\n get side(): DropdownSide {\n return this._side;\n }\n\n private _side: DropdownSide = DropdownSide.Bottom;\n\n /**\n * The preferred alignment against the trigger. May change when collisions occur.\n *\n * @group Props\n * @defaultValue 'center'\n */\n @Input()\n set align(value: DropdownAlign) {\n if (!Object.values(DropdownAlign).includes(value)) {\n throw new Error(`Unknown align: ${value}`);\n }\n\n this._align = value;\n\n if (this.isVertical) {\n this.defaultPosition.overlayX = this.defaultPosition.originX = value;\n } else {\n this.defaultPosition.overlayY = this.defaultPosition.originY = mapRdxAlignToCdkPosition[\n value\n ] as VerticalConnectionPos;\n }\n }\n\n get align() {\n return this._align;\n }\n\n private _align: DropdownAlign = DropdownAlign.Start;\n\n /**\n * The distance in pixels from the trigger.\n * @group Props\n * @defaultValue 0\n */\n @Input({ transform: numberAttribute })\n set sideOffset(value: number) {\n // todo need invert value for top and left\n if (this.isVertical) {\n this.defaultPosition.offsetY = value;\n } else {\n this.defaultPosition.offsetX = value;\n }\n }\n\n get sideOffset() {\n return this._sideOffset;\n }\n\n private _sideOffset: number = 0;\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n * @group Props\n * @defaultValue 0\n */\n @Input({ transform: numberAttribute })\n set alignOffset(value: number) {\n // todo need invert value for top and left\n if (this.isVertical) {\n this.defaultPosition.offsetX = value;\n } else {\n this.defaultPosition.offsetY = value;\n }\n }\n\n get alignOffset(): number {\n return this._alignOffset;\n }\n\n private _alignOffset: number = 0;\n\n onOpenChange = outputFromObservable(this.opened);\n\n get isVertical(): boolean {\n return this._side === DropdownSide.Top || this._side === DropdownSide.Bottom;\n }\n\n get defaultPosition(): ConnectedPosition {\n return this.menuPosition[0];\n }\n\n constructor() {\n super();\n // todo priority\n this.menuPosition = [{ ...dropdownPositions[DropdownSide.Bottom] }];\n }\n\n onPointerDown($event: MouseEvent) {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!this.disabled() && $event.button === 0 && !$event.ctrlKey) {\n /* empty */\n if (!this.isOpen()) {\n // prevent trigger focusing when opening\n // this allows the content to be given focus without competition\n $event.preventDefault();\n }\n }\n }\n\n getOverlayRef(): OverlayRef | null {\n return this.overlayRef;\n }\n}\n","import { CdkMenu, CdkMenuItem } from '@angular/cdk/menu';\nimport { Directive, inject, Input } from '@angular/core';\nimport { pairwise, startWith, Subject } from 'rxjs';\nimport { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';\nimport { RdxDropdownMenuTriggerDirective } from './dropdown-menu-trigger.directive';\n\n@Directive({\n selector: '[rdxDropdownMenuContent]',\n standalone: true,\n host: {\n '[attr.data-state]': \"menuTrigger.isOpen() ? 'open': 'closed'\",\n '[attr.data-align]': 'menuTrigger!.align',\n '[attr.data-side]': 'menuTrigger!.side',\n '[attr.data-orientation]': 'orientation'\n },\n providers: [\n {\n provide: CdkMenu,\n useExisting: RdxDropdownMenuContentDirective\n }\n ]\n})\nexport class RdxDropdownMenuContentDirective extends CdkMenu {\n readonly highlighted = new Subject<RdxDropdownMenuItemDirective>();\n readonly menuTrigger = inject(RdxDropdownMenuTriggerDirective, { optional: true });\n\n @Input() onEscapeKeyDown: (event?: Event) => void = () => undefined;\n @Input() closeOnEscape: boolean = true;\n\n constructor() {\n super();\n\n this.highlighted.pipe(startWith(null), pairwise()).subscribe(([prev, item]) => {\n if (prev) {\n prev.highlighted = false;\n }\n\n if (item) {\n item.highlighted = true;\n }\n });\n }\n\n updateActiveItem(item: CdkMenuItem) {\n this.keyManager.updateActiveItem(item);\n }\n}\n","import { CDK_MENU, CdkMenuItem } from '@angular/cdk/menu';\nimport { booleanAttribute, Directive, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { RdxDropdownMenuContentDirective } from './dropdown-menu-content.directive';\n\n@Directive({\n selector: '[rdxDropdownMenuItem]',\n standalone: true,\n host: {\n type: 'button',\n // todo horizontal ?\n '[attr.data-orientation]': '\"vertical\"',\n '[attr.data-highlighted]': 'highlighted ? \"\" : null',\n '[attr.data-disabled]': 'disabled ? \"\" : null',\n '[attr.disabled]': 'disabled ? \"\" : null',\n '(pointermove)': 'onPointerMove()',\n '(focus)': 'menu.highlighted.next(this)',\n '(keydown)': 'onKeydown($event)'\n },\n providers: [\n { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },\n { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }\n ]\n})\nexport class RdxDropdownMenuItemDirective extends CdkMenuItem {\n protected readonly menu = inject(RdxDropdownMenuContentDirective);\n protected readonly nativeElement = inject(ElementRef).nativeElement;\n\n highlighted = false;\n\n @Input({ transform: booleanAttribute }) override disabled: boolean = false;\n\n @Output() readonly onSelect = new EventEmitter<void>();\n\n constructor() {\n super();\n\n this.menu.highlighted.pipe(takeUntilDestroyed()).subscribe((value) => {\n if (value !== this) {\n this.highlighted = false;\n }\n });\n\n this.triggered.subscribe(this.onSelect);\n }\n\n protected onPointerMove() {\n if (!this.highlighted) {\n this.nativeElement.focus({ preventScroll: true });\n this.menu.updateActiveItem(this);\n }\n }\n\n protected onKeydown(event: KeyboardEvent) {\n if (this.nativeElement.tagName !== 'BUTTON' && ['Enter', ' '].includes(event.key)) {\n event.preventDefault();\n }\n\n if (event.key === 'Escape') {\n if (!this.menu.closeOnEscape) {\n event.stopPropagation();\n } else {\n this.menu.onEscapeKeyDown(event);\n }\n }\n }\n}\n","import { booleanAttribute, Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';\n\n/** Base class providing checked state for selectable DropdownMenuItems. */\n@Directive({\n standalone: true,\n host: {\n '[attr.aria-checked]': '!!checked',\n '[attr.aria-disabled]': 'disabled || null',\n '[attr.data-state]': 'checked ? \"checked\" : \"unchecked\"'\n }\n})\nexport class RdxDropdownMenuSelectable extends RdxDropdownMenuItemDirective {\n /** Whether the element is checked */\n @Input({ transform: booleanAttribute }) checked: boolean = false;\n\n @Output() readonly checkedChange = new EventEmitter<boolean>();\n}\n","import { CDK_MENU, CdkMenuItem } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\nimport { RdxDropdownMenuContentDirective } from './dropdown-menu-content.directive';\nimport { RdxDropdownMenuSelectable } from './dropdown-menu-item-selectable';\nimport { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';\n\n@Directive({\n selector: '[rdxDropdownMenuItemCheckbox]',\n standalone: true,\n host: {\n role: 'menuitemcheckbox'\n },\n providers: [\n { provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemCheckboxDirective },\n { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },\n { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },\n { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }\n ]\n})\nexport class RdxDropdownMenuItemCheckboxDirective extends RdxDropdownMenuSelectable {\n override trigger(options?: { keepOpen: boolean }) {\n if (!this.disabled) {\n this.checked = !this.checked;\n\n this.checkedChange.emit(this.checked);\n }\n\n super.trigger(options);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { RdxDropdownMenuSelectable } from './dropdown-menu-item-selectable';\n\n@Directive({\n selector: '[rdxDropdownMenuItemIndicator]',\n standalone: true,\n host: {\n '[style.display]': \"item.checked ? 'block' : 'none'\",\n '[attr.data-state]': \"item.checked ? 'checked' : 'unchecked'\"\n }\n})\nexport class RdxDropdownMenuItemIndicatorDirective {\n item = inject(RdxDropdownMenuSelectable);\n}\n","import { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { AfterContentInit, Directive, EventEmitter, inject, Input, Output } from '@angular/core';\n\n@Directive({\n selector: '[rdxDropdownMenuItemRadioGroup]',\n standalone: true,\n host: {\n role: 'group'\n },\n providers: [{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }]\n})\nexport class RdxDropdownMenuItemRadioGroupDirective<T> implements AfterContentInit {\n private readonly selectionDispatcher = inject(UniqueSelectionDispatcher);\n\n @Input()\n set value(id: T | null) {\n this._value = id;\n }\n\n get value(): T | null {\n return this._value;\n }\n\n private _value: T | null = null;\n\n @Output() readonly valueChange = new EventEmitter();\n\n ngAfterContentInit(): void {\n this.selectionDispatcher.notify(this.value as string, '');\n }\n}\n","import { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { CDK_MENU, CdkMenuItem } from '@angular/cdk/menu';\nimport { AfterContentInit, Directive, inject, Input, OnDestroy } from '@angular/core';\nimport { RdxDropdownMenuContentDirective } from './dropdown-menu-content.directive';\nimport { RdxDropdownMenuItemRadioGroupDirective } from './dropdown-menu-item-radio-group.directive';\nimport { RdxDropdownMenuSelectable } from './dropdown-menu-item-selectable';\nimport { RdxDropdownMenuItemDirective } from './dropdown-menu-item.directive';\n\n/** Counter used to set a unique id and name for a selectable item */\nlet nextId = 0;\n\n@Directive({\n selector: '[rdxDropdownMenuItemRadio]',\n standalone: true,\n host: {\n role: 'menuitemradio'\n },\n providers: [\n { provide: RdxDropdownMenuSelectable, useExisting: RdxDropdownMenuItemRadioDirective },\n { provide: RdxDropdownMenuItemDirective, useExisting: RdxDropdownMenuSelectable },\n { provide: CdkMenuItem, useExisting: RdxDropdownMenuItemDirective },\n { provide: CDK_MENU, useExisting: RdxDropdownMenuContentDirective }\n ]\n})\nexport class RdxDropdownMenuItemRadioDirective\n extends RdxDropdownMenuSelectable\n implements AfterContentInit, OnDestroy\n{\n /** The unique selection dispatcher for this radio's `RdxDropdownMenuItemRadioGroupDirective`. */\n private readonly selectionDispatcher = inject(UniqueSelectionDispatcher);\n\n private readonly group = inject(RdxDropdownMenuItemRadioGroupDirective);\n\n @Input()\n get value() {\n return this._value || this.id;\n }\n\n set value(value: string) {\n this._value = value;\n }\n\n private _value: string | undefined;\n\n /** An ID to identify this radio item to the `UniqueSelectionDispatcher`. */\n private id = `${nextId++}`;\n\n private removeDispatcherListener!: () => void;\n\n constructor() {\n super();\n\n this.triggered.subscribe(() => {\n if (!this.disabled) {\n this.selectionDispatcher.notify(this.value, '');\n\n this.group.valueChange.emit(this.value);\n }\n });\n }\n\n ngAfterContentInit() {\n this.removeDispatcherListener = this.selectionDispatcher.listen((id: string) => {\n this.checked = this.value === id;\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this.removeDispatcherListener();\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[rdxDropdownMenuLabel]',\n standalone: true\n})\nexport class RdxDropdownMenuLabelDirective {}\n","import { Directive } from '@angular/core';\nimport { RdxSeparatorRootDirective } from '@radix-ng/primitives/separator';\n\n@Directive({\n selector: '[rdxDropdownMenuSeparator]',\n standalone: true,\n hostDirectives: [RdxSeparatorRootDirective],\n host: {\n role: 'separator',\n '[attr.aria-orientation]': \"'horizontal'\"\n }\n})\nexport class RdxDropdownMenuSeparatorDirective {}\n","import { NgModule } from '@angular/core';\nimport { RdxDropdownMenuContentDirective } from './src/dropdown-menu-content.directive';\nimport { RdxDropdownMenuItemCheckboxDirective } from './src/dropdown-menu-item-checkbox.directive';\nimport { RdxDropdownMenuItemIndicatorDirective } from './src/dropdown-menu-item-indicator.directive';\nimport { RdxDropdownMenuItemRadioGroupDirective } from './src/dropdown-menu-item-radio-group.directive';\nimport { RdxDropdownMenuItemRadioDirective } from './src/dropdown-menu-item-radio.directive';\nimport { RdxDropdownMenuSelectable } from './src/dropdown-menu-item-selectable';\nimport { RdxDropdownMenuItemDirective } from './src/dropdown-menu-item.directive';\nimport { RdxDropdownMenuLabelDirective } from './src/dropdown-menu-label.directive';\nimport { RdxDropdownMenuSeparatorDirective } from './src/dropdown-menu-separator.directive';\nimport { RdxDropdownMenuTriggerDirective } from './src/dropdown-menu-trigger.directive';\n\nexport * from './src/dropdown-menu-content.directive';\nexport * from './src/dropdown-menu-item-checkbox.directive';\nexport * from './src/dropdown-menu-item-indicator.directive';\nexport * from './src/dropdown-menu-item-radio-group.directive';\nexport * from './src/dropdown-menu-item-radio.directive';\nexport * from './src/dropdown-menu-item-selectable';\nexport * from './src/dropdown-menu-item.directive';\nexport * from './src/dropdown-menu-label.directive';\nexport * from './src/dropdown-menu-separator.directive';\nexport * from './src/dropdown-menu-trigger.directive';\n\nconst _imports = [\n RdxDropdownMenuTriggerDirective,\n RdxDropdownMenuContentDirective,\n RdxDropdownMenuItemCheckboxDirective,\n RdxDropdownMenuItemIndicatorDirective,\n RdxDropdownMenuItemRadioGroupDirective,\n RdxDropdownMenuItemRadioDirective,\n RdxDropdownMenuSelectable,\n RdxDropdownMenuItemDirective,\n RdxDropdownMenuLabelDirective,\n RdxDropdownMenuSeparatorDirective,\n RdxDropdownMenuTriggerDirective\n];\n\n@NgModule({\n imports: [..._imports],\n exports: [..._imports]\n})\nexport class Rdx {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -2,6 +2,9 @@ import * as i0 from '@angular/core';
|
|
2
2
|
import { input, computed, inject, ElementRef, Directive } from '@angular/core';
|
3
3
|
|
4
4
|
let idIterator = 0;
|
5
|
+
/**
|
6
|
+
* @group Components
|
7
|
+
*/
|
5
8
|
class RdxLabelDirective {
|
6
9
|
constructor() {
|
7
10
|
/**
|
@@ -9,19 +12,14 @@ class RdxLabelDirective {
|
|
9
12
|
* @default 'rdx-label-{idIterator}'
|
10
13
|
*/
|
11
14
|
this.id = input(`rdx-label-${idIterator++}`);
|
12
|
-
/**
|
13
|
-
* @ignore
|
14
|
-
*/
|
15
15
|
this.elementId = computed(() => (this.id() ? this.id() : null));
|
16
16
|
/**
|
17
17
|
* The id of the element the label is associated with.
|
18
|
+
* @group Props
|
18
19
|
* @type string
|
19
|
-
* @
|
20
|
+
* @defaultValue false
|
20
21
|
*/
|
21
22
|
this.htmlFor = input('');
|
22
|
-
/**
|
23
|
-
* @ignore
|
24
|
-
*/
|
25
23
|
this.elementRef = inject((ElementRef));
|
26
24
|
}
|
27
25
|
// prevent text selection when double-clicking label
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"radix-ng-primitives-label.mjs","sources":["../../../packages/primitives/label/src/label.directive.ts","../../../packages/primitives/label/radix-ng-primitives-label.ts"],"sourcesContent":["import { computed, Directive, ElementRef, inject, input, InputSignal } from '@angular/core';\n\nlet idIterator = 0;\n\n@Directive({\n selector: 'label[rdxLabel]',\n exportAs: 'rdxLabel',\n standalone: true,\n host: {\n '[attr.id]': 'this.elementId()',\n '[attr.for]': 'htmlFor ? htmlFor() : null',\n '(mousedown)': 'onMouseDown($event)'\n }\n})\nexport class RdxLabelDirective {\n /**\n * @type string\n * @default 'rdx-label-{idIterator}'\n */\n readonly id: InputSignal<string> = input<string>(`rdx-label-${idIterator++}`);\n\n
|
1
|
+
{"version":3,"file":"radix-ng-primitives-label.mjs","sources":["../../../packages/primitives/label/src/label.directive.ts","../../../packages/primitives/label/radix-ng-primitives-label.ts"],"sourcesContent":["import { computed, Directive, ElementRef, inject, input, InputSignal } from '@angular/core';\n\nlet idIterator = 0;\n\n/**\n * @group Components\n */\n@Directive({\n selector: 'label[rdxLabel]',\n exportAs: 'rdxLabel',\n standalone: true,\n host: {\n '[attr.id]': 'this.elementId()',\n '[attr.for]': 'htmlFor ? htmlFor() : null',\n '(mousedown)': 'onMouseDown($event)'\n }\n})\nexport class RdxLabelDirective {\n /**\n * @type string\n * @default 'rdx-label-{idIterator}'\n */\n readonly id: InputSignal<string> = input<string>(`rdx-label-${idIterator++}`);\n\n protected readonly elementId = computed(() => (this.id() ? this.id() : null));\n\n /**\n * The id of the element the label is associated with.\n * @group Props\n * @type string\n * @defaultValue false\n */\n readonly htmlFor: InputSignal<string> = input<string>('');\n\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n // prevent text selection when double-clicking label\n // The main problem with double-clicks in a web app is that\n // you will have to create special code to handle this on touch enabled devices.\n /**\n * @ignore\n */\n onMouseDown(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n\n // only prevent text selection if clicking inside the label itself\n if (['BUTTON', 'INPUT', 'SELECT', 'TEXTAREA'].includes(target.tagName)) {\n return;\n }\n\n // prevent text selection when double-clicking label\n if (this.elementRef.nativeElement.contains(target) && !event.defaultPrevented && event.detail > 1) {\n event.preventDefault();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEA,IAAI,UAAU,GAAG,CAAC;AAElB;;AAEG;MAWU,iBAAiB,CAAA;AAV9B,IAAA,WAAA,GAAA;AAWI;;;AAGG;QACM,IAAE,CAAA,EAAA,GAAwB,KAAK,CAAS,CAAA,UAAA,EAAa,UAAU,EAAE,CAAA,CAAE,CAAC;QAE1D,IAAS,CAAA,SAAA,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;AAE7E;;;;;AAKG;AACM,QAAA,IAAA,CAAA,OAAO,GAAwB,KAAK,CAAS,EAAE,CAAC;AAExC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,EAAC,UAAuB,EAAC;AAqBhE;;;;AAhBG;;AAEG;AACH,IAAA,WAAW,CAAC,KAAiB,EAAA;AACzB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;;AAG1C,QAAA,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YACpE;;;QAIJ,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/F,KAAK,CAAC,cAAc,EAAE;;;+GAnCrB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAV7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,WAAW,EAAE,kBAAkB;AAC/B,wBAAA,YAAY,EAAE,4BAA4B;AAC1C,wBAAA,aAAa,EAAE;AAClB;AACJ,iBAAA;;;AChBD;;AAEG;;;;"}
|