@ngneers/controls 0.0.1-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/ngneers-controls-accordion.mjs +234 -0
- package/fesm2022/ngneers-controls-accordion.mjs.map +1 -0
- package/fesm2022/ngneers-controls-api-ng.mjs +959 -0
- package/fesm2022/ngneers-controls-api-ng.mjs.map +1 -0
- package/fesm2022/ngneers-controls-api-resize.mjs +712 -0
- package/fesm2022/ngneers-controls-api-resize.mjs.map +1 -0
- package/fesm2022/ngneers-controls-api.mjs +347 -0
- package/fesm2022/ngneers-controls-api.mjs.map +1 -0
- package/fesm2022/ngneers-controls-avatar.mjs +77 -0
- package/fesm2022/ngneers-controls-avatar.mjs.map +1 -0
- package/fesm2022/ngneers-controls-base.mjs +620 -0
- package/fesm2022/ngneers-controls-base.mjs.map +1 -0
- package/fesm2022/ngneers-controls-breadcrumb.mjs +100 -0
- package/fesm2022/ngneers-controls-breadcrumb.mjs.map +1 -0
- package/fesm2022/ngneers-controls-button-group.mjs +110 -0
- package/fesm2022/ngneers-controls-button-group.mjs.map +1 -0
- package/fesm2022/ngneers-controls-button.mjs +83 -0
- package/fesm2022/ngneers-controls-button.mjs.map +1 -0
- package/fesm2022/ngneers-controls-calendar-time-CJT5AFlA.mjs +74 -0
- package/fesm2022/ngneers-controls-calendar-time-CJT5AFlA.mjs.map +1 -0
- package/fesm2022/ngneers-controls-calendar.mjs +801 -0
- package/fesm2022/ngneers-controls-calendar.mjs.map +1 -0
- package/fesm2022/ngneers-controls-checkbox.mjs +63 -0
- package/fesm2022/ngneers-controls-checkbox.mjs.map +1 -0
- package/fesm2022/ngneers-controls-chip.mjs +55 -0
- package/fesm2022/ngneers-controls-chip.mjs.map +1 -0
- package/fesm2022/ngneers-controls-default-icons.mjs +82 -0
- package/fesm2022/ngneers-controls-default-icons.mjs.map +1 -0
- package/fesm2022/ngneers-controls-defer.mjs +72 -0
- package/fesm2022/ngneers-controls-defer.mjs.map +1 -0
- package/fesm2022/ngneers-controls-dialog.mjs +407 -0
- package/fesm2022/ngneers-controls-dialog.mjs.map +1 -0
- package/fesm2022/ngneers-controls-directives.mjs +498 -0
- package/fesm2022/ngneers-controls-directives.mjs.map +1 -0
- package/fesm2022/ngneers-controls-drawer.mjs +271 -0
- package/fesm2022/ngneers-controls-drawer.mjs.map +1 -0
- package/fesm2022/ngneers-controls-edit-inplace.mjs +127 -0
- package/fesm2022/ngneers-controls-edit-inplace.mjs.map +1 -0
- package/fesm2022/ngneers-controls-errors.mjs +329 -0
- package/fesm2022/ngneers-controls-errors.mjs.map +1 -0
- package/fesm2022/ngneers-controls-filter.mjs +708 -0
- package/fesm2022/ngneers-controls-filter.mjs.map +1 -0
- package/fesm2022/ngneers-controls-hint.mjs +153 -0
- package/fesm2022/ngneers-controls-hint.mjs.map +1 -0
- package/fesm2022/ngneers-controls-i18n-translations-de.mjs +170 -0
- package/fesm2022/ngneers-controls-i18n-translations-de.mjs.map +1 -0
- package/fesm2022/ngneers-controls-i18n-translations-en.mjs +170 -0
- package/fesm2022/ngneers-controls-i18n-translations-en.mjs.map +1 -0
- package/fesm2022/ngneers-controls-i18n.mjs +57 -0
- package/fesm2022/ngneers-controls-i18n.mjs.map +1 -0
- package/fesm2022/ngneers-controls-icon.mjs +195 -0
- package/fesm2022/ngneers-controls-icon.mjs.map +1 -0
- package/fesm2022/ngneers-controls-inplace.mjs +150 -0
- package/fesm2022/ngneers-controls-inplace.mjs.map +1 -0
- package/fesm2022/ngneers-controls-input-field.mjs +165 -0
- package/fesm2022/ngneers-controls-input-field.mjs.map +1 -0
- package/fesm2022/ngneers-controls-input.mjs +72 -0
- package/fesm2022/ngneers-controls-input.mjs.map +1 -0
- package/fesm2022/ngneers-controls-item-view.mjs +473 -0
- package/fesm2022/ngneers-controls-item-view.mjs.map +1 -0
- package/fesm2022/ngneers-controls-list-box.mjs +281 -0
- package/fesm2022/ngneers-controls-list-box.mjs.map +1 -0
- package/fesm2022/ngneers-controls-mask-input.mjs +888 -0
- package/fesm2022/ngneers-controls-mask-input.mjs.map +1 -0
- package/fesm2022/ngneers-controls-menu.mjs +371 -0
- package/fesm2022/ngneers-controls-menu.mjs.map +1 -0
- package/fesm2022/ngneers-controls-message.mjs +30 -0
- package/fesm2022/ngneers-controls-message.mjs.map +1 -0
- package/fesm2022/ngneers-controls-number-input.mjs +366 -0
- package/fesm2022/ngneers-controls-number-input.mjs.map +1 -0
- package/fesm2022/ngneers-controls-paginator.mjs +129 -0
- package/fesm2022/ngneers-controls-paginator.mjs.map +1 -0
- package/fesm2022/ngneers-controls-popover.mjs +215 -0
- package/fesm2022/ngneers-controls-popover.mjs.map +1 -0
- package/fesm2022/ngneers-controls-progress.mjs +98 -0
- package/fesm2022/ngneers-controls-progress.mjs.map +1 -0
- package/fesm2022/ngneers-controls-radio.mjs +152 -0
- package/fesm2022/ngneers-controls-radio.mjs.map +1 -0
- package/fesm2022/ngneers-controls-roving-focus.mjs +323 -0
- package/fesm2022/ngneers-controls-roving-focus.mjs.map +1 -0
- package/fesm2022/ngneers-controls-scroll-shadow.mjs +65 -0
- package/fesm2022/ngneers-controls-scroll-shadow.mjs.map +1 -0
- package/fesm2022/ngneers-controls-scroller.mjs +308 -0
- package/fesm2022/ngneers-controls-scroller.mjs.map +1 -0
- package/fesm2022/ngneers-controls-select-button.mjs +58 -0
- package/fesm2022/ngneers-controls-select-button.mjs.map +1 -0
- package/fesm2022/ngneers-controls-select.mjs +417 -0
- package/fesm2022/ngneers-controls-select.mjs.map +1 -0
- package/fesm2022/ngneers-controls-slider.mjs +167 -0
- package/fesm2022/ngneers-controls-slider.mjs.map +1 -0
- package/fesm2022/ngneers-controls-snackbar.mjs +414 -0
- package/fesm2022/ngneers-controls-snackbar.mjs.map +1 -0
- package/fesm2022/ngneers-controls-spin-buttons.mjs +126 -0
- package/fesm2022/ngneers-controls-spin-buttons.mjs.map +1 -0
- package/fesm2022/ngneers-controls-spinner.mjs +184 -0
- package/fesm2022/ngneers-controls-spinner.mjs.map +1 -0
- package/fesm2022/ngneers-controls-splitter.mjs +604 -0
- package/fesm2022/ngneers-controls-splitter.mjs.map +1 -0
- package/fesm2022/ngneers-controls-state.mjs +185 -0
- package/fesm2022/ngneers-controls-state.mjs.map +1 -0
- package/fesm2022/ngneers-controls-switch.mjs +39 -0
- package/fesm2022/ngneers-controls-switch.mjs.map +1 -0
- package/fesm2022/ngneers-controls-table.mjs +2634 -0
- package/fesm2022/ngneers-controls-table.mjs.map +1 -0
- package/fesm2022/ngneers-controls-tabs.mjs +336 -0
- package/fesm2022/ngneers-controls-tabs.mjs.map +1 -0
- package/fesm2022/ngneers-controls-tag.mjs +30 -0
- package/fesm2022/ngneers-controls-tag.mjs.map +1 -0
- package/fesm2022/ngneers-controls-toast.mjs +350 -0
- package/fesm2022/ngneers-controls-toast.mjs.map +1 -0
- package/fesm2022/ngneers-controls-toggle-button.mjs +70 -0
- package/fesm2022/ngneers-controls-toggle-button.mjs.map +1 -0
- package/fesm2022/ngneers-controls-tooltip.mjs +506 -0
- package/fesm2022/ngneers-controls-tooltip.mjs.map +1 -0
- package/fesm2022/ngneers-controls-tree.mjs +599 -0
- package/fesm2022/ngneers-controls-tree.mjs.map +1 -0
- package/fesm2022/ngneers-controls-upload.mjs +377 -0
- package/fesm2022/ngneers-controls-upload.mjs.map +1 -0
- package/fesm2022/ngneers-controls-utils-ng.mjs +411 -0
- package/fesm2022/ngneers-controls-utils-ng.mjs.map +1 -0
- package/fesm2022/ngneers-controls-utils.mjs +261 -0
- package/fesm2022/ngneers-controls-utils.mjs.map +1 -0
- package/fesm2022/ngneers-controls.mjs +6 -0
- package/fesm2022/ngneers-controls.mjs.map +1 -0
- package/package.json +302 -0
- package/types/ngneers-controls-accordion.d.ts +139 -0
- package/types/ngneers-controls-api-ng.d.ts +364 -0
- package/types/ngneers-controls-api-resize.d.ts +318 -0
- package/types/ngneers-controls-api.d.ts +145 -0
- package/types/ngneers-controls-avatar.d.ts +54 -0
- package/types/ngneers-controls-base.d.ts +277 -0
- package/types/ngneers-controls-breadcrumb.d.ts +272 -0
- package/types/ngneers-controls-button-group.d.ts +46 -0
- package/types/ngneers-controls-button.d.ts +48 -0
- package/types/ngneers-controls-calendar.d.ts +466 -0
- package/types/ngneers-controls-checkbox.d.ts +40 -0
- package/types/ngneers-controls-chip.d.ts +202 -0
- package/types/ngneers-controls-default-icons.d.ts +5 -0
- package/types/ngneers-controls-defer.d.ts +48 -0
- package/types/ngneers-controls-dialog.d.ts +399 -0
- package/types/ngneers-controls-directives.d.ts +171 -0
- package/types/ngneers-controls-drawer.d.ts +308 -0
- package/types/ngneers-controls-edit-inplace.d.ts +263 -0
- package/types/ngneers-controls-errors.d.ts +155 -0
- package/types/ngneers-controls-filter.d.ts +609 -0
- package/types/ngneers-controls-hint.d.ts +88 -0
- package/types/ngneers-controls-i18n-translations-de.d.ts +164 -0
- package/types/ngneers-controls-i18n-translations-en.d.ts +164 -0
- package/types/ngneers-controls-i18n.d.ts +186 -0
- package/types/ngneers-controls-icon.d.ts +68 -0
- package/types/ngneers-controls-inplace.d.ts +98 -0
- package/types/ngneers-controls-input-field.d.ts +248 -0
- package/types/ngneers-controls-input.d.ts +30 -0
- package/types/ngneers-controls-item-view.d.ts +215 -0
- package/types/ngneers-controls-list-box.d.ts +334 -0
- package/types/ngneers-controls-mask-input.d.ts +434 -0
- package/types/ngneers-controls-menu.d.ts +192 -0
- package/types/ngneers-controls-message.d.ts +21 -0
- package/types/ngneers-controls-number-input.d.ts +146 -0
- package/types/ngneers-controls-paginator.d.ts +255 -0
- package/types/ngneers-controls-popover.d.ts +116 -0
- package/types/ngneers-controls-progress.d.ts +49 -0
- package/types/ngneers-controls-radio.d.ts +91 -0
- package/types/ngneers-controls-roving-focus.d.ts +107 -0
- package/types/ngneers-controls-scroll-shadow.d.ts +25 -0
- package/types/ngneers-controls-scroller.d.ts +151 -0
- package/types/ngneers-controls-select-button.d.ts +51 -0
- package/types/ngneers-controls-select.d.ts +409 -0
- package/types/ngneers-controls-slider.d.ts +57 -0
- package/types/ngneers-controls-snackbar.d.ts +330 -0
- package/types/ngneers-controls-spin-buttons.d.ts +69 -0
- package/types/ngneers-controls-spinner.d.ts +117 -0
- package/types/ngneers-controls-splitter.d.ts +465 -0
- package/types/ngneers-controls-state.d.ts +102 -0
- package/types/ngneers-controls-switch.d.ts +18 -0
- package/types/ngneers-controls-table.d.ts +3127 -0
- package/types/ngneers-controls-tabs.d.ts +118 -0
- package/types/ngneers-controls-tag.d.ts +21 -0
- package/types/ngneers-controls-toast.d.ts +298 -0
- package/types/ngneers-controls-toggle-button.d.ts +48 -0
- package/types/ngneers-controls-tooltip.d.ts +189 -0
- package/types/ngneers-controls-tree.d.ts +409 -0
- package/types/ngneers-controls-upload.d.ts +347 -0
- package/types/ngneers-controls-utils-ng.d.ts +129 -0
- package/types/ngneers-controls-utils.d.ts +130 -0
- package/types/ngneers-controls.d.ts +2 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, input, booleanAttribute, model, Component, viewChild, contentChild, computed, Directive, inject, signal, afterRenderEffect } from '@angular/core';
|
|
3
|
+
import { NgnBase, provideSelf, NgnPt } from '@ngneers/controls/base';
|
|
4
|
+
import { accordionControlTemplate } from '@ngneers/controls-themes/templates/accordion';
|
|
5
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
6
|
+
import { templateTypesFn, NgnTemplate } from '@ngneers/controls/api/ng';
|
|
7
|
+
import { NgnDefer } from '@ngneers/controls/defer';
|
|
8
|
+
import { NgnIcon } from '@ngneers/controls/icon';
|
|
9
|
+
import { generateElementId } from '@ngneers/controls/utils-ng';
|
|
10
|
+
import { accordionPanelControlTemplate } from '@ngneers/controls-themes/templates/accordion-panel';
|
|
11
|
+
|
|
12
|
+
const ACCORDION_CONTROL = new InjectionToken('AccordionControl');
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @category control
|
|
16
|
+
*/
|
|
17
|
+
class NgnAccordion extends NgnBase {
|
|
18
|
+
theme = this.injectThemeTemplate(accordionControlTemplate, 'root');
|
|
19
|
+
/**
|
|
20
|
+
* Whether to keep lazily-loaded panel content in the DOM after the panel closes.
|
|
21
|
+
* Applies as the default for every panel; individual panels can override it.
|
|
22
|
+
* @default false
|
|
23
|
+
*/
|
|
24
|
+
cache = input(false, { ...(ngDevMode ? { debugName: "cache" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
25
|
+
/**
|
|
26
|
+
* Whether to defer rendering each panel's content until it is first expanded.
|
|
27
|
+
* Applies as the default for every panel; individual panels can override it.
|
|
28
|
+
* @default false
|
|
29
|
+
*/
|
|
30
|
+
lazy = input(false, { ...(ngDevMode ? { debugName: "lazy" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
31
|
+
/**
|
|
32
|
+
* Icon shown on a panel header when the panel is expanded.
|
|
33
|
+
*/
|
|
34
|
+
iconExpanded = input(/* @ts-ignore */
|
|
35
|
+
...(ngDevMode ? [undefined, { debugName: "iconExpanded" }] : /* istanbul ignore next */ []));
|
|
36
|
+
/**
|
|
37
|
+
* Icon shown on a panel header when the panel is collapsed.
|
|
38
|
+
*/
|
|
39
|
+
iconCollapsed = input(/* @ts-ignore */
|
|
40
|
+
...(ngDevMode ? [undefined, { debugName: "iconCollapsed" }] : /* istanbul ignore next */ []));
|
|
41
|
+
/**
|
|
42
|
+
* Whether multiple panels can be expanded at once. When `false`, expanding a
|
|
43
|
+
* panel collapses any other open panel.
|
|
44
|
+
* @default false
|
|
45
|
+
*/
|
|
46
|
+
multiple = input(false, { ...(ngDevMode ? { debugName: "multiple" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
47
|
+
/**
|
|
48
|
+
* The ids of the currently expanded panels. Two-way bindable to control or
|
|
49
|
+
* observe which panels are open.
|
|
50
|
+
* @default []
|
|
51
|
+
*/
|
|
52
|
+
expandedPanels = model([], /* @ts-ignore */
|
|
53
|
+
...(ngDevMode ? [{ debugName: "expandedPanels" }] : /* istanbul ignore next */ []));
|
|
54
|
+
togglePanel(panelId) {
|
|
55
|
+
if (!this.multiple()) {
|
|
56
|
+
if (this.expandedPanels().includes(panelId)) {
|
|
57
|
+
this.expandedPanels.set([]);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
this.expandedPanels.set([panelId]);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (this.expandedPanels().includes(panelId)) {
|
|
64
|
+
this.expandedPanels.update(panels => panels.filter(id => id !== panelId));
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.expandedPanels.update(panels => [...panels, panelId]);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
constructor() {
|
|
71
|
+
super();
|
|
72
|
+
}
|
|
73
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NgnAccordion, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: NgnAccordion, isStandalone: true, selector: "ngn-accordion", inputs: { cache: { classPropertyName: "cache", publicName: "cache", isSignal: true, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null }, iconExpanded: { classPropertyName: "iconExpanded", publicName: "iconExpanded", isSignal: true, isRequired: false, transformFunction: null }, iconCollapsed: { classPropertyName: "iconCollapsed", publicName: "iconCollapsed", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, expandedPanels: { classPropertyName: "expandedPanels", publicName: "expandedPanels", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandedPanels: "expandedPanelsChange" }, providers: [
|
|
75
|
+
provideSelf(NgnAccordion),
|
|
76
|
+
{
|
|
77
|
+
provide: ACCORDION_CONTROL,
|
|
78
|
+
deps: [NgnAccordion],
|
|
79
|
+
useFactory: (accordion) => ({
|
|
80
|
+
expandedPanels: accordion.expandedPanels,
|
|
81
|
+
togglePanel: accordion.togglePanel.bind(accordion),
|
|
82
|
+
lazy: accordion.lazy,
|
|
83
|
+
cache: accordion.cache,
|
|
84
|
+
iconExpanded: accordion.iconExpanded,
|
|
85
|
+
iconCollapsed: accordion.iconCollapsed,
|
|
86
|
+
}),
|
|
87
|
+
},
|
|
88
|
+
], usesInheritance: true, ngImport: i0, template: "<ng-content />\n" });
|
|
89
|
+
}
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NgnAccordion, decorators: [{
|
|
91
|
+
type: Component,
|
|
92
|
+
args: [{ selector: 'ngn-accordion', imports: [], providers: [
|
|
93
|
+
provideSelf(NgnAccordion),
|
|
94
|
+
{
|
|
95
|
+
provide: ACCORDION_CONTROL,
|
|
96
|
+
deps: [NgnAccordion],
|
|
97
|
+
useFactory: (accordion) => ({
|
|
98
|
+
expandedPanels: accordion.expandedPanels,
|
|
99
|
+
togglePanel: accordion.togglePanel.bind(accordion),
|
|
100
|
+
lazy: accordion.lazy,
|
|
101
|
+
cache: accordion.cache,
|
|
102
|
+
iconExpanded: accordion.iconExpanded,
|
|
103
|
+
iconCollapsed: accordion.iconCollapsed,
|
|
104
|
+
}),
|
|
105
|
+
},
|
|
106
|
+
], template: "<ng-content />\n" }]
|
|
107
|
+
}], ctorParameters: () => [], propDecorators: { cache: [{ type: i0.Input, args: [{ isSignal: true, alias: "cache", required: false }] }], lazy: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazy", required: false }] }], iconExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconExpanded", required: false }] }], iconCollapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconCollapsed", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], expandedPanels: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedPanels", required: false }] }, { type: i0.Output, args: ["expandedPanelsChange"] }] } });
|
|
108
|
+
|
|
109
|
+
class AccordionTemplates extends NgnBase {
|
|
110
|
+
_defaultHeaderTemplate = viewChild.required('defaultHeaderTemplate');
|
|
111
|
+
_userHeaderTemplate = contentChild('header', /* @ts-ignore */
|
|
112
|
+
...(ngDevMode ? [{ debugName: "_userHeaderTemplate" }] : /* istanbul ignore next */ []));
|
|
113
|
+
/**
|
|
114
|
+
* Set a custom template for the header of the accordion panel.
|
|
115
|
+
* Can also be set using an `<ng-template>` element with `#header` template reference variable.
|
|
116
|
+
*/
|
|
117
|
+
templateHeader = input(null, /* @ts-ignore */
|
|
118
|
+
...(ngDevMode ? [{ debugName: "templateHeader" }] : /* istanbul ignore next */ []));
|
|
119
|
+
headerTemplate = computed(() => this._userHeaderTemplate() ?? this.templateHeader() ?? this._defaultHeaderTemplate(), /* @ts-ignore */
|
|
120
|
+
...(ngDevMode ? [{ debugName: "headerTemplate" }] : /* istanbul ignore next */ []));
|
|
121
|
+
_userContentTemplate = contentChild('content', /* @ts-ignore */
|
|
122
|
+
...(ngDevMode ? [{ debugName: "_userContentTemplate" }] : /* istanbul ignore next */ []));
|
|
123
|
+
/**
|
|
124
|
+
* The required template for the content of the accordion panel.
|
|
125
|
+
* Can also be set using an `<ng-template>` element with `#content` template reference variable.
|
|
126
|
+
*/
|
|
127
|
+
templateContent = input(null, /* @ts-ignore */
|
|
128
|
+
...(ngDevMode ? [{ debugName: "templateContent" }] : /* istanbul ignore next */ []));
|
|
129
|
+
contentTemplate = computed(() => this._userContentTemplate() ?? this.templateContent(), /* @ts-ignore */
|
|
130
|
+
...(ngDevMode ? [{ debugName: "contentTemplate" }] : /* istanbul ignore next */ []));
|
|
131
|
+
/**
|
|
132
|
+
* Types for the dialog templates.
|
|
133
|
+
*/
|
|
134
|
+
templateTypes = templateTypesFn();
|
|
135
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AccordionTemplates, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
136
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.0.5", type: AccordionTemplates, isStandalone: true, inputs: { templateHeader: { classPropertyName: "templateHeader", publicName: "templateHeader", isSignal: true, isRequired: false, transformFunction: null }, templateContent: { classPropertyName: "templateContent", publicName: "templateContent", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "_userHeaderTemplate", first: true, predicate: ["header"], descendants: true, isSignal: true }, { propertyName: "_userContentTemplate", first: true, predicate: ["content"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "_defaultHeaderTemplate", first: true, predicate: ["defaultHeaderTemplate"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 });
|
|
137
|
+
}
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AccordionTemplates, decorators: [{
|
|
139
|
+
type: Directive
|
|
140
|
+
}], propDecorators: { _defaultHeaderTemplate: [{ type: i0.ViewChild, args: ['defaultHeaderTemplate', { isSignal: true }] }], _userHeaderTemplate: [{ type: i0.ContentChild, args: ['header', { isSignal: true }] }], templateHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "templateHeader", required: false }] }], _userContentTemplate: [{ type: i0.ContentChild, args: ['content', { isSignal: true }] }], templateContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "templateContent", required: false }] }] } });
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* @category control
|
|
144
|
+
*/
|
|
145
|
+
class NgnAccordionPanel extends AccordionTemplates {
|
|
146
|
+
theme = this.injectThemeTemplate(accordionPanelControlTemplate, 'root');
|
|
147
|
+
_accordionControl = inject(ACCORDION_CONTROL);
|
|
148
|
+
/**
|
|
149
|
+
* The unique identifier for the accordion panel.
|
|
150
|
+
* @default generateElementId()
|
|
151
|
+
*/
|
|
152
|
+
panelId = input(generateElementId(), /* @ts-ignore */
|
|
153
|
+
...(ngDevMode ? [{ debugName: "panelId" }] : /* istanbul ignore next */ []));
|
|
154
|
+
/**
|
|
155
|
+
* Whether to lazily load the content of the panel when expanded.
|
|
156
|
+
* @default false
|
|
157
|
+
*/
|
|
158
|
+
lazy = input(null, { ...(ngDevMode ? { debugName: "lazy" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
159
|
+
/**
|
|
160
|
+
* Whether to cache the content of the panel when {@link lazy} is enabled and the panel is closed.
|
|
161
|
+
* @default false
|
|
162
|
+
*/
|
|
163
|
+
cache = input(null, { ...(ngDevMode ? { debugName: "cache" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
164
|
+
/**
|
|
165
|
+
* The header text for the accordion panel.
|
|
166
|
+
*/
|
|
167
|
+
header = input(/* @ts-ignore */
|
|
168
|
+
...(ngDevMode ? [undefined, { debugName: "header" }] : /* istanbul ignore next */ []));
|
|
169
|
+
/**
|
|
170
|
+
* Whether the accordion panel is disabled. Disabling will prevent user interaction,
|
|
171
|
+
* but not automatically close the panel if it was already expanded, or is expanded programatically.
|
|
172
|
+
* @default false
|
|
173
|
+
*/
|
|
174
|
+
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
175
|
+
iconExpanded = this._accordionControl.iconExpanded;
|
|
176
|
+
iconCollapsed = this._accordionControl.iconCollapsed;
|
|
177
|
+
_contentViewChild = viewChild.required('content');
|
|
178
|
+
expanded = computed(() => this._accordionControl.expandedPanels().includes(this.panelId()), /* @ts-ignore */
|
|
179
|
+
...(ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []));
|
|
180
|
+
headerId = computed(() => `${this.panelId()}-accordionpanel-header`, /* @ts-ignore */
|
|
181
|
+
...(ngDevMode ? [{ debugName: "headerId" }] : /* istanbul ignore next */ []));
|
|
182
|
+
contentId = computed(() => `${this.panelId()}-accordionpanel-content`, /* @ts-ignore */
|
|
183
|
+
...(ngDevMode ? [{ debugName: "contentId" }] : /* istanbul ignore next */ []));
|
|
184
|
+
afterTransitionExpanded = signal(false, /* @ts-ignore */
|
|
185
|
+
...(ngDevMode ? [{ debugName: "afterTransitionExpanded" }] : /* istanbul ignore next */ []));
|
|
186
|
+
lazyInt = computed(() => this.lazy() ?? this._accordionControl.lazy(), /* @ts-ignore */
|
|
187
|
+
...(ngDevMode ? [{ debugName: "lazyInt" }] : /* istanbul ignore next */ []));
|
|
188
|
+
cacheInt = computed(() => this.cache() ?? this._accordionControl.cache(), /* @ts-ignore */
|
|
189
|
+
...(ngDevMode ? [{ debugName: "cacheInt" }] : /* istanbul ignore next */ []));
|
|
190
|
+
constructor() {
|
|
191
|
+
super();
|
|
192
|
+
afterRenderEffect(() => {
|
|
193
|
+
if (!this.lazyInt() || this.cacheInt()) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
if (this.expanded()) {
|
|
197
|
+
this.afterTransitionExpanded.set(true);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
requestAnimationFrame(() => {
|
|
201
|
+
const allAnimationsDone = Promise.all(this._contentViewChild()
|
|
202
|
+
.nativeElement.getAnimations()
|
|
203
|
+
.map(x => x.finished));
|
|
204
|
+
allAnimationsDone
|
|
205
|
+
.then(() => {
|
|
206
|
+
this.afterTransitionExpanded.set(false);
|
|
207
|
+
})
|
|
208
|
+
.catch(() => {
|
|
209
|
+
// ignore cancelled animation
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Toggles the expanded state of the accordion panel.
|
|
217
|
+
*/
|
|
218
|
+
toggle() {
|
|
219
|
+
this._accordionControl.togglePanel(this.panelId());
|
|
220
|
+
}
|
|
221
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NgnAccordionPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
222
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: NgnAccordionPanel, isStandalone: true, selector: "ngn-accordion-panel", inputs: { panelId: { classPropertyName: "panelId", publicName: "panelId", isSignal: true, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null }, cache: { classPropertyName: "cache", publicName: "cache", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideSelf(NgnAccordionPanel)], viewQueries: [{ propertyName: "_contentViewChild", first: true, predicate: ["content"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<header>\n <button\n [ptInt]=\"this\"\n [ptClass]=\"{\n header: true,\n 'header-disabled': disabled(),\n }\"\n [id]=\"headerId()\"\n [disabled]=\"disabled()\"\n [aria-expanded]=\"expanded()\"\n (click)=\"toggle()\"\n [attr.aria-controls]=\"contentId()\"\n >\n @if (headerTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n headerTemplate();\n context: { $implicit: { panelId: panelId(), text: header(), expanded: expanded() } }\n \"\n ></ng-container>\n }\n <ngn-icon\n [defaultIcon]=\"expanded() ? 'accordion-collapse' : 'accordion-expand'\"\n [icon]=\"expanded() ? iconExpanded() : iconCollapsed()\"\n />\n </button>\n</header>\n\n<div\n [ptInt]=\"this\"\n [ptClass]=\"{\n 'content-expander': true,\n 'content-expander-collapsed': !expanded(),\n }\"\n #content\n>\n <div\n [ptInt]=\"this\"\n [ptClass]=\"'content'\"\n [id]=\"contentId()\"\n [attr.aria-labelledby]=\"headerId()\"\n [aria-hidden]=\"!expanded()\"\n role=\"region\"\n >\n <ngn-defer\n [lazyContent]=\"contentTemplate()\"\n [open]=\"lazyInt() && !cacheInt() ? afterTransitionExpanded() : expanded()\"\n [hiddenOnClosed]=\"false\"\n [cache]=\"cacheInt()\"\n [lazy]=\"lazyInt()\"\n >\n <ng-content />\n </ngn-defer>\n </div>\n</div>\n\n<ng-template #defaultHeaderTemplate let-header [ngnTemplate]=\"templateTypes.header\">\n <span [ptInt]=\"this\" [ptClass]=\"'header-text'\">\n {{ header.text }}\n </span>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgnPt, selector: "[ptInt]", inputs: ["ptInt", "ptClass", "ptDep"] }, { kind: "component", type: NgnDefer, selector: "ngn-defer", inputs: ["lazyContent", "lazyContentContext", "open", "lazy", "cache", "hiddenOnClosed"] }, { kind: "directive", type: NgnTemplate, selector: "ng-template[ngnTemplate]", inputs: ["ngnTemplate"] }, { kind: "component", type: NgnIcon, selector: "ngn-icon", inputs: ["defaultIcon", "icon"] }] });
|
|
223
|
+
}
|
|
224
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NgnAccordionPanel, decorators: [{
|
|
225
|
+
type: Component,
|
|
226
|
+
args: [{ selector: 'ngn-accordion-panel', imports: [NgTemplateOutlet, NgnPt, NgnDefer, NgnTemplate, NgnIcon], providers: [provideSelf(NgnAccordionPanel)], template: "<header>\n <button\n [ptInt]=\"this\"\n [ptClass]=\"{\n header: true,\n 'header-disabled': disabled(),\n }\"\n [id]=\"headerId()\"\n [disabled]=\"disabled()\"\n [aria-expanded]=\"expanded()\"\n (click)=\"toggle()\"\n [attr.aria-controls]=\"contentId()\"\n >\n @if (headerTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n headerTemplate();\n context: { $implicit: { panelId: panelId(), text: header(), expanded: expanded() } }\n \"\n ></ng-container>\n }\n <ngn-icon\n [defaultIcon]=\"expanded() ? 'accordion-collapse' : 'accordion-expand'\"\n [icon]=\"expanded() ? iconExpanded() : iconCollapsed()\"\n />\n </button>\n</header>\n\n<div\n [ptInt]=\"this\"\n [ptClass]=\"{\n 'content-expander': true,\n 'content-expander-collapsed': !expanded(),\n }\"\n #content\n>\n <div\n [ptInt]=\"this\"\n [ptClass]=\"'content'\"\n [id]=\"contentId()\"\n [attr.aria-labelledby]=\"headerId()\"\n [aria-hidden]=\"!expanded()\"\n role=\"region\"\n >\n <ngn-defer\n [lazyContent]=\"contentTemplate()\"\n [open]=\"lazyInt() && !cacheInt() ? afterTransitionExpanded() : expanded()\"\n [hiddenOnClosed]=\"false\"\n [cache]=\"cacheInt()\"\n [lazy]=\"lazyInt()\"\n >\n <ng-content />\n </ngn-defer>\n </div>\n</div>\n\n<ng-template #defaultHeaderTemplate let-header [ngnTemplate]=\"templateTypes.header\">\n <span [ptInt]=\"this\" [ptClass]=\"'header-text'\">\n {{ header.text }}\n </span>\n</ng-template>\n" }]
|
|
227
|
+
}], ctorParameters: () => [], propDecorators: { panelId: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelId", required: false }] }], lazy: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazy", required: false }] }], cache: [{ type: i0.Input, args: [{ isSignal: true, alias: "cache", required: false }] }], header: [{ type: i0.Input, args: [{ isSignal: true, alias: "header", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], _contentViewChild: [{ type: i0.ViewChild, args: ['content', { isSignal: true }] }] } });
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Generated bundle index. Do not edit.
|
|
231
|
+
*/
|
|
232
|
+
|
|
233
|
+
export { NgnAccordion, NgnAccordionPanel };
|
|
234
|
+
//# sourceMappingURL=ngneers-controls-accordion.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngneers-controls-accordion.mjs","sources":["../../src/accordion/types.ts","../../src/accordion/accordion.ts","../../src/accordion/accordion.html","../../src/accordion/accordion-templates.ts","../../src/accordion/accordion-panel.ts","../../src/accordion/accordion-panel.html","../../src/accordion/ngneers-controls-accordion.ts"],"sourcesContent":["import { InjectionToken, type Signal } from '@angular/core';\n\nimport type { IconType } from '@ngneers/controls-custom-types';\n\nexport type HeaderTemplateType = {\n $implicit: {\n panelId: string;\n text?: string;\n expanded: boolean;\n };\n};\nexport type AccordionControl = {\n expandedPanels: Signal<string[]>;\n togglePanel: (panelId: string) => void;\n lazy: Signal<boolean>;\n cache: Signal<boolean>;\n iconExpanded: Signal<IconType>;\n iconCollapsed: Signal<IconType>;\n};\n\nexport const ACCORDION_CONTROL = new InjectionToken<AccordionControl>('AccordionControl');\n","import { booleanAttribute, Component, input, model } from '@angular/core';\nimport { NgnBase, provideSelf } from '@ngneers/controls/base';\nimport { accordionControlTemplate } from '@ngneers/controls-themes/templates/accordion';\n\nimport { ACCORDION_CONTROL, type AccordionControl } from './types';\n\nimport type { IconType } from '@ngneers/controls-custom-types';\n\n/**\n * @category control\n */\n@Component({\n selector: 'ngn-accordion',\n imports: [],\n templateUrl: './accordion.html',\n\n providers: [\n provideSelf(NgnAccordion),\n {\n provide: ACCORDION_CONTROL,\n deps: [NgnAccordion],\n useFactory: (accordion: NgnAccordion) =>\n <AccordionControl>{\n expandedPanels: accordion.expandedPanels,\n togglePanel: accordion.togglePanel.bind(accordion),\n lazy: accordion.lazy,\n cache: accordion.cache,\n iconExpanded: accordion.iconExpanded,\n iconCollapsed: accordion.iconCollapsed,\n },\n },\n ],\n})\nexport class NgnAccordion extends NgnBase<'accordion'> {\n protected readonly theme = this.injectThemeTemplate(accordionControlTemplate, 'root');\n /**\n * Whether to keep lazily-loaded panel content in the DOM after the panel closes.\n * Applies as the default for every panel; individual panels can override it.\n * @default false\n */\n public readonly cache = input(false, { transform: booleanAttribute });\n /**\n * Whether to defer rendering each panel's content until it is first expanded.\n * Applies as the default for every panel; individual panels can override it.\n * @default false\n */\n public readonly lazy = input(false, { transform: booleanAttribute });\n\n /**\n * Icon shown on a panel header when the panel is expanded.\n */\n public readonly iconExpanded = input<IconType>();\n /**\n * Icon shown on a panel header when the panel is collapsed.\n */\n public readonly iconCollapsed = input<IconType>();\n /**\n * Whether multiple panels can be expanded at once. When `false`, expanding a\n * panel collapses any other open panel.\n * @default false\n */\n public readonly multiple = input(false, { transform: booleanAttribute });\n /**\n * The ids of the currently expanded panels. Two-way bindable to control or\n * observe which panels are open.\n * @default []\n */\n public readonly expandedPanels = model<string[]>([]);\n\n public togglePanel(panelId: string) {\n if (!this.multiple()) {\n if (this.expandedPanels().includes(panelId)) {\n this.expandedPanels.set([]);\n return;\n }\n this.expandedPanels.set([panelId]);\n return;\n }\n if (this.expandedPanels().includes(panelId)) {\n this.expandedPanels.update(panels => panels.filter(id => id !== panelId));\n } else {\n this.expandedPanels.update(panels => [...panels, panelId]);\n }\n }\n\n constructor() {\n super();\n }\n}\n","<ng-content />\n","import { computed, contentChild, Directive, input, TemplateRef, viewChild } from '@angular/core';\nimport { templateTypesFn } from '@ngneers/controls/api/ng';\nimport { NgnBase } from '@ngneers/controls/base';\n\nimport type { HeaderTemplateType } from './types';\n\n@Directive()\nexport abstract class AccordionTemplates extends NgnBase<'accordionPanel'> {\n private readonly _defaultHeaderTemplate =\n viewChild.required<TemplateRef<HeaderTemplateType>>('defaultHeaderTemplate');\n private readonly _userHeaderTemplate = contentChild<TemplateRef<HeaderTemplateType>>('header');\n /**\n * Set a custom template for the header of the accordion panel.\n * Can also be set using an `<ng-template>` element with `#header` template reference variable.\n */\n public readonly templateHeader = input<TemplateRef<HeaderTemplateType> | null>(null);\n protected readonly headerTemplate = computed(\n () => this._userHeaderTemplate() ?? this.templateHeader() ?? this._defaultHeaderTemplate()\n );\n\n private readonly _userContentTemplate = contentChild<TemplateRef<unknown>>('content');\n /**\n * The required template for the content of the accordion panel.\n * Can also be set using an `<ng-template>` element with `#content` template reference variable.\n */\n public readonly templateContent = input<TemplateRef<unknown> | null>(null);\n protected readonly contentTemplate = computed(\n () => this._userContentTemplate() ?? this.templateContent()\n );\n\n /**\n * Types for the dialog templates.\n */\n public readonly templateTypes = templateTypesFn<{\n header: HeaderTemplateType;\n }>();\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterRenderEffect,\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n viewChild,\n} from '@angular/core';\nimport { NgnTemplate } from '@ngneers/controls/api/ng';\nimport { provideSelf, NgnPt } from '@ngneers/controls/base';\nimport { NgnDefer } from '@ngneers/controls/defer';\nimport { NgnIcon } from '@ngneers/controls/icon';\nimport { generateElementId } from '@ngneers/controls/utils-ng';\nimport { accordionPanelControlTemplate } from '@ngneers/controls-themes/templates/accordion-panel';\n\nimport { AccordionTemplates } from './accordion-templates';\nimport { ACCORDION_CONTROL } from './types';\n\n/**\n * @category control\n */\n@Component({\n selector: 'ngn-accordion-panel',\n imports: [NgTemplateOutlet, NgnPt, NgnDefer, NgnTemplate, NgnIcon],\n templateUrl: './accordion-panel.html',\n\n providers: [provideSelf(NgnAccordionPanel)],\n})\nexport class NgnAccordionPanel extends AccordionTemplates {\n protected readonly theme = this.injectThemeTemplate(accordionPanelControlTemplate, 'root');\n\n private readonly _accordionControl = inject(ACCORDION_CONTROL);\n\n /**\n * The unique identifier for the accordion panel.\n * @default generateElementId()\n */\n public readonly panelId = input<string>(generateElementId());\n /**\n * Whether to lazily load the content of the panel when expanded.\n * @default false\n */\n public readonly lazy = input(null, { transform: booleanAttribute });\n /**\n * Whether to cache the content of the panel when {@link lazy} is enabled and the panel is closed.\n * @default false\n */\n public readonly cache = input(null, { transform: booleanAttribute });\n /**\n * The header text for the accordion panel.\n */\n public readonly header = input<string>();\n /**\n * Whether the accordion panel is disabled. Disabling will prevent user interaction,\n * but not automatically close the panel if it was already expanded, or is expanded programatically.\n * @default false\n */\n public readonly disabled = input(false, { transform: booleanAttribute });\n\n protected readonly iconExpanded = this._accordionControl.iconExpanded;\n protected readonly iconCollapsed = this._accordionControl.iconCollapsed;\n protected readonly _contentViewChild = viewChild.required<ElementRef<HTMLElement>>('content');\n\n protected readonly expanded = computed(() =>\n this._accordionControl.expandedPanels().includes(this.panelId())\n );\n\n protected readonly headerId = computed(() => `${this.panelId()}-accordionpanel-header`);\n protected readonly contentId = computed(() => `${this.panelId()}-accordionpanel-content`);\n\n protected readonly afterTransitionExpanded = signal<boolean>(false);\n\n protected readonly lazyInt = computed(() => this.lazy() ?? this._accordionControl.lazy());\n protected readonly cacheInt = computed(() => this.cache() ?? this._accordionControl.cache());\n\n constructor() {\n super();\n afterRenderEffect(() => {\n if (!this.lazyInt() || this.cacheInt()) {\n return;\n }\n if (this.expanded()) {\n this.afterTransitionExpanded.set(true);\n } else {\n requestAnimationFrame(() => {\n const allAnimationsDone = Promise.all(\n this._contentViewChild()\n .nativeElement.getAnimations()\n .map(x => x.finished)\n );\n allAnimationsDone\n .then(() => {\n this.afterTransitionExpanded.set(false);\n })\n .catch(() => {\n // ignore cancelled animation\n });\n });\n }\n });\n }\n\n /**\n * Toggles the expanded state of the accordion panel.\n */\n public toggle() {\n this._accordionControl.togglePanel(this.panelId());\n }\n}\n","<header>\n <button\n [ptInt]=\"this\"\n [ptClass]=\"{\n header: true,\n 'header-disabled': disabled(),\n }\"\n [id]=\"headerId()\"\n [disabled]=\"disabled()\"\n [aria-expanded]=\"expanded()\"\n (click)=\"toggle()\"\n [attr.aria-controls]=\"contentId()\"\n >\n @if (headerTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n headerTemplate();\n context: { $implicit: { panelId: panelId(), text: header(), expanded: expanded() } }\n \"\n ></ng-container>\n }\n <ngn-icon\n [defaultIcon]=\"expanded() ? 'accordion-collapse' : 'accordion-expand'\"\n [icon]=\"expanded() ? iconExpanded() : iconCollapsed()\"\n />\n </button>\n</header>\n\n<div\n [ptInt]=\"this\"\n [ptClass]=\"{\n 'content-expander': true,\n 'content-expander-collapsed': !expanded(),\n }\"\n #content\n>\n <div\n [ptInt]=\"this\"\n [ptClass]=\"'content'\"\n [id]=\"contentId()\"\n [attr.aria-labelledby]=\"headerId()\"\n [aria-hidden]=\"!expanded()\"\n role=\"region\"\n >\n <ngn-defer\n [lazyContent]=\"contentTemplate()\"\n [open]=\"lazyInt() && !cacheInt() ? afterTransitionExpanded() : expanded()\"\n [hiddenOnClosed]=\"false\"\n [cache]=\"cacheInt()\"\n [lazy]=\"lazyInt()\"\n >\n <ng-content />\n </ngn-defer>\n </div>\n</div>\n\n<ng-template #defaultHeaderTemplate let-header [ngnTemplate]=\"templateTypes.header\">\n <span [ptInt]=\"this\" [ptClass]=\"'header-text'\">\n {{ header.text }}\n </span>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|