@xui/breadcrumb 2.0.0-alpha.0 → 2.0.0-alpha.11
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/LICENSE +201 -0
- package/README.md +214 -4
- package/fesm2022/xui-breadcrumb.mjs +390 -123
- package/fesm2022/xui-breadcrumb.mjs.map +1 -1
- package/package.json +38 -16
- package/types/xui-breadcrumb.d.ts +162 -0
- package/index.d.ts +0 -28
- package/lib/breadcrumb-ellipsis.component.d.ts +0 -8
- package/lib/breadcrumb-item.directive.d.ts +0 -9
- package/lib/breadcrumb-link.directive.d.ts +0 -10
- package/lib/breadcrumb-list.directive.d.ts +0 -8
- package/lib/breadcrumb-page.directive.d.ts +0 -8
- package/lib/breadcrumb-separator.component.d.ts +0 -8
- package/lib/breadcrumb.directive.d.ts +0 -9
|
@@ -1,29 +1,54 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, computed, Component, booleanAttribute,
|
|
2
|
+
import { input, computed, Directive, ChangeDetectionStrategy, Component, booleanAttribute, contentChild, TemplateRef, numberAttribute, output } from '@angular/core';
|
|
3
|
+
import { xui } from '@xui/core';
|
|
3
4
|
import { NgIcon, provideIcons } from '@ng-icons/core';
|
|
4
5
|
import { matMoreHorizRound, matChevronRightRound } from '@ng-icons/material-icons/round';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import * as i1 from '@angular/router';
|
|
6
|
+
import { XuiIcon } from '@xui/icon';
|
|
7
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
8
8
|
import { RouterLink } from '@angular/router';
|
|
9
|
+
import { XuiOverflowList, XuiOverflowListItem, XuiOverflowListOverflow } from '@xui/overflow-list';
|
|
9
10
|
|
|
10
|
-
class
|
|
11
|
-
class = input(''
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
class XuiBreadcrumb {
|
|
12
|
+
class = input('', /* @ts-ignore */
|
|
13
|
+
...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
14
|
+
ariaLabel = input('breadcrumb', { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
|
|
15
|
+
computedClass = computed(() => xui(this.class()), /* @ts-ignore */
|
|
16
|
+
...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
|
|
17
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumb, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
18
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: XuiBreadcrumb, isStandalone: true, selector: "[xuiBreadcrumb]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "navigation" }, properties: { "class": "computedClass()", "attr.aria-label": "ariaLabel()" } }, ngImport: i0 });
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumb, decorators: [{
|
|
21
|
+
type: Directive,
|
|
22
|
+
args: [{
|
|
23
|
+
selector: '[xuiBreadcrumb]',
|
|
24
|
+
host: {
|
|
25
|
+
role: 'navigation',
|
|
26
|
+
'[class]': 'computedClass()',
|
|
27
|
+
'[attr.aria-label]': 'ariaLabel()'
|
|
28
|
+
}
|
|
29
|
+
}]
|
|
30
|
+
}], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }] } });
|
|
31
|
+
|
|
32
|
+
class XuiBreadcrumbEllipsis {
|
|
33
|
+
class = input('', /* @ts-ignore */
|
|
34
|
+
...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
35
|
+
computedClass = computed(() => xui('flex items-center justify-center', this.class()), /* @ts-ignore */
|
|
36
|
+
...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
|
|
37
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbEllipsis, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", type: XuiBreadcrumbEllipsis, isStandalone: true, selector: "xui-breadcrumb-ellipsis", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideIcons({ matMoreHorizRound })], ngImport: i0, template: `
|
|
15
39
|
<span role="presentation" aria-hidden="true" [class]="computedClass()">
|
|
16
40
|
<ng-icon xui size="sm" name="matMoreHorizRound" />
|
|
17
41
|
<span class="sr-only">More</span>
|
|
18
42
|
</span>
|
|
19
|
-
`, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type:
|
|
43
|
+
`, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: XuiIcon, selector: "ng-icon[xui]", inputs: ["class", "size", "color", "title"], exportAs: ["xuiIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20
44
|
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbEllipsis, decorators: [{
|
|
22
46
|
type: Component,
|
|
23
47
|
args: [{
|
|
24
48
|
selector: 'xui-breadcrumb-ellipsis',
|
|
25
|
-
imports: [NgIcon,
|
|
49
|
+
imports: [NgIcon, XuiIcon],
|
|
26
50
|
providers: [provideIcons({ matMoreHorizRound })],
|
|
51
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
27
52
|
template: `
|
|
28
53
|
<span role="presentation" aria-hidden="true" [class]="computedClass()">
|
|
29
54
|
<ng-icon xui size="sm" name="matMoreHorizRound" />
|
|
@@ -31,16 +56,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImpor
|
|
|
31
56
|
</span>
|
|
32
57
|
`
|
|
33
58
|
}]
|
|
34
|
-
}] });
|
|
59
|
+
}], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
|
|
35
60
|
|
|
36
|
-
class
|
|
37
|
-
class = input(''
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
61
|
+
class XuiBreadcrumbItem {
|
|
62
|
+
class = input('', /* @ts-ignore */
|
|
63
|
+
...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
64
|
+
active = input(false, { ...(ngDevMode ? { debugName: "active" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
65
|
+
computedClass = computed(() => xui('inline-flex items-center gap-1.5', this.active() && '[&>*]:font-semibold', this.class()), /* @ts-ignore */
|
|
66
|
+
...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
|
|
67
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
68
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: XuiBreadcrumbItem, isStandalone: true, selector: "[xuiBreadcrumbItem]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "computedClass()" } }, ngImport: i0 });
|
|
42
69
|
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbItem, decorators: [{
|
|
44
71
|
type: Directive,
|
|
45
72
|
args: [{
|
|
46
73
|
selector: '[xuiBreadcrumbItem]',
|
|
@@ -48,50 +75,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImpor
|
|
|
48
75
|
'[class]': 'computedClass()'
|
|
49
76
|
}
|
|
50
77
|
}]
|
|
51
|
-
}] });
|
|
78
|
+
}], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }] } });
|
|
52
79
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
80
|
+
/**
|
|
81
|
+
* A navigable crumb.
|
|
82
|
+
*
|
|
83
|
+
* ```html
|
|
84
|
+
* <a xuiBreadcrumbLink href="/projects">Projects</a>
|
|
85
|
+
* <a xuiBreadcrumbLink [routerLink]="['/projects']">Projects</a>
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* This is styling and disabled semantics only — it deliberately does not
|
|
89
|
+
* compose `RouterLink`. Doing so made every breadcrumb fail to render without a
|
|
90
|
+
* `Router` in the injector, routed or not, because host directives are
|
|
91
|
+
* instantiated unconditionally. Applying `routerLink` alongside it costs the
|
|
92
|
+
* consumer nothing and keeps `@angular/router` optional.
|
|
93
|
+
*/
|
|
94
|
+
class XuiBreadcrumbLink {
|
|
95
|
+
/** The user-defined classes. Merged last so they win over the base classes. */
|
|
96
|
+
class = input('', /* @ts-ignore */
|
|
97
|
+
...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
98
|
+
/** Renders the crumb as unreachable without dropping it from the trail. */
|
|
99
|
+
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
100
|
+
computedClass = computed(() => xui('hover:text-foreground rounded-sm transition-colors focus-visible:outline-5 focus-visible:outline-offset-2', this.disabled() && 'text-foreground-muted pointer-events-none opacity-60 hover:text-inherit', this.class()), /* @ts-ignore */
|
|
101
|
+
...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
|
|
102
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbLink, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
103
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: XuiBreadcrumbLink, isStandalone: true, selector: "[xuiBreadcrumbLink]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "computedClass()", "attr.aria-disabled": "disabled() || null", "attr.tabindex": "disabled() ? -1 : null" } }, ngImport: i0 });
|
|
59
104
|
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbLink, decorators: [{
|
|
61
106
|
type: Directive,
|
|
62
107
|
args: [{
|
|
63
108
|
selector: '[xuiBreadcrumbLink]',
|
|
64
|
-
hostDirectives: [
|
|
65
|
-
{
|
|
66
|
-
directive: RouterLink,
|
|
67
|
-
inputs: [
|
|
68
|
-
'target',
|
|
69
|
-
'queryParams',
|
|
70
|
-
'fragment',
|
|
71
|
-
'queryParamsHandling',
|
|
72
|
-
'state',
|
|
73
|
-
'info',
|
|
74
|
-
'relativeTo',
|
|
75
|
-
'preserveFragment',
|
|
76
|
-
'skipLocationChange',
|
|
77
|
-
'replaceUrl',
|
|
78
|
-
'routerLink: link'
|
|
79
|
-
]
|
|
80
|
-
}
|
|
81
|
-
],
|
|
82
109
|
host: {
|
|
83
|
-
'[class]': 'computedClass()'
|
|
110
|
+
'[class]': 'computedClass()',
|
|
111
|
+
'[attr.aria-disabled]': 'disabled() || null',
|
|
112
|
+
'[attr.tabindex]': 'disabled() ? -1 : null'
|
|
84
113
|
}
|
|
85
114
|
}]
|
|
86
|
-
}] });
|
|
115
|
+
}], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
87
116
|
|
|
88
|
-
class
|
|
89
|
-
class = input(''
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
117
|
+
class XuiBreadcrumbList {
|
|
118
|
+
class = input('', /* @ts-ignore */
|
|
119
|
+
...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
120
|
+
computedClass = computed(() => xui('flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5', this.class()), /* @ts-ignore */
|
|
121
|
+
...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
|
|
122
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbList, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
123
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: XuiBreadcrumbList, isStandalone: true, selector: "[xuiBreadcrumbList]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "computedClass()" } }, ngImport: i0 });
|
|
93
124
|
}
|
|
94
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbList, decorators: [{
|
|
95
126
|
type: Directive,
|
|
96
127
|
args: [{
|
|
97
128
|
selector: '[xuiBreadcrumbList]',
|
|
@@ -99,115 +130,351 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImpor
|
|
|
99
130
|
'[class]': 'computedClass()'
|
|
100
131
|
}
|
|
101
132
|
}]
|
|
102
|
-
}] });
|
|
133
|
+
}], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
|
|
103
134
|
|
|
104
|
-
class
|
|
105
|
-
class = input(''
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
135
|
+
class XuiBreadcrumbPage {
|
|
136
|
+
class = input('', /* @ts-ignore */
|
|
137
|
+
...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
138
|
+
computedClass = computed(() => xui('font-normal text-foreground', this.class()), /* @ts-ignore */
|
|
139
|
+
...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
|
|
140
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbPage, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
141
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: XuiBreadcrumbPage, isStandalone: true, selector: "[xuiBreadcrumbPage]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "link", "aria-disabled": "true", "aria-current": "page" }, properties: { "class": "computedClass()" } }, ngImport: i0 });
|
|
109
142
|
}
|
|
110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbPage, decorators: [{
|
|
111
144
|
type: Directive,
|
|
112
145
|
args: [{
|
|
113
146
|
selector: '[xuiBreadcrumbPage]',
|
|
114
147
|
host: {
|
|
115
148
|
role: 'link',
|
|
149
|
+
'aria-disabled': 'true',
|
|
150
|
+
'aria-current': 'page',
|
|
116
151
|
'[class]': 'computedClass()'
|
|
117
|
-
// TODO
|
|
118
|
-
// '[attr.aria-disabled]': 'disabled',
|
|
119
|
-
// '[attr.aria-current]': 'page',
|
|
120
152
|
}
|
|
121
153
|
}]
|
|
122
|
-
}] });
|
|
154
|
+
}], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
|
|
123
155
|
|
|
124
|
-
class
|
|
125
|
-
class = input(''
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
156
|
+
class XuiBreadcrumbSeparator {
|
|
157
|
+
class = input('', /* @ts-ignore */
|
|
158
|
+
...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
159
|
+
computedClass = computed(() => xui('flex items-center justify-center [&>ng-icon]:text-[14px] [&>ng-icon]:flex!', this.class()), /* @ts-ignore */
|
|
160
|
+
...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
|
|
161
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
162
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", type: XuiBreadcrumbSeparator, isStandalone: true, selector: "[xuiBreadcrumbSeparator]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation", "aria-hidden": "true" }, properties: { "class": "computedClass()" } }, providers: [provideIcons({ matChevronRightRound })], ngImport: i0, template: `
|
|
129
163
|
<ng-content>
|
|
130
|
-
<ng-icon
|
|
164
|
+
<ng-icon name="matChevronRightRound" />
|
|
131
165
|
</ng-content>
|
|
132
|
-
`, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }
|
|
166
|
+
`, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
133
167
|
}
|
|
134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbSeparator, decorators: [{
|
|
135
169
|
type: Component,
|
|
136
170
|
args: [{
|
|
137
171
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
138
172
|
selector: '[xuiBreadcrumbSeparator]',
|
|
139
|
-
imports: [NgIcon
|
|
173
|
+
imports: [NgIcon],
|
|
140
174
|
providers: [provideIcons({ matChevronRightRound })],
|
|
175
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
141
176
|
host: {
|
|
142
177
|
role: 'presentation',
|
|
143
|
-
'
|
|
144
|
-
'[
|
|
178
|
+
'aria-hidden': 'true',
|
|
179
|
+
'[class]': 'computedClass()'
|
|
145
180
|
},
|
|
146
181
|
template: `
|
|
147
182
|
<ng-content>
|
|
148
|
-
<ng-icon
|
|
183
|
+
<ng-icon name="matChevronRightRound" />
|
|
149
184
|
</ng-content>
|
|
150
185
|
`
|
|
151
186
|
}]
|
|
152
|
-
}] });
|
|
187
|
+
}], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
|
|
153
188
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
159
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.3", type: XuiBreadcrumbDirective, isStandalone: true, selector: "[xuiBreadcrumb]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "navigation" }, properties: { "class": "computedClass()", "attr.aria-label": "ariaLabel()" } }, ngImport: i0 });
|
|
189
|
+
/** Replaces the default rendering of every crumb. */
|
|
190
|
+
class XuiBreadcrumbsItem {
|
|
191
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbsItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
192
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: XuiBreadcrumbsItem, isStandalone: true, selector: "ng-template[xuiBreadcrumbsItem]", ngImport: i0 });
|
|
160
193
|
}
|
|
161
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
194
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbsItem, decorators: [{
|
|
162
195
|
type: Directive,
|
|
196
|
+
args: [{ selector: 'ng-template[xuiBreadcrumbsItem]' }]
|
|
197
|
+
}] });
|
|
198
|
+
/** Replaces the default rendering of the current crumb only. */
|
|
199
|
+
class XuiBreadcrumbsCurrent {
|
|
200
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbsCurrent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
201
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: XuiBreadcrumbsCurrent, isStandalone: true, selector: "ng-template[xuiBreadcrumbsCurrent]", ngImport: i0 });
|
|
202
|
+
}
|
|
203
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbsCurrent, decorators: [{
|
|
204
|
+
type: Directive,
|
|
205
|
+
args: [{ selector: 'ng-template[xuiBreadcrumbsCurrent]' }]
|
|
206
|
+
}] });
|
|
207
|
+
/** Replaces the ellipsis shown in place of the collapsed crumbs. */
|
|
208
|
+
class XuiBreadcrumbsOverflow {
|
|
209
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbsOverflow, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
210
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: XuiBreadcrumbsOverflow, isStandalone: true, selector: "ng-template[xuiBreadcrumbsOverflow]", ngImport: i0 });
|
|
211
|
+
}
|
|
212
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbsOverflow, decorators: [{
|
|
213
|
+
type: Directive,
|
|
214
|
+
args: [{ selector: 'ng-template[xuiBreadcrumbsOverflow]' }]
|
|
215
|
+
}] });
|
|
216
|
+
/**
|
|
217
|
+
* A breadcrumb trail built from an array, collapsing to fit its container.
|
|
218
|
+
*
|
|
219
|
+
* ```html
|
|
220
|
+
* <xui-breadcrumbs [items]="crumbs()" (itemClick)="open($event)" />
|
|
221
|
+
* ```
|
|
222
|
+
*
|
|
223
|
+
* This is the assembled form of the breadcrumb parts, wired to
|
|
224
|
+
* `xui-overflow-list` so crumbs that do not fit fold into an ellipsis. Compose
|
|
225
|
+
* the parts directly when the markup has to differ; reach for this when the
|
|
226
|
+
* trail is data.
|
|
227
|
+
*
|
|
228
|
+
* The collapsed crumbs are handed to the overflow template, so a menu can be
|
|
229
|
+
* hung off the ellipsis. Without one they are not lost — the template receives
|
|
230
|
+
* them and `(overflow)` reports them.
|
|
231
|
+
*
|
|
232
|
+
* An `icon` names an `@ng-icons` icon that the application registers; this
|
|
233
|
+
* package cannot know the set in advance.
|
|
234
|
+
*/
|
|
235
|
+
class XuiBreadcrumbs {
|
|
236
|
+
itemTemplate = contentChild(XuiBreadcrumbsItem, { ...(ngDevMode ? { debugName: "itemTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
237
|
+
currentTemplate = contentChild(XuiBreadcrumbsCurrent, { ...(ngDevMode ? { debugName: "currentTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
238
|
+
overflowTemplate = contentChild(XuiBreadcrumbsOverflow, { ...(ngDevMode ? { debugName: "overflowTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
239
|
+
/** The user-defined classes. Merged last so they win over the base classes. */
|
|
240
|
+
class = input('', /* @ts-ignore */
|
|
241
|
+
...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
|
|
242
|
+
items = input.required(/* @ts-ignore */
|
|
243
|
+
...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
244
|
+
/** Which end collapses. A trail collapses from the start, keeping where you are. */
|
|
245
|
+
collapseFrom = input('start', /* @ts-ignore */
|
|
246
|
+
...(ngDevMode ? [{ debugName: "collapseFrom" }] : /* istanbul ignore next */ []));
|
|
247
|
+
/** Never collapse below this many crumbs, however narrow the container gets. */
|
|
248
|
+
minVisibleItems = input(0, { ...(ngDevMode ? { debugName: "minVisibleItems" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
249
|
+
/** Emits the collapsed crumbs whenever the set changes. */
|
|
250
|
+
overflow = output();
|
|
251
|
+
/** Emits when a navigable crumb is activated. A crumb with neither `href` nor `link` is not. */
|
|
252
|
+
itemClick = output();
|
|
253
|
+
computedClass = computed(() => xui('block min-w-0', this.class()), /* @ts-ignore */
|
|
254
|
+
...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
|
|
255
|
+
/** The last crumb is where you are, unless an item says otherwise. */
|
|
256
|
+
isCurrent(index) {
|
|
257
|
+
return this.items()[index]?.current ?? index === this.items().length - 1;
|
|
258
|
+
}
|
|
259
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbs, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
260
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: XuiBreadcrumbs, isStandalone: true, selector: "xui-breadcrumbs", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, collapseFrom: { classPropertyName: "collapseFrom", publicName: "collapseFrom", isSignal: true, isRequired: false, transformFunction: null }, minVisibleItems: { classPropertyName: "minVisibleItems", publicName: "minVisibleItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { overflow: "overflow", itemClick: "itemClick" }, host: { properties: { "class": "computedClass()" } }, queries: [{ propertyName: "itemTemplate", first: true, predicate: XuiBreadcrumbsItem, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "currentTemplate", first: true, predicate: XuiBreadcrumbsCurrent, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "overflowTemplate", first: true, predicate: XuiBreadcrumbsOverflow, descendants: true, read: TemplateRef, isSignal: true }], hostDirectives: [{ directive: XuiBreadcrumb, inputs: ["aria-label", "aria-label"] }], ngImport: i0, template: `
|
|
261
|
+
<xui-overflow-list
|
|
262
|
+
role="list"
|
|
263
|
+
itemRole="listitem"
|
|
264
|
+
class="text-foreground-muted gap-1.5 text-sm"
|
|
265
|
+
[items]="items()"
|
|
266
|
+
[collapseFrom]="collapseFrom()"
|
|
267
|
+
[minVisibleItems]="minVisibleItems()"
|
|
268
|
+
(overflow)="overflow.emit($event)"
|
|
269
|
+
>
|
|
270
|
+
<ng-template xuiOverflowListItem let-item let-index="index">
|
|
271
|
+
<span xuiBreadcrumbItem class="whitespace-nowrap">
|
|
272
|
+
@if (index > 0) {
|
|
273
|
+
<span xuiBreadcrumbSeparator></span>
|
|
274
|
+
}
|
|
275
|
+
<ng-container
|
|
276
|
+
*ngTemplateOutlet="
|
|
277
|
+
isCurrent(index)
|
|
278
|
+
? (currentTemplate() ?? itemTemplate() ?? defaultCurrent)
|
|
279
|
+
: (itemTemplate() ?? defaultCrumb);
|
|
280
|
+
context: { $implicit: item, index: index, current: isCurrent(index) }
|
|
281
|
+
"
|
|
282
|
+
/>
|
|
283
|
+
</span>
|
|
284
|
+
</ng-template>
|
|
285
|
+
|
|
286
|
+
<ng-template xuiOverflowListOverflow let-hidden let-count="count">
|
|
287
|
+
<span xuiBreadcrumbItem class="whitespace-nowrap">
|
|
288
|
+
@if (collapseFrom() === 'end') {
|
|
289
|
+
<span xuiBreadcrumbSeparator></span>
|
|
290
|
+
}
|
|
291
|
+
<ng-container
|
|
292
|
+
*ngTemplateOutlet="overflowTemplate() ?? defaultOverflow; context: { $implicit: hidden, count: count }"
|
|
293
|
+
/>
|
|
294
|
+
</span>
|
|
295
|
+
</ng-template>
|
|
296
|
+
</xui-overflow-list>
|
|
297
|
+
|
|
298
|
+
<ng-template #defaultOverflow>
|
|
299
|
+
<xui-breadcrumb-ellipsis />
|
|
300
|
+
</ng-template>
|
|
301
|
+
|
|
302
|
+
<ng-template #defaultCurrent let-item>
|
|
303
|
+
<span xuiBreadcrumbPage class="inline-flex items-center gap-1.5">
|
|
304
|
+
<ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
|
|
305
|
+
</span>
|
|
306
|
+
</ng-template>
|
|
307
|
+
|
|
308
|
+
<ng-template #defaultCrumb let-item>
|
|
309
|
+
@if (item.link) {
|
|
310
|
+
<a
|
|
311
|
+
xuiBreadcrumbLink
|
|
312
|
+
class="inline-flex items-center gap-1.5"
|
|
313
|
+
[routerLink]="item.link"
|
|
314
|
+
[attr.target]="item.target"
|
|
315
|
+
[disabled]="item.disabled"
|
|
316
|
+
(click)="itemClick.emit(item)"
|
|
317
|
+
>
|
|
318
|
+
<ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
|
|
319
|
+
</a>
|
|
320
|
+
} @else if (item.href) {
|
|
321
|
+
<a
|
|
322
|
+
xuiBreadcrumbLink
|
|
323
|
+
class="inline-flex items-center gap-1.5"
|
|
324
|
+
[href]="item.href"
|
|
325
|
+
[attr.target]="item.target"
|
|
326
|
+
[disabled]="item.disabled"
|
|
327
|
+
(click)="itemClick.emit(item)"
|
|
328
|
+
>
|
|
329
|
+
<ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
|
|
330
|
+
</a>
|
|
331
|
+
} @else {
|
|
332
|
+
<span xuiBreadcrumbLink class="inline-flex items-center gap-1.5" [disabled]="item.disabled">
|
|
333
|
+
<ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
|
|
334
|
+
</span>
|
|
335
|
+
}
|
|
336
|
+
</ng-template>
|
|
337
|
+
|
|
338
|
+
<ng-template #crumbBody let-item>
|
|
339
|
+
@if (item.icon) {
|
|
340
|
+
<ng-icon xui size="sm" class="shrink-0" [name]="item.icon" />
|
|
341
|
+
}
|
|
342
|
+
@if (item.text) {
|
|
343
|
+
<span class="truncate">{{ item.text }}</span>
|
|
344
|
+
}
|
|
345
|
+
</ng-template>
|
|
346
|
+
`, isInline: true, dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "component", type: XuiBreadcrumbEllipsis, selector: "xui-breadcrumb-ellipsis", inputs: ["class"] }, { kind: "directive", type: XuiBreadcrumbItem, selector: "[xuiBreadcrumbItem]", inputs: ["class", "active"] }, { kind: "directive", type: XuiBreadcrumbLink, selector: "[xuiBreadcrumbLink]", inputs: ["class", "disabled"] }, { kind: "directive", type: XuiBreadcrumbPage, selector: "[xuiBreadcrumbPage]", inputs: ["class"] }, { kind: "component", type: XuiBreadcrumbSeparator, selector: "[xuiBreadcrumbSeparator]", inputs: ["class"] }, { kind: "directive", type: XuiIcon, selector: "ng-icon[xui]", inputs: ["class", "size", "color", "title"], exportAs: ["xuiIcon"] }, { kind: "component", type: XuiOverflowList, selector: "xui-overflow-list", inputs: ["class", "items", "collapseFrom", "minVisibleItems", "alwaysRenderOverflow", "itemRole"], outputs: ["overflow"] }, { kind: "directive", type: XuiOverflowListItem, selector: "ng-template[xuiOverflowListItem]" }, { kind: "directive", type: XuiOverflowListOverflow, selector: "ng-template[xuiOverflowListOverflow]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
347
|
+
}
|
|
348
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: XuiBreadcrumbs, decorators: [{
|
|
349
|
+
type: Component,
|
|
163
350
|
args: [{
|
|
164
|
-
selector: '
|
|
351
|
+
selector: 'xui-breadcrumbs',
|
|
352
|
+
imports: [
|
|
353
|
+
NgIcon,
|
|
354
|
+
NgTemplateOutlet,
|
|
355
|
+
RouterLink,
|
|
356
|
+
XuiBreadcrumbEllipsis,
|
|
357
|
+
XuiBreadcrumbItem,
|
|
358
|
+
XuiBreadcrumbLink,
|
|
359
|
+
XuiBreadcrumbPage,
|
|
360
|
+
XuiBreadcrumbSeparator,
|
|
361
|
+
XuiIcon,
|
|
362
|
+
XuiOverflowList,
|
|
363
|
+
XuiOverflowListItem,
|
|
364
|
+
XuiOverflowListOverflow
|
|
365
|
+
],
|
|
366
|
+
hostDirectives: [{ directive: XuiBreadcrumb, inputs: ['aria-label'] }],
|
|
367
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
368
|
+
template: `
|
|
369
|
+
<xui-overflow-list
|
|
370
|
+
role="list"
|
|
371
|
+
itemRole="listitem"
|
|
372
|
+
class="text-foreground-muted gap-1.5 text-sm"
|
|
373
|
+
[items]="items()"
|
|
374
|
+
[collapseFrom]="collapseFrom()"
|
|
375
|
+
[minVisibleItems]="minVisibleItems()"
|
|
376
|
+
(overflow)="overflow.emit($event)"
|
|
377
|
+
>
|
|
378
|
+
<ng-template xuiOverflowListItem let-item let-index="index">
|
|
379
|
+
<span xuiBreadcrumbItem class="whitespace-nowrap">
|
|
380
|
+
@if (index > 0) {
|
|
381
|
+
<span xuiBreadcrumbSeparator></span>
|
|
382
|
+
}
|
|
383
|
+
<ng-container
|
|
384
|
+
*ngTemplateOutlet="
|
|
385
|
+
isCurrent(index)
|
|
386
|
+
? (currentTemplate() ?? itemTemplate() ?? defaultCurrent)
|
|
387
|
+
: (itemTemplate() ?? defaultCrumb);
|
|
388
|
+
context: { $implicit: item, index: index, current: isCurrent(index) }
|
|
389
|
+
"
|
|
390
|
+
/>
|
|
391
|
+
</span>
|
|
392
|
+
</ng-template>
|
|
393
|
+
|
|
394
|
+
<ng-template xuiOverflowListOverflow let-hidden let-count="count">
|
|
395
|
+
<span xuiBreadcrumbItem class="whitespace-nowrap">
|
|
396
|
+
@if (collapseFrom() === 'end') {
|
|
397
|
+
<span xuiBreadcrumbSeparator></span>
|
|
398
|
+
}
|
|
399
|
+
<ng-container
|
|
400
|
+
*ngTemplateOutlet="overflowTemplate() ?? defaultOverflow; context: { $implicit: hidden, count: count }"
|
|
401
|
+
/>
|
|
402
|
+
</span>
|
|
403
|
+
</ng-template>
|
|
404
|
+
</xui-overflow-list>
|
|
405
|
+
|
|
406
|
+
<ng-template #defaultOverflow>
|
|
407
|
+
<xui-breadcrumb-ellipsis />
|
|
408
|
+
</ng-template>
|
|
409
|
+
|
|
410
|
+
<ng-template #defaultCurrent let-item>
|
|
411
|
+
<span xuiBreadcrumbPage class="inline-flex items-center gap-1.5">
|
|
412
|
+
<ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
|
|
413
|
+
</span>
|
|
414
|
+
</ng-template>
|
|
415
|
+
|
|
416
|
+
<ng-template #defaultCrumb let-item>
|
|
417
|
+
@if (item.link) {
|
|
418
|
+
<a
|
|
419
|
+
xuiBreadcrumbLink
|
|
420
|
+
class="inline-flex items-center gap-1.5"
|
|
421
|
+
[routerLink]="item.link"
|
|
422
|
+
[attr.target]="item.target"
|
|
423
|
+
[disabled]="item.disabled"
|
|
424
|
+
(click)="itemClick.emit(item)"
|
|
425
|
+
>
|
|
426
|
+
<ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
|
|
427
|
+
</a>
|
|
428
|
+
} @else if (item.href) {
|
|
429
|
+
<a
|
|
430
|
+
xuiBreadcrumbLink
|
|
431
|
+
class="inline-flex items-center gap-1.5"
|
|
432
|
+
[href]="item.href"
|
|
433
|
+
[attr.target]="item.target"
|
|
434
|
+
[disabled]="item.disabled"
|
|
435
|
+
(click)="itemClick.emit(item)"
|
|
436
|
+
>
|
|
437
|
+
<ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
|
|
438
|
+
</a>
|
|
439
|
+
} @else {
|
|
440
|
+
<span xuiBreadcrumbLink class="inline-flex items-center gap-1.5" [disabled]="item.disabled">
|
|
441
|
+
<ng-container *ngTemplateOutlet="crumbBody; context: { $implicit: item }" />
|
|
442
|
+
</span>
|
|
443
|
+
}
|
|
444
|
+
</ng-template>
|
|
445
|
+
|
|
446
|
+
<ng-template #crumbBody let-item>
|
|
447
|
+
@if (item.icon) {
|
|
448
|
+
<ng-icon xui size="sm" class="shrink-0" [name]="item.icon" />
|
|
449
|
+
}
|
|
450
|
+
@if (item.text) {
|
|
451
|
+
<span class="truncate">{{ item.text }}</span>
|
|
452
|
+
}
|
|
453
|
+
</ng-template>
|
|
454
|
+
`,
|
|
165
455
|
host: {
|
|
166
|
-
|
|
167
|
-
'[class]': 'computedClass()',
|
|
168
|
-
'[attr.aria-label]': 'ariaLabel()'
|
|
456
|
+
'[class]': 'computedClass()'
|
|
169
457
|
}
|
|
170
458
|
}]
|
|
171
|
-
}] });
|
|
459
|
+
}], propDecorators: { itemTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => XuiBreadcrumbsItem), { ...{ read: TemplateRef }, isSignal: true }] }], currentTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => XuiBreadcrumbsCurrent), { ...{ read: TemplateRef }, isSignal: true }] }], overflowTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => XuiBreadcrumbsOverflow), { ...{ read: TemplateRef }, isSignal: true }] }], class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], collapseFrom: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseFrom", required: false }] }], minVisibleItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "minVisibleItems", required: false }] }], overflow: [{ type: i0.Output, args: ["overflow"] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }] } });
|
|
172
460
|
|
|
173
461
|
const XuiBreadcrumbImports = [
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
462
|
+
XuiBreadcrumb,
|
|
463
|
+
XuiBreadcrumbEllipsis,
|
|
464
|
+
XuiBreadcrumbItem,
|
|
465
|
+
XuiBreadcrumbLink,
|
|
466
|
+
XuiBreadcrumbList,
|
|
467
|
+
XuiBreadcrumbPage,
|
|
468
|
+
XuiBreadcrumbSeparator,
|
|
469
|
+
XuiBreadcrumbs,
|
|
470
|
+
XuiBreadcrumbsCurrent,
|
|
471
|
+
XuiBreadcrumbsItem,
|
|
472
|
+
XuiBreadcrumbsOverflow
|
|
181
473
|
];
|
|
182
|
-
class XuiBreadcrumbModule {
|
|
183
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
184
|
-
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbModule, imports: [XuiBreadcrumbDirective,
|
|
185
|
-
XuiBreadcrumbEllipsisComponent,
|
|
186
|
-
XuiBreadcrumbItemDirective,
|
|
187
|
-
XuiBreadcrumbLinkDirective,
|
|
188
|
-
XuiBreadcrumbListDirective,
|
|
189
|
-
XuiBreadcrumbPageDirective,
|
|
190
|
-
XuiBreadcrumbSeparatorComponent], exports: [XuiBreadcrumbDirective,
|
|
191
|
-
XuiBreadcrumbEllipsisComponent,
|
|
192
|
-
XuiBreadcrumbItemDirective,
|
|
193
|
-
XuiBreadcrumbLinkDirective,
|
|
194
|
-
XuiBreadcrumbListDirective,
|
|
195
|
-
XuiBreadcrumbPageDirective,
|
|
196
|
-
XuiBreadcrumbSeparatorComponent] });
|
|
197
|
-
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbModule, imports: [XuiBreadcrumbEllipsisComponent,
|
|
198
|
-
XuiBreadcrumbSeparatorComponent] });
|
|
199
|
-
}
|
|
200
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: XuiBreadcrumbModule, decorators: [{
|
|
201
|
-
type: NgModule,
|
|
202
|
-
args: [{
|
|
203
|
-
imports: [...XuiBreadcrumbImports],
|
|
204
|
-
exports: [...XuiBreadcrumbImports]
|
|
205
|
-
}]
|
|
206
|
-
}] });
|
|
207
474
|
|
|
208
475
|
/**
|
|
209
476
|
* Generated bundle index. Do not edit.
|
|
210
477
|
*/
|
|
211
478
|
|
|
212
|
-
export {
|
|
479
|
+
export { XuiBreadcrumb, XuiBreadcrumbEllipsis, XuiBreadcrumbImports, XuiBreadcrumbItem, XuiBreadcrumbLink, XuiBreadcrumbList, XuiBreadcrumbPage, XuiBreadcrumbSeparator, XuiBreadcrumbs, XuiBreadcrumbsCurrent, XuiBreadcrumbsItem, XuiBreadcrumbsOverflow };
|
|
213
480
|
//# sourceMappingURL=xui-breadcrumb.mjs.map
|