@coreui/angular-pro 5.7.24 → 5.7.25

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.
@@ -15,7 +15,6 @@ import { DomSanitizer } from '@angular/platform-browser';
15
15
  import * as i1$1 from '@angular/router';
16
16
  import { RouterModule, Router, ActivatedRoute, NavigationEnd, RouterLink } from '@angular/router';
17
17
  import { BreakpointObserver } from '@angular/cdk/layout';
18
- import { trigger, state, style, transition, animate } from '@angular/animations';
19
18
  import { IconDirective } from '@coreui/icons-angular';
20
19
 
21
20
  var BreakpointInfix;
@@ -460,7 +459,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
460
459
  }]
461
460
  }] });
462
461
 
463
- let nextId$3 = 0;
462
+ let nextId$4 = 0;
464
463
  class AccordionItemComponent {
465
464
  #accordionService = inject(AccordionService);
466
465
  /**
@@ -481,7 +480,7 @@ class AccordionItemComponent {
481
480
  get visible() {
482
481
  return this.itemVisible();
483
482
  }
484
- contentId = `accordion-item-${nextId$3++}`;
483
+ contentId = `accordion-item-${nextId$4++}`;
485
484
  get itemContext() {
486
485
  return { $implicit: this.itemVisible() };
487
486
  }
@@ -12885,8 +12884,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
12885
12884
  }]
12886
12885
  }] });
12887
12886
 
12887
+ class NavGroupService {
12888
+ /**
12889
+ * Id of the open group at this level, `undefined` when none is open.
12890
+ */
12891
+ activeId = signal(undefined, /* @ts-ignore */
12892
+ ...(ngDevMode ? [{ debugName: "activeId" }] : /* istanbul ignore next */ []));
12893
+ /**
12894
+ * Opens the level owner within its own parent and cascades up to the root.
12895
+ * Replaced by the owning `c-nav-group`; stays a no-op for the root level.
12896
+ */
12897
+ openBranch = () => undefined;
12898
+ setActiveId(id) {
12899
+ this.activeId.set(id);
12900
+ }
12901
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavGroupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12902
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavGroupService });
12903
+ }
12904
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavGroupService, decorators: [{
12905
+ type: Injectable
12906
+ }] });
12907
+
12908
+ const DISABLED_ATTR_ELEMENTS = new Set(['button', 'fieldset', 'input', 'optgroup', 'option', 'select', 'textarea']);
12888
12909
  class NavLinkDirective {
12889
12910
  static ngAcceptInputType_disabled;
12911
+ #hostElement = inject(ElementRef);
12912
+ #navGroupService = inject(NavGroupService, { optional: true });
12913
+ #classObserver;
12914
+ constructor() {
12915
+ afterNextRender({
12916
+ read: () => {
12917
+ this.#observeActiveClass();
12918
+ }
12919
+ });
12920
+ }
12890
12921
  /**
12891
12922
  * Sets .nav-link class to the host
12892
12923
  * @returns boolean
@@ -12918,15 +12949,23 @@ class NavLinkDirective {
12918
12949
  ariaDisabled = null;
12919
12950
  attrDisabled = null;
12920
12951
  attrTabindex = null;
12921
- styleCursor = null;
12922
12952
  #disabledEffect = effect(() => {
12923
12953
  const disabled = this.disabled();
12924
- this.ariaDisabled = disabled || null;
12925
- this.attrDisabled = disabled ? '' : null;
12926
- this.attrTabindex = disabled ? -1 : (this.tabindex() ?? null);
12927
- this.styleCursor = disabled ? null : 'pointer';
12954
+ const tabindex = this.tabindex();
12955
+ const disabledAttrElement = DISABLED_ATTR_ELEMENTS.has(this.#tagName);
12956
+ this.ariaDisabled = (disabled && !disabledAttrElement) || null;
12957
+ this.attrDisabled = disabled && disabledAttrElement ? '' : null;
12958
+ this.attrTabindex = disabled && !disabledAttrElement ? -1 : (Number.isNaN(tabindex) ? null : (tabindex ?? null));
12928
12959
  }, /* @ts-ignore */
12929
12960
  ...(ngDevMode ? [{ debugName: "#disabledEffect" }] : /* istanbul ignore next */ []));
