@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-overflow-layout.mjs","sources":["../../../../libs/core/src/lib/overflow-layout/directives/overflow-item-container-ref.directive.ts","../../../../libs/core/src/lib/overflow-layout/directives/overflow-layout-item-container.directive.ts","../../../../libs/core/src/lib/overflow-layout/tokens/overflow-container.token.ts","../../../../libs/core/src/lib/overflow-layout/tokens/overflow-expand.token.ts","../../../../libs/core/src/lib/overflow-layout/tokens/overflow-item-ref.token.ts","../../../../libs/core/src/lib/overflow-layout/tokens/overflow-item.token.ts","../../../../libs/core/src/lib/overflow-layout/directives/overflow-layout-popover-content.directive.ts","../../../../libs/core/src/lib/overflow-layout/overflow-layout.component.ts","../../../../libs/core/src/lib/overflow-layout/overflow-layout.component.html","../../../../libs/core/src/lib/overflow-layout/directives/overflow-item-ref.directive.ts","../../../../libs/core/src/lib/overflow-layout/directives/overflow-expand.directive.ts","../../../../libs/core/src/lib/overflow-layout/directives/overflow-layout-item.directive.ts","../../../../libs/core/src/lib/overflow-layout/overflow-layout.module.ts","../../../../libs/core/src/lib/overflow-layout/fundamental-ngx-core-overflow-layout.ts"],"sourcesContent":["import { Directive, ElementRef, TemplateRef, ViewContainerRef, ViewRef } from '@angular/core';\n\n/**\n * Directive to hide component without actual destroying of the component instance.\n */\n@Directive({\n selector: '[fdOverflowItemContainerRef]'\n})\nexport class OverflowItemContainerRefDirective {\n /** @hidden */\n private _viewRef: ViewRef;\n\n /** @hidden */\n private _detached = false;\n\n /** @hidden */\n private _hidden = false;\n\n /**\n * Shows or hides element without destroying the view itself.\n * @param value\n */\n set hidden(value: boolean) {\n if (this._hidden === value) {\n return;\n }\n this._hidden = value;\n if (value && !this._detached) {\n this._viewRef = this._viewContainerRef.detach()!;\n this._detached = true;\n } else if (!value && this._viewRef && this._detached) {\n this._viewRef = this._viewContainerRef.insert(this._viewRef);\n this._detached = false;\n }\n }\n\n /** @hidden */\n constructor(\n private _templateRef: TemplateRef<any>,\n private _viewContainerRef: ViewContainerRef,\n private _elmRef: ElementRef\n ) {\n // Create embedded view right away and manipulate its visibility later.\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n}\n","import { ContentChild, Directive, ElementRef, HostBinding } from '@angular/core';\nimport { OverflowItemContainerRefDirective } from './overflow-item-container-ref.directive';\n\n@Directive({\n selector: '[fdOverflowLayoutItemContainer]'\n})\nexport class OverflowLayoutItemContainerDirective {\n /** @hidden */\n @HostBinding('class')\n private readonly _initialClass = 'fd-overflow-layout__item';\n\n /**\n * Container reference.\n */\n @ContentChild(OverflowItemContainerRefDirective)\n containerRef: OverflowItemContainerRefDirective;\n\n /** @hidden */\n constructor(public elementRef: ElementRef) {}\n}\n","import { InjectionToken } from '@angular/core';\nimport { OverflowContainer } from '../interfaces/overflow-container.interface';\n\nexport const FD_OVERFLOW_CONTAINER = new InjectionToken<OverflowContainer>('FdOverflowContainer');\n","import { InjectionToken } from '@angular/core';\nimport { OverflowExpand } from '../interfaces/overflow-expand.interface';\n\nexport const FD_OVERFLOW_EXPAND = new InjectionToken<OverflowExpand>('FdOverflowLayoutExpand');\n","import { InjectionToken } from '@angular/core';\nimport { OverflowItemRef } from '../interfaces/overflow-item-ref.interface';\n\nexport const FD_OVERFLOW_ITEM_REF = new InjectionToken<OverflowItemRef>('OverflowLayoutItemRef');\n","import { InjectionToken } from '@angular/core';\nimport { OverflowItem } from '../interfaces/overflow-item.interface';\n\nexport const FD_OVERFLOW_ITEM = new InjectionToken<OverflowItem>('FdOverflowItem');\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, TAB, UP_ARROW } from '@angular/cdk/keycodes';\nimport { Directive, HostBinding, HostListener, Inject, Input } from '@angular/core';\nimport { KeyUtil } from '@fundamental-ngx/core/utils';\nimport { OverflowContainer } from '../interfaces/overflow-container.interface';\nimport { OverflowItem } from '../interfaces/overflow-item.interface';\nimport { OverflowPopoverContent } from '../interfaces/overflow-popover-content.interface';\nimport { OverflowItemRef } from '../interfaces/overflow-item-ref.interface';\nimport { FD_OVERFLOW_CONTAINER } from '../tokens/overflow-container.token';\n\n/**\n * Directive to wrap Overlay Layout \"More\" popover content.\n * Used to apply keyboard navigation through the items.\n */\n@Directive({\n selector: '[fdOverflowLayoutPopoverContent]'\n})\nexport class OverflowLayoutPopoverContentDirective implements OverflowPopoverContent {\n /**\n * Array of hidden items.\n */\n @Input()\n set items(value: OverflowItemRef[]) {\n this._items = value;\n this._keyboardEventsManager = new FocusKeyManager(\n this._items.filter((item) => item.overflowItem.focusable).map((item) => item.overflowItem)\n )\n .withWrap()\n .withHorizontalOrientation('ltr');\n }\n\n /** @hidden */\n private _keyboardEventsManager: FocusKeyManager<OverflowItem>;\n\n /** @hidden */\n private _items: OverflowItemRef[];\n\n /** @hidden */\n @HostBinding('class')\n private readonly _initialClass = 'fd-overflow-layout__popover-container';\n\n /** @hidden */\n constructor(@Inject(FD_OVERFLOW_CONTAINER) private _overflowContainer: OverflowContainer) {\n this._overflowContainer?.registerPopoverContent(this);\n }\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n keyUpHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, TAB)) {\n const index = this._items.findIndex((item) => item.elementRef.nativeElement === event.target);\n if (index !== -1) {\n this._keyboardEventsManager.setActiveItem(index);\n }\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n event.preventDefault();\n\n // passing the event to key manager, so we get a change fired\n this._keyboardEventsManager.onKeydown(event);\n }\n }\n\n /**\n * Focuses on the first tabbable element inside directive's element.\n */\n focusFirstTabbableElement(): void {\n this._keyboardEventsManager.setActiveItem(0);\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, TAB, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChildren,\n QueryList,\n ChangeDetectorRef,\n ContentChild,\n HostBinding,\n ViewChild,\n ElementRef,\n NgZone,\n Output,\n EventEmitter,\n HostListener,\n Optional,\n TemplateRef,\n ViewChildren,\n AfterViewInit,\n OnDestroy,\n Input\n} from '@angular/core';\nimport { KeyUtil, resizeObservable, RtlService } from '@fundamental-ngx/core/utils';\nimport { debounceTime, distinctUntilChanged, filter, skip, Subject, Subscription } from 'rxjs';\nimport { OverflowLayoutItemContainerDirective } from './directives/overflow-layout-item-container.directive';\nimport { OverflowContainer } from './interfaces/overflow-container.interface';\nimport { OverflowExpand } from './interfaces/overflow-expand.interface';\nimport { OverflowItemRef } from './interfaces/overflow-item-ref.interface';\nimport { OverflowItem } from './interfaces/overflow-item.interface';\nimport { OverflowPopoverContent } from './interfaces/overflow-popover-content.interface';\nimport { FD_OVERFLOW_CONTAINER } from './tokens/overflow-container.token';\nimport { FD_OVERFLOW_EXPAND } from './tokens/overflow-expand.token';\nimport { FD_OVERFLOW_ITEM_REF } from './tokens/overflow-item-ref.token';\nimport { FD_OVERFLOW_ITEM } from './tokens/overflow-item.token';\n\n@Component({\n selector: 'fd-overflow-layout',\n templateUrl: './overflow-layout.component.html',\n styleUrls: ['./overflow-layout.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_OVERFLOW_CONTAINER,\n useExisting: OverflowLayoutComponent\n }\n ]\n})\nexport class OverflowLayoutComponent implements AfterViewInit, OnDestroy, OverflowContainer {\n /**\n * Maximum amount of visible items.\n */\n @Input()\n set maxVisibleItems(value: number) {\n if (value === this._maxVisibleItems) {\n return;\n }\n this._maxVisibleItems = value;\n this.triggerRecalculation();\n }\n\n get maxVisibleItems(): number {\n return this._maxVisibleItems;\n }\n\n /**\n * Event, triggered when amount of visible items has been changed.\n */\n @Output()\n visibleItemsCount = new EventEmitter<number>();\n\n /**\n * Event, triggered when amount of hidden items has been changed.\n */\n @Output()\n hiddenItemsCount = new EventEmitter<number>();\n\n /**\n * @hidden\n * List of items to display.\n */\n @ContentChildren(FD_OVERFLOW_ITEM_REF)\n _items: QueryList<OverflowItemRef>;\n\n /**\n * @hidden\n * Template for the custom \"More\" button.\n */\n @ContentChild(FD_OVERFLOW_EXPAND)\n _moreButton: OverflowExpand;\n\n /**\n * @hidden\n * List of items that can be focused.\n */\n @ContentChildren(FD_OVERFLOW_ITEM)\n _overflowItems: QueryList<OverflowItem>;\n\n /**\n * @hidden\n * List of rendered items.\n */\n @ViewChildren(OverflowLayoutItemContainerDirective)\n _visibleItems: QueryList<OverflowLayoutItemContainerDirective>;\n\n /**\n * @hidden\n * Items wrapper directive.\n */\n @ViewChild('itemsWrapper')\n _itemsWrapper: ElementRef<HTMLElement>;\n\n /**\n * @hidden\n * Layout container element.\n */\n @ViewChild('layoutContainer')\n _layoutContainer: ElementRef<HTMLDivElement>;\n\n /**\n * @hidden\n * \"More\" button container element.\n */\n @ViewChild('showMoreContainer')\n _showMoreContainer: ElementRef<HTMLDivElement>;\n\n /** @hidden */\n _allItems: OverflowItemRef[] = [];\n\n /** @hidden */\n _hiddenItems: OverflowItemRef[] = [];\n\n /** @hidden */\n _showMore = false;\n\n /** @hidden */\n @HostBinding('class')\n private readonly _initialClass = 'fd-overflow-layout';\n\n /** @hidden */\n private _keyboardEventsManager: FocusKeyManager<OverflowItem>;\n\n /** @hidden */\n private _listenToItemResize = true;\n\n /** @hidden */\n private readonly _subscription = new Subscription();\n\n /** @hidden */\n private _overflowPopoverContent: OverflowPopoverContent;\n\n /** @hidden */\n private _fillTrigger$ = new Subject<void>();\n\n /** @hidden */\n private _dir: 'rtl' | 'ltr' = 'ltr';\n\n /** @hidden */\n private _maxVisibleItems = Infinity;\n\n /** @hidden */\n constructor(\n private _cdr: ChangeDetectorRef,\n private _zone: NgZone,\n private _elRef: ElementRef,\n @Optional() private _rtlService: RtlService\n ) {\n this._subscription.add(this._fillTrigger$.pipe(debounceTime(30)).subscribe(() => this._fitVisibleItems()));\n }\n\n /**\n * Triggers layout recalculation of the items.\n */\n triggerRecalculation(): void {\n this._fillTrigger$.next();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscription.unsubscribe();\n }\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n private _keyUpHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, TAB)) {\n const index = this._allItems.findIndex(\n (item) => item.overflowItem?.focusable && item.elementRef.nativeElement === event.target\n );\n if (index !== -1) {\n this._keyboardEventsManager.setActiveItem(index);\n }\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n event.preventDefault();\n\n // passing the event to key manager so, we get a change fired\n this._keyboardEventsManager.onKeydown(event);\n }\n }\n\n /**\n * Sets current focused element.\n * @param element Element that needs to be focused.\n */\n setFocusedElement(element: OverflowItem): void {\n const index = this._overflowItems.toArray().findIndex((item) => item === element);\n\n if (index !== -1) {\n this._keyboardEventsManager.setActiveItem(index);\n }\n }\n\n /**\n * Registers popover content directive for main component.\n * @param content {OverflowPopoverContent} directive\n */\n registerPopoverContent(content: OverflowPopoverContent): void {\n this._overflowPopoverContent = content;\n }\n\n /** @hidden */\n _itemsTrackFn(_: number, item: OverflowItemRef): TemplateRef<any> {\n return item.templateRef;\n }\n\n /** @hidden */\n _onPopoverStateChange(opened: boolean): void {\n if (opened) {\n this._overflowPopoverContent?.focusFirstTabbableElement();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._fitVisibleItems();\n this._setFocusKeyManager();\n this._listenToChanges();\n this._subscribeToRtl();\n }\n\n /** @hidden */\n private _listenToChanges(): void {\n this._subscription.add(\n this._items.changes.subscribe(() => {\n setTimeout(() => {\n this._fitVisibleItems();\n });\n })\n );\n\n this._listenToSizeChanges(this._elRef.nativeElement, this._itemsWrapper.nativeElement);\n }\n\n /** @hidden */\n private _listenToSizeChanges(...elements: HTMLElement[]): void {\n elements.forEach((element) =>\n this._subscription.add(\n resizeObservable(element)\n .pipe(\n skip(1),\n filter(() => this._listenToItemResize),\n distinctUntilChanged(),\n debounceTime(30)\n )\n .subscribe(() => {\n setTimeout(() => {\n this._fitVisibleItems();\n });\n })\n )\n );\n }\n\n /** @hidden */\n private _fitVisibleItems(): void {\n this._listenToItemResize = false;\n this._allItems = this._items.toArray();\n this._visibleItems.forEach((i) => (i.containerRef.hidden = false));\n this._allItems.forEach((item, index) => {\n item.hidden = false;\n item.index = index;\n });\n this._cdr.detectChanges();\n const containerWidth = this._elRef.nativeElement.getBoundingClientRect().width;\n const itemsContainerWidth = this._itemsWrapper.nativeElement.getBoundingClientRect().width;\n\n if (\n containerWidth >= itemsContainerWidth &&\n this._visibleItems.length <= this.maxVisibleItems &&\n this._hiddenItems.length === 0\n ) {\n this._showMore = false;\n this._cdr.detectChanges();\n this._listenToItemResize = true;\n return;\n }\n this._showMore = true;\n let fittingElmCount = 0;\n let fittingElmsWidth = 0;\n let shouldHideItems = false;\n this._cdr.detectChanges();\n\n const showMoreContainerWidth = this._showMoreContainer.nativeElement.getBoundingClientRect().width;\n let layoutWidth = this._layoutContainer.nativeElement.getBoundingClientRect().width;\n\n // Try to find all forced visible items\n const forcedItemsIndexes = this._getForcedItemsIndexes();\n\n forcedItemsIndexes.forEach((itemIndex) => {\n const container = this._visibleItems.get(itemIndex);\n if (!container) {\n return;\n }\n const elementSize = this._getElementWidth(container.elementRef.nativeElement);\n\n layoutWidth -= elementSize;\n });\n\n if (layoutWidth < 0 && forcedItemsIndexes.length > 0) {\n console.warn(\n 'There is no enough space to fit all forced visible items into the container. Please adjust their visibility accordingly.'\n );\n }\n\n this._visibleItems.forEach((item, index) => {\n const itemRef = this._allItems[index];\n if (shouldHideItems && !itemRef.overflowItem.forceVisibility) {\n item.containerRef.hidden = true;\n itemRef.hidden = true;\n return;\n }\n\n const elementSize = this._getElementWidth(item.elementRef.nativeElement);\n const combinedWidth = fittingElmsWidth + elementSize;\n\n if (\n (combinedWidth <= layoutWidth ||\n (item === this._visibleItems.last && combinedWidth <= layoutWidth + showMoreContainerWidth)) &&\n fittingElmCount < this.maxVisibleItems\n ) {\n fittingElmsWidth += elementSize;\n fittingElmCount++;\n } else if (!itemRef.overflowItem.forceVisibility) {\n shouldHideItems = true;\n item.containerRef.hidden = true;\n itemRef.hidden = true;\n }\n });\n\n this._hiddenItems = this._allItems.filter((i) => i.hidden);\n this.visibleItemsCount.emit(this._allItems.filter((i) => !i.hidden).length);\n this.hiddenItemsCount.emit(this._hiddenItems.length);\n\n this._showMore = this._hiddenItems.length > 0;\n\n this._cdr.detectChanges();\n\n this._listenToItemResize = true;\n }\n\n /** @hidden */\n private _setFocusKeyManager(): void {\n this._dir = this._rtlService?.rtl.value ? 'rtl' : 'ltr';\n this._keyboardEventsManager = new FocusKeyManager(this._overflowItems)\n .withWrap()\n .withHorizontalOrientation(this._dir)\n .skipPredicate((item) => !item.focusable || item.hidden);\n }\n\n /** @hidden Rtl change subscription */\n private _subscribeToRtl(): void {\n if (!this._rtlService) {\n return;\n }\n\n const rtlSub = this._rtlService.rtl.subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n\n this._keyboardEventsManager = this._keyboardEventsManager.withHorizontalOrientation(isRtl ? 'rtl' : 'ltr');\n });\n\n this._subscription.add(rtlSub);\n }\n\n /** @hidden */\n private _getForcedItemsIndexes(): number[] {\n return this._allItems\n .map((item, index) => (item.overflowItem.forceVisibility ? index : -1))\n .filter((i) => i > -1);\n }\n\n /**\n * @hidden\n * Returns combined width of the element including margins.\n * @param element Element to calculate width of.\n */\n private _getElementWidth(element: HTMLElement): number {\n const elementStyle = getComputedStyle(element);\n const elementWidth = element.getBoundingClientRect().width;\n const elementSize = elementWidth + parseFloat(elementStyle.marginLeft) + parseFloat(elementStyle.marginRight);\n\n return elementSize;\n }\n}\n","<div class=\"fd-overflow-layout__items-container\" #layoutContainer>\n <div class=\"fd-overflow-layout__items\" #itemsWrapper>\n <ng-container *ngFor=\"let item of _allItems; trackBy: _itemsTrackFn\">\n <div fdOverflowLayoutItemContainer>\n <ng-container *fdOverflowItemContainerRef>\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item.hidden, index: item.index }\"\n ></ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n\n<div class=\"fd-overflow-layout__more\" *ngIf=\"_showMore\" #showMoreContainer>\n <ng-template #defaultShowMore>\n <fd-popover\n (isOpenChange)=\"_onPopoverStateChange($event)\"\n placement=\"bottom\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"true\"\n [maxWidth]=\"312\"\n >\n <fd-popover-control>\n <button\n fd-button\n [fdMenu]=\"true\"\n i18n=\"@overflowLayout.moreItemsButton|Overflow Layout more button text\"\n fdType=\"transparent\"\n >\n {{ _hiddenItems.length }} more\n </button>\n </fd-popover-control>\n <fd-popover-body>\n <div fdOverflowLayoutPopoverContent [items]=\"_hiddenItems\">\n <ng-container *ngFor=\"let item of _hiddenItems\">\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item.hidden, index: item.index }\"\n ></ng-template>\n </ng-container>\n </div>\n </fd-popover-body>\n </fd-popover>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"_moreButton?.templateRef || defaultShowMore\"\n [ngTemplateOutletContext]=\"{ $implicit: _hiddenItems }\"\n ></ng-template>\n</div>\n","import { Directive, ElementRef, TemplateRef } from '@angular/core';\nimport { OverflowItemDirectiveContext, OverflowItemRef } from '../interfaces/overflow-item-ref.interface';\nimport { OverflowItem } from '../interfaces/overflow-item.interface';\nimport { FD_OVERFLOW_ITEM_REF } from '../tokens/overflow-item-ref.token';\n\n/**\n * Structural directive which is used to pass the context of the item to the template engine.\n */\n@Directive({\n selector: '[fdOverflowItemRef]',\n providers: [\n {\n provide: FD_OVERFLOW_ITEM_REF,\n useExisting: OverflowItemRefDirective\n }\n ]\n})\nexport class OverflowItemRefDirective implements OverflowItemRef {\n /**\n * Element ref of the `fdOverflowLayoutItem` directive.\n */\n elementRef: ElementRef<HTMLElement>;\n /**\n * `fdOverflowLayoutItem` directive.\n */\n overflowItem: OverflowItem;\n /**\n * Whether the item is hidden.\n */\n hidden = false;\n /**\n * Index of the item in the array of Overflow Layout Component's items.\n */\n index: number;\n\n /** @hidden */\n static ngTemplateContextGuard(\n dir: OverflowItemRefDirective,\n ctx: OverflowItemDirectiveContext\n ): ctx is OverflowItemDirectiveContext {\n return true;\n }\n\n /** @hidden */\n constructor(public templateRef: TemplateRef<OverflowItemDirectiveContext>) {}\n\n /**\n * Sets the element reference of the `fdOverflowLayoutItem` directive.`\n * @param elmRef\n */\n setElementRef(elmRef: ElementRef): void {\n if (this.elementRef) {\n return;\n }\n this.elementRef = elmRef;\n }\n\n /**\n * Sets the `fdOverflowLayoutItem` directive.\n * @param item\n */\n setOverflowItem(item: OverflowItem): void {\n this.overflowItem = item;\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\nimport { OverflowExpand, OverflowExpandDirectiveContext } from '../interfaces/overflow-expand.interface';\nimport { FD_OVERFLOW_EXPAND } from '../tokens/overflow-expand.token';\n\n/**\n * Structural directive which is responsible for rendering the \"More\" button and handling further logic.\n */\n@Directive({\n selector: '[fdOverflowExpand]',\n providers: [\n {\n provide: FD_OVERFLOW_EXPAND,\n useExisting: OverflowExpandDirective\n }\n ]\n})\nexport class OverflowExpandDirective implements OverflowExpand {\n /** @hidden */\n static ngTemplateContextGuard(\n dir: OverflowExpandDirective,\n ctx: OverflowExpandDirectiveContext\n ): ctx is OverflowExpandDirectiveContext {\n return true;\n }\n\n /** @hidden */\n constructor(public templateRef: TemplateRef<OverflowExpandDirectiveContext>) {}\n}\n","import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n SkipSelf\n} from '@angular/core';\nimport { OverflowItemRef } from '../interfaces/overflow-item-ref.interface';\nimport { OverflowItem } from '../interfaces/overflow-item.interface';\nimport { OverflowLayoutComponent } from '../overflow-layout.component';\nimport { FD_OVERFLOW_ITEM_REF } from '../tokens/overflow-item-ref.token';\nimport { FD_OVERFLOW_ITEM } from '../tokens/overflow-item.token';\n\n/**\n * Directive to mark element as part of for Overflow Layout Component items.\n */\n@Directive({\n selector: '[fdOverflowLayoutItem]',\n providers: [\n {\n provide: FD_OVERFLOW_ITEM,\n useExisting: OverflowLayoutItemDirective\n }\n ]\n})\nexport class OverflowLayoutItemDirective implements OverflowItem, OnInit {\n /** Whether the item should be focusable. */\n @Input()\n focusable = false;\n\n /** Whether to force the visibility of the item. */\n @Input()\n set forceVisibility(value: boolean) {\n if (value === this._forceVisibility) {\n return;\n }\n\n this._forceVisibility = value;\n this._overflowContainer.triggerRecalculation();\n }\n\n get forceVisibility(): boolean {\n return this._forceVisibility;\n }\n /**\n * Whether the item is hidden.\n */\n get hidden(): boolean {\n return this._overflowItemRef?.hidden === true;\n }\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n private get _tabindex(): number {\n return this.focusable ? 0 : -1;\n }\n\n /** @hidden */\n private _forceVisibility = false;\n\n /** @hidden */\n @HostListener('focus')\n onFocus(): void {\n this._overflowContainer.setFocusedElement(this);\n }\n\n /** @hidden */\n constructor(\n private _overflowContainer: OverflowLayoutComponent,\n public elmRef: ElementRef,\n @Optional() @SkipSelf() @Inject(FD_OVERFLOW_ITEM_REF) private _overflowItemRef: OverflowItemRef | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._overflowItemRef?.setElementRef(this.elmRef);\n this._overflowItemRef?.setOverflowItem(this);\n }\n\n /**\n * Focuses connected to the DOM element.\n */\n focus(): void {\n // Since we use detach() method of ViewContainerRef to remove elements from the visible list,\n // we need to check that element is connected to the DOM.\n this.elmRef.nativeElement.isConnected\n ? this.elmRef.nativeElement.focus()\n : this._overflowItemRef?.elementRef.nativeElement.isConnected\n ? this._overflowItemRef?.elementRef.nativeElement.focus()\n : this._overflowItemRef?.overflowItem.elmRef.nativeElement.focus();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { OverflowLayoutComponent } from './overflow-layout.component';\nimport { OverflowItemRefDirective } from './directives/overflow-item-ref.directive';\nimport { OverflowExpandDirective } from './directives/overflow-expand.directive';\nimport { OverflowLayoutItemDirective } from './directives/overflow-layout-item.directive';\nimport { OverflowItemContainerRefDirective } from './directives/overflow-item-container-ref.directive';\nimport { OverflowLayoutPopoverContentDirective } from './directives/overflow-layout-popover-content.directive';\nimport { OverflowLayoutItemContainerDirective } from './directives/overflow-layout-item-container.directive';\n\n@NgModule({\n imports: [CommonModule, PopoverModule, ButtonModule],\n exports: [\n OverflowLayoutComponent,\n OverflowItemRefDirective,\n OverflowExpandDirective,\n OverflowLayoutItemDirective,\n OverflowItemContainerRefDirective,\n OverflowLayoutPopoverContentDirective\n ],\n declarations: [\n OverflowLayoutComponent,\n OverflowItemRefDirective,\n OverflowExpandDirective,\n OverflowLayoutItemDirective,\n OverflowItemContainerRefDirective,\n OverflowLayoutPopoverContentDirective,\n OverflowLayoutItemContainerDirective\n ]\n})\nexport class OverflowLayoutModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-overflow-layout.mjs","sources":["../../../../libs/core/src/lib/overflow-layout/directives/overflow-item-container-ref.directive.ts","../../../../libs/core/src/lib/overflow-layout/directives/overflow-layout-item-container.directive.ts","../../../../libs/core/src/lib/overflow-layout/overflow-layout.service.ts","../../../../libs/core/src/lib/overflow-layout/tokens/overflow-container.token.ts","../../../../libs/core/src/lib/overflow-layout/tokens/overflow-expand.token.ts","../../../../libs/core/src/lib/overflow-layout/tokens/overflow-item-ref.token.ts","../../../../libs/core/src/lib/overflow-layout/tokens/overflow-item.token.ts","../../../../libs/core/src/lib/overflow-layout/directives/overflow-layout-popover-content.directive.ts","../../../../libs/core/src/lib/overflow-layout/overflow-layout.component.ts","../../../../libs/core/src/lib/overflow-layout/overflow-layout.component.html","../../../../libs/core/src/lib/overflow-layout/directives/overflow-item-ref.directive.ts","../../../../libs/core/src/lib/overflow-layout/directives/overflow-expand.directive.ts","../../../../libs/core/src/lib/overflow-layout/directives/overflow-layout-item.directive.ts","../../../../libs/core/src/lib/overflow-layout/overflow-layout.module.ts","../../../../libs/core/src/lib/overflow-layout/fundamental-ngx-core-overflow-layout.ts"],"sourcesContent":["import { Directive, ElementRef, TemplateRef, ViewContainerRef, ViewRef } from '@angular/core';\n\n/**\n * Directive to hide component without actual destroying of the component instance.\n */\n@Directive({\n selector: '[fdOverflowItemContainerRef]'\n})\nexport class OverflowItemContainerRefDirective {\n /** @hidden */\n private _viewRef: ViewRef;\n\n /** @hidden */\n private _detached = false;\n\n /** @hidden */\n private _hidden = false;\n\n /**\n * Shows or hides element without destroying the view itself.\n * @param value\n */\n set hidden(value: boolean) {\n if (this._hidden === value) {\n return;\n }\n this._hidden = value;\n if (value && !this._detached) {\n this._viewRef = this._viewContainerRef.detach()!;\n this._detached = true;\n } else if (!value && this._viewRef && !this._viewRef.destroyed && this._detached) {\n this._viewRef = this._viewContainerRef.insert(this._viewRef);\n this._detached = false;\n }\n }\n\n /** @hidden */\n constructor(\n private _templateRef: TemplateRef<any>,\n private _viewContainerRef: ViewContainerRef,\n private _elmRef: ElementRef\n ) {\n // Create embedded view right away and manipulate its visibility later.\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n}\n","import { ContentChild, Directive, ElementRef, HostBinding, Input } from '@angular/core';\nimport { OverflowItemContainerRefDirective } from './overflow-item-container-ref.directive';\n\n@Directive({\n selector: '[fdOverflowLayoutItemContainer]'\n})\nexport class OverflowLayoutItemContainerDirective {\n /** @hidden */\n @HostBinding('class')\n private readonly _initialClass = 'fd-overflow-layout__item';\n\n /**\n * Whether this item is the first one in the array.\n */\n @Input()\n @HostBinding('class.fd-overflow-layout__item--last')\n last = false;\n\n /**\n * Whether this item is the last one in the array.\n */\n @Input()\n @HostBinding('class.fd-overflow-layout__item--first')\n first = false;\n\n /**\n * Whether this item is softly hidden. Used during free space calculation without flickering of the items.\n */\n @Input()\n @HostBinding('class.fd-overflow-layout__item--soft-hidden')\n softHidden = true;\n\n /**\n * Container reference.\n */\n @ContentChild(OverflowItemContainerRefDirective)\n containerRef: OverflowItemContainerRefDirective;\n\n /** @hidden */\n constructor(public elementRef: ElementRef) {}\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { ElementRef, Injectable, OnDestroy, Optional, QueryList } from '@angular/core';\nimport { resizeObservable, RtlService } from '@fundamental-ngx/core/utils';\nimport { debounceTime, distinctUntilChanged, filter, Observable, skip, Subject, Subscription } from 'rxjs';\nimport { OverflowLayoutItemContainerDirective } from './directives/overflow-layout-item-container.directive';\nimport { OverflowItemRef } from './interfaces/overflow-item-ref.interface';\nimport { OverflowItem } from './interfaces/overflow-item.interface';\n\nexport interface OverflowLayoutConfig {\n items: QueryList<OverflowItemRef>;\n visibleItems: QueryList<OverflowLayoutItemContainerDirective>;\n itemsWrapper: HTMLElement;\n showMoreContainer: HTMLElement;\n layoutContainerElement: HTMLElement;\n maxVisibleItems: number;\n direction: 'left' | 'right';\n enableKeyboardNavigation: boolean;\n reverseHiddenItems: boolean;\n}\n\nexport class OverflowLayoutListeningResult {\n showMore = false;\n items: OverflowItemRef[] = [];\n hiddenItems: OverflowItemRef[] = [];\n visibleItems: OverflowItemRef[] = [];\n}\n\n@Injectable()\nexport class OverflowLayoutService implements OnDestroy {\n /**\n * Overflow Layout config.\n */\n config: OverflowLayoutConfig;\n\n /**\n * Overflow Layout calculation result.\n */\n result = new OverflowLayoutListeningResult();\n\n /** @hidden */\n _keyboardEventsManager: FocusKeyManager<OverflowItem>;\n\n /** @hidden */\n private _listenToItemResize = true;\n\n /** @hidden */\n private readonly _subscription = new Subscription();\n\n /** @hidden */\n private _allItems: OverflowItemRef[] = [];\n\n /** @hidden */\n private _hiddenItems: OverflowItemRef[] = [];\n\n /** @hidden */\n private _overflowItems: OverflowItem[] = [];\n\n /** @hidden */\n private _detectChanges$ = new Subject<void>();\n\n /** @hidden */\n private _result$ = new Subject<OverflowLayoutListeningResult>();\n\n /** @hidden */\n private _dir: 'rtl' | 'ltr' = 'ltr';\n\n /**\n * Observable which emits when changes detection is required.\n */\n get detectChanges(): Observable<void> {\n return this._detectChanges$.asObservable();\n }\n\n /**\n * Observable which emits when new calculation result is available.\n */\n get onResult(): Observable<OverflowLayoutListeningResult> {\n return this._result$.asObservable();\n }\n\n /** @hidden */\n constructor(private _elRef: ElementRef<HTMLElement>, @Optional() private _rtlService: RtlService | null) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscription.unsubscribe();\n }\n\n startListening(config: OverflowLayoutConfig): void {\n this.setConfig(config);\n this.fitVisibleItems();\n this._setFocusKeyManager();\n this._listenToChanges();\n this._subscribeToRtl();\n }\n\n setConfig(config: OverflowLayoutConfig): void {\n this.config = config;\n }\n\n private _emitResult(): void {\n this._result$.next(this.result);\n }\n\n /** @hidden */\n private _listenToChanges(): void {\n this._subscription.add(\n this.config.items.changes.subscribe(() => {\n setTimeout(() => {\n this.fitVisibleItems();\n });\n })\n );\n\n this._listenToSizeChanges(this._elRef.nativeElement, this.config.itemsWrapper);\n }\n\n /** @hidden */\n private _listenToSizeChanges(...elements: HTMLElement[]): void {\n elements.forEach((element) =>\n this._subscription.add(\n resizeObservable(element)\n .pipe(\n skip(1),\n filter(() => this._listenToItemResize),\n distinctUntilChanged(),\n debounceTime(30)\n )\n .subscribe(() => {\n setTimeout(() => {\n this.fitVisibleItems();\n });\n })\n )\n );\n }\n\n /** @hidden */\n fitVisibleItems(): void {\n this._listenToItemResize = false;\n this._allItems = this.config.items.toArray();\n\n let allItems = this.config.items.toArray();\n let visibleContainerItems = this.config.visibleItems.toArray();\n\n allItems.forEach((item, index) => {\n // Softly hide previously completely hidden item in order to correctly calculate it's size.\n item.softHidden = true;\n item.hidden = false;\n item.index = index;\n item.first = index === 0;\n item.last = index === allItems.length - 1;\n visibleContainerItems[index].containerRef.hidden = false;\n });\n\n this._detectChanges$.next();\n\n allItems = this.config.direction === 'right' ? allItems : allItems.reverse();\n visibleContainerItems =\n this.config.direction === 'right' ? visibleContainerItems : visibleContainerItems.reverse();\n\n this.result.showMore = false;\n this._emitResult();\n const containerWidth = this._elRef.nativeElement.getBoundingClientRect().width;\n const itemsContainerWidth = this.config.itemsWrapper.getBoundingClientRect().width;\n\n if (\n containerWidth >= itemsContainerWidth &&\n this.config.visibleItems.length <= this.config.maxVisibleItems &&\n this._hiddenItems.length === 0\n ) {\n // Make all items fully visible.\n allItems.forEach((item) => {\n item.softHidden = false;\n });\n this.result.showMore = false;\n this.result.hiddenItems = this._hiddenItems;\n this._emitResult();\n this._listenToItemResize = true;\n return;\n }\n this.result.showMore = true;\n this._emitResult();\n let fittingElmCount = 0;\n let fittingElmsWidth = 0;\n let shouldHideItems = false;\n\n const showMoreContainerWidth = Math.ceil(this.config.showMoreContainer.getBoundingClientRect().width);\n let layoutWidth = Math.ceil(this.config.layoutContainerElement.getBoundingClientRect().width);\n\n // Try to find all forced visible items\n const forcedItemsIndexes = this._getForcedItemsIndexes();\n\n forcedItemsIndexes.forEach((itemIndex) => {\n const container = this.config.visibleItems.get(itemIndex);\n if (!container) {\n return;\n }\n const elementSize = this._getElementWidth(container.elementRef.nativeElement);\n\n layoutWidth -= elementSize;\n });\n\n if (layoutWidth < 0 && forcedItemsIndexes.length > 0) {\n console.warn(\n 'There is no enough space to fit all forced visible items into the container. Please adjust their visibility accordingly.'\n );\n }\n\n this._detectChanges$.next();\n\n visibleContainerItems.forEach((item, index) => {\n const itemRef = allItems[index];\n if (shouldHideItems && !itemRef.overflowItem.forceVisibility) {\n item.containerRef.hidden = true;\n item.softHidden = false;\n itemRef.hidden = true;\n return;\n }\n\n const elementSize = this._getElementWidth(item.elementRef.nativeElement);\n const combinedWidth = fittingElmsWidth + elementSize;\n\n const condition =\n (combinedWidth <= layoutWidth ||\n (item === this.config.visibleItems.last &&\n combinedWidth <= layoutWidth + showMoreContainerWidth)) &&\n fittingElmCount < this.config.maxVisibleItems;\n\n if (condition) {\n fittingElmsWidth += elementSize;\n fittingElmCount++;\n } else if (!itemRef.overflowItem.forceVisibility) {\n shouldHideItems = true;\n item.softHidden = false;\n item.containerRef.hidden = true;\n itemRef.hidden = true;\n }\n });\n\n // Reverse original order back.\n allItems = this.config.direction === 'right' ? allItems : allItems.reverse();\n\n allItems.forEach((item) => {\n item.softHidden = false;\n });\n\n let hiddenItems = allItems.filter((i) => i.hidden);\n hiddenItems = !this.config.reverseHiddenItems ? hiddenItems.reverse() : hiddenItems;\n const visibleItems = allItems.filter((i) => !i.hidden);\n\n visibleItems.forEach((item, index) => {\n item.index = index;\n item.first = index === 0;\n item.last = index === visibleItems.length - 1;\n });\n\n this._hiddenItems = hiddenItems.map((item, index) => {\n item.first = index === 0;\n item.last = index === hiddenItems.length - 1;\n item.index = index;\n return item;\n });\n\n this.result.showMore = this._hiddenItems.length > 0;\n this.result.hiddenItems = this._hiddenItems;\n this._emitResult();\n\n this._listenToItemResize = true;\n }\n\n /** @hidden */\n private _setFocusKeyManager(): void {\n if (!this.config.enableKeyboardNavigation) {\n return;\n }\n this._dir = this._rtlService?.rtl.value ? 'rtl' : 'ltr';\n this._keyboardEventsManager = new FocusKeyManager(this._overflowItems)\n .withWrap()\n .withHorizontalOrientation(this._dir)\n .skipPredicate((item) => !item.focusable || item.hidden);\n }\n\n /** @hidden Rtl change subscription */\n private _subscribeToRtl(): void {\n if (!this._rtlService || !this.config.enableKeyboardNavigation) {\n return;\n }\n\n this._subscription.add(\n this._rtlService.rtl.subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n\n this._keyboardEventsManager = this._keyboardEventsManager.withHorizontalOrientation(this._dir);\n })\n );\n }\n\n /** @hidden */\n private _getForcedItemsIndexes(): number[] {\n return this._allItems\n .map((item, index) => (item.overflowItem.forceVisibility ? index : -1))\n .filter((i) => i > -1);\n }\n\n /**\n * @hidden\n * Returns combined width of the element including margins.\n * @param element Element to calculate width of.\n */\n private _getElementWidth(element: HTMLElement): number {\n const elementStyle = getComputedStyle(element);\n const elementWidth = element.getBoundingClientRect().width;\n const elementSize = elementWidth + parseFloat(elementStyle.marginLeft) + parseFloat(elementStyle.marginRight);\n\n return Math.ceil(elementSize);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { OverflowContainer } from '../interfaces/overflow-container.interface';\n\nexport const FD_OVERFLOW_CONTAINER = new InjectionToken<OverflowContainer>('FdOverflowContainer');\n","import { InjectionToken } from '@angular/core';\nimport { OverflowExpand } from '../interfaces/overflow-expand.interface';\n\nexport const FD_OVERFLOW_EXPAND = new InjectionToken<OverflowExpand>('FdOverflowLayoutExpand');\n","import { InjectionToken } from '@angular/core';\nimport { OverflowItemRef } from '../interfaces/overflow-item-ref.interface';\n\nexport const FD_OVERFLOW_ITEM_REF = new InjectionToken<OverflowItemRef>('OverflowLayoutItemRef');\n","import { InjectionToken } from '@angular/core';\nimport { OverflowItem } from '../interfaces/overflow-item.interface';\n\nexport const FD_OVERFLOW_ITEM = new InjectionToken<OverflowItem>('FdOverflowItem');\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, TAB, UP_ARROW } from '@angular/cdk/keycodes';\nimport { Directive, HostBinding, HostListener, Inject, Input } from '@angular/core';\nimport { KeyUtil } from '@fundamental-ngx/core/utils';\nimport { OverflowContainer } from '../interfaces/overflow-container.interface';\nimport { OverflowItem } from '../interfaces/overflow-item.interface';\nimport { OverflowPopoverContent } from '../interfaces/overflow-popover-content.interface';\nimport { OverflowItemRef } from '../interfaces/overflow-item-ref.interface';\nimport { FD_OVERFLOW_CONTAINER } from '../tokens/overflow-container.token';\n\n/**\n * Directive to wrap Overlay Layout \"More\" popover content.\n * Used to apply keyboard navigation through the items.\n */\n@Directive({\n selector: '[fdOverflowLayoutPopoverContent]'\n})\nexport class OverflowLayoutPopoverContentDirective implements OverflowPopoverContent {\n /**\n * Array of hidden items.\n */\n @Input()\n set items(value: OverflowItemRef[]) {\n this._items = value;\n this._keyboardEventsManager = new FocusKeyManager(\n this._items.filter((item) => item.overflowItem.focusable).map((item) => item.overflowItem)\n )\n .withWrap()\n .withHorizontalOrientation('ltr');\n }\n\n /** @hidden */\n private _keyboardEventsManager: FocusKeyManager<OverflowItem>;\n\n /** @hidden */\n private _items: OverflowItemRef[];\n\n /** @hidden */\n @HostBinding('class')\n private readonly _initialClass = 'fd-overflow-layout__popover-container';\n\n /** @hidden */\n constructor(@Inject(FD_OVERFLOW_CONTAINER) private _overflowContainer: OverflowContainer) {\n this._overflowContainer?.registerPopoverContent(this);\n }\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n keyUpHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, TAB)) {\n const index = this._items.findIndex((item) => item.elementRef.nativeElement === event.target);\n if (index !== -1) {\n this._keyboardEventsManager.setActiveItem(index);\n }\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n event.preventDefault();\n\n // passing the event to key manager, so we get a change fired\n this._keyboardEventsManager.onKeydown(event);\n }\n }\n\n /**\n * Focuses on the first tabbable element inside directive's element.\n */\n focusFirstTabbableElement(): void {\n this._keyboardEventsManager.setActiveItem(0);\n }\n}\n","import { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, TAB, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChildren,\n QueryList,\n ChangeDetectorRef,\n ContentChild,\n HostBinding,\n ViewChild,\n ElementRef,\n NgZone,\n Output,\n EventEmitter,\n HostListener,\n Optional,\n TemplateRef,\n ViewChildren,\n AfterViewInit,\n OnDestroy,\n Input\n} from '@angular/core';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/core/utils';\nimport { debounceTime, Subject, Subscription } from 'rxjs';\nimport { OverflowLayoutItemContainerDirective } from './directives/overflow-layout-item-container.directive';\nimport { OverflowContainer } from './interfaces/overflow-container.interface';\nimport { OverflowExpand } from './interfaces/overflow-expand.interface';\nimport { OverflowItemRef } from './interfaces/overflow-item-ref.interface';\nimport { OverflowItem } from './interfaces/overflow-item.interface';\nimport { OverflowPopoverContent } from './interfaces/overflow-popover-content.interface';\nimport { OverflowLayoutConfig, OverflowLayoutService } from './overflow-layout.service';\nimport { FD_OVERFLOW_CONTAINER } from './tokens/overflow-container.token';\nimport { FD_OVERFLOW_EXPAND } from './tokens/overflow-expand.token';\nimport { FD_OVERFLOW_ITEM_REF } from './tokens/overflow-item-ref.token';\nimport { FD_OVERFLOW_ITEM } from './tokens/overflow-item.token';\n\n@Component({\n selector: 'fd-overflow-layout',\n templateUrl: './overflow-layout.component.html',\n styleUrls: ['./overflow-layout.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_OVERFLOW_CONTAINER,\n useExisting: OverflowLayoutComponent\n },\n OverflowLayoutService\n ]\n})\nexport class OverflowLayoutComponent implements AfterViewInit, OnDestroy, OverflowContainer {\n /**\n * Maximum amount of visible items.\n */\n @Input()\n set maxVisibleItems(value: number) {\n if (value === this._maxVisibleItems) {\n return;\n }\n this._maxVisibleItems = value;\n this.triggerRecalculation();\n }\n\n get maxVisibleItems(): number {\n return this._maxVisibleItems;\n }\n\n /** Direction of the fitting items calculation. */\n @Input()\n showMorePosition: 'left' | 'right' = 'right';\n\n /** Whether to render hidden items in reverse order. */\n @Input()\n reverseHiddenItems = false;\n\n /** Whether to enable keyboard navigation. */\n @Input()\n enableKeyboardNavigation = true;\n\n /**\n * Event, triggered when amount of visible items has been changed.\n */\n @Output()\n visibleItemsCount = new EventEmitter<number>();\n\n /**\n * Event, triggered when amount of hidden items has been changed.\n */\n @Output()\n hiddenItemsCount = new EventEmitter<number>();\n\n /**\n * @hidden\n * List of items to display.\n */\n @ContentChildren(FD_OVERFLOW_ITEM_REF, { descendants: true })\n _items: QueryList<OverflowItemRef>;\n\n /**\n * @hidden\n * Template for the custom \"More\" button.\n */\n @ContentChild(FD_OVERFLOW_EXPAND)\n _moreButton: OverflowExpand;\n\n /**\n * @hidden\n * List of items that can be focused.\n */\n @ContentChildren(FD_OVERFLOW_ITEM, { descendants: true })\n _overflowItems: QueryList<OverflowItem>;\n\n /**\n * @hidden\n * List of rendered items.\n */\n @ViewChildren(OverflowLayoutItemContainerDirective)\n _visibleItems: QueryList<OverflowLayoutItemContainerDirective>;\n\n /**\n * @hidden\n * Items wrapper directive.\n */\n @ViewChild('itemsWrapper')\n _itemsWrapper: ElementRef<HTMLElement>;\n\n /**\n * @hidden\n * Layout container element.\n */\n @ViewChild('layoutContainer')\n _layoutContainer: ElementRef<HTMLDivElement>;\n\n /**\n * @hidden\n * \"More\" button container element.\n */\n @ViewChild('showMoreContainer')\n _showMoreContainer: ElementRef<HTMLDivElement>;\n\n /** @hidden */\n _allItems: OverflowItemRef[] = [];\n\n /** @hidden */\n _hiddenItems: OverflowItemRef[] = [];\n\n /** @hidden */\n _showMore = false;\n\n /** @hidden */\n @HostBinding('class')\n private readonly _initialClass = 'fd-overflow-layout';\n\n /** @hidden */\n private readonly _subscription = new Subscription();\n\n /** @hidden */\n private _overflowPopoverContent: OverflowPopoverContent;\n\n /** @hidden */\n private _fillTrigger$ = new Subject<void>();\n\n /** @hidden */\n private _maxVisibleItems = Infinity;\n\n /** @hidden */\n private _canListenToResize = false;\n\n /** @hidden */\n constructor(\n protected _cdr: ChangeDetectorRef,\n protected _zone: NgZone,\n protected _elRef: ElementRef,\n protected _overflowLayoutService: OverflowLayoutService,\n @Optional() protected _rtlService: RtlService\n ) {\n this._subscription.add(\n this._fillTrigger$.pipe(debounceTime(30)).subscribe(() => this._overflowLayoutService.fitVisibleItems())\n );\n }\n\n /**\n * Triggers layout recalculation of the items.\n */\n triggerRecalculation(): void {\n if (!this._canListenToResize) {\n return;\n }\n this._overflowLayoutService.setConfig(this._getConfig());\n this._fillTrigger$.next();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscription.unsubscribe();\n }\n\n /**\n * Sets current focused element.\n * @param element Element that needs to be focused.\n */\n setFocusedElement(element: OverflowItem): void {\n const index = this._overflowItems.toArray().findIndex((item) => item === element);\n\n if (index !== -1) {\n this._overflowLayoutService._keyboardEventsManager.setActiveItem(index);\n }\n }\n\n /**\n * Registers popover content directive for main component.\n * @param content {OverflowPopoverContent} directive\n */\n registerPopoverContent(content: OverflowPopoverContent): void {\n this._overflowPopoverContent = content;\n }\n\n /** @hidden */\n _itemsTrackFn(_: number, item: OverflowItemRef): TemplateRef<any> {\n return item.templateRef;\n }\n\n /** @hidden */\n _onPopoverStateChange(opened: boolean): void {\n if (opened) {\n this._overflowPopoverContent?.focusFirstTabbableElement();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._subscription.add(\n this._overflowLayoutService.detectChanges.subscribe(() => {\n this._cdr.detectChanges();\n })\n );\n\n this._subscription.add(\n this._overflowLayoutService.onResult.subscribe((result) => {\n this._hiddenItems = result.hiddenItems;\n this._showMore = result.showMore;\n this.hiddenItemsCount.emit(result.hiddenItems.length);\n this.visibleItemsCount.emit(this._allItems.filter((i) => !i.hidden).length);\n this._cdr.detectChanges();\n })\n );\n\n this._subscription.add(\n this._items.changes.subscribe(() => {\n this._allItems = this._items.toArray();\n this._cdr.detectChanges();\n })\n );\n\n this._allItems = this._items.toArray();\n this._cdr.detectChanges();\n\n this._overflowLayoutService.startListening(this._getConfig());\n\n this._canListenToResize = true;\n }\n\n /** @hidden */\n private _getConfig(): OverflowLayoutConfig {\n return {\n visibleItems: this._visibleItems,\n items: this._items,\n itemsWrapper: this._itemsWrapper.nativeElement,\n showMoreContainer: this._showMoreContainer.nativeElement,\n layoutContainerElement: this._layoutContainer.nativeElement,\n maxVisibleItems: this.maxVisibleItems,\n direction: this.showMorePosition,\n enableKeyboardNavigation: this.enableKeyboardNavigation,\n reverseHiddenItems: this.reverseHiddenItems\n };\n }\n\n /** @hidden */\n @HostListener('keyup', ['$event'])\n private _keyUpHandler(event: KeyboardEvent): void {\n if (!this.enableKeyboardNavigation) {\n return;\n }\n if (KeyUtil.isKeyCode(event, TAB)) {\n const index = this._allItems.findIndex(\n (item) => item.overflowItem?.focusable && item.elementRef.nativeElement === event.target\n );\n if (index !== -1) {\n this._overflowLayoutService._keyboardEventsManager.setActiveItem(index);\n }\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n event.preventDefault();\n\n // passing the event to key manager so, we get a change fired\n this._overflowLayoutService._keyboardEventsManager.onKeydown(event);\n }\n }\n}\n","<ng-template [ngIf]=\"showMorePosition === 'left'\">\n <ng-template [ngTemplateOutlet]=\"showMore\"></ng-template>\n</ng-template>\n\n<div class=\"fd-overflow-layout__items-container\" #layoutContainer>\n <div class=\"fd-overflow-layout__items\" #itemsWrapper>\n <ng-container *ngFor=\"let item of _allItems; trackBy: _itemsTrackFn\">\n <div fdOverflowLayoutItemContainer [first]=\"item.first\" [last]=\"item.last\" [softHidden]=\"item.softHidden\">\n <ng-container *fdOverflowItemContainerRef>\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.hidden,\n index: item.index,\n first: item.first,\n last: item.last\n }\"\n ></ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n</div>\n\n<ng-template [ngIf]=\"showMorePosition === 'right'\">\n <ng-template [ngTemplateOutlet]=\"showMore\"></ng-template>\n</ng-template>\n\n<ng-template #showMore>\n <div class=\"fd-overflow-layout__more\" [style.display]=\"_showMore ? 'block' : 'none'\" #showMoreContainer>\n <ng-template #defaultShowMore>\n <fd-popover\n (isOpenChange)=\"_onPopoverStateChange($event)\"\n placement=\"bottom\"\n [focusTrapped]=\"true\"\n [focusAutoCapture]=\"true\"\n [maxWidth]=\"312\"\n >\n <fd-popover-control>\n <button\n fd-button\n [fdMenu]=\"true\"\n i18n=\"@overflowLayout.moreItemsButton|Overflow Layout more button text\"\n fdType=\"transparent\"\n >\n {{ _hiddenItems.length }} more\n </button>\n </fd-popover-control>\n <fd-popover-body>\n <div fdOverflowLayoutPopoverContent [items]=\"_hiddenItems\">\n <ng-container *ngFor=\"let item of _hiddenItems\">\n <ng-template\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: item.hidden,\n index: item.index,\n first: item.first,\n last: item.last\n }\"\n ></ng-template>\n </ng-container>\n </div>\n </fd-popover-body>\n </fd-popover>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"_moreButton?.templateRef || defaultShowMore\"\n [ngTemplateOutletContext]=\"{ $implicit: _hiddenItems }\"\n ></ng-template>\n </div>\n</ng-template>\n","import { Directive, ElementRef, Input, TemplateRef } from '@angular/core';\nimport { OverflowItemDirectiveContext, OverflowItemRef } from '../interfaces/overflow-item-ref.interface';\nimport { OverflowItem } from '../interfaces/overflow-item.interface';\nimport { FD_OVERFLOW_ITEM_REF } from '../tokens/overflow-item-ref.token';\n\n/**\n * Structural directive which is used to pass the context of the item to the template engine.\n */\n@Directive({\n selector: '[fdOverflowItemRef]',\n providers: [\n {\n provide: FD_OVERFLOW_ITEM_REF,\n useExisting: OverflowItemRefDirective\n }\n ]\n})\nexport class OverflowItemRefDirective<T = any> implements OverflowItemRef<T> {\n /**\n * Element ref of the `fdOverflowLayoutItem` directive.\n */\n elementRef: ElementRef<HTMLElement>;\n /**\n * `fdOverflowLayoutItem` directive.\n */\n overflowItem: OverflowItem;\n /**\n * Whether the item is hidden.\n */\n get hidden(): boolean {\n return this._hidden;\n }\n\n set hidden(value: boolean) {\n this._hidden = value;\n this.overflowItem.hiddenChange.emit(value);\n }\n _hidden = false;\n /**\n * Index of the item in the array of Overflow Layout Component's items.\n */\n index: number;\n\n /** Whether this item is last in the array. */\n first: boolean;\n\n /** Whether this item is first in the array. */\n last: boolean;\n\n /** Whether the item is softly hidden. */\n softHidden = true;\n\n /** Item instance. Used for correct autocomplete. */\n @Input('fdOverflowItemRef')\n item: T;\n\n /** @hidden */\n static ngTemplateContextGuard(\n dir: OverflowItemRefDirective,\n ctx: OverflowItemDirectiveContext\n ): ctx is OverflowItemDirectiveContext {\n return true;\n }\n\n /** @hidden */\n constructor(public templateRef: TemplateRef<OverflowItemDirectiveContext<T>>) {}\n\n /**\n * Sets the element reference of the `fdOverflowLayoutItem` directive.`\n * @param elmRef\n */\n setElementRef(elmRef: ElementRef): void {\n if (this.elementRef) {\n return;\n }\n this.elementRef = elmRef;\n }\n\n /**\n * Sets the `fdOverflowLayoutItem` directive.\n * @param item\n */\n setOverflowItem(item: OverflowItem): void {\n this.overflowItem = item;\n }\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { OverflowExpand, OverflowExpandDirectiveContext } from '../interfaces/overflow-expand.interface';\nimport { FD_OVERFLOW_EXPAND } from '../tokens/overflow-expand.token';\n\n/**\n * Structural directive which is responsible for rendering the \"More\" button and handling further logic.\n */\n@Directive({\n selector: '[fdOverflowExpand]',\n providers: [\n {\n provide: FD_OVERFLOW_EXPAND,\n useExisting: OverflowExpandDirective\n }\n ]\n})\nexport class OverflowExpandDirective<T extends any[] = any[]> implements OverflowExpand<T> {\n @Input()\n fdOverflowExpandItems: T;\n\n /** @hidden */\n static ngTemplateContextGuard(\n dir: OverflowExpandDirective,\n ctx: OverflowExpandDirectiveContext\n ): ctx is OverflowExpandDirectiveContext {\n return true;\n }\n\n /** @hidden */\n constructor(public templateRef: TemplateRef<OverflowExpandDirectiveContext<T>>) {}\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n SkipSelf\n} from '@angular/core';\nimport { OverflowItemRef } from '../interfaces/overflow-item-ref.interface';\nimport { OverflowItem } from '../interfaces/overflow-item.interface';\nimport { OverflowLayoutComponent } from '../overflow-layout.component';\nimport { FD_OVERFLOW_ITEM_REF } from '../tokens/overflow-item-ref.token';\nimport { FD_OVERFLOW_ITEM } from '../tokens/overflow-item.token';\n\n/**\n * Directive to mark element as part of for Overflow Layout Component items.\n */\n@Directive({\n selector: '[fdOverflowLayoutItem]',\n providers: [\n {\n provide: FD_OVERFLOW_ITEM,\n useExisting: OverflowLayoutItemDirective\n }\n ]\n})\nexport class OverflowLayoutItemDirective implements OverflowItem, OnInit {\n /** Whether the item should be focusable. */\n @Input()\n focusable = false;\n\n /** Whether to force the visibility of the item. */\n @Input()\n set forceVisibility(value: boolean) {\n if (value === this._forceVisibility) {\n return;\n }\n\n this._forceVisibility = value;\n this._overflowContainer.triggerRecalculation();\n }\n\n get forceVisibility(): boolean {\n return this._forceVisibility;\n }\n\n /**\n * Event emitted when `hidden` property has been changed.\n */\n @Output()\n hiddenChange = new EventEmitter<boolean>();\n\n /**\n * Whether the item is hidden.\n */\n get hidden(): boolean {\n return this._overflowItemRef?.hidden === true;\n }\n\n set hidden(value: boolean) {\n this.hiddenChange.emit(value);\n }\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n private get _tabindex(): number {\n return this.focusable ? 0 : -1;\n }\n\n /** @hidden */\n private _forceVisibility = false;\n\n /** @hidden */\n @HostListener('focus')\n onFocus(): void {\n this._overflowContainer.setFocusedElement(this);\n }\n\n /** @hidden */\n constructor(\n private _overflowContainer: OverflowLayoutComponent,\n public elmRef: ElementRef,\n @Optional() @SkipSelf() @Inject(FD_OVERFLOW_ITEM_REF) private _overflowItemRef: OverflowItemRef | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._overflowItemRef?.setElementRef(this.elmRef);\n this._overflowItemRef?.setOverflowItem(this);\n }\n\n /**\n * Focuses connected to the DOM element.\n */\n focus(): void {\n // Since we use detach() method of ViewContainerRef to remove elements from the visible list,\n // we need to check that element is connected to the DOM.\n this.elmRef.nativeElement.isConnected\n ? this.elmRef.nativeElement.focus()\n : this._overflowItemRef?.elementRef.nativeElement.isConnected\n ? this._overflowItemRef?.elementRef.nativeElement.focus()\n : this._overflowItemRef?.overflowItem.elmRef.nativeElement.focus();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { OverflowLayoutComponent } from './overflow-layout.component';\nimport { OverflowItemRefDirective } from './directives/overflow-item-ref.directive';\nimport { OverflowExpandDirective } from './directives/overflow-expand.directive';\nimport { OverflowLayoutItemDirective } from './directives/overflow-layout-item.directive';\nimport { OverflowItemContainerRefDirective } from './directives/overflow-item-container-ref.directive';\nimport { OverflowLayoutPopoverContentDirective } from './directives/overflow-layout-popover-content.directive';\nimport { OverflowLayoutItemContainerDirective } from './directives/overflow-layout-item-container.directive';\n\n@NgModule({\n imports: [CommonModule, PopoverModule, ButtonModule],\n exports: [\n OverflowLayoutComponent,\n OverflowItemRefDirective,\n OverflowExpandDirective,\n OverflowLayoutItemDirective,\n OverflowItemContainerRefDirective,\n OverflowLayoutPopoverContentDirective\n ],\n declarations: [\n OverflowLayoutComponent,\n OverflowItemRefDirective,\n OverflowExpandDirective,\n OverflowLayoutItemDirective,\n OverflowItemContainerRefDirective,\n OverflowLayoutPopoverContentDirective,\n OverflowLayoutItemContainerDirective\n ]\n})\nexport class OverflowLayoutModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-tile.mjs","sources":["../../../../libs/core/src/lib/tile/tile.component.ts","../../../../libs/core/src/lib/tile/tile.component.html","../../../../libs/core/src/lib/tile/directives/tile.directives.ts","../../../../libs/core/src/lib/tile/directives/numeric-content.directives.ts","../../../../libs/core/src/lib/tile/tile.module.ts","../../../../libs/core/src/lib/tile/fundamental-ngx-core-tile.ts"],"sourcesContent":["import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { applyCssClass } from '@fundamental-ngx/core/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/core/utils';\n\ntype TileType = null | 'kpi' | 'launch' | 'feed' | 'slide' | 'line';\ntype TileSize = null | 's';\n\n@Component({\n selector: 'fd-tile',\n templateUrl: './tile.component.html',\n styleUrls: ['./tile.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TileComponent implements CssClassBuilder, AfterViewInit, OnChanges {\n /** user's custom classes */\n @Input()\n class: string;\n\n /** Size modifier. Options are null (default) and 's'. */\n @Input()\n size: TileSize;\n\n /** Optional 'double' modifier to double the tile width. */\n @Input()\n double = false;\n\n /** Type of tile. Options are 'kpi', 'launch', 'feed', 'slide', 'line', or leave null for default. */\n @Input()\n type: TileType;\n\n /** Whether or not the tile is in 'action' mode. */\n @Input()\n action = false;\n\n /** Whether tile is focusable & clickable, (tileClick) event will be emitted on click. */\n @Input()\n set clickable(value: BooleanInput) {\n this._clickable = coerceBooleanProperty(value);\n }\n\n get clickable(): boolean {\n return this._clickable;\n }\n\n /** Whether tile gets clicked or space/enter pressed. */\n @Output()\n readonly tileClick = new EventEmitter<void>();\n\n /** @hidden */\n @ViewChild('container')\n ref: ElementRef;\n\n /** @hidden */\n private _clickable = false;\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return [\n 'fd-tile',\n this.size ? 'fd-tile--' + this.size : '',\n this.double ? 'fd-tile--double' : '',\n this.type ? 'fd-tile--' + this.type : '',\n this.action ? 'fd-tile--action' : '',\n this.class\n ];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this.ref;\n }\n}\n","<div\n class=\"fd-tile\"\n #container\n [attr.tabindex]=\"clickable ? 0 : -1\"\n (click)=\"clickable && tileClick.emit()\"\n (keyup.enter)=\"clickable && tileClick.emit()\"\n (keydown.space)=\"clickable && $event.preventDefault()\"\n (keyup.space)=\"clickable && tileClick.emit()\"\n>\n <div *ngIf=\"action && type !== 'line'\" class=\"fd-tile__overlay\"></div>\n\n <ng-content select=\"[fd-tile-action-close]\"></ng-content>\n\n <ng-content select=\"[fd-tile-action-indicator]\"></ng-content>\n\n <ng-content select=\"[fd-badge]\"></ng-content>\n\n <ng-content select=\"[fd-tile-header]\"></ng-content>\n\n <ng-content select=\"[fd-tile-header-content]\"></ng-content>\n\n <ng-content select=\"[fd-tile-content]\"></ng-content>\n\n <ng-content select=\"[fd-tile-footer]\"></ng-content>\n\n <ng-content select=\"[fd-tile-action-container]\"></ng-content>\n\n <ng-content></ng-content>\n</div>\n","import { Directive, ElementRef, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\nimport { applyCssClass, CssClassBuilder } from '@fundamental-ngx/core/utils';\nimport { Nullable } from '@fundamental-ngx/core/shared';\n\n@Directive({\n selector: '[fdTileContent], [fd-tile-content]'\n})\nexport class TileContentDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__content')\n baseClass = true;\n\n /** Divides the tile content in to two columns. */\n @HostBinding('class.fd-tile__content--2-col')\n @Input()\n twoColumn = false;\n}\n\n@Directive({\n selector: '[fdTileContentByline], [fd-tile-content-byline]'\n})\nexport class TileContentBylineDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__content-byline')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileContentText], [fd-tile-content-text]'\n})\nexport class TileContentTextDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__content-text')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileFooter], [fd-tile-footer]'\n})\nexport class TileFooterDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__footer')\n baseClass = true;\n\n /** Divides the tile footer in to two columns. */\n @HostBinding('class.fd-tile__footer--2-col')\n @Input()\n twoColumn = false;\n}\n\n@Directive({\n selector: '[fdTileFooterText], [fd-tile-footer-text]'\n})\nexport class TileFooterTextDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__footer-text')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileHeader], [fd-tile-header]'\n})\nexport class TileHeaderDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__header')\n baseClass = true;\n\n /** Divides the tile header in to two columns. */\n @HostBinding('class.fd-tile__header--2-col')\n @Input()\n twoColumn = false;\n}\n\n@Directive({\n selector: '[fdTileHeaderContent], [fd-tile-header-content]'\n})\nexport class TileHeaderContentDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__header-content')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileSection], [fd-tile-section]'\n})\nexport class TileSectionDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__section')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileTitle], [fd-tile-subtitle]'\n})\nexport class TileSubtitleDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__subtitle')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileTitle], [fd-tile-title]'\n})\nexport class TileTitleDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__title')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileTitleContainer], [fd-tile-title-container]'\n})\nexport class TileTitleContainerDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__title-container')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileRefresh], [fd-tile-refresh]'\n})\nexport class TileRefreshDirective implements OnInit, OnChanges, CssClassBuilder {\n /** Glyph */\n @Input()\n glyph: string;\n\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /** Apply user custom styles */\n @Input()\n @HostBinding('attr.aria-label')\n ariaLabel = 'Refresh';\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return ['fd-tile__refresh', this.glyph ? 'sap-icon--' + this.glyph : '', this.class];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n\nlet profileTileUniqueId = 0;\n\n@Directive({\n selector: '[fdTileProfileImg], [fd-tile-profile-img]',\n host: {\n 'attr.role': 'img'\n }\n})\nexport class TileProfileImgDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__profile-img')\n baseClass = true;\n\n /** Id of the tile. */\n @Input()\n @HostBinding('attr.id')\n id = `fd-profileTile-${profileTileUniqueId++}`;\n\n /** Aria-label for tile. */\n @Input()\n @HostBinding('attr.aria-label')\n ariaLabel: Nullable<string>;\n\n /** Aria-Labelledby for element describing tile. */\n @Input()\n @HostBinding('attr.aria-labelledby')\n ariaLabelledby: Nullable<string>;\n\n /** Background image url. */\n @Input()\n backgroundImage: Nullable<string>;\n\n /** @hidden */\n @HostBinding('style.background-image')\n get image(): string {\n return 'url(' + this.backgroundImage + ')';\n }\n}\n\n@Directive({\n selector: '[fdTileLogo], [fd-tile-logo]'\n})\nexport class TileLogoDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__logo')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileToggle], [fd-tile-toggle]'\n})\nexport class TileToggleDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__toggle')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileContainer], [fd-tile-container]'\n})\nexport class TileContainerDirective {\n /** @hidden */\n @HostBinding('class.fd-tile-container')\n baseClass = true;\n\n /** Whether or not the container is a 'list' type (used on screens smaller than 450px). */\n @HostBinding('class.fd-tile-container--list')\n @Input()\n list = false;\n}\n\n@Directive({\n selector: '[fdTileSlideContainer], [fd-tile-slide-container]'\n})\nexport class TileSlideContainerDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__container')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileBackgroundImg], [fd-tile-background-img]'\n})\nexport class TileBackgroundImgDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__background-img')\n baseClass = true;\n\n /** Background image url. */\n @Input()\n backgroundImage: Nullable<string>;\n\n /** @hidden */\n @HostBinding('style.background-image')\n get image(): string {\n return 'url(' + this.backgroundImage + ')';\n }\n}\n\n@Directive({\n selector: '[fdTilePageIndicator], [fd-tile-page-indicator]'\n})\nexport class TilePageIndicatorDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__page-indicator')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileDot], [fd-tile-dot]'\n})\nexport class TileDotDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__dot')\n baseClass = true;\n\n /** Whether or not this dot is active. */\n @HostBinding('class.fd-tile__dot--active')\n @Input()\n active = false;\n}\n\n@Directive({\n selector: '[fdTileActionClose], [fd-tile-action-close]'\n})\nexport class TileActionCloseDirective implements OnInit, OnChanges, CssClassBuilder {\n /** Apply user custom styles */\n @Input()\n class: string;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n this._addCloseIcon();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return ['fd-tile__action-close', this.class];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n\n /** @hidden */\n private _addCloseIcon(): void {\n const element = generateIcon('decline');\n this._elementRef.nativeElement.appendChild(element);\n }\n}\n\n@Directive({\n selector: '[fdTileActionIndicator], [fd-tile-action-indicator]'\n})\nexport class TileActionIndicatorDirective implements OnInit, OnChanges, CssClassBuilder {\n /** Apply user custom styles */\n @Input()\n class: string;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n this._addIndicatorIcon();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return ['fd-tile__action-indicator', this.class];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n\n /** @hidden */\n private _addIndicatorIcon(): void {\n const element = generateIcon('overflow');\n this._elementRef.nativeElement.appendChild(element);\n }\n}\n\n@Directive({\n selector: '[fdTileActionContainer], [fd-tile-action-container]'\n})\nexport class TileActionContainerDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__action-container')\n baseClass = true;\n}\n\nfunction generateIcon(iconName: string): HTMLElement {\n const element = document.createElement('i');\n element.setAttribute('role', 'presentation');\n element.classList.add(`sap-icon--${iconName}`);\n return element;\n}\n","import { Directive, ElementRef, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\nimport { applyCssClass } from '@fundamental-ngx/core/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/core/utils';\n\ntype NumericContentState = 'negative' | 'critical' | 'positive' | 'informative' | 'neutral';\ntype NumericContentSize = 's' | 'm' | 'l';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content]'\n})\nexport class NumericContentDirective implements OnInit, OnChanges, CssClassBuilder {\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /** Size of the numeric content */\n @Input()\n size: NumericContentSize | null;\n\n /** @hidden */\n @HostBinding('class.fd-numeric-content')\n baseClass = true;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return [\n 'fd-numeric-content',\n this.size ? 'fd-numeric-content--' + this.size : '',\n this.class,\n this._isSmallTile() ? 'fd-numeric-content--small-tile' : ''\n ];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n\n /** @hidden */\n private _isSmallTile(): boolean {\n let retVal = false;\n if (\n this._elementRef.nativeElement.parentElement &&\n this._elementRef.nativeElement.parentElement.parentElement &&\n this._elementRef.nativeElement.parentElement.parentElement.classList.contains('fd-tile--s')\n ) {\n retVal = true;\n }\n return retVal;\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-launch-icon-container]'\n})\nexport class NumericContentLaunchIconContainerDirective {\n /** @hidden */\n @HostBinding('class.fd-numeric-content__launch-icon-container')\n baseClass = true;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-launch-icon]'\n})\nexport class NumericContentLaunchIconDirective implements OnInit, OnChanges, CssClassBuilder {\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /** Glyph */\n @Input()\n glyph: string;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return ['fd-numeric-content__launch-icon', this.glyph ? 'sap-icon--' + this.glyph : '', this.class];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-kpi-container]'\n})\nexport class NumericContentKpiContainerDirective {\n /** @hidden */\n @HostBinding('class.fd-numeric-content__kpi-container')\n baseClass = true;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-kpi]'\n})\nexport class NumericContentKpiDirective implements OnInit, OnChanges, CssClassBuilder {\n /** State of the KPI. Options are neutral (default), 'positive', 'negative', 'critical', and 'informative'. */\n @Input()\n state?: NumericContentState | null;\n\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /** Glyph */\n @Input()\n glyph: string;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return ['fd-numeric-content__kpi', this.state ? 'fd-numeric-content__kpi--' + this.state : '', this.class];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-scale-container]'\n})\nexport class NumericContentScaleContainerDirective {\n /** @hidden */\n @HostBinding('class.fd-numeric-content__scale-container')\n baseClass = true;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-scale-arrow]'\n})\nexport class NumericContentScaleArrowDirective implements OnInit, OnChanges, CssClassBuilder {\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /** Glyph */\n @Input()\n glyph: string;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return ['fd-numeric-content__scale-arrow', this.glyph ? 'sap-icon--' + this.glyph : '', this.class];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-scale]'\n})\nexport class NumericContentScaleDirective implements OnInit, OnChanges, CssClassBuilder {\n /** State of the SCALE. Options are neutral (default), 'positive', 'negative', 'critical', and 'informative'. */\n @Input()\n state?: NumericContentState | null;\n\n /** Apply user custom styles */\n @Input()\n class: string;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return ['fd-numeric-content__scale', this.state ? 'fd-numeric-content__scale--' + this.state : '', this.class];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-scale-text]'\n})\nexport class NumericContentScaleTextDirective {\n /** @hidden */\n @HostBinding('class.fd-numeric-content__scale-text')\n baseClass = true;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TileComponent } from './tile.component';\nimport {\n TileContentDirective,\n TileHeaderDirective,\n TileFooterDirective,\n TileSectionDirective,\n TileSubtitleDirective,\n TileTitleDirective,\n TileRefreshDirective,\n TileFooterTextDirective,\n TileHeaderContentDirective,\n TileProfileImgDirective,\n TileLogoDirective,\n TileContentBylineDirective,\n TileContentTextDirective,\n TileBackgroundImgDirective,\n TileToggleDirective,\n TileContainerDirective,\n TilePageIndicatorDirective,\n TileDotDirective,\n TileActionCloseDirective,\n TileActionIndicatorDirective,\n TileTitleContainerDirective,\n TileActionContainerDirective,\n TileSlideContainerDirective\n} from './directives/tile.directives';\nimport {\n NumericContentDirective,\n NumericContentKpiContainerDirective,\n NumericContentKpiDirective,\n NumericContentLaunchIconContainerDirective,\n NumericContentLaunchIconDirective,\n NumericContentScaleArrowDirective,\n NumericContentScaleContainerDirective,\n NumericContentScaleDirective,\n NumericContentScaleTextDirective\n} from './directives/numeric-content.directives';\n\n@NgModule({\n imports: [CommonModule],\n exports: [\n TileComponent,\n TileHeaderDirective,\n TileContentDirective,\n TileFooterDirective,\n TileTitleDirective,\n TileSubtitleDirective,\n TileSectionDirective,\n TileRefreshDirective,\n TileFooterTextDirective,\n TileHeaderContentDirective,\n TileProfileImgDirective,\n TileLogoDirective,\n TileContentBylineDirective,\n TileContentTextDirective,\n TileBackgroundImgDirective,\n TileToggleDirective,\n TileContainerDirective,\n TilePageIndicatorDirective,\n TileDotDirective,\n TileActionCloseDirective,\n TileActionIndicatorDirective,\n TileTitleContainerDirective,\n TileActionContainerDirective,\n TileSlideContainerDirective,\n NumericContentDirective,\n NumericContentKpiContainerDirective,\n NumericContentKpiDirective,\n NumericContentLaunchIconContainerDirective,\n NumericContentLaunchIconDirective,\n NumericContentScaleArrowDirective,\n NumericContentScaleContainerDirective,\n NumericContentScaleDirective,\n NumericContentScaleTextDirective\n ],\n declarations: [\n TileComponent,\n TileHeaderDirective,\n TileContentDirective,\n TileFooterDirective,\n TileTitleDirective,\n TileSubtitleDirective,\n TileSectionDirective,\n TileRefreshDirective,\n TileFooterTextDirective,\n TileHeaderContentDirective,\n TileProfileImgDirective,\n TileLogoDirective,\n TileContentBylineDirective,\n TileContentTextDirective,\n TileBackgroundImgDirective,\n TileToggleDirective,\n TileContainerDirective,\n TilePageIndicatorDirective,\n TileDotDirective,\n TileActionCloseDirective,\n TileActionIndicatorDirective,\n TileTitleContainerDirective,\n TileActionContainerDirective,\n TileSlideContainerDirective,\n NumericContentDirective,\n NumericContentScaleArrowDirective,\n NumericContentKpiContainerDirective,\n NumericContentKpiDirective,\n NumericContentLaunchIconContainerDirective,\n NumericContentLaunchIconDirective,\n NumericContentScaleContainerDirective,\n NumericContentScaleDirective,\n NumericContentScaleTextDirective\n ]\n})\nexport class TileModule {}\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-tile.mjs","sources":["../../../../libs/core/src/lib/tile/tile.component.ts","../../../../libs/core/src/lib/tile/tile.component.html","../../../../libs/core/src/lib/tile/directives/tile.directives.ts","../../../../libs/core/src/lib/tile/directives/numeric-content.directives.ts","../../../../libs/core/src/lib/tile/tile.module.ts","../../../../libs/core/src/lib/tile/fundamental-ngx-core-tile.ts"],"sourcesContent":["import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { applyCssClass } from '@fundamental-ngx/core/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/core/utils';\n\ntype TileType = null | 'kpi' | 'launch' | 'feed' | 'slide' | 'line';\ntype TileSize = null | 's';\n\n@Component({\n selector: 'fd-tile',\n templateUrl: './tile.component.html',\n styleUrls: ['./tile.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TileComponent implements CssClassBuilder, AfterViewInit, OnChanges {\n /** user's custom classes */\n @Input()\n class: string;\n\n /** Size modifier. Options are null (default) and 's'. */\n @Input()\n size: TileSize;\n\n /** Optional 'double' modifier to double the tile width. */\n @Input()\n double = false;\n\n /** Type of tile. Options are 'kpi', 'launch', 'feed', 'slide', 'line', or leave null for default. */\n @Input()\n type: TileType;\n\n /** Whether or not the tile is in 'action' mode. */\n @Input()\n action = false;\n\n /** Whether tile is focusable & clickable, (tileClick) event will be emitted on click. */\n @Input()\n set clickable(value: BooleanInput) {\n this._clickable = coerceBooleanProperty(value);\n }\n\n get clickable(): boolean {\n return this._clickable;\n }\n\n /** Whether tile gets clicked or space/enter pressed. */\n @Output()\n readonly tileClick = new EventEmitter<void>();\n\n /** @hidden */\n @ViewChild('container')\n ref: ElementRef;\n\n /** @hidden */\n private _clickable = false;\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return [\n 'fd-tile',\n this.size ? 'fd-tile--' + this.size : '',\n this.double ? 'fd-tile--double' : '',\n this.type ? 'fd-tile--' + this.type : '',\n this.action ? 'fd-tile--action' : '',\n this.class\n ];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this.ref;\n }\n}\n","<div\n class=\"fd-tile\"\n #container\n [attr.tabindex]=\"clickable ? 0 : -1\"\n (click)=\"clickable && tileClick.emit()\"\n (keyup.enter)=\"clickable && tileClick.emit()\"\n (keydown.space)=\"clickable && $event.preventDefault()\"\n (keyup.space)=\"clickable && tileClick.emit()\"\n>\n <div *ngIf=\"action && type !== 'line'\" class=\"fd-tile__overlay\"></div>\n\n <ng-content select=\"[fd-tile-action-close]\"></ng-content>\n\n <ng-content select=\"[fd-tile-action-indicator]\"></ng-content>\n\n <ng-content select=\"[fd-badge]\"></ng-content>\n\n <ng-content select=\"[fd-tile-header]\"></ng-content>\n\n <ng-content select=\"[fd-tile-header-content]\"></ng-content>\n\n <ng-content select=\"[fd-tile-content]\"></ng-content>\n\n <ng-content select=\"[fd-tile-footer]\"></ng-content>\n\n <ng-content select=\"[fd-tile-action-container]\"></ng-content>\n\n <ng-content></ng-content>\n</div>\n","import { Directive, ElementRef, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\nimport { applyCssClass, CssClassBuilder } from '@fundamental-ngx/core/utils';\nimport { Nullable } from '@fundamental-ngx/core/shared';\n\n@Directive({\n selector: '[fdTileContent], [fd-tile-content]'\n})\nexport class TileContentDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__content')\n baseClass = true;\n\n /** Divides the tile content in to two columns. */\n @HostBinding('class.fd-tile__content--2-col')\n @Input()\n twoColumn = false;\n}\n\n@Directive({\n selector: '[fdTileContentByline], [fd-tile-content-byline]'\n})\nexport class TileContentBylineDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__content-byline')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileContentText], [fd-tile-content-text]'\n})\nexport class TileContentTextDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__content-text')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileFooter], [fd-tile-footer]'\n})\nexport class TileFooterDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__footer')\n baseClass = true;\n\n /** Divides the tile footer in to two columns. */\n @HostBinding('class.fd-tile__footer--2-col')\n @Input()\n twoColumn = false;\n}\n\n@Directive({\n selector: '[fdTileFooterText], [fd-tile-footer-text]'\n})\nexport class TileFooterTextDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__footer-text')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileHeader], [fd-tile-header]'\n})\nexport class TileHeaderDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__header')\n baseClass = true;\n\n /** Divides the tile header in to two columns. */\n @HostBinding('class.fd-tile__header--2-col')\n @Input()\n twoColumn = false;\n}\n\n@Directive({\n selector: '[fdTileHeaderContent], [fd-tile-header-content]'\n})\nexport class TileHeaderContentDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__header-content')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileSection], [fd-tile-section]'\n})\nexport class TileSectionDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__section')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileTitle], [fd-tile-subtitle]'\n})\nexport class TileSubtitleDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__subtitle')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileTitle], [fd-tile-title]'\n})\nexport class TileTitleDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__title')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileTitleContainer], [fd-tile-title-container]'\n})\nexport class TileTitleContainerDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__title-container')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileRefresh], [fd-tile-refresh]'\n})\nexport class TileRefreshDirective implements OnInit, OnChanges, CssClassBuilder {\n /** Glyph */\n @Input()\n glyph: string;\n\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /** Apply user custom styles */\n @Input()\n @HostBinding('attr.aria-label')\n ariaLabel = 'Refresh';\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return ['fd-tile__refresh', this.glyph ? 'sap-icon--' + this.glyph : '', this.class];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n\nlet profileTileUniqueId = 0;\n\n@Directive({\n selector: '[fdTileProfileImg], [fd-tile-profile-img]',\n host: {\n 'attr.role': 'img'\n }\n})\nexport class TileProfileImgDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__profile-img')\n baseClass = true;\n\n /** Id of the tile. */\n @Input()\n @HostBinding('attr.id')\n id = `fd-profileTile-${profileTileUniqueId++}`;\n\n /** Aria-label for tile. */\n @Input()\n @HostBinding('attr.aria-label')\n ariaLabel: Nullable<string>;\n\n /** Aria-Labelledby for element describing tile. */\n @Input()\n @HostBinding('attr.aria-labelledby')\n ariaLabelledby: Nullable<string>;\n\n /** Background image url. */\n @Input()\n backgroundImage: Nullable<string>;\n\n /** @hidden */\n @HostBinding('style.background-image')\n get image(): string {\n return 'url(' + this.backgroundImage + ')';\n }\n}\n\n@Directive({\n selector: '[fdTileLogo], [fd-tile-logo]'\n})\nexport class TileLogoDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__logo')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileToggle], [fd-tile-toggle]'\n})\nexport class TileToggleDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__toggle')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileContainer], [fd-tile-container]'\n})\nexport class TileContainerDirective {\n /** @hidden */\n @HostBinding('class.fd-tile-container')\n baseClass = true;\n\n /** Whether or not the container is a 'list' type (used on screens smaller than 450px). */\n @HostBinding('class.fd-tile-container--list')\n @Input()\n list = false;\n}\n\n@Directive({\n selector: '[fdTileSlideContainer], [fd-tile-slide-container]'\n})\nexport class TileSlideContainerDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__container')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileBackgroundImg], [fd-tile-background-img]'\n})\nexport class TileBackgroundImgDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__background-img')\n baseClass = true;\n\n /** Background image url. */\n @Input()\n backgroundImage: Nullable<string>;\n\n /** @hidden */\n @HostBinding('style.background-image')\n get image(): string {\n return 'url(' + this.backgroundImage + ')';\n }\n}\n\n@Directive({\n selector: '[fdTilePageIndicator], [fd-tile-page-indicator]'\n})\nexport class TilePageIndicatorDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__page-indicator')\n baseClass = true;\n}\n\n@Directive({\n selector: '[fdTileDot], [fd-tile-dot]'\n})\nexport class TileDotDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__dot')\n baseClass = true;\n\n /** Whether or not this dot is active. */\n @HostBinding('class.fd-tile__dot--active')\n @Input()\n active = false;\n}\n\n@Directive({\n selector: '[fdTileActionClose], [fd-tile-action-close]'\n})\nexport class TileActionCloseDirective implements OnInit, OnChanges, CssClassBuilder {\n /** Apply user custom styles */\n @Input()\n class: string;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n this._addCloseIcon();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return ['fd-tile__action-close', this.class];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n\n /** @hidden */\n private _addCloseIcon(): void {\n const element = generateIcon('decline');\n this._elementRef.nativeElement.appendChild(element);\n }\n}\n\n@Directive({\n selector: '[fdTileActionIndicator], [fd-tile-action-indicator]'\n})\nexport class TileActionIndicatorDirective implements OnInit, OnChanges, CssClassBuilder {\n /** Apply user custom styles */\n @Input()\n class: string;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n this._addIndicatorIcon();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return ['fd-tile__action-indicator', this.class];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n\n /** @hidden */\n private _addIndicatorIcon(): void {\n const element = generateIcon('overflow');\n this._elementRef.nativeElement.appendChild(element);\n }\n}\n\n@Directive({\n selector: '[fdTileActionContainer], [fd-tile-action-container]'\n})\nexport class TileActionContainerDirective {\n /** @hidden */\n @HostBinding('class.fd-tile__action-container')\n baseClass = true;\n}\n\nfunction generateIcon(iconName: string): HTMLElement {\n const element = document.createElement('i');\n element.setAttribute('role', 'presentation');\n element.classList.add(`sap-icon--${iconName}`);\n return element;\n}\n","import { Directive, ElementRef, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\nimport { applyCssClass } from '@fundamental-ngx/core/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/core/utils';\n\nexport type NumericContentState = 'negative' | 'critical' | 'positive' | 'informative' | 'neutral';\nexport type NumericContentSize = 's' | 'm' | 'l';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content]'\n})\nexport class NumericContentDirective implements OnInit, OnChanges, CssClassBuilder {\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /** Size of the numeric content */\n @Input()\n size: NumericContentSize | null;\n\n /** @hidden */\n @HostBinding('class.fd-numeric-content')\n baseClass = true;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return [\n 'fd-numeric-content',\n this.size ? 'fd-numeric-content--' + this.size : '',\n this.class,\n this._isSmallTile() ? 'fd-numeric-content--small-tile' : ''\n ];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n\n /** @hidden */\n private _isSmallTile(): boolean {\n let retVal = false;\n if (\n this._elementRef.nativeElement.parentElement &&\n this._elementRef.nativeElement.parentElement.parentElement &&\n this._elementRef.nativeElement.parentElement.parentElement.classList.contains('fd-tile--s')\n ) {\n retVal = true;\n }\n return retVal;\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-launch-icon-container]'\n})\nexport class NumericContentLaunchIconContainerDirective {\n /** @hidden */\n @HostBinding('class.fd-numeric-content__launch-icon-container')\n baseClass = true;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-launch-icon]'\n})\nexport class NumericContentLaunchIconDirective implements OnInit, OnChanges, CssClassBuilder {\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /** Glyph */\n @Input()\n glyph: string;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return ['fd-numeric-content__launch-icon', this.glyph ? 'sap-icon--' + this.glyph : '', this.class];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-kpi-container]'\n})\nexport class NumericContentKpiContainerDirective {\n /** @hidden */\n @HostBinding('class.fd-numeric-content__kpi-container')\n baseClass = true;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-kpi]'\n})\nexport class NumericContentKpiDirective implements OnInit, OnChanges, CssClassBuilder {\n /** State of the KPI. Options are neutral (default), 'positive', 'negative', 'critical', and 'informative'. */\n @Input()\n state?: NumericContentState | null;\n\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /** Glyph */\n @Input()\n glyph: string;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return ['fd-numeric-content__kpi', this.state ? 'fd-numeric-content__kpi--' + this.state : '', this.class];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-scale-container]'\n})\nexport class NumericContentScaleContainerDirective {\n /** @hidden */\n @HostBinding('class.fd-numeric-content__scale-container')\n baseClass = true;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-scale-arrow]'\n})\nexport class NumericContentScaleArrowDirective implements OnInit, OnChanges, CssClassBuilder {\n /** Apply user custom styles */\n @Input()\n class: string;\n\n /** Glyph */\n @Input()\n glyph: string;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return ['fd-numeric-content__scale-arrow', this.glyph ? 'sap-icon--' + this.glyph : '', this.class];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-scale]'\n})\nexport class NumericContentScaleDirective implements OnInit, OnChanges, CssClassBuilder {\n /** State of the SCALE. Options are neutral (default), 'positive', 'negative', 'critical', and 'informative'. */\n @Input()\n state?: NumericContentState | null;\n\n /** Apply user custom styles */\n @Input()\n class: string;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return ['fd-numeric-content__scale', this.state ? 'fd-numeric-content__scale--' + this.state : '', this.class];\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-numeric-content-scale-text]'\n})\nexport class NumericContentScaleTextDirective {\n /** @hidden */\n @HostBinding('class.fd-numeric-content__scale-text')\n baseClass = true;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TileComponent } from './tile.component';\nimport {\n TileContentDirective,\n TileHeaderDirective,\n TileFooterDirective,\n TileSectionDirective,\n TileSubtitleDirective,\n TileTitleDirective,\n TileRefreshDirective,\n TileFooterTextDirective,\n TileHeaderContentDirective,\n TileProfileImgDirective,\n TileLogoDirective,\n TileContentBylineDirective,\n TileContentTextDirective,\n TileBackgroundImgDirective,\n TileToggleDirective,\n TileContainerDirective,\n TilePageIndicatorDirective,\n TileDotDirective,\n TileActionCloseDirective,\n TileActionIndicatorDirective,\n TileTitleContainerDirective,\n TileActionContainerDirective,\n TileSlideContainerDirective\n} from './directives/tile.directives';\nimport {\n NumericContentDirective,\n NumericContentKpiContainerDirective,\n NumericContentKpiDirective,\n NumericContentLaunchIconContainerDirective,\n NumericContentLaunchIconDirective,\n NumericContentScaleArrowDirective,\n NumericContentScaleContainerDirective,\n NumericContentScaleDirective,\n NumericContentScaleTextDirective\n} from './directives/numeric-content.directives';\n\n@NgModule({\n imports: [CommonModule],\n exports: [\n TileComponent,\n TileHeaderDirective,\n TileContentDirective,\n TileFooterDirective,\n TileTitleDirective,\n TileSubtitleDirective,\n TileSectionDirective,\n TileRefreshDirective,\n TileFooterTextDirective,\n TileHeaderContentDirective,\n TileProfileImgDirective,\n TileLogoDirective,\n TileContentBylineDirective,\n TileContentTextDirective,\n TileBackgroundImgDirective,\n TileToggleDirective,\n TileContainerDirective,\n TilePageIndicatorDirective,\n TileDotDirective,\n TileActionCloseDirective,\n TileActionIndicatorDirective,\n TileTitleContainerDirective,\n TileActionContainerDirective,\n TileSlideContainerDirective,\n NumericContentDirective,\n NumericContentKpiContainerDirective,\n NumericContentKpiDirective,\n NumericContentLaunchIconContainerDirective,\n NumericContentLaunchIconDirective,\n NumericContentScaleArrowDirective,\n NumericContentScaleContainerDirective,\n NumericContentScaleDirective,\n NumericContentScaleTextDirective\n ],\n declarations: [\n TileComponent,\n TileHeaderDirective,\n TileContentDirective,\n TileFooterDirective,\n TileTitleDirective,\n TileSubtitleDirective,\n TileSectionDirective,\n TileRefreshDirective,\n TileFooterTextDirective,\n TileHeaderContentDirective,\n TileProfileImgDirective,\n TileLogoDirective,\n TileContentBylineDirective,\n TileContentTextDirective,\n TileBackgroundImgDirective,\n TileToggleDirective,\n TileContainerDirective,\n TilePageIndicatorDirective,\n TileDotDirective,\n TileActionCloseDirective,\n TileActionIndicatorDirective,\n TileTitleContainerDirective,\n TileActionContainerDirective,\n TileSlideContainerDirective,\n NumericContentDirective,\n NumericContentScaleArrowDirective,\n NumericContentKpiContainerDirective,\n NumericContentKpiDirective,\n NumericContentLaunchIconContainerDirective,\n NumericContentLaunchIconDirective,\n NumericContentScaleContainerDirective,\n NumericContentScaleDirective,\n NumericContentScaleTextDirective\n ]\n})\nexport class TileModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -62,15 +62,11 @@ class TimeColumnComponent {
|
|
|
62
62
|
this._isDragging = false;
|
|
63
63
|
/** @hidden */
|
|
64
64
|
this._viewInit$ = new BehaviorSubject(false);
|
|
65
|
+
this._resize$ = new BehaviorSubject(false);
|
|
65
66
|
/** @hidden */
|
|
66
67
|
this._subscriptions = new Subscription();
|
|
67
|
-
this._subscriptions.add(combineLatest([
|
|
68
|
-
|
|
69
|
-
this._elementsAtOnce$,
|
|
70
|
-
this._offset$,
|
|
71
|
-
resizeObservable(this._elmRef.nativeElement)
|
|
72
|
-
])
|
|
73
|
-
.pipe(filter(([viewInit]) => viewInit), tap(([, elementsAtOnce, offset, size]) => {
|
|
68
|
+
this._subscriptions.add(combineLatest([this._viewInit$, this._elementsAtOnce$, this._offset$, this._resize$])
|
|
69
|
+
.pipe(filter(([viewInit]) => viewInit), tap(([, elementsAtOnce, offset]) => {
|
|
74
70
|
const averageHeight = this.items.toArray().reduce((acc, next) => acc + next.getHeight(), 0) / this.items.length;
|
|
75
71
|
this.wrapperHeight = averageHeight * elementsAtOnce;
|
|
76
72
|
const visibleButNotSelectedElements = Math.floor(elementsAtOnce / 2);
|
|
@@ -142,6 +138,9 @@ class TimeColumnComponent {
|
|
|
142
138
|
}
|
|
143
139
|
/** @hidden */
|
|
144
140
|
ngAfterViewInit() {
|
|
141
|
+
this._subscriptions.add(resizeObservable(this._elmRef.nativeElement).subscribe(() => {
|
|
142
|
+
this._resize$.next(true);
|
|
143
|
+
}));
|
|
145
144
|
this._viewInit$.next(true);
|
|
146
145
|
}
|
|
147
146
|
/** @hidden */
|