@cute-widgets/base 20.0.4 → 21.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -6
- package/fesm2022/cute-widgets-base-abstract.mjs +19 -29
- package/fesm2022/cute-widgets-base-abstract.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-alert.mjs +10 -10
- package/fesm2022/cute-widgets-base-alert.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-autocomplete.mjs +14 -14
- package/fesm2022/cute-widgets-base-autocomplete.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-badge.mjs +46 -14
- package/fesm2022/cute-widgets-base-badge.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-bottom-sheet.mjs +11 -11
- package/fesm2022/cute-widgets-base-bottom-sheet.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-button-toggle.mjs +61 -37
- package/fesm2022/cute-widgets-base-button-toggle.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-button.mjs +176 -112
- package/fesm2022/cute-widgets-base-button.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-card.mjs +40 -40
- package/fesm2022/cute-widgets-base-card.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-checkbox.mjs +28 -28
- package/fesm2022/cute-widgets-base-checkbox.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-chips.mjs +49 -61
- package/fesm2022/cute-widgets-base-chips.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-collapse.mjs +120 -132
- package/fesm2022/cute-widgets-base-collapse.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-datetime.mjs +11 -11
- package/fesm2022/cute-widgets-base-core-datetime.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-directives.mjs +21 -21
- package/fesm2022/cute-widgets-base-core-directives.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-error.mjs +6 -6
- package/fesm2022/cute-widgets-base-core-error.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-layout.mjs +13 -1
- package/fesm2022/cute-widgets-base-core-layout.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-line.mjs +7 -7
- package/fesm2022/cute-widgets-base-core-line.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-nav.mjs +30 -28
- package/fesm2022/cute-widgets-base-core-nav.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-observers.mjs +16 -16
- package/fesm2022/cute-widgets-base-core-observers.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-option.mjs +10 -10
- package/fesm2022/cute-widgets-base-core-option.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-pipes.mjs +6 -6
- package/fesm2022/cute-widgets-base-core-pipes.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-ripple.mjs +3 -3
- package/fesm2022/cute-widgets-base-core-ripple.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-theming.mjs +7 -7
- package/fesm2022/cute-widgets-base-core-theming.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core-utils.mjs +3 -3
- package/fesm2022/cute-widgets-base-core-utils.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-core.mjs +50 -38
- package/fesm2022/cute-widgets-base-core.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-datepicker.mjs +100 -99
- package/fesm2022/cute-widgets-base-datepicker.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-dialog.mjs +170 -135
- package/fesm2022/cute-widgets-base-dialog.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-divider.mjs +7 -7
- package/fesm2022/cute-widgets-base-divider.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-expansion.mjs +27 -27
- package/fesm2022/cute-widgets-base-expansion.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-form-field.mjs +28 -28
- package/fesm2022/cute-widgets-base-form-field.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-grid-list.mjs +22 -22
- package/fesm2022/cute-widgets-base-grid-list.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-icon.mjs +10 -10
- package/fesm2022/cute-widgets-base-icon.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-input.mjs +7 -7
- package/fesm2022/cute-widgets-base-input.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-layout-container.mjs +10 -10
- package/fesm2022/cute-widgets-base-layout-container.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-layout-stack.mjs +13 -13
- package/fesm2022/cute-widgets-base-layout-stack.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-layout.mjs +23 -23
- package/fesm2022/cute-widgets-base-layout.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-list.mjs +56 -56
- package/fesm2022/cute-widgets-base-list.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-menu.mjs +581 -388
- package/fesm2022/cute-widgets-base-menu.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-navbar.mjs +101 -61
- package/fesm2022/cute-widgets-base-navbar.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-paginator.mjs +13 -13
- package/fesm2022/cute-widgets-base-paginator.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-progress.mjs +10 -10
- package/fesm2022/cute-widgets-base-progress.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-radio.mjs +11 -11
- package/fesm2022/cute-widgets-base-radio.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-select.mjs +11 -11
- package/fesm2022/cute-widgets-base-select.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-sidenav.mjs +26 -26
- package/fesm2022/cute-widgets-base-sidenav.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-slider.mjs +10 -10
- package/fesm2022/cute-widgets-base-slider.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-snack-bar.mjs +28 -28
- package/fesm2022/cute-widgets-base-snack-bar.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-sort.mjs +13 -13
- package/fesm2022/cute-widgets-base-sort.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-spinner.mjs +8 -8
- package/fesm2022/cute-widgets-base-spinner.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-stepper.mjs +40 -40
- package/fesm2022/cute-widgets-base-stepper.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-table.mjs +58 -66
- package/fesm2022/cute-widgets-base-table.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-tabs.mjs +100 -75
- package/fesm2022/cute-widgets-base-tabs.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-timepicker.mjs +34 -63
- package/fesm2022/cute-widgets-base-timepicker.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-toolbar.mjs +13 -13
- package/fesm2022/cute-widgets-base-toolbar.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-tooltip.mjs +10 -10
- package/fesm2022/cute-widgets-base-tooltip.mjs.map +1 -1
- package/fesm2022/cute-widgets-base-tree.mjs +25 -25
- package/fesm2022/cute-widgets-base-tree.mjs.map +1 -1
- package/fesm2022/cute-widgets-base.mjs +4 -4
- package/package.json +121 -121
- package/{abstract/index.d.ts → types/cute-widgets-base-abstract.d.ts} +9 -3
- package/{autocomplete/index.d.ts → types/cute-widgets-base-autocomplete.d.ts} +2 -2
- package/{badge/index.d.ts → types/cute-widgets-base-badge.d.ts} +6 -5
- package/{bottom-sheet/index.d.ts → types/cute-widgets-base-bottom-sheet.d.ts} +1 -1
- package/{button-toggle/index.d.ts → types/cute-widgets-base-button-toggle.d.ts} +15 -5
- package/{button/index.d.ts → types/cute-widgets-base-button.d.ts} +44 -22
- package/{checkbox/index.d.ts → types/cute-widgets-base-checkbox.d.ts} +1 -1
- package/{chips/index.d.ts → types/cute-widgets-base-chips.d.ts} +1 -1
- package/types/cute-widgets-base-collapse.d.ts +98 -0
- package/{core/layout/index.d.ts → types/cute-widgets-base-core-layout.d.ts} +7 -1
- package/{core/nav/index.d.ts → types/cute-widgets-base-core-nav.d.ts} +2 -1
- package/{core/observers/index.d.ts → types/cute-widgets-base-core-observers.d.ts} +1 -1
- package/{core/option/index.d.ts → types/cute-widgets-base-core-option.d.ts} +1 -1
- package/{core/index.d.ts → types/cute-widgets-base-core.d.ts} +7 -1
- package/{datepicker/index.d.ts → types/cute-widgets-base-datepicker.d.ts} +2 -2
- package/{dialog/index.d.ts → types/cute-widgets-base-dialog.d.ts} +81 -57
- package/{expansion/index.d.ts → types/cute-widgets-base-expansion.d.ts} +4 -14
- package/{form-field/index.d.ts → types/cute-widgets-base-form-field.d.ts} +1 -1
- package/{icon/index.d.ts → types/cute-widgets-base-icon.d.ts} +1 -1
- package/{input/index.d.ts → types/cute-widgets-base-input.d.ts} +1 -1
- package/{menu/index.d.ts → types/cute-widgets-base-menu.d.ts} +202 -121
- package/{navbar/index.d.ts → types/cute-widgets-base-navbar.d.ts} +24 -9
- package/{paginator/index.d.ts → types/cute-widgets-base-paginator.d.ts} +2 -2
- package/{progress/index.d.ts → types/cute-widgets-base-progress.d.ts} +1 -1
- package/{radio/index.d.ts → types/cute-widgets-base-radio.d.ts} +2 -2
- package/{sidenav/index.d.ts → types/cute-widgets-base-sidenav.d.ts} +1 -1
- package/{snack-bar/index.d.ts → types/cute-widgets-base-snack-bar.d.ts} +1 -1
- package/{sort/index.d.ts → types/cute-widgets-base-sort.d.ts} +1 -1
- package/{table/index.d.ts → types/cute-widgets-base-table.d.ts} +1 -1
- package/{tabs/index.d.ts → types/cute-widgets-base-tabs.d.ts} +35 -14
- package/{tree/index.d.ts → types/cute-widgets-base-tree.d.ts} +2 -2
- package/collapse/index.d.ts +0 -97
- /package/{alert/index.d.ts → types/cute-widgets-base-alert.d.ts} +0 -0
- /package/{card/index.d.ts → types/cute-widgets-base-card.d.ts} +0 -0
- /package/{core/animation/index.d.ts → types/cute-widgets-base-core-animation.d.ts} +0 -0
- /package/{core/datetime/index.d.ts → types/cute-widgets-base-core-datetime.d.ts} +0 -0
- /package/{core/directives/index.d.ts → types/cute-widgets-base-core-directives.d.ts} +0 -0
- /package/{core/error/index.d.ts → types/cute-widgets-base-core-error.d.ts} +0 -0
- /package/{core/interfaces/index.d.ts → types/cute-widgets-base-core-interfaces.d.ts} +0 -0
- /package/{core/line/index.d.ts → types/cute-widgets-base-core-line.d.ts} +0 -0
- /package/{core/pipes/index.d.ts → types/cute-widgets-base-core-pipes.d.ts} +0 -0
- /package/{core/ripple/index.d.ts → types/cute-widgets-base-core-ripple.d.ts} +0 -0
- /package/{core/testing/index.d.ts → types/cute-widgets-base-core-testing.d.ts} +0 -0
- /package/{core/theming/index.d.ts → types/cute-widgets-base-core-theming.d.ts} +0 -0
- /package/{core/types/index.d.ts → types/cute-widgets-base-core-types.d.ts} +0 -0
- /package/{core/utils/index.d.ts → types/cute-widgets-base-core-utils.d.ts} +0 -0
- /package/{divider/index.d.ts → types/cute-widgets-base-divider.d.ts} +0 -0
- /package/{grid-list/index.d.ts → types/cute-widgets-base-grid-list.d.ts} +0 -0
- /package/{layout/container/index.d.ts → types/cute-widgets-base-layout-container.d.ts} +0 -0
- /package/{layout/stack/index.d.ts → types/cute-widgets-base-layout-stack.d.ts} +0 -0
- /package/{layout/index.d.ts → types/cute-widgets-base-layout.d.ts} +0 -0
- /package/{list/index.d.ts → types/cute-widgets-base-list.d.ts} +0 -0
- /package/{select/index.d.ts → types/cute-widgets-base-select.d.ts} +0 -0
- /package/{slider/index.d.ts → types/cute-widgets-base-slider.d.ts} +0 -0
- /package/{spinner/index.d.ts → types/cute-widgets-base-spinner.d.ts} +0 -0
- /package/{stepper/index.d.ts → types/cute-widgets-base-stepper.d.ts} +0 -0
- /package/{timepicker/index.d.ts → types/cute-widgets-base-timepicker.d.ts} +0 -0
- /package/{toolbar/index.d.ts → types/cute-widgets-base-toolbar.d.ts} +0 -0
- /package/{tooltip/index.d.ts → types/cute-widgets-base-tooltip.d.ts} +0 -0
- /package/{index.d.ts → types/cute-widgets-base.d.ts} +0 -0
|
@@ -1,13 +1,28 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { ChangeDetectionStrategy, ViewEncapsulation, Component, inject, signal, viewChild, InjectionToken, EventEmitter, computed, isDevMode, HostBinding, Output, Input, ContentChildren, Directive, booleanAttribute, NgModule } from '@angular/core';
|
|
3
3
|
import { CuteLayoutControl } from '@cute-widgets/base/abstract';
|
|
4
4
|
import { CuteContainer } from '@cute-widgets/base/layout';
|
|
5
|
-
import * as i1 from '@cute-widgets/base/collapse';
|
|
6
|
-
import { CuteCollapse, CuteCollapseTrigger } from '@cute-widgets/base/collapse';
|
|
7
5
|
import { Subscription } from 'rxjs';
|
|
6
|
+
import { MediaMatcher } from '@angular/cdk/layout';
|
|
7
|
+
import { bsBreakpoints } from '@cute-widgets/base/core';
|
|
8
|
+
import * as i1 from '@cute-widgets/base/collapse';
|
|
9
|
+
import { CuteCollapseBase, CuteCollapseTrigger, CuteCollapseModule } from '@cute-widgets/base/collapse';
|
|
8
10
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
9
11
|
import { CuteNav, CUTE_NAV } from '@cute-widgets/base/core/nav';
|
|
10
|
-
|
|
12
|
+
|
|
13
|
+
class CuteNavbarCollapse extends CuteCollapseBase {
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarCollapse, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: CuteNavbarCollapse, isStandalone: true, selector: "cute-navbar-collapse", host: { properties: { "class": "\"cute-navbar-collapse-\"+(horizontal ? \"horizontal\" : \"vertical\")+\" \"+getState()", "class.cute-navbar-collapse-animations-enabled": "!disableAnimation", "id": "id || null" }, classAttribute: "cute-navbar-collapse" }, exportAs: ["cuteNavbarCollapse"], usesInheritance: true, ngImport: i0, template: "<div class=\"cute-navbar-collapse-content\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".cute-navbar-collapse{display:grid;width:100%;overflow:hidden}.cute-navbar-collapse .cute-navbar-collapse-content{min-height:0;overflow:hidden;transition:display .1s;transition-timing-function:ease-in-out;transition-behavior:allow-discrete;display:none}.cute-navbar-collapse.expanded .cute-navbar-collapse-content{display:block}.cute-navbar-collapse.collapsed .cute-navbar-collapse-content{display:none}.cute-navbar-collapse.cute-navbar-collapse-vertical{grid-template-rows:0fr}.cute-navbar-collapse.cute-navbar-collapse-vertical.expanded{grid-template-rows:1fr}.cute-navbar-collapse.cute-navbar-collapse-vertical.collapsed{grid-template-rows:0fr}.cute-navbar-collapse.cute-navbar-collapse-vertical.cute-navbar-collapse-animations-enabled{transition:grid-template-rows .2s}.cute-navbar-collapse.cute-navbar-collapse-horizontal{grid-template-columns:0fr}.cute-navbar-collapse.cute-navbar-collapse-horizontal.expanded{grid-template-columns:1fr}.cute-navbar-collapse.cute-navbar-collapse-horizontal.collapsed{grid-template-columns:0fr}.cute-navbar-collapse.cute-navbar-collapse-horizontal.cute-navbar-collapse-animations-enabled{transition:grid-template-columns .2s}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarCollapse, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{ selector: 'cute-navbar-collapse', exportAs: 'cuteNavbarCollapse', host: {
|
|
20
|
+
'class': 'cute-navbar-collapse',
|
|
21
|
+
'[class]': '"cute-navbar-collapse-"+(horizontal ? "horizontal" : "vertical")+" "+getState()',
|
|
22
|
+
'[class.cute-navbar-collapse-animations-enabled]': '!disableAnimation',
|
|
23
|
+
'[id]': 'id || null',
|
|
24
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"cute-navbar-collapse-content\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".cute-navbar-collapse{display:grid;width:100%;overflow:hidden}.cute-navbar-collapse .cute-navbar-collapse-content{min-height:0;overflow:hidden;transition:display .1s;transition-timing-function:ease-in-out;transition-behavior:allow-discrete;display:none}.cute-navbar-collapse.expanded .cute-navbar-collapse-content{display:block}.cute-navbar-collapse.collapsed .cute-navbar-collapse-content{display:none}.cute-navbar-collapse.cute-navbar-collapse-vertical{grid-template-rows:0fr}.cute-navbar-collapse.cute-navbar-collapse-vertical.expanded{grid-template-rows:1fr}.cute-navbar-collapse.cute-navbar-collapse-vertical.collapsed{grid-template-rows:0fr}.cute-navbar-collapse.cute-navbar-collapse-vertical.cute-navbar-collapse-animations-enabled{transition:grid-template-rows .2s}.cute-navbar-collapse.cute-navbar-collapse-horizontal{grid-template-columns:0fr}.cute-navbar-collapse.cute-navbar-collapse-horizontal.expanded{grid-template-columns:1fr}.cute-navbar-collapse.cute-navbar-collapse-horizontal.collapsed{grid-template-columns:0fr}.cute-navbar-collapse.cute-navbar-collapse-horizontal.cute-navbar-collapse-animations-enabled{transition:grid-template-columns .2s}\n"] }]
|
|
25
|
+
}] });
|
|
11
26
|
|
|
12
27
|
/**
|
|
13
28
|
* @license Apache-2.0
|
|
@@ -17,64 +32,87 @@ import { CommonModule } from '@angular/common';
|
|
|
17
32
|
* You may not use this file except in compliance with the License
|
|
18
33
|
* that can be found at http://www.apache.org/licenses/LICENSE-2.0
|
|
19
34
|
*/
|
|
35
|
+
let uniqueId = 0;
|
|
20
36
|
/**
|
|
21
37
|
* Collapsible navbar content.
|
|
22
38
|
*/
|
|
23
|
-
class CuteNavbarContent extends
|
|
39
|
+
class CuteNavbarContent extends CuteLayoutControl {
|
|
24
40
|
constructor() {
|
|
25
41
|
super();
|
|
26
|
-
this.
|
|
42
|
+
this._selfSubscriptions = new Subscription();
|
|
27
43
|
this._navbar = inject(CUTE_NAVBAR);
|
|
44
|
+
this.mediaMatcher = inject(MediaMatcher);
|
|
28
45
|
this._breakpointMatches = signal(false, ...(ngDevMode ? [{ debugName: "_breakpointMatches" }] : []));
|
|
29
|
-
this.
|
|
46
|
+
this._collapse = viewChild.required(CuteNavbarCollapse);
|
|
47
|
+
this._navbarMediaQueries = bsBreakpoints.getMediaQueries(this._navbar.breakpoint ?? []);
|
|
48
|
+
this._selfSubscriptions.add(this._navbar.breakpointState.subscribe(state => {
|
|
30
49
|
this._breakpointMatches.set(state.matches);
|
|
31
50
|
if (!state.matches) {
|
|
32
|
-
this.close(); // if content was in the 'expanded' state when the screen width changed
|
|
51
|
+
this._collapse().close(); // if content was in the 'expanded' state when the screen width changed
|
|
33
52
|
this._navbar.expansionChange.emit(false);
|
|
34
53
|
}
|
|
35
54
|
}));
|
|
36
|
-
|
|
55
|
+
}
|
|
56
|
+
get expanded() {
|
|
57
|
+
return this._collapse().expanded;
|
|
58
|
+
}
|
|
59
|
+
get mediaMatches() {
|
|
60
|
+
if (this._navbarMediaQueries.length) {
|
|
61
|
+
return this.mediaMatcher.matchMedia(this._navbarMediaQueries[0]).matches;
|
|
62
|
+
}
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
generateId() {
|
|
66
|
+
return `cute-navbar-content-${uniqueId++}`;
|
|
67
|
+
}
|
|
68
|
+
open() {
|
|
69
|
+
this._collapse().open();
|
|
70
|
+
}
|
|
71
|
+
close() {
|
|
72
|
+
this._collapse().close();
|
|
73
|
+
}
|
|
74
|
+
toggle() {
|
|
75
|
+
this._collapse().toggle();
|
|
76
|
+
}
|
|
77
|
+
ngOnInit() {
|
|
78
|
+
super.ngOnInit();
|
|
79
|
+
this._selfSubscriptions.add(this._collapse().afterExpand.subscribe(() => {
|
|
37
80
|
if (this._breakpointMatches()) {
|
|
38
81
|
this._navbar.expansionChange.emit(true);
|
|
39
82
|
}
|
|
40
83
|
}));
|
|
41
|
-
this.
|
|
84
|
+
this._selfSubscriptions.add(this._collapse().afterCollapse.subscribe(() => {
|
|
85
|
+
this._navbar.expansionChange.emit(false);
|
|
86
|
+
}));
|
|
42
87
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return super.getState();
|
|
46
|
-
}
|
|
47
|
-
// Parent class, CuteCollapse, uses this state to trigger the expanding process.
|
|
48
|
-
// But we use it for the sake of `visibility` property only.
|
|
49
|
-
// TODO: Change to a simpler and clearer algorithm.
|
|
50
|
-
return 'expanded';
|
|
88
|
+
ngAfterViewChecked() {
|
|
89
|
+
this._breakpointMatches.set(this.mediaMatches);
|
|
51
90
|
}
|
|
52
91
|
ngOnDestroy() {
|
|
53
92
|
super.ngOnDestroy();
|
|
54
|
-
this.
|
|
93
|
+
this._selfSubscriptions.unsubscribe();
|
|
55
94
|
}
|
|
56
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
57
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
58
|
-
<
|
|
59
|
-
|
|
95
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: CuteNavbarContent, isStandalone: true, selector: "cute-navbar-content", host: { properties: { "class.breakpoint-matches": "_breakpointMatches()" }, classAttribute: "cute-navbar-content navbar-collapse" }, viewQueries: [{ propertyName: "_collapse", first: true, predicate: CuteNavbarCollapse, descendants: true, isSignal: true }], exportAs: ["cuteNavbarContent"], usesInheritance: true, ngImport: i0, template: `
|
|
97
|
+
<cute-navbar-collapse>
|
|
98
|
+
<ng-content></ng-content>
|
|
99
|
+
</cute-navbar-collapse>
|
|
100
|
+
`, isInline: true, styles: [".cute-navbar-content:not(.breakpoint-matches) cute-navbar-collapse{display:block}.cute-navbar-content:not(.breakpoint-matches) cute-navbar-collapse .cute-navbar-collapse-content{display:flex;align-items:center;padding:.25rem 0}\n"], dependencies: [{ kind: "component", type: CuteNavbarCollapse, selector: "cute-navbar-collapse", exportAs: ["cuteNavbarCollapse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
60
101
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarContent, decorators: [{
|
|
62
103
|
type: Component,
|
|
63
|
-
args: [{
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
`,
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
'class': '
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
standalone: true,
|
|
76
|
-
}]
|
|
77
|
-
}], ctorParameters: () => [] });
|
|
104
|
+
args: [{ selector: 'cute-navbar-content', template: `
|
|
105
|
+
<cute-navbar-collapse>
|
|
106
|
+
<ng-content></ng-content>
|
|
107
|
+
</cute-navbar-collapse>
|
|
108
|
+
`, exportAs: 'cuteNavbarContent', host: {
|
|
109
|
+
'class': 'cute-navbar-content navbar-collapse',
|
|
110
|
+
//'[class.collapsed]': '!expanded',
|
|
111
|
+
'[class.breakpoint-matches]': '_breakpointMatches()',
|
|
112
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
113
|
+
CuteNavbarCollapse,
|
|
114
|
+
], styles: [".cute-navbar-content:not(.breakpoint-matches) cute-navbar-collapse{display:block}.cute-navbar-content:not(.breakpoint-matches) cute-navbar-collapse .cute-navbar-collapse-content{display:flex;align-items:center;padding:.25rem 0}\n"] }]
|
|
115
|
+
}], ctorParameters: () => [], propDecorators: { _collapse: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CuteNavbarCollapse), { isSignal: true }] }] } });
|
|
78
116
|
|
|
79
117
|
/**
|
|
80
118
|
* @license Apache-2.0
|
|
@@ -115,12 +153,14 @@ class CuteNavbar extends CuteLayoutControl {
|
|
|
115
153
|
}
|
|
116
154
|
constructor() {
|
|
117
155
|
super();
|
|
156
|
+
this._expanded = signal(false, ...(ngDevMode ? [{ debugName: "_expanded" }] : []));
|
|
118
157
|
/** Event emitted when the navbar's content expansion status changed. */
|
|
119
158
|
this.expansionChange = new EventEmitter();
|
|
120
159
|
this.contentExpanded = computed(() => this._expanded(), ...(ngDevMode ? [{ debugName: "contentExpanded" }] : []));
|
|
121
|
-
this._expanded = signal(false, ...(ngDevMode ? [{ debugName: "_expanded" }] : []));
|
|
122
160
|
this.role = "navigation";
|
|
123
|
-
this.expansionChange.pipe(takeUntilDestroyed()).subscribe(state =>
|
|
161
|
+
this.expansionChange.pipe(takeUntilDestroyed()).subscribe(state => {
|
|
162
|
+
this._expanded.set(state);
|
|
163
|
+
});
|
|
124
164
|
}
|
|
125
165
|
generateId() {
|
|
126
166
|
return `cute-navbar-${++nextId}`;
|
|
@@ -132,14 +172,14 @@ class CuteNavbar extends CuteLayoutControl {
|
|
|
132
172
|
throw new Error("More than one 'cute-navbar-content' elements are found in the 'cute-navbar' component.");
|
|
133
173
|
}
|
|
134
174
|
}
|
|
135
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
136
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
175
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
176
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: CuteNavbar, isStandalone: true, selector: "cute-navbar", inputs: { position: "position" }, outputs: { expansionChange: "expansionChange" }, host: { properties: { "class.shadow": "contentExpanded()", "attr.role": "role || null", "class": "this.classBinding" }, classAttribute: "cute-navbar navbar" }, providers: [{ provide: CUTE_NAVBAR, useExisting: CuteNavbar }], queries: [{ propertyName: "navContent", predicate: CuteNavbarContent, descendants: true }], exportAs: ["cuteNavbar"], usesInheritance: true, ngImport: i0, template: `
|
|
137
177
|
<cute-container fluid>
|
|
138
178
|
<ng-content></ng-content>
|
|
139
179
|
</cute-container>
|
|
140
180
|
`, isInline: true, styles: [".cute-navbar{z-index:1000}\n"], dependencies: [{ kind: "component", type: CuteContainer, selector: "cute-container", inputs: ["fluid"], exportAs: ["cuteContainer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
141
181
|
}
|
|
142
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbar, decorators: [{
|
|
143
183
|
type: Component,
|
|
144
184
|
args: [{ selector: 'cute-navbar', template: `
|
|
145
185
|
<cute-container fluid>
|
|
@@ -174,10 +214,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
174
214
|
* Subcomponent for company, product, or project name
|
|
175
215
|
*/
|
|
176
216
|
class CuteNavbarBrand {
|
|
177
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
178
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
217
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarBrand, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
218
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: CuteNavbarBrand, isStandalone: true, selector: "[cuteNavbarBrand], [cute-navbar-brand]", host: { classAttribute: "cute-navbar-brand navbar-brand" }, exportAs: ["cuteNavbarBrand"], ngImport: i0 }); }
|
|
179
219
|
}
|
|
180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
220
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarBrand, decorators: [{
|
|
181
221
|
type: Directive,
|
|
182
222
|
args: [{
|
|
183
223
|
selector: '[cuteNavbarBrand], [cute-navbar-brand]',
|
|
@@ -219,10 +259,10 @@ class CuteNavbarNav extends CuteNav {
|
|
|
219
259
|
*/
|
|
220
260
|
this.scrollable = false;
|
|
221
261
|
}
|
|
222
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
223
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "
|
|
262
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarNav, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
263
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.2.0", type: CuteNavbarNav, isStandalone: true, selector: "[cuteNavbarNav], [cute-navbar-nav]", inputs: { scrollable: ["scrollable", "scrollable", booleanAttribute], scrollHeight: "scrollHeight" }, host: { properties: { "class.navbar-nav-scroll": "scrollable", "style.--bs-scroll-height": "scrollHeight" }, classAttribute: "cute-navbar-nav navbar-nav align-items-start" }, providers: [{ provide: CUTE_NAV, useExisting: CuteNavbarNav }], exportAs: ["cuteNavbarNav"], usesInheritance: true, ngImport: i0 }); }
|
|
224
264
|
}
|
|
225
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
265
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarNav, decorators: [{
|
|
226
266
|
type: Directive,
|
|
227
267
|
args: [{
|
|
228
268
|
selector: '[cuteNavbarNav], [cute-navbar-nav]',
|
|
@@ -254,10 +294,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
254
294
|
* This directive adjusts vertical alignment and horizontal spacing for strings of text.
|
|
255
295
|
*/
|
|
256
296
|
class CuteNavbarText {
|
|
257
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
258
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
297
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarText, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
298
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: CuteNavbarText, isStandalone: true, selector: "cute-navbar-text, [cuteNavbarText], [cute-navbar-text]", host: { classAttribute: "navbar-text" }, exportAs: ["cuteNavbarText"], ngImport: i0 }); }
|
|
259
299
|
}
|
|
260
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
300
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarText, decorators: [{
|
|
261
301
|
type: Directive,
|
|
262
302
|
args: [{
|
|
263
303
|
selector: 'cute-navbar-text, [cuteNavbarText], [cute-navbar-text]',
|
|
@@ -284,10 +324,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
284
324
|
* A trigger element for expand/collapse the `cute-navbar-content`.
|
|
285
325
|
*/
|
|
286
326
|
class CuteNavbarToggler {
|
|
287
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
288
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
327
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarToggler, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
328
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: CuteNavbarToggler, isStandalone: true, selector: "[cuteNavbarToggler], [cute-navbar-toggler]", host: { attributes: { "type": "button" }, classAttribute: "navbar-toggler border-secondary-subtle" }, exportAs: ["cuteNavbarToggler"], hostDirectives: [{ directive: i1.CuteCollapseTrigger, inputs: ["cuteCollapseTriggerFor", "cuteNavbarTogglerFor"] }], ngImport: i0 }); }
|
|
289
329
|
}
|
|
290
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
330
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarToggler, decorators: [{
|
|
291
331
|
type: Directive,
|
|
292
332
|
args: [{
|
|
293
333
|
selector: '[cuteNavbarToggler], [cute-navbar-toggler]',
|
|
@@ -316,8 +356,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
316
356
|
* that can be found at http://www.apache.org/licenses/LICENSE-2.0
|
|
317
357
|
*/
|
|
318
358
|
class CuteNavbarModule {
|
|
319
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
320
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
359
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
360
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarModule, imports: [CuteCollapseModule,
|
|
321
361
|
CuteNavbar,
|
|
322
362
|
CuteNavbarBrand,
|
|
323
363
|
CuteNavbarContent,
|
|
@@ -329,15 +369,15 @@ class CuteNavbarModule {
|
|
|
329
369
|
CuteNavbarNav,
|
|
330
370
|
CuteNavbarText,
|
|
331
371
|
CuteNavbarToggler] }); }
|
|
332
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
372
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarModule, imports: [CuteCollapseModule,
|
|
333
373
|
CuteNavbar] }); }
|
|
334
374
|
}
|
|
335
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
375
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CuteNavbarModule, decorators: [{
|
|
336
376
|
type: NgModule,
|
|
337
377
|
args: [{
|
|
338
378
|
declarations: [],
|
|
339
379
|
imports: [
|
|
340
|
-
|
|
380
|
+
CuteCollapseModule,
|
|
341
381
|
CuteNavbar,
|
|
342
382
|
CuteNavbarBrand,
|
|
343
383
|
CuteNavbarContent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cute-widgets-base-navbar.mjs","sources":["../../../../projects/cute-widgets/base/navbar/src/navbar-content.component.ts","../../../../projects/cute-widgets/base/navbar/src/navbar.component.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-brand.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-nav.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-text.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-toggler.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar.module.ts","../../../../projects/cute-widgets/base/navbar/cute-widgets-base-navbar.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation} from \"@angular/core\";\r\nimport {CuteCollapse, CuteCollapseState} from \"@cute-widgets/base/collapse\";\r\nimport {CUTE_NAVBAR} from './navbar.component';\r\nimport {Subscription} from 'rxjs';\r\n\r\n/**\r\n * Collapsible navbar content.\r\n */\r\n@Component({\r\n selector: 'cute-navbar-content',\r\n template: `\r\n <ng-content></ng-content>\r\n `,\r\n exportAs: 'cuteNavbarContent',\r\n host: {\r\n 'class': 'navbar-collapse collapse',\r\n '[class.show]': 'expanded',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n})\r\nexport class CuteNavbarContent extends CuteCollapse {\r\n private _subscription: Subscription = new Subscription();\r\n protected _navbar = inject(CUTE_NAVBAR);\r\n protected _breakpointMatches = signal<boolean>(false);\r\n\r\n constructor() {\r\n super();\r\n\r\n this._subscription.add(\r\n this._navbar.breakpointState.subscribe(state => {\r\n this._breakpointMatches.set(state.matches);\r\n if (!state.matches) {\r\n this.close(); // if content was in the 'expanded' state when the screen width changed\r\n this._navbar.expansionChange.emit(false);\r\n }\r\n })\r\n );\r\n this._subscription.add(\r\n this.afterExpand.subscribe(() => {\r\n if (this._breakpointMatches()) {\r\n this._navbar.expansionChange.emit(true);\r\n }\r\n })\r\n );\r\n this._subscription.add(\r\n this.afterCollapse.subscribe(() => this._navbar.expansionChange.emit(false))\r\n );\r\n }\r\n\r\n override getState(): CuteCollapseState {\r\n if (this._breakpointMatches()) {\r\n return super.getState();\r\n }\r\n // Parent class, CuteCollapse, uses this state to trigger the expanding process.\r\n // But we use it for the sake of `visibility` property only.\r\n // TODO: Change to a simpler and clearer algorithm.\r\n return 'expanded';\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._subscription.unsubscribe();\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component, computed, ContentChildren, EventEmitter,\r\n HostBinding,\r\n InjectionToken,\r\n Input, isDevMode, Output, QueryList, signal, ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport {CuteLayoutControl} from \"@cute-widgets/base/abstract\";\r\nimport {CuteContainer} from \"@cute-widgets/base/layout\";\r\nimport {CuteNavbarContent} from './navbar-content.component';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\n\r\n/** Navbar's vertical non-static position. */\r\nexport type NavbarPosition=\"fixed-top\"|\"fixed-bottom\"|\"sticky-top\"|\"sticky-bottom\";\r\n\r\nexport const CUTE_NAVBAR = new InjectionToken<CuteNavbar>(\"CUTE_NAVBAR\");\r\n\r\nlet nextId = 0;\r\n\r\n/**\r\n * Powerful and responsive navigation header in which responsive behavior depends on `CuteCollapse` component.\r\n * Includes support for branding, navigation, and more.\r\n */\r\n@Component({\r\n selector: 'cute-navbar',\r\n template: `\r\n <cute-container fluid>\r\n <ng-content></ng-content>\r\n </cute-container>\r\n `,\r\n styles: [`\r\n .cute-navbar {\r\n z-index: 1000; /* CWT: 'cdk-overlay-container' has a rule {z-index: 1000} */\r\n }\r\n `],\r\n exportAs: 'cuteNavbar',\r\n host: {\r\n 'class': 'cute-navbar navbar',\r\n '[class.shadow]': 'contentExpanded()',\r\n '[attr.role]': 'role || null',\r\n },\r\n providers: [{ provide: CUTE_NAVBAR, useExisting: CuteNavbar }],\r\n imports: [ CuteContainer ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CuteNavbar extends CuteLayoutControl {\r\n @ContentChildren(CuteNavbarContent, {descendants: true}) navContent: QueryList<CuteNavbarContent> | undefined;\r\n\r\n /** Placement `navbar` in non-static position, if the `position` differs from the default. */\r\n @Input() position: NavbarPosition | undefined;\r\n\r\n /** Event emitted when the navbar's content expansion status changed. */\r\n @Output() expansionChange = new EventEmitter<boolean>();\r\n\r\n readonly contentExpanded = computed(() => this._expanded());\r\n private _expanded = signal<boolean>(false);\r\n\r\n @HostBinding(\"class\")\r\n get classBinding(): string {\r\n let classList = \"\";\r\n\r\n if (this.breakpoint) {\r\n classList += \"navbar-expand-\"+this.breakpoint;\r\n }\r\n switch (this.position) {\r\n case \"fixed-top\":\r\n case \"fixed-bottom\":\r\n classList += \" \"+this.position;\r\n break;\r\n case \"sticky-top\":\r\n case \"sticky-bottom\":\r\n if (this.breakpoint) {\r\n classList += \" \"+this.position.replace(\"-\", \"-\"+this.breakpoint+\"-\");\r\n } else {\r\n classList += \" \"+this.position;\r\n }\r\n break;\r\n }\r\n return classList;\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.role = \"navigation\";\r\n this.expansionChange.pipe(takeUntilDestroyed()).subscribe(state => this._expanded.set(state));\r\n }\r\n\r\n protected generateId(): string {\r\n return `cute-navbar-${++nextId}`;\r\n }\r\n\r\n override ngAfterContentInit() {\r\n super.ngAfterContentInit();\r\n\r\n const count = this.navContent?.length || 0;\r\n if (count > 1 && isDevMode()) {\r\n throw new Error(\"More than one 'cute-navbar-content' elements are found in the 'cute-navbar' component.\");\r\n }\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Subcomponent for company, product, or project name\r\n */\r\n@Directive({\r\n selector: '[cuteNavbarBrand], [cute-navbar-brand]',\r\n exportAs: 'cuteNavbarBrand',\r\n host: {\r\n 'class': 'cute-navbar-brand navbar-brand'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteNavbarBrand {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {booleanAttribute, Directive, Input} from \"@angular/core\";\r\nimport {CuteNav, CUTE_NAV} from \"@cute-widgets/base/core/nav\";\r\n\r\n/**\r\n * A full-height and lightweight navigation container for including other navigation components.\r\n */\r\n@Directive({\r\n selector: '[cuteNavbarNav], [cute-navbar-nav]',\r\n exportAs: 'cuteNavbarNav',\r\n host: {\r\n 'class': 'cute-navbar-nav navbar-nav align-items-start',\r\n '[class.navbar-nav-scroll]': 'scrollable',\r\n '[style.--bs-scroll-height]': 'scrollHeight',\r\n },\r\n standalone: true,\r\n providers: [{provide: CUTE_NAV, useExisting: CuteNavbarNav}],\r\n})\r\nexport class CuteNavbarNav extends CuteNav {\r\n\r\n /**\r\n * Enable/disable vertical scrolling within the toggleable contents of a collapsed `navbar`.\r\n * By default, scrolling kicks in at 75vh (or 75% of the viewport height).\r\n */\r\n @Input({transform: booleanAttribute}) scrollable: boolean = false;\r\n\r\n /** The minimum height of the expanded content that triggers the scrolling mode when `scrollable` property is enabled. Default is **75vh**. */\r\n @Input()\r\n get scrollHeight(): string | undefined {return this._scrollHeight;}\r\n set scrollHeight(value: string | number | undefined) {\r\n if (value !== this._scrollHeight) {\r\n if (typeof value===\"number\") {\r\n value = `${value}px`;\r\n }\r\n this._scrollHeight = value;\r\n }\r\n }\r\n private _scrollHeight: string | undefined;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * This directive adjusts vertical alignment and horizontal spacing for strings of text.\r\n */\r\n@Directive({\r\n selector: 'cute-navbar-text, [cuteNavbarText], [cute-navbar-text]',\r\n exportAs: 'cuteNavbarText',\r\n host: {\r\n 'class': 'navbar-text'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteNavbarText {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\nimport {CuteCollapseTrigger} from \"@cute-widgets/base/collapse\";\r\n\r\n/**\r\n * A trigger element for expand/collapse the `cute-navbar-content`.\r\n */\r\n@Directive({\r\n selector: '[cuteNavbarToggler], [cute-navbar-toggler]',\r\n exportAs: 'cuteNavbarToggler',\r\n host: {\r\n 'class': 'navbar-toggler border-secondary-subtle',\r\n 'type': 'button',\r\n },\r\n hostDirectives: [\r\n {\r\n directive: CuteCollapseTrigger,\r\n inputs: ['cuteCollapseTriggerFor:cuteNavbarTogglerFor'],\r\n outputs: [],\r\n }\r\n ],\r\n standalone: true,\r\n})\r\nexport class CuteNavbarToggler {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {CuteNavbar} from \"./navbar.component\";\r\nimport {CuteNavbarBrand} from \"./navbar-brand.directive\";\r\nimport {CuteNavbarContent} from \"./navbar-content.component\";\r\nimport {CuteNavbarToggler} from \"./navbar-toggler.directive\";\r\nimport {CuteNavbarNav} from \"./navbar-nav.directive\";\r\nimport {CuteNavbarText} from \"./navbar-text.directive\";\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n CuteNavbar,\r\n CuteNavbarBrand,\r\n CuteNavbarContent,\r\n CuteNavbarNav,\r\n CuteNavbarText,\r\n CuteNavbarToggler,\r\n ],\r\n exports: [\r\n CuteNavbar,\r\n CuteNavbarBrand,\r\n CuteNavbarContent,\r\n CuteNavbarNav,\r\n CuteNavbarText,\r\n CuteNavbarToggler,\r\n ],\r\n providers: [],\r\n})\r\nexport class CuteNavbarModule { }\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":"cute-widgets-base-navbar.mjs","sources":["../../../../projects/cute-widgets/base/navbar/src/navbar-collapse.component.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-collapse.component.html","../../../../projects/cute-widgets/base/navbar/src/navbar-content.component.ts","../../../../projects/cute-widgets/base/navbar/src/navbar.component.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-brand.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-nav.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-text.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar-toggler.directive.ts","../../../../projects/cute-widgets/base/navbar/src/navbar.module.ts","../../../../projects/cute-widgets/base/navbar/cute-widgets-base-navbar.ts"],"sourcesContent":["import {CuteCollapseBase} from '@cute-widgets/base/collapse';\r\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cute-navbar-collapse',\r\n templateUrl: './navbar-collapse.component.html',\r\n styleUrl: './navbar-collapse.component.scss',\r\n exportAs: 'cuteNavbarCollapse',\r\n host: {\r\n 'class': 'cute-navbar-collapse',\r\n '[class]': '\"cute-navbar-collapse-\"+(horizontal ? \"horizontal\" : \"vertical\")+\" \"+getState()',\r\n '[class.cute-navbar-collapse-animations-enabled]': '!disableAnimation',\r\n '[id]': 'id || null',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CuteNavbarCollapse extends CuteCollapseBase {}\r\n","<div class=\"cute-navbar-collapse-content\">\r\n <ng-content></ng-content>\r\n</div>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {\r\n AfterViewChecked,\r\n ChangeDetectionStrategy,\r\n Component,\r\n inject,\r\n signal, viewChild,\r\n ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport {CUTE_NAVBAR} from './navbar.component';\r\nimport {Subscription} from 'rxjs';\r\nimport {CuteLayoutControl, Expandable} from '@cute-widgets/base/abstract';\r\nimport {MediaMatcher} from '@angular/cdk/layout';\r\nimport {bsBreakpoints} from '@cute-widgets/base/core';\r\nimport {CuteNavbarCollapse} from './navbar-collapse.component';\r\n\r\nlet uniqueId: number = 0;\r\n\r\n/**\r\n * Collapsible navbar content.\r\n */\r\n@Component({\r\n selector: 'cute-navbar-content',\r\n template: `\r\n <cute-navbar-collapse>\r\n <ng-content></ng-content>\r\n </cute-navbar-collapse>\r\n `,\r\n styleUrl: './navbar-content.component.scss',\r\n exportAs: 'cuteNavbarContent',\r\n host: {\r\n 'class': 'cute-navbar-content navbar-collapse',\r\n //'[class.collapsed]': '!expanded',\r\n '[class.breakpoint-matches]': '_breakpointMatches()',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CuteNavbarCollapse,\r\n ]\r\n})\r\nexport class CuteNavbarContent extends CuteLayoutControl implements Expandable, AfterViewChecked {\r\n private _selfSubscriptions: Subscription = new Subscription();\r\n protected _navbar = inject(CUTE_NAVBAR);\r\n protected mediaMatcher = inject(MediaMatcher);\r\n protected _breakpointMatches = signal<boolean>(false);\r\n protected _collapse = viewChild.required(CuteNavbarCollapse);\r\n\r\n private readonly _navbarMediaQueries: string[];\r\n\r\n constructor() {\r\n super();\r\n\r\n this._navbarMediaQueries = bsBreakpoints.getMediaQueries(this._navbar.breakpoint ?? []);\r\n\r\n this._selfSubscriptions.add(\r\n this._navbar.breakpointState.subscribe(state => {\r\n this._breakpointMatches.set(state.matches);\r\n if (!state.matches) {\r\n this._collapse().close(); // if content was in the 'expanded' state when the screen width changed\r\n this._navbar.expansionChange.emit(false);\r\n }\r\n })\r\n );\r\n\r\n }\r\n\r\n get expanded(): boolean {\r\n return this._collapse().expanded;\r\n }\r\n\r\n private get mediaMatches(): boolean {\r\n if (this._navbarMediaQueries.length) {\r\n return this.mediaMatcher.matchMedia(this._navbarMediaQueries[0]).matches;\r\n }\r\n return false;\r\n }\r\n\r\n protected override generateId(): string {\r\n return `cute-navbar-content-${uniqueId++}`;\r\n }\r\n\r\n open() {\r\n this._collapse().open();\r\n }\r\n\r\n close() {\r\n this._collapse().close();\r\n }\r\n\r\n toggle() {\r\n this._collapse().toggle();\r\n }\r\n\r\n override ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this._selfSubscriptions.add(\r\n this._collapse().afterExpand.subscribe(() => {\r\n if (this._breakpointMatches()) {\r\n this._navbar.expansionChange.emit(true);\r\n }\r\n })\r\n );\r\n this._selfSubscriptions.add(\r\n this._collapse().afterCollapse.subscribe(() => {\r\n this._navbar.expansionChange.emit(false);\r\n })\r\n );\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this._breakpointMatches.set(this.mediaMatches);\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._selfSubscriptions.unsubscribe();\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component, computed, ContentChildren, EventEmitter,\r\n HostBinding,\r\n InjectionToken,\r\n Input, isDevMode, Output, QueryList, signal, ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport {CuteLayoutControl} from \"@cute-widgets/base/abstract\";\r\nimport {CuteContainer} from \"@cute-widgets/base/layout\";\r\nimport {CuteNavbarContent} from './navbar-content.component';\r\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\r\n\r\n/** Navbar's vertical non-static position. */\r\nexport type NavbarPosition=\"fixed-top\"|\"fixed-bottom\"|\"sticky-top\"|\"sticky-bottom\";\r\n\r\nexport const CUTE_NAVBAR = new InjectionToken<CuteNavbar>(\"CUTE_NAVBAR\");\r\n\r\nlet nextId = 0;\r\n\r\n/**\r\n * Powerful and responsive navigation header in which responsive behavior depends on `CuteCollapse` component.\r\n * Includes support for branding, navigation, and more.\r\n */\r\n@Component({\r\n selector: 'cute-navbar',\r\n template: `\r\n <cute-container fluid>\r\n <ng-content></ng-content>\r\n </cute-container>\r\n `,\r\n styles: [`\r\n .cute-navbar {\r\n z-index: 1000; /* CWT: 'cdk-overlay-container' has a rule {z-index: 1000} */\r\n }\r\n `],\r\n exportAs: 'cuteNavbar',\r\n host: {\r\n 'class': 'cute-navbar navbar',\r\n '[class.shadow]': 'contentExpanded()',\r\n '[attr.role]': 'role || null',\r\n },\r\n providers: [{ provide: CUTE_NAVBAR, useExisting: CuteNavbar }],\r\n imports: [ CuteContainer ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CuteNavbar extends CuteLayoutControl {\r\n private _expanded = signal<boolean>(false);\r\n\r\n @ContentChildren(CuteNavbarContent, {descendants: true}) navContent: QueryList<CuteNavbarContent> | undefined;\r\n\r\n /** Placement `navbar` in non-static position, if the `position` differs from the default. */\r\n @Input() position: NavbarPosition | undefined;\r\n\r\n /** Event emitted when the navbar's content expansion status changed. */\r\n @Output() expansionChange = new EventEmitter<boolean>();\r\n\r\n readonly contentExpanded = computed(() => this._expanded());\r\n\r\n @HostBinding(\"class\")\r\n get classBinding(): string {\r\n let classList = \"\";\r\n\r\n if (this.breakpoint) {\r\n classList += \"navbar-expand-\"+this.breakpoint;\r\n }\r\n switch (this.position) {\r\n case \"fixed-top\":\r\n case \"fixed-bottom\":\r\n classList += \" \"+this.position;\r\n break;\r\n case \"sticky-top\":\r\n case \"sticky-bottom\":\r\n if (this.breakpoint) {\r\n classList += \" \"+this.position.replace(\"-\", \"-\"+this.breakpoint+\"-\");\r\n } else {\r\n classList += \" \"+this.position;\r\n }\r\n break;\r\n }\r\n return classList;\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.role = \"navigation\";\r\n\r\n this.expansionChange.pipe(takeUntilDestroyed()).subscribe(state => {\r\n this._expanded.set(state);\r\n });\r\n }\r\n\r\n protected generateId(): string {\r\n return `cute-navbar-${++nextId}`;\r\n }\r\n\r\n override ngAfterContentInit() {\r\n super.ngAfterContentInit();\r\n\r\n const count = this.navContent?.length || 0;\r\n if (count > 1 && isDevMode()) {\r\n throw new Error(\"More than one 'cute-navbar-content' elements are found in the 'cute-navbar' component.\");\r\n }\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * Subcomponent for company, product, or project name\r\n */\r\n@Directive({\r\n selector: '[cuteNavbarBrand], [cute-navbar-brand]',\r\n exportAs: 'cuteNavbarBrand',\r\n host: {\r\n 'class': 'cute-navbar-brand navbar-brand'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteNavbarBrand {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {booleanAttribute, Directive, Input} from \"@angular/core\";\r\nimport {CuteNav, CUTE_NAV} from \"@cute-widgets/base/core/nav\";\r\n\r\n/**\r\n * A full-height and lightweight navigation container for including other navigation components.\r\n */\r\n@Directive({\r\n selector: '[cuteNavbarNav], [cute-navbar-nav]',\r\n exportAs: 'cuteNavbarNav',\r\n host: {\r\n 'class': 'cute-navbar-nav navbar-nav align-items-start',\r\n '[class.navbar-nav-scroll]': 'scrollable',\r\n '[style.--bs-scroll-height]': 'scrollHeight',\r\n },\r\n standalone: true,\r\n providers: [{provide: CUTE_NAV, useExisting: CuteNavbarNav}],\r\n})\r\nexport class CuteNavbarNav extends CuteNav {\r\n\r\n /**\r\n * Enable/disable vertical scrolling within the toggleable contents of a collapsed `navbar`.\r\n * By default, scrolling kicks in at 75vh (or 75% of the viewport height).\r\n */\r\n @Input({transform: booleanAttribute}) scrollable: boolean = false;\r\n\r\n /** The minimum height of the expanded content that triggers the scrolling mode when `scrollable` property is enabled. Default is **75vh**. */\r\n @Input()\r\n get scrollHeight(): string | undefined {return this._scrollHeight;}\r\n set scrollHeight(value: string | number | undefined) {\r\n if (value !== this._scrollHeight) {\r\n if (typeof value===\"number\") {\r\n value = `${value}px`;\r\n }\r\n this._scrollHeight = value;\r\n }\r\n }\r\n private _scrollHeight: string | undefined;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {Directive} from \"@angular/core\";\r\n\r\n/**\r\n * This directive adjusts vertical alignment and horizontal spacing for strings of text.\r\n */\r\n@Directive({\r\n selector: 'cute-navbar-text, [cuteNavbarText], [cute-navbar-text]',\r\n exportAs: 'cuteNavbarText',\r\n host: {\r\n 'class': 'navbar-text'\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteNavbarText {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive} from \"@angular/core\";\r\nimport {CuteCollapseTrigger} from \"@cute-widgets/base/collapse\";\r\n\r\n/**\r\n * A trigger element for expand/collapse the `cute-navbar-content`.\r\n */\r\n@Directive({\r\n selector: '[cuteNavbarToggler], [cute-navbar-toggler]',\r\n exportAs: 'cuteNavbarToggler',\r\n host: {\r\n 'class': 'navbar-toggler border-secondary-subtle',\r\n 'type': 'button',\r\n },\r\n hostDirectives: [\r\n {\r\n directive: CuteCollapseTrigger,\r\n inputs: ['cuteCollapseTriggerFor:cuteNavbarTogglerFor'],\r\n outputs: [],\r\n }\r\n ],\r\n standalone: true,\r\n})\r\nexport class CuteNavbarToggler {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport { NgModule } from '@angular/core';\r\nimport {CuteNavbar} from \"./navbar.component\";\r\nimport {CuteNavbarBrand} from \"./navbar-brand.directive\";\r\nimport {CuteNavbarContent} from \"./navbar-content.component\";\r\nimport {CuteNavbarToggler} from \"./navbar-toggler.directive\";\r\nimport {CuteNavbarNav} from \"./navbar-nav.directive\";\r\nimport {CuteNavbarText} from \"./navbar-text.directive\";\r\nimport {CuteCollapseModule} from '@cute-widgets/base/collapse';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CuteCollapseModule,\r\n CuteNavbar,\r\n CuteNavbarBrand,\r\n CuteNavbarContent,\r\n CuteNavbarNav,\r\n CuteNavbarText,\r\n CuteNavbarToggler,\r\n ],\r\n exports: [\r\n CuteNavbar,\r\n CuteNavbarBrand,\r\n CuteNavbarContent,\r\n CuteNavbarNav,\r\n CuteNavbarText,\r\n CuteNavbarToggler,\r\n ],\r\n providers: [],\r\n})\r\nexport class CuteNavbarModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|