12961
+ #activeEffect = effect(() => {
12962
+ if (this.active()) {
12963
+ untracked(() => {
12964
+ this.#navGroupService?.openBranch();
12965
+ });
12966
+ }
12967
+ }, /* @ts-ignore */
12968
+ ...(ngDevMode ? [{ debugName: "#activeEffect" }] : /* istanbul ignore next */ []));
12930
12969
  hostClasses = computed(() => {
12931
12970
  return {
12932
12971
  'nav-link': this.cNavLink(),
@@ -12935,8 +12974,32 @@ class NavLinkDirective {
12935
12974
  };
12936
12975
  }, /* @ts-ignore */
12937
12976
  ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
12977
+ get #tagName() {
12978
+ return this.#hostElement.nativeElement.tagName.toLowerCase();
12979
+ }
12980
+ ngOnDestroy() {
12981
+ this.#classObserver?.disconnect();
12982
+ }
12983
+ #observeActiveClass() {
12984
+ const host = this.#hostElement.nativeElement;
12985
+ if (!this.#navGroupService) {
12986
+ return;
12987
+ }
12988
+ let wasActive = host.classList.contains('active');
12989
+ if (wasActive) {
12990
+ this.#navGroupService.openBranch();
12991
+ }
12992
+ this.#classObserver = new MutationObserver(() => {
12993
+ const active = host.classList.contains('active');
12994
+ if (active && !wasActive) {
12995
+ this.#navGroupService?.openBranch();
12996
+ }
12997
+ wasActive = active;
12998
+ });
12999
+ this.#classObserver.observe(host, { attributes: true, attributeFilter: ['class'] });
13000
+ }
12938
13001
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
12939
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: NavLinkDirective, isStandalone: true, selector: "[cNavLink]", inputs: { cNavLink: { classPropertyName: "cNavLink", publicName: "cNavLink", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.aria-current": "ariaCurrent()", "attr.aria-disabled": "ariaDisabled", "attr.disabled": "attrDisabled", "attr.tabindex": "attrTabindex", "style.cursor": "styleCursor" } }, ngImport: i0 });
13002
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: NavLinkDirective, isStandalone: true, selector: "[cNavLink]", inputs: { cNavLink: { classPropertyName: "cNavLink", publicName: "cNavLink", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.aria-current": "ariaCurrent()", "attr.aria-disabled": "ariaDisabled", "attr.disabled": "attrDisabled", "attr.tabindex": "attrTabindex" } }, ngImport: i0 });
12940
13003
  }
12941
13004
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavLinkDirective, decorators: [{
12942
13005
  type: Directive,
@@ -12947,19 +13010,182 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
12947
13010
  '[attr.aria-current]': 'ariaCurrent()',
12948
13011
  '[attr.aria-disabled]': 'ariaDisabled',
12949
13012
  '[attr.disabled]': 'attrDisabled',
12950
- '[attr.tabindex]': 'attrTabindex',
12951
- '[style.cursor]': 'styleCursor'
13013
+ '[attr.tabindex]': 'attrTabindex'
12952
13014
  }
12953
13015
  }]
12954
- }], propDecorators: { cNavLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "cNavLink", required: false }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], tabindex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabindex", required: false }] }] } });
13016
+ }], ctorParameters: () => [], propDecorators: { cNavLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "cNavLink", required: false }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], tabindex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabindex", required: false }] }] } });
13017
+
13018
+ class NavGroupItemsComponent {
13019
+ static ngAcceptInputType_compact;
13020
+ /**
13021
+ * Make nav group items more compact by cutting all `padding` in half.
13022
+ * @returns boolean
13023
+ * @default false
13024
+ */
13025
+ compact = input(false, { ...(ngDevMode ? { debugName: "compact" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
13026
+ hostClasses = computed(() => {
13027
+ return {
13028
+ 'nav-group-items': true,
13029
+ compact: this.compact()
13030
+ };
13031
+ }, /* @ts-ignore */
13032
+ ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
13033
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavGroupItemsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13034
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: NavGroupItemsComponent, isStandalone: true, selector: "c-nav-group-items", inputs: { compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:block}\n"] });
13035
+ }
13036
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavGroupItemsComponent, decorators: [{
13037
+ type: Component,
13038
+ args: [{ selector: 'c-nav-group-items', template: '<ng-content />', host: { '[class]': 'hostClasses()' }, styles: [":host{display:block}\n"] }]
13039
+ }], propDecorators: { compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }] } });
13040
+
13041
+ let nextId$3 = 0;
13042
+ class NavGroupComponent {
13043
+ static ngAcceptInputType_compact;
13044
+ static ngAcceptInputType_visible;
13045
+ #navGroupService = inject(NavGroupService);
13046
+ #parentNavGroupService = inject(NavGroupService, { optional: true, skipSelf: true });
13047
+ #id = `nav-group-${nextId$3++}`;
13048
+ constructor() {
13049
+ this.#navGroupService.openBranch = () => {
13050
+ this.openBranch();
13051
+ };
13052
+ }
13053
+ /**
13054
+ * Make nav group items more compact by cutting all `padding` in half.
13055
+ * @returns boolean
13056
+ * @default false
13057
+ */
13058
+ compact = input(false, { ...(ngDevMode ? { debugName: "compact" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
13059
+ /**
13060
+ * Set group toggler label.
13061
+ * @returns string
13062
+ */
13063
+ toggler = input(/* @ts-ignore */
13064
+ ...(ngDevMode ? [undefined, { debugName: "toggler" }] : /* istanbul ignore next */ []));
13065
+ /**
13066
+ * Template for the group toggler content, receives the visible state as `$implicit`.
13067
+ * @returns TemplateRef
13068
+ */
13069
+ togglerTemplate = input(/* @ts-ignore */
13070
+ ...(ngDevMode ? [undefined, { debugName: "togglerTemplate" }] : /* istanbul ignore next */ []));
13071
+ /**
13072
+ * Show nav group items. Sets the initial state, and follows every later change.
13073
+ * @returns boolean
13074
+ */
13075
+ visible = input(undefined, { ...(ngDevMode ? { debugName: "visible" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
13076
+ /**
13077
+ * Event emitted on visibility change.
13078
+ * @returns boolean
13079
+ */
13080
+ visibleChange = output();
13081
+ #uncontrolledVisible = signal(false, /* @ts-ignore */
13082
+ ...(ngDevMode ? [{ debugName: "#uncontrolledVisible" }] : /* istanbul ignore next */ []));
13083
+ display = signal(null, /* @ts-ignore */
13084
+ ...(ngDevMode ? [{ debugName: "display" }] : /* istanbul ignore next */ []));
13085
+ visibleState = computed(() => {
13086
+ const parent = this.#parentNavGroupService;
13087
+ return parent ? parent.activeId() === this.#id : this.#uncontrolledVisible();
13088
+ }, /* @ts-ignore */
13089
+ ...(ngDevMode ? [{ debugName: "visibleState" }] : /* istanbul ignore next */ []));
13090
+ hostClasses = computed(() => {
13091
+ return {
13092
+ 'nav-group': true,
13093
+ show: this.visibleState()
13094
+ };
13095
+ }, /* @ts-ignore */
13096
+ ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
13097
+ #visibleEffect = effect(() => {
13098
+ const visible = this.visible();
13099
+ if (visible === undefined) {
13100
+ return;
13101
+ }
13102
+ untracked(() => {
13103
+ this.#setVisible(visible);
13104
+ });
13105
+ }, /* @ts-ignore */
13106
+ ...(ngDevMode ? [{ debugName: "#visibleEffect" }] : /* istanbul ignore next */ []));
13107
+ toggleGroup(event) {
13108
+ event.preventDefault();
13109
+ const next = !this.visibleState();
13110
+ this.#setVisible(next);
13111
+ this.visibleChange.emit(next);
13112
+ }
13113
+ openBranch() {
13114
+ const parent = this.#parentNavGroupService;
13115
+ if (!parent) {
13116
+ this.#uncontrolledVisible.set(true);
13117
+ return;
13118
+ }
13119
+ parent.setActiveId(this.#id);
13120
+ parent.openBranch();
13121
+ }
13122
+ onCollapseChange(state) {
13123
+ this.display.set(state === 'collapsed' || state === 'open' ? null : 'block');
13124
+ }
13125
+ #setVisible(visible) {
13126
+ const parent = this.#parentNavGroupService;
13127
+ if (!parent) {
13128
+ this.#uncontrolledVisible.set(visible);
13129
+ return;
13130
+ }
13131
+ if (visible) {
13132
+ parent.setActiveId(this.#id);
13133
+ return;
13134
+ }
13135
+ if (parent.activeId() === this.#id) {
13136
+ parent.setActiveId(undefined);
13137
+ }
13138
+ }
13139
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13140
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: NavGroupComponent, isStandalone: true, selector: "c-nav-group", inputs: { compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, toggler: { classPropertyName: "toggler", publicName: "toggler", isSignal: true, isRequired: false, transformFunction: null }, togglerTemplate: { classPropertyName: "togglerTemplate", publicName: "togglerTemplate", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class": "hostClasses()" } }, providers: [NavGroupService], ngImport: i0, template: "@if (toggler() || togglerTemplate()) {\n <a\n (click)=\"toggleGroup($event)\"\n [attr.aria-expanded]=\"visibleState()\"\n class=\"nav-link nav-group-toggle\"\n href\n >\n @if (togglerTemplate(); as template) {\n <ng-container\n *ngTemplateOutlet=\"template; context: { $implicit: visibleState(), visible: visibleState() }\"\n />\n } @else {\n {{ toggler() }}\n }\n </a>\n}\n<c-nav-group-items\n (collapseChange)=\"onCollapseChange($event)\"\n [compact]=\"compact()\"\n [style.display]=\"display()\"\n [visible]=\"visibleState()\"\n cCollapse\n>\n <ng-content />\n</c-nav-group-items>\n", styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"], dependencies: [{ kind: "directive", type: CollapseDirective, selector: "[cCollapse]", inputs: ["animate", "horizontal", "visible", "navbar"], outputs: ["visibleChange", "collapseChange"], exportAs: ["cCollapse"] }, { kind: "component", type: NavGroupItemsComponent, selector: "c-nav-group-items", inputs: ["compact"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
13141
+ }
13142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavGroupComponent, decorators: [{
13143
+ type: Component,
13144
+ args: [{ selector: 'c-nav-group', imports: [CollapseDirective, NavGroupItemsComponent, NgTemplateOutlet], providers: [NavGroupService], host: { '[class]': 'hostClasses()' }, template: "@if (toggler() || togglerTemplate()) {\n <a\n (click)=\"toggleGroup($event)\"\n [attr.aria-expanded]=\"visibleState()\"\n class=\"nav-link nav-group-toggle\"\n href\n >\n @if (togglerTemplate(); as template) {\n <ng-container\n *ngTemplateOutlet=\"template; context: { $implicit: visibleState(), visible: visibleState() }\"\n />\n } @else {\n {{ toggler() }}\n }\n </a>\n}\n<c-nav-group-items\n (collapseChange)=\"onCollapseChange($event)\"\n [compact]=\"compact()\"\n [style.display]=\"display()\"\n [visible]=\"visibleState()\"\n cCollapse\n>\n <ng-content />\n</c-nav-group-items>\n", styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"] }]
13145
+ }], ctorParameters: () => [], propDecorators: { compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], toggler: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggler", required: false }] }], togglerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "togglerTemplate", required: false }] }], visible: [{ type: i0.Input, args: [{ isSignal: true, alias: "visible", required: false }] }], visibleChange: [{ type: i0.Output, args: ["visibleChange"] }] } });
12955
13146
 
12956
13147
  class NavItemComponent {
13148
+ static ngAcceptInputType_active;
13149
+ static ngAcceptInputType_disabled;
13150
+ static ngAcceptInputType_tabindex;
13151
+ /**
13152
+ * Toggle the active state for the nav link rendered for `href`.
13153
+ * @returns boolean
13154
+ * @default undefined
13155
+ */
13156
+ active = input(undefined, { ...(ngDevMode ? { debugName: "active" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
13157
+ /**
13158
+ * Set disabled attr for the nav link rendered for `href`.
13159
+ * @returns boolean
13160
+ * @default false
13161
+ */
13162
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
13163
+ /**
13164
+ * The href attribute of the nav link. Set it to render the nav link, otherwise the item projects its content as is.
13165
+ * @returns string
13166
+ */
13167
+ href = input(/* @ts-ignore */
13168
+ ...(ngDevMode ? [undefined, { debugName: "href" }] : /* istanbul ignore next */ []));
13169
+ /**
13170
+ * The tabindex attribute of the nav link rendered for `href`.
13171
+ * @returns number | undefined
13172
+ */
13173
+ tabindex = input(undefined, { ...(ngDevMode ? { debugName: "tabindex" } : /* istanbul ignore next */ {}), transform: numberAttribute });
12957
13174
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12958
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.4", type: NavItemComponent, isStandalone: true, selector: "c-nav-item", host: { classAttribute: "nav-item" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"] });
13175
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: NavItemComponent, isStandalone: true, selector: "c-nav-item", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "nav-item" }, ngImport: i0, template: "@if (href()) {\n <a\n [active]=\"active()\"\n [attr.href]=\"href()\"\n [disabled]=\"disabled()\"\n [tabindex]=\"tabindex()\"\n cNavLink\n >\n <ng-container *ngTemplateOutlet=\"content\" />\n </a>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n", styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"], dependencies: [{ kind: "directive", type: NavLinkDirective, selector: "[cNavLink]", inputs: ["cNavLink", "active", "disabled", "tabindex"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
12959
13176
  }
12960
13177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavItemComponent, decorators: [{
12961
13178
  type: Component,
12962
- args: [{ selector: 'c-nav-item', template: '<ng-content />', host: { class: 'nav-item' }, styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"] }]
13179
+ args: [{ selector: 'c-nav-item', imports: [NavLinkDirective, NgTemplateOutlet], host: { class: 'nav-item' }, template: "@if (href()) {\n <a\n [active]=\"active()\"\n [attr.href]=\"href()\"\n [disabled]=\"disabled()\"\n [tabindex]=\"tabindex()\"\n cNavLink\n >\n <ng-container *ngTemplateOutlet=\"content\" />\n </a>\n} @else {\n <ng-container *ngTemplateOutlet=\"content\" />\n}\n\n<ng-template #content>\n <ng-content />\n</ng-template>\n", styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"] }]
13180
+ }], propDecorators: { active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], tabindex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabindex", required: false }] }] } });
13181
+
13182
+ class NavTitleComponent {
13183
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13184
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.4", type: NavTitleComponent, isStandalone: true, selector: "c-nav-title", host: { classAttribute: "nav-title" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"] });
13185
+ }
13186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavTitleComponent, decorators: [{
13187
+ type: Component,
13188
+ args: [{ selector: 'c-nav-title', template: '<ng-content />', host: { class: 'nav-title' }, styles: [":host{display:list-item;text-align:match-parent;text-align:-webkit-match-parent}\n"] }]
12963
13189
  }] });
12964
13190
 
12965
13191
  class NavComponent {
@@ -12969,6 +13195,13 @@ class NavComponent {
12969
13195
  */
12970
13196
  layout = input(/* @ts-ignore */
12971
13197
  ...(ngDevMode ? [undefined, { debugName: "layout" }] : /* istanbul ignore next */ []));
13198
+ /**
13199
+ * Default role for nav.
13200
+ * @returns string
13201
+ * @default 'navigation'
13202
+ */
13203
+ role = input('navigation', /* @ts-ignore */
13204
+ ...(ngDevMode ? [{ debugName: "role" }] : /* istanbul ignore next */ []));
12972
13205
  /**
12973
13206
  * Set the nav variant to tabs or pills.
12974
13207
  * @default undefined
@@ -12981,25 +13214,32 @@ class NavComponent {
12981
13214
  return {
12982
13215
  nav: true,
12983
13216
  [`nav-${layout}`]: !!layout,
13217
+ 'nav-enclosed': variant === 'enclosed' || variant === 'enclosed-pills',
12984
13218
  [`nav-${variant}`]: !!variant
12985
13219
  };
12986
13220
  }, /* @ts-ignore */
12987
13221
  ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
12988
13222
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12989
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: NavComponent, isStandalone: true, selector: "c-nav", inputs: { layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" }, classAttribute: "nav" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host .nav-link:focus{outline:0}:host.nav-underline-border{column-gap:0}\n"] });
13223
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: NavComponent, isStandalone: true, selector: "c-nav", inputs: { layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.role": "role()" }, classAttribute: "nav" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host .nav-link:focus{outline:0}:host.nav-underline-border{column-gap:0}\n"] });
12990
13224
  }
12991
13225
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavComponent, decorators: [{
12992
13226
  type: Component,
12993
- args: [{ selector: 'c-nav', template: '<ng-content />', host: { class: 'nav', '[class]': 'hostClasses()' }, styles: [":host .nav-link:focus{outline:0}:host.nav-underline-border{column-gap:0}\n"] }]
12994
- }], propDecorators: { layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
13227
+ args: [{ selector: 'c-nav', template: '<ng-content />', host: { class: 'nav', '[class]': 'hostClasses()', '[attr.role]': 'role()' }, styles: [":host .nav-link:focus{outline:0}:host.nav-underline-border{column-gap:0}\n"] }]
13228
+ }], propDecorators: { layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
12995
13229
 
12996
13230
  class NavModule {
12997
13231
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12998
13232
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.4", ngImport: i0, type: NavModule, imports: [NavComponent,
13233
+ NavGroupComponent,
13234
+ NavGroupItemsComponent,
12999
13235
  NavItemComponent,
13000
- NavLinkDirective], exports: [NavComponent,
13236
+ NavLinkDirective,
13237
+ NavTitleComponent], exports: [NavComponent,
13238
+ NavGroupComponent,
13239
+ NavGroupItemsComponent,
13001
13240
  NavItemComponent,
13002
- NavLinkDirective] });
13241
+ NavLinkDirective,
13242
+ NavTitleComponent] });
13003
13243
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavModule });
13004
13244
  }
