@fundamental-ngx/core 0.35.3 → 0.35.4-rc.10
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/action-bar/package.json +1 -1
- package/action-sheet/package.json +1 -1
- package/alert/package.json +1 -1
- package/avatar/package.json +1 -1
- package/avatar-group/package.json +1 -1
- package/bar/package.json +1 -1
- package/breadcrumb/breadcrumb-item.component.d.ts +20 -13
- package/breadcrumb/breadcrumb.component.d.ts +46 -34
- package/breadcrumb/breadcrumb.module.d.ts +3 -1
- package/breadcrumb/esm2020/breadcrumb-item.component.mjs +44 -23
- package/breadcrumb/esm2020/breadcrumb.component.mjs +93 -88
- package/breadcrumb/esm2020/breadcrumb.module.mjs +12 -4
- package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs +147 -114
- package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs +144 -111
- package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/breadcrumb/package.json +1 -1
- package/busy-indicator/package.json +1 -1
- package/button/package.json +1 -1
- package/calendar/package.json +1 -1
- package/card/package.json +1 -1
- package/carousel/package.json +1 -1
- package/checkbox/package.json +1 -1
- package/combobox/combobox.component.d.ts +8 -1
- package/combobox/combobox.interface.d.ts +1 -0
- package/combobox/esm2020/combobox-mobile/combobox-mobile.component.mjs +2 -2
- package/combobox/esm2020/combobox.component.mjs +22 -9
- package/combobox/esm2020/combobox.interface.mjs +1 -1
- package/combobox/fesm2015/fundamental-ngx-core-combobox.mjs +22 -9
- package/combobox/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/combobox/fesm2020/fundamental-ngx-core-combobox.mjs +22 -9
- package/combobox/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/combobox/package.json +1 -1
- package/content-density/esm2020/classes/deprecated-compact.directive.mjs +4 -4
- package/content-density/esm2020/classes/deprecated-condensed.directive.mjs +3 -3
- package/content-density/esm2020/classes/deprecated-cozy.directive.mjs +3 -3
- package/content-density/fesm2015/fundamental-ngx-core-content-density.mjs +7 -7
- package/content-density/fesm2015/fundamental-ngx-core-content-density.mjs.map +1 -1
- package/content-density/fesm2020/fundamental-ngx-core-content-density.mjs +7 -7
- package/content-density/fesm2020/fundamental-ngx-core-content-density.mjs.map +1 -1
- package/content-density/package.json +3 -3
- package/date-picker/package.json +1 -1
- package/datetime/package.json +1 -1
- package/datetime-picker/package.json +1 -1
- package/dialog/package.json +1 -1
- package/dynamic-page/package.json +1 -1
- package/dynamic-side-content/package.json +1 -1
- package/esm2020/breadcrumb/breadcrumb-item.component.mjs +44 -23
- package/esm2020/breadcrumb/breadcrumb.component.mjs +93 -88
- package/esm2020/breadcrumb/breadcrumb.module.mjs +12 -4
- package/esm2020/combobox/combobox-mobile/combobox-mobile.component.mjs +2 -2
- package/esm2020/combobox/combobox.component.mjs +22 -9
- package/esm2020/combobox/combobox.interface.mjs +1 -1
- package/esm2020/content-density/classes/deprecated-compact.directive.mjs +4 -4
- package/esm2020/content-density/classes/deprecated-condensed.directive.mjs +3 -3
- package/esm2020/content-density/classes/deprecated-cozy.directive.mjs +3 -3
- package/esm2020/overflow-layout/directives/overflow-expand.directive.mjs +6 -4
- package/esm2020/overflow-layout/directives/overflow-item-container-ref.directive.mjs +2 -2
- package/esm2020/overflow-layout/directives/overflow-item-ref.directive.mjs +20 -8
- package/esm2020/overflow-layout/directives/overflow-layout-item-container.directive.mjs +30 -3
- package/esm2020/overflow-layout/directives/overflow-layout-item.directive.mjs +12 -3
- package/esm2020/overflow-layout/index.mjs +3 -1
- package/esm2020/overflow-layout/interfaces/overflow-expand.interface.mjs +1 -1
- package/esm2020/overflow-layout/interfaces/overflow-item-ref.interface.mjs +1 -1
- package/esm2020/overflow-layout/interfaces/overflow-item.interface.mjs +1 -1
- package/esm2020/overflow-layout/overflow-layout.component.mjs +83 -157
- package/esm2020/overflow-layout/overflow-layout.service.mjs +241 -0
- package/esm2020/tile/directives/numeric-content.directives.mjs +1 -1
- package/esm2020/time/time-column/time-column.component.mjs +7 -8
- package/esm2020/utils/functions/resize-observable.mjs +9 -2
- package/facets/package.json +1 -1
- package/feed-input/package.json +1 -1
- package/feed-list-item/package.json +1 -1
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +147 -114
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-combobox.mjs +22 -9
- package/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-content-density.mjs +7 -7
- package/fesm2015/fundamental-ngx-core-content-density.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-overflow-layout.mjs +378 -166
- package/fesm2015/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-tile.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-time.mjs +6 -7
- package/fesm2015/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-utils.mjs +8 -1
- package/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +144 -111
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-combobox.mjs +22 -9
- package/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-content-density.mjs +7 -7
- package/fesm2020/fundamental-ngx-core-content-density.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-overflow-layout.mjs +375 -165
- package/fesm2020/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-tile.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-time.mjs +6 -7
- package/fesm2020/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-utils.mjs +8 -1
- package/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
- package/file-uploader/package.json +1 -1
- package/fixed-card-layout/package.json +1 -1
- package/flexible-column-layout/package.json +1 -1
- package/form/package.json +1 -1
- package/formatted-text/package.json +1 -1
- package/grid-list/package.json +1 -1
- package/icon/package.json +1 -1
- package/illustrated-message/package.json +1 -1
- package/infinite-scroll/package.json +1 -1
- package/info-label/package.json +1 -1
- package/inline-help/package.json +1 -1
- package/input-group/package.json +1 -1
- package/layout-grid/package.json +1 -1
- package/layout-panel/package.json +1 -1
- package/link/package.json +1 -1
- package/list/package.json +1 -1
- package/menu/package.json +1 -1
- package/message-box/package.json +1 -1
- package/message-strip/package.json +1 -1
- package/message-toast/package.json +1 -1
- package/micro-process-flow/package.json +1 -1
- package/mobile-mode/package.json +1 -1
- package/multi-input/package.json +1 -1
- package/nested-list/package.json +1 -1
- package/notification/package.json +1 -1
- package/object-identifier/package.json +1 -1
- package/object-marker/package.json +1 -1
- package/object-number/package.json +1 -1
- package/object-status/package.json +1 -1
- package/overflow-layout/directives/overflow-expand.directive.d.ts +6 -5
- package/overflow-layout/directives/overflow-item-ref.directive.d.ts +16 -6
- package/overflow-layout/directives/overflow-layout-item-container.directive.d.ts +13 -1
- package/overflow-layout/directives/overflow-layout-item.directive.d.ts +7 -2
- package/overflow-layout/esm2020/directives/overflow-expand.directive.mjs +6 -4
- package/overflow-layout/esm2020/directives/overflow-item-container-ref.directive.mjs +2 -2
- package/overflow-layout/esm2020/directives/overflow-item-ref.directive.mjs +20 -8
- package/overflow-layout/esm2020/directives/overflow-layout-item-container.directive.mjs +30 -3
- package/overflow-layout/esm2020/directives/overflow-layout-item.directive.mjs +12 -3
- package/overflow-layout/esm2020/index.mjs +3 -1
- package/overflow-layout/esm2020/interfaces/overflow-expand.interface.mjs +1 -1
- package/overflow-layout/esm2020/interfaces/overflow-item-ref.interface.mjs +1 -1
- package/overflow-layout/esm2020/interfaces/overflow-item.interface.mjs +1 -1
- package/overflow-layout/esm2020/overflow-layout.component.mjs +83 -157
- package/overflow-layout/esm2020/overflow-layout.service.mjs +241 -0
- package/overflow-layout/fesm2015/fundamental-ngx-core-overflow-layout.mjs +378 -166
- package/overflow-layout/fesm2015/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/overflow-layout/fesm2020/fundamental-ngx-core-overflow-layout.mjs +375 -165
- package/overflow-layout/fesm2020/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/overflow-layout/index.d.ts +2 -0
- package/overflow-layout/interfaces/overflow-expand.interface.d.ts +4 -4
- package/overflow-layout/interfaces/overflow-item-ref.interface.d.ts +14 -3
- package/overflow-layout/interfaces/overflow-item.interface.d.ts +2 -1
- package/overflow-layout/overflow-layout.component.d.ts +19 -31
- package/overflow-layout/overflow-layout.service.d.ts +90 -0
- package/overflow-layout/package.json +14 -13
- package/overflow-layout/tokens/overflow-expand.token.d.ts +1 -1
- package/overflow-layout/tokens/overflow-item-ref.token.d.ts +1 -1
- package/package.json +1 -1
- package/pagination/package.json +1 -1
- package/panel/package.json +1 -1
- package/popover/package.json +1 -1
- package/product-switch/package.json +1 -1
- package/progress-indicator/package.json +1 -1
- package/quick-view/package.json +1 -1
- package/radio/package.json +1 -1
- package/rating-indicator/package.json +1 -1
- package/resizable-card-layout/package.json +1 -1
- package/schematics/ng-add/index.js +5 -1
- package/schematics/ng-add/index.js.map +1 -1
- package/scroll-spy/package.json +1 -1
- package/scrollbar/package.json +1 -1
- package/segmented-button/package.json +1 -1
- package/select/package.json +1 -1
- package/shared/package.json +1 -1
- package/shellbar/package.json +1 -1
- package/side-navigation/package.json +1 -1
- package/slider/package.json +1 -1
- package/split-button/package.json +1 -1
- package/splitter/package.json +1 -1
- package/status-indicator/package.json +1 -1
- package/step-input/package.json +1 -1
- package/switch/package.json +1 -1
- package/table/package.json +1 -1
- package/tabs/package.json +1 -1
- package/text/package.json +1 -1
- package/theming/package.json +1 -1
- package/tile/directives/numeric-content.directives.d.ts +2 -3
- package/tile/esm2020/directives/numeric-content.directives.mjs +1 -1
- package/tile/fesm2015/fundamental-ngx-core-tile.mjs.map +1 -1
- package/tile/fesm2020/fundamental-ngx-core-tile.mjs.map +1 -1
- package/tile/package.json +1 -1
- package/time/esm2020/time-column/time-column.component.mjs +7 -8
- package/time/fesm2015/fundamental-ngx-core-time.mjs +6 -7
- package/time/fesm2015/fundamental-ngx-core-time.mjs.map +1 -1
- package/time/fesm2020/fundamental-ngx-core-time.mjs +6 -7
- package/time/fesm2020/fundamental-ngx-core-time.mjs.map +1 -1
- package/time/package.json +1 -1
- package/time/time-column/time-column.component.d.ts +1 -0
- package/time-picker/package.json +1 -1
- package/timeline/package.json +1 -1
- package/title/package.json +1 -1
- package/token/package.json +1 -1
- package/toolbar/package.json +1 -1
- package/tree/package.json +1 -1
- package/upload-collection/package.json +1 -1
- package/utils/esm2020/functions/resize-observable.mjs +9 -2
- package/utils/fesm2015/fundamental-ngx-core-utils.mjs +8 -1
- package/utils/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
- package/utils/fesm2020/fundamental-ngx-core-utils.mjs +8 -1
- package/utils/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
- package/utils/package.json +1 -1
- package/vertical-navigation/package.json +1 -1
- package/wizard/package.json +1 -1
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, ContentChild, forwardRef,
|
|
3
|
-
import * as
|
|
2
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ContentChild, forwardRef, EventEmitter, isDevMode, Optional, Input, Output, ContentChildren, ViewChild, Directive, NgModule } from '@angular/core';
|
|
3
|
+
import * as i6 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
5
|
+
import { ButtonModule } from '@fundamental-ngx/core/button';
|
|
6
|
+
import * as i2 from '@fundamental-ngx/core/overflow-layout';
|
|
7
|
+
import { OverflowLayoutComponent, OverflowLayoutModule } from '@fundamental-ngx/core/overflow-layout';
|
|
8
|
+
import * as i7 from '@angular/cdk/portal';
|
|
8
9
|
import { DomPortal, PortalModule } from '@angular/cdk/portal';
|
|
10
|
+
import * as i4 from '@fundamental-ngx/core/link';
|
|
11
|
+
import { LinkComponent, LinkModule } from '@fundamental-ngx/core/link';
|
|
9
12
|
import * as i1 from '@fundamental-ngx/core/utils';
|
|
10
|
-
import { PipeModule } from '@fundamental-ngx/core/utils';
|
|
11
|
-
import { BehaviorSubject,
|
|
12
|
-
import * as
|
|
13
|
+
import { DestroyedService, PipeModule } from '@fundamental-ngx/core/utils';
|
|
14
|
+
import { BehaviorSubject, takeUntil } from 'rxjs';
|
|
15
|
+
import * as i3 from '@fundamental-ngx/core/menu';
|
|
13
16
|
import { MenuComponent, MenuModule } from '@fundamental-ngx/core/menu';
|
|
14
|
-
import * as
|
|
17
|
+
import * as i5 from '@fundamental-ngx/core/icon';
|
|
15
18
|
import { IconModule } from '@fundamental-ngx/core/icon';
|
|
16
19
|
import { PopoverModule } from '@fundamental-ngx/core/popover';
|
|
17
20
|
import { DeprecatedCompactDirective, CONTENT_DENSITY_DIRECTIVE, ContentDensityModule } from '@fundamental-ngx/core/content-density';
|
|
@@ -26,46 +29,67 @@ import { DeprecatedCompactDirective, CONTENT_DENSITY_DIRECTIVE, ContentDensityMo
|
|
|
26
29
|
* ```
|
|
27
30
|
*/
|
|
28
31
|
class BreadcrumbItemComponent {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
this.
|
|
32
|
-
|
|
33
|
-
this.
|
|
34
|
-
this.hide = () => this.renderer2.setStyle(this._elementRef.nativeElement, 'display', 'none');
|
|
32
|
+
/** @hidden */
|
|
33
|
+
constructor(elementRef) {
|
|
34
|
+
this.elementRef = elementRef;
|
|
35
|
+
/** @hidden */
|
|
36
|
+
this._attached = false;
|
|
35
37
|
}
|
|
36
38
|
/** @hidden */
|
|
37
|
-
get
|
|
38
|
-
return this.
|
|
39
|
+
get _needsClickProxy() {
|
|
40
|
+
return (!!this.breadcrumbLink?.elementRef().nativeElement.getAttribute('href') || !!this.breadcrumbLink.routerLink);
|
|
39
41
|
}
|
|
40
42
|
/** @hidden */
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
ngAfterViewInit() {
|
|
44
|
+
this._attach();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Sets breadcrumb item dom portal.
|
|
48
|
+
*/
|
|
49
|
+
setPortal() {
|
|
50
|
+
if (!this.portal) {
|
|
51
|
+
this.portal = new DomPortal(this.elementRef);
|
|
52
|
+
}
|
|
43
53
|
}
|
|
44
54
|
/** @hidden */
|
|
45
|
-
|
|
46
|
-
|
|
55
|
+
_detach() {
|
|
56
|
+
if (!this._attached) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (this.linkContentPortal?.isAttached) {
|
|
60
|
+
this.linkContentPortal?.detach();
|
|
61
|
+
}
|
|
62
|
+
if (this.breadcrumbItemPortal?.isAttached) {
|
|
63
|
+
this.breadcrumbItemPortal?.detach();
|
|
64
|
+
}
|
|
65
|
+
this._attached = false;
|
|
47
66
|
}
|
|
48
67
|
/** @hidden */
|
|
49
|
-
|
|
50
|
-
if (this.
|
|
68
|
+
_attach() {
|
|
69
|
+
if (this._attached) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (this.breadcrumbLink && this.breadcrumbLink.contentSpan) {
|
|
51
73
|
this.linkContentPortal = new DomPortal(this.breadcrumbLink.contentSpan.nativeElement);
|
|
52
74
|
}
|
|
53
75
|
this.breadcrumbItemPortal = new DomPortal(this.elementRef.nativeElement.firstElementChild);
|
|
54
|
-
this.
|
|
76
|
+
this._attached = true;
|
|
55
77
|
}
|
|
56
78
|
}
|
|
57
|
-
BreadcrumbItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbItemComponent, deps: [{ token: i0.ElementRef }
|
|
58
|
-
BreadcrumbItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: BreadcrumbItemComponent, selector: "fd-breadcrumb-item", host: { classAttribute: "fd-breadcrumb__item" }, queries: [{ propertyName: "breadcrumbLink", first: true, predicate: i0.forwardRef(function () { return LinkComponent; }), descendants: true }], ngImport: i0, template: '<
|
|
79
|
+
BreadcrumbItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
80
|
+
BreadcrumbItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: BreadcrumbItemComponent, selector: "fd-breadcrumb-item", host: { classAttribute: "fd-breadcrumb__item" }, queries: [{ propertyName: "breadcrumbLink", first: true, predicate: i0.forwardRef(function () { return LinkComponent; }), descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
59
81
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbItemComponent, decorators: [{
|
|
60
82
|
type: Component,
|
|
61
83
|
args: [{
|
|
62
84
|
selector: 'fd-breadcrumb-item',
|
|
63
|
-
template: '<
|
|
85
|
+
template: '<ng-content></ng-content>',
|
|
64
86
|
host: {
|
|
65
87
|
class: 'fd-breadcrumb__item'
|
|
66
|
-
}
|
|
88
|
+
},
|
|
89
|
+
encapsulation: ViewEncapsulation.None,
|
|
90
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
67
91
|
}]
|
|
68
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }
|
|
92
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { breadcrumbLink: [{
|
|
69
93
|
type: ContentChild,
|
|
70
94
|
args: [forwardRef(() => LinkComponent)]
|
|
71
95
|
}] } });
|
|
@@ -82,85 +106,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
82
106
|
* ```
|
|
83
107
|
*/
|
|
84
108
|
class BreadcrumbComponent {
|
|
85
|
-
|
|
109
|
+
/** @hidden */
|
|
110
|
+
constructor(elementRef, _onDestroy$, _rtlService, _cdr) {
|
|
86
111
|
this.elementRef = elementRef;
|
|
112
|
+
this._onDestroy$ = _onDestroy$;
|
|
87
113
|
this._rtlService = _rtlService;
|
|
88
|
-
this.
|
|
89
|
-
this._resizeObserver = _resizeObserver;
|
|
90
|
-
this._ngZone = _ngZone;
|
|
91
|
-
/** @hidden */
|
|
92
|
-
this._collapsedBreadcrumbItems = [];
|
|
93
|
-
/** @hidden */
|
|
94
|
-
this._placement$ = new BehaviorSubject('bottom-start');
|
|
114
|
+
this._cdr = _cdr;
|
|
95
115
|
/** Whether to append items to the overflow dropdown in reverse order. Default is true. */
|
|
96
116
|
this.reverse = false;
|
|
117
|
+
/**
|
|
118
|
+
* Event emitted when visible items count is changed.
|
|
119
|
+
*/
|
|
120
|
+
this.visibleItemsCount = new EventEmitter();
|
|
121
|
+
/**
|
|
122
|
+
* Event emitted when hidden items count is changed.
|
|
123
|
+
*/
|
|
124
|
+
this.hiddenItemsCount = new EventEmitter();
|
|
125
|
+
/**
|
|
126
|
+
* @hidden
|
|
127
|
+
* Array of breadcrumb items.
|
|
128
|
+
*/
|
|
129
|
+
this._items = [];
|
|
97
130
|
/** @hidden */
|
|
98
|
-
this.
|
|
99
|
-
/** @hidden */
|
|
100
|
-
this._itemToSize = new Map();
|
|
131
|
+
this._placement$ = new BehaviorSubject('bottom-start');
|
|
101
132
|
}
|
|
102
|
-
/**
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
133
|
+
/**
|
|
134
|
+
* @deprecated
|
|
135
|
+
* Breadcrumbs component now uses more advanced calculation mechanism without the need of specifying the container element.
|
|
136
|
+
*
|
|
137
|
+
* The element to act as the breadcrumb container. When provided, the breadcrumb's responsive collapsing behavior
|
|
138
|
+
* performs better. When not provided, the immediate parent element's width will be used.
|
|
139
|
+
*/
|
|
140
|
+
set containerElement(_) {
|
|
141
|
+
if (isDevMode()) {
|
|
142
|
+
console.warn('Breadcrumbs component now uses more advanced calculation mechanism without the need of specifying the container element.');
|
|
106
143
|
}
|
|
107
144
|
}
|
|
108
145
|
/** @hidden */
|
|
109
|
-
|
|
110
|
-
this.
|
|
111
|
-
.pipe(
|
|
112
|
-
.subscribe());
|
|
113
|
-
firstValueFrom(this._ngZone.onStable).then(() => {
|
|
114
|
-
this._subscriptions.add(this._resizeObserver
|
|
115
|
-
.observe(this.containerElement || this.elementRef.nativeElement.parentElement)
|
|
116
|
-
// Add small delay for performance reasons.
|
|
117
|
-
.pipe(debounceTime(30))
|
|
118
|
-
.subscribe(() => this.onResize()));
|
|
119
|
-
});
|
|
146
|
+
ngOnInit() {
|
|
147
|
+
this._rtlService?.rtl
|
|
148
|
+
.pipe(takeUntil(this._onDestroy$))
|
|
149
|
+
.subscribe((value) => this._placement$.next(value ? 'bottom-end' : 'bottom-start'));
|
|
120
150
|
}
|
|
121
151
|
/** @hidden */
|
|
122
|
-
ngOnDestroy() {
|
|
123
|
-
this._subscriptions.unsubscribe();
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Callback function when breadcrumbs container has been resized.
|
|
127
|
-
*/
|
|
128
152
|
onResize() {
|
|
129
|
-
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
this._containerBoundary = this.elementRef.nativeElement.parentElement.getBoundingClientRect().width;
|
|
133
|
-
if (this.containerElement) {
|
|
134
|
-
this._containerBoundary = this.containerElement.getBoundingClientRect().width;
|
|
135
|
-
}
|
|
136
|
-
if (this._overflowContainer) {
|
|
137
|
-
this._containerBoundary -= this._overflowContainer.nativeElement.getBoundingClientRect().width;
|
|
138
|
-
}
|
|
139
|
-
let visibleSum = 0;
|
|
140
|
-
const breadcrumbItemComponents = this._breadcrumbItems.toArray();
|
|
141
|
-
let i;
|
|
142
|
-
for (i = breadcrumbItemComponents.length - 1; i >= 0; i--) {
|
|
143
|
-
const breadcrumbItem = breadcrumbItemComponents[i];
|
|
144
|
-
const itemSize = this._itemToSize.has(breadcrumbItem)
|
|
145
|
-
? this._itemToSize.get(breadcrumbItem)
|
|
146
|
-
: breadcrumbItem.width;
|
|
147
|
-
if (visibleSum + itemSize <= this._containerBoundary) {
|
|
148
|
-
visibleSum += itemSize;
|
|
149
|
-
breadcrumbItem.show();
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
break;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
const collapsedBreadcrumbItems = breadcrumbItemComponents.slice(0, ++i);
|
|
156
|
-
this._collapsedBreadcrumbItems = this.reverse ? collapsedBreadcrumbItems : collapsedBreadcrumbItems.reverse();
|
|
157
|
-
this._collapsedBreadcrumbItems.forEach((item) => item.hide());
|
|
158
|
-
this._cdRef.detectChanges();
|
|
159
|
-
}
|
|
160
|
-
/** @hidden */
|
|
161
|
-
_keyDownHandle(event) {
|
|
162
|
-
this._menuComponent.toggle();
|
|
163
|
-
event.preventDefault();
|
|
153
|
+
this._overflowLayout.triggerRecalculation();
|
|
164
154
|
}
|
|
165
155
|
/**
|
|
166
156
|
* We catch interactions with item, Enter, Space, Mouse click and Touch click,
|
|
@@ -172,29 +162,66 @@ class BreadcrumbComponent {
|
|
|
172
162
|
breadcrumbItem.breadcrumbLink.elementRef().nativeElement.click();
|
|
173
163
|
}
|
|
174
164
|
}
|
|
165
|
+
/** @hidden */
|
|
166
|
+
ngAfterViewInit() {
|
|
167
|
+
this._setItems();
|
|
168
|
+
this._contentItems.changes.subscribe(() => this._setItems());
|
|
169
|
+
}
|
|
170
|
+
/** @hidden */
|
|
171
|
+
_keyDownHandle(event) {
|
|
172
|
+
this._menuComponent.toggle();
|
|
173
|
+
event.preventDefault();
|
|
174
|
+
}
|
|
175
|
+
/** @hidden */
|
|
176
|
+
_onHiddenChange(isHidden, breadcrumb) {
|
|
177
|
+
if (!isHidden) {
|
|
178
|
+
breadcrumb._detach();
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
breadcrumb._attach();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/** @hidden */
|
|
185
|
+
_onVisibleItemsCountChange(visibleItemsCount) {
|
|
186
|
+
this.visibleItemsCount.emit(visibleItemsCount);
|
|
187
|
+
}
|
|
188
|
+
/** @hidden */
|
|
189
|
+
_onHiddenItemsCountChange(hiddenItemsCount) {
|
|
190
|
+
this.hiddenItemsCount.emit(hiddenItemsCount);
|
|
191
|
+
}
|
|
192
|
+
/** @hidden */
|
|
193
|
+
_setItems() {
|
|
194
|
+
this._contentItems.forEach((item) => item.setPortal());
|
|
195
|
+
this._items = this._contentItems.toArray();
|
|
196
|
+
this._cdr.detectChanges();
|
|
197
|
+
}
|
|
175
198
|
}
|
|
176
|
-
BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i0.ElementRef }, { token: i1.
|
|
177
|
-
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: BreadcrumbComponent, selector: "fd-breadcrumb", inputs: { containerElement: "containerElement", reverse: "reverse" }, host: { classAttribute: "fd-breadcrumb" }, queries: [{ propertyName: "
|
|
199
|
+
BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i0.ElementRef }, { token: i1.DestroyedService }, { token: i1.RtlService, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
200
|
+
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: BreadcrumbComponent, selector: "fd-breadcrumb", inputs: { containerElement: "containerElement", reverse: "reverse" }, outputs: { visibleItemsCount: "visibleItemsCount", hiddenItemsCount: "hiddenItemsCount" }, host: { classAttribute: "fd-breadcrumb" }, providers: [DestroyedService], queries: [{ propertyName: "_contentItems", predicate: BreadcrumbItemComponent }], viewQueries: [{ propertyName: "_menuComponent", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "_overflowLayout", first: true, predicate: OverflowLayoutComponent, descendants: true }], ngImport: i0, template: "<fd-overflow-layout\n [reverseHiddenItems]=\"reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n>\n <ng-container *ngFor=\"let breadcrumb of _items\">\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n </ng-container>\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"_placement$ | async\">\n <ng-container *ngFor=\"let breadcrumbItem of breadcrumbs\">\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled : false\n \"\n >\n <a\n fd-menu-interactive\n (click)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.enter)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.space)=\"itemClicked(breadcrumbItem.item, $event)\"\n >\n <ng-container *ngIf=\"breadcrumbItem?.item.breadcrumbLink; else portalContent\">\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\">\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n </ng-container>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\">\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\"\n ></fd-menu-addon>\n </ng-container>\n </ng-container>\n <ng-template #portalContent>\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n </ng-template>\n </a>\n </li>\n </ng-container>\n </fd-menu>\n <span class=\"fd-breadcrumb__item\" *ngIf=\"breadcrumbs.length > 0\" [fdMenuTrigger]=\"menu\">\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n \u2026\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n </span>\n </ng-container>\n</fd-overflow-layout>\n\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.4\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-breadcrumb\n .fd-breadcrumb__item\n .fd-breadcrump__link\n*/.fd-breadcrumb{-webkit-box-sizing:border-box;-ms-flex-wrap:wrap;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);list-style:none;margin:0;padding:0}.fd-breadcrumb:after,.fd-breadcrumb:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-breadcrumb__item:after,.fd-breadcrumb__item:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{color:var(--sapContent_LabelColor);content:\"/\";margin-left:.25rem;margin-right:.25rem}.fd-breadcrumb__item:last-child:after{content:none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb{display:flex;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}.fd-breadcrumb__item:last-child:after{content:\"/\"}.fd-overflow-layout__item--last .fd-breadcrumb__item:after{content:none}\n"], components: [{ type: i2.OverflowLayoutComponent, selector: "fd-overflow-layout", inputs: ["maxVisibleItems", "showMorePosition", "reverseHiddenItems", "enableKeyboardNavigation"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { type: i3.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { type: i3.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { type: i3.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "glyph", "submenuIndicator", "ariaHidden"] }, { type: i4.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { type: i5.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.OverflowItemRefDirective, selector: "[fdOverflowItemRef]", inputs: ["fdOverflowItemRef"] }, { type: i2.OverflowLayoutItemDirective, selector: "[fdOverflowLayoutItem]", inputs: ["focusable", "forceVisibility"], outputs: ["hiddenChange"] }, { type: i7.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { type: i2.OverflowExpandDirective, selector: "[fdOverflowExpand]", inputs: ["fdOverflowExpandItems"] }, { type: i3.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MenuTitleDirective, selector: "[fd-menu-title]" }, { type: i3.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }], pipes: { "async": i6.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
178
201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
179
202
|
type: Component,
|
|
180
203
|
args: [{ selector: 'fd-breadcrumb', host: {
|
|
181
204
|
class: 'fd-breadcrumb'
|
|
182
|
-
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"_placement$ | async\">\n
|
|
183
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.RtlService, decorators: [{
|
|
205
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DestroyedService], template: "<fd-overflow-layout\n [reverseHiddenItems]=\"reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n>\n <ng-container *ngFor=\"let breadcrumb of _items\">\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n </ng-container>\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"_placement$ | async\">\n <ng-container *ngFor=\"let breadcrumbItem of breadcrumbs\">\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled : false\n \"\n >\n <a\n fd-menu-interactive\n (click)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.enter)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.space)=\"itemClicked(breadcrumbItem.item, $event)\"\n >\n <ng-container *ngIf=\"breadcrumbItem?.item.breadcrumbLink; else portalContent\">\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\">\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n </ng-container>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\">\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\"\n ></fd-menu-addon>\n </ng-container>\n </ng-container>\n <ng-template #portalContent>\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n </ng-template>\n </a>\n </li>\n </ng-container>\n </fd-menu>\n <span class=\"fd-breadcrumb__item\" *ngIf=\"breadcrumbs.length > 0\" [fdMenuTrigger]=\"menu\">\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n \u2026\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n </span>\n </ng-container>\n</fd-overflow-layout>\n\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.4\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-breadcrumb\n .fd-breadcrumb__item\n .fd-breadcrump__link\n*/.fd-breadcrumb{-webkit-box-sizing:border-box;-ms-flex-wrap:wrap;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);list-style:none;margin:0;padding:0}.fd-breadcrumb:after,.fd-breadcrumb:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-breadcrumb__item:after,.fd-breadcrumb__item:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{color:var(--sapContent_LabelColor);content:\"/\";margin-left:.25rem;margin-right:.25rem}.fd-breadcrumb__item:last-child:after{content:none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb{display:flex;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}.fd-breadcrumb__item:last-child:after{content:\"/\"}.fd-overflow-layout__item--last .fd-breadcrumb__item:after{content:none}\n"] }]
|
|
206
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DestroyedService }, { type: i1.RtlService, decorators: [{
|
|
184
207
|
type: Optional
|
|
185
|
-
}] }, { type: i0.ChangeDetectorRef }
|
|
208
|
+
}] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { containerElement: [{
|
|
209
|
+
type: Input
|
|
210
|
+
}], reverse: [{
|
|
211
|
+
type: Input
|
|
212
|
+
}], visibleItemsCount: [{
|
|
213
|
+
type: Output
|
|
214
|
+
}], hiddenItemsCount: [{
|
|
215
|
+
type: Output
|
|
216
|
+
}], _contentItems: [{
|
|
186
217
|
type: ContentChildren,
|
|
187
|
-
args: [
|
|
218
|
+
args: [BreadcrumbItemComponent]
|
|
188
219
|
}], _menuComponent: [{
|
|
189
220
|
type: ViewChild,
|
|
190
221
|
args: [MenuComponent]
|
|
191
|
-
}],
|
|
222
|
+
}], _overflowLayout: [{
|
|
192
223
|
type: ViewChild,
|
|
193
|
-
args: [
|
|
194
|
-
}], containerElement: [{
|
|
195
|
-
type: Input
|
|
196
|
-
}], reverse: [{
|
|
197
|
-
type: Input
|
|
224
|
+
args: [OverflowLayoutComponent]
|
|
198
225
|
}] } });
|
|
199
226
|
|
|
200
227
|
class DeprecatedBreadcrumbsCompactDirective extends DeprecatedCompactDirective {
|
|
@@ -233,7 +260,9 @@ BreadcrumbModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
233
260
|
LinkModule,
|
|
234
261
|
PortalModule,
|
|
235
262
|
PipeModule,
|
|
236
|
-
ContentDensityModule
|
|
263
|
+
ContentDensityModule,
|
|
264
|
+
OverflowLayoutModule,
|
|
265
|
+
ButtonModule], exports: [BreadcrumbComponent,
|
|
237
266
|
BreadcrumbItemComponent,
|
|
238
267
|
LinkModule,
|
|
239
268
|
DeprecatedBreadcrumbsCompactDirective,
|
|
@@ -246,7 +275,9 @@ BreadcrumbModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
|
|
|
246
275
|
LinkModule,
|
|
247
276
|
PortalModule,
|
|
248
277
|
PipeModule,
|
|
249
|
-
ContentDensityModule
|
|
278
|
+
ContentDensityModule,
|
|
279
|
+
OverflowLayoutModule,
|
|
280
|
+
ButtonModule
|
|
250
281
|
], LinkModule,
|
|
251
282
|
ContentDensityModule] });
|
|
252
283
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: BreadcrumbModule, decorators: [{
|
|
@@ -260,7 +291,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
260
291
|
LinkModule,
|
|
261
292
|
PortalModule,
|
|
262
293
|
PipeModule,
|
|
263
|
-
ContentDensityModule
|
|
294
|
+
ContentDensityModule,
|
|
295
|
+
OverflowLayoutModule,
|
|
296
|
+
ButtonModule
|
|
264
297
|
],
|
|
265
298
|
exports: [
|
|
266
299
|
BreadcrumbComponent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-breadcrumb.mjs","sources":["../../../../../libs/core/src/lib/breadcrumb/breadcrumb-item.component.ts","../../../../../libs/core/src/lib/breadcrumb/breadcrumb.component.ts","../../../../../libs/core/src/lib/breadcrumb/breadcrumb.component.html","../../../../../libs/core/src/lib/breadcrumb/deprecated-breadcrumbs-compact.directive.ts","../../../../../libs/core/src/lib/breadcrumb/breadcrumb.module.ts","../../../../../libs/core/src/lib/breadcrumb/fundamental-ngx-core-breadcrumb.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n forwardRef,\n Renderer2\n} from '@angular/core';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\nimport { DomPortal } from '@angular/cdk/portal';\n\n/**\n * Breadcrumb item directive. Must have child breadcrumb link directives.\n *\n * ```html\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * ```\n */\n@Component({\n selector: 'fd-breadcrumb-item',\n template: '<div style=\"display: inline\"><ng-content></ng-content></div>',\n host: {\n class: 'fd-breadcrumb__item'\n }\n})\nexport class BreadcrumbItemComponent implements AfterViewInit {\n /** @hidden */\n get elementRef(): ElementRef<HTMLElement> {\n return this._elementRef;\n }\n\n /** @hidden */\n @ContentChild(forwardRef(() => LinkComponent))\n breadcrumbLink: LinkComponent;\n\n /** @hidden */\n get width(): number {\n return this._elementRef.nativeElement.getBoundingClientRect().width;\n }\n\n /** In case there is no link in Item and breadcrumb item is non-interactive, we move whole item content to menu item title */\n breadcrumbItemPortal: DomPortal<Element>;\n\n /** When breadcrumb item has link in it, we are moving link content to menu item title */\n linkContentPortal: DomPortal;\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private renderer2: Renderer2,\n private _cdR: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n get needsClickProxy(): boolean {\n return (\n !!this.breadcrumbLink?.elementRef().nativeElement.getAttribute('href') || !!this.breadcrumbLink.routerLink\n );\n }\n\n show = (): void => this.renderer2.setStyle(this._elementRef.nativeElement, 'display', 'inline-block');\n hide = (): void => this.renderer2.setStyle(this._elementRef.nativeElement, 'display', 'none');\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.breadcrumbLink) {\n this.linkContentPortal = new DomPortal<HTMLElement>(this.breadcrumbLink.contentSpan.nativeElement);\n }\n this.breadcrumbItemPortal = new DomPortal(this.elementRef.nativeElement.firstElementChild as Element);\n this._cdR.detectChanges();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { ResizeObserverService, RtlService } from '@fundamental-ngx/core/utils';\nimport { BehaviorSubject, debounceTime, firstValueFrom, map, startWith, Subscription, tap } from 'rxjs';\nimport { MenuComponent } from '@fundamental-ngx/core/menu';\nimport { Placement } from '@fundamental-ngx/core/shared';\n\n/**\n * Breadcrumb parent wrapper directive. Must have breadcrumb item child directives.\n *\n * ```html\n * <fd-breadcrumb>\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * </fd-breadcrumb>\n * ```\n */\n@Component({\n // TODO to be discussed\n // eslint-disable-next-line\n selector: 'fd-breadcrumb',\n host: {\n class: 'fd-breadcrumb'\n },\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BreadcrumbComponent implements AfterViewInit, OnInit, OnDestroy {\n /** @hidden */\n @ContentChildren(forwardRef(() => BreadcrumbItemComponent))\n _breadcrumbItems: QueryList<BreadcrumbItemComponent>;\n\n /** @hidden */\n @ViewChild(MenuComponent)\n _menuComponent: MenuComponent;\n\n @ViewChild('overflowBreadcrumbsContainer')\n private readonly _overflowContainer: ElementRef<HTMLElement>;\n\n /** @hidden */\n _collapsedBreadcrumbItems: Array<BreadcrumbItemComponent> = [];\n\n /** @hidden */\n _placement$ = new BehaviorSubject<Placement>('bottom-start');\n\n /**\n * The element to act as the breadcrumb container. When provided, the breadcrumb's responsive collapsing behavior\n * performs better. When not provided, the immediate parent element's width will be used.\n */\n @Input()\n containerElement: HTMLElement;\n\n /** Whether to append items to the overflow dropdown in reverse order. Default is true. */\n @Input()\n reverse = false;\n\n /** @hidden */\n _containerBoundary: number;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _itemToSize = new Map<BreadcrumbItemComponent, number>();\n\n constructor(\n public readonly elementRef: ElementRef<Element>,\n @Optional() private readonly _rtlService: RtlService | null,\n private readonly _cdRef: ChangeDetectorRef,\n private readonly _resizeObserver: ResizeObserverService,\n private readonly _ngZone: NgZone\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n if (this._rtlService) {\n this._subscriptions.add(\n this._rtlService.rtl.subscribe((value) => this._placement$.next(value ? 'bottom-end' : 'bottom-start'))\n );\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._subscriptions.add(\n this._breadcrumbItems.changes\n .pipe(\n startWith(this._breadcrumbItems),\n map((items) => items.toArray() as BreadcrumbItemComponent[]),\n map((items) => items.map((item) => [item, item.width]) as [BreadcrumbItemComponent, number][]),\n tap((itemToSize: [BreadcrumbItemComponent, number][]) => (this._itemToSize = new Map(itemToSize)))\n )\n .subscribe()\n );\n firstValueFrom(this._ngZone.onStable).then(() => {\n this._subscriptions.add(\n this._resizeObserver\n .observe(this.containerElement || (this.elementRef.nativeElement.parentElement as Element))\n // Add small delay for performance reasons.\n .pipe(debounceTime(30))\n .subscribe(() => this.onResize())\n );\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /**\n * Callback function when breadcrumbs container has been resized.\n */\n onResize(): void {\n if (!this.elementRef.nativeElement.parentElement) {\n return;\n }\n this._containerBoundary = this.elementRef.nativeElement.parentElement.getBoundingClientRect().width;\n\n if (this.containerElement) {\n this._containerBoundary = this.containerElement.getBoundingClientRect().width;\n }\n\n if (this._overflowContainer) {\n this._containerBoundary -= this._overflowContainer.nativeElement.getBoundingClientRect().width;\n }\n\n let visibleSum = 0;\n const breadcrumbItemComponents = this._breadcrumbItems.toArray();\n let i;\n for (i = breadcrumbItemComponents.length - 1; i >= 0; i--) {\n const breadcrumbItem = breadcrumbItemComponents[i];\n const itemSize = this._itemToSize.has(breadcrumbItem)\n ? (this._itemToSize.get(breadcrumbItem) as number)\n : breadcrumbItem.width;\n if (visibleSum + itemSize <= this._containerBoundary) {\n visibleSum += itemSize;\n breadcrumbItem.show();\n } else {\n break;\n }\n }\n const collapsedBreadcrumbItems = breadcrumbItemComponents.slice(0, ++i);\n this._collapsedBreadcrumbItems = this.reverse ? collapsedBreadcrumbItems : collapsedBreadcrumbItems.reverse();\n this._collapsedBreadcrumbItems.forEach((item) => item.hide());\n this._cdRef.detectChanges();\n }\n\n /** @hidden */\n _keyDownHandle(event: Event): void {\n this._menuComponent.toggle();\n event.preventDefault();\n }\n\n /**\n * We catch interactions with item, Enter, Space, Mouse click and Touch click,\n * if original element had router link we are proxying click to that element\n * */\n itemClicked(breadcrumbItem: BreadcrumbItemComponent, $event: any): void {\n if (breadcrumbItem.needsClickProxy) {\n $event.preventDefault();\n breadcrumbItem.breadcrumbLink.elementRef().nativeElement.click();\n }\n }\n}\n","<fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"_placement$ | async\">\n <ng-container *ngFor=\"let breadcrumbItem of _collapsedBreadcrumbItems\">\n <li fd-menu-item [disabled]=\"breadcrumbItem.breadcrumbLink ? breadcrumbItem.breadcrumbLink.disabled : false\">\n <a\n fd-menu-interactive\n (click)=\"itemClicked(breadcrumbItem, $event)\"\n (keydown.enter)=\"itemClicked(breadcrumbItem, $event)\"\n (keydown.space)=\"itemClicked(breadcrumbItem, $event)\"\n >\n <ng-container *ngIf=\"breadcrumbItem?.breadcrumbLink; else portalContent\">\n <ng-container *ngIf=\"breadcrumbItem.breadcrumbLink._prefixIconName\">\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n </ng-container>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.linkContentPortal\"></ng-container>\n </span>\n <ng-container *ngIf=\"breadcrumbItem.breadcrumbLink._postfixIconName\">\n <fd-menu-addon [glyph]=\"breadcrumbItem.breadcrumbLink._postfixIconName\"></fd-menu-addon>\n </ng-container>\n </ng-container>\n <ng-template #portalContent>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.breadcrumbItemPortal\"></ng-container>\n </span>\n </ng-template>\n </a>\n </li>\n </ng-container>\n</fd-menu>\n\n<span\n class=\"fd-breadcrumb__item\"\n *ngIf=\"_collapsedBreadcrumbItems.length\"\n [fdMenuTrigger]=\"menu\"\n #overflowBreadcrumbsContainer\n>\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n ...\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n</span>\n\n<ng-content></ng-content>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-breadcrumb[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedBreadcrumbsCompactDirective)\n }\n ]\n})\nexport class DeprecatedBreadcrumbsCompactDirective extends DeprecatedCompactDirective {\n constructor() {\n super('fd-breadcrumb');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BreadcrumbComponent } from './breadcrumb.component';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { MenuModule } from '@fundamental-ngx/core/menu';\nimport { LinkModule } from '@fundamental-ngx/core/link';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { PipeModule } from '@fundamental-ngx/core/utils';\nimport { DeprecatedBreadcrumbsCompactDirective } from './deprecated-breadcrumbs-compact.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [\n CommonModule,\n IconModule,\n PopoverModule,\n MenuModule,\n LinkModule,\n PortalModule,\n PipeModule,\n ContentDensityModule\n ],\n exports: [\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n LinkModule,\n DeprecatedBreadcrumbsCompactDirective,\n ContentDensityModule\n ],\n declarations: [BreadcrumbComponent, BreadcrumbItemComponent, DeprecatedBreadcrumbsCompactDirective]\n})\nexport class BreadcrumbModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-breadcrumb.mjs","sources":["../../../../../libs/core/src/lib/breadcrumb/breadcrumb-item.component.ts","../../../../../libs/core/src/lib/breadcrumb/breadcrumb.component.ts","../../../../../libs/core/src/lib/breadcrumb/breadcrumb.component.html","../../../../../libs/core/src/lib/breadcrumb/deprecated-breadcrumbs-compact.directive.ts","../../../../../libs/core/src/lib/breadcrumb/breadcrumb.module.ts","../../../../../libs/core/src/lib/breadcrumb/fundamental-ngx-core-breadcrumb.ts"],"sourcesContent":["import { DomPortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n forwardRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\n\n/**\n * Breadcrumb item directive. Must have child breadcrumb link directives.\n *\n * ```html\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * ```\n */\n@Component({\n selector: 'fd-breadcrumb-item',\n template: '<ng-content></ng-content>',\n host: {\n class: 'fd-breadcrumb__item'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BreadcrumbItemComponent implements AfterViewInit {\n /** @hidden */\n @ContentChild(forwardRef(() => LinkComponent))\n breadcrumbLink: LinkComponent;\n\n /** In case there is no link in Item and breadcrumb item is non-interactive, we move whole item content to menu item title */\n breadcrumbItemPortal: DomPortal<Element>;\n\n /** When breadcrumb item has link in it, we are moving link content to menu item title */\n linkContentPortal: DomPortal;\n\n /**\n * Breadcrumb item dom portal.\n */\n portal: DomPortal;\n\n /** @hidden */\n private _attached = false;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef<HTMLElement>) {}\n\n /** @hidden */\n get _needsClickProxy(): boolean {\n return (\n !!this.breadcrumbLink?.elementRef().nativeElement.getAttribute('href') || !!this.breadcrumbLink.routerLink\n );\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._attach();\n }\n\n /**\n * Sets breadcrumb item dom portal.\n */\n setPortal(): void {\n if (!this.portal) {\n this.portal = new DomPortal(this.elementRef);\n }\n }\n\n /** @hidden */\n _detach(): void {\n if (!this._attached) {\n return;\n }\n\n if (this.linkContentPortal?.isAttached) {\n this.linkContentPortal?.detach();\n }\n\n if (this.breadcrumbItemPortal?.isAttached) {\n this.breadcrumbItemPortal?.detach();\n }\n\n this._attached = false;\n }\n\n /** @hidden */\n _attach(): void {\n if (this._attached) {\n return;\n }\n\n if (this.breadcrumbLink && this.breadcrumbLink.contentSpan) {\n this.linkContentPortal = new DomPortal<HTMLElement>(this.breadcrumbLink.contentSpan.nativeElement);\n }\n\n this.breadcrumbItemPortal = new DomPortal(this.elementRef.nativeElement.firstElementChild as Element);\n this._attached = true;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n isDevMode,\n OnInit,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { OverflowLayoutComponent } from '@fundamental-ngx/core/overflow-layout';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { DestroyedService, RtlService } from '@fundamental-ngx/core/utils';\nimport { BehaviorSubject, takeUntil } from 'rxjs';\nimport { MenuComponent } from '@fundamental-ngx/core/menu';\nimport { Placement } from '@fundamental-ngx/core/shared';\n\n/**\n * Breadcrumb parent wrapper directive. Must have breadcrumb item child directives.\n *\n * ```html\n * <fd-breadcrumb>\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * </fd-breadcrumb>\n * ```\n */\n@Component({\n selector: 'fd-breadcrumb',\n host: {\n class: 'fd-breadcrumb'\n },\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DestroyedService]\n})\nexport class BreadcrumbComponent implements OnInit, AfterViewInit {\n /**\n * @deprecated\n * Breadcrumbs component now uses more advanced calculation mechanism without the need of specifying the container element.\n *\n * The element to act as the breadcrumb container. When provided, the breadcrumb's responsive collapsing behavior\n * performs better. When not provided, the immediate parent element's width will be used.\n */\n @Input()\n set containerElement(_: HTMLElement) {\n if (isDevMode()) {\n console.warn(\n 'Breadcrumbs component now uses more advanced calculation mechanism without the need of specifying the container element.'\n );\n }\n }\n\n /** Whether to append items to the overflow dropdown in reverse order. Default is true. */\n @Input()\n reverse = false;\n\n /**\n * Event emitted when visible items count is changed.\n */\n @Output()\n visibleItemsCount = new EventEmitter<number>();\n\n /**\n * Event emitted when hidden items count is changed.\n */\n @Output()\n hiddenItemsCount = new EventEmitter<number>();\n\n /** @hidden */\n @ContentChildren(BreadcrumbItemComponent)\n private readonly _contentItems: QueryList<BreadcrumbItemComponent>;\n\n /** @hidden */\n @ViewChild(MenuComponent)\n private readonly _menuComponent: MenuComponent;\n\n /** @hidden */\n @ViewChild(OverflowLayoutComponent)\n private readonly _overflowLayout: OverflowLayoutComponent;\n\n /**\n * @hidden\n * Array of breadcrumb items.\n */\n _items: BreadcrumbItemComponent[] = [];\n\n /** @hidden */\n _placement$ = new BehaviorSubject<Placement>('bottom-start');\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef<HTMLElement>,\n private _onDestroy$: DestroyedService,\n @Optional() private _rtlService: RtlService | null,\n private _cdr: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._rtlService?.rtl\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((value) => this._placement$.next(value ? 'bottom-end' : 'bottom-start'));\n }\n\n /** @hidden */\n onResize(): void {\n this._overflowLayout.triggerRecalculation();\n }\n\n /**\n * We catch interactions with item, Enter, Space, Mouse click and Touch click,\n * if original element had router link we are proxying click to that element\n * */\n itemClicked(breadcrumbItem: any, $event: any): void {\n if (breadcrumbItem.needsClickProxy) {\n $event.preventDefault();\n breadcrumbItem.breadcrumbLink.elementRef().nativeElement.click();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setItems();\n\n this._contentItems.changes.subscribe(() => this._setItems());\n }\n\n /** @hidden */\n _keyDownHandle(event: Event): void {\n this._menuComponent.toggle();\n event.preventDefault();\n }\n\n /** @hidden */\n _onHiddenChange(isHidden: boolean, breadcrumb: BreadcrumbItemComponent): void {\n if (!isHidden) {\n breadcrumb._detach();\n } else {\n breadcrumb._attach();\n }\n }\n\n /** @hidden */\n _onVisibleItemsCountChange(visibleItemsCount: number): void {\n this.visibleItemsCount.emit(visibleItemsCount);\n }\n\n /** @hidden */\n _onHiddenItemsCountChange(hiddenItemsCount: number): void {\n this.hiddenItemsCount.emit(hiddenItemsCount);\n }\n\n /** @hidden */\n private _setItems(): void {\n this._contentItems.forEach((item) => item.setPortal());\n this._items = this._contentItems.toArray();\n this._cdr.detectChanges();\n }\n}\n","<fd-overflow-layout\n [reverseHiddenItems]=\"reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n>\n <ng-container *ngFor=\"let breadcrumb of _items\">\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n </ng-container>\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"_placement$ | async\">\n <ng-container *ngFor=\"let breadcrumbItem of breadcrumbs\">\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled : false\n \"\n >\n <a\n fd-menu-interactive\n (click)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.enter)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.space)=\"itemClicked(breadcrumbItem.item, $event)\"\n >\n <ng-container *ngIf=\"breadcrumbItem?.item.breadcrumbLink; else portalContent\">\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\">\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n </ng-container>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\">\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\"\n ></fd-menu-addon>\n </ng-container>\n </ng-container>\n <ng-template #portalContent>\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n </ng-template>\n </a>\n </li>\n </ng-container>\n </fd-menu>\n <span class=\"fd-breadcrumb__item\" *ngIf=\"breadcrumbs.length > 0\" [fdMenuTrigger]=\"menu\">\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n …\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n </span>\n </ng-container>\n</fd-overflow-layout>\n\n<ng-content></ng-content>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-breadcrumb[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedBreadcrumbsCompactDirective)\n }\n ]\n})\nexport class DeprecatedBreadcrumbsCompactDirective extends DeprecatedCompactDirective {\n constructor() {\n super('fd-breadcrumb');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { OverflowLayoutModule } from '@fundamental-ngx/core/overflow-layout';\n\nimport { BreadcrumbComponent } from './breadcrumb.component';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { MenuModule } from '@fundamental-ngx/core/menu';\nimport { LinkModule } from '@fundamental-ngx/core/link';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { PipeModule } from '@fundamental-ngx/core/utils';\nimport { DeprecatedBreadcrumbsCompactDirective } from './deprecated-breadcrumbs-compact.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [\n CommonModule,\n IconModule,\n PopoverModule,\n MenuModule,\n LinkModule,\n PortalModule,\n PipeModule,\n ContentDensityModule,\n OverflowLayoutModule,\n ButtonModule\n ],\n exports: [\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n LinkModule,\n DeprecatedBreadcrumbsCompactDirective,\n ContentDensityModule\n ],\n declarations: [BreadcrumbComponent, BreadcrumbItemComponent, DeprecatedBreadcrumbsCompactDirective]\n})\nexport class BreadcrumbModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/breadcrumb/package.json
CHANGED
package/button/package.json
CHANGED
package/calendar/package.json
CHANGED
package/card/package.json
CHANGED
package/carousel/package.json
CHANGED
package/checkbox/package.json
CHANGED
|
@@ -178,6 +178,8 @@ export declare class ComboboxComponent implements ComboboxInterface, ControlValu
|
|
|
178
178
|
/** @hidden */
|
|
179
179
|
private _subscriptions;
|
|
180
180
|
/** @hidden */
|
|
181
|
+
private _value;
|
|
182
|
+
/** @hidden */
|
|
181
183
|
onChange: (value: any) => void;
|
|
182
184
|
/** @hidden */
|
|
183
185
|
onTouched: () => void;
|
|
@@ -198,7 +200,7 @@ export declare class ComboboxComponent implements ComboboxInterface, ControlValu
|
|
|
198
200
|
/** @hidden */
|
|
199
201
|
onMenuClickHandler(value: any): void;
|
|
200
202
|
/** Handle dialog dismissing, closes popover and sets backup data. */
|
|
201
|
-
dialogDismiss(term:
|
|
203
|
+
dialogDismiss(term: any): void;
|
|
202
204
|
/** Handle dialog approval, closes popover and propagates data changes. */
|
|
203
205
|
dialogApprove(): void;
|
|
204
206
|
/** If true value empty */
|
|
@@ -235,6 +237,8 @@ export declare class ComboboxComponent implements ComboboxInterface, ControlValu
|
|
|
235
237
|
clearInputBtnFocus(): void;
|
|
236
238
|
/** @hidden */
|
|
237
239
|
clearInputBtnBlur(): void;
|
|
240
|
+
/** Current select value */
|
|
241
|
+
getValue(): any;
|
|
238
242
|
/** Method that picks other value moved from current one by offset, called only when combobox is closed */
|
|
239
243
|
private _chooseOtherItem;
|
|
240
244
|
/** Method that reset filtering for displayed values. It overrides displayed values by all possible dropdown values */
|
|
@@ -254,7 +258,10 @@ export declare class ComboboxComponent implements ComboboxInterface, ControlValu
|
|
|
254
258
|
/** @hidden */
|
|
255
259
|
private _propagateChange;
|
|
256
260
|
/** @hidden */
|
|
261
|
+
private setValue;
|
|
262
|
+
/** @hidden */
|
|
257
263
|
private _setUpMobileMode;
|
|
264
|
+
isSelected(term: any): boolean;
|
|
258
265
|
static ɵfac: i0.ɵɵFactoryDeclaration<ComboboxComponent, never>;
|
|
259
266
|
static ɵcmp: i0.ɵɵComponentDeclaration<ComboboxComponent, "fd-combobox", never, { "comboboxId": "comboboxId"; "inputId": "inputId"; "ariaLabel": "ariaLabel"; "ariaLabelledBy": "ariaLabelledBy"; "required": "required"; "dropdownValues": "dropdownValues"; "filterFn": "filterFn"; "disabled": "disabled"; "placeholder": "placeholder"; "isSearch": "isSearch"; "glyph": "glyph"; "showClearButton": "showClearButton"; "triggers": "triggers"; "closeOnOutsideClick": "closeOnOutsideClick"; "openOnKeyboardEvent": "openOnKeyboardEvent"; "state": "state"; "itemTemplate": "itemTemplate"; "groupFn": "groupFn"; "maxHeight": "maxHeight"; "searchFn": "searchFn"; "highlighting": "highlighting"; "closeOnSelect": "closeOnSelect"; "fillOnSelect": "fillOnSelect"; "autoComplete": "autoComplete"; "fillControlMode": "fillControlMode"; "communicateByObject": "communicateByObject"; "displayFn": "displayFn"; "buttonFocusable": "buttonFocusable"; "readOnly": "readOnly"; "mobile": "mobile"; "mobileConfig": "mobileConfig"; "showDropdownButton": "showDropdownButton"; "includes": "includes"; "title": "title"; "byline": "byline"; }, { "itemClicked": "itemClicked"; "openChange": "openChange"; "inputTextChange": "inputTextChange"; }, ["listMessages"], ["*", "*"]>;
|
|
260
267
|
}
|
|
@@ -8,6 +8,7 @@ export declare const COMBOBOX_COMPONENT: InjectionToken<string[]>;
|
|
|
8
8
|
export interface ComboboxInterface extends MobileMode {
|
|
9
9
|
inputText: string;
|
|
10
10
|
openChange: EventEmitter<boolean>;
|
|
11
|
+
getValue(): any;
|
|
11
12
|
dialogApprove(): void;
|
|
12
13
|
dialogDismiss(backup: string): void;
|
|
13
14
|
}
|