@ngneers/controls 0.0.1-pre4 → 0.0.1-pre6
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 +32 -32
- package/fesm2022/ngneers-controls-accordion.mjs.map +1 -1
- package/fesm2022/ngneers-controls-api-ng.mjs +19 -19
- package/fesm2022/ngneers-controls-api-ng.mjs.map +1 -1
- package/fesm2022/ngneers-controls-api-resize.mjs +706 -0
- package/fesm2022/ngneers-controls-api-resize.mjs.map +1 -0
- package/fesm2022/ngneers-controls-avatar.mjs +13 -13
- package/fesm2022/ngneers-controls-avatar.mjs.map +1 -1
- package/fesm2022/ngneers-controls-base.mjs +89 -64
- package/fesm2022/ngneers-controls-base.mjs.map +1 -1
- package/fesm2022/ngneers-controls-breadcrumb.mjs +18 -18
- package/fesm2022/ngneers-controls-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngneers-controls-button-group.mjs +8 -8
- package/fesm2022/ngneers-controls-button-group.mjs.map +1 -1
- package/fesm2022/ngneers-controls-button.mjs +16 -10
- package/fesm2022/ngneers-controls-button.mjs.map +1 -1
- package/fesm2022/{ngneers-controls-calendar-time-C7UnIFzU.mjs → ngneers-controls-calendar-time-Bzlv9Vkn.mjs} +9 -9
- package/fesm2022/{ngneers-controls-calendar-time-C7UnIFzU.mjs.map → ngneers-controls-calendar-time-Bzlv9Vkn.mjs.map} +1 -1
- package/fesm2022/ngneers-controls-calendar.mjs +54 -54
- package/fesm2022/ngneers-controls-calendar.mjs.map +1 -1
- package/fesm2022/ngneers-controls-checkbox.mjs +9 -9
- package/fesm2022/ngneers-controls-checkbox.mjs.map +1 -1
- package/fesm2022/ngneers-controls-chip.mjs +6 -6
- package/fesm2022/ngneers-controls-chip.mjs.map +1 -1
- package/fesm2022/ngneers-controls-defer.mjs +10 -10
- package/fesm2022/ngneers-controls-defer.mjs.map +1 -1
- package/fesm2022/ngneers-controls-dialog.mjs +37 -39
- package/fesm2022/ngneers-controls-dialog.mjs.map +1 -1
- package/fesm2022/ngneers-controls-directives.mjs +45 -39
- package/fesm2022/ngneers-controls-directives.mjs.map +1 -1
- package/fesm2022/ngneers-controls-drawer.mjs +28 -28
- package/fesm2022/ngneers-controls-drawer.mjs.map +1 -1
- package/fesm2022/ngneers-controls-edit-inplace.mjs +15 -15
- package/fesm2022/ngneers-controls-edit-inplace.mjs.map +1 -1
- package/fesm2022/ngneers-controls-filter.mjs +192 -44
- package/fesm2022/ngneers-controls-filter.mjs.map +1 -1
- package/fesm2022/{ngneers-controls-i18n-de-CdTPeBiR.mjs → ngneers-controls-i18n-de-CF0xTWEX.mjs} +9 -5
- package/fesm2022/ngneers-controls-i18n-de-CF0xTWEX.mjs.map +1 -0
- package/fesm2022/{ngneers-controls-i18n-en-Cfp2pOLY.mjs → ngneers-controls-i18n-en-8B7xAjH2.mjs} +9 -5
- package/fesm2022/ngneers-controls-i18n-en-8B7xAjH2.mjs.map +1 -0
- package/fesm2022/ngneers-controls-i18n.mjs +5 -5
- package/fesm2022/ngneers-controls-i18n.mjs.map +1 -1
- package/fesm2022/ngneers-controls-icon.mjs +10 -10
- package/fesm2022/ngneers-controls-icon.mjs.map +1 -1
- package/fesm2022/ngneers-controls-inplace.mjs +18 -18
- package/fesm2022/ngneers-controls-inplace.mjs.map +1 -1
- package/fesm2022/ngneers-controls-input-field.mjs +15 -15
- package/fesm2022/ngneers-controls-input-field.mjs.map +1 -1
- package/fesm2022/ngneers-controls-input-mask.mjs +8 -8
- package/fesm2022/ngneers-controls-input-mask.mjs.map +1 -1
- package/fesm2022/ngneers-controls-input.mjs +7 -6
- package/fesm2022/ngneers-controls-input.mjs.map +1 -1
- package/fesm2022/ngneers-controls-item-view.mjs +33 -33
- package/fesm2022/ngneers-controls-item-view.mjs.map +1 -1
- package/fesm2022/ngneers-controls-list-box.mjs +31 -31
- package/fesm2022/ngneers-controls-list-box.mjs.map +1 -1
- package/fesm2022/ngneers-controls-menu.mjs +32 -32
- package/fesm2022/ngneers-controls-menu.mjs.map +1 -1
- package/fesm2022/ngneers-controls-message.mjs +4 -4
- package/fesm2022/ngneers-controls-message.mjs.map +1 -1
- package/fesm2022/ngneers-controls-paginator.mjs +12 -12
- package/fesm2022/ngneers-controls-paginator.mjs.map +1 -1
- package/fesm2022/ngneers-controls-popover.mjs +13 -13
- package/fesm2022/ngneers-controls-popover.mjs.map +1 -1
- package/fesm2022/ngneers-controls-progress.mjs +16 -16
- package/fesm2022/ngneers-controls-progress.mjs.map +1 -1
- package/fesm2022/ngneers-controls-scroller.mjs +74 -39
- package/fesm2022/ngneers-controls-scroller.mjs.map +1 -1
- package/fesm2022/ngneers-controls-select-button.mjs +6 -6
- package/fesm2022/ngneers-controls-select-button.mjs.map +1 -1
- package/fesm2022/ngneers-controls-select.mjs +46 -46
- package/fesm2022/ngneers-controls-select.mjs.map +1 -1
- package/fesm2022/ngneers-controls-slider.mjs +12 -12
- package/fesm2022/ngneers-controls-slider.mjs.map +1 -1
- package/fesm2022/ngneers-controls-spinner.mjs +7 -7
- package/fesm2022/ngneers-controls-spinner.mjs.map +1 -1
- package/fesm2022/ngneers-controls-splitter.mjs +141 -328
- package/fesm2022/ngneers-controls-splitter.mjs.map +1 -1
- package/fesm2022/ngneers-controls-switch.mjs +3 -3
- package/fesm2022/ngneers-controls-table.mjs +1520 -80
- package/fesm2022/ngneers-controls-table.mjs.map +1 -1
- package/fesm2022/ngneers-controls-tabs.mjs +40 -39
- package/fesm2022/ngneers-controls-tabs.mjs.map +1 -1
- package/fesm2022/ngneers-controls-tag.mjs +4 -4
- package/fesm2022/ngneers-controls-tag.mjs.map +1 -1
- package/fesm2022/ngneers-controls-toast.mjs +18 -18
- package/fesm2022/ngneers-controls-toast.mjs.map +1 -1
- package/fesm2022/ngneers-controls-toggle-button.mjs +9 -9
- package/fesm2022/ngneers-controls-toggle-button.mjs.map +1 -1
- package/fesm2022/ngneers-controls-tooltip.mjs +37 -45
- package/fesm2022/ngneers-controls-tooltip.mjs.map +1 -1
- package/fesm2022/ngneers-controls-utils-ng.mjs +9 -9
- package/fesm2022/ngneers-controls-utils-ng.mjs.map +1 -1
- package/package.json +14 -10
- package/types/ngneers-controls-api-ng.d.ts +2 -2
- package/types/ngneers-controls-api-resize.d.ts +318 -0
- package/types/ngneers-controls-base.d.ts +8 -0
- package/types/ngneers-controls-breadcrumb.d.ts +1 -1
- package/types/ngneers-controls-button.d.ts +13 -8
- package/types/ngneers-controls-calendar.d.ts +5 -1
- package/types/ngneers-controls-checkbox.d.ts +1 -1
- package/types/ngneers-controls-directives.d.ts +7 -1
- package/types/ngneers-controls-drawer.d.ts +4 -0
- package/types/ngneers-controls-edit-inplace.d.ts +4 -0
- package/types/ngneers-controls-filter.d.ts +53 -4
- package/types/ngneers-controls-i18n.d.ts +4 -0
- package/types/ngneers-controls-icon.d.ts +1 -1
- package/types/ngneers-controls-input-field.d.ts +4 -0
- package/types/ngneers-controls-input.d.ts +1 -1
- package/types/ngneers-controls-list-box.d.ts +5 -1
- package/types/ngneers-controls-menu.d.ts +1 -1
- package/types/ngneers-controls-paginator.d.ts +4 -0
- package/types/ngneers-controls-popover.d.ts +1 -1
- package/types/ngneers-controls-scroller.d.ts +12 -2
- package/types/ngneers-controls-select.d.ts +6 -2
- package/types/ngneers-controls-spinner.d.ts +1 -1
- package/types/ngneers-controls-splitter.d.ts +29 -59
- package/types/ngneers-controls-table.d.ts +392 -24
- package/types/ngneers-controls-toast.d.ts +1 -1
- package/types/ngneers-controls-tooltip.d.ts +1 -7
- package/fesm2022/ngneers-controls-i18n-de-CdTPeBiR.mjs.map +0 -1
- package/fesm2022/ngneers-controls-i18n-en-Cfp2pOLY.mjs.map +0 -1
|
@@ -16,15 +16,15 @@ const ACCORDION_CONTROL = new InjectionToken('AccordionControl');
|
|
|
16
16
|
*/
|
|
17
17
|
class NgnAccordion extends NgnBase {
|
|
18
18
|
theme = this.injectThemeTemplate(accordionControlTemplate, 'root');
|
|
19
|
-
cache = input(false, { ...(ngDevMode ? { debugName: "cache" } : {}), transform: booleanAttribute });
|
|
20
|
-
lazy = input(false, { ...(ngDevMode ? { debugName: "lazy" } : {}), transform: booleanAttribute });
|
|
19
|
+
cache = input(false, { ...(ngDevMode ? { debugName: "cache" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
20
|
+
lazy = input(false, { ...(ngDevMode ? { debugName: "lazy" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
21
21
|
/**
|
|
22
22
|
* Whether multiple panels can be expanded at once.
|
|
23
23
|
*/
|
|
24
|
-
iconExpanded = input(...(ngDevMode ? [undefined, { debugName: "iconExpanded" }] : []));
|
|
25
|
-
iconCollapsed = input(...(ngDevMode ? [undefined, { debugName: "iconCollapsed" }] : []));
|
|
26
|
-
multiple = input(false, { ...(ngDevMode ? { debugName: "multiple" } : {}), transform: booleanAttribute });
|
|
27
|
-
expandedPanels = model([], ...(ngDevMode ? [{ debugName: "expandedPanels" }] : []));
|
|
24
|
+
iconExpanded = input(...(ngDevMode ? [undefined, { debugName: "iconExpanded" }] : /* istanbul ignore next */ []));
|
|
25
|
+
iconCollapsed = input(...(ngDevMode ? [undefined, { debugName: "iconCollapsed" }] : /* istanbul ignore next */ []));
|
|
26
|
+
multiple = input(false, { ...(ngDevMode ? { debugName: "multiple" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
27
|
+
expandedPanels = model([], ...(ngDevMode ? [{ debugName: "expandedPanels" }] : /* istanbul ignore next */ []));
|
|
28
28
|
togglePanel(panelId) {
|
|
29
29
|
if (!this.multiple()) {
|
|
30
30
|
if (this.expandedPanels().includes(panelId)) {
|
|
@@ -44,8 +44,8 @@ class NgnAccordion extends NgnBase {
|
|
|
44
44
|
constructor() {
|
|
45
45
|
super();
|
|
46
46
|
}
|
|
47
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
48
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.
|
|
47
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: NgnAccordion, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.2", 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: [
|
|
49
49
|
provideSelf(NgnAccordion),
|
|
50
50
|
{
|
|
51
51
|
provide: ACCORDION_CONTROL,
|
|
@@ -61,7 +61,7 @@ class NgnAccordion extends NgnBase {
|
|
|
61
61
|
},
|
|
62
62
|
], usesInheritance: true, ngImport: i0, template: "<ng-content />\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
63
63
|
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: NgnAccordion, decorators: [{
|
|
65
65
|
type: Component,
|
|
66
66
|
args: [{ selector: 'ngn-accordion', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
67
67
|
provideSelf(NgnAccordion),
|
|
@@ -82,28 +82,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
82
82
|
|
|
83
83
|
class AccordionTemplates extends NgnBase {
|
|
84
84
|
_defaultHeaderTemplate = viewChild.required('defaultHeaderTemplate');
|
|
85
|
-
_userHeaderTemplate = contentChild('header', ...(ngDevMode ? [{ debugName: "_userHeaderTemplate" }] : []));
|
|
85
|
+
_userHeaderTemplate = contentChild('header', ...(ngDevMode ? [{ debugName: "_userHeaderTemplate" }] : /* istanbul ignore next */ []));
|
|
86
86
|
/**
|
|
87
87
|
* Set a custom template for the header of the accordion panel.
|
|
88
88
|
* Can also be set using an `<ng-template>` element with `#header` template reference variable.
|
|
89
89
|
*/
|
|
90
|
-
templateHeader = input(null, ...(ngDevMode ? [{ debugName: "templateHeader" }] : []));
|
|
91
|
-
headerTemplate = computed(() => this._userHeaderTemplate() ?? this.templateHeader() ?? this._defaultHeaderTemplate(), ...(ngDevMode ? [{ debugName: "headerTemplate" }] : []));
|
|
92
|
-
_userContentTemplate = contentChild('content', ...(ngDevMode ? [{ debugName: "_userContentTemplate" }] : []));
|
|
90
|
+
templateHeader = input(null, ...(ngDevMode ? [{ debugName: "templateHeader" }] : /* istanbul ignore next */ []));
|
|
91
|
+
headerTemplate = computed(() => this._userHeaderTemplate() ?? this.templateHeader() ?? this._defaultHeaderTemplate(), ...(ngDevMode ? [{ debugName: "headerTemplate" }] : /* istanbul ignore next */ []));
|
|
92
|
+
_userContentTemplate = contentChild('content', ...(ngDevMode ? [{ debugName: "_userContentTemplate" }] : /* istanbul ignore next */ []));
|
|
93
93
|
/**
|
|
94
94
|
* The required template for the content of the accordion panel.
|
|
95
95
|
* Can also be set using an `<ng-template>` element with `#content` template reference variable.
|
|
96
96
|
*/
|
|
97
|
-
templateContent = input(null, ...(ngDevMode ? [{ debugName: "templateContent" }] : []));
|
|
98
|
-
contentTemplate = computed(() => this._userContentTemplate() ?? this.templateContent(), ...(ngDevMode ? [{ debugName: "contentTemplate" }] : []));
|
|
97
|
+
templateContent = input(null, ...(ngDevMode ? [{ debugName: "templateContent" }] : /* istanbul ignore next */ []));
|
|
98
|
+
contentTemplate = computed(() => this._userContentTemplate() ?? this.templateContent(), ...(ngDevMode ? [{ debugName: "contentTemplate" }] : /* istanbul ignore next */ []));
|
|
99
99
|
/**
|
|
100
100
|
* Types for the dialog templates.
|
|
101
101
|
*/
|
|
102
102
|
templateTypes = templateTypesFn();
|
|
103
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
104
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.
|
|
103
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: AccordionTemplates, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
104
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.2", 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 });
|
|
105
105
|
}
|
|
106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: AccordionTemplates, decorators: [{
|
|
107
107
|
type: Directive
|
|
108
108
|
}], 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 }] }] } });
|
|
109
109
|
|
|
@@ -117,36 +117,36 @@ class NgnAccordionPanel extends AccordionTemplates {
|
|
|
117
117
|
* The unique identifier for the accordion panel.
|
|
118
118
|
* @default generateElementId()
|
|
119
119
|
*/
|
|
120
|
-
panelId = input(generateElementId(), ...(ngDevMode ? [{ debugName: "panelId" }] : []));
|
|
120
|
+
panelId = input(generateElementId(), ...(ngDevMode ? [{ debugName: "panelId" }] : /* istanbul ignore next */ []));
|
|
121
121
|
/**
|
|
122
122
|
* Whether to lazily load the content of the panel when expanded.
|
|
123
123
|
* @default false
|
|
124
124
|
*/
|
|
125
|
-
lazy = input(null, { ...(ngDevMode ? { debugName: "lazy" } : {}), transform: booleanAttribute });
|
|
125
|
+
lazy = input(null, { ...(ngDevMode ? { debugName: "lazy" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
126
126
|
/**
|
|
127
127
|
* Whether to cache the content of the panel when {@link lazy} is enabled and the panel is closed.
|
|
128
128
|
* @default false
|
|
129
129
|
*/
|
|
130
|
-
cache = input(null, { ...(ngDevMode ? { debugName: "cache" } : {}), transform: booleanAttribute });
|
|
130
|
+
cache = input(null, { ...(ngDevMode ? { debugName: "cache" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
131
131
|
/**
|
|
132
132
|
* The header text for the accordion panel.
|
|
133
133
|
*/
|
|
134
|
-
header = input(...(ngDevMode ? [undefined, { debugName: "header" }] : []));
|
|
134
|
+
header = input(...(ngDevMode ? [undefined, { debugName: "header" }] : /* istanbul ignore next */ []));
|
|
135
135
|
/**
|
|
136
136
|
* Whether the accordion panel is disabled. Disabling will prevent user interaction,
|
|
137
137
|
* but not automatically close the panel if it was already expanded, or is expanded programatically.
|
|
138
138
|
* @default false
|
|
139
139
|
*/
|
|
140
|
-
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
|
|
140
|
+
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
141
141
|
iconExpanded = this._accordionControl.iconExpanded;
|
|
142
142
|
iconCollapsed = this._accordionControl.iconCollapsed;
|
|
143
143
|
_contentViewChild = viewChild.required('content');
|
|
144
|
-
expanded = computed(() => this._accordionControl.expandedPanels().includes(this.panelId()), ...(ngDevMode ? [{ debugName: "expanded" }] : []));
|
|
145
|
-
headerId = computed(() => `${this.panelId()}-accordionpanel-header`, ...(ngDevMode ? [{ debugName: "headerId" }] : []));
|
|
146
|
-
contentId = computed(() => `${this.panelId()}-accordionpanel-content`, ...(ngDevMode ? [{ debugName: "contentId" }] : []));
|
|
147
|
-
afterTransitionExpanded = signal(false, ...(ngDevMode ? [{ debugName: "afterTransitionExpanded" }] : []));
|
|
148
|
-
lazyInt = computed(() => this.lazy() ?? this._accordionControl.lazy(), ...(ngDevMode ? [{ debugName: "lazyInt" }] : []));
|
|
149
|
-
cacheInt = computed(() => this.cache() ?? this._accordionControl.cache(), ...(ngDevMode ? [{ debugName: "cacheInt" }] : []));
|
|
144
|
+
expanded = computed(() => this._accordionControl.expandedPanels().includes(this.panelId()), ...(ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []));
|
|
145
|
+
headerId = computed(() => `${this.panelId()}-accordionpanel-header`, ...(ngDevMode ? [{ debugName: "headerId" }] : /* istanbul ignore next */ []));
|
|
146
|
+
contentId = computed(() => `${this.panelId()}-accordionpanel-content`, ...(ngDevMode ? [{ debugName: "contentId" }] : /* istanbul ignore next */ []));
|
|
147
|
+
afterTransitionExpanded = signal(false, ...(ngDevMode ? [{ debugName: "afterTransitionExpanded" }] : /* istanbul ignore next */ []));
|
|
148
|
+
lazyInt = computed(() => this.lazy() ?? this._accordionControl.lazy(), ...(ngDevMode ? [{ debugName: "lazyInt" }] : /* istanbul ignore next */ []));
|
|
149
|
+
cacheInt = computed(() => this.cache() ?? this._accordionControl.cache(), ...(ngDevMode ? [{ debugName: "cacheInt" }] : /* istanbul ignore next */ []));
|
|
150
150
|
constructor() {
|
|
151
151
|
super();
|
|
152
152
|
afterRenderEffect(() => {
|
|
@@ -178,10 +178,10 @@ class NgnAccordionPanel extends AccordionTemplates {
|
|
|
178
178
|
toggle() {
|
|
179
179
|
this._accordionControl.togglePanel(this.panelId());
|
|
180
180
|
}
|
|
181
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
182
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.
|
|
181
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: NgnAccordionPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
182
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.2", 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>\r\n <button\r\n [ptInt]=\"this\"\r\n [ptClass]=\"{\r\n header: true,\r\n 'header-disabled': disabled(),\r\n }\"\r\n [id]=\"headerId()\"\r\n [disabled]=\"disabled()\"\r\n [aria-expanded]=\"expanded()\"\r\n (click)=\"toggle()\"\r\n [attr.aria-controls]=\"contentId()\"\r\n >\r\n @if (headerTemplate()) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n headerTemplate();\r\n context: { $implicit: { panelId: panelId(), text: header(), expanded: expanded() } }\r\n \"\r\n ></ng-container>\r\n }\r\n <ngn-icon\r\n [defaultIcon]=\"expanded() ? 'chevron_up' : 'chevron_down'\"\r\n [icon]=\"expanded() ? iconExpanded() : iconCollapsed()\"\r\n />\r\n </button>\r\n</header>\r\n\r\n<div\r\n [ptInt]=\"this\"\r\n [ptClass]=\"{\r\n 'content-expander': true,\r\n 'content-expander-collapsed': !expanded(),\r\n }\"\r\n #content\r\n>\r\n <div\r\n [ptInt]=\"this\"\r\n [ptClass]=\"'content'\"\r\n [id]=\"contentId()\"\r\n [attr.aria-labelledby]=\"headerId()\"\r\n [aria-hidden]=\"!expanded()\"\r\n role=\"region\"\r\n >\r\n <ngn-defer\r\n [lazyContent]=\"contentTemplate()\"\r\n [open]=\"lazyInt() && !cacheInt() ? afterTransitionExpanded() : expanded()\"\r\n [hiddenOnClosed]=\"false\"\r\n [cache]=\"cacheInt()\"\r\n [lazy]=\"lazyInt()\"\r\n >\r\n <ng-content />\r\n </ngn-defer>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultHeaderTemplate let-header [ngnTemplate]=\"templateTypes.header\">\r\n <span [ptInt]=\"this\" [ptClass]=\"'header-text'\">\r\n {{ header.text }}\r\n </span>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgnPt, selector: "[ptInt]", inputs: ["ptInt", "ptClass"] }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
183
183
|
}
|
|
184
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
184
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: NgnAccordionPanel, decorators: [{
|
|
185
185
|
type: Component,
|
|
186
186
|
args: [{ selector: 'ngn-accordion-panel', imports: [NgTemplateOutlet, NgnPt, NgnDefer, NgnTemplate, NgnIcon], changeDetection: ChangeDetectionStrategy.OnPush, providers: [provideSelf(NgnAccordionPanel)], template: "<header>\r\n <button\r\n [ptInt]=\"this\"\r\n [ptClass]=\"{\r\n header: true,\r\n 'header-disabled': disabled(),\r\n }\"\r\n [id]=\"headerId()\"\r\n [disabled]=\"disabled()\"\r\n [aria-expanded]=\"expanded()\"\r\n (click)=\"toggle()\"\r\n [attr.aria-controls]=\"contentId()\"\r\n >\r\n @if (headerTemplate()) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n headerTemplate();\r\n context: { $implicit: { panelId: panelId(), text: header(), expanded: expanded() } }\r\n \"\r\n ></ng-container>\r\n }\r\n <ngn-icon\r\n [defaultIcon]=\"expanded() ? 'chevron_up' : 'chevron_down'\"\r\n [icon]=\"expanded() ? iconExpanded() : iconCollapsed()\"\r\n />\r\n </button>\r\n</header>\r\n\r\n<div\r\n [ptInt]=\"this\"\r\n [ptClass]=\"{\r\n 'content-expander': true,\r\n 'content-expander-collapsed': !expanded(),\r\n }\"\r\n #content\r\n>\r\n <div\r\n [ptInt]=\"this\"\r\n [ptClass]=\"'content'\"\r\n [id]=\"contentId()\"\r\n [attr.aria-labelledby]=\"headerId()\"\r\n [aria-hidden]=\"!expanded()\"\r\n role=\"region\"\r\n >\r\n <ngn-defer\r\n [lazyContent]=\"contentTemplate()\"\r\n [open]=\"lazyInt() && !cacheInt() ? afterTransitionExpanded() : expanded()\"\r\n [hiddenOnClosed]=\"false\"\r\n [cache]=\"cacheInt()\"\r\n [lazy]=\"lazyInt()\"\r\n >\r\n <ng-content />\r\n </ngn-defer>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultHeaderTemplate let-header [ngnTemplate]=\"templateTypes.header\">\r\n <span [ptInt]=\"this\" [ptClass]=\"'header-text'\">\r\n {{ header.text }}\r\n </span>\r\n</ng-template>\r\n" }]
|
|
187
187
|
}], 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 }] }] } });
|
|
@@ -1 +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';\r\n\r\nimport type { IconType } from '@ngneers/controls-custom-types';\r\n\r\nexport type HeaderTemplateType = {\r\n $implicit: {\r\n panelId: string;\r\n text?: string;\r\n expanded: boolean;\r\n };\r\n};\r\nexport type AccordionControl = {\r\n expandedPanels: Signal<string[]>;\r\n togglePanel: (panelId: string) => void;\r\n lazy: Signal<boolean>;\r\n cache: Signal<boolean>;\r\n iconExpanded: Signal<IconType>;\r\n iconCollapsed: Signal<IconType>;\r\n};\r\n\r\nexport const ACCORDION_CONTROL = new InjectionToken<AccordionControl>('AccordionControl');\r\n","import { booleanAttribute, ChangeDetectionStrategy, Component, input, model } from '@angular/core';\r\nimport { NgnBase, provideSelf } from '@ngneers/controls/base';\r\nimport { accordionControlTemplate } from '@ngneers/controls-themes/templates/accordion';\r\n\r\nimport { ACCORDION_CONTROL, type AccordionControl } from './types';\r\n\r\nimport type { IconType } from '@ngneers/controls-custom-types';\r\n\r\n/**\r\n * @category control\r\n */\r\n@Component({\r\n selector: 'ngn-accordion',\r\n imports: [],\r\n templateUrl: './accordion.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n provideSelf(NgnAccordion),\r\n {\r\n provide: ACCORDION_CONTROL,\r\n deps: [NgnAccordion],\r\n useFactory: (accordion: NgnAccordion) =>\r\n <AccordionControl>{\r\n expandedPanels: accordion.expandedPanels,\r\n togglePanel: accordion.togglePanel.bind(accordion),\r\n lazy: accordion.lazy,\r\n cache: accordion.cache,\r\n iconExpanded: accordion.iconExpanded,\r\n iconCollapsed: accordion.iconCollapsed,\r\n },\r\n },\r\n ],\r\n})\r\nexport class NgnAccordion extends NgnBase<'accordion'> {\r\n protected readonly theme = this.injectThemeTemplate(accordionControlTemplate, 'root');\r\n public readonly cache = input(false, { transform: booleanAttribute });\r\n public readonly lazy = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Whether multiple panels can be expanded at once.\r\n */\r\n public readonly iconExpanded = input<IconType>();\r\n public readonly iconCollapsed = input<IconType>();\r\n public readonly multiple = input(false, { transform: booleanAttribute });\r\n public readonly expandedPanels = model<string[]>([]);\r\n\r\n public togglePanel(panelId: string) {\r\n if (!this.multiple()) {\r\n if (this.expandedPanels().includes(panelId)) {\r\n this.expandedPanels.set([]);\r\n return;\r\n }\r\n this.expandedPanels.set([panelId]);\r\n return;\r\n }\r\n if (this.expandedPanels().includes(panelId)) {\r\n this.expandedPanels.update(panels => panels.filter(id => id !== panelId));\r\n } else {\r\n this.expandedPanels.update(panels => [...panels, panelId]);\r\n }\r\n }\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","<ng-content />\n","import { computed, contentChild, Directive, input, TemplateRef, viewChild } from '@angular/core';\r\nimport { templateTypesFn } from '@ngneers/controls/api/ng';\r\nimport { NgnBase } from '@ngneers/controls/base';\r\n\r\nimport type { HeaderTemplateType } from './types';\r\n\r\n@Directive()\r\nexport abstract class AccordionTemplates extends NgnBase<'accordionPanel'> {\r\n private readonly _defaultHeaderTemplate =\r\n viewChild.required<TemplateRef<HeaderTemplateType>>('defaultHeaderTemplate');\r\n private readonly _userHeaderTemplate = contentChild<TemplateRef<HeaderTemplateType>>('header');\r\n /**\r\n * Set a custom template for the header of the accordion panel.\r\n * Can also be set using an `<ng-template>` element with `#header` template reference variable.\r\n */\r\n public readonly templateHeader = input<TemplateRef<HeaderTemplateType> | null>(null);\r\n protected readonly headerTemplate = computed(\r\n () => this._userHeaderTemplate() ?? this.templateHeader() ?? this._defaultHeaderTemplate()\r\n );\r\n\r\n private readonly _userContentTemplate = contentChild<TemplateRef<unknown>>('content');\r\n /**\r\n * The required template for the content of the accordion panel.\r\n * Can also be set using an `<ng-template>` element with `#content` template reference variable.\r\n */\r\n public readonly templateContent = input<TemplateRef<unknown> | null>(null);\r\n protected readonly contentTemplate = computed(\r\n () => this._userContentTemplate() ?? this.templateContent()\r\n );\r\n\r\n /**\r\n * Types for the dialog templates.\r\n */\r\n public readonly templateTypes = templateTypesFn<{\r\n header: HeaderTemplateType;\r\n }>();\r\n}\r\n","import { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n afterRenderEffect,\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n ElementRef,\r\n inject,\r\n input,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { NgnTemplate } from '@ngneers/controls/api/ng';\r\nimport { provideSelf, NgnPt } from '@ngneers/controls/base';\r\nimport { NgnDefer } from '@ngneers/controls/defer';\r\nimport { NgnIcon } from '@ngneers/controls/icon';\r\nimport { generateElementId } from '@ngneers/controls/utils-ng';\r\nimport { accordionPanelControlTemplate } from '@ngneers/controls-themes/templates/accordion-panel';\r\n\r\nimport { AccordionTemplates } from './accordion-templates';\r\nimport { ACCORDION_CONTROL } from './types';\r\n\r\n/**\r\n * @category control\r\n */\r\n@Component({\r\n selector: 'ngn-accordion-panel',\r\n imports: [NgTemplateOutlet, NgnPt, NgnDefer, NgnTemplate, NgnIcon],\r\n templateUrl: './accordion-panel.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [provideSelf(NgnAccordionPanel)],\r\n})\r\nexport class NgnAccordionPanel extends AccordionTemplates {\r\n protected readonly theme = this.injectThemeTemplate(accordionPanelControlTemplate, 'root');\r\n\r\n private readonly _accordionControl = inject(ACCORDION_CONTROL);\r\n\r\n /**\r\n * The unique identifier for the accordion panel.\r\n * @default generateElementId()\r\n */\r\n public readonly panelId = input<string>(generateElementId());\r\n /**\r\n * Whether to lazily load the content of the panel when expanded.\r\n * @default false\r\n */\r\n public readonly lazy = input(null, { transform: booleanAttribute });\r\n /**\r\n * Whether to cache the content of the panel when {@link lazy} is enabled and the panel is closed.\r\n * @default false\r\n */\r\n public readonly cache = input(null, { transform: booleanAttribute });\r\n /**\r\n * The header text for the accordion panel.\r\n */\r\n public readonly header = input<string>();\r\n /**\r\n * Whether the accordion panel is disabled. Disabling will prevent user interaction,\r\n * but not automatically close the panel if it was already expanded, or is expanded programatically.\r\n * @default false\r\n */\r\n public readonly disabled = input(false, { transform: booleanAttribute });\r\n\r\n protected readonly iconExpanded = this._accordionControl.iconExpanded;\r\n protected readonly iconCollapsed = this._accordionControl.iconCollapsed;\r\n protected readonly _contentViewChild = viewChild.required<ElementRef<HTMLElement>>('content');\r\n\r\n protected readonly expanded = computed(() =>\r\n this._accordionControl.expandedPanels().includes(this.panelId())\r\n );\r\n\r\n protected readonly headerId = computed(() => `${this.panelId()}-accordionpanel-header`);\r\n protected readonly contentId = computed(() => `${this.panelId()}-accordionpanel-content`);\r\n\r\n protected readonly afterTransitionExpanded = signal<boolean>(false);\r\n\r\n protected readonly lazyInt = computed(() => this.lazy() ?? this._accordionControl.lazy());\r\n protected readonly cacheInt = computed(() => this.cache() ?? this._accordionControl.cache());\r\n\r\n constructor() {\r\n super();\r\n afterRenderEffect(() => {\r\n if (!this.lazyInt() || this.cacheInt()) {\r\n return;\r\n }\r\n if (this.expanded()) {\r\n this.afterTransitionExpanded.set(true);\r\n } else {\r\n requestAnimationFrame(() => {\r\n const allAnimationsDone = Promise.all(\r\n this._contentViewChild()\r\n .nativeElement.getAnimations()\r\n .map(x => x.finished)\r\n );\r\n allAnimationsDone\r\n .then(() => {\r\n this.afterTransitionExpanded.set(false);\r\n })\r\n .catch(() => {\r\n // ignore cancelled animation\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Toggles the expanded state of the accordion panel.\r\n */\r\n public toggle() {\r\n this._accordionControl.togglePanel(this.panelId());\r\n }\r\n}\r\n","<header>\r\n <button\r\n [ptInt]=\"this\"\r\n [ptClass]=\"{\r\n header: true,\r\n 'header-disabled': disabled(),\r\n }\"\r\n [id]=\"headerId()\"\r\n [disabled]=\"disabled()\"\r\n [aria-expanded]=\"expanded()\"\r\n (click)=\"toggle()\"\r\n [attr.aria-controls]=\"contentId()\"\r\n >\r\n @if (headerTemplate()) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n headerTemplate();\r\n context: { $implicit: { panelId: panelId(), text: header(), expanded: expanded() } }\r\n \"\r\n ></ng-container>\r\n }\r\n <ngn-icon\r\n [defaultIcon]=\"expanded() ? 'chevron_up' : 'chevron_down'\"\r\n [icon]=\"expanded() ? iconExpanded() : iconCollapsed()\"\r\n />\r\n </button>\r\n</header>\r\n\r\n<div\r\n [ptInt]=\"this\"\r\n [ptClass]=\"{\r\n 'content-expander': true,\r\n 'content-expander-collapsed': !expanded(),\r\n }\"\r\n #content\r\n>\r\n <div\r\n [ptInt]=\"this\"\r\n [ptClass]=\"'content'\"\r\n [id]=\"contentId()\"\r\n [attr.aria-labelledby]=\"headerId()\"\r\n [aria-hidden]=\"!expanded()\"\r\n role=\"region\"\r\n >\r\n <ngn-defer\r\n [lazyContent]=\"contentTemplate()\"\r\n [open]=\"lazyInt() && !cacheInt() ? afterTransitionExpanded() : expanded()\"\r\n [hiddenOnClosed]=\"false\"\r\n [cache]=\"cacheInt()\"\r\n [lazy]=\"lazyInt()\"\r\n >\r\n <ng-content />\r\n </ngn-defer>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultHeaderTemplate let-header [ngnTemplate]=\"templateTypes.header\">\r\n <span [ptInt]=\"this\" [ptClass]=\"'header-text'\">\r\n {{ header.text }}\r\n </span>\r\n</ng-template>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
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';\r\n\r\nimport type { IconType } from '@ngneers/controls-custom-types';\r\n\r\nexport type HeaderTemplateType = {\r\n $implicit: {\r\n panelId: string;\r\n text?: string;\r\n expanded: boolean;\r\n };\r\n};\r\nexport type AccordionControl = {\r\n expandedPanels: Signal<string[]>;\r\n togglePanel: (panelId: string) => void;\r\n lazy: Signal<boolean>;\r\n cache: Signal<boolean>;\r\n iconExpanded: Signal<IconType>;\r\n iconCollapsed: Signal<IconType>;\r\n};\r\n\r\nexport const ACCORDION_CONTROL = new InjectionToken<AccordionControl>('AccordionControl');\r\n","import { booleanAttribute, ChangeDetectionStrategy, Component, input, model } from '@angular/core';\r\nimport { NgnBase, provideSelf } from '@ngneers/controls/base';\r\nimport { accordionControlTemplate } from '@ngneers/controls-themes/templates/accordion';\r\n\r\nimport { ACCORDION_CONTROL, type AccordionControl } from './types';\r\n\r\nimport type { IconType } from '@ngneers/controls-custom-types';\r\n\r\n/**\r\n * @category control\r\n */\r\n@Component({\r\n selector: 'ngn-accordion',\r\n imports: [],\r\n templateUrl: './accordion.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n provideSelf(NgnAccordion),\r\n {\r\n provide: ACCORDION_CONTROL,\r\n deps: [NgnAccordion],\r\n useFactory: (accordion: NgnAccordion) =>\r\n <AccordionControl>{\r\n expandedPanels: accordion.expandedPanels,\r\n togglePanel: accordion.togglePanel.bind(accordion),\r\n lazy: accordion.lazy,\r\n cache: accordion.cache,\r\n iconExpanded: accordion.iconExpanded,\r\n iconCollapsed: accordion.iconCollapsed,\r\n },\r\n },\r\n ],\r\n})\r\nexport class NgnAccordion extends NgnBase<'accordion'> {\r\n protected readonly theme = this.injectThemeTemplate(accordionControlTemplate, 'root');\r\n public readonly cache = input(false, { transform: booleanAttribute });\r\n public readonly lazy = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Whether multiple panels can be expanded at once.\r\n */\r\n public readonly iconExpanded = input<IconType>();\r\n public readonly iconCollapsed = input<IconType>();\r\n public readonly multiple = input(false, { transform: booleanAttribute });\r\n public readonly expandedPanels = model<string[]>([]);\r\n\r\n public togglePanel(panelId: string) {\r\n if (!this.multiple()) {\r\n if (this.expandedPanels().includes(panelId)) {\r\n this.expandedPanels.set([]);\r\n return;\r\n }\r\n this.expandedPanels.set([panelId]);\r\n return;\r\n }\r\n if (this.expandedPanels().includes(panelId)) {\r\n this.expandedPanels.update(panels => panels.filter(id => id !== panelId));\r\n } else {\r\n this.expandedPanels.update(panels => [...panels, panelId]);\r\n }\r\n }\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","<ng-content />\n","import { computed, contentChild, Directive, input, TemplateRef, viewChild } from '@angular/core';\r\nimport { templateTypesFn } from '@ngneers/controls/api/ng';\r\nimport { NgnBase } from '@ngneers/controls/base';\r\n\r\nimport type { HeaderTemplateType } from './types';\r\n\r\n@Directive()\r\nexport abstract class AccordionTemplates extends NgnBase<'accordionPanel'> {\r\n private readonly _defaultHeaderTemplate =\r\n viewChild.required<TemplateRef<HeaderTemplateType>>('defaultHeaderTemplate');\r\n private readonly _userHeaderTemplate = contentChild<TemplateRef<HeaderTemplateType>>('header');\r\n /**\r\n * Set a custom template for the header of the accordion panel.\r\n * Can also be set using an `<ng-template>` element with `#header` template reference variable.\r\n */\r\n public readonly templateHeader = input<TemplateRef<HeaderTemplateType> | null>(null);\r\n protected readonly headerTemplate = computed(\r\n () => this._userHeaderTemplate() ?? this.templateHeader() ?? this._defaultHeaderTemplate()\r\n );\r\n\r\n private readonly _userContentTemplate = contentChild<TemplateRef<unknown>>('content');\r\n /**\r\n * The required template for the content of the accordion panel.\r\n * Can also be set using an `<ng-template>` element with `#content` template reference variable.\r\n */\r\n public readonly templateContent = input<TemplateRef<unknown> | null>(null);\r\n protected readonly contentTemplate = computed(\r\n () => this._userContentTemplate() ?? this.templateContent()\r\n );\r\n\r\n /**\r\n * Types for the dialog templates.\r\n */\r\n public readonly templateTypes = templateTypesFn<{\r\n header: HeaderTemplateType;\r\n }>();\r\n}\r\n","import { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n afterRenderEffect,\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n ElementRef,\r\n inject,\r\n input,\r\n signal,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { NgnTemplate } from '@ngneers/controls/api/ng';\r\nimport { provideSelf, NgnPt } from '@ngneers/controls/base';\r\nimport { NgnDefer } from '@ngneers/controls/defer';\r\nimport { NgnIcon } from '@ngneers/controls/icon';\r\nimport { generateElementId } from '@ngneers/controls/utils-ng';\r\nimport { accordionPanelControlTemplate } from '@ngneers/controls-themes/templates/accordion-panel';\r\n\r\nimport { AccordionTemplates } from './accordion-templates';\r\nimport { ACCORDION_CONTROL } from './types';\r\n\r\n/**\r\n * @category control\r\n */\r\n@Component({\r\n selector: 'ngn-accordion-panel',\r\n imports: [NgTemplateOutlet, NgnPt, NgnDefer, NgnTemplate, NgnIcon],\r\n templateUrl: './accordion-panel.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [provideSelf(NgnAccordionPanel)],\r\n})\r\nexport class NgnAccordionPanel extends AccordionTemplates {\r\n protected readonly theme = this.injectThemeTemplate(accordionPanelControlTemplate, 'root');\r\n\r\n private readonly _accordionControl = inject(ACCORDION_CONTROL);\r\n\r\n /**\r\n * The unique identifier for the accordion panel.\r\n * @default generateElementId()\r\n */\r\n public readonly panelId = input<string>(generateElementId());\r\n /**\r\n * Whether to lazily load the content of the panel when expanded.\r\n * @default false\r\n */\r\n public readonly lazy = input(null, { transform: booleanAttribute });\r\n /**\r\n * Whether to cache the content of the panel when {@link lazy} is enabled and the panel is closed.\r\n * @default false\r\n */\r\n public readonly cache = input(null, { transform: booleanAttribute });\r\n /**\r\n * The header text for the accordion panel.\r\n */\r\n public readonly header = input<string>();\r\n /**\r\n * Whether the accordion panel is disabled. Disabling will prevent user interaction,\r\n * but not automatically close the panel if it was already expanded, or is expanded programatically.\r\n * @default false\r\n */\r\n public readonly disabled = input(false, { transform: booleanAttribute });\r\n\r\n protected readonly iconExpanded = this._accordionControl.iconExpanded;\r\n protected readonly iconCollapsed = this._accordionControl.iconCollapsed;\r\n protected readonly _contentViewChild = viewChild.required<ElementRef<HTMLElement>>('content');\r\n\r\n protected readonly expanded = computed(() =>\r\n this._accordionControl.expandedPanels().includes(this.panelId())\r\n );\r\n\r\n protected readonly headerId = computed(() => `${this.panelId()}-accordionpanel-header`);\r\n protected readonly contentId = computed(() => `${this.panelId()}-accordionpanel-content`);\r\n\r\n protected readonly afterTransitionExpanded = signal<boolean>(false);\r\n\r\n protected readonly lazyInt = computed(() => this.lazy() ?? this._accordionControl.lazy());\r\n protected readonly cacheInt = computed(() => this.cache() ?? this._accordionControl.cache());\r\n\r\n constructor() {\r\n super();\r\n afterRenderEffect(() => {\r\n if (!this.lazyInt() || this.cacheInt()) {\r\n return;\r\n }\r\n if (this.expanded()) {\r\n this.afterTransitionExpanded.set(true);\r\n } else {\r\n requestAnimationFrame(() => {\r\n const allAnimationsDone = Promise.all(\r\n this._contentViewChild()\r\n .nativeElement.getAnimations()\r\n .map(x => x.finished)\r\n );\r\n allAnimationsDone\r\n .then(() => {\r\n this.afterTransitionExpanded.set(false);\r\n })\r\n .catch(() => {\r\n // ignore cancelled animation\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Toggles the expanded state of the accordion panel.\r\n */\r\n public toggle() {\r\n this._accordionControl.togglePanel(this.panelId());\r\n }\r\n}\r\n","<header>\r\n <button\r\n [ptInt]=\"this\"\r\n [ptClass]=\"{\r\n header: true,\r\n 'header-disabled': disabled(),\r\n }\"\r\n [id]=\"headerId()\"\r\n [disabled]=\"disabled()\"\r\n [aria-expanded]=\"expanded()\"\r\n (click)=\"toggle()\"\r\n [attr.aria-controls]=\"contentId()\"\r\n >\r\n @if (headerTemplate()) {\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n headerTemplate();\r\n context: { $implicit: { panelId: panelId(), text: header(), expanded: expanded() } }\r\n \"\r\n ></ng-container>\r\n }\r\n <ngn-icon\r\n [defaultIcon]=\"expanded() ? 'chevron_up' : 'chevron_down'\"\r\n [icon]=\"expanded() ? iconExpanded() : iconCollapsed()\"\r\n />\r\n </button>\r\n</header>\r\n\r\n<div\r\n [ptInt]=\"this\"\r\n [ptClass]=\"{\r\n 'content-expander': true,\r\n 'content-expander-collapsed': !expanded(),\r\n }\"\r\n #content\r\n>\r\n <div\r\n [ptInt]=\"this\"\r\n [ptClass]=\"'content'\"\r\n [id]=\"contentId()\"\r\n [attr.aria-labelledby]=\"headerId()\"\r\n [aria-hidden]=\"!expanded()\"\r\n role=\"region\"\r\n >\r\n <ngn-defer\r\n [lazyContent]=\"contentTemplate()\"\r\n [open]=\"lazyInt() && !cacheInt() ? afterTransitionExpanded() : expanded()\"\r\n [hiddenOnClosed]=\"false\"\r\n [cache]=\"cacheInt()\"\r\n [lazy]=\"lazyInt()\"\r\n >\r\n <ng-content />\r\n </ngn-defer>\r\n </div>\r\n</div>\r\n\r\n<ng-template #defaultHeaderTemplate let-header [ngnTemplate]=\"templateTypes.header\">\r\n <span [ptInt]=\"this\" [ptClass]=\"'header-text'\">\r\n {{ header.text }}\r\n </span>\r\n</ng-template>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -128,7 +128,7 @@ function elementsSizesSignal(element, active) {
|
|
|
128
128
|
return elementsSizesSignalInt(element, active);
|
|
129
129
|
}
|
|
130
130
|
function elementsSizesSignalInt(element, active) {
|
|
131
|
-
const sizeSignal = signal([], { ...(ngDevMode ? { debugName: "sizeSignal" } : {}), equal: (a, b) => JSON.stringify(a) === JSON.stringify(b) });
|
|
131
|
+
const sizeSignal = signal([], { ...(ngDevMode ? { debugName: "sizeSignal" } : /* istanbul ignore next */ {}), equal: (a, b) => JSON.stringify(a) === JSON.stringify(b) });
|
|
132
132
|
let elements;
|
|
133
133
|
afterRenderEffect(() => {
|
|
134
134
|
resizeObserver.disconnect();
|
|
@@ -231,7 +231,7 @@ function domEventObservable(element, eventName, injector) {
|
|
|
231
231
|
function domEventSignal(element, eventName, injector) {
|
|
232
232
|
const inj = injector ?? inject(Injector);
|
|
233
233
|
const res = runInInjectionContext(inj, () => {
|
|
234
|
-
const sig = signal(null, ...(ngDevMode ? [{ debugName: "sig" }] : []));
|
|
234
|
+
const sig = signal(null, ...(ngDevMode ? [{ debugName: "sig" }] : /* istanbul ignore next */ []));
|
|
235
235
|
domEventObservable(element, eventName, inj).subscribe(value => {
|
|
236
236
|
sig.set(value);
|
|
237
237
|
});
|
|
@@ -250,11 +250,11 @@ function domEventHandler(element, eventName, handler, injector) {
|
|
|
250
250
|
const inj = injector ?? inject(Injector);
|
|
251
251
|
const destroyRef = inj.get(DestroyRef);
|
|
252
252
|
runInInjectionContext(inj, () => {
|
|
253
|
-
const destroyed = signal(false, ...(ngDevMode ? [{ debugName: "destroyed" }] : []));
|
|
253
|
+
const destroyed = signal(false, ...(ngDevMode ? [{ debugName: "destroyed" }] : /* istanbul ignore next */ []));
|
|
254
254
|
destroyRef.onDestroy(() => {
|
|
255
255
|
destroyed.set(true);
|
|
256
256
|
});
|
|
257
|
-
const elSig = computed(() => (destroyed() ? null : getElement(element)), ...(ngDevMode ? [{ debugName: "elSig" }] : []));
|
|
257
|
+
const elSig = computed(() => (destroyed() ? null : getElement(element)), ...(ngDevMode ? [{ debugName: "elSig" }] : /* istanbul ignore next */ []));
|
|
258
258
|
const elSigWithPrev = signalWithPrevious(elSig);
|
|
259
259
|
effect(() => {
|
|
260
260
|
const element = elSigWithPrev();
|
|
@@ -301,13 +301,13 @@ function injectThemeColors(controlName) {
|
|
|
301
301
|
}
|
|
302
302
|
|
|
303
303
|
class Platform {
|
|
304
|
-
_deviceType = signal('desktop', ...(ngDevMode ? [{ debugName: "_deviceType" }] : []));
|
|
304
|
+
_deviceType = signal('desktop', ...(ngDevMode ? [{ debugName: "_deviceType" }] : /* istanbul ignore next */ []));
|
|
305
305
|
isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
|
|
306
306
|
windowSize = this.isBrowser
|
|
307
307
|
? elementSizeSignal(document.body)
|
|
308
308
|
: signal({ width: 0, height: 0 });
|
|
309
|
-
width = computed(() => this.windowSize().width, ...(ngDevMode ? [{ debugName: "width" }] : []));
|
|
310
|
-
height = computed(() => this.windowSize().height, ...(ngDevMode ? [{ debugName: "height" }] : []));
|
|
309
|
+
width = computed(() => this.windowSize().width, ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
|
|
310
|
+
height = computed(() => this.windowSize().height, ...(ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []));
|
|
311
311
|
constructor() {
|
|
312
312
|
const doc = inject(DOCUMENT);
|
|
313
313
|
const win = doc.defaultView;
|
|
@@ -333,11 +333,11 @@ class Platform {
|
|
|
333
333
|
}
|
|
334
334
|
isTouchDevice = computed(() => {
|
|
335
335
|
return this._deviceType() === 'mobile' || this._deviceType() === 'tablet';
|
|
336
|
-
}, ...(ngDevMode ? [{ debugName: "isTouchDevice" }] : []));
|
|
337
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
338
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
336
|
+
}, ...(ngDevMode ? [{ debugName: "isTouchDevice" }] : /* istanbul ignore next */ []));
|
|
337
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: Platform, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
338
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: Platform });
|
|
339
339
|
}
|
|
340
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
340
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: Platform, decorators: [{
|
|
341
341
|
type: Injectable
|
|
342
342
|
}], ctorParameters: () => [] });
|
|
343
343
|
|
|
@@ -542,7 +542,7 @@ class ThemeService {
|
|
|
542
542
|
_config = inject(NGN_CONFIG);
|
|
543
543
|
_loadedScopes = new Set();
|
|
544
544
|
_document = inject(DOCUMENT);
|
|
545
|
-
activeTheme = signal(this._config.theme?.preset, ...(ngDevMode ? [{ debugName: "activeTheme" }] : []));
|
|
545
|
+
activeTheme = signal(this._config.theme?.preset, ...(ngDevMode ? [{ debugName: "activeTheme" }] : /* istanbul ignore next */ []));
|
|
546
546
|
constructor() {
|
|
547
547
|
if (!this._config.theme?.preset && !this._config.theme?.lazyLoaded) {
|
|
548
548
|
console.warn('No active theme found. Please provide a theme in the configuration or set lazyLoaded to true if you plan to load themes dynamically.');
|
|
@@ -613,10 +613,10 @@ class ThemeService {
|
|
|
613
613
|
namePrefix: this._config.theme.namePrefix,
|
|
614
614
|
});
|
|
615
615
|
}
|
|
616
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
617
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
616
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
617
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: ThemeService });
|
|
618
618
|
}
|
|
619
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
619
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: ThemeService, decorators: [{
|
|
620
620
|
type: Injectable
|
|
621
621
|
}], ctorParameters: () => [] });
|
|
622
622
|
|
|
@@ -632,14 +632,14 @@ function provideNgnControls(config, ...features) {
|
|
|
632
632
|
}
|
|
633
633
|
|
|
634
634
|
class NgnTemplate {
|
|
635
|
-
ngnTemplate = input.required(...(ngDevMode ? [{ debugName: "ngnTemplate" }] : []));
|
|
635
|
+
ngnTemplate = input.required(...(ngDevMode ? [{ debugName: "ngnTemplate" }] : /* istanbul ignore next */ []));
|
|
636
636
|
static ngTemplateContextGuard(dir, ctx) {
|
|
637
637
|
return true;
|
|
638
638
|
}
|
|
639
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
640
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.
|
|
639
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: NgnTemplate, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
640
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.2", type: NgnTemplate, isStandalone: true, selector: "ng-template[ngnTemplate]", inputs: { ngnTemplate: { classPropertyName: "ngnTemplate", publicName: "ngnTemplate", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 });
|
|
641
641
|
}
|
|
642
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
642
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.2", ngImport: i0, type: NgnTemplate, decorators: [{
|
|
643
643
|
type: Directive,
|
|
644
644
|
args: [{
|
|
645
645
|
selector: 'ng-template[ngnTemplate]',
|