13005
13245
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NavModule, decorators: [{
@@ -13007,13 +13247,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
13007
13247
  args: [{
13008
13248
  imports: [
13009
13249
  NavComponent,
13250
+ NavGroupComponent,
13251
+ NavGroupItemsComponent,
13010
13252
  NavItemComponent,
13011
- NavLinkDirective
13253
+ NavLinkDirective,
13254
+ NavTitleComponent
13012
13255
  ],
13013
13256
  exports: [
13014
13257
  NavComponent,
13258
+ NavGroupComponent,
13259
+ NavGroupItemsComponent,
13015
13260
  NavItemComponent,
13016
- NavLinkDirective
13261
+ NavLinkDirective,
13262
+ NavTitleComponent
13017
13263
  ]
13018
13264
  }]
13019
13265
  }] });
@@ -17433,7 +17679,7 @@ class SidebarComponent {
17433
17679
  }
17434
17680
  }
17435
17681
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17436
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SidebarComponent, isStandalone: true, selector: "c-sidebar", inputs: { colorScheme: { classPropertyName: "colorScheme", publicName: "colorScheme", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, narrowInput: { classPropertyName: "narrowInput", publicName: "narrow", isSignal: true, isRequired: false, transformFunction: null }, overlaid: { classPropertyName: "overlaid", publicName: "overlaid", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, unfoldableInput: { classPropertyName: "unfoldableInput", publicName: "unfoldable", isSignal: true, isRequired: false, transformFunction: null }, visibleInput: { classPropertyName: "visibleInput", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class": "hostClasses()", "attr.inert": "!this.sidebarState.visible || null" }, classAttribute: "sidebar" }, exportAs: ["cSidebar"], usesOnChanges: true, ngImport: i0, template: '<ng-content />', isInline: true, changeDetection: i0.ChangeDetectionStrategy.Eager });
17682
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SidebarComponent, isStandalone: true, selector: "c-sidebar", inputs: { colorScheme: { classPropertyName: "colorScheme", publicName: "colorScheme", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, narrowInput: { classPropertyName: "narrowInput", publicName: "narrow", isSignal: true, isRequired: false, transformFunction: null }, overlaid: { classPropertyName: "overlaid", publicName: "overlaid", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, unfoldableInput: { classPropertyName: "unfoldableInput", publicName: "unfoldable", isSignal: true, isRequired: false, transformFunction: null }, visibleInput: { classPropertyName: "visibleInput", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class": "hostClasses()", "attr.inert": "!this.sidebarState.visible || null" }, classAttribute: "sidebar" }, exportAs: ["cSidebar"], usesOnChanges: true, ngImport: i0, template: '<ng-content />', isInline: true });
17437
17683
  }
17438
17684
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarComponent, decorators: [{
17439
17685
  type: Component,
@@ -17441,7 +17687,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
17441
17687
  selector: 'c-sidebar',
17442
17688
  exportAs: 'cSidebar',
17443
17689
  template: '<ng-content />',
17444
- changeDetection: ChangeDetectionStrategy.Eager,
17445
17690
  host: {
17446
17691
  class: 'sidebar',
17447
17692
  '[class]': 'hostClasses()',
@@ -17783,11 +18028,11 @@ class SidebarNavLinkComponent {
17783
18028
  this.linkClick?.emit();
17784
18029
  }
17785
18030
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarNavLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17786
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: SidebarNavLinkComponent, isStandalone: true, selector: "c-sidebar-nav-link", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { linkClick: "linkClick" }, providers: [SidebarNavHelper], ngImport: i0, template: "@let linkItem = item() ?? {};\n\n@switch (linkType) {\n @case ('disabled') {\n <a [cHtmlAttr]=\"linkItem.attributes ?? {}\" [class]=\"linkItem | cSidebarNavLink\">\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: linkItem }\" />\n <c-sidebar-nav-link-content [item]=\"linkItem\" />\n @if (linkItem.badge) {\n <span [class]=\"linkItem | cSidebarNavBadge\">{{ linkItem.badge?.text }}</span>\n }\n </a>\n }\n @case ('external') {\n <a\n (click)=\"linkClicked()\"\n [cHtmlAttr]=\"linkItem.attributes ?? {}\"\n [href]=\"href\"\n [class]=\"linkItem | cSidebarNavLink\"\n >\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: linkItem }\" />\n <c-sidebar-nav-link-content [item]=\"linkItem\" />\n @if (linkItem.badge) {\n <span [class]=\"linkItem | cSidebarNavBadge\">{{ linkItem.badge?.text }}</span>\n }\n </a>\n }\n @default {\n <a\n (click)=\"linkClicked()\"\n [cHtmlAttr]=\"linkItem.attributes ?? {}\"\n [fragment]=\"$safeNavigationMigration(linkItem.linkProps?.fragment)\"\n [class]=\"linkItem | cSidebarNavLink\"\n [preserveFragment]=\"linkItem.linkProps?.preserveFragment ?? false\"\n [queryParamsHandling]=\"$safeNavigationMigration(linkItem.linkProps?.queryParamsHandling)\"\n [queryParams]=\"linkItem.linkProps?.queryParams ?? null\"\n [replaceUrl]=\"linkItem.linkProps?.replaceUrl ?? false\"\n [routerLinkActiveOptions]=\"linkItem.linkProps?.routerLinkActiveOptions ?? { exact: false }\"\n [routerLink]=\"linkItem.url\"\n [skipLocationChange]=\"linkItem.linkProps?.skipLocationChange ?? false\"\n [state]=\"linkItem.linkProps?.state ?? {}\"\n [target]=\"$safeNavigationMigration(linkItem.attributes?.['target'])\"\n routerLinkActive=\"active\"\n >\n <!-- [class.active]=\"linkActive\"-->\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: linkItem }\" />\n <c-sidebar-nav-link-content [item]=\"linkItem\" />\n @if (linkItem.badge) {\n <span [class]=\"linkItem | cSidebarNavBadge\">{{ linkItem.badge?.text }}</span>\n }\n </a>\n }\n}\n<ng-template #iconTemplate let-item>\n <!-- <i *ngIf=\"item?.icon\" [class]=\"item | cSidebarNavIcon\"></i>-->\n @if (item?.icon) {\n <span class=\"nav-icon\">\n <span [class]=\"item.icon ?? ''\"></span>\n </span>\n }\n @if (item?.iconComponent) {\n <svg\n [cIcon]=\"$safeNavigationMigration(item.iconComponent?.content)\"\n [customClasses]=\"item | cSidebarNavIcon\"\n [name]=\"$safeNavigationMigration(item.iconComponent?.name)\"\n ></svg>\n }\n @if (!item?.icon && !item?.iconComponent) {\n <span [class]=\"item | cSidebarNavIcon\"></span>\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: i1$1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { kind: "directive", type: IconDirective, selector: "svg[cIcon]", inputs: ["cIcon", "customClasses", "size", "title", "height", "width", "name", "viewBox", "xmlns", "pointer-events", "role"], exportAs: ["cIcon"] }, { kind: "component", type: SidebarNavLinkContentComponent, selector: "c-sidebar-nav-link-content", inputs: ["item"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: SidebarNavLinkPipe, name: "cSidebarNavLink" }, { kind: "pipe", type: SidebarNavBadgePipe, name: "cSidebarNavBadge" }, { kind: "pipe", type: SidebarNavIconPipe, name: "cSidebarNavIcon" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
18031
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: SidebarNavLinkComponent, isStandalone: true, selector: "c-sidebar-nav-link", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { linkClick: "linkClick" }, providers: [SidebarNavHelper], ngImport: i0, template: "@let linkItem = item() ?? {};\n\n@switch (linkType) {\n @case ('disabled') {\n <a [cHtmlAttr]=\"linkItem.attributes ?? {}\" [class]=\"linkItem | cSidebarNavLink\">\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: linkItem }\" />\n <c-sidebar-nav-link-content [item]=\"linkItem\" />\n @if (linkItem.badge) {\n <span [class]=\"linkItem | cSidebarNavBadge\">{{ linkItem.badge?.text }}</span>\n }\n </a>\n }\n @case ('external') {\n <a\n (click)=\"linkClicked()\"\n [cHtmlAttr]=\"linkItem.attributes ?? {}\"\n [href]=\"href\"\n [class]=\"linkItem | cSidebarNavLink\"\n >\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: linkItem }\" />\n <c-sidebar-nav-link-content [item]=\"linkItem\" />\n @if (linkItem.badge) {\n <span [class]=\"linkItem | cSidebarNavBadge\">{{ linkItem.badge?.text }}</span>\n }\n </a>\n }\n @default {\n <a\n (click)=\"linkClicked()\"\n [cHtmlAttr]=\"linkItem.attributes ?? {}\"\n [fragment]=\"$safeNavigationMigration(linkItem.linkProps?.fragment)\"\n [class]=\"linkItem | cSidebarNavLink\"\n [preserveFragment]=\"linkItem.linkProps?.preserveFragment ?? false\"\n [queryParamsHandling]=\"$safeNavigationMigration(linkItem.linkProps?.queryParamsHandling)\"\n [queryParams]=\"linkItem.linkProps?.queryParams ?? null\"\n [replaceUrl]=\"linkItem.linkProps?.replaceUrl ?? false\"\n [routerLinkActiveOptions]=\"linkItem.linkProps?.routerLinkActiveOptions ?? { exact: false }\"\n [routerLink]=\"linkItem.url\"\n [skipLocationChange]=\"linkItem.linkProps?.skipLocationChange ?? false\"\n [state]=\"linkItem.linkProps?.state ?? {}\"\n [target]=\"$safeNavigationMigration(linkItem.attributes?.['target'])\"\n routerLinkActive=\"active\"\n >\n <!-- [class.active]=\"linkActive\"-->\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: linkItem }\" />\n <c-sidebar-nav-link-content [item]=\"linkItem\" />\n @if (linkItem.badge) {\n <span [class]=\"linkItem | cSidebarNavBadge\">{{ linkItem.badge?.text }}</span>\n }\n </a>\n }\n}\n<ng-template #iconTemplate let-item>\n <!-- <i *ngIf=\"item?.icon\" [class]=\"item | cSidebarNavIcon\"></i>-->\n @if (item?.icon) {\n <span class=\"nav-icon\">\n <span [class]=\"item.icon ?? ''\"></span>\n </span>\n }\n @if (item?.iconComponent) {\n <svg\n [cIcon]=\"$safeNavigationMigration(item.iconComponent?.content)\"\n [customClasses]=\"item | cSidebarNavIcon\"\n [name]=\"$safeNavigationMigration(item.iconComponent?.name)\"\n ></svg>\n }\n @if (!item?.icon && !item?.iconComponent) {\n <span [class]=\"item | cSidebarNavIcon\"></span>\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: i1$1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: HtmlAttributesDirective, selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { kind: "directive", type: IconDirective, selector: "svg[cIcon]", inputs: ["cIcon", "customClasses", "size", "title", "height", "width", "name", "viewBox", "xmlns", "pointer-events", "role"], exportAs: ["cIcon"] }, { kind: "component", type: SidebarNavLinkContentComponent, selector: "c-sidebar-nav-link-content", inputs: ["item"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: SidebarNavLinkPipe, name: "cSidebarNavLink" }, { kind: "pipe", type: SidebarNavBadgePipe, name: "cSidebarNavBadge" }, { kind: "pipe", type: SidebarNavIconPipe, name: "cSidebarNavIcon" }] });
17787
18032
  }
17788
18033
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarNavLinkComponent, decorators: [{
17789
18034
  type: Component,
17790
- args: [{ selector: 'c-sidebar-nav-link', providers: [SidebarNavHelper], changeDetection: ChangeDetectionStrategy.Eager, imports: [
18035
+ args: [{ selector: 'c-sidebar-nav-link', providers: [SidebarNavHelper], imports: [
17791
18036
  RouterModule,
17792
18037
  HtmlAttributesDirective,
17793
18038
  IconDirective,
@@ -17960,7 +18205,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
17960
18205
 
17961
18206
  class SidebarNavGroupComponent {
17962
18207
  #router = inject(Router);
17963
- #renderer = inject(Renderer2);
17964
18208
  #hostElement = inject(ElementRef);
17965
18209
  #sidebarNavGroupService = inject(SidebarNavGroupService);
17966
18210
  helper = inject(SidebarNavHelper);
@@ -18000,7 +18244,6 @@ class SidebarNavGroupComponent {
18000
18244
  };
18001
18245
  }, /* @ts-ignore */
18002
18246
  ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
18003
- sidebarNav = viewChild.required(forwardRef(() => SidebarNavComponent), { ...(ngDevMode ? { debugName: "sidebarNav" } : /* istanbul ignore next */ {}), read: ElementRef });
18004
18247
  navigationEndObservable;
18005
18248
  navSubscription;
18006
18249
  navGroupSubscription;
@@ -18008,7 +18251,7 @@ class SidebarNavGroupComponent {
18008
18251
  ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
18009
18252
  navItems = signal([], /* @ts-ignore */
18010
18253
  ...(ngDevMode ? [{ debugName: "navItems" }] : /* istanbul ignore next */ []));
18011
- display = signal({ display: 'block' }, /* @ts-ignore */
18254
+ display = signal(null, /* @ts-ignore */
18012
18255
  ...(ngDevMode ? [{ debugName: "display" }] : /* istanbul ignore next */ []));
18013
18256
  ngOnInit() {
18014
18257
  this.navItems.set([...(this.item()?.children ?? [])]);
@@ -18043,6 +18286,10 @@ class SidebarNavGroupComponent {
18043
18286
  });
18044
18287
  }
18045
18288
  openGroup(open) {
18289
+ if (this.open() !== undefined && this.open() !== open) {
18290
+ // the group drops `show` in the same pass, hiding the nav before cCollapse can measure it
18291
+ this.display.set('block');
18292
+ }
18046
18293
  this.open.set(open);
18047
18294
  }
18048
18295
  toggleGroup($event) {
@@ -18055,64 +18302,26 @@ class SidebarNavGroupComponent {
18055
18302
  ngOnDestroy() {
18056
18303
  this.navSubscription?.unsubscribe();
18057
18304
  }
18058
- onAnimationStart($event) {
18059
- this.display.set({ display: 'block' });
18060
- setTimeout(() => {
18061
- const host = this.sidebarNav()?.nativeElement;
18062
- if ($event.toState === 'open' && host) {
18063
- this.#renderer.setStyle(host, 'height', `${host['scrollHeight']}px`);
18064
- }
18065
- });
18066
- }
18067
- onAnimationDone($event) {
18068
- setTimeout(() => {
18069
- const host = this.sidebarNav()?.nativeElement;
18070
- if ($event.toState === 'open' && host) {
18071
- this.#renderer.setStyle(host, 'height', 'auto');
18072
- }
18073
- if ($event.toState === 'closed') {
18074
- setTimeout(() => {
18075
- this.display.set(null);
18076
- });
18077
- }
18078
- });
18305
+ onCollapseChange(state) {
18306
+ this.display.set(state === 'collapsed' || state === 'open' ? null : 'block');
18079
18307
  }
18080
18308
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarNavGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18081
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: SidebarNavGroupComponent, isStandalone: true, selector: "c-sidebar-nav-group", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, dropdownMode: { classPropertyName: "dropdownMode", publicName: "dropdownMode", isSignal: true, isRequired: false, transformFunction: null }, show: { classPropertyName: "show", publicName: "show", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, providers: [SidebarNavHelper], viewQueries: [{ propertyName: "sidebarNav", first: true, predicate: i0.forwardRef(() => SidebarNavComponent), descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "@let grpItem = item();\n<a\n (click)=\"toggleGroup($event)\"\n [cHtmlAttr]=\"$safeNavigationMigration(grpItem?.attributes)\"\n class=\"nav-link nav-group-toggle\"\n href\n>\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: grpItem }\" />\n <ng-container>{{ grpItem?.name }}</ng-container>\n @if (grpItem?.badge) {\n <span [class]=\"grpItem | cSidebarNavBadge\">{{ grpItem?.badge?.text }}</span>\n }\n</a>\n<c-sidebar-nav\n (@openClose.done)=\"onAnimationDone($event)\"\n (@openClose.start)=\"onAnimationStart($event)\"\n [@openClose]=\"open() ? 'open' : 'closed'\"\n [compact]=\"compact()\"\n [dropdownMode]=\"dropdownMode()\"\n [groupItems]=\"true\"\n [navItems]=\"navItems()\"\n [style]=\"display()\"\n/>\n\n<ng-template #iconTemplate let-item>\n <!-- <i *ngIf=\"item?.icon\" [class]=\"item | cSidebarNavIcon\"></i>-->\n @if (item?.icon) {\n <span class=\"nav-icon\">\n <span [class]=\"item.icon ?? ''\"></span>\n </span>\n }\n @if (item?.iconComponent) {\n <svg\n [cIcon]=\"$safeNavigationMigration(item.iconComponent?.content)\"\n [customClasses]=\"item | cSidebarNavIcon\"\n [name]=\"$safeNavigationMigration(item.iconComponent?.name)\"\n />\n }\n @if (!item?.icon && !item?.iconComponent) {\n <span [class]=\"item | cSidebarNavIcon\"></span>\n }\n</ng-template>\n", styles: [".nav-group-toggle{cursor:pointer}.nav-group-items{display:block}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => HtmlAttributesDirective), selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { kind: "directive", type: i0.forwardRef(() => IconDirective), selector: "svg[cIcon]", inputs: ["cIcon", "customClasses", "size", "title", "height", "width", "name", "viewBox", "xmlns", "pointer-events", "role"], exportAs: ["cIcon"] }, { kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavComponent), selector: "c-sidebar-nav", inputs: ["navItems", "dropdownMode", "groupItems", "compact", "role"] }, { kind: "pipe", type: i0.forwardRef(() => SidebarNavIconPipe), name: "cSidebarNavIcon" }, { kind: "pipe", type: i0.forwardRef(() => SidebarNavBadgePipe), name: "cSidebarNavBadge" }], animations: [
18082
- trigger('openClose', [
18083
- state('open', style({
18084
- height: '*'
18085
- })),
18086
- state('closed', style({
18087
- height: '0px'
18088
- })),
18089
- transition('open <=> closed', [animate('.15s ease')])
18090
- ])
18091
- ], changeDetection: i0.ChangeDetectionStrategy.Eager });
18309
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: SidebarNavGroupComponent, isStandalone: true, selector: "c-sidebar-nav-group", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, dropdownMode: { classPropertyName: "dropdownMode", publicName: "dropdownMode", isSignal: true, isRequired: false, transformFunction: null }, show: { classPropertyName: "show", publicName: "show", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, providers: [SidebarNavHelper], ngImport: i0, template: "@let grpItem = item();\n<a\n (click)=\"toggleGroup($event)\"\n [cHtmlAttr]=\"$safeNavigationMigration(grpItem?.attributes)\"\n class=\"nav-link nav-group-toggle\"\n href\n>\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: grpItem }\" />\n <ng-container>{{ grpItem?.name }}</ng-container>\n @if (grpItem?.badge) {\n <span [class]=\"grpItem | cSidebarNavBadge\">{{ grpItem?.badge?.text }}</span>\n }\n</a>\n<c-sidebar-nav\n (collapseChange)=\"onCollapseChange($event)\"\n [compact]=\"compact()\"\n [dropdownMode]=\"dropdownMode()\"\n [groupItems]=\"true\"\n [navItems]=\"navItems()\"\n [style.display]=\"display()\"\n [visible]=\"!!open()\"\n cCollapse\n/>\n\n<ng-template #iconTemplate let-item>\n <!-- <i *ngIf=\"item?.icon\" [class]=\"item | cSidebarNavIcon\"></i>-->\n @if (item?.icon) {\n <span class=\"nav-icon\">\n <span [class]=\"item.icon ?? ''\"></span>\n </span>\n }\n @if (item?.iconComponent) {\n <svg\n [cIcon]=\"$safeNavigationMigration(item.iconComponent?.content)\"\n [customClasses]=\"item | cSidebarNavIcon\"\n [name]=\"$safeNavigationMigration(item.iconComponent?.name)\"\n />\n }\n @if (!item?.icon && !item?.iconComponent) {\n <span [class]=\"item | cSidebarNavIcon\"></span>\n }\n</ng-template>\n", styles: [".nav-group-items{display:block}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => CollapseDirective), selector: "[cCollapse]", inputs: ["animate", "horizontal", "visible", "navbar"], outputs: ["visibleChange", "collapseChange"], exportAs: ["cCollapse"] }, { kind: "directive", type: i0.forwardRef(() => HtmlAttributesDirective), selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { kind: "directive", type: i0.forwardRef(() => IconDirective), selector: "svg[cIcon]", inputs: ["cIcon", "customClasses", "size", "title", "height", "width", "name", "viewBox", "xmlns", "pointer-events", "role"], exportAs: ["cIcon"] }, { kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavComponent), selector: "c-sidebar-nav", inputs: ["navItems", "dropdownMode", "groupItems", "compact", "role"] }, { kind: "pipe", type: i0.forwardRef(() => SidebarNavIconPipe), name: "cSidebarNavIcon" }, { kind: "pipe", type: i0.forwardRef(() => SidebarNavBadgePipe), name: "cSidebarNavBadge" }] });
18092
18310
  }
18093
18311
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarNavGroupComponent, decorators: [{
18094
18312
  type: Component,
18095
18313
  args: [{ selector: 'c-sidebar-nav-group', providers: [SidebarNavHelper], imports: [
18314
+ CollapseDirective,
18096
18315
  HtmlAttributesDirective,
18097
18316
  IconDirective,
18098
18317
  NgTemplateOutlet,
18099
18318
  SidebarNavIconPipe,
18100
18319
  SidebarNavBadgePipe,
18101
18320
  forwardRef(() => SidebarNavComponent)
18102
- ], animations: [
18103
- trigger('openClose', [
18104
- state('open', style({
18105
- height: '*'
18106
- })),
18107
- state('closed', style({
18108
- height: '0px'
18109
- })),
18110
- transition('open <=> closed', [animate('.15s ease')])
18111
- ])
18112
- ], changeDetection: ChangeDetectionStrategy.Eager, host: {
18321
+ ], host: {
18113
18322
  '[class]': 'hostClasses()'
18114
- }, template: "@let grpItem = item();\n<a\n (click)=\"toggleGroup($event)\"\n [cHtmlAttr]=\"$safeNavigationMigration(grpItem?.attributes)\"\n class=\"nav-link nav-group-toggle\"\n href\n>\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: grpItem }\" />\n <ng-container>{{ grpItem?.name }}</ng-container>\n @if (grpItem?.badge) {\n <span [class]=\"grpItem | cSidebarNavBadge\">{{ grpItem?.badge?.text }}</span>\n }\n</a>\n<c-sidebar-nav\n (@openClose.done)=\"onAnimationDone($event)\"\n (@openClose.start)=\"onAnimationStart($event)\"\n [@openClose]=\"open() ? 'open' : 'closed'\"\n [compact]=\"compact()\"\n [dropdownMode]=\"dropdownMode()\"\n [groupItems]=\"true\"\n [navItems]=\"navItems()\"\n [style]=\"display()\"\n/>\n\n<ng-template #iconTemplate let-item>\n <!-- <i *ngIf=\"item?.icon\" [class]=\"item | cSidebarNavIcon\"></i>-->\n @if (item?.icon) {\n <span class=\"nav-icon\">\n <span [class]=\"item.icon ?? ''\"></span>\n </span>\n }\n @if (item?.iconComponent) {\n <svg\n [cIcon]=\"$safeNavigationMigration(item.iconComponent?.content)\"\n [customClasses]=\"item | cSidebarNavIcon\"\n [name]=\"$safeNavigationMigration(item.iconComponent?.name)\"\n />\n }\n @if (!item?.icon && !item?.iconComponent) {\n <span [class]=\"item | cSidebarNavIcon\"></span>\n }\n</ng-template>\n", styles: [".nav-group-toggle{cursor:pointer}.nav-group-items{display:block}\n"] }]
18115
- }], ctorParameters: () => [], propDecorators: { item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: false }] }], dropdownMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownMode", required: false }] }], show: [{ type: i0.Input, args: [{ isSignal: true, alias: "show", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], sidebarNav: [{ type: i0.ViewChild, args: [forwardRef(() => SidebarNavComponent), { ...{ read: ElementRef }, isSignal: true }] }] } });
18323
+ }, template: "@let grpItem = item();\n<a\n (click)=\"toggleGroup($event)\"\n [cHtmlAttr]=\"$safeNavigationMigration(grpItem?.attributes)\"\n class=\"nav-link nav-group-toggle\"\n href\n>\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: grpItem }\" />\n <ng-container>{{ grpItem?.name }}</ng-container>\n @if (grpItem?.badge) {\n <span [class]=\"grpItem | cSidebarNavBadge\">{{ grpItem?.badge?.text }}</span>\n }\n</a>\n<c-sidebar-nav\n (collapseChange)=\"onCollapseChange($event)\"\n [compact]=\"compact()\"\n [dropdownMode]=\"dropdownMode()\"\n [groupItems]=\"true\"\n [navItems]=\"navItems()\"\n [style.display]=\"display()\"\n [visible]=\"!!open()\"\n cCollapse\n/>\n\n<ng-template #iconTemplate let-item>\n <!-- <i *ngIf=\"item?.icon\" [class]=\"item | cSidebarNavIcon\"></i>-->\n @if (item?.icon) {\n <span class=\"nav-icon\">\n <span [class]=\"item.icon ?? ''\"></span>\n </span>\n }\n @if (item?.iconComponent) {\n <svg\n [cIcon]=\"$safeNavigationMigration(item.iconComponent?.content)\"\n [customClasses]=\"item | cSidebarNavIcon\"\n [name]=\"$safeNavigationMigration(item.iconComponent?.name)\"\n />\n }\n @if (!item?.icon && !item?.iconComponent) {\n <span [class]=\"item | cSidebarNavIcon\"></span>\n }\n</ng-template>\n", styles: [".nav-group-items{display:block}\n"] }]
18324
+ }], ctorParameters: () => [], propDecorators: { item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: false }] }], dropdownMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownMode", required: false }] }], show: [{ type: i0.Input, args: [{ isSignal: true, alias: "show", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }] } });
18116
18325
  class SidebarNavComponent {
18117
18326
  sidebar = inject(SidebarComponent, { optional: true });
18118
18327
  helper = inject(SidebarNavHelper);
@@ -18178,7 +18387,7 @@ class SidebarNavComponent {
18178
18387
  }
18179
18388
  }
18180
18389
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarNavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18181
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: SidebarNavComponent, isStandalone: true, selector: "c-sidebar-nav", inputs: { navItems: { classPropertyName: "navItems", publicName: "navItems", isSignal: true, isRequired: false, transformFunction: null }, dropdownMode: { classPropertyName: "dropdownMode", publicName: "dropdownMode", isSignal: true, isRequired: false, transformFunction: null }, groupItems: { classPropertyName: "groupItems", publicName: "groupItems", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.role": "role()" } }, providers: [SidebarNavGroupService], usesOnChanges: true, ngImport: i0, template: "@for (nItem of navItemsArray(); track nItem) {\n @switch (helper.itemType(nItem)) {\n @case ('group') {\n <c-sidebar-nav-group\n [dropdownMode]=\"dropdownMode()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n [compact]=\"compact()\"\n />\n }\n @case ('divider') {\n <c-sidebar-nav-divider\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('title') {\n <c-sidebar-nav-title\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('label') {\n <c-sidebar-nav-label\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('empty') {\n <ng-container />\n }\n @default {\n <c-sidebar-nav-link\n (linkClick)=\"hideMobile()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n }\n}\n<ng-content />\n", dependencies: [{ kind: "directive", type: i0.forwardRef(() => HtmlAttributesDirective), selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavLinkComponent), selector: "c-sidebar-nav-link", inputs: ["item"], outputs: ["linkClick"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavLabelComponent), selector: "c-sidebar-nav-label", inputs: ["item"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavTitleComponent), selector: "c-sidebar-nav-title", inputs: ["item"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavDividerComponent), selector: "c-sidebar-nav-divider", inputs: ["item"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavGroupComponent), selector: "c-sidebar-nav-group", inputs: ["item", "dropdownMode", "show", "compact"] }, { kind: "ngmodule", type: i0.forwardRef(() => RouterModule) }, { kind: "pipe", type: i0.forwardRef(() => SidebarNavItemClassPipe), name: "cSidebarNavItemClass" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
18390
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: SidebarNavComponent, isStandalone: true, selector: "c-sidebar-nav", inputs: { navItems: { classPropertyName: "navItems", publicName: "navItems", isSignal: true, isRequired: false, transformFunction: null }, dropdownMode: { classPropertyName: "dropdownMode", publicName: "dropdownMode", isSignal: true, isRequired: false, transformFunction: null }, groupItems: { classPropertyName: "groupItems", publicName: "groupItems", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.role": "role()" } }, providers: [NavGroupService, SidebarNavGroupService], usesOnChanges: true, ngImport: i0, template: "@for (nItem of navItemsArray(); track nItem) {\n @switch (helper.itemType(nItem)) {\n @case ('group') {\n <c-sidebar-nav-group\n [dropdownMode]=\"dropdownMode()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n [compact]=\"compact()\"\n />\n }\n @case ('divider') {\n <c-sidebar-nav-divider\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('title') {\n <c-sidebar-nav-title\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('label') {\n <c-sidebar-nav-label\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('empty') {\n <ng-container />\n }\n @default {\n <c-sidebar-nav-link\n (linkClick)=\"hideMobile()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n }\n}\n<ng-content />\n", styles: [":host .nav-item{display:block}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => HtmlAttributesDirective), selector: "[cHtmlAttr]", inputs: ["cHtmlAttr"], exportAs: ["cHtmlAttr"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavLinkComponent), selector: "c-sidebar-nav-link", inputs: ["item"], outputs: ["linkClick"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavLabelComponent), selector: "c-sidebar-nav-label", inputs: ["item"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavTitleComponent), selector: "c-sidebar-nav-title", inputs: ["item"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavDividerComponent), selector: "c-sidebar-nav-divider", inputs: ["item"] }, { kind: "component", type: i0.forwardRef(() => SidebarNavGroupComponent), selector: "c-sidebar-nav-group", inputs: ["item", "dropdownMode", "show", "compact"] }, { kind: "ngmodule", type: i0.forwardRef(() => RouterModule) }, { kind: "pipe", type: i0.forwardRef(() => SidebarNavItemClassPipe), name: "cSidebarNavItemClass" }] });
18182
18391
  }
18183
18392
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SidebarNavComponent, decorators: [{
18184
18393
  type: Component,
@@ -18194,7 +18403,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
18194
18403
  ], host: {
18195
18404
  '[class]': 'hostClasses()',
18196
18405
  '[attr.role]': 'role()'
18197
- }, changeDetection: ChangeDetectionStrategy.Eager, providers: [SidebarNavGroupService], template: "@for (nItem of navItemsArray(); track nItem) {\n @switch (helper.itemType(nItem)) {\n @case ('group') {\n <c-sidebar-nav-group\n [dropdownMode]=\"dropdownMode()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n [compact]=\"compact()\"\n />\n }\n @case ('divider') {\n <c-sidebar-nav-divider\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('title') {\n <c-sidebar-nav-title\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('label') {\n <c-sidebar-nav-label\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('empty') {\n <ng-container />\n }\n @default {\n <c-sidebar-nav-link\n (linkClick)=\"hideMobile()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n }\n}\n<ng-content />\n" }]
18406
+ }, providers: [NavGroupService, SidebarNavGroupService], template: "@for (nItem of navItemsArray(); track nItem) {\n @switch (helper.itemType(nItem)) {\n @case ('group') {\n <c-sidebar-nav-group\n [dropdownMode]=\"dropdownMode()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n [compact]=\"compact()\"\n />\n }\n @case ('divider') {\n <c-sidebar-nav-divider\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('title') {\n <c-sidebar-nav-title\n [cHtmlAttr]=\"nItem.attributes ?? {}\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('label') {\n <c-sidebar-nav-label\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n @case ('empty') {\n <ng-container />\n }\n @default {\n <c-sidebar-nav-link\n (linkClick)=\"hideMobile()\"\n [item]=\"nItem\"\n [class]=\"nItem | cSidebarNavItemClass\"\n />\n }\n }\n}\n<ng-content />\n", styles: [":host .nav-item{display:block}\n"] }]
18198
18407
  }], propDecorators: { navItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "navItems", required: false }] }], dropdownMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "dropdownMode", required: false }] }], groupItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupItems", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: false }] }] } });
18199
18408
 
18200
18409
  class SidebarModule {
@@ -20754,8 +20963,8 @@ class TabsListComponent {
20754
20963
  layout = input(/* @ts-ignore */
20755
20964
  ...(ngDevMode ? [undefined, { debugName: "layout" }] : /* istanbul ignore next */ []));
20756
20965
  /**
20757
- * Set the variant to tabs, pills or underline.
20758
- * @returns 'pills' | 'tabs' | 'underline' | 'underline-border' | undefined
20966
+ * Set the variant to tabs, pills, underline or enclosed.
20967
+ * @returns 'enclosed' | 'enclosed-pills' | 'pills' | 'tabs' | 'underline' | 'underline-border' | undefined
20759
20968
  * @default undefined
20760
20969
  */
20761
20970
  variant = input(/* @ts-ignore */
@@ -20772,6 +20981,7 @@ class TabsListComponent {
20772
20981
  return {
20773
20982
  nav: true,
20774
20983
  [`nav-${layout}`]: layout,
20984
+ 'nav-enclosed': variant === 'enclosed' || variant === 'enclosed-pills',
20775
20985
  [`nav-${variant}`]: variant
20776
20986
  };
20777
20987
  }, /* @ts-ignore */
@@ -21856,5 +22066,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
21856
22066
  * Generated bundle index. Do not edit.
21857
22067
  */
21858
22068
 
21859
- export { AccordionButtonDirective, AccordionComponent, AccordionItemComponent, AccordionModule, AlertComponent, AlertHeadingDirective, AlertLinkDirective, AlertModule, AlignDirective, AutocompleteDirective, AutocompleteModule, AvatarComponent, AvatarModule, BackdropService, BadgeComponent, BadgeModule, BgColorDirective, BorderDirective, BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbModule, BreadcrumbRouterComponent, BreadcrumbRouterService, BreakpointInfix, ButtonCloseDirective, ButtonDirective, ButtonGroupComponent, ButtonGroupModule, ButtonModule, ButtonToolbarComponent, CalendarComponent, CalendarModule, CalendarMonthComponent, CalendarNavigationComponent, CalloutComponent, CalloutModule, CardBodyComponent, CardComponent, CardFooterComponent, CardGroupComponent, CardHeaderActionsComponent, CardHeaderComponent, CardImgDirective, CardImgOverlayComponent, CardLinkDirective, CardModule, CardSubtitleDirective, CardTextDirective, CardTitleDirective, CarouselCaptionComponent, CarouselComponent, CarouselConfig, CarouselControlComponent, CarouselIndicatorsComponent, CarouselInnerComponent, CarouselItemComponent, CarouselModule, ClassToggleService, ColComponent, ColDirective, CollapseDirective, CollapseModule, ColorModeService, ContainerComponent, DatePickerComponent, DatePickerModule, DateRangePickerComponent, DateRangePickerModule, DropdownCloseDirective, DropdownComponent, DropdownDividerDirective, DropdownHeaderDirective, DropdownItemDirective, DropdownItemPlainDirective, DropdownMenuDirective, DropdownModule, DropdownService, DropdownToggleDirective, ElementCoverComponent, ElementCoverModule, ElementRefDirective, FooterComponent, FooterModule, FormCheckComponent, FormCheckInputDirective, FormCheckLabelDirective, FormControlDirective, FormDirective, FormFeedbackComponent, FormFloatingDirective, FormLabelDirective, FormModule, FormPasswordDirective, FormSelectDirective, FormTextDirective, GridModule, GutterDirective, HeaderBrandComponent, HeaderComponent, HeaderDividerComponent, HeaderModule, HeaderNavComponent, HeaderTextComponent, HeaderTogglerDirective, HtmlAttributesDirective, ImgDirective, ImgModule, InMemoryStorageService, InputGroupComponent, InputGroupTextDirective, IntersectionService, ListGroupDirective, ListGroupItemDirective, ListGroupModule, ListenersService, LoadingButtonComponent, LoadingButtonModule, LocalStorageService, ModalBodyComponent, ModalComponent, ModalContentComponent, ModalDialogComponent, ModalFooterComponent, ModalHeaderComponent, ModalModule, ModalService, ModalTitleDirective, ModalToggleDirective, MultiSelectComponent, MultiSelectModule, MultiSelectOptgroupComponent, MultiSelectOptgroupLabelComponent, MultiSelectOptionComponent, NavComponent, NavItemComponent, NavLinkDirective, NavModule, NavbarBrandDirective, NavbarComponent, NavbarModule, NavbarNavComponent, NavbarTextComponent, NavbarTogglerDirective, OffcanvasBodyComponent, OffcanvasComponent, OffcanvasHeaderComponent, OffcanvasModule, OffcanvasService, OffcanvasTitleDirective, OffcanvasToggleDirective, OneTimePasswordComponent, OneTimePasswordModule, OtpDirective, PageItemComponent, PageItemDirective, PageLinkDirective, PaginationComponent, PaginationModule, PlaceholderAnimationDirective, PlaceholderDirective, PlaceholderModule, PopoverComponent, PopoverDirective, PopoverModule, ProgressBarComponent, ProgressBarDirective, ProgressComponent, ProgressModule, ProgressStackedComponent, RangeSliderComponent, RangeSliderModule, RatingComponent, RatingModule, RoundedDirective, RowComponent, RowDirective, RtlService, SearchButtonComponent, SearchButtonModule, ShadowOnScrollDirective, SharedModule, SidebarBrandComponent, SidebarComponent, SidebarFooterComponent, SidebarHeaderComponent, SidebarModule, SidebarNavComponent, SidebarNavHelper, SidebarService, SidebarToggleDirective, SidebarTogglerDirective, SmartPaginationComponent, SmartPaginationModule, SmartTableComponent, SmartTableFilterComponent, SmartTableModule, SpinnerComponent, SpinnerModule, StepButtonDirective, StepperComponent, StepperModule, StepperStepComponent, TabContentComponent, TabContentRefDirective, TabDirective, TabPaneComponent, TabPanelComponent, TabService, TableActiveDirective, TableColorDirective, TableDirective, TableModule, Tabs2Module, TabsComponent, TabsContentComponent, TabsListComponent, TabsModule, TabsService, TemplateIdDirective, TextBgColorDirective, TextColorDirective, ThemeDirective, TimePickerComponent, TimePickerModule, ToastBodyComponent, ToastCloseDirective, ToastComponent, ToastContentComponent, ToastHeaderComponent, ToastModule, ToasterComponent, ToasterHostDirective, ToasterPlacement, ToasterService, TooltipComponent, TooltipDirective, TooltipModule, UIDService, UtilitiesModule, WidgetModule, WidgetStatAComponent, WidgetStatBComponent, WidgetStatCComponent, WidgetStatDComponent, WidgetStatEComponent, WidgetStatFComponent };
22069
+ export { AccordionButtonDirective, AccordionComponent, AccordionItemComponent, AccordionModule, AlertComponent, AlertHeadingDirective, AlertLinkDirective, AlertModule, AlignDirective, AutocompleteDirective, AutocompleteModule, AvatarComponent, AvatarModule, BackdropService, BadgeComponent, BadgeModule, BgColorDirective, BorderDirective, BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbModule, BreadcrumbRouterComponent, BreadcrumbRouterService, BreakpointInfix, ButtonCloseDirective, ButtonDirective, ButtonGroupComponent, ButtonGroupModule, ButtonModule, ButtonToolbarComponent, CalendarComponent, CalendarModule, CalendarMonthComponent, CalendarNavigationComponent, CalloutComponent, CalloutModule, CardBodyComponent, CardComponent, CardFooterComponent, CardGroupComponent, CardHeaderActionsComponent, CardHeaderComponent, CardImgDirective, CardImgOverlayComponent, CardLinkDirective, CardModule, CardSubtitleDirective, CardTextDirective, CardTitleDirective, CarouselCaptionComponent, CarouselComponent, CarouselConfig, CarouselControlComponent, CarouselIndicatorsComponent, CarouselInnerComponent, CarouselItemComponent, CarouselModule, ClassToggleService, ColComponent, ColDirective, CollapseDirective, CollapseModule, ColorModeService, ContainerComponent, DatePickerComponent, DatePickerModule, DateRangePickerComponent, DateRangePickerModule, DropdownCloseDirective, DropdownComponent, DropdownDividerDirective, DropdownHeaderDirective, DropdownItemDirective, DropdownItemPlainDirective, DropdownMenuDirective, DropdownModule, DropdownService, DropdownToggleDirective, ElementCoverComponent, ElementCoverModule, ElementRefDirective, FooterComponent, FooterModule, FormCheckComponent, FormCheckInputDirective, FormCheckLabelDirective, FormControlDirective, FormDirective, FormFeedbackComponent, FormFloatingDirective, FormLabelDirective, FormModule, FormPasswordDirective, FormSelectDirective, FormTextDirective, GridModule, GutterDirective, HeaderBrandComponent, HeaderComponent, HeaderDividerComponent, HeaderModule, HeaderNavComponent, HeaderTextComponent, HeaderTogglerDirective, HtmlAttributesDirective, ImgDirective, ImgModule, InMemoryStorageService, InputGroupComponent, InputGroupTextDirective, IntersectionService, ListGroupDirective, ListGroupItemDirective, ListGroupModule, ListenersService, LoadingButtonComponent, LoadingButtonModule, LocalStorageService, ModalBodyComponent, ModalComponent, ModalContentComponent, ModalDialogComponent, ModalFooterComponent, ModalHeaderComponent, ModalModule, ModalService, ModalTitleDirective, ModalToggleDirective, MultiSelectComponent, MultiSelectModule, MultiSelectOptgroupComponent, MultiSelectOptgroupLabelComponent, MultiSelectOptionComponent, NavComponent, NavGroupComponent, NavGroupItemsComponent, NavGroupService, NavItemComponent, NavLinkDirective, NavModule, NavTitleComponent, NavbarBrandDirective, NavbarComponent, NavbarModule, NavbarNavComponent, NavbarTextComponent, NavbarTogglerDirective, OffcanvasBodyComponent, OffcanvasComponent, OffcanvasHeaderComponent, OffcanvasModule, OffcanvasService, OffcanvasTitleDirective, OffcanvasToggleDirective, OneTimePasswordComponent, OneTimePasswordModule, OtpDirective, PageItemComponent, PageItemDirective, PageLinkDirective, PaginationComponent, PaginationModule, PlaceholderAnimationDirective, PlaceholderDirective, PlaceholderModule, PopoverComponent, PopoverDirective, PopoverModule, ProgressBarComponent, ProgressBarDirective, ProgressComponent, ProgressModule, ProgressStackedComponent, RangeSliderComponent, RangeSliderModule, RatingComponent, RatingModule, RoundedDirective, RowComponent, RowDirective, RtlService, SearchButtonComponent, SearchButtonModule, ShadowOnScrollDirective, SharedModule, SidebarBrandComponent, SidebarComponent, SidebarFooterComponent, SidebarHeaderComponent, SidebarModule, SidebarNavComponent, SidebarNavHelper, SidebarService, SidebarToggleDirective, SidebarTogglerDirective, SmartPaginationComponent, SmartPaginationModule, SmartTableComponent, SmartTableFilterComponent, SmartTableModule, SpinnerComponent, SpinnerModule, StepButtonDirective, StepperComponent, StepperModule, StepperStepComponent, TabContentComponent, TabContentRefDirective, TabDirective, TabPaneComponent, TabPanelComponent, TabService, TableActiveDirective, TableColorDirective, TableDirective, TableModule, Tabs2Module, TabsComponent, TabsContentComponent, TabsListComponent, TabsModule, TabsService, TemplateIdDirective, TextBgColorDirective, TextColorDirective, ThemeDirective, TimePickerComponent, TimePickerModule, ToastBodyComponent, ToastCloseDirective, ToastComponent, ToastContentComponent, ToastHeaderComponent, ToastModule, ToasterComponent, ToasterHostDirective, ToasterPlacement, ToasterService, TooltipComponent, TooltipDirective, TooltipModule, UIDService, UtilitiesModule, WidgetModule, WidgetStatAComponent, WidgetStatBComponent, WidgetStatCComponent, WidgetStatDComponent, WidgetStatEComponent, WidgetStatFComponent };
21860
22070
  //# sourceMappingURL=coreui-angular-pro.mjs.map