@radix-ng/primitives 0.7.1 → 0.8.1

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.
Files changed (98) hide show
  1. package/accordion/README.md +1 -0
  2. package/accordion/index.d.ts +5 -0
  3. package/accordion/src/accordion-content.directive.d.ts +64 -0
  4. package/accordion/src/accordion-header.directive.d.ts +23 -0
  5. package/accordion/src/accordion-item.directive.d.ts +36 -0
  6. package/accordion/src/accordion-root.directive.d.ts +57 -0
  7. package/accordion/src/accordion-trigger.directive.d.ts +31 -0
  8. package/alert-dialog/src/alert-dialog-content.directive.d.ts +2 -1
  9. package/dropdown-menu/README.md +1 -0
  10. package/dropdown-menu/index.d.ts +5 -0
  11. package/dropdown-menu/src/dropdown-menu-content.directive.d.ts +6 -0
  12. package/dropdown-menu/src/dropdown-menu-item.directive.d.ts +8 -0
  13. package/dropdown-menu/src/dropdown-menu-label.directive.d.ts +5 -0
  14. package/dropdown-menu/src/dropdown-menu-separator.directive.d.ts +6 -0
  15. package/dropdown-menu/src/dropdown-menu-trigger.directive.d.ts +11 -0
  16. package/esm2022/accordion/index.mjs +6 -0
  17. package/esm2022/accordion/radix-ng-primitives-accordion.mjs +5 -0
  18. package/esm2022/accordion/src/accordion-content.directive.mjs +139 -0
  19. package/esm2022/accordion/src/accordion-header.directive.mjs +44 -0
  20. package/esm2022/accordion/src/accordion-item.directive.mjs +75 -0
  21. package/esm2022/accordion/src/accordion-root.directive.mjs +120 -0
  22. package/esm2022/accordion/src/accordion-trigger.directive.mjs +61 -0
  23. package/esm2022/alert-dialog/src/alert-dialog-content.directive.mjs +11 -3
  24. package/esm2022/alert-dialog/src/alert-dialog.service.mjs +6 -1
  25. package/esm2022/dropdown-menu/index.mjs +6 -0
  26. package/esm2022/dropdown-menu/radix-ng-primitives-dropdown-menu.mjs +5 -0
  27. package/esm2022/dropdown-menu/src/dropdown-menu-content.directive.mjs +17 -0
  28. package/esm2022/dropdown-menu/src/dropdown-menu-item.directive.mjs +23 -0
  29. package/esm2022/dropdown-menu/src/dropdown-menu-label.directive.mjs +14 -0
  30. package/esm2022/dropdown-menu/src/dropdown-menu-separator.directive.mjs +21 -0
  31. package/esm2022/dropdown-menu/src/dropdown-menu-trigger.directive.mjs +46 -0
  32. package/esm2022/menu/index.mjs +45 -0
  33. package/esm2022/menu/radix-ng-primitives-menu.mjs +5 -0
  34. package/esm2022/menu/src/menu-content.directive.mjs +17 -0
  35. package/esm2022/menu/src/menu-directive.mjs +18 -0
  36. package/esm2022/menu/src/menu-group.directive.mjs +20 -0
  37. package/esm2022/menu/src/menu-item.directive.mjs +42 -0
  38. package/esm2022/menu/src/menu-label.directive.mjs +14 -0
  39. package/esm2022/menu/src/menu-separator.directive.mjs +21 -0
  40. package/esm2022/menubar/index.mjs +60 -0
  41. package/esm2022/menubar/radix-ng-primitives-menubar.mjs +5 -0
  42. package/esm2022/menubar/src/menubar-content.directive.mjs +17 -0
  43. package/esm2022/menubar/src/menubar-item-checkbox.directive.mjs +34 -0
  44. package/esm2022/menubar/src/menubar-item-indicator.directive.mjs +17 -0
  45. package/esm2022/menubar/src/menubar-item-radio.directive.mjs +35 -0
  46. package/esm2022/menubar/src/menubar-item.directive.mjs +20 -0
  47. package/esm2022/menubar/src/menubar-radio-group.directive.mjs +17 -0
  48. package/esm2022/menubar/src/menubar-root.directive.mjs +24 -0
  49. package/esm2022/menubar/src/menubar-separator.directive.mjs +17 -0
  50. package/esm2022/menubar/src/menubar-trigger.directive.mjs +45 -0
  51. package/esm2022/radio/src/radio-item.directive.mjs +1 -2
  52. package/esm2022/tabs/index.mjs +38 -0
  53. package/esm2022/tabs/radix-ng-primitives-tabs.mjs +5 -0
  54. package/esm2022/tabs/src/tabs-content.directive.mjs +27 -0
  55. package/esm2022/tabs/src/tabs-context.service.mjs +43 -0
  56. package/esm2022/tabs/src/tabs-list.directive.mjs +23 -0
  57. package/esm2022/tabs/src/tabs-root.directive.mjs +54 -0
  58. package/esm2022/tabs/src/tabs-trigger.directive.mjs +52 -0
  59. package/fesm2022/radix-ng-primitives-accordion.mjs +431 -0
  60. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -0
  61. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +15 -2
  62. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  63. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +116 -0
  64. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -0
  65. package/fesm2022/radix-ng-primitives-menu.mjs +154 -0
  66. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -0
  67. package/fesm2022/radix-ng-primitives-menubar.mjs +245 -0
  68. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -0
  69. package/fesm2022/radix-ng-primitives-radio.mjs +0 -1
  70. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  71. package/fesm2022/radix-ng-primitives-tabs.mjs +220 -0
  72. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -0
  73. package/menu/README.md +1 -0
  74. package/menu/index.d.ts +18 -0
  75. package/menu/src/menu-content.directive.d.ts +6 -0
  76. package/menu/src/menu-directive.d.ts +6 -0
  77. package/menu/src/menu-group.directive.d.ts +6 -0
  78. package/menu/src/menu-item.directive.d.ts +12 -0
  79. package/menu/src/menu-label.directive.d.ts +5 -0
  80. package/menu/src/menu-separator.directive.d.ts +6 -0
  81. package/menubar/README.md +1 -0
  82. package/menubar/index.d.ts +24 -0
  83. package/menubar/src/menubar-content.directive.d.ts +6 -0
  84. package/menubar/src/menubar-item-checkbox.directive.d.ts +14 -0
  85. package/menubar/src/menubar-item-indicator.directive.d.ts +5 -0
  86. package/menubar/src/menubar-item-radio.directive.d.ts +14 -0
  87. package/menubar/src/menubar-item.directive.d.ts +8 -0
  88. package/menubar/src/menubar-radio-group.directive.d.ts +6 -0
  89. package/menubar/src/menubar-root.directive.d.ts +7 -0
  90. package/menubar/src/menubar-separator.directive.d.ts +6 -0
  91. package/menubar/src/menubar-trigger.directive.d.ts +11 -0
  92. package/package.json +31 -1
  93. package/tabs/index.d.ts +15 -0
  94. package/tabs/src/tabs-content.directive.d.ts +8 -0
  95. package/tabs/src/tabs-context.service.d.ts +22 -0
  96. package/tabs/src/tabs-list.directive.d.ts +6 -0
  97. package/tabs/src/tabs-root.directive.d.ts +37 -0
  98. package/tabs/src/tabs-trigger.directive.d.ts +19 -0
