@spartan-ng/brain 0.0.1-alpha.445 → 0.0.1-alpha.446
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/collapsible/lib/brn-collapsible-content.component.d.ts +11 -12
- package/collapsible/lib/brn-collapsible-trigger.directive.d.ts +3 -6
- package/collapsible/lib/brn-collapsible.component.d.ts +13 -4
- package/fesm2022/spartan-ng-brain-collapsible.mjs +53 -50
- package/fesm2022/spartan-ng-brain-collapsible.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { BrnCollapsibleComponent } from './brn-collapsible.component';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class BrnCollapsibleContentComponent implements
|
|
4
|
-
|
|
4
|
+
export declare class BrnCollapsibleContentComponent implements OnInit {
|
|
5
|
+
protected readonly collapsible: BrnCollapsibleComponent | null;
|
|
5
6
|
private readonly _elementRef;
|
|
6
|
-
private readonly
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
readonly computedStyles: import("@angular/core").Signal<{
|
|
11
|
-
'--radix-collapsible-content-height': string | undefined;
|
|
12
|
-
'--radix-collapsible-content-width': string | undefined;
|
|
13
|
-
}>;
|
|
7
|
+
private readonly _platformId;
|
|
8
|
+
/**
|
|
9
|
+
* The id of the collapsible content element.
|
|
10
|
+
*/
|
|
14
11
|
readonly id: import("@angular/core").InputSignal<string | null | undefined>;
|
|
12
|
+
protected readonly width: import("@angular/core").WritableSignal<number | null>;
|
|
13
|
+
protected readonly height: import("@angular/core").WritableSignal<number | null>;
|
|
15
14
|
constructor();
|
|
16
|
-
|
|
15
|
+
ngOnInit(): void;
|
|
17
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<BrnCollapsibleContentComponent, never>;
|
|
18
17
|
static ɵcmp: i0.ɵɵComponentDeclaration<BrnCollapsibleContentComponent, "brn-collapsible-content", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
19
18
|
}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
+
import { BrnCollapsibleComponent } from './brn-collapsible.component';
|
|
1
2
|
import * as i0 from "@angular/core";
|
|
2
3
|
export declare class BrnCollapsibleTriggerDirective {
|
|
3
|
-
|
|
4
|
-
readonly state: import("@angular/core").Signal<import("./brn-collapsible.component").BrnCollapsibleState | undefined>;
|
|
5
|
-
readonly disabled: import("@angular/core").Signal<boolean | undefined>;
|
|
6
|
-
readonly attrDisabled: import("@angular/core").Signal<true | undefined>;
|
|
7
|
-
readonly ariaControls: import("@angular/core").Signal<string | undefined>;
|
|
4
|
+
protected readonly collapsible: BrnCollapsibleComponent | null;
|
|
8
5
|
constructor();
|
|
9
|
-
|
|
6
|
+
toggle(): void;
|
|
10
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<BrnCollapsibleTriggerDirective, never>;
|
|
11
8
|
static ɵdir: i0.ɵɵDirectiveDeclaration<BrnCollapsibleTriggerDirective, "button[brnCollapsibleTrigger]", never, {}, {}, never, never, true, never>;
|
|
12
9
|
}
|
|
@@ -1,11 +1,20 @@
|
|
|
1
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
1
2
|
import * as i0 from "@angular/core";
|
|
2
3
|
export type BrnCollapsibleState = 'open' | 'closed';
|
|
3
4
|
export declare class BrnCollapsibleComponent {
|
|
4
|
-
readonly state: import("@angular/core").WritableSignal<BrnCollapsibleState>;
|
|
5
5
|
readonly contentId: import("@angular/core").WritableSignal<string>;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
/**
|
|
7
|
+
* The expanded or collapsed state of the collapsible component.
|
|
8
|
+
*/
|
|
9
|
+
readonly expanded: import("@angular/core").ModelSignal<boolean>;
|
|
10
|
+
/**
|
|
11
|
+
* The disabled state of the collapsible component.
|
|
12
|
+
*/
|
|
13
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, BooleanInput>;
|
|
14
|
+
/**
|
|
15
|
+
* Toggles the expanded state of the collapsible component.
|
|
16
|
+
*/
|
|
8
17
|
toggle(): void;
|
|
9
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<BrnCollapsibleComponent, never>;
|
|
10
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BrnCollapsibleComponent, "brn-collapsible", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BrnCollapsibleComponent, "brn-collapsible", never, { "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, never, ["*"], true, never>;
|
|
11
20
|
}
|
|
@@ -1,19 +1,28 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, input, booleanAttribute,
|
|
2
|
+
import { signal, model, input, booleanAttribute, ChangeDetectionStrategy, Component, inject, ElementRef, PLATFORM_ID, effect, untracked, Directive, NgModule } from '@angular/core';
|
|
3
|
+
import { isPlatformServer } from '@angular/common';
|
|
3
4
|
|
|
4
5
|
let collapsibleContentIdSequence = 0;
|
|
5
6
|
class BrnCollapsibleComponent {
|
|
6
|
-
state = signal('closed');
|
|
7
7
|
contentId = signal(`brn-collapsible-content-${collapsibleContentIdSequence++}`);
|
|
8
|
+
/**
|
|
9
|
+
* The expanded or collapsed state of the collapsible component.
|
|
10
|
+
*/
|
|
11
|
+
expanded = model(false);
|
|
12
|
+
/**
|
|
13
|
+
* The disabled state of the collapsible component.
|
|
14
|
+
*/
|
|
8
15
|
disabled = input(false, { transform: booleanAttribute });
|
|
9
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Toggles the expanded state of the collapsible component.
|
|
18
|
+
*/
|
|
10
19
|
toggle() {
|
|
11
|
-
this.
|
|
20
|
+
this.expanded.update((expanded) => !expanded);
|
|
12
21
|
}
|
|
13
22
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: BrnCollapsibleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
-
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.1", type: BrnCollapsibleComponent, isStandalone: true, selector: "brn-collapsible", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-state": "
|
|
23
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.1", type: BrnCollapsibleComponent, isStandalone: true, selector: "brn-collapsible", inputs: { expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange" }, host: { properties: { "attr.data-state": "expanded() ? \"open\" : \"closed\"", "attr.disabled": "disabled() ? true : undefined" } }, ngImport: i0, template: `
|
|
15
24
|
<ng-content />
|
|
16
|
-
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush
|
|
25
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
17
26
|
}
|
|
18
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: BrnCollapsibleComponent, decorators: [{
|
|
19
28
|
type: Component,
|
|
@@ -21,56 +30,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
|
|
|
21
30
|
selector: 'brn-collapsible',
|
|
22
31
|
standalone: true,
|
|
23
32
|
host: {
|
|
24
|
-
'[attr.data-state]': '
|
|
25
|
-
'[attr.disabled]': '
|
|
33
|
+
'[attr.data-state]': 'expanded() ? "open" : "closed"',
|
|
34
|
+
'[attr.disabled]': 'disabled() ? true : undefined',
|
|
26
35
|
},
|
|
27
36
|
template: `
|
|
28
37
|
<ng-content />
|
|
29
38
|
`,
|
|
30
39
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
31
|
-
encapsulation: ViewEncapsulation.None,
|
|
32
40
|
}]
|
|
33
41
|
}] });
|
|
34
42
|
|
|
35
43
|
class BrnCollapsibleContentComponent {
|
|
36
|
-
|
|
44
|
+
collapsible = inject(BrnCollapsibleComponent, { optional: true });
|
|
37
45
|
_elementRef = inject(ElementRef);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
computedStyles = computed(() => {
|
|
43
|
-
const height = this._height();
|
|
44
|
-
const width = this._width();
|
|
45
|
-
return {
|
|
46
|
-
'--radix-collapsible-content-height': height ? `${height}px` : undefined,
|
|
47
|
-
'--radix-collapsible-content-width': width ? `${width}px` : undefined,
|
|
48
|
-
};
|
|
49
|
-
});
|
|
46
|
+
_platformId = inject(PLATFORM_ID);
|
|
47
|
+
/**
|
|
48
|
+
* The id of the collapsible content element.
|
|
49
|
+
*/
|
|
50
50
|
id = input();
|
|
51
|
+
width = signal(null);
|
|
52
|
+
height = signal(null);
|
|
51
53
|
constructor() {
|
|
52
|
-
if (!this.
|
|
54
|
+
if (!this.collapsible) {
|
|
53
55
|
throw Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');
|
|
54
56
|
}
|
|
55
57
|
effect(() => {
|
|
56
58
|
const id = this.id();
|
|
57
|
-
const collapsible = this.
|
|
59
|
+
const collapsible = this.collapsible;
|
|
58
60
|
if (!id || !collapsible)
|
|
59
61
|
return;
|
|
60
62
|
untracked(() => collapsible.contentId.set(id));
|
|
61
63
|
});
|
|
62
64
|
}
|
|
63
|
-
|
|
64
|
-
if (
|
|
65
|
+
ngOnInit() {
|
|
66
|
+
if (isPlatformServer(this._platformId)) {
|
|
65
67
|
return;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
this.
|
|
70
|
-
this.
|
|
68
|
+
}
|
|
69
|
+
// ensure the element is not hidden when measuring its size
|
|
70
|
+
this._elementRef.nativeElement.hidden = false;
|
|
71
|
+
const { width, height } = this._elementRef.nativeElement.getBoundingClientRect();
|
|
72
|
+
this.width.set(width);
|
|
73
|
+
this.height.set(height);
|
|
74
|
+
// we force the element to be hidden again if collapsed after measuring its size
|
|
75
|
+
// this is handled by the host binding, but it can cause a flicker if we don't do this here manually
|
|
76
|
+
this._elementRef.nativeElement.hidden = this.collapsible?.expanded() ?? false;
|
|
71
77
|
}
|
|
72
78
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: BrnCollapsibleContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
-
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.1", type: BrnCollapsibleContentComponent, isStandalone: true, selector: "brn-collapsible-content", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "hidden": "state()
|
|
79
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.1", type: BrnCollapsibleContentComponent, isStandalone: true, selector: "brn-collapsible-content", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "hidden": "!collapsible?.expanded()", "attr.data-state": "collapsible?.expanded() ? \"open\" : \"closed\"", "id": "collapsible?.contentId()", "style.--brn-collapsible-content-width.px": "width()", "style.--brn-collapsible-content-height.px": "height()" } }, ngImport: i0, template: `
|
|
74
80
|
<ng-content />
|
|
75
81
|
`, isInline: true });
|
|
76
82
|
}
|
|
@@ -80,10 +86,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
|
|
|
80
86
|
selector: 'brn-collapsible-content',
|
|
81
87
|
standalone: true,
|
|
82
88
|
host: {
|
|
83
|
-
'[hidden]': '
|
|
84
|
-
'[attr.data-state]': '
|
|
85
|
-
'[
|
|
86
|
-
'[
|
|
89
|
+
'[hidden]': '!collapsible?.expanded()',
|
|
90
|
+
'[attr.data-state]': 'collapsible?.expanded() ? "open" : "closed"',
|
|
91
|
+
'[id]': 'collapsible?.contentId()',
|
|
92
|
+
'[style.--brn-collapsible-content-width.px]': 'width()',
|
|
93
|
+
'[style.--brn-collapsible-content-height.px]': 'height()',
|
|
87
94
|
},
|
|
88
95
|
template: `
|
|
89
96
|
<ng-content />
|
|
@@ -92,21 +99,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
|
|
|
92
99
|
}], ctorParameters: () => [] });
|
|
93
100
|
|
|
94
101
|
class BrnCollapsibleTriggerDirective {
|
|
95
|
-
|
|
96
|
-
state = computed(() => this._collapsible?.state());
|
|
97
|
-
disabled = computed(() => this._collapsible?.disabled?.());
|
|
98
|
-
attrDisabled = computed(() => this._collapsible?.attrDisabled?.());
|
|
99
|
-
ariaControls = computed(() => this._collapsible?.contentId());
|
|
102
|
+
collapsible = inject(BrnCollapsibleComponent, { optional: true });
|
|
100
103
|
constructor() {
|
|
101
|
-
if (!this.
|
|
104
|
+
if (!this.collapsible) {
|
|
102
105
|
throw Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');
|
|
103
106
|
}
|
|
104
107
|
}
|
|
105
|
-
|
|
106
|
-
this.
|
|
108
|
+
toggle() {
|
|
109
|
+
this.collapsible?.toggle();
|
|
107
110
|
}
|
|
108
111
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: BrnCollapsibleTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
109
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: BrnCollapsibleTriggerDirective, isStandalone: true, selector: "button[brnCollapsibleTrigger]", host: { listeners: { "click": "
|
|
112
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.1", type: BrnCollapsibleTriggerDirective, isStandalone: true, selector: "button[brnCollapsibleTrigger]", host: { listeners: { "click": "toggle()" }, properties: { "attr.data-state": "collapsible?.expanded() ? \"open\" : \"closed\"", "attr.disabled": "collapsible?.disabled() ? true : undefined", "attr.aria-expanded": "collapsible?.expanded()", "attr.aria-controls": "collapsible?.contentId()" } }, ngImport: i0 });
|
|
110
113
|
}
|
|
111
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: BrnCollapsibleTriggerDirective, decorators: [{
|
|
112
115
|
type: Directive,
|
|
@@ -114,11 +117,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
|
|
|
114
117
|
selector: 'button[brnCollapsibleTrigger]',
|
|
115
118
|
standalone: true,
|
|
116
119
|
host: {
|
|
117
|
-
'[attr.data-state]': '
|
|
118
|
-
'[attr.disabled]': '
|
|
119
|
-
'[attr.aria-expanded]': '
|
|
120
|
-
'[attr.aria-controls]': '
|
|
121
|
-
'(click)': '
|
|
120
|
+
'[attr.data-state]': 'collapsible?.expanded() ? "open" : "closed"',
|
|
121
|
+
'[attr.disabled]': 'collapsible?.disabled() ? true : undefined',
|
|
122
|
+
'[attr.aria-expanded]': 'collapsible?.expanded()',
|
|
123
|
+
'[attr.aria-controls]': 'collapsible?.contentId()',
|
|
124
|
+
'(click)': 'toggle()',
|
|
122
125
|
},
|
|
123
126
|
}]
|
|
124
127
|
}], ctorParameters: () => [] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spartan-ng-brain-collapsible.mjs","sources":["../../../../libs/brain/collapsible/src/lib/brn-collapsible.component.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-content.component.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-trigger.directive.ts","../../../../libs/brain/collapsible/src/index.ts","../../../../libs/brain/collapsible/src/spartan-ng-brain-collapsible.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tViewEncapsulation,\n\tbooleanAttribute,\n\tcomputed,\n\tinput,\n\tsignal,\n} from '@angular/core';\n\nlet collapsibleContentIdSequence = 0;\nexport type BrnCollapsibleState = 'open' | 'closed';\n\n@Component({\n\tselector: 'brn-collapsible',\n\tstandalone: true,\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.disabled]': 'attrDisabled()',\n\t},\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class BrnCollapsibleComponent {\n\tpublic readonly state = signal<BrnCollapsibleState>('closed');\n\n\tpublic readonly contentId = signal(`brn-collapsible-content-${collapsibleContentIdSequence++}`);\n\n\tpublic readonly disabled = input(false, { transform: booleanAttribute });\n\n\tpublic readonly attrDisabled = computed(() => (this.disabled() ? true : undefined));\n\n\tpublic toggle() {\n\t\tthis.state.set(this.state() === 'closed' ? 'open' : 'closed');\n\t}\n}\n","import {\n\ttype AfterContentInit,\n\tComponent,\n\tElementRef,\n\tcomputed,\n\teffect,\n\tinject,\n\tinput,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { BrnCollapsibleComponent } from './brn-collapsible.component';\n\n@Component({\n\tselector: 'brn-collapsible-content',\n\tstandalone: true,\n\thost: {\n\t\t'[hidden]': 'state() === \"closed\"',\n\t\t'[attr.data-state]': 'state()',\n\t\t'[style]': 'computedStyles()',\n\t\t'[id]': 'contentId()',\n\t},\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n})\nexport class BrnCollapsibleContentComponent implements AfterContentInit {\n\tprivate readonly _collapsible = inject(BrnCollapsibleComponent, { optional: true });\n\n\tprivate readonly _elementRef = inject(ElementRef);\n\n\tprivate readonly _height = signal(0);\n\n\tprivate readonly _width = signal(0);\n\n\tpublic readonly contentId = computed(() => this._collapsible?.contentId());\n\n\tpublic readonly state = computed(() => this._collapsible?.state?.() ?? 'closed');\n\n\tpublic readonly computedStyles = computed(() => {\n\t\tconst height = this._height();\n\t\tconst width = this._width();\n\t\treturn {\n\t\t\t'--radix-collapsible-content-height': height ? `${height}px` : undefined,\n\t\t\t'--radix-collapsible-content-width': width ? `${width}px` : undefined,\n\t\t};\n\t});\n\n\tpublic readonly id = input<string | null | undefined>();\n\n\tconstructor() {\n\t\tif (!this._collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\n\t\teffect(() => {\n\t\t\tconst id = this.id();\n\t\t\tconst collapsible = this._collapsible;\n\t\t\tif (!id || !collapsible) return;\n\t\t\tuntracked(() => collapsible.contentId.set(id));\n\t\t});\n\t}\n\n\tngAfterContentInit() {\n\t\tif (typeof this._elementRef.nativeElement.getBoundingClientRect !== 'function') return;\n\t\tconst rect = this._elementRef.nativeElement.getBoundingClientRect();\n\t\tif (!rect) return;\n\t\tthis._width.set(rect.width);\n\t\tthis._height.set(rect.height);\n\t}\n}\n","import { Directive, computed, inject } from '@angular/core';\nimport { BrnCollapsibleComponent } from './brn-collapsible.component';\n\n@Directive({\n\tselector: 'button[brnCollapsibleTrigger]',\n\tstandalone: true,\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.disabled]': 'attrDisabled()',\n\t\t'[attr.aria-expanded]': 'state() === \"open\"',\n\t\t'[attr.aria-controls]': 'ariaControls()',\n\t\t'(click)': 'toggleCollapsible()',\n\t},\n})\nexport class BrnCollapsibleTriggerDirective {\n\tprivate readonly _collapsible = inject(BrnCollapsibleComponent, { optional: true });\n\n\tpublic readonly state = computed(() => this._collapsible?.state());\n\n\tpublic readonly disabled = computed(() => this._collapsible?.disabled?.());\n\n\tpublic readonly attrDisabled = computed(() => this._collapsible?.attrDisabled?.());\n\n\tpublic readonly ariaControls = computed(() => this._collapsible?.contentId());\n\n\tconstructor() {\n\t\tif (!this._collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\t}\n\n\ttoggleCollapsible() {\n\t\tthis._collapsible?.toggle();\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnCollapsibleContentComponent } from './lib/brn-collapsible-content.component';\nimport { BrnCollapsibleTriggerDirective } from './lib/brn-collapsible-trigger.directive';\nimport { BrnCollapsibleComponent } from './lib/brn-collapsible.component';\n\nexport * from './lib/brn-collapsible-content.component';\nexport * from './lib/brn-collapsible-trigger.directive';\nexport * from './lib/brn-collapsible.component';\n\nexport const BrnCollapsibleImports = [\n\tBrnCollapsibleComponent,\n\tBrnCollapsibleTriggerDirective,\n\tBrnCollapsibleContentComponent,\n] as const;\n\n@NgModule({\n\timports: [...BrnCollapsibleImports],\n\texports: [...BrnCollapsibleImports],\n})\nexport class BrnCollapsibleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spartan-ng-brain-collapsible.mjs","sources":["../../../../libs/brain/collapsible/src/lib/brn-collapsible.component.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-content.component.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-trigger.directive.ts","../../../../libs/brain/collapsible/src/index.ts","../../../../libs/brain/collapsible/src/spartan-ng-brain-collapsible.ts"],"sourcesContent":["import { BooleanInput } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input, model, signal } from '@angular/core';\n\nlet collapsibleContentIdSequence = 0;\n\nexport type BrnCollapsibleState = 'open' | 'closed';\n\n@Component({\n\tselector: 'brn-collapsible',\n\tstandalone: true,\n\thost: {\n\t\t'[attr.data-state]': 'expanded() ? \"open\" : \"closed\"',\n\t\t'[attr.disabled]': 'disabled() ? true : undefined',\n\t},\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BrnCollapsibleComponent {\n\tpublic readonly contentId = signal(`brn-collapsible-content-${collapsibleContentIdSequence++}`);\n\n\t/**\n\t * The expanded or collapsed state of the collapsible component.\n\t */\n\tpublic readonly expanded = model<boolean>(false);\n\n\t/**\n\t * The disabled state of the collapsible component.\n\t */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Toggles the expanded state of the collapsible component.\n\t */\n\tpublic toggle(): void {\n\t\tthis.expanded.update((expanded) => !expanded);\n\t}\n}\n","import { isPlatformServer } from '@angular/common';\nimport { Component, ElementRef, OnInit, PLATFORM_ID, effect, inject, input, signal, untracked } from '@angular/core';\nimport { BrnCollapsibleComponent } from './brn-collapsible.component';\n\n@Component({\n\tselector: 'brn-collapsible-content',\n\tstandalone: true,\n\thost: {\n\t\t'[hidden]': '!collapsible?.expanded()',\n\t\t'[attr.data-state]': 'collapsible?.expanded() ? \"open\" : \"closed\"',\n\t\t'[id]': 'collapsible?.contentId()',\n\t\t'[style.--brn-collapsible-content-width.px]': 'width()',\n\t\t'[style.--brn-collapsible-content-height.px]': 'height()',\n\t},\n\ttemplate: `\n\t\t<ng-content />\n\t`,\n})\nexport class BrnCollapsibleContentComponent implements OnInit {\n\tprotected readonly collapsible = inject(BrnCollapsibleComponent, { optional: true });\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprivate readonly _platformId = inject(PLATFORM_ID);\n\t/**\n\t * The id of the collapsible content element.\n\t */\n\tpublic readonly id = input<string | null | undefined>();\n\tprotected readonly width = signal<number | null>(null);\n\tprotected readonly height = signal<number | null>(null);\n\n\tconstructor() {\n\t\tif (!this.collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\n\t\teffect(() => {\n\t\t\tconst id = this.id();\n\t\t\tconst collapsible = this.collapsible;\n\t\t\tif (!id || !collapsible) return;\n\t\t\tuntracked(() => collapsible.contentId.set(id));\n\t\t});\n\t}\n\n\tngOnInit(): void {\n\t\tif (isPlatformServer(this._platformId)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// ensure the element is not hidden when measuring its size\n\t\tthis._elementRef.nativeElement.hidden = false;\n\n\t\tconst { width, height } = this._elementRef.nativeElement.getBoundingClientRect();\n\t\tthis.width.set(width);\n\t\tthis.height.set(height);\n\n\t\t// we force the element to be hidden again if collapsed after measuring its size\n\t\t// this is handled by the host binding, but it can cause a flicker if we don't do this here manually\n\t\tthis._elementRef.nativeElement.hidden = this.collapsible?.expanded() ?? false;\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { BrnCollapsibleComponent } from './brn-collapsible.component';\n\n@Directive({\n\tselector: 'button[brnCollapsibleTrigger]',\n\tstandalone: true,\n\thost: {\n\t\t'[attr.data-state]': 'collapsible?.expanded() ? \"open\" : \"closed\"',\n\t\t'[attr.disabled]': 'collapsible?.disabled() ? true : undefined',\n\t\t'[attr.aria-expanded]': 'collapsible?.expanded()',\n\t\t'[attr.aria-controls]': 'collapsible?.contentId()',\n\t\t'(click)': 'toggle()',\n\t},\n})\nexport class BrnCollapsibleTriggerDirective {\n\tprotected readonly collapsible = inject(BrnCollapsibleComponent, { optional: true });\n\n\tconstructor() {\n\t\tif (!this.collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\t}\n\n\ttoggle(): void {\n\t\tthis.collapsible?.toggle();\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { BrnCollapsibleContentComponent } from './lib/brn-collapsible-content.component';\nimport { BrnCollapsibleTriggerDirective } from './lib/brn-collapsible-trigger.directive';\nimport { BrnCollapsibleComponent } from './lib/brn-collapsible.component';\n\nexport * from './lib/brn-collapsible-content.component';\nexport * from './lib/brn-collapsible-trigger.directive';\nexport * from './lib/brn-collapsible.component';\n\nexport const BrnCollapsibleImports = [\n\tBrnCollapsibleComponent,\n\tBrnCollapsibleTriggerDirective,\n\tBrnCollapsibleContentComponent,\n] as const;\n\n@NgModule({\n\timports: [...BrnCollapsibleImports],\n\texports: [...BrnCollapsibleImports],\n})\nexport class BrnCollapsibleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|