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