@@ -0,0 +1 @@
1
+ # @radix-ng/primitives/accordion
@@ -0,0 +1,5 @@
1
+ export * from './src/accordion-root.directive';
2
+ export * from './src/accordion-item.directive';
3
+ export * from './src/accordion-header.directive';
4
+ export * from './src/accordion-trigger.directive';
5
+ export * from './src/accordion-content.directive';
@@ -0,0 +1,64 @@
1
+ import { CdkAccordionItem } from '@angular/cdk/accordion';
2
+ import { InjectionToken, OnInit } from '@angular/core';
3
+ import { RdxAccordionItemState } from './accordion-item.directive';
4
+ import { RdxAccordionOrientation } from './accordion-root.directive';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/cdk/accordion";
7
+ export declare const RdxAccordionContentToken: InjectionToken<RdxAccordionContentDirective>;
8
+ export declare class RdxAccordionContentDirective implements OnInit {
9
+ /**
10
+ * @ignore
11
+ */
12
+ private readonly elementRef;
13
+ /**
14
+ * @ignore
15
+ */
16
+ private initialized;
17
+ /**
18
+ * Current item state
19
+ */
20
+ state: import("@angular/core").WritableSignal<RdxAccordionItemState>;
21
+ /**
22
+ * When true, prevents the user from interacting with the accordion and all its items.
23
+ */
24
+ disabled: import("@angular/core").InputSignal<boolean>;
25
+ /**
26
+ * @ignore
27
+ */
28
+ accordionItem: CdkAccordionItem;
29
+ /**
30
+ * @ignore
31
+ */
32
+ orientation: RdxAccordionOrientation;
33
+ constructor();
34
+ /**
35
+ * @ignore
36
+ */
37
+ ngOnInit(): void;
38
+ /**
39
+ * @ignore
40
+ */
41
+ setOpen(state?: RdxAccordionItemState | undefined): void;
42
+ /**
43
+ * @ignore
44
+ */
45
+ private initialize;
46
+ /**
47
+ * @ignore
48
+ */
49
+ private setPresence;
50
+ /**
51
+ * @ignore
52
+ */
53
+ private togglePresence;
54
+ /**
55
+ * @ignore
56
+ */
57
+ private show;
58
+ /**
59
+ * @ignore
60
+ */
61
+ private hide;
62
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxAccordionContentDirective, never>;
63
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAccordionContentDirective, "[AccordionContent]", ["AccordionContent"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.CdkAccordionItem; inputs: {}; outputs: {}; }]>;
64
+ }
@@ -0,0 +1,23 @@
1
+ import { RdxAccordionItemState } from './accordion-item.directive';
2
+ import { RdxAccordionOrientation } from './accordion-root.directive';
3
+ import * as i0 from "@angular/core";
4
+ export declare class RdxAccordionHeaderDirective {
5
+ /**
6
+ * @ignore
7
+ */
8
+ private readonly accordionItem;
9
+ /**
10
+ * @ignore
11
+ */
12
+ getState(): RdxAccordionItemState;
13
+ /**
14
+ * @ignore
15
+ */
16
+ getDisabled(): string | undefined;
17
+ /**
18
+ * @ignore
19
+ */
20
+ getOrientation(): RdxAccordionOrientation;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxAccordionHeaderDirective, never>;
22
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAccordionHeaderDirective, "[AccordionHeader]", never, {}, {}, never, never, true, never>;
23
+ }
@@ -0,0 +1,36 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { RdxAccordionOrientation } from './accordion-root.directive';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/cdk/accordion";
5
+ export type RdxAccordionItemState = 'open' | 'closed';
6
+ export declare const RdxAccordionItemToken: InjectionToken<RdxAccordionItemDirective>;
7
+ export declare function injectAccordionItem(): RdxAccordionItemDirective;
8
+ export declare class RdxAccordionItemDirective {
9
+ /**
10
+ * @ignore
11
+ */
12
+ private accordionContent;
13
+ /**
14
+ * Current item state
15
+ */
16
+ state: import("@angular/core").WritableSignal<RdxAccordionItemState>;
17
+ /**
18
+ * When true, prevents the user from interacting with the item.
19
+ */
20
+ disabled: import("@angular/core").InputSignal<boolean>;
21
+ /**
22
+ * @ignore
23
+ */
24
+ orientation: RdxAccordionOrientation;
25
+ value?: string;
26
+ /**
27
+ * Changes current item state
28
+ */
29
+ setOpen(state?: RdxAccordionItemState): void;
30
+ /**
31
+ * @ignore
32
+ */
33
+ setOrientation(orientation: RdxAccordionOrientation): void;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxAccordionItemDirective, never>;
35
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAccordionItemDirective, "[AccordionItem]", ["AccordionItem"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; }; }, {}, ["accordionContent"], never, true, [{ directive: typeof i1.CdkAccordion; inputs: {}; outputs: {}; }]>;
36
+ }
@@ -0,0 +1,57 @@
1
+ import { InjectionToken, OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export type RdxAccordionType = 'single' | 'multiple';
4
+ export type RdxAccordionOrientation = 'horizontal' | 'vertical';
5
+ export declare const RdxAccordionRootToken: InjectionToken<RdxAccordionRootDirective>;
6
+ export declare function injectAccordionRoot(): RdxAccordionRootDirective;
7
+ export declare class RdxAccordionRootDirective implements OnInit {
8
+ /**
9
+ * @private
10
+ * @ignore
11
+ */
12
+ private readonly accordionItems;
13
+ /**
14
+ * @private
15
+ * @ignore
16
+ */
17
+ private _orientation;
18
+ /**
19
+ * @private
20
+ * @ignore
21
+ */
22
+ private _value;
23
+ /**
24
+ * The value of the item to expand when initially rendered and type is "single". Use when you do not need to control the state of the items.
25
+ */
26
+ defaultValue?: string[];
27
+ /**
28
+ * Determines whether one or multiple items can be opened at the same time.
29
+ */
30
+ type: RdxAccordionType;
31
+ /**
32
+ * @ignore
33
+ */
34
+ collapsible: boolean;
35
+ /**
36
+ * The controlled value of the item to expand
37
+ */
38
+ set value(value: string | string[] | undefined);
39
+ /**
40
+ * The orientation of the accordion.
41
+ */
42
+ set orientation(orientation: RdxAccordionOrientation | undefined);
43
+ /**
44
+ * @ignore
45
+ */
46
+ ngOnInit(): void;
47
+ /**
48
+ * @ignore
49
+ */
50
+ onValueChange(value: string[]): void;
51
+ /**
52
+ * @ignore
53
+ */
54
+ getOrientation(): RdxAccordionOrientation;
55
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxAccordionRootDirective, never>;
56
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAccordionRootDirective, "[AccordionRoot]", never, { "defaultValue": { "alias": "defaultValue"; "required": false; }; "type": { "alias": "type"; "required": false; }; "collapsible": { "alias": "collapsible"; "required": false; }; "value": { "alias": "value"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; }, {}, ["accordionItems"], never, true, never>;
57
+ }
@@ -0,0 +1,31 @@
1
+ import { RdxAccordionItemState } from './accordion-item.directive';
2
+ import { RdxAccordionOrientation } from './accordion-root.directive';
3
+ import * as i0 from "@angular/core";
4
+ export declare class RdxAccordionTriggerDirective {
5
+ /**
6
+ * @ignore
7
+ */
8
+ private readonly accordionRoot;
9
+ /**
10
+ * @ignore
11
+ */
12
+ private readonly accordionItem;
13
+ /**
14
+ * Fires when trigger clicked
15
+ */
16
+ onClick(): void;
17
+ /**
18
+ * @ignore
19
+ */
20
+ getState(): RdxAccordionItemState;
21
+ /**
22
+ * @ignore
23
+ */
24
+ getDisabled(): boolean | undefined;
25
+ /**
26
+ * @ignore
27
+ */
28
+ getOrientation(): RdxAccordionOrientation;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxAccordionTriggerDirective, never>;
30
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAccordionTriggerDirective, "[AccordionTrigger]", never, {}, {}, never, never, true, never>;
31
+ }
@@ -1,8 +1,9 @@
1
1
  import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/cdk/a11y";
2
3
  export declare class AlertDialogContentDirective {
3
4
  private readonly renderer;
4
5
  private readonly elementRef;
5
6
  set maxWidth(value: string);
6
7
  static ɵfac: i0.ɵɵFactoryDeclaration<AlertDialogContentDirective, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<AlertDialogContentDirective, "[rdxAlertDialogContent]", never, { "maxWidth": { "alias": "maxWidth"; "required": false; }; }, {}, never, never, true, never>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AlertDialogContentDirective, "[rdxAlertDialogContent]", never, { "maxWidth": { "alias": "maxWidth"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.CdkTrapFocus; inputs: {}; outputs: {}; }]>;
8
9
  }
@@ -0,0 +1 @@
1
+ # @radix-ng/primitives/dropdown-menu
@@ -0,0 +1,5 @@
1
+ export * from './src/dropdown-menu-trigger.directive';
2
+ export * from './src/dropdown-menu-item.directive';
3
+ export * from './src/dropdown-menu-separator.directive';
4
+ export * from './src/dropdown-menu-content.directive';
5
+ export * from './src/dropdown-menu-label.directive';
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@radix-ng/primitives/menu";
3
+ export declare class RdxDropdownMenuContentDirective {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxDropdownMenuContentDirective, never>;
5
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuContentDirective, "[DropdownMenuContent]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxMenuContentDirective; inputs: {}; outputs: {}; }]>;
6
+ }
@@ -0,0 +1,8 @@
1
+ import { BooleanInput } from '@angular/cdk/coercion';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@radix-ng/primitives/menu";
4
+ export declare class RdxDropdownMenuItemDirective {
5
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxDropdownMenuItemDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuItemDirective, "[DropdownMenuItem]", never, { "disabled": { "alias": "rdxDisabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.RdxMenuItemDirective; inputs: { "rdxDisabled": "disabled"; }; outputs: {}; }]>;
8
+ }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class RdxDropdownMenuLabelDirective {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxDropdownMenuLabelDirective, never>;
4
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuLabelDirective, "div[DropdownMenuLabel]", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@radix-ng/primitives/menu";
3
+ export declare class RdxDropdownMenuSeparatorDirective {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxDropdownMenuSeparatorDirective, never>;
5
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuSeparatorDirective, "[DropdownMenuSeparator]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxMenuSeparatorDirective; inputs: {}; outputs: {}; }]>;
6
+ }
@@ -0,0 +1,11 @@
1
+ import { BooleanInput } from '@angular/cdk/coercion';
2
+ import { CdkMenuTrigger } from '@angular/cdk/menu';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/cdk/menu";
5
+ export declare class RdxDropdownMenuTriggerDirective {
6
+ protected readonly cdkTrigger: CdkMenuTrigger;
7
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
8
+ onPointerDown($event: MouseEvent): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxDropdownMenuTriggerDirective, never>;
10
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxDropdownMenuTriggerDirective, "[DropdownMenuTrigger]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.CdkMenuTrigger; inputs: { "cdkMenuTriggerFor": "DropdownMenuTrigger"; }; outputs: {}; }]>;
11
+ }
@@ -0,0 +1,6 @@
1
+ export * from './src/accordion-root.directive';
2
+ export * from './src/accordion-item.directive';
3
+ export * from './src/accordion-header.directive';
4
+ export * from './src/accordion-trigger.directive';
5
+ export * from './src/accordion-content.directive';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2FjY29yZGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy9hY2NvcmRpb24tcm9vdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYWNjb3JkaW9uLWl0ZW0uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FjY29yZGlvbi1oZWFkZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2FjY29yZGlvbi10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hY2NvcmRpb24tY29udGVudC5kaXJlY3RpdmUnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy1hY2NvcmRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2FjY29yZGlvbi9yYWRpeC1uZy1wcmltaXRpdmVzLWFjY29yZGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,139 @@
1
+ import { CdkAccordionItem } from '@angular/cdk/accordion';
2
+ import { Directive, effect, ElementRef, inject, InjectionToken, input, signal } from '@angular/core';
3
+ import { animationFrameScheduler } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/cdk/accordion";
6
+ export const RdxAccordionContentToken = new InjectionToken('RdxAccordionContentToken');
7
+ export class RdxAccordionContentDirective {
8
+ constructor() {
9
+ /**
10
+ * @ignore
11
+ */
12
+ this.elementRef = inject(ElementRef);
13
+ /**
14
+ * @ignore
15
+ */
16
+ this.initialized = signal(false);
17
+ /**
18
+ * Current item state
19
+ */
20
+ this.state = signal('closed');
21
+ /**
22
+ * When true, prevents the user from interacting with the accordion and all its items.
23
+ */
24
+ this.disabled = input(false);
25
+ /**
26
+ * @ignore
27
+ */
28
+ this.accordionItem = inject(CdkAccordionItem);
29
+ /**
30
+ * @ignore
31
+ */
32
+ this.orientation = 'vertical';
33
+ effect(() => {
34
+ if (this.state()) {
35
+ this.setPresence();
36
+ }
37
+ });
38
+ }
39
+ /**
40
+ * @ignore
41
+ */
42
+ ngOnInit() {
43
+ this.togglePresence();
44
+ }
45
+ /**
46
+ * @ignore
47
+ */
48
+ setOpen(state) {
49
+ if (this.disabled()) {
50
+ return;
51
+ }
52
+ if (state === undefined) {
53
+ this.state.update(() => (this.state() === 'open' ? 'closed' : 'open'));
54
+ }
55
+ else {
56
+ this.state.update(() => state);
57
+ }
58
+ }
59
+ /**
60
+ * @ignore
61
+ */
62
+ initialize() {
63
+ if (!this.initialized()) {
64
+ this.togglePresence();
65
+ animationFrameScheduler.schedule(() => {
66
+ this.elementRef.nativeElement
67
+ .getAnimations()
68
+ .forEach((animation) => animation.cancel());
69
+ this.initialized.set(true);
70
+ });
71
+ }
72
+ }
73
+ /**
74
+ * @ignore
75
+ */
76
+ setPresence() {
77
+ if (!this.initialized()) {
78
+ this.initialize();
79
+ return;
80
+ }
81
+ animationFrameScheduler.schedule(() => {
82
+ const animations = this.elementRef.nativeElement.getAnimations();
83
+ const hidden = this.elementRef.nativeElement.hasAttribute('hidden');
84
+ if (hidden) {
85
+ this.show();
86
+ const rect = this.elementRef.nativeElement.getBoundingClientRect();
87
+ const height = `${this.elementRef.nativeElement.scrollHeight /*rect.height*/}px`;
88
+ const width = `${rect.width}px`;
89
+ this.elementRef.nativeElement.style.setProperty('--radix-accordion-content-height', height);
90
+ this.elementRef.nativeElement.style.setProperty('--radix-accordion-content-width', width);
91
+ this.hide();
92
+ }
93
+ Promise.all(animations.map((animation) => animation.finished)).then(() => {
94
+ this.togglePresence();
95
+ });
96
+ });
97
+ }
98
+ /**
99
+ * @ignore
100
+ */
101
+ togglePresence() {
102
+ if (this.state() === 'open') {
103
+ this.show();
104
+ }
105
+ else {
106
+ this.hide();
107
+ }
108
+ }
109
+ /**
110
+ * @ignore
111
+ */
112
+ show() {
113
+ this.elementRef.nativeElement.removeAttribute('hidden');
114
+ }
115
+ /**
116
+ * @ignore
117
+ */
118
+ hide() {
119
+ this.elementRef.nativeElement.setAttribute('hidden', '');
120
+ }
121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxAccordionContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
122
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.4", type: RdxAccordionContentDirective, isStandalone: true, selector: "[AccordionContent]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-state": "state()", "attr.data-disabled": "disabled() ? \"\" : undefined", "attr.data-orientation": "orientation" } }, providers: [{ provide: RdxAccordionContentToken, useExisting: RdxAccordionContentDirective }], exportAs: ["AccordionContent"], hostDirectives: [{ directive: i1.CdkAccordionItem }], ngImport: i0 }); }
123
+ }
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxAccordionContentDirective, decorators: [{
125
+ type: Directive,
126
+ args: [{
127
+ selector: '[AccordionContent]',
128
+ standalone: true,
129
+ exportAs: 'AccordionContent',
130
+ providers: [{ provide: RdxAccordionContentToken, useExisting: RdxAccordionContentDirective }],
131
+ host: {
132
+ '[attr.data-state]': 'state()',
133
+ '[attr.data-disabled]': 'disabled() ? "" : undefined',
134
+ '[attr.data-orientation]': 'orientation'
135
+ },
136
+ hostDirectives: [CdkAccordionItem]
137
+ }]
138
+ }], ctorParameters: () => [] });
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWNvbnRlbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9hY2NvcmRpb24vc3JjL2FjY29yZGlvbi1jb250ZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQ0gsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBRUwsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBSy9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUN0RCwwQkFBMEIsQ0FDN0IsQ0FBQztBQWNGLE1BQU0sT0FBTyw0QkFBNEI7SUEwQnJDO1FBekJBOztXQUVHO1FBQ2MsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDMUU7O1dBRUc7UUFDSyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQzs7V0FFRztRQUNILFVBQUssR0FBRyxNQUFNLENBQXdCLFFBQVEsQ0FBQyxDQUFDO1FBQ2hEOztXQUVHO1FBQ0gsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4Qjs7V0FFRztRQUNILGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekM7O1dBRUc7UUFDSCxnQkFBVyxHQUE0QixVQUFVLENBQUM7UUFHOUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZCLENBQUM7UUFDTCxDQUFDLENBQUMs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LElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoQixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoQixDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssSUFBSTtRQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxJQUFJO1FBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDOzhHQXpJUSw0QkFBNEI7a0dBQTVCLDRCQUE0QixxV0FSMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQzs7MkZBUXBGLDRCQUE0QjtrQkFaeEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyw4QkFBOEIsRUFBRSxDQUFDO29CQUM3RixJQUFJLEVBQUU7d0JBQ0YsbUJBQW1CLEVBQUUsU0FBUzt3QkFDOUIsc0JBQXNCLEVBQUUsNkJBQTZCO3dCQUNyRCx5QkFBeUIsRUFBRSxhQUFhO3FCQUMzQztvQkFDRCxjQUFjLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtBY2NvcmRpb25JdGVtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2FjY29yZGlvbic7XG5pbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBlZmZlY3QsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgaW5wdXQsXG4gICAgT25Jbml0LFxuICAgIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFJkeEFjY29yZGlvbkl0ZW1TdGF0ZSB9IGZyb20gJy4vYWNjb3JkaW9uLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeEFjY29yZGlvbk9yaWVudGF0aW9uIH0gZnJvbSAnLi9hY2NvcmRpb24tcm9vdC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgUmR4QWNjb3JkaW9uQ29udGVudFRva2VuID0gbmV3IEluamVjdGlvblRva2VuPFJkeEFjY29yZGlvbkNvbnRlbnREaXJlY3RpdmU+KFxuICAgICdSZHhBY2NvcmRpb25Db250ZW50VG9rZW4nXG4pO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tBY2NvcmRpb25Db250ZW50XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBleHBvcnRBczogJ0FjY29yZGlvbkNvbnRlbnQnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogUmR4QWNjb3JkaW9uQ29udGVudFRva2VuLCB1c2VFeGlzdGluZzogUmR4QWNjb3JkaW9uQ29udGVudERpcmVjdGl2ZSB9XSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXRlXSc6ICdzdGF0ZSgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCkgPyBcIlwiIDogdW5kZWZpbmVkJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtb3JpZW50YXRpb25dJzogJ29yaWVudGF0aW9uJ1xuICAgIH0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtDZGtBY2NvcmRpb25JdGVtXVxufSlcbmV4cG9ydCBjbGFzcyBSZHhBY2NvcmRpb25Db250ZW50RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IHNpZ25hbChmYWxzZSk7XG4gICAgLyoqXG4gICAgICogQ3VycmVudCBpdGVtIHN0YXRlXG4gICAgICovXG4gICAgc3RhdGUgPSBzaWduYWw8UmR4QWNjb3JkaW9uSXRlbVN0YXRlPignY2xvc2VkJyk7XG4gICAgLyoqXG4gICAgICogV2hlbiB0cnVlLCBwcmV2ZW50cyB0aGUgdXNlciBmcm9tIGludGVyYWN0aW5nIHdpdGggdGhlIGFjY29yZGlvbiBhbmQgYWxsIGl0cyBpdGVtcy5cbiAgICAgKi9cbiAgICBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgYWNjb3JkaW9uSXRlbSA9IGluamVjdChDZGtBY2NvcmRpb25JdGVtKTtcbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgb3JpZW50YXRpb246IFJkeEFjY29yZGlvbk9yaWVudGF0aW9uID0gJ3ZlcnRpY2FsJztcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJlc2VuY2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRvZ2dsZVByZXNlbmNlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIHNldE9wZW4oc3RhdGU/OiBSZHhBY2NvcmRpb25JdGVtU3RhdGUgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUudXBkYXRlKCgpID0+ICh0aGlzLnN0YXRlKCkgPT09ICdvcGVuJyA/ICdjbG9zZWQnIDogJ29wZW4nKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnVwZGF0ZSgoKSA9PiBzdGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQoKSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVQcmVzZW5jZSgpO1xuXG4gICAgICAgICAgICBhbmltYXRpb25GcmFtZVNjaGVkdWxlci5zY2hlZHVsZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgLmdldEFuaW1hdGlvbnMoKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoYW5pbWF0aW9uKSA9PiBhbmltYXRpb24uY2FuY2VsKCkpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZC5zZXQodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFByZXNlbmNlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLnNjaGVkdWxlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFuaW1hdGlvbnMgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRBbmltYXRpb25zKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhpZGRlbiA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnaGlkZGVuJyk7XG5cbiAgICAgICAgICAgIGlmIChoaWRkZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3coKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBgJHt0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgLypyZWN0LmhlaWdodCovfXB4YDtcbiAgICAgICAgICAgICAgICBjb25zdCB3aWR0aCA9IGAke3JlY3Qud2lkdGh9cHhgO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgICctLXJhZGl4LWFjY29yZGlvbi1jb250ZW50LWhlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodFxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAgICAgICAgICAgJy0tcmFkaXgtYWNjb3JkaW9uLWNvbnRlbnQtd2lkdGgnLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aFxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgUHJvbWlzZS5hbGwoYW5pbWF0aW9ucy5tYXAoKGFuaW1hdGlvbikgPT4gYW5pbWF0aW9uLmZpbmlzaGVkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2dnbGVQcmVzZW5jZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBwcml2YXRlIHRvZ2dsZVByZXNlbmNlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZSgpID09PSAnb3BlbicpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvdygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcHJpdmF0ZSBzaG93KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2hpZGRlbicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBwcml2YXRlIGhpZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnaGlkZGVuJywgJycpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,44 @@
1
+ import { Directive } from '@angular/core';
2
+ import { injectAccordionItem } from './accordion-item.directive';
3
+ import * as i0 from "@angular/core";
4
+ export class RdxAccordionHeaderDirective {
5
+ constructor() {
6
+ /**
7
+ * @ignore
8
+ */
9
+ this.accordionItem = injectAccordionItem();
10
+ }
11
+ /**
12
+ * @ignore
13
+ */
14
+ getState() {
15
+ return this.accordionItem.state();
16
+ }
17
+ /**
18
+ * @ignore
19
+ */
20
+ getDisabled() {
21
+ return this.accordionItem.disabled() ? '' : undefined;
22
+ }
23
+ /**
24
+ * @ignore
25
+ */
26
+ getOrientation() {
27
+ return this.accordionItem.orientation;
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxAccordionHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
30
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: RdxAccordionHeaderDirective, isStandalone: true, selector: "[AccordionHeader]", host: { properties: { "attr.data-state": "getState()", "attr.data-disabled": "getDisabled()", "attr.data-orientation": "getOrientation()" } }, ngImport: i0 }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxAccordionHeaderDirective, decorators: [{
33
+ type: Directive,
34
+ args: [{
35
+ selector: '[AccordionHeader]',
36
+ standalone: true,
37
+ host: {
38
+ '[attr.data-state]': 'getState()',
39
+ '[attr.data-disabled]': 'getDisabled()',
40
+ '[attr.data-orientation]': 'getOrientation()'
41
+ }
42
+ }]
43
+ }] });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWhlYWRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2FjY29yZGlvbi9zcmMvYWNjb3JkaW9uLWhlYWRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQXlCLE1BQU0sNEJBQTRCLENBQUM7O0FBWXhGLE1BQU0sT0FBTywyQkFBMkI7SUFUeEM7UUFVSTs7V0FFRztRQUNjLGtCQUFhLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztLQXNCMUQ7SUFwQkc7O09BRUc7SUFDSCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzFELENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDVixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQzFDLENBQUM7OEdBekJRLDJCQUEyQjtrR0FBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQVR2QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsbUJBQW1CLEVBQUUsWUFBWTt3QkFDakMsc0JBQXNCLEVBQUUsZUFBZTt3QkFDdkMseUJBQXlCLEVBQUUsa0JBQWtCO3FCQUNoRDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBpbmplY3RBY2NvcmRpb25JdGVtLCBSZHhBY2NvcmRpb25JdGVtU3RhdGUgfSBmcm9tICcuL2FjY29yZGlvbi1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHhBY2NvcmRpb25PcmllbnRhdGlvbiB9IGZyb20gJy4vYWNjb3JkaW9uLXJvb3QuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbQWNjb3JkaW9uSGVhZGVyXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXRlXSc6ICdnZXRTdGF0ZSgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2dldERpc2FibGVkKCknLFxuICAgICAgICAnW2F0dHIuZGF0YS1vcmllbnRhdGlvbl0nOiAnZ2V0T3JpZW50YXRpb24oKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeEFjY29yZGlvbkhlYWRlckRpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWNjb3JkaW9uSXRlbSA9IGluamVjdEFjY29yZGlvbkl0ZW0oKTtcblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBnZXRTdGF0ZSgpOiBSZHhBY2NvcmRpb25JdGVtU3RhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2NvcmRpb25JdGVtLnN0YXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIGdldERpc2FibGVkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjY29yZGlvbkl0ZW0uZGlzYWJsZWQoKSA/ICcnIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBnZXRPcmllbnRhdGlvbigpOiBSZHhBY2NvcmRpb25PcmllbnRhdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjY29yZGlvbkl0ZW0ub3JpZW50YXRpb247XG4gICAgfVxufVxuIl19
@@ -0,0 +1,75 @@
1
+ import { CdkAccordion } from '@angular/cdk/accordion';
2
+ import { contentChild, Directive, inject, InjectionToken, Input, input, signal } from '@angular/core';
3
+ import { RdxAccordionContentToken } from './accordion-content.directive';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/cdk/accordion";
6
+ export const RdxAccordionItemToken = new InjectionToken('RdxAccordionItemToken');
7
+ export function injectAccordionItem() {
8
+ return inject(RdxAccordionItemDirective);
9
+ }
10
+ export class RdxAccordionItemDirective {
11
+ constructor() {
12
+ /**
13
+ * @ignore
14
+ */
15
+ this.accordionContent = contentChild.required(RdxAccordionContentToken);
16
+ /**
17
+ * Current item state
18
+ */
19
+ this.state = signal('closed');
20
+ /**
21
+ * When true, prevents the user from interacting with the item.
22
+ */
23
+ this.disabled = input(false);
24
+ /**
25
+ * @ignore
26
+ */
27
+ this.orientation = 'vertical';
28
+ }
29
+ /**
30
+ * Changes current item state
31
+ */
32
+ setOpen(state) {
33
+ if (this.disabled()) {
34
+ return;
35
+ }
36
+ if (state === undefined) {
37
+ this.state.update(() => (this.state() === 'open' ? 'closed' : 'open'));
38
+ }
39
+ else {
40
+ this.state.update(() => state);
41
+ }
42
+ this.accordionContent().setOpen(this.state());
43
+ }
44
+ /**
45
+ * @ignore
46
+ */
47
+ setOrientation(orientation) {
48
+ this.orientation = orientation;
49
+ this.accordionContent().orientation = orientation;
50
+ }
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxAccordionItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
52
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.0.4", type: RdxAccordionItemDirective, isStandalone: true, selector: "[AccordionItem]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-state": "state()", "attr.data-disabled": "disabled() ? \"\" : undefined", "attr.data-orientation": "orientation" } }, providers: [
53
+ { provide: RdxAccordionItemToken, useExisting: RdxAccordionItemDirective, multi: true }
54
+ ], queries: [{ propertyName: "accordionContent", first: true, predicate: RdxAccordionContentToken, descendants: true, isSignal: true }], exportAs: ["AccordionItem"], hostDirectives: [{ directive: i1.CdkAccordion }], ngImport: i0 }); }
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxAccordionItemDirective, decorators: [{
57
+ type: Directive,
58
+ args: [{
59
+ selector: '[AccordionItem]',
60
+ standalone: true,
61
+ exportAs: 'AccordionItem',
62
+ providers: [
63
+ { provide: RdxAccordionItemToken, useExisting: RdxAccordionItemDirective, multi: true }
64
+ ],
65
+ host: {
66
+ '[attr.data-state]': 'state()',
67
+ '[attr.data-disabled]': 'disabled() ? "" : undefined',
68
+ '[attr.data-orientation]': 'orientation'
69
+ },
70
+ hostDirectives: [CdkAccordion]
71
+ }]
72
+ }], propDecorators: { value: [{
73
+ type: Input
74
+ }] } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9hY2NvcmRpb24vc3JjL2FjY29yZGlvbi1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUNILFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBS3pFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUNuRCx1QkFBdUIsQ0FDMUIsQ0FBQztBQUVGLE1BQU0sVUFBVSxtQkFBbUI7SUFDL0IsT0FBTyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBZ0JELE1BQU0sT0FBTyx5QkFBeUI7SUFkdEM7UUFlSTs7V0FFRztRQUNLLHFCQUFnQixHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUMzRTs7V0FFRztRQUNILFVBQUssR0FBRyxNQUFNLENBQXdCLFFBQVEsQ0FBQyxDQUFDO1FBQ2hEOztXQUVHO1FBQ0gsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4Qjs7V0FFRztRQUNILGdCQUFXLEdBQTRCLFVBQVUsQ0FBQztLQTZCckQ7SUF6Qkc7O09BRUc7SUFDSCxPQUFPLENBQUMsS0FBNkI7UUFDakMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsV0FBb0M7UUFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFFL0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUN0RCxDQUFDOzhHQTVDUSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwyZEFWdkI7WUFDUCxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtTQUMxRix3RUFZZ0Qsd0JBQXdCOzsyRkFKaEUseUJBQXlCO2tCQWRyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsZUFBZTtvQkFDekIsU0FBUyxFQUFFO3dCQUNQLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsMkJBQTJCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtxQkFDMUY7b0JBQ0QsSUFBSSxFQUFFO3dCQUNGLG1CQUFtQixFQUFFLFNBQVM7d0JBQzlCLHNCQUFzQixFQUFFLDZCQUE2Qjt3QkFDckQseUJBQXlCLEVBQUUsYUFBYTtxQkFDM0M7b0JBQ0QsY0FBYyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUNqQzs4QkFtQlksS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrQWNjb3JkaW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2FjY29yZGlvbic7XG5pbXBvcnQge1xuICAgIGNvbnRlbnRDaGlsZCxcbiAgICBEaXJlY3RpdmUsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIGlucHV0LFxuICAgIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmR4QWNjb3JkaW9uQ29udGVudFRva2VuIH0gZnJvbSAnLi9hY2NvcmRpb24tY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR4QWNjb3JkaW9uT3JpZW50YXRpb24gfSBmcm9tICcuL2FjY29yZGlvbi1yb290LmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCB0eXBlIFJkeEFjY29yZGlvbkl0ZW1TdGF0ZSA9ICdvcGVuJyB8ICdjbG9zZWQnO1xuXG5leHBvcnQgY29uc3QgUmR4QWNjb3JkaW9uSXRlbVRva2VuID0gbmV3IEluamVjdGlvblRva2VuPFJkeEFjY29yZGlvbkl0ZW1EaXJlY3RpdmU+KFxuICAgICdSZHhBY2NvcmRpb25JdGVtVG9rZW4nXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0QWNjb3JkaW9uSXRlbSgpOiBSZHhBY2NvcmRpb25JdGVtRGlyZWN0aXZlIHtcbiAgICByZXR1cm4gaW5qZWN0KFJkeEFjY29yZGlvbkl0ZW1EaXJlY3RpdmUpO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tBY2NvcmRpb25JdGVtXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBleHBvcnRBczogJ0FjY29yZGlvbkl0ZW0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IFJkeEFjY29yZGlvbkl0ZW1Ub2tlbiwgdXNlRXhpc3Rpbmc6IFJkeEFjY29yZGlvbkl0ZW1EaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc3RhdGVdJzogJ3N0YXRlKCknLFxuICAgICAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQoKSA/IFwiXCIgOiB1bmRlZmluZWQnLFxuICAgICAgICAnW2F0dHIuZGF0YS1vcmllbnRhdGlvbl0nOiAnb3JpZW50YXRpb24nXG4gICAgfSxcbiAgICBob3N0RGlyZWN0aXZlczogW0Nka0FjY29yZGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgUmR4QWNjb3JkaW9uSXRlbURpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIHByaXZhdGUgYWNjb3JkaW9uQ29udGVudCA9IGNvbnRlbnRDaGlsZC5yZXF1aXJlZChSZHhBY2NvcmRpb25Db250ZW50VG9rZW4pO1xuICAgIC8qKlxuICAgICAqIEN1cnJlbnQgaXRlbSBzdGF0ZVxuICAgICAqL1xuICAgIHN0YXRlID0gc2lnbmFsPFJkeEFjY29yZGlvbkl0ZW1TdGF0ZT4oJ2Nsb3NlZCcpO1xuICAgIC8qKlxuICAgICAqIFdoZW4gdHJ1ZSwgcHJldmVudHMgdGhlIHVzZXIgZnJvbSBpbnRlcmFjdGluZyB3aXRoIHRoZSBpdGVtLlxuICAgICAqL1xuICAgIGRpc2FibGVkID0gaW5wdXQoZmFsc2UpO1xuICAgIC8qKlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBvcmllbnRhdGlvbjogUmR4QWNjb3JkaW9uT3JpZW50YXRpb24gPSAndmVydGljYWwnO1xuXG4gICAgQElucHV0KCkgdmFsdWU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2VzIGN1cnJlbnQgaXRlbSBzdGF0ZVxuICAgICAqL1xuICAgIHNldE9wZW4oc3RhdGU/OiBSZHhBY2NvcmRpb25JdGVtU3RhdGUpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUudXBkYXRlKCgpID0+ICh0aGlzLnN0YXRlKCkgPT09ICdvcGVuJyA/ICdjbG9zZWQnIDogJ29wZW4nKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnVwZGF0ZSgoKSA9PiBzdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjY29yZGlvbkNvbnRlbnQoKS5zZXRPcGVuKHRoaXMuc3RhdGUoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIHNldE9yaWVudGF0aW9uKG9yaWVudGF0aW9uOiBSZHhBY2NvcmRpb25PcmllbnRhdGlvbikge1xuICAgICAgICB0aGlzLm9yaWVudGF0aW9uID0gb3JpZW50YXRpb247XG5cbiAgICAgICAgdGhpcy5hY2NvcmRpb25Db250ZW50KCkub3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjtcbiAgICB9XG59XG4iXX0=