@radix-ng/primitives 0.7.2 → 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.
- package/accordion/README.md +1 -0
- package/accordion/index.d.ts +5 -0
- package/accordion/src/accordion-content.directive.d.ts +64 -0
- package/accordion/src/accordion-header.directive.d.ts +23 -0
- package/accordion/src/accordion-item.directive.d.ts +36 -0
- package/accordion/src/accordion-root.directive.d.ts +57 -0
- package/accordion/src/accordion-trigger.directive.d.ts +31 -0
- package/dropdown-menu/README.md +1 -0
- package/dropdown-menu/index.d.ts +5 -0
- package/dropdown-menu/src/dropdown-menu-content.directive.d.ts +6 -0
- package/dropdown-menu/src/dropdown-menu-item.directive.d.ts +8 -0
- package/dropdown-menu/src/dropdown-menu-label.directive.d.ts +5 -0
- package/dropdown-menu/src/dropdown-menu-separator.directive.d.ts +6 -0
- package/dropdown-menu/src/dropdown-menu-trigger.directive.d.ts +11 -0
- package/esm2022/accordion/index.mjs +6 -0
- package/esm2022/accordion/radix-ng-primitives-accordion.mjs +5 -0
- package/esm2022/accordion/src/accordion-content.directive.mjs +139 -0
- package/esm2022/accordion/src/accordion-header.directive.mjs +44 -0
- package/esm2022/accordion/src/accordion-item.directive.mjs +75 -0
- package/esm2022/accordion/src/accordion-root.directive.mjs +120 -0
- package/esm2022/accordion/src/accordion-trigger.directive.mjs +61 -0
- package/esm2022/dropdown-menu/index.mjs +6 -0
- package/esm2022/dropdown-menu/radix-ng-primitives-dropdown-menu.mjs +5 -0
- package/esm2022/dropdown-menu/src/dropdown-menu-content.directive.mjs +17 -0
- package/esm2022/dropdown-menu/src/dropdown-menu-item.directive.mjs +23 -0
- package/esm2022/dropdown-menu/src/dropdown-menu-label.directive.mjs +14 -0
- package/esm2022/dropdown-menu/src/dropdown-menu-separator.directive.mjs +21 -0
- package/esm2022/dropdown-menu/src/dropdown-menu-trigger.directive.mjs +46 -0
- package/esm2022/menu/src/menu-item.directive.mjs +10 -4
- package/esm2022/menubar/src/menubar-trigger.directive.mjs +3 -3
- package/esm2022/radio/src/radio-item.directive.mjs +1 -2
- package/esm2022/tabs/index.mjs +38 -0
- package/esm2022/tabs/radix-ng-primitives-tabs.mjs +5 -0
- package/esm2022/tabs/src/tabs-content.directive.mjs +27 -0
- package/esm2022/tabs/src/tabs-context.service.mjs +43 -0
- package/esm2022/tabs/src/tabs-list.directive.mjs +23 -0
- package/esm2022/tabs/src/tabs-root.directive.mjs +54 -0
- package/esm2022/tabs/src/tabs-trigger.directive.mjs +52 -0
- package/fesm2022/radix-ng-primitives-accordion.mjs +431 -0
- package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +116 -0
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-menu.mjs +9 -3
- package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menubar.mjs +2 -2
- package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-radio.mjs +0 -1
- package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tabs.mjs +220 -0
- package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -0
- package/menu/README.md +1 -0
- package/menu/src/menu-item.directive.d.ts +2 -1
- package/package.json +19 -1
- package/tabs/index.d.ts +15 -0
- package/tabs/src/tabs-content.directive.d.ts +8 -0
- package/tabs/src/tabs-context.service.d.ts +22 -0
- package/tabs/src/tabs-list.directive.d.ts +6 -0
- package/tabs/src/tabs-root.directive.d.ts +37 -0
- package/tabs/src/tabs-trigger.directive.d.ts +19 -0
@@ -0,0 +1 @@
|
|
1
|
+
# @radix-ng/primitives/accordion
|
@@ -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
|
+
}
|
@@ -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=
|