@fundamental-ngx/core 0.35.0-rc.10 → 0.35.0-rc.13
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-hidden-item/breadcrumb-hidden-item.component.d.ts +23 -0
- package/breadcrumb/breadcrumb-item.component.d.ts +29 -0
- package/breadcrumb/breadcrumb.component.d.ts +16 -39
- package/breadcrumb/breadcrumb.module.d.ts +6 -4
- package/breadcrumb/esm2020/breadcrumb-hidden-item/breadcrumb-hidden-item.component.mjs +39 -0
- package/breadcrumb/esm2020/breadcrumb-item.component.mjs +48 -0
- package/breadcrumb/esm2020/breadcrumb.component.mjs +50 -137
- package/breadcrumb/esm2020/breadcrumb.module.mjs +11 -9
- package/breadcrumb/esm2020/public_api.mjs +2 -3
- package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs +112 -197
- package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs +111 -197
- package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/breadcrumb/package.json +1 -1
- package/breadcrumb/public_api.d.ts +1 -2
- 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/package.json +1 -1
- 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-hidden-item/breadcrumb-hidden-item.component.mjs +39 -0
- package/esm2020/breadcrumb/breadcrumb-item.component.mjs +48 -0
- package/esm2020/breadcrumb/breadcrumb.component.mjs +50 -137
- package/esm2020/breadcrumb/breadcrumb.module.mjs +11 -9
- package/esm2020/breadcrumb/public_api.mjs +2 -3
- package/esm2020/feed-list-item/components/item/feed-list-item.component.mjs +1 -1
- package/esm2020/form/form-label/form-label.component.mjs +1 -1
- package/esm2020/link/link.component.mjs +45 -7
- package/esm2020/multi-input/multi-input.component.mjs +1 -1
- package/esm2020/popover/popover-service/popover.service.mjs +2 -1
- package/esm2020/table/directives/table-text.directive.mjs +7 -5
- package/esm2020/text/text.component.mjs +1 -1
- package/esm2020/utils/public_api.mjs +2 -1
- package/esm2020/utils/services/resize-observer.service.mjs +83 -0
- package/facets/package.json +1 -1
- package/feed-input/package.json +1 -1
- package/feed-list-item/esm2020/components/item/feed-list-item.component.mjs +1 -1
- package/feed-list-item/fesm2015/fundamental-ngx-core-feed-list-item.mjs +1 -1
- package/feed-list-item/fesm2020/fundamental-ngx-core-feed-list-item.mjs +1 -1
- package/feed-list-item/package.json +1 -1
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +112 -197
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-feed-list-item.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-form.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-link.mjs +46 -6
- package/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-multi-input.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-popover.mjs +1 -0
- package/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-table.mjs +6 -4
- package/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-text.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-utils.mjs +81 -2
- package/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +111 -197
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-feed-list-item.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-form.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-link.mjs +44 -6
- package/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-multi-input.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-popover.mjs +1 -0
- package/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-table.mjs +6 -4
- package/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-text.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-utils.mjs +81 -2
- 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/esm2020/form-label/form-label.component.mjs +1 -1
- package/form/fesm2015/fundamental-ngx-core-form.mjs +1 -1
- package/form/fesm2020/fundamental-ngx-core-form.mjs +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/esm2020/link.component.mjs +45 -7
- package/link/fesm2015/fundamental-ngx-core-link.mjs +46 -6
- package/link/fesm2015/fundamental-ngx-core-link.mjs.map +1 -1
- package/link/fesm2020/fundamental-ngx-core-link.mjs +44 -6
- package/link/fesm2020/fundamental-ngx-core-link.mjs.map +1 -1
- package/link/link.component.d.ts +8 -2
- 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/esm2020/multi-input.component.mjs +1 -1
- package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs +1 -1
- package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs +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/package.json +1 -1
- package/pagination/package.json +1 -1
- package/panel/package.json +1 -1
- package/popover/esm2020/popover-service/popover.service.mjs +2 -1
- package/popover/fesm2015/fundamental-ngx-core-popover.mjs +1 -0
- package/popover/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
- package/popover/fesm2020/fundamental-ngx-core-popover.mjs +1 -0
- package/popover/fesm2020/fundamental-ngx-core-popover.mjs.map +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/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/directives/table-text.directive.d.ts +5 -5
- package/table/esm2020/directives/table-text.directive.mjs +7 -5
- package/table/fesm2015/fundamental-ngx-core-table.mjs +6 -4
- package/table/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
- package/table/fesm2020/fundamental-ngx-core-table.mjs +6 -4
- package/table/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
- package/table/package.json +1 -1
- package/tabs/package.json +1 -1
- package/text/esm2020/text.component.mjs +1 -1
- package/text/fesm2015/fundamental-ngx-core-text.mjs +1 -1
- package/text/fesm2020/fundamental-ngx-core-text.mjs +1 -1
- package/text/package.json +1 -1
- package/theming/package.json +1 -1
- package/tile/package.json +1 -1
- package/time/package.json +1 -1
- 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/public_api.mjs +2 -1
- package/utils/esm2020/services/resize-observer.service.mjs +83 -0
- package/utils/fesm2015/fundamental-ngx-core-utils.mjs +81 -2
- package/utils/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
- package/utils/fesm2020/fundamental-ngx-core-utils.mjs +81 -2
- package/utils/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
- package/utils/package.json +1 -1
- package/utils/public_api.d.ts +1 -0
- package/utils/services/resize-observer.service.d.ts +29 -0
- package/vertical-navigation/package.json +1 -1
- package/wizard/package.json +1 -1
- package/breadcrumb/breadcrumb-item.directive.d.ts +0 -28
- package/breadcrumb/breadcrumb-link.directive.d.ts +0 -18
- package/breadcrumb/esm2020/breadcrumb-item.directive.mjs +0 -51
- package/breadcrumb/esm2020/breadcrumb-link.directive.mjs +0 -35
- package/esm2020/breadcrumb/breadcrumb-item.directive.mjs +0 -51
- package/esm2020/breadcrumb/breadcrumb-link.directive.mjs +0 -35
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-popover.mjs","sources":["../../../../libs/core/src/lib/popover/popover-control/popover-control.component.ts","../../../../libs/core/src/lib/popover/popover-control/popover-control.component.html","../../../../libs/core/src/lib/popover/popover-body/popover-body.component.ts","../../../../libs/core/src/lib/popover/popover-body/popover-body.component.html","../../../../libs/core/src/lib/popover/popover-body/popover-body-directives/popover-body-header.directive.ts","../../../../libs/core/src/lib/popover/popover-body/popover-body-directives/popover-body-footer.directive.ts","../../../../libs/core/src/lib/popover/base/base-popover.class.ts","../../../../libs/core/src/lib/popover/popover-container/popover-container.directive.ts","../../../../libs/core/src/lib/popover/popover-service/popover.service.ts","../../../../libs/core/src/lib/popover/popover.interface.ts","../../../../libs/core/src/lib/popover/popover-mobile/popover-mobile.component.ts","../../../../libs/core/src/lib/popover/popover-mobile/popover-mobile.component.html","../../../../libs/core/src/lib/popover/popover-mobile/popover-mobile.module.ts","../../../../libs/core/src/lib/popover/popover.component.ts","../../../../libs/core/src/lib/popover/popover.component.html","../../../../libs/core/src/lib/popover/popover-trigger.directive.ts","../../../../libs/core/src/lib/popover/popover.module.ts","../../../../libs/core/src/lib/popover/fundamental-ngx-core-popover.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component used to enforce a certain layout for the popover.\n * ```html\n * <fd-popover>\n * <fd-popover-control>Control Element</fd-popover-control>\n * <fd-popover-body>Popover Body</fd-popover-body>\n * </fd-popover>\n * ```\n */\n@Component({\n selector: 'fd-popover-control',\n templateUrl: './popover-control.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PopoverControlComponent {\n /** @hidden */\n constructor(public elRef: ElementRef) {}\n\n /** @hidden */\n makeTabbable(): void {\n const elemChild = this.elRef.nativeElement.children[0];\n if (elemChild && elemChild.getAttribute('tabindex') !== '-1') {\n elemChild.tabIndex = '0';\n }\n }\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostListener,\n Optional,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { CdkTrapFocus } from '@angular/cdk/a11y';\n\nimport { Subject } from 'rxjs';\n\nimport {\n ARROW_SIZE,\n ArrowPosition,\n Nullable,\n PopoverFlippedXDirection,\n PopoverPosition\n} from '@fundamental-ngx/core/shared';\nimport { ContentDensityService, KeyUtil } from '@fundamental-ngx/core/utils';\nimport { NotificationGroupComponent } from '@fundamental-ngx/core/notification';\n\n/**\n * A component used to enforce a certain layout for the popover.\n * ```html\n * <fd-popover>\n * <fd-popover-control>Control Element</fd-popover-control>\n * <fd-popover-body>Popover Body</fd-popover-body>\n * </fd-popover>\n * ```\n */\n@Component({\n selector: 'fd-popover-body',\n templateUrl: './popover-body.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./popover-body.component.scss']\n})\nexport class PopoverBodyComponent {\n /** @hidden */\n @ViewChild(CdkTrapFocus)\n _cdkTrapFocus: CdkTrapFocus;\n\n /** @hidden */\n @ContentChild(NotificationGroupComponent)\n notificationGroup: NotificationGroupComponent;\n\n /** Whether the popover should have an arrow. */\n _noArrow = true;\n\n /** Whether the popover container needs an extra class for styling. */\n _additionalBodyClass: Nullable<string>;\n\n /** Whether the popover should be focusTrapped. */\n _focusTrapped = false;\n\n /**\n * Whether the popover should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n _focusAutoCapture = false;\n\n /** @hidden Property bind to popover's body */\n _popoverBodyWidth: number;\n\n /** @hidden Property bind to popover's body */\n _popoverBodyMinWidth: number;\n\n /** @hidden Property bind to popover's body */\n _maxWidth: Nullable<number>;\n\n /** @hidden Property bind to popover's body */\n _closeOnEscapeKey = false;\n\n /** Classes added to arrow element */\n _arrowClasses: string[] = [];\n\n /** Additional style to put margin into body component, to give a place for arrow */\n _marginStyle: Nullable<string> = null;\n\n /** @hidden text rendered inside popover's body */\n text: Nullable<string> = null;\n\n /** @hidden template rendered inside popover's body */\n _templateToDisplay: TemplateRef<any>;\n\n /** Close event from popover body */\n onClose = new Subject<void>();\n\n /** @hidden */\n get _isCompact(): boolean {\n return this._contentDensityService?.contentDensity.value === 'compact';\n }\n\n /** Handler escape keydown */\n @HostListener('keyup', ['$event'])\n bodyKeyupHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, ESCAPE) && this._closeOnEscapeKey) {\n // In case if popover belongs to the element inside dialog\n event.stopPropagation();\n this.onClose.next();\n }\n }\n\n constructor(\n readonly _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef,\n private _renderer2: Renderer2,\n @Optional() private _contentDensityService: ContentDensityService\n ) {}\n\n /** @hidden */\n _setArrowStyles(position: ConnectionPositionPair, rtl: 'rtl' | 'ltr'): void {\n this._arrowClasses = [];\n\n const arrowDirection = PopoverPosition.getArrowPosition(position, rtl === 'rtl');\n this._arrowClasses.push(`fd-popover__arrow--${arrowDirection}`);\n\n if (arrowDirection === 'top' || arrowDirection === 'bottom') {\n let _position: string = position.overlayX;\n if (rtl === 'rtl') {\n _position = PopoverFlippedXDirection[_position];\n }\n this._arrowClasses.push(`fd-popover__arrow-x--${_position}`);\n } else if (arrowDirection === 'start' || arrowDirection === 'end') {\n this._arrowClasses.push(`fd-popover__arrow-y--${position.overlayY}`);\n }\n\n this._removeOldMarginsStyle();\n this._addMarginStyle(arrowDirection);\n\n this.detectChanges();\n }\n\n /** @hidden */\n detectChanges(): void {\n if (!this._changeDetectorRef['destroyed']) {\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** @hidden */\n _focusFirstTabbableElement(): void {\n if (this._focusAutoCapture) {\n this._cdkTrapFocus.focusTrap.focusFirstTabbableElement();\n }\n }\n\n /** @hidden */\n private _addMarginStyle(arrowDirection: ArrowPosition | null): void {\n if (arrowDirection) {\n this._renderer2.setStyle(\n this._elementRef.nativeElement,\n PopoverPosition.getMarginDirection(arrowDirection),\n ARROW_SIZE\n );\n }\n }\n\n /** @hidden */\n private _removeOldMarginsStyle(): void {\n const margins = ['margin-top', 'margin-right', 'margin-bottom', 'margin-left'];\n margins.forEach((margin) => this._renderer2.removeStyle(this._elementRef.nativeElement, margin));\n }\n}\n","<div\n class=\"fd-popover__popper\"\n [class.fd-popover__popper--no-arrow]=\"_noArrow\"\n [class.fd-popover__popper--compact]=\"_isCompact\"\n [class]=\"_additionalBodyClass\"\n [cdkTrapFocus]=\"_focusTrapped\"\n [style]=\"_marginStyle\"\n [style.max-width.px]=\"_maxWidth\"\n [style.min-width.px]=\"_popoverBodyMinWidth\"\n [style.width.px]=\"_popoverBodyWidth\"\n>\n <ng-content select=\"[fd-popover-body-header]\"></ng-content>\n\n <ng-content select=\"[fd-popover-body-subheader]\"></ng-content>\n\n <ng-content></ng-content>\n\n {{ text }}\n\n <ng-container *ngTemplateOutlet=\"_templateToDisplay\"></ng-container>\n\n <ng-content select=\"[fd-popover-body-footer]\"></ng-content>\n\n <span class=\"fd-popover__arrow\" [class]=\"_arrowClasses\" *ngIf=\"!_noArrow\"></span>\n</div>\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdPopoverBodyHeader], [fd-popover-body-header]'\n})\nexport class PopoverBodyHeaderDirective {\n /** @hidden */\n @HostBinding('class.fd-popover__body-header')\n fdPopoverBodyHeaderClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdPopoverBodyFooter], [fd-popover-body-footer]'\n})\nexport class PopoverBodyFooterDirective {\n /** @hidden */\n @HostBinding('class.fd-popover__body-footer')\n fdPopoverBodyFooterClass = true;\n}\n","import { Directive, ElementRef, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { ConnectedPosition, ScrollStrategy } from '@angular/cdk/overlay';\nimport { Placement, PopoverFillMode, Nullable } from '@fundamental-ngx/core/shared';\n\n@Directive()\nexport class BasePopoverClass {\n @Input()\n /** Whether to close the popover on router navigation start. */\n closeOnNavigation = true;\n\n /** Whether the popover is disabled. */\n @Input()\n @HostBinding('class.fd-popover-custom--disabled')\n disabled = false;\n\n /** Maximum width of popover body in px, prevents from overextending body by `fillControlMode` */\n @Input()\n maxWidth: Nullable<number> = null;\n\n /** Whether the popover should have an arrow. */\n @Input()\n noArrow = true;\n\n /** Whether the popover container needs an extra class for styling. */\n @Input()\n additionalBodyClass: string | null = null;\n\n /** Whether the popover container needs an extra class for styling. */\n @Input()\n additionalTriggerClass: string | null = null;\n\n /** Whether the popover should close when the escape key is pressed. */\n @Input()\n closeOnEscapeKey = true;\n\n /**\n * The placement of the popover.\n * It can be one of:\n * top, top-start, top-end, bottom, bottom-start, bottom-end,\n * right, right-start, right-end, left, left-start, left-end.\n */\n @Input()\n placement: Placement | null = null;\n\n /** The trigger events that will open/close the popover.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */\n @Input()\n triggers: string[] = ['click'];\n\n /** Whether the popover is open. Can be used through two-way binding. */\n @Input()\n isOpen = false;\n\n /** Whether the popover should close when a click is made outside its boundaries. */\n @Input()\n closeOnOutsideClick = true;\n\n /** Whether the popover should be focusTrapped. */\n @Input()\n focusTrapped = false;\n\n /**\n * Whether the popover should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n @Input()\n focusAutoCapture = false;\n\n /**\n * Scroll strategy, there are 4 accepted\n * - CloseScrollStrategy\n * - NoopScrollStrategy\n * - BlockScrollStrategy\n * - RepositionScrollStrategy ( default )\n */\n @Input()\n scrollStrategy: ScrollStrategy | null = null;\n\n /**\n * List of positions options for overlay defined by angular CDK.\n * Positions will be taken in order, same like on array. If first position provided doesn't fit to window,\n * another will be used\n * More information can be found in https://material.angular.io/cdk/overlay/api\n */\n @Input()\n cdkPositions: ConnectedPosition[] | null = null;\n\n /**\n * Preset options for the popover body width.\n * * `at-least` will apply a minimum width to the body equivalent to the width of the control.\n * * `equal` will apply a width to the body equivalent to the width of the control.\n * * Leave blank for no effect.\n */\n @Input()\n fillControlMode: Nullable<PopoverFillMode> = null;\n\n /** The element to which the overlay is attached. By default it is body */\n @Input()\n appendTo: Nullable<ElementRef | Element>;\n\n /** Whether position shouldn't change, when popover approach the corner of page */\n @Input()\n fixedPosition = false;\n\n /** @deprecated */\n @Input()\n options;\n\n /** @deprecated */\n @Input()\n addContainerClass;\n\n /** @deprecated */\n @Input()\n additionalClasses;\n\n /** Event emitted when the state of the isOpen property changes. */\n @Output()\n isOpenChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n}\n","import { Directive, ElementRef, OnInit, OnDestroy } from '@angular/core';\nimport { resizeObservable } from '@fundamental-ngx/core/utils';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Directive({\n selector: '[fdPopoverContainer]'\n})\nexport class PopoverContainerDirective implements OnInit, OnDestroy {\n /** Subject which emits when popover position refresh is required. */\n refreshPosition$ = new Subject<void>();\n\n /** @hidden */\n private _destroy$ = new Subject<void>();\n\n constructor(private _elmRef: ElementRef<HTMLElement>) {}\n\n /** @hidden */\n ngOnInit(): void {\n resizeObservable(this._elmRef.nativeElement)\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n this.refreshPosition$.next();\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","import { ElementRef, Injectable, Injector, Optional, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ViewportRuler,\n ConnectedOverlayPositionChange\n} from '@angular/cdk/overlay';\nimport { merge, Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged, filter, startWith, takeUntil } from 'rxjs/operators';\n\nimport { RtlService } from '@fundamental-ngx/core/utils';\nimport { GetDefaultPosition, PopoverPosition, Nullable } from '@fundamental-ngx/core/shared';\n\nimport { BasePopoverClass } from '../base/base-popover.class';\nimport { PopoverBodyComponent } from '../popover-body/popover-body.component';\nimport { PopoverContainerDirective } from '../popover-container/popover-container.directive';\n\nconst MAX_BODY_SIZE = 99999999;\n\nexport interface PopoverTemplate {\n container: ViewContainerRef;\n popoverBody: PopoverBodyComponent;\n template: TemplateRef<any>;\n}\n\n@Injectable()\nexport class PopoverService extends BasePopoverClass {\n /** String content displayed inside popover body */\n stringContent: Nullable<string>;\n\n /** Template content displayed inside popover body */\n templateContent: Nullable<TemplateRef<any>>;\n\n /** @hidden */\n _onLoad = new Subject<ElementRef>();\n\n /** @hidden */\n private _eventRef: (() => void)[] = [];\n\n /** @hidden */\n private _overlayRef: OverlayRef;\n\n /** @hidden */\n private _refresh$: Observable<boolean | void>;\n\n /** @hidden */\n private readonly _placementRefresh$ = new Subject<void>();\n\n /** @hidden */\n private _popoverBody: PopoverBodyComponent;\n\n /** @hidden */\n private _triggerElement: ElementRef;\n\n /** @hidden */\n private _lastActiveElement: HTMLElement;\n\n /** @hidden */\n private _templateData: Nullable<PopoverTemplate>;\n\n /** @hidden */\n private _prevTrigger: string;\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n constructor(\n private _overlay: Overlay,\n private _renderer: Renderer2,\n private _viewportRuler: ViewportRuler,\n private _injector: Injector,\n @Optional() private _rtlService: RtlService,\n @Optional() private readonly _popoverContainer: PopoverContainerDirective\n ) {\n super();\n\n /** Merge observables - close or destroy */\n this._refresh$ = merge(this.isOpenChange, this._onDestroy$);\n }\n\n /**\n * Method initialising the popover service - should be called, after view is initialised, params:\n * - triggerElement - element, which is equivalent for cdkOverlayOrigin, or fd-popover-control,\n * by default to this element the popover body will lbe appended and events on this element will trigger\n * popover's toggle\n * - config - configuration object - in this case the intention is to use inheritance of BasePopoverClass in component\n * - templateData - in case of having already PopoverBodyComponent, there is way to pass container, template containing\n * PopoverComponent and PopoverComponent instance\n */\n initialise(triggerElement: ElementRef, config?: BasePopoverClass, templateData?: PopoverTemplate | null): void {\n this._templateData = templateData;\n this._triggerElement = triggerElement;\n\n if (config) {\n this.refreshConfiguration(config);\n }\n\n this._refreshTriggerListeners();\n\n if (this.isOpen) {\n this.open();\n }\n\n // If wrapper container height changes outside, refresh popover position.\n this._popoverContainer?.refreshPosition$.pipe(takeUntil(this._refresh$)).subscribe(() => {\n this.refreshPosition();\n });\n }\n\n /** Closes the popover. */\n close(): void {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n\n const prevState = this.isOpen;\n this.isOpen = false;\n if (prevState !== this.isOpen) {\n this.isOpenChange.emit(this.isOpen);\n }\n\n this._focusLastActiveElementBeforeOpen();\n }\n }\n\n /** Opens the popover. */\n open(): void {\n if ((!this._overlayRef || !this._overlayRef.hasAttached()) && !this.disabled && this._triggerElement) {\n const position = this._getPositionStrategy();\n this._overlayRef = this._overlay.create(this._getOverlayConfig(position));\n\n if (this._templateData) {\n this._attachTemplate();\n } else {\n this._attachBodyComponent();\n }\n\n this._listenForPositionChange(position.positionChanges);\n\n if (this.fillControlMode) {\n this._listenOnResize();\n }\n\n const prevState = this.isOpen;\n this.isOpen = true;\n if (prevState !== this.isOpen) {\n this.isOpenChange.emit(this.isOpen);\n }\n\n this._detectChanges();\n\n this._listenOnClose();\n this._listenOnOutClicks();\n this._focusFirstTabbableElement();\n this._onLoad.next(this._getPopoverBody()._elementRef);\n }\n }\n\n /** method updating template or text inside rendered PopoverBody */\n updateContent(stringContent: string, templateContent: TemplateRef<any> | null): void {\n this.stringContent = stringContent;\n this.templateContent = templateContent;\n if (this._getPopoverBody()) {\n this._passVariablesToBody();\n }\n }\n\n /** Toggles the popover open state */\n toggle(): void {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /**\n * Method called to change position of popover,\n * recommended to be used only when popover is opened, otherwise change position or cdkPlacement\n */\n applyNewPosition(positions: ConnectedPosition[]): void {\n const refPosition = this._getPositionStrategy(positions);\n this._listenForPositionChange(refPosition.positionChanges);\n this._overlayRef.updatePositionStrategy(refPosition);\n }\n\n /** Method called to refresh position of opened popover */\n refreshPosition(): void {\n if (this._overlayRef) {\n this._overlayRef.updatePosition();\n }\n }\n\n /** Equivalent for ngOnDestroy method, whether component is destroyed, this method should be called */\n onDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._removeTriggerListeners();\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n }\n\n /**\n * Method that sets configuration/options, it detects if there is something changed and overwrites them\n */\n refreshConfiguration(config: BasePopoverClass): void {\n const onlyChanged = Object.keys(new BasePopoverClass()).filter((key) => this[key] !== config[key]);\n\n if (onlyChanged.includes('isOpen')) {\n if (config.isOpen) {\n this.open();\n } else {\n this.close();\n }\n }\n\n /** TODO\n * This overriding is dangerous thing and leads to unexpected behavior\n * We have to avoid this.\n */\n onlyChanged.forEach((key) => (this[key] = config[key]));\n\n if (onlyChanged.includes('triggers')) {\n this._refreshTriggerListeners();\n }\n }\n\n /**\n * This method is intended to be called in order\n * to postpone the main functionality but be able\n * to enable it back in the future by initialise()\n */\n deactivate(): void {\n this._removeTriggerListeners();\n }\n\n /** Refresh listeners on trigger element events */\n _refreshTriggerListeners(): void {\n if (!this._triggerElement) {\n return;\n }\n\n this._removeTriggerListeners();\n\n if (this.triggers?.length) {\n this.triggers.forEach((trigger) => {\n this._eventRef.push(\n this._renderer.listen(this._triggerElement.nativeElement, trigger, () => {\n this._isToggle(trigger);\n })\n );\n });\n }\n }\n\n /** @hidden */\n private _isToggle(trigger: string): void {\n // prevent unexpected toggling when it triggers the same event\n if (this._prevTrigger !== trigger || this.triggers?.length <= 1) {\n this.toggle();\n }\n\n this._prevTrigger = trigger;\n }\n\n /** @hidden */\n private _getOverlayConfig(position: FlexibleConnectedPositionStrategy): OverlayConfig {\n const direction = this._getDirection();\n\n return new OverlayConfig({\n direction,\n disposeOnNavigation: this.closeOnNavigation,\n positionStrategy: position,\n scrollStrategy: this.scrollStrategy || this._overlay.scrollStrategies.reposition()\n });\n }\n\n /** @hidden */\n private _listenOnResize(): void {\n this._viewportRuler\n .change(15)\n .pipe(takeUntil(this._refresh$), startWith(1))\n .subscribe(() => this._applyWidthOverlay());\n }\n\n /** @hidden */\n private _getDirection(): 'rtl' | 'ltr' {\n if (!this._rtlService) {\n return 'ltr';\n }\n\n return this._rtlService.rtl.getValue() ? 'rtl' : 'ltr';\n }\n\n /** @hidden */\n private _getPositionStrategy(forcedPositions?: ConnectedPosition[]): FlexibleConnectedPositionStrategy {\n let resultPosition = forcedPositions ? forcedPositions : this._getPositions();\n\n if (!this.fixedPosition) {\n resultPosition = resultPosition.concat(GetDefaultPosition(resultPosition));\n }\n\n return this._overlay\n .position()\n .flexibleConnectedTo(this.appendTo || this._triggerElement)\n .withPositions(resultPosition)\n .withPush(false);\n }\n\n /** remove listeners from trigger element events */\n private _removeTriggerListeners(): void {\n this._eventRef.forEach((event) => event());\n this._eventRef = [];\n }\n\n /** Attach template containing popover body to overlay */\n private _attachTemplate(): void {\n this._passVariablesToBody();\n if (this._templateData) {\n this._overlayRef.attach(new TemplatePortal(this._templateData.template, this._templateData.container));\n }\n }\n\n /** Create PopoverBodyComponent and attach it into overlay */\n private _attachBodyComponent(): void {\n const overlay = this._overlayRef.attach(new ComponentPortal(PopoverBodyComponent, null, this._injector));\n this._popoverBody = overlay.instance;\n this._passVariablesToBody();\n }\n\n /** @hidden */\n private _listenForPositionChange(positionChange: Observable<ConnectedOverlayPositionChange>): void {\n this._placementRefresh$.next();\n positionChange\n .pipe(\n takeUntil(this._placementRefresh$),\n takeUntil(this._onDestroy$),\n filter(() => !this.noArrow && !!this._getPopoverBody()),\n distinctUntilChanged((previous, current) => previous.connectionPair === current.connectionPair)\n )\n .subscribe((event) => this._getPopoverBody()._setArrowStyles(event.connectionPair, this._getDirection()));\n }\n\n /** Subscribe to close events from CDK Overlay, to throw proper events, change values */\n private _listenOnClose(): void {\n const closeEvents$ = merge(this._overlayRef.detachments(), this._getPopoverBody().onClose);\n\n closeEvents$.pipe(takeUntil(this._refresh$)).subscribe(() => this.close());\n }\n\n /** Listener for click events */\n private _listenOnOutClicks(): void {\n const closeEvents$ = merge(this._overlayRef.backdropClick(), this._overlayRef._outsidePointerEvents);\n\n closeEvents$\n .pipe(\n filter((event) => this._shouldClose(event)),\n takeUntil(this._refresh$)\n )\n .subscribe(() => this.close());\n }\n\n /** @hidden */\n private _shouldClose(event: MouseEvent): boolean {\n return this.isOpen && this.closeOnOutsideClick && !this._triggerContainsTarget(event);\n }\n\n /** @hidden */\n private _getEventTarget(event: Event): EventTarget | null {\n return event.composedPath ? event.composedPath()[0] : event.target;\n }\n\n /** @hidden */\n private _triggerContainsTarget(event: Event): boolean {\n const triggerElement = this._triggerElement.nativeElement;\n return triggerElement.contains(this._getEventTarget(event));\n }\n\n /** @hidden */\n private _getPositions(): ConnectedPosition[] {\n if (this.cdkPositions) {\n return this.cdkPositions;\n }\n\n if (this.placement) {\n return [PopoverPosition.getCdkPlacement(this.placement, this._getDirection())];\n }\n\n return [];\n }\n\n /** @hidden */\n private _applyWidthOverlay(): void {\n const maxWidthLimit = this.maxWidth ? this.maxWidth : MAX_BODY_SIZE;\n const width = Math.min(this._getTriggerWidth(), maxWidthLimit);\n if (this.fillControlMode === 'at-least') {\n this._getPopoverBody()._popoverBodyMinWidth = width;\n } else if (this.fillControlMode === 'equal') {\n this._getPopoverBody()._popoverBodyWidth = width;\n }\n this._detectChanges();\n }\n\n /** @hidden */\n private _passVariablesToBody(): void {\n const body = this._getPopoverBody();\n body.text = this.stringContent;\n body._additionalBodyClass = this.additionalBodyClass;\n body._focusTrapped = this.focusTrapped;\n body._maxWidth = this.maxWidth;\n body._noArrow = this.noArrow;\n body._focusAutoCapture = this.focusAutoCapture;\n body._templateToDisplay = this.templateContent!;\n body._closeOnEscapeKey = this.closeOnEscapeKey;\n this._detectChanges();\n }\n\n /** @hidden */\n private _getTriggerWidth(): number {\n return this._triggerElement.nativeElement.offsetWidth;\n }\n\n /** @hidden */\n private _getPopoverBody(): PopoverBodyComponent {\n return this._templateData?.popoverBody || this._popoverBody;\n }\n\n /** @hidden */\n private _detectChanges(): void {\n if (this._getPopoverBody()) {\n this._getPopoverBody().detectChanges();\n }\n }\n\n /** @hidden */\n private _focusFirstTabbableElement(): void {\n if (this.focusAutoCapture) {\n this._lastActiveElement = <HTMLElement>document.activeElement;\n this._getPopoverBody()?._focusFirstTabbableElement();\n }\n }\n\n /** @hidden */\n private _focusLastActiveElementBeforeOpen(): void {\n if (this.focusAutoCapture && this._lastActiveElement) {\n this._lastActiveElement.focus();\n }\n }\n}\n","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { DialogConfig } from '@fundamental-ngx/core/dialog';\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const POPOVER_COMPONENT = new InjectionToken<PopoverInterface>('PopoverInterface');\n\n/**\n * Popover Interface to have typing and avoid circular dependency between\n * PopoverComponent <==> PopoverMobileComponent\n */\nexport interface PopoverInterface extends MobileMode {\n dialogConfig: DialogConfig;\n isOpenChange: EventEmitter<boolean>;\n\n close(): void;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport {\n MobileModeBase,\n MOBILE_MODE_CONFIG,\n MobileModeControl,\n MobileModeConfigToken\n} from '@fundamental-ngx/core/mobile-mode';\nimport { DialogService } from '@fundamental-ngx/core/dialog';\nimport { PopoverInterface, POPOVER_COMPONENT } from '../popover.interface';\nimport { PopoverChildContent } from '../popover-child-content.interface';\n\nlet mobilePopoverUniqueId = 0;\n\n@Component({\n selector: 'fd-popover-mobile',\n templateUrl: './popover-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class PopoverMobileComponent extends MobileModeBase<PopoverInterface> implements OnInit, OnDestroy {\n /** @hidden\n * from mobile class can not prefix _,\n * to avoid build issues\n */\n childContent?: PopoverChildContent = undefined;\n\n /** Current popover title */\n title: string;\n\n /** Dialog body content */\n viewBody: TemplateRef<any> | null;\n /** Dialog footer content */\n viewFooter: TemplateRef<any> | null;\n\n /** @hidden */\n @ViewChild('dialogTemplate')\n _dialogTemplate: TemplateRef<any>;\n\n /** @hidden */\n readonly id = 'fd-popover-mobile-' + mobilePopoverUniqueId++;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n get titleId(): string {\n return this.id + '-title';\n }\n\n /** @hidden */\n constructor(\n elementRef: ElementRef,\n dialogService: DialogService,\n private _changeDetectorref: ChangeDetectorRef,\n @Inject(POPOVER_COMPONENT) _popoverComponent: PopoverInterface,\n @Optional() @Inject(MOBILE_MODE_CONFIG) mobileModes: MobileModeConfigToken[]\n ) {\n super(elementRef, dialogService, _popoverComponent, MobileModeControl.POPOVER, mobileModes);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenOnPopoverOpenChange();\n\n this.title = this.mobileConfig.title || '';\n this.viewBody = this.childContent?.popoverBodyContentTemplate ?? null;\n this.viewFooter = this.childContent?.popoverFooterContentTemplate ?? null;\n\n this._changeDetectorref.markForCheck();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.dialogRef?.close();\n super.onDestroy();\n this._subscriptions.unsubscribe();\n }\n\n /** Closes the Dialog and Popover component */\n close(): void {\n this.dialogRef.close();\n this._component.close();\n }\n\n /** @hidden Opens/closes the Dialog based on Popover isOpenChange events */\n private _listenOnPopoverOpenChange(): void {\n this._subscriptions.add(\n this._component.isOpenChange.pipe(takeUntil(this._onDestroy$)).subscribe((isOpen) => {\n if (isOpen) {\n this._openDialog();\n } else {\n this.dialogRef.hide(true);\n }\n })\n );\n }\n\n /** @hidden Opens the Dialog */\n private _openDialog(): void {\n this.dialogRef = this._dialogService.open(this._dialogTemplate, {\n ...this.dialogConfig,\n mobile: true,\n focusTrapped: true,\n verticalPadding: true,\n escKeyCloseable: false,\n backdropClickCloseable: false,\n container: this._elementRef.nativeElement,\n responsivePadding: true,\n ariaLabelledBy: this.titleId\n });\n }\n}\n","<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title [id]=\"titleId\">{{ title }}</h1>\n <button fd-dialog-close-button *ngIf=\"this.mobileConfig.hasCloseButton\" (click)=\"close()\"></button>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"viewBody\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <ng-container *ngTemplateOutlet=\"viewFooter\"></ng-container>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\nimport { PopoverMobileComponent } from './popover-mobile.component';\n\n@NgModule({\n declarations: [PopoverMobileComponent],\n imports: [CommonModule, DialogModule, ButtonModule],\n exports: [PopoverMobileComponent],\n providers: [DynamicComponentService],\n entryComponents: [PopoverMobileComponent]\n})\nexport class PopoverMobileModule {}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ContentChild,\n ElementRef,\n HostListener,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';\nimport { DOWN_ARROW, ENTER, SPACE } from '@angular/cdk/keycodes';\n\nimport { DynamicComponentService, KeyUtil } from '@fundamental-ngx/core/utils';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { BasePopoverClass } from './base/base-popover.class';\nimport { PopoverBodyComponent } from './popover-body/popover-body.component';\nimport { PopoverService } from './popover-service/popover.service';\nimport { PopoverControlComponent } from './popover-control/popover-control.component';\nimport { POPOVER_COMPONENT } from './popover.interface';\nimport { PopoverMobileComponent } from './popover-mobile/popover-mobile.component';\nimport { PopoverMobileModule } from './popover-mobile/popover-mobile.module';\nimport { PopoverChildContent } from './popover-child-content.interface';\n\nexport const SELECT_CLASS_NAMES = {\n selectControl: 'fd-select__control'\n};\n\nlet cdkPopoverUniqueId = 0;\n\n/**\n * The popover is a wrapping component that accepts a *control* as well as a *body*.\n * The control is what will trigger the opening of the actual popover, which is called the body.\n * By default, popovers are triggered by click. This can be customized through the *triggers* input.\n */\n@Component({\n selector: 'fd-popover',\n templateUrl: './popover.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [PopoverService],\n host: {\n class: 'fd-popover-custom',\n '[class.fd-popover-custom--mobile]': 'mobile',\n '[attr.id]': 'id'\n }\n})\nexport class PopoverComponent\n extends BasePopoverClass\n implements AfterViewInit, AfterContentInit, OnDestroy, OnChanges\n{\n /** Tooltip for popover */\n @Input()\n title: string;\n\n /** Reference to popover trigger element */\n @Input()\n trigger: ElementRef;\n\n /** Whether position shouldn't change, when popover approach the corner of page */\n @Input()\n fixedPosition = false;\n\n /** Id of the popover. If none is provided, one will be generated. */\n @Input()\n id: string = 'fd-popover-' + cdkPopoverUniqueId++;\n\n /** Whether the popover component should be displayed in mobile mode. */\n @Input()\n mobile = false;\n\n @Input()\n mobileConfig: MobileModeConfig = { hasCloseButton: true };\n\n /** @hidden */\n @ViewChild('templateRef', { read: TemplateRef })\n templateRef: TemplateRef<any>;\n\n /** @hidden */\n @ViewChild('container', { read: ViewContainerRef })\n container: ViewContainerRef;\n\n /** @hidden */\n @ViewChild(CdkOverlayOrigin)\n triggerOrigin: CdkOverlayOrigin;\n\n /** @hidden */\n @ContentChild(PopoverBodyComponent)\n popoverBody: PopoverBodyComponent;\n\n /** @hidden */\n @ContentChild(PopoverControlComponent)\n popoverControl: PopoverControlComponent;\n\n /** @hidden - template for Dialog body content */\n @ContentChild('popoverBodyContent')\n popoverBodyContentTemplate: TemplateRef<any>;\n\n /** @hidden - template for Dialog footer content */\n @ContentChild('popoverFooterContent')\n popoverFooterContentTemplate: TemplateRef<any>;\n\n /** @deprecated\n * Left for backward compatibility\n */\n directiveRef: any;\n\n /** @hidden */\n private _clickEventListener: null | (() => void);\n\n /** @hidden */\n private _mobileModeComponentRef: ComponentRef<PopoverMobileComponent>;\n\n /** @hidden */\n constructor(\n private readonly _popoverService: PopoverService,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _rendered: Renderer2,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _injector: Injector,\n @Optional() private readonly _dynamicComponentService: DynamicComponentService\n ) {\n super();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (!this.mobile) {\n if (!this.popoverBody) {\n this._popoverService.templateContent = this.templateRef;\n }\n this._popoverService.initialise(\n this.trigger || this.triggerOrigin.elementRef,\n this,\n this.popoverBody\n ? {\n template: this.templateRef,\n container: this.container,\n popoverBody: this.popoverBody\n }\n : null\n );\n }\n\n this._setupView();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this.popoverBody && this.popoverBody.notificationGroup) {\n super.focusTrapped = true;\n super.focusAutoCapture = true;\n }\n if (this.popoverControl && this.triggers.includes('click')) {\n this.popoverControl.makeTabbable();\n }\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this._popoverService.refreshConfiguration(this);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._destroyMobileComponent();\n this._destroyEventListeners();\n this._popoverService.onDestroy();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n const activeElement = document.activeElement;\n if (\n // popoverControl will be undefined when popover is used from \"fdPopoverTrigger\"\n this.popoverControl?.elRef.nativeElement.children[0] === activeElement &&\n activeElement?.tagName !== 'INPUT' &&\n activeElement?.tagName !== 'TEXTAREA' &&\n !activeElement?.classList.contains(SELECT_CLASS_NAMES.selectControl)\n ) {\n if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {\n // prevent page scrolling on Space keydown\n event.preventDefault();\n this._popoverService.toggle();\n }\n }\n }\n\n /** Toggles menu open/close state */\n toggle(): void {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /** Opens the popover. */\n open(): void {\n this.isOpen = true;\n this._popoverService.open();\n this.isOpenChange.emit(this.isOpen);\n this._cdr.markForCheck();\n }\n\n /** Closes the popover. */\n close(): void {\n this.isOpen = false;\n this._popoverService.close();\n this.isOpenChange.emit(this.isOpen);\n this._cdr.markForCheck();\n }\n\n /**\n * Method called to change position of popover,\n * recommended to be used only when popover is opened, otherwise change position or cdkPlacement\n */\n applyNewPosition(positions: ConnectedPosition[]): void {\n this._popoverService.applyNewPosition(positions);\n }\n\n /** @deprecated\n * Left for backward compatibility\n */\n updatePopover(): void {\n this.refreshPosition();\n }\n\n /** Method called to refresh position of opened popover */\n refreshPosition(): void {\n this._popoverService.refreshPosition();\n }\n\n /** Handler for alt + arrow down keydown */\n triggerKeyDownHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, DOWN_ARROW) && event.altKey && !this.disabled) {\n this.open();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /** @hidden Select and instantiate popover view mode */\n private _setupView(): void {\n if (this.mobile) {\n this._setupMobileMode();\n }\n\n this._cdr.detectChanges();\n }\n\n /** @hidden Open Popover in mobile mode */\n private async _setupMobileMode(): Promise<void> {\n const injector = Injector.create({\n providers: [{ provide: POPOVER_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._mobileModeComponentRef = await this._dynamicComponentService.createDynamicModule(\n {\n popoverBodyContentTemplate: this.popoverBodyContentTemplate,\n popoverFooterContentTemplate: this.popoverFooterContentTemplate\n } as PopoverChildContent,\n PopoverMobileModule,\n PopoverMobileComponent,\n this._viewContainerRef,\n injector\n );\n\n this._listenOnTriggerRefClicks();\n }\n\n /** @hidden - Listen on popover trigger ref clicks */\n private _listenOnTriggerRefClicks(): void {\n this._destroyEventListeners();\n\n if (this.trigger && this.mobile) {\n this._clickEventListener = this._rendered.listen(this.trigger.nativeElement, 'click', () => this.toggle());\n }\n }\n\n /**\n * @hidden\n * This is going to be removed in feature, on dialog and dynamic service component refactor\n */\n private _destroyEventListeners(): void {\n if (this._clickEventListener) {\n this._clickEventListener();\n this._clickEventListener = null;\n }\n }\n\n /** @hidden */\n private _destroyMobileComponent(): void {\n if (this._mobileModeComponentRef) {\n this._mobileModeComponentRef.destroy();\n }\n }\n}\n","<div\n *ngIf=\"!trigger\"\n cdkOverlayOrigin\n class=\"fd-popover__control\"\n [class]=\"additionalTriggerClass\"\n (keydown)=\"triggerKeyDownHandler($event)\"\n>\n <ng-content select=\"fd-popover-control\"></ng-content>\n</div>\n\n<ng-template #templateRef>\n <ng-content select=\"fd-popover-body\"></ng-content>\n\n <ng-content></ng-content>\n</ng-template>\n\n<ng-container #container></ng-container>\n","import { Directive, ElementRef, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { Nullable } from '@fundamental-ngx/core/shared';\nimport { PopoverComponent } from './popover.component';\n\n@Directive({\n selector: '[fdPopoverTrigger], [fd-popover-trigger]'\n})\nexport class PopoverTriggerDirective implements OnDestroy {\n /** Set reference to Popover Component */\n @Input('fdPopoverTrigger')\n set popover(popover: Nullable<PopoverComponent>) {\n if (popover) {\n popover.trigger = this._elementRef;\n this._listenOnExpanded(popover);\n }\n this._setAriaAttributes(popover);\n }\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n ariaHasPopup: Nullable<boolean>;\n\n /** @hidden */\n @HostBinding('attr.aria-controls')\n ariaControls: Nullable<string>;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n ariaExpanded: Nullable<boolean>;\n\n /** @hidden */\n private _isExpandedSubscription: Subscription;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribeExpandedListener();\n }\n\n /** @hidden */\n private _listenOnExpanded(popover: PopoverComponent): void {\n this._unsubscribeExpandedListener();\n if (popover) {\n this._isExpandedSubscription = popover.isOpenChange\n .pipe(startWith(popover.isOpen))\n .subscribe((isOpen) => (this.ariaExpanded = isOpen));\n }\n }\n\n /** @hidden */\n private _setAriaAttributes(popover: Nullable<PopoverComponent>): void {\n this.ariaHasPopup = !!popover;\n this.ariaControls = popover ? popover.id : null;\n }\n\n /** @hidden */\n private _unsubscribeExpandedListener(): void {\n if (this._isExpandedSubscription) {\n this._isExpandedSubscription.unsubscribe();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PopoverControlComponent } from './popover-control/popover-control.component';\nimport { PopoverBodyComponent } from './popover-body/popover-body.component';\nimport { PopoverBodyHeaderDirective } from './popover-body/popover-body-directives/popover-body-header.directive';\nimport { PopoverBodyFooterDirective } from './popover-body/popover-body-directives/popover-body-footer.directive';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PopoverComponent } from './popover.component';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { PopoverTriggerDirective } from './popover-trigger.directive';\nimport { PopoverContainerDirective } from './popover-container/popover-container.directive';\n\n@NgModule({\n declarations: [\n PopoverControlComponent,\n PopoverBodyComponent,\n PopoverBodyHeaderDirective,\n PopoverBodyFooterDirective,\n PopoverComponent,\n PopoverTriggerDirective,\n PopoverContainerDirective\n ],\n imports: [CommonModule, OverlayModule, A11yModule],\n exports: [\n PopoverControlComponent,\n PopoverBodyComponent,\n PopoverBodyHeaderDirective,\n PopoverBodyFooterDirective,\n PopoverComponent,\n PopoverTriggerDirective,\n PopoverContainerDirective\n ],\n entryComponents: [PopoverBodyComponent]\n})\nexport class PopoverModule {}\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-popover.mjs","sources":["../../../../libs/core/src/lib/popover/popover-control/popover-control.component.ts","../../../../libs/core/src/lib/popover/popover-control/popover-control.component.html","../../../../libs/core/src/lib/popover/popover-body/popover-body.component.ts","../../../../libs/core/src/lib/popover/popover-body/popover-body.component.html","../../../../libs/core/src/lib/popover/popover-body/popover-body-directives/popover-body-header.directive.ts","../../../../libs/core/src/lib/popover/popover-body/popover-body-directives/popover-body-footer.directive.ts","../../../../libs/core/src/lib/popover/base/base-popover.class.ts","../../../../libs/core/src/lib/popover/popover-container/popover-container.directive.ts","../../../../libs/core/src/lib/popover/popover-service/popover.service.ts","../../../../libs/core/src/lib/popover/popover.interface.ts","../../../../libs/core/src/lib/popover/popover-mobile/popover-mobile.component.ts","../../../../libs/core/src/lib/popover/popover-mobile/popover-mobile.component.html","../../../../libs/core/src/lib/popover/popover-mobile/popover-mobile.module.ts","../../../../libs/core/src/lib/popover/popover.component.ts","../../../../libs/core/src/lib/popover/popover.component.html","../../../../libs/core/src/lib/popover/popover-trigger.directive.ts","../../../../libs/core/src/lib/popover/popover.module.ts","../../../../libs/core/src/lib/popover/fundamental-ngx-core-popover.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component used to enforce a certain layout for the popover.\n * ```html\n * <fd-popover>\n * <fd-popover-control>Control Element</fd-popover-control>\n * <fd-popover-body>Popover Body</fd-popover-body>\n * </fd-popover>\n * ```\n */\n@Component({\n selector: 'fd-popover-control',\n templateUrl: './popover-control.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PopoverControlComponent {\n /** @hidden */\n constructor(public elRef: ElementRef) {}\n\n /** @hidden */\n makeTabbable(): void {\n const elemChild = this.elRef.nativeElement.children[0];\n if (elemChild && elemChild.getAttribute('tabindex') !== '-1') {\n elemChild.tabIndex = '0';\n }\n }\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostListener,\n Optional,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { CdkTrapFocus } from '@angular/cdk/a11y';\n\nimport { Subject } from 'rxjs';\n\nimport {\n ARROW_SIZE,\n ArrowPosition,\n Nullable,\n PopoverFlippedXDirection,\n PopoverPosition\n} from '@fundamental-ngx/core/shared';\nimport { ContentDensityService, KeyUtil } from '@fundamental-ngx/core/utils';\nimport { NotificationGroupComponent } from '@fundamental-ngx/core/notification';\n\n/**\n * A component used to enforce a certain layout for the popover.\n * ```html\n * <fd-popover>\n * <fd-popover-control>Control Element</fd-popover-control>\n * <fd-popover-body>Popover Body</fd-popover-body>\n * </fd-popover>\n * ```\n */\n@Component({\n selector: 'fd-popover-body',\n templateUrl: './popover-body.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./popover-body.component.scss']\n})\nexport class PopoverBodyComponent {\n /** @hidden */\n @ViewChild(CdkTrapFocus)\n _cdkTrapFocus: CdkTrapFocus;\n\n /** @hidden */\n @ContentChild(NotificationGroupComponent)\n notificationGroup: NotificationGroupComponent;\n\n /** Whether the popover should have an arrow. */\n _noArrow = true;\n\n /** Whether the popover container needs an extra class for styling. */\n _additionalBodyClass: Nullable<string>;\n\n /** Whether the popover should be focusTrapped. */\n _focusTrapped = false;\n\n /**\n * Whether the popover should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n _focusAutoCapture = false;\n\n /** @hidden Property bind to popover's body */\n _popoverBodyWidth: number;\n\n /** @hidden Property bind to popover's body */\n _popoverBodyMinWidth: number;\n\n /** @hidden Property bind to popover's body */\n _maxWidth: Nullable<number>;\n\n /** @hidden Property bind to popover's body */\n _closeOnEscapeKey = false;\n\n /** Classes added to arrow element */\n _arrowClasses: string[] = [];\n\n /** Additional style to put margin into body component, to give a place for arrow */\n _marginStyle: Nullable<string> = null;\n\n /** @hidden text rendered inside popover's body */\n text: Nullable<string> = null;\n\n /** @hidden template rendered inside popover's body */\n _templateToDisplay: TemplateRef<any>;\n\n /** Close event from popover body */\n onClose = new Subject<void>();\n\n /** @hidden */\n get _isCompact(): boolean {\n return this._contentDensityService?.contentDensity.value === 'compact';\n }\n\n /** Handler escape keydown */\n @HostListener('keyup', ['$event'])\n bodyKeyupHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, ESCAPE) && this._closeOnEscapeKey) {\n // In case if popover belongs to the element inside dialog\n event.stopPropagation();\n this.onClose.next();\n }\n }\n\n constructor(\n readonly _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef,\n private _renderer2: Renderer2,\n @Optional() private _contentDensityService: ContentDensityService\n ) {}\n\n /** @hidden */\n _setArrowStyles(position: ConnectionPositionPair, rtl: 'rtl' | 'ltr'): void {\n this._arrowClasses = [];\n\n const arrowDirection = PopoverPosition.getArrowPosition(position, rtl === 'rtl');\n this._arrowClasses.push(`fd-popover__arrow--${arrowDirection}`);\n\n if (arrowDirection === 'top' || arrowDirection === 'bottom') {\n let _position: string = position.overlayX;\n if (rtl === 'rtl') {\n _position = PopoverFlippedXDirection[_position];\n }\n this._arrowClasses.push(`fd-popover__arrow-x--${_position}`);\n } else if (arrowDirection === 'start' || arrowDirection === 'end') {\n this._arrowClasses.push(`fd-popover__arrow-y--${position.overlayY}`);\n }\n\n this._removeOldMarginsStyle();\n this._addMarginStyle(arrowDirection);\n\n this.detectChanges();\n }\n\n /** @hidden */\n detectChanges(): void {\n if (!this._changeDetectorRef['destroyed']) {\n this._changeDetectorRef.detectChanges();\n }\n }\n\n /** @hidden */\n _focusFirstTabbableElement(): void {\n if (this._focusAutoCapture) {\n this._cdkTrapFocus.focusTrap.focusFirstTabbableElement();\n }\n }\n\n /** @hidden */\n private _addMarginStyle(arrowDirection: ArrowPosition | null): void {\n if (arrowDirection) {\n this._renderer2.setStyle(\n this._elementRef.nativeElement,\n PopoverPosition.getMarginDirection(arrowDirection),\n ARROW_SIZE\n );\n }\n }\n\n /** @hidden */\n private _removeOldMarginsStyle(): void {\n const margins = ['margin-top', 'margin-right', 'margin-bottom', 'margin-left'];\n margins.forEach((margin) => this._renderer2.removeStyle(this._elementRef.nativeElement, margin));\n }\n}\n","<div\n class=\"fd-popover__popper\"\n [class.fd-popover__popper--no-arrow]=\"_noArrow\"\n [class.fd-popover__popper--compact]=\"_isCompact\"\n [class]=\"_additionalBodyClass\"\n [cdkTrapFocus]=\"_focusTrapped\"\n [style]=\"_marginStyle\"\n [style.max-width.px]=\"_maxWidth\"\n [style.min-width.px]=\"_popoverBodyMinWidth\"\n [style.width.px]=\"_popoverBodyWidth\"\n>\n <ng-content select=\"[fd-popover-body-header]\"></ng-content>\n\n <ng-content select=\"[fd-popover-body-subheader]\"></ng-content>\n\n <ng-content></ng-content>\n\n {{ text }}\n\n <ng-container *ngTemplateOutlet=\"_templateToDisplay\"></ng-container>\n\n <ng-content select=\"[fd-popover-body-footer]\"></ng-content>\n\n <span class=\"fd-popover__arrow\" [class]=\"_arrowClasses\" *ngIf=\"!_noArrow\"></span>\n</div>\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdPopoverBodyHeader], [fd-popover-body-header]'\n})\nexport class PopoverBodyHeaderDirective {\n /** @hidden */\n @HostBinding('class.fd-popover__body-header')\n fdPopoverBodyHeaderClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdPopoverBodyFooter], [fd-popover-body-footer]'\n})\nexport class PopoverBodyFooterDirective {\n /** @hidden */\n @HostBinding('class.fd-popover__body-footer')\n fdPopoverBodyFooterClass = true;\n}\n","import { Directive, ElementRef, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { ConnectedPosition, ScrollStrategy } from '@angular/cdk/overlay';\nimport { Placement, PopoverFillMode, Nullable } from '@fundamental-ngx/core/shared';\n\n@Directive()\nexport class BasePopoverClass {\n @Input()\n /** Whether to close the popover on router navigation start. */\n closeOnNavigation = true;\n\n /** Whether the popover is disabled. */\n @Input()\n @HostBinding('class.fd-popover-custom--disabled')\n disabled = false;\n\n /** Maximum width of popover body in px, prevents from overextending body by `fillControlMode` */\n @Input()\n maxWidth: Nullable<number> = null;\n\n /** Whether the popover should have an arrow. */\n @Input()\n noArrow = true;\n\n /** Whether the popover container needs an extra class for styling. */\n @Input()\n additionalBodyClass: string | null = null;\n\n /** Whether the popover container needs an extra class for styling. */\n @Input()\n additionalTriggerClass: string | null = null;\n\n /** Whether the popover should close when the escape key is pressed. */\n @Input()\n closeOnEscapeKey = true;\n\n /**\n * The placement of the popover.\n * It can be one of:\n * top, top-start, top-end, bottom, bottom-start, bottom-end,\n * right, right-start, right-end, left, left-start, left-end.\n */\n @Input()\n placement: Placement | null = null;\n\n /** The trigger events that will open/close the popover.\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */\n @Input()\n triggers: string[] = ['click'];\n\n /** Whether the popover is open. Can be used through two-way binding. */\n @Input()\n isOpen = false;\n\n /** Whether the popover should close when a click is made outside its boundaries. */\n @Input()\n closeOnOutsideClick = true;\n\n /** Whether the popover should be focusTrapped. */\n @Input()\n focusTrapped = false;\n\n /**\n * Whether the popover should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n @Input()\n focusAutoCapture = false;\n\n /**\n * Scroll strategy, there are 4 accepted\n * - CloseScrollStrategy\n * - NoopScrollStrategy\n * - BlockScrollStrategy\n * - RepositionScrollStrategy ( default )\n */\n @Input()\n scrollStrategy: ScrollStrategy | null = null;\n\n /**\n * List of positions options for overlay defined by angular CDK.\n * Positions will be taken in order, same like on array. If first position provided doesn't fit to window,\n * another will be used\n * More information can be found in https://material.angular.io/cdk/overlay/api\n */\n @Input()\n cdkPositions: ConnectedPosition[] | null = null;\n\n /**\n * Preset options for the popover body width.\n * * `at-least` will apply a minimum width to the body equivalent to the width of the control.\n * * `equal` will apply a width to the body equivalent to the width of the control.\n * * Leave blank for no effect.\n */\n @Input()\n fillControlMode: Nullable<PopoverFillMode> = null;\n\n /** The element to which the overlay is attached. By default it is body */\n @Input()\n appendTo: Nullable<ElementRef | Element>;\n\n /** Whether position shouldn't change, when popover approach the corner of page */\n @Input()\n fixedPosition = false;\n\n /** @deprecated */\n @Input()\n options;\n\n /** @deprecated */\n @Input()\n addContainerClass;\n\n /** @deprecated */\n @Input()\n additionalClasses;\n\n /** Event emitted when the state of the isOpen property changes. */\n @Output()\n isOpenChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n}\n","import { Directive, ElementRef, OnInit, OnDestroy } from '@angular/core';\nimport { resizeObservable } from '@fundamental-ngx/core/utils';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Directive({\n selector: '[fdPopoverContainer]'\n})\nexport class PopoverContainerDirective implements OnInit, OnDestroy {\n /** Subject which emits when popover position refresh is required. */\n refreshPosition$ = new Subject<void>();\n\n /** @hidden */\n private _destroy$ = new Subject<void>();\n\n constructor(private _elmRef: ElementRef<HTMLElement>) {}\n\n /** @hidden */\n ngOnInit(): void {\n resizeObservable(this._elmRef.nativeElement)\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => {\n this.refreshPosition$.next();\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","import { ElementRef, Injectable, Injector, Optional, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ViewportRuler,\n ConnectedOverlayPositionChange\n} from '@angular/cdk/overlay';\nimport { merge, Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged, filter, startWith, takeUntil } from 'rxjs/operators';\n\nimport { RtlService } from '@fundamental-ngx/core/utils';\nimport { GetDefaultPosition, PopoverPosition, Nullable } from '@fundamental-ngx/core/shared';\n\nimport { BasePopoverClass } from '../base/base-popover.class';\nimport { PopoverBodyComponent } from '../popover-body/popover-body.component';\nimport { PopoverContainerDirective } from '../popover-container/popover-container.directive';\n\nconst MAX_BODY_SIZE = 99999999;\n\nexport interface PopoverTemplate {\n container: ViewContainerRef;\n popoverBody: PopoverBodyComponent;\n template: TemplateRef<any>;\n}\n\n@Injectable()\nexport class PopoverService extends BasePopoverClass {\n /** String content displayed inside popover body */\n stringContent: Nullable<string>;\n\n /** Template content displayed inside popover body */\n templateContent: Nullable<TemplateRef<any>>;\n\n /** @hidden */\n _onLoad = new Subject<ElementRef>();\n\n /** @hidden */\n private _eventRef: (() => void)[] = [];\n\n /** @hidden */\n private _overlayRef: OverlayRef;\n\n /** @hidden */\n private _refresh$: Observable<boolean | void>;\n\n /** @hidden */\n private readonly _placementRefresh$ = new Subject<void>();\n\n /** @hidden */\n private _popoverBody: PopoverBodyComponent;\n\n /** @hidden */\n private _triggerElement: ElementRef;\n\n /** @hidden */\n private _lastActiveElement: HTMLElement;\n\n /** @hidden */\n private _templateData: Nullable<PopoverTemplate>;\n\n /** @hidden */\n private _prevTrigger: string;\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n constructor(\n private _overlay: Overlay,\n private _renderer: Renderer2,\n private _viewportRuler: ViewportRuler,\n private _injector: Injector,\n @Optional() private _rtlService: RtlService,\n @Optional() private readonly _popoverContainer: PopoverContainerDirective\n ) {\n super();\n\n /** Merge observables - close or destroy */\n this._refresh$ = merge(this.isOpenChange, this._onDestroy$);\n }\n\n /**\n * Method initialising the popover service - should be called, after view is initialised, params:\n * - triggerElement - element, which is equivalent for cdkOverlayOrigin, or fd-popover-control,\n * by default to this element the popover body will lbe appended and events on this element will trigger\n * popover's toggle\n * - config - configuration object - in this case the intention is to use inheritance of BasePopoverClass in component\n * - templateData - in case of having already PopoverBodyComponent, there is way to pass container, template containing\n * PopoverComponent and PopoverComponent instance\n */\n initialise(triggerElement: ElementRef, config?: BasePopoverClass, templateData?: PopoverTemplate | null): void {\n this._templateData = templateData;\n this._triggerElement = triggerElement;\n\n if (config) {\n this.refreshConfiguration(config);\n }\n\n this._refreshTriggerListeners();\n\n if (this.isOpen) {\n this.open();\n }\n\n // If wrapper container height changes outside, refresh popover position.\n this._popoverContainer?.refreshPosition$.pipe(takeUntil(this._refresh$)).subscribe(() => {\n this.refreshPosition();\n });\n }\n\n /** Closes the popover. */\n close(): void {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n\n const prevState = this.isOpen;\n this.isOpen = false;\n if (prevState !== this.isOpen) {\n this.isOpenChange.emit(this.isOpen);\n }\n\n this._focusLastActiveElementBeforeOpen();\n }\n }\n\n /** Opens the popover. */\n open(): void {\n if ((!this._overlayRef || !this._overlayRef.hasAttached()) && !this.disabled && this._triggerElement) {\n const position = this._getPositionStrategy();\n this._overlayRef = this._overlay.create(this._getOverlayConfig(position));\n\n if (this._templateData) {\n this._attachTemplate();\n } else {\n this._attachBodyComponent();\n }\n\n this._listenForPositionChange(position.positionChanges);\n\n if (this.fillControlMode) {\n this._listenOnResize();\n }\n\n const prevState = this.isOpen;\n this.isOpen = true;\n if (prevState !== this.isOpen) {\n this.isOpenChange.emit(this.isOpen);\n }\n\n this._detectChanges();\n\n this._listenOnClose();\n this._listenOnOutClicks();\n this._focusFirstTabbableElement();\n this._onLoad.next(this._getPopoverBody()._elementRef);\n this._overlayRef.updatePosition();\n }\n }\n\n /** method updating template or text inside rendered PopoverBody */\n updateContent(stringContent: string, templateContent: TemplateRef<any> | null): void {\n this.stringContent = stringContent;\n this.templateContent = templateContent;\n if (this._getPopoverBody()) {\n this._passVariablesToBody();\n }\n }\n\n /** Toggles the popover open state */\n toggle(): void {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /**\n * Method called to change position of popover,\n * recommended to be used only when popover is opened, otherwise change position or cdkPlacement\n */\n applyNewPosition(positions: ConnectedPosition[]): void {\n const refPosition = this._getPositionStrategy(positions);\n this._listenForPositionChange(refPosition.positionChanges);\n this._overlayRef.updatePositionStrategy(refPosition);\n }\n\n /** Method called to refresh position of opened popover */\n refreshPosition(): void {\n if (this._overlayRef) {\n this._overlayRef.updatePosition();\n }\n }\n\n /** Equivalent for ngOnDestroy method, whether component is destroyed, this method should be called */\n onDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._removeTriggerListeners();\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n }\n\n /**\n * Method that sets configuration/options, it detects if there is something changed and overwrites them\n */\n refreshConfiguration(config: BasePopoverClass): void {\n const onlyChanged = Object.keys(new BasePopoverClass()).filter((key) => this[key] !== config[key]);\n\n if (onlyChanged.includes('isOpen')) {\n if (config.isOpen) {\n this.open();\n } else {\n this.close();\n }\n }\n\n /** TODO\n * This overriding is dangerous thing and leads to unexpected behavior\n * We have to avoid this.\n */\n onlyChanged.forEach((key) => (this[key] = config[key]));\n\n if (onlyChanged.includes('triggers')) {\n this._refreshTriggerListeners();\n }\n }\n\n /**\n * This method is intended to be called in order\n * to postpone the main functionality but be able\n * to enable it back in the future by initialise()\n */\n deactivate(): void {\n this._removeTriggerListeners();\n }\n\n /** Refresh listeners on trigger element events */\n _refreshTriggerListeners(): void {\n if (!this._triggerElement) {\n return;\n }\n\n this._removeTriggerListeners();\n\n if (this.triggers?.length) {\n this.triggers.forEach((trigger) => {\n this._eventRef.push(\n this._renderer.listen(this._triggerElement.nativeElement, trigger, () => {\n this._isToggle(trigger);\n })\n );\n });\n }\n }\n\n /** @hidden */\n private _isToggle(trigger: string): void {\n // prevent unexpected toggling when it triggers the same event\n if (this._prevTrigger !== trigger || this.triggers?.length <= 1) {\n this.toggle();\n }\n\n this._prevTrigger = trigger;\n }\n\n /** @hidden */\n private _getOverlayConfig(position: FlexibleConnectedPositionStrategy): OverlayConfig {\n const direction = this._getDirection();\n\n return new OverlayConfig({\n direction,\n disposeOnNavigation: this.closeOnNavigation,\n positionStrategy: position,\n scrollStrategy: this.scrollStrategy || this._overlay.scrollStrategies.reposition()\n });\n }\n\n /** @hidden */\n private _listenOnResize(): void {\n this._viewportRuler\n .change(15)\n .pipe(takeUntil(this._refresh$), startWith(1))\n .subscribe(() => this._applyWidthOverlay());\n }\n\n /** @hidden */\n private _getDirection(): 'rtl' | 'ltr' {\n if (!this._rtlService) {\n return 'ltr';\n }\n\n return this._rtlService.rtl.getValue() ? 'rtl' : 'ltr';\n }\n\n /** @hidden */\n private _getPositionStrategy(forcedPositions?: ConnectedPosition[]): FlexibleConnectedPositionStrategy {\n let resultPosition = forcedPositions ? forcedPositions : this._getPositions();\n\n if (!this.fixedPosition) {\n resultPosition = resultPosition.concat(GetDefaultPosition(resultPosition));\n }\n\n return this._overlay\n .position()\n .flexibleConnectedTo(this.appendTo || this._triggerElement)\n .withPositions(resultPosition)\n .withPush(false);\n }\n\n /** remove listeners from trigger element events */\n private _removeTriggerListeners(): void {\n this._eventRef.forEach((event) => event());\n this._eventRef = [];\n }\n\n /** Attach template containing popover body to overlay */\n private _attachTemplate(): void {\n this._passVariablesToBody();\n if (this._templateData) {\n this._overlayRef.attach(new TemplatePortal(this._templateData.template, this._templateData.container));\n }\n }\n\n /** Create PopoverBodyComponent and attach it into overlay */\n private _attachBodyComponent(): void {\n const overlay = this._overlayRef.attach(new ComponentPortal(PopoverBodyComponent, null, this._injector));\n this._popoverBody = overlay.instance;\n this._passVariablesToBody();\n }\n\n /** @hidden */\n private _listenForPositionChange(positionChange: Observable<ConnectedOverlayPositionChange>): void {\n this._placementRefresh$.next();\n positionChange\n .pipe(\n takeUntil(this._placementRefresh$),\n takeUntil(this._onDestroy$),\n filter(() => !this.noArrow && !!this._getPopoverBody()),\n distinctUntilChanged((previous, current) => previous.connectionPair === current.connectionPair)\n )\n .subscribe((event) => this._getPopoverBody()._setArrowStyles(event.connectionPair, this._getDirection()));\n }\n\n /** Subscribe to close events from CDK Overlay, to throw proper events, change values */\n private _listenOnClose(): void {\n const closeEvents$ = merge(this._overlayRef.detachments(), this._getPopoverBody().onClose);\n\n closeEvents$.pipe(takeUntil(this._refresh$)).subscribe(() => this.close());\n }\n\n /** Listener for click events */\n private _listenOnOutClicks(): void {\n const closeEvents$ = merge(this._overlayRef.backdropClick(), this._overlayRef._outsidePointerEvents);\n\n closeEvents$\n .pipe(\n filter((event) => this._shouldClose(event)),\n takeUntil(this._refresh$)\n )\n .subscribe(() => this.close());\n }\n\n /** @hidden */\n private _shouldClose(event: MouseEvent): boolean {\n return this.isOpen && this.closeOnOutsideClick && !this._triggerContainsTarget(event);\n }\n\n /** @hidden */\n private _getEventTarget(event: Event): EventTarget | null {\n return event.composedPath ? event.composedPath()[0] : event.target;\n }\n\n /** @hidden */\n private _triggerContainsTarget(event: Event): boolean {\n const triggerElement = this._triggerElement.nativeElement;\n return triggerElement.contains(this._getEventTarget(event));\n }\n\n /** @hidden */\n private _getPositions(): ConnectedPosition[] {\n if (this.cdkPositions) {\n return this.cdkPositions;\n }\n\n if (this.placement) {\n return [PopoverPosition.getCdkPlacement(this.placement, this._getDirection())];\n }\n\n return [];\n }\n\n /** @hidden */\n private _applyWidthOverlay(): void {\n const maxWidthLimit = this.maxWidth ? this.maxWidth : MAX_BODY_SIZE;\n const width = Math.min(this._getTriggerWidth(), maxWidthLimit);\n if (this.fillControlMode === 'at-least') {\n this._getPopoverBody()._popoverBodyMinWidth = width;\n } else if (this.fillControlMode === 'equal') {\n this._getPopoverBody()._popoverBodyWidth = width;\n }\n this._detectChanges();\n }\n\n /** @hidden */\n private _passVariablesToBody(): void {\n const body = this._getPopoverBody();\n body.text = this.stringContent;\n body._additionalBodyClass = this.additionalBodyClass;\n body._focusTrapped = this.focusTrapped;\n body._maxWidth = this.maxWidth;\n body._noArrow = this.noArrow;\n body._focusAutoCapture = this.focusAutoCapture;\n body._templateToDisplay = this.templateContent!;\n body._closeOnEscapeKey = this.closeOnEscapeKey;\n this._detectChanges();\n }\n\n /** @hidden */\n private _getTriggerWidth(): number {\n return this._triggerElement.nativeElement.offsetWidth;\n }\n\n /** @hidden */\n private _getPopoverBody(): PopoverBodyComponent {\n return this._templateData?.popoverBody || this._popoverBody;\n }\n\n /** @hidden */\n private _detectChanges(): void {\n if (this._getPopoverBody()) {\n this._getPopoverBody().detectChanges();\n }\n }\n\n /** @hidden */\n private _focusFirstTabbableElement(): void {\n if (this.focusAutoCapture) {\n this._lastActiveElement = <HTMLElement>document.activeElement;\n this._getPopoverBody()?._focusFirstTabbableElement();\n }\n }\n\n /** @hidden */\n private _focusLastActiveElementBeforeOpen(): void {\n if (this.focusAutoCapture && this._lastActiveElement) {\n this._lastActiveElement.focus();\n }\n }\n}\n","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { DialogConfig } from '@fundamental-ngx/core/dialog';\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const POPOVER_COMPONENT = new InjectionToken<PopoverInterface>('PopoverInterface');\n\n/**\n * Popover Interface to have typing and avoid circular dependency between\n * PopoverComponent <==> PopoverMobileComponent\n */\nexport interface PopoverInterface extends MobileMode {\n dialogConfig: DialogConfig;\n isOpenChange: EventEmitter<boolean>;\n\n close(): void;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport {\n MobileModeBase,\n MOBILE_MODE_CONFIG,\n MobileModeControl,\n MobileModeConfigToken\n} from '@fundamental-ngx/core/mobile-mode';\nimport { DialogService } from '@fundamental-ngx/core/dialog';\nimport { PopoverInterface, POPOVER_COMPONENT } from '../popover.interface';\nimport { PopoverChildContent } from '../popover-child-content.interface';\n\nlet mobilePopoverUniqueId = 0;\n\n@Component({\n selector: 'fd-popover-mobile',\n templateUrl: './popover-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class PopoverMobileComponent extends MobileModeBase<PopoverInterface> implements OnInit, OnDestroy {\n /** @hidden\n * from mobile class can not prefix _,\n * to avoid build issues\n */\n childContent?: PopoverChildContent = undefined;\n\n /** Current popover title */\n title: string;\n\n /** Dialog body content */\n viewBody: TemplateRef<any> | null;\n /** Dialog footer content */\n viewFooter: TemplateRef<any> | null;\n\n /** @hidden */\n @ViewChild('dialogTemplate')\n _dialogTemplate: TemplateRef<any>;\n\n /** @hidden */\n readonly id = 'fd-popover-mobile-' + mobilePopoverUniqueId++;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n get titleId(): string {\n return this.id + '-title';\n }\n\n /** @hidden */\n constructor(\n elementRef: ElementRef,\n dialogService: DialogService,\n private _changeDetectorref: ChangeDetectorRef,\n @Inject(POPOVER_COMPONENT) _popoverComponent: PopoverInterface,\n @Optional() @Inject(MOBILE_MODE_CONFIG) mobileModes: MobileModeConfigToken[]\n ) {\n super(elementRef, dialogService, _popoverComponent, MobileModeControl.POPOVER, mobileModes);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenOnPopoverOpenChange();\n\n this.title = this.mobileConfig.title || '';\n this.viewBody = this.childContent?.popoverBodyContentTemplate ?? null;\n this.viewFooter = this.childContent?.popoverFooterContentTemplate ?? null;\n\n this._changeDetectorref.markForCheck();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.dialogRef?.close();\n super.onDestroy();\n this._subscriptions.unsubscribe();\n }\n\n /** Closes the Dialog and Popover component */\n close(): void {\n this.dialogRef.close();\n this._component.close();\n }\n\n /** @hidden Opens/closes the Dialog based on Popover isOpenChange events */\n private _listenOnPopoverOpenChange(): void {\n this._subscriptions.add(\n this._component.isOpenChange.pipe(takeUntil(this._onDestroy$)).subscribe((isOpen) => {\n if (isOpen) {\n this._openDialog();\n } else {\n this.dialogRef.hide(true);\n }\n })\n );\n }\n\n /** @hidden Opens the Dialog */\n private _openDialog(): void {\n this.dialogRef = this._dialogService.open(this._dialogTemplate, {\n ...this.dialogConfig,\n mobile: true,\n focusTrapped: true,\n verticalPadding: true,\n escKeyCloseable: false,\n backdropClickCloseable: false,\n container: this._elementRef.nativeElement,\n responsivePadding: true,\n ariaLabelledBy: this.titleId\n });\n }\n}\n","<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <h1 fd-title [id]=\"titleId\">{{ title }}</h1>\n <button fd-dialog-close-button *ngIf=\"this.mobileConfig.hasCloseButton\" (click)=\"close()\"></button>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"viewBody\"></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <ng-container *ngTemplateOutlet=\"viewFooter\"></ng-container>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { DynamicComponentService } from '@fundamental-ngx/core/utils';\nimport { PopoverMobileComponent } from './popover-mobile.component';\n\n@NgModule({\n declarations: [PopoverMobileComponent],\n imports: [CommonModule, DialogModule, ButtonModule],\n exports: [PopoverMobileComponent],\n providers: [DynamicComponentService],\n entryComponents: [PopoverMobileComponent]\n})\nexport class PopoverMobileModule {}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ContentChild,\n ElementRef,\n HostListener,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';\nimport { DOWN_ARROW, ENTER, SPACE } from '@angular/cdk/keycodes';\n\nimport { DynamicComponentService, KeyUtil } from '@fundamental-ngx/core/utils';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { BasePopoverClass } from './base/base-popover.class';\nimport { PopoverBodyComponent } from './popover-body/popover-body.component';\nimport { PopoverService } from './popover-service/popover.service';\nimport { PopoverControlComponent } from './popover-control/popover-control.component';\nimport { POPOVER_COMPONENT } from './popover.interface';\nimport { PopoverMobileComponent } from './popover-mobile/popover-mobile.component';\nimport { PopoverMobileModule } from './popover-mobile/popover-mobile.module';\nimport { PopoverChildContent } from './popover-child-content.interface';\n\nexport const SELECT_CLASS_NAMES = {\n selectControl: 'fd-select__control'\n};\n\nlet cdkPopoverUniqueId = 0;\n\n/**\n * The popover is a wrapping component that accepts a *control* as well as a *body*.\n * The control is what will trigger the opening of the actual popover, which is called the body.\n * By default, popovers are triggered by click. This can be customized through the *triggers* input.\n */\n@Component({\n selector: 'fd-popover',\n templateUrl: './popover.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [PopoverService],\n host: {\n class: 'fd-popover-custom',\n '[class.fd-popover-custom--mobile]': 'mobile',\n '[attr.id]': 'id'\n }\n})\nexport class PopoverComponent\n extends BasePopoverClass\n implements AfterViewInit, AfterContentInit, OnDestroy, OnChanges\n{\n /** Tooltip for popover */\n @Input()\n title: string;\n\n /** Reference to popover trigger element */\n @Input()\n trigger: ElementRef;\n\n /** Whether position shouldn't change, when popover approach the corner of page */\n @Input()\n fixedPosition = false;\n\n /** Id of the popover. If none is provided, one will be generated. */\n @Input()\n id: string = 'fd-popover-' + cdkPopoverUniqueId++;\n\n /** Whether the popover component should be displayed in mobile mode. */\n @Input()\n mobile = false;\n\n @Input()\n mobileConfig: MobileModeConfig = { hasCloseButton: true };\n\n /** @hidden */\n @ViewChild('templateRef', { read: TemplateRef })\n templateRef: TemplateRef<any>;\n\n /** @hidden */\n @ViewChild('container', { read: ViewContainerRef })\n container: ViewContainerRef;\n\n /** @hidden */\n @ViewChild(CdkOverlayOrigin)\n triggerOrigin: CdkOverlayOrigin;\n\n /** @hidden */\n @ContentChild(PopoverBodyComponent)\n popoverBody: PopoverBodyComponent;\n\n /** @hidden */\n @ContentChild(PopoverControlComponent)\n popoverControl: PopoverControlComponent;\n\n /** @hidden - template for Dialog body content */\n @ContentChild('popoverBodyContent')\n popoverBodyContentTemplate: TemplateRef<any>;\n\n /** @hidden - template for Dialog footer content */\n @ContentChild('popoverFooterContent')\n popoverFooterContentTemplate: TemplateRef<any>;\n\n /** @deprecated\n * Left for backward compatibility\n */\n directiveRef: any;\n\n /** @hidden */\n private _clickEventListener: null | (() => void);\n\n /** @hidden */\n private _mobileModeComponentRef: ComponentRef<PopoverMobileComponent>;\n\n /** @hidden */\n constructor(\n private readonly _popoverService: PopoverService,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _rendered: Renderer2,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _injector: Injector,\n @Optional() private readonly _dynamicComponentService: DynamicComponentService\n ) {\n super();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (!this.mobile) {\n if (!this.popoverBody) {\n this._popoverService.templateContent = this.templateRef;\n }\n this._popoverService.initialise(\n this.trigger || this.triggerOrigin.elementRef,\n this,\n this.popoverBody\n ? {\n template: this.templateRef,\n container: this.container,\n popoverBody: this.popoverBody\n }\n : null\n );\n }\n\n this._setupView();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this.popoverBody && this.popoverBody.notificationGroup) {\n super.focusTrapped = true;\n super.focusAutoCapture = true;\n }\n if (this.popoverControl && this.triggers.includes('click')) {\n this.popoverControl.makeTabbable();\n }\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this._popoverService.refreshConfiguration(this);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._destroyMobileComponent();\n this._destroyEventListeners();\n this._popoverService.onDestroy();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n const activeElement = document.activeElement;\n if (\n // popoverControl will be undefined when popover is used from \"fdPopoverTrigger\"\n this.popoverControl?.elRef.nativeElement.children[0] === activeElement &&\n activeElement?.tagName !== 'INPUT' &&\n activeElement?.tagName !== 'TEXTAREA' &&\n !activeElement?.classList.contains(SELECT_CLASS_NAMES.selectControl)\n ) {\n if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {\n // prevent page scrolling on Space keydown\n event.preventDefault();\n this._popoverService.toggle();\n }\n }\n }\n\n /** Toggles menu open/close state */\n toggle(): void {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /** Opens the popover. */\n open(): void {\n this.isOpen = true;\n this._popoverService.open();\n this.isOpenChange.emit(this.isOpen);\n this._cdr.markForCheck();\n }\n\n /** Closes the popover. */\n close(): void {\n this.isOpen = false;\n this._popoverService.close();\n this.isOpenChange.emit(this.isOpen);\n this._cdr.markForCheck();\n }\n\n /**\n * Method called to change position of popover,\n * recommended to be used only when popover is opened, otherwise change position or cdkPlacement\n */\n applyNewPosition(positions: ConnectedPosition[]): void {\n this._popoverService.applyNewPosition(positions);\n }\n\n /** @deprecated\n * Left for backward compatibility\n */\n updatePopover(): void {\n this.refreshPosition();\n }\n\n /** Method called to refresh position of opened popover */\n refreshPosition(): void {\n this._popoverService.refreshPosition();\n }\n\n /** Handler for alt + arrow down keydown */\n triggerKeyDownHandler(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, DOWN_ARROW) && event.altKey && !this.disabled) {\n this.open();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /** @hidden Select and instantiate popover view mode */\n private _setupView(): void {\n if (this.mobile) {\n this._setupMobileMode();\n }\n\n this._cdr.detectChanges();\n }\n\n /** @hidden Open Popover in mobile mode */\n private async _setupMobileMode(): Promise<void> {\n const injector = Injector.create({\n providers: [{ provide: POPOVER_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._mobileModeComponentRef = await this._dynamicComponentService.createDynamicModule(\n {\n popoverBodyContentTemplate: this.popoverBodyContentTemplate,\n popoverFooterContentTemplate: this.popoverFooterContentTemplate\n } as PopoverChildContent,\n PopoverMobileModule,\n PopoverMobileComponent,\n this._viewContainerRef,\n injector\n );\n\n this._listenOnTriggerRefClicks();\n }\n\n /** @hidden - Listen on popover trigger ref clicks */\n private _listenOnTriggerRefClicks(): void {\n this._destroyEventListeners();\n\n if (this.trigger && this.mobile) {\n this._clickEventListener = this._rendered.listen(this.trigger.nativeElement, 'click', () => this.toggle());\n }\n }\n\n /**\n * @hidden\n * This is going to be removed in feature, on dialog and dynamic service component refactor\n */\n private _destroyEventListeners(): void {\n if (this._clickEventListener) {\n this._clickEventListener();\n this._clickEventListener = null;\n }\n }\n\n /** @hidden */\n private _destroyMobileComponent(): void {\n if (this._mobileModeComponentRef) {\n this._mobileModeComponentRef.destroy();\n }\n }\n}\n","<div\n *ngIf=\"!trigger\"\n cdkOverlayOrigin\n class=\"fd-popover__control\"\n [class]=\"additionalTriggerClass\"\n (keydown)=\"triggerKeyDownHandler($event)\"\n>\n <ng-content select=\"fd-popover-control\"></ng-content>\n</div>\n\n<ng-template #templateRef>\n <ng-content select=\"fd-popover-body\"></ng-content>\n\n <ng-content></ng-content>\n</ng-template>\n\n<ng-container #container></ng-container>\n","import { Directive, ElementRef, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { Nullable } from '@fundamental-ngx/core/shared';\nimport { PopoverComponent } from './popover.component';\n\n@Directive({\n selector: '[fdPopoverTrigger], [fd-popover-trigger]'\n})\nexport class PopoverTriggerDirective implements OnDestroy {\n /** Set reference to Popover Component */\n @Input('fdPopoverTrigger')\n set popover(popover: Nullable<PopoverComponent>) {\n if (popover) {\n popover.trigger = this._elementRef;\n this._listenOnExpanded(popover);\n }\n this._setAriaAttributes(popover);\n }\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n ariaHasPopup: Nullable<boolean>;\n\n /** @hidden */\n @HostBinding('attr.aria-controls')\n ariaControls: Nullable<string>;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n ariaExpanded: Nullable<boolean>;\n\n /** @hidden */\n private _isExpandedSubscription: Subscription;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribeExpandedListener();\n }\n\n /** @hidden */\n private _listenOnExpanded(popover: PopoverComponent): void {\n this._unsubscribeExpandedListener();\n if (popover) {\n this._isExpandedSubscription = popover.isOpenChange\n .pipe(startWith(popover.isOpen))\n .subscribe((isOpen) => (this.ariaExpanded = isOpen));\n }\n }\n\n /** @hidden */\n private _setAriaAttributes(popover: Nullable<PopoverComponent>): void {\n this.ariaHasPopup = !!popover;\n this.ariaControls = popover ? popover.id : null;\n }\n\n /** @hidden */\n private _unsubscribeExpandedListener(): void {\n if (this._isExpandedSubscription) {\n this._isExpandedSubscription.unsubscribe();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PopoverControlComponent } from './popover-control/popover-control.component';\nimport { PopoverBodyComponent } from './popover-body/popover-body.component';\nimport { PopoverBodyHeaderDirective } from './popover-body/popover-body-directives/popover-body-header.directive';\nimport { PopoverBodyFooterDirective } from './popover-body/popover-body-directives/popover-body-footer.directive';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PopoverComponent } from './popover.component';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { PopoverTriggerDirective } from './popover-trigger.directive';\nimport { PopoverContainerDirective } from './popover-container/popover-container.directive';\n\n@NgModule({\n declarations: [\n PopoverControlComponent,\n PopoverBodyComponent,\n PopoverBodyHeaderDirective,\n PopoverBodyFooterDirective,\n PopoverComponent,\n PopoverTriggerDirective,\n PopoverContainerDirective\n ],\n imports: [CommonModule, OverlayModule, A11yModule],\n exports: [\n PopoverControlComponent,\n PopoverBodyComponent,\n PopoverBodyHeaderDirective,\n PopoverBodyFooterDirective,\n PopoverComponent,\n PopoverTriggerDirective,\n PopoverContainerDirective\n ],\n entryComponents: [PopoverBodyComponent]\n})\nexport class PopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -515,16 +515,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
515
515
|
|
|
516
516
|
class TableTextDirective {
|
|
517
517
|
constructor() {
|
|
518
|
-
/**
|
|
518
|
+
/** Whether the text should have shadow (halo) & overflow should be hidden. */
|
|
519
519
|
this.fdTableTextClass = true;
|
|
520
|
-
/** Whether
|
|
520
|
+
/** Whether the text should wrap when the text is too long for 1 line */
|
|
521
521
|
this.noWrap = false;
|
|
522
|
-
/** Whether
|
|
522
|
+
/** Whether the text should be bolded and marked as a title */
|
|
523
523
|
this.title = false;
|
|
524
524
|
}
|
|
525
525
|
}
|
|
526
526
|
TableTextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: TableTextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
527
|
-
TableTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: { noWrap: "noWrap", title: "title", maxWidth: "maxWidth" }, host: { properties: { "class.fd-table__text": "this.fdTableTextClass", "class.fd-table__text--no-wrap": "this.noWrap", "class.fd-table__text--title": "this.title", "style.max-width": "this.maxWidth" } }, ngImport: i0 });
|
|
527
|
+
TableTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: { fdTableTextClass: "fdTableTextClass", noWrap: "noWrap", title: "title", maxWidth: "maxWidth" }, host: { properties: { "class.fd-table__text": "this.fdTableTextClass", "class.fd-table__text--no-wrap": "this.noWrap", "class.fd-table__text--title": "this.title", "style.max-width": "this.maxWidth" } }, ngImport: i0 });
|
|
528
528
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: TableTextDirective, decorators: [{
|
|
529
529
|
type: Directive,
|
|
530
530
|
args: [{
|
|
@@ -533,6 +533,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
|
|
|
533
533
|
}], propDecorators: { fdTableTextClass: [{
|
|
534
534
|
type: HostBinding,
|
|
535
535
|
args: ['class.fd-table__text']
|
|
536
|
+
}, {
|
|
537
|
+
type: Input
|
|
536
538
|
}], noWrap: [{
|
|
537
539
|
type: HostBinding,
|
|
538
540
|
args: ['class.fd-table__text--no-wrap']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-table.mjs","sources":["../../../../libs/core/src/lib/table/table.service.ts","../../../../libs/core/src/lib/table/table.component.ts","../../../../libs/core/src/lib/table/directives/table-responsive-wrapper.directive.ts","../../../../libs/core/src/lib/table/directives/table-header.directive.ts","../../../../libs/core/src/lib/table/directives/table-body.directive.ts","../../../../libs/core/src/lib/table/directives/table-cell.directive.ts","../../../../libs/core/src/lib/table/directives/table-row.directive.ts","../../../../libs/core/src/lib/table/table-wrapper.component.ts","../../../../libs/core/src/lib/table/directives/table-footer.directive.ts","../../../../libs/core/src/lib/table/directives/table-status-indicator.directive.ts","../../../../libs/core/src/lib/table/directives/table-popover.directive.ts","../../../../libs/core/src/lib/table/directives/table-inner.directive.ts","../../../../libs/core/src/lib/table/directives/table-text.directive.ts","../../../../libs/core/src/lib/table/directives/table-icon.directive.ts","../../../../libs/core/src/lib/table/table.module.ts","../../../../libs/core/src/lib/table/fundamental-ngx-core-table.ts"],"sourcesContent":["import { BehaviorSubject } from 'rxjs';\n\nexport class TableService {\n propagateKeys$: BehaviorSubject<string[]> = new BehaviorSubject<string[]>([]);\n\n changeKeys(keys: string[]): void {\n if (keys && keys.length > 0) {\n this.propagateKeys$.next([...keys]);\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport { ContentDensityService } from '@fundamental-ngx/core/utils';\nimport { Subscription } from 'rxjs';\n\nimport { TableService } from './table.service';\n\n/**\n * The component that represents a table.\n * A table is a set of tabular data. Line items can support data, images and actions.\n * ```html\n * <table fd-table></table>\n * ```\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'table[fd-table]',\n exportAs: 'fd-table',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./table.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TableService]\n})\nexport class TableComponent implements AfterViewInit, OnInit, OnDestroy {\n /** @hidden */\n @HostBinding('class.fd-table')\n fdTableClass = true;\n\n /** Whether or not to show the table's horizontal borders */\n @HostBinding('class.fd-table--no-horizontal-borders')\n @Input()\n noBorderX = false;\n\n /** Whether or not to show the table's vertical borders */\n @HostBinding('class.fd-table--no-vertical-borders')\n @Input()\n noBorderY = false;\n\n /** Whether or not to display the table in compact mode */\n @HostBinding('class.fd-table--compact')\n @Input()\n compact?: boolean;\n\n /** Whether or not to display the table in condensed mode */\n @HostBinding('class.fd-table--condensed')\n @Input()\n condensed?: boolean;\n\n /** Whether or not to display the table in pop in mode, it also require change of markup */\n @HostBinding('class.fd-table--pop-in')\n @Input()\n popIn = false;\n\n /** Whether or not to display the table in responsive mode. */\n @HostBinding('class.fd-table--responsive')\n @Input()\n responsive = false;\n\n /** List of keys that identifies single columns */\n @Input()\n keys: string[];\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n constructor(\n private _tableService: TableService,\n private _cdr: ChangeDetectorRef,\n @Optional() private _contentDensityService: ContentDensityService\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n if (this.compact === undefined && this.condensed === undefined && this._contentDensityService) {\n this._subscriptions.add(\n this._contentDensityService._contentDensityListener.subscribe((density) => {\n this.compact = density === 'compact';\n this.condensed = density === 'condensed';\n this._cdr.detectChanges();\n })\n );\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._propagateKeys(this.keys);\n }\n\n /** Method that sorts and changes visible state of particular cells */\n reset(keys: string[]): void {\n this._propagateKeys(keys);\n }\n\n /** @hidden */\n private _propagateKeys(keys: string[]): void {\n if (keys) {\n this._tableService.changeKeys([...keys]);\n }\n }\n}\n","import { Directive } from '@angular/core';\n/**\n * The directive that represents a table.\n * A table is a set of tabular data. Line items can support data, images and actions.\n * ```html\n * <div fd-table-responsive-wrapper>\n * <table fd-table>\n * </table>\n * </div>\n * ```\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-table-responsive-wrapper]',\n host: {\n style: 'overflow-x: auto'\n }\n})\nexport class TableResponsiveWrapperDirective {}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[fdTableHeader], [fd-table-header]'\n})\nexport class TableHeaderDirective {\n /** @hidden */\n @HostBinding('class.fd-table__header')\n fdTableHeaderClass = true;\n\n /** Whether or not to show the table header's horizontal borders */\n @HostBinding('class.fd-table__header--no-horizontal-borders')\n @Input()\n noBorderX = false;\n\n /** Whether or not to show the table header's vertical borders */\n @HostBinding('class.fd-table__header--no-vertical-borders')\n @Input()\n noBorderY = false;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[fdTableBody], [fd-table-body]'\n})\nexport class TableBodyDirective {\n /** @hidden */\n @HostBinding('class.fd-table__body')\n fdTableBodyClass = true;\n\n /** Whether or not to show the table body's horizontal borders */\n @HostBinding('class.fd-table__body--no-horizontal-borders')\n @Input()\n noBorderX = false;\n\n /** Whether or not to show the table body's vertical borders */\n @HostBinding('class.fd-table__body--no-vertical-borders')\n @Input()\n noBorderY = false;\n}\n","import {\n AfterContentInit,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n QueryList,\n ContentChildren,\n forwardRef\n} from '@angular/core';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\n\n@Directive({\n selector: '[fdTableCell], [fd-table-cell]'\n})\nexport class TableCellDirective implements AfterContentInit {\n /** Whether or not to show the table cell's horizontal borders */\n @HostBinding('class.fd-table__cell--no-horizontal-border')\n @Input()\n noBorderX = false;\n\n /** Whether or not to show the table cell's vertical borders */\n @HostBinding('class.fd-table__cell--no-vertical-border')\n @Input()\n noBorderY = false;\n\n /** Whether or not the table cell is activable */\n @HostBinding('class.fd-table__cell--activable')\n @Input()\n activable = false;\n\n /** Whether or not the table cell is focusable */\n @HostBinding('class.fd-table__cell--focusable')\n @Input()\n focusable = false;\n\n /** Whether or not the table cell is hoverable */\n @HostBinding('class.fd-table__cell--hoverable')\n @Input()\n hoverable = false;\n\n /** Whether or not the table cell's width should fit to content */\n @HostBinding('class.fd-table__cell--fit-content')\n @Input()\n fitContent = false;\n\n /** Whether or not the table cell shouldn't have padding on sides */\n @HostBinding('class.fd-table__cell--no-padding')\n @Input()\n noPadding = false;\n\n /** Whether or not the table cell indicates that there is no data */\n @HostBinding('class.fd-table__cell--no-data')\n @Input()\n noData = false;\n\n /** Key of cell element, it's used to identify this cell with certain column */\n @Input()\n key: string;\n\n /** @hidden */\n @ContentChildren(forwardRef(() => CheckboxComponent))\n _checkboxes: QueryList<CheckboxComponent>;\n\n /** @hidden */\n @HostBinding('class.fd-table__cell')\n _fdTableCellClass = true;\n\n constructor(public elementRef: ElementRef) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._checkboxes && this._checkboxes.length) {\n this.elementRef.nativeElement.classList.add('fd-table__cell--checkbox');\n }\n\n if (this.noData) {\n this.elementRef.nativeElement.setAttribute('colspan', '100%');\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n QueryList\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { TableService } from '../table.service';\nimport { TableCellDirective } from './table-cell.directive';\n\nexport const HIDDEN_CLASS_NAME = 'fd-table--hidden';\n\n@Directive({\n selector: '[fdTableRow], [fd-table-row]'\n})\nexport class TableRowDirective implements AfterViewInit, OnDestroy, OnInit {\n /** @hidden */\n @ContentChildren(TableCellDirective)\n cells: QueryList<TableCellDirective>;\n\n /** @hidden */\n @HostBinding('class.fd-table__row')\n fdTableRowClass = true;\n\n /** Whether or not the table row is activable */\n @HostBinding('class.fd-table__row--activable')\n @Input()\n activable = false;\n\n /** Whether or not the table row is hoverable */\n @HostBinding('class.fd-table__row--hoverable')\n @Input()\n hoverable = false;\n\n /** Whether or not the table row is focusable */\n @HostBinding('class.fd-table__row--focusable')\n @Input()\n focusable = false;\n\n /** Whether or not the table row is main row, it's concerned only on pop in mode */\n @HostBinding('class.fd-table__row--main')\n @Input()\n main = false;\n\n /** Whether or not the table row is secondary row, it's concerned only on pop in mode */\n @HostBinding('class.fd-table__row--secondary')\n @Input()\n secondary = false;\n\n /** @hidden */\n propagateKeysSubscription: Subscription;\n\n /** @hidden */\n constructor(private _changeDetRef: ChangeDetectorRef, private _tableService: TableService) {}\n\n /** @hidden */\n ngOnInit(): void {\n this.propagateKeysSubscription = this._tableService.propagateKeys$.subscribe((keys: string[]) =>\n this._resetCells(keys)\n );\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._resetCells(this._tableService.propagateKeys$.getValue());\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.propagateKeysSubscription.unsubscribe();\n }\n\n /** @hidden */\n private _resetCells(keys: string[]): void {\n if (this.cells && keys && keys.length > 0) {\n this._changeVisibility(keys);\n\n const sortedCells = this.cells.toArray().sort((a, b) => this._sortMethod(a, b, keys));\n\n this.cells.reset(sortedCells);\n\n this._sortNativeElements();\n\n this._changeDetRef.detectChanges();\n }\n }\n\n /** @hidden */\n private _sortMethod(a: TableCellDirective, b: TableCellDirective, keys: string[]): number {\n if (keys.findIndex((_key) => _key === a.key) < keys.findIndex((_key) => _key === b.key)) {\n return -1;\n } else {\n return 1;\n }\n }\n\n /** @hidden */\n private _sortNativeElements(): void {\n this.cells.forEach((cell) =>\n cell.elementRef.nativeElement.parentNode.appendChild(cell.elementRef.nativeElement)\n );\n }\n\n /** @hidden */\n private _changeVisibility(keys: string[]): void {\n this.cells.forEach((cell) => cell.elementRef.nativeElement.classList.remove(HIDDEN_CLASS_NAME));\n const notFoundElements: TableCellDirective[] = this.cells.filter(\n (cell) => !keys.find((key) => key === cell.key)\n );\n notFoundElements.forEach(this._hideElement);\n }\n\n /** @hidden */\n private _hideElement(element: TableCellDirective): void {\n element.elementRef.nativeElement.classList.add(HIDDEN_CLASS_NAME);\n }\n}\n","import { AfterContentInit, ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation } from '@angular/core';\n\n/**\n * The component that represents a table wrapper, it will add fd-table class to its first child.\n * A table is a set of tabular data. Line items can support data, images and actions.\n * ```html\n * <table-wrapper>\n * <table></table>\n * </table-wrapper>\n * ```\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'fd-table-wrapper',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./table.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableWrapperComponent implements AfterContentInit {\n constructor(private elementRef: ElementRef) {}\n\n public ngAfterContentInit(): void {\n if (this.elementRef.nativeElement && this.elementRef.nativeElement.firstChild) {\n const tableElement = this.elementRef.nativeElement.firstChild;\n tableElement.classList.add('fd-table');\n if (tableElement.children) {\n for (let i = 0; i < tableElement.children.length; i++) {\n if (tableElement.children[i].tagName === 'THEAD') {\n tableElement.children[i].classList.add('fd-table__header');\n } else if (tableElement.children[i].tagName === 'TBODY') {\n tableElement.children[i].classList.add('fd-table__body');\n } else if (tableElement.children[i].tagName === 'TFOOT') {\n tableElement.children[i].classList.add('fd-table__footer');\n }\n }\n }\n }\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTableFooter], [fd-table-footer]'\n})\nexport class TableFooterDirective {\n /** @hidden */\n @HostBinding('class.fd-table__footer')\n fdTableFooterClass = true;\n}\n","import { Directive, Input } from '@angular/core';\n\nexport type TableStatuses = 'valid' | 'warning' | 'information' | 'error';\n\n@Directive({\n selector: '[fdTableStatusIndicator], [fd-table-status-indicator]',\n host: {\n class: 'fd-table__cell--status-indicator',\n '[class.fd-table__cell--status-indicator--valid]': 'status === \"valid\"',\n '[class.fd-table__cell--status-indicator--warning]': 'status === \"warning\"',\n '[class.fd-table__cell--status-indicator--information]': 'status === \"information\"',\n '[class.fd-table__cell--status-indicator--error]': 'status === \"error\"'\n }\n})\nexport class TableStatusIndicatorDirective {\n /** The type of indicator. Options are 'valid', 'warning', 'information' and 'error'. */\n @Input()\n status: TableStatuses;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTablePopover], [fd-table-popover]'\n})\nexport class TablePopoverDirective {\n /** @hidden */\n @HostBinding('class')\n fdTablePopoverClass = 'fd-table__popover fd-table__popover--custom';\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTableInner], [fd-table-inner]'\n})\nexport class TableInnerDirective {\n /** @hidden */\n @HostBinding('class.fd-table__inner')\n fdTableInnerClass = true;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[fdTableText], [fd-table-text]'\n})\nexport class TableTextDirective {\n /** @hidden */\n @HostBinding('class.fd-table__text')\n fdTableTextClass = true;\n\n /** Whether or not the text should wrap, when text is too long for 1 line */\n @HostBinding('class.fd-table__text--no-wrap')\n @Input()\n noWrap = false;\n\n /** Whether or not the text should be bolded and marked as a title */\n @HostBinding('class.fd-table__text--title')\n @Input()\n title = false;\n\n /** Maximum width of text element */\n @HostBinding('style.max-width')\n @Input()\n maxWidth: string;\n}\n","import { Directive, ElementRef, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\nimport { applyCssClass, CssClassBuilder } from '@fundamental-ngx/core/utils';\n\n@Directive({\n selector: '[fdTableIcon], [fd-table-icon]'\n})\nexport class TableIconDirective implements OnChanges, CssClassBuilder, OnInit {\n /** @hidden */\n @HostBinding('class.fd-table__icon')\n fdTableIconClass = true;\n\n /** The property allows user to pass additional css classes\n */\n @Input()\n public class = '';\n\n /** The icon to include in the button. See the icon page for the list of icons.\n * Setter is used to control when css class have to be rebuilded.\n * Default value is set to ''.\n */\n @Input()\n public glyph = '';\n\n /** Whether or no icon is used as navigation */\n @Input()\n navigation = false;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** Function runs when component is initialized\n * function should build component css class\n * function should build css style\n */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\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-table__icon',\n this.glyph ? `sap-icon--${this.glyph}` : '',\n this.navigation ? 'fd-table__icon--navigation' : '',\n this.class\n ];\n }\n\n /** HasElementRef interface implementation\n * function used by applyCssClass and applyCssStyle decorators\n */\n public elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TableComponent } from './table.component';\nimport { TableResponsiveWrapperDirective } from './directives/table-responsive-wrapper.directive';\nimport { TableHeaderDirective } from './directives/table-header.directive';\nimport { TableBodyDirective } from './directives/table-body.directive';\nimport { TableRowDirective } from './directives/table-row.directive';\nimport { TableCellDirective } from './directives/table-cell.directive';\nimport { TableWrapperComponent } from './table-wrapper.component';\nimport { TableFooterDirective } from './directives/table-footer.directive';\nimport { TableStatusIndicatorDirective } from './directives/table-status-indicator.directive';\nimport { TablePopoverDirective } from './directives/table-popover.directive';\nimport { TableInnerDirective } from './directives/table-inner.directive';\nimport { TableTextDirective } from './directives/table-text.directive';\nimport { TableIconDirective } from './directives/table-icon.directive';\nimport { TableService } from './table.service';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n TableComponent,\n TableResponsiveWrapperDirective,\n TableWrapperComponent,\n TableHeaderDirective,\n TableFooterDirective,\n TableBodyDirective,\n TableRowDirective,\n TableCellDirective,\n TableStatusIndicatorDirective,\n TablePopoverDirective,\n TableInnerDirective,\n TableTextDirective,\n TableIconDirective\n ],\n exports: [\n TableComponent,\n TableResponsiveWrapperDirective,\n TableWrapperComponent,\n TableHeaderDirective,\n TableFooterDirective,\n TableBodyDirective,\n TableRowDirective,\n TableCellDirective,\n TableStatusIndicatorDirective,\n TablePopoverDirective,\n TableInnerDirective,\n TableTextDirective,\n TableIconDirective\n ],\n providers: [TableService]\n})\nexport class TableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;MAEa,YAAY;IAAzB;QACI,mBAAc,GAA8B,IAAI,eAAe,CAAW,EAAE,CAAC,CAAC;KAOjF;IALG,UAAU,CAAC,IAAc;QACrB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;SACvC;KACJ;;;ACQL;;;;;;;MAiBa,cAAc;IA0CvB,YACY,aAA2B,EAC3B,IAAuB,EACX,sBAA6C;QAFzD,kBAAa,GAAb,aAAa,CAAc;QAC3B,SAAI,GAAJ,IAAI,CAAmB;QACX,2BAAsB,GAAtB,sBAAsB,CAAuB;;QA1CrE,iBAAY,GAAG,IAAI,CAAC;;QAKpB,cAAS,GAAG,KAAK,CAAC;;QAKlB,cAAS,GAAG,KAAK,CAAC;;QAelB,UAAK,GAAG,KAAK,CAAC;;QAKd,eAAU,GAAG,KAAK,CAAC;;QAOX,mBAAc,GAAG,IAAI,YAAY,EAAE,CAAC;KAMxC;;IAGJ,QAAQ;QACJ,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC3F,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,OAAO;gBAClE,IAAI,CAAC,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC;gBACrC,IAAI,CAAC,SAAS,GAAG,OAAO,KAAK,WAAW,CAAC;gBACzC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;aAC7B,CAAC,CACL,CAAC;SACL;KACJ;;IAGD,WAAW;QACP,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;KACrC;;IAGD,eAAe;QACX,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClC;;IAGD,KAAK,CAAC,IAAc;QAChB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;KAC7B;;IAGO,cAAc,CAAC,IAAc;QACjC,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;SAC5C;KACJ;;2GAjFQ,cAAc;+FAAd,cAAc,kjBAFZ,CAAC,YAAY,CAAC,kDAJf,2BAA2B;2FAM5B,cAAc;kBAV1B,SAAS;+BAEI,iBAAiB,YACjB,UAAU,YACV,2BAA2B,iBAEtB,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,aACpC,CAAC,YAAY,CAAC;;0BA+CpB,QAAQ;4CA1Cb,YAAY;sBADX,WAAW;uBAAC,gBAAgB;gBAM7B,SAAS;sBAFR,WAAW;uBAAC,uCAAuC;;sBACnD,KAAK;gBAMN,SAAS;sBAFR,WAAW;uBAAC,qCAAqC;;sBACjD,KAAK;gBAMN,OAAO;sBAFN,WAAW;uBAAC,yBAAyB;;sBACrC,KAAK;gBAMN,SAAS;sBAFR,WAAW;uBAAC,2BAA2B;;sBACvC,KAAK;gBAMN,KAAK;sBAFJ,WAAW;uBAAC,wBAAwB;;sBACpC,KAAK;gBAMN,UAAU;sBAFT,WAAW;uBAAC,4BAA4B;;sBACxC,KAAK;gBAKN,IAAI;sBADH,KAAK;;;ACrEV;;;;;;;;;;MAiBa,+BAA+B;;4HAA/B,+BAA+B;gHAA/B,+BAA+B;2FAA/B,+BAA+B;kBAP3C,SAAS;mBAAC;;oBAEP,QAAQ,EAAE,+BAA+B;oBACzC,IAAI,EAAE;wBACF,KAAK,EAAE,kBAAkB;qBAC5B;iBACJ;;;MCZY,oBAAoB;IAHjC;;QAMI,uBAAkB,GAAG,IAAI,CAAC;;QAK1B,cAAS,GAAG,KAAK,CAAC;;QAKlB,cAAS,GAAG,KAAK,CAAC;KACrB;;iHAdY,oBAAoB;qGAApB,oBAAoB;2FAApB,oBAAoB;kBAHhC,SAAS;mBAAC;oBACP,QAAQ,EAAE,oCAAoC;iBACjD;8BAIG,kBAAkB;sBADjB,WAAW;uBAAC,wBAAwB;gBAMrC,SAAS;sBAFR,WAAW;uBAAC,+CAA+C;;sBAC3D,KAAK;gBAMN,SAAS;sBAFR,WAAW;uBAAC,6CAA6C;;sBACzD,KAAK;;;MCZG,kBAAkB;IAH/B;;QAMI,qBAAgB,GAAG,IAAI,CAAC;;QAKxB,cAAS,GAAG,KAAK,CAAC;;QAKlB,cAAS,GAAG,KAAK,CAAC;KACrB;;+GAdY,kBAAkB;mGAAlB,kBAAkB;2FAAlB,kBAAkB;kBAH9B,SAAS;mBAAC;oBACP,QAAQ,EAAE,gCAAgC;iBAC7C;8BAIG,gBAAgB;sBADf,WAAW;uBAAC,sBAAsB;gBAMnC,SAAS;sBAFR,WAAW;uBAAC,6CAA6C;;sBACzD,KAAK;gBAMN,SAAS;sBAFR,WAAW;uBAAC,2CAA2C;;sBACvD,KAAK;;;MCFG,kBAAkB;IAqD3B,YAAmB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;;QAjDzC,cAAS,GAAG,KAAK,CAAC;;QAKlB,cAAS,GAAG,KAAK,CAAC;;QAKlB,cAAS,GAAG,KAAK,CAAC;;QAKlB,cAAS,GAAG,KAAK,CAAC;;QAKlB,cAAS,GAAG,KAAK,CAAC;;QAKlB,eAAU,GAAG,KAAK,CAAC;;QAKnB,cAAS,GAAG,KAAK,CAAC;;QAKlB,WAAM,GAAG,KAAK,CAAC;;QAYf,sBAAiB,GAAG,IAAI,CAAC;KAEoB;;IAG7C,kBAAkB;QACd,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC7C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;SAC3E;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;SACjE;KACJ;;+GAhEQ,kBAAkB;mGAAlB,kBAAkB,g2BA8CO,iBAAiB;2FA9C1C,kBAAkB;kBAH9B,SAAS;mBAAC;oBACP,QAAQ,EAAE,gCAAgC;iBAC7C;iGAKG,SAAS;sBAFR,WAAW;uBAAC,4CAA4C;;sBACxD,KAAK;gBAMN,SAAS;sBAFR,WAAW;uBAAC,0CAA0C;;sBACtD,KAAK;gBAMN,SAAS;sBAFR,WAAW;uBAAC,iCAAiC;;sBAC7C,KAAK;gBAMN,SAAS;sBAFR,WAAW;uBAAC,iCAAiC;;sBAC7C,KAAK;gBAMN,SAAS;sBAFR,WAAW;uBAAC,iCAAiC;;sBAC7C,KAAK;gBAMN,UAAU;sBAFT,WAAW;uBAAC,mCAAmC;;sBAC/C,KAAK;gBAMN,SAAS;sBAFR,WAAW;uBAAC,kCAAkC;;sBAC9C,KAAK;gBAMN,MAAM;sBAFL,WAAW;uBAAC,+BAA+B;;sBAC3C,KAAK;gBAKN,GAAG;sBADF,KAAK;gBAKN,WAAW;sBADV,eAAe;uBAAC,UAAU,CAAC,MAAM,iBAAiB,CAAC;gBAKpD,iBAAiB;sBADhB,WAAW;uBAAC,sBAAsB;;;MCjD1B,iBAAiB,GAAG,mBAAmB;MAKvC,iBAAiB;;IAsC1B,YAAoB,aAAgC,EAAU,aAA2B;QAArE,kBAAa,GAAb,aAAa,CAAmB;QAAU,kBAAa,GAAb,aAAa,CAAc;;QA/BzF,oBAAe,GAAG,IAAI,CAAC;;QAKvB,cAAS,GAAG,KAAK,CAAC;;QAKlB,cAAS,GAAG,KAAK,CAAC;;QAKlB,cAAS,GAAG,KAAK,CAAC;;QAKlB,SAAI,GAAG,KAAK,CAAC;;QAKb,cAAS,GAAG,KAAK,CAAC;KAM2E;;IAG7F,QAAQ;QACJ,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAc,KACxF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CACzB,CAAC;KACL;;IAGD,eAAe;QACX,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;KAClE;;IAGD,WAAW;QACP,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,CAAC;KAChD;;IAGO,WAAW,CAAC,IAAc;QAC9B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAE7B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAEtF,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAE9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAE3B,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;SACtC;KACJ;;IAGO,WAAW,CAAC,CAAqB,EAAE,CAAqB,EAAE,IAAc;QAC5E,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE;YACrF,OAAO,CAAC,CAAC,CAAC;SACb;aAAM;YACH,OAAO,CAAC,CAAC;SACZ;KACJ;;IAGO,mBAAmB;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KACpB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CACtF,CAAC;KACL;;IAGO,iBAAiB,CAAC,IAAc;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAChG,MAAM,gBAAgB,GAAyB,IAAI,CAAC,KAAK,CAAC,MAAM,CAC5D,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAClD,CAAC;QACF,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC/C;;IAGO,YAAY,CAAC,OAA2B;QAC5C,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;KACrE;;8GApGQ,iBAAiB;kGAAjB,iBAAiB,uhBAET,kBAAkB;2FAF1B,iBAAiB;kBAH7B,SAAS;mBAAC;oBACP,QAAQ,EAAE,8BAA8B;iBAC3C;gIAIG,KAAK;sBADJ,eAAe;uBAAC,kBAAkB;gBAKnC,eAAe;sBADd,WAAW;uBAAC,qBAAqB;gBAMlC,SAAS;sBAFR,WAAW;uBAAC,gCAAgC;;sBAC5C,KAAK;gBAMN,SAAS;sBAFR,WAAW;uBAAC,gCAAgC;;sBAC5C,KAAK;gBAMN,SAAS;sBAFR,WAAW;uBAAC,gCAAgC;;sBAC5C,KAAK;gBAMN,IAAI;sBAFH,WAAW;uBAAC,2BAA2B;;sBACvC,KAAK;gBAMN,SAAS;sBAFR,WAAW;uBAAC,gCAAgC;;sBAC5C,KAAK;;;AClDV;;;;;;;;;MAiBa,qBAAqB;IAC9B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;KAAI;IAEvC,kBAAkB;QACrB,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE;YAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC;YAC9D,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,YAAY,CAAC,QAAQ,EAAE;gBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACnD,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,EAAE;wBAC9C,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;qBAC9D;yBAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,EAAE;wBACrD,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;qBAC5D;yBAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,EAAE;wBACrD,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;qBAC9D;iBACJ;aACJ;SACJ;KACJ;;kHAnBQ,qBAAqB;sGAArB,qBAAqB,wDALpB,2BAA2B;2FAK5B,qBAAqB;kBARjC,SAAS;+BAEI,kBAAkB,YAClB,2BAA2B,iBAEtB,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM;;;MCZtC,oBAAoB;IAHjC;;QAMI,uBAAkB,GAAG,IAAI,CAAC;KAC7B;;iHAJY,oBAAoB;qGAApB,oBAAoB;2FAApB,oBAAoB;kBAHhC,SAAS;mBAAC;oBACP,QAAQ,EAAE,oCAAoC;iBACjD;8BAIG,kBAAkB;sBADjB,WAAW;uBAAC,wBAAwB;;;MCO5B,6BAA6B;;0HAA7B,6BAA6B;8GAA7B,6BAA6B;2FAA7B,6BAA6B;kBAVzC,SAAS;mBAAC;oBACP,QAAQ,EAAE,uDAAuD;oBACjE,IAAI,EAAE;wBACF,KAAK,EAAE,kCAAkC;wBACzC,iDAAiD,EAAE,oBAAoB;wBACvE,mDAAmD,EAAE,sBAAsB;wBAC3E,uDAAuD,EAAE,0BAA0B;wBACnF,iDAAiD,EAAE,oBAAoB;qBAC1E;iBACJ;8BAIG,MAAM;sBADL,KAAK;;;MCXG,qBAAqB;IAHlC;;QAMI,wBAAmB,GAAG,6CAA6C,CAAC;KACvE;;kHAJY,qBAAqB;sGAArB,qBAAqB;2FAArB,qBAAqB;kBAHjC,SAAS;mBAAC;oBACP,QAAQ,EAAE,sCAAsC;iBACnD;8BAIG,mBAAmB;sBADlB,WAAW;uBAAC,OAAO;;;MCFX,mBAAmB;IAHhC;;QAMI,sBAAiB,GAAG,IAAI,CAAC;KAC5B;;gHAJY,mBAAmB;oGAAnB,mBAAmB;2FAAnB,mBAAmB;kBAH/B,SAAS;mBAAC;oBACP,QAAQ,EAAE,kCAAkC;iBAC/C;8BAIG,iBAAiB;sBADhB,WAAW;uBAAC,uBAAuB;;;MCF3B,kBAAkB;IAH/B;;QAMI,qBAAgB,GAAG,IAAI,CAAC;;QAKxB,WAAM,GAAG,KAAK,CAAC;;QAKf,UAAK,GAAG,KAAK,CAAC;KAMjB;;+GAnBY,kBAAkB;mGAAlB,kBAAkB;2FAAlB,kBAAkB;kBAH9B,SAAS;mBAAC;oBACP,QAAQ,EAAE,gCAAgC;iBAC7C;8BAIG,gBAAgB;sBADf,WAAW;uBAAC,sBAAsB;gBAMnC,MAAM;sBAFL,WAAW;uBAAC,+BAA+B;;sBAC3C,KAAK;gBAMN,KAAK;sBAFJ,WAAW;uBAAC,6BAA6B;;sBACzC,KAAK;gBAMN,QAAQ;sBAFP,WAAW;uBAAC,iBAAiB;;sBAC7B,KAAK;;;MChBG,kBAAkB;;IAsB3B,YAAoB,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;;QAnB3C,qBAAgB,GAAG,IAAI,CAAC;;;QAKjB,UAAK,GAAG,EAAE,CAAC;;;;;QAOX,UAAK,GAAG,EAAE,CAAC;;QAIlB,eAAU,GAAG,KAAK,CAAC;KAG4B;;;;;IAM/C,WAAW;QACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;IAED,QAAQ;QACJ,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;;;;IAOD,sBAAsB;QAClB,OAAO;YACH,gBAAgB;YAChB,IAAI,CAAC,KAAK,GAAG,aAAa,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;YAC3C,IAAI,CAAC,UAAU,GAAG,4BAA4B,GAAG,EAAE;YACnD,IAAI,CAAC,KAAK;SACb,CAAC;KACL;;;;IAKM,UAAU;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;+GAvDQ,kBAAkB;mGAAlB,kBAAkB;AAyC3B;IALC,aAAa;;;;gEAYb;2FAhDQ,kBAAkB;kBAH9B,SAAS;mBAAC;oBACP,QAAQ,EAAE,gCAAgC;iBAC7C;iGAIG,gBAAgB;sBADf,WAAW;uBAAC,sBAAsB;gBAM5B,KAAK;sBADX,KAAK;gBAQC,KAAK;sBADX,KAAK;gBAKN,UAAU;sBADT,KAAK;;;;;;QAuBN,sBAAsB;;MCKb,WAAW;;wGAAX,WAAW;yGAAX,WAAW,iBA/BhB,cAAc;QACd,+BAA+B;QAC/B,qBAAqB;QACrB,oBAAoB;QACpB,oBAAoB;QACpB,kBAAkB;QAClB,iBAAiB;QACjB,kBAAkB;QAClB,6BAA6B;QAC7B,qBAAqB;QACrB,mBAAmB;QACnB,kBAAkB;QAClB,kBAAkB,aAdZ,YAAY,aAiBlB,cAAc;QACd,+BAA+B;QAC/B,qBAAqB;QACrB,oBAAoB;QACpB,oBAAoB;QACpB,kBAAkB;QAClB,iBAAiB;QACjB,kBAAkB;QAClB,6BAA6B;QAC7B,qBAAqB;QACrB,mBAAmB;QACnB,kBAAkB;QAClB,kBAAkB;yGAIb,WAAW,aAFT,CAAC,YAAY,CAAC,YA/BhB,CAAC,YAAY,CAAC;2FAiCd,WAAW;kBAlCvB,QAAQ;mBAAC;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE;wBACV,cAAc;wBACd,+BAA+B;wBAC/B,qBAAqB;wBACrB,oBAAoB;wBACpB,oBAAoB;wBACpB,kBAAkB;wBAClB,iBAAiB;wBACjB,kBAAkB;wBAClB,6BAA6B;wBAC7B,qBAAqB;wBACrB,mBAAmB;wBACnB,kBAAkB;wBAClB,kBAAkB;qBACrB;oBACD,OAAO,EAAE;wBACL,cAAc;wBACd,+BAA+B;wBAC/B,qBAAqB;wBACrB,oBAAoB;wBACpB,oBAAoB;wBACpB,kBAAkB;wBAClB,iBAAiB;wBACjB,kBAAkB;wBAClB,6BAA6B;wBAC7B,qBAAqB;wBACrB,mBAAmB;wBACnB,kBAAkB;wBAClB,kBAAkB;qBACrB;oBACD,SAAS,EAAE,CAAC,YAAY,CAAC;iBAC5B;;;ACnDD;;;;;;"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-table.mjs","sources":["../../../../libs/core/src/lib/table/table.service.ts","../../../../libs/core/src/lib/table/table.component.ts","../../../../libs/core/src/lib/table/directives/table-responsive-wrapper.directive.ts","../../../../libs/core/src/lib/table/directives/table-header.directive.ts","../../../../libs/core/src/lib/table/directives/table-body.directive.ts","../../../../libs/core/src/lib/table/directives/table-cell.directive.ts","../../../../libs/core/src/lib/table/directives/table-row.directive.ts","../../../../libs/core/src/lib/table/table-wrapper.component.ts","../../../../libs/core/src/lib/table/directives/table-footer.directive.ts","../../../../libs/core/src/lib/table/directives/table-status-indicator.directive.ts","../../../../libs/core/src/lib/table/directives/table-popover.directive.ts","../../../../libs/core/src/lib/table/directives/table-inner.directive.ts","../../../../libs/core/src/lib/table/directives/table-text.directive.ts","../../../../libs/core/src/lib/table/directives/table-icon.directive.ts","../../../../libs/core/src/lib/table/table.module.ts","../../../../libs/core/src/lib/table/fundamental-ngx-core-table.ts"],"sourcesContent":["import { BehaviorSubject } from 'rxjs';\n\nexport class TableService {\n propagateKeys$: BehaviorSubject<string[]> = new BehaviorSubject<string[]>([]);\n\n changeKeys(keys: string[]): void {\n if (keys && keys.length > 0) {\n this.propagateKeys$.next([...keys]);\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport { ContentDensityService } from '@fundamental-ngx/core/utils';\nimport { Subscription } from 'rxjs';\n\nimport { TableService } from './table.service';\n\n/**\n * The component that represents a table.\n * A table is a set of tabular data. Line items can support data, images and actions.\n * ```html\n * <table fd-table></table>\n * ```\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'table[fd-table]',\n exportAs: 'fd-table',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./table.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TableService]\n})\nexport class TableComponent implements AfterViewInit, OnInit, OnDestroy {\n /** @hidden */\n @HostBinding('class.fd-table')\n fdTableClass = true;\n\n /** Whether or not to show the table's horizontal borders */\n @HostBinding('class.fd-table--no-horizontal-borders')\n @Input()\n noBorderX = false;\n\n /** Whether or not to show the table's vertical borders */\n @HostBinding('class.fd-table--no-vertical-borders')\n @Input()\n noBorderY = false;\n\n /** Whether or not to display the table in compact mode */\n @HostBinding('class.fd-table--compact')\n @Input()\n compact?: boolean;\n\n /** Whether or not to display the table in condensed mode */\n @HostBinding('class.fd-table--condensed')\n @Input()\n condensed?: boolean;\n\n /** Whether or not to display the table in pop in mode, it also require change of markup */\n @HostBinding('class.fd-table--pop-in')\n @Input()\n popIn = false;\n\n /** Whether or not to display the table in responsive mode. */\n @HostBinding('class.fd-table--responsive')\n @Input()\n responsive = false;\n\n /** List of keys that identifies single columns */\n @Input()\n keys: string[];\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n constructor(\n private _tableService: TableService,\n private _cdr: ChangeDetectorRef,\n @Optional() private _contentDensityService: ContentDensityService\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n if (this.compact === undefined && this.condensed === undefined && this._contentDensityService) {\n this._subscriptions.add(\n this._contentDensityService._contentDensityListener.subscribe((density) => {\n this.compact = density === 'compact';\n this.condensed = density === 'condensed';\n this._cdr.detectChanges();\n })\n );\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._propagateKeys(this.keys);\n }\n\n /** Method that sorts and changes visible state of particular cells */\n reset(keys: string[]): void {\n this._propagateKeys(keys);\n }\n\n /** @hidden */\n private _propagateKeys(keys: string[]): void {\n if (keys) {\n this._tableService.changeKeys([...keys]);\n }\n }\n}\n","import { Directive } from '@angular/core';\n/**\n * The directive that represents a table.\n * A table is a set of tabular data. Line items can support data, images and actions.\n * ```html\n * <div fd-table-responsive-wrapper>\n * <table fd-table>\n * </table>\n * </div>\n * ```\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-table-responsive-wrapper]',\n host: {\n style: 'overflow-x: auto'\n }\n})\nexport class TableResponsiveWrapperDirective {}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[fdTableHeader], [fd-table-header]'\n})\nexport class TableHeaderDirective {\n /** @hidden */\n @HostBinding('class.fd-table__header')\n fdTableHeaderClass = true;\n\n /** Whether or not to show the table header's horizontal borders */\n @HostBinding('class.fd-table__header--no-horizontal-borders')\n @Input()\n noBorderX = false;\n\n /** Whether or not to show the table header's vertical borders */\n @HostBinding('class.fd-table__header--no-vertical-borders')\n @Input()\n noBorderY = false;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[fdTableBody], [fd-table-body]'\n})\nexport class TableBodyDirective {\n /** @hidden */\n @HostBinding('class.fd-table__body')\n fdTableBodyClass = true;\n\n /** Whether or not to show the table body's horizontal borders */\n @HostBinding('class.fd-table__body--no-horizontal-borders')\n @Input()\n noBorderX = false;\n\n /** Whether or not to show the table body's vertical borders */\n @HostBinding('class.fd-table__body--no-vertical-borders')\n @Input()\n noBorderY = false;\n}\n","import {\n AfterContentInit,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n QueryList,\n ContentChildren,\n forwardRef\n} from '@angular/core';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\n\n@Directive({\n selector: '[fdTableCell], [fd-table-cell]'\n})\nexport class TableCellDirective implements AfterContentInit {\n /** Whether or not to show the table cell's horizontal borders */\n @HostBinding('class.fd-table__cell--no-horizontal-border')\n @Input()\n noBorderX = false;\n\n /** Whether or not to show the table cell's vertical borders */\n @HostBinding('class.fd-table__cell--no-vertical-border')\n @Input()\n noBorderY = false;\n\n /** Whether or not the table cell is activable */\n @HostBinding('class.fd-table__cell--activable')\n @Input()\n activable = false;\n\n /** Whether or not the table cell is focusable */\n @HostBinding('class.fd-table__cell--focusable')\n @Input()\n focusable = false;\n\n /** Whether or not the table cell is hoverable */\n @HostBinding('class.fd-table__cell--hoverable')\n @Input()\n hoverable = false;\n\n /** Whether or not the table cell's width should fit to content */\n @HostBinding('class.fd-table__cell--fit-content')\n @Input()\n fitContent = false;\n\n /** Whether or not the table cell shouldn't have padding on sides */\n @HostBinding('class.fd-table__cell--no-padding')\n @Input()\n noPadding = false;\n\n /** Whether or not the table cell indicates that there is no data */\n @HostBinding('class.fd-table__cell--no-data')\n @Input()\n noData = false;\n\n /** Key of cell element, it's used to identify this cell with certain column */\n @Input()\n key: string;\n\n /** @hidden */\n @ContentChildren(forwardRef(() => CheckboxComponent))\n _checkboxes: QueryList<CheckboxComponent>;\n\n /** @hidden */\n @HostBinding('class.fd-table__cell')\n _fdTableCellClass = true;\n\n constructor(public elementRef: ElementRef) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._checkboxes && this._checkboxes.length) {\n this.elementRef.nativeElement.classList.add('fd-table__cell--checkbox');\n }\n\n if (this.noData) {\n this.elementRef.nativeElement.setAttribute('colspan', '100%');\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n QueryList\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { TableService } from '../table.service';\nimport { TableCellDirective } from './table-cell.directive';\n\nexport const HIDDEN_CLASS_NAME = 'fd-table--hidden';\n\n@Directive({\n selector: '[fdTableRow], [fd-table-row]'\n})\nexport class TableRowDirective implements AfterViewInit, OnDestroy, OnInit {\n /** @hidden */\n @ContentChildren(TableCellDirective)\n cells: QueryList<TableCellDirective>;\n\n /** @hidden */\n @HostBinding('class.fd-table__row')\n fdTableRowClass = true;\n\n /** Whether or not the table row is activable */\n @HostBinding('class.fd-table__row--activable')\n @Input()\n activable = false;\n\n /** Whether or not the table row is hoverable */\n @HostBinding('class.fd-table__row--hoverable')\n @Input()\n hoverable = false;\n\n /** Whether or not the table row is focusable */\n @HostBinding('class.fd-table__row--focusable')\n @Input()\n focusable = false;\n\n /** Whether or not the table row is main row, it's concerned only on pop in mode */\n @HostBinding('class.fd-table__row--main')\n @Input()\n main = false;\n\n /** Whether or not the table row is secondary row, it's concerned only on pop in mode */\n @HostBinding('class.fd-table__row--secondary')\n @Input()\n secondary = false;\n\n /** @hidden */\n propagateKeysSubscription: Subscription;\n\n /** @hidden */\n constructor(private _changeDetRef: ChangeDetectorRef, private _tableService: TableService) {}\n\n /** @hidden */\n ngOnInit(): void {\n this.propagateKeysSubscription = this._tableService.propagateKeys$.subscribe((keys: string[]) =>\n this._resetCells(keys)\n );\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._resetCells(this._tableService.propagateKeys$.getValue());\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.propagateKeysSubscription.unsubscribe();\n }\n\n /** @hidden */\n private _resetCells(keys: string[]): void {\n if (this.cells && keys && keys.length > 0) {\n this._changeVisibility(keys);\n\n const sortedCells = this.cells.toArray().sort((a, b) => this._sortMethod(a, b, keys));\n\n this.cells.reset(sortedCells);\n\n this._sortNativeElements();\n\n this._changeDetRef.detectChanges();\n }\n }\n\n /** @hidden */\n private _sortMethod(a: TableCellDirective, b: TableCellDirective, keys: string[]): number {\n if (keys.findIndex((_key) => _key === a.key) < keys.findIndex((_key) => _key === b.key)) {\n return -1;\n } else {\n return 1;\n }\n }\n\n /** @hidden */\n private _sortNativeElements(): void {\n this.cells.forEach((cell) =>\n cell.elementRef.nativeElement.parentNode.appendChild(cell.elementRef.nativeElement)\n );\n }\n\n /** @hidden */\n private _changeVisibility(keys: string[]): void {\n this.cells.forEach((cell) => cell.elementRef.nativeElement.classList.remove(HIDDEN_CLASS_NAME));\n const notFoundElements: TableCellDirective[] = this.cells.filter(\n (cell) => !keys.find((key) => key === cell.key)\n );\n notFoundElements.forEach(this._hideElement);\n }\n\n /** @hidden */\n private _hideElement(element: TableCellDirective): void {\n element.elementRef.nativeElement.classList.add(HIDDEN_CLASS_NAME);\n }\n}\n","import { AfterContentInit, ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation } from '@angular/core';\n\n/**\n * The component that represents a table wrapper, it will add fd-table class to its first child.\n * A table is a set of tabular data. Line items can support data, images and actions.\n * ```html\n * <table-wrapper>\n * <table></table>\n * </table-wrapper>\n * ```\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'fd-table-wrapper',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./table.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableWrapperComponent implements AfterContentInit {\n constructor(private elementRef: ElementRef) {}\n\n public ngAfterContentInit(): void {\n if (this.elementRef.nativeElement && this.elementRef.nativeElement.firstChild) {\n const tableElement = this.elementRef.nativeElement.firstChild;\n tableElement.classList.add('fd-table');\n if (tableElement.children) {\n for (let i = 0; i < tableElement.children.length; i++) {\n if (tableElement.children[i].tagName === 'THEAD') {\n tableElement.children[i].classList.add('fd-table__header');\n } else if (tableElement.children[i].tagName === 'TBODY') {\n tableElement.children[i].classList.add('fd-table__body');\n } else if (tableElement.children[i].tagName === 'TFOOT') {\n tableElement.children[i].classList.add('fd-table__footer');\n }\n }\n }\n }\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTableFooter], [fd-table-footer]'\n})\nexport class TableFooterDirective {\n /** @hidden */\n @HostBinding('class.fd-table__footer')\n fdTableFooterClass = true;\n}\n","import { Directive, Input } from '@angular/core';\n\nexport type TableStatuses = 'valid' | 'warning' | 'information' | 'error';\n\n@Directive({\n selector: '[fdTableStatusIndicator], [fd-table-status-indicator]',\n host: {\n class: 'fd-table__cell--status-indicator',\n '[class.fd-table__cell--status-indicator--valid]': 'status === \"valid\"',\n '[class.fd-table__cell--status-indicator--warning]': 'status === \"warning\"',\n '[class.fd-table__cell--status-indicator--information]': 'status === \"information\"',\n '[class.fd-table__cell--status-indicator--error]': 'status === \"error\"'\n }\n})\nexport class TableStatusIndicatorDirective {\n /** The type of indicator. Options are 'valid', 'warning', 'information' and 'error'. */\n @Input()\n status: TableStatuses;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTablePopover], [fd-table-popover]'\n})\nexport class TablePopoverDirective {\n /** @hidden */\n @HostBinding('class')\n fdTablePopoverClass = 'fd-table__popover fd-table__popover--custom';\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTableInner], [fd-table-inner]'\n})\nexport class TableInnerDirective {\n /** @hidden */\n @HostBinding('class.fd-table__inner')\n fdTableInnerClass = true;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({\n selector: '[fdTableText], [fd-table-text]'\n})\nexport class TableTextDirective {\n /** Whether the text should have shadow (halo) & overflow should be hidden. */\n @HostBinding('class.fd-table__text')\n @Input()\n fdTableTextClass = true;\n\n /** Whether the text should wrap when the text is too long for 1 line */\n @HostBinding('class.fd-table__text--no-wrap')\n @Input()\n noWrap = false;\n\n /** Whether the text should be bolded and marked as a title */\n @HostBinding('class.fd-table__text--title')\n @Input()\n title = false;\n\n /** Maximum width of a text element */\n @HostBinding('style.max-width')\n @Input()\n maxWidth: string;\n}\n","import { Directive, ElementRef, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\nimport { applyCssClass, CssClassBuilder } from '@fundamental-ngx/core/utils';\n\n@Directive({\n selector: '[fdTableIcon], [fd-table-icon]'\n})\nexport class TableIconDirective implements OnChanges, CssClassBuilder, OnInit {\n /** @hidden */\n @HostBinding('class.fd-table__icon')\n fdTableIconClass = true;\n\n /** The property allows user to pass additional css classes\n */\n @Input()\n public class = '';\n\n /** The icon to include in the button. See the icon page for the list of icons.\n * Setter is used to control when css class have to be rebuilded.\n * Default value is set to ''.\n */\n @Input()\n public glyph = '';\n\n /** Whether or no icon is used as navigation */\n @Input()\n navigation = false;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** Function runs when component is initialized\n * function should build component css class\n * function should build css style\n */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\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-table__icon',\n this.glyph ? `sap-icon--${this.glyph}` : '',\n this.navigation ? 'fd-table__icon--navigation' : '',\n this.class\n ];\n }\n\n /** HasElementRef interface implementation\n * function used by applyCssClass and applyCssStyle decorators\n */\n public elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TableComponent } from './table.component';\nimport { TableResponsiveWrapperDirective } from './directives/table-responsive-wrapper.directive';\nimport { TableHeaderDirective } from './directives/table-header.directive';\nimport { TableBodyDirective } from './directives/table-body.directive';\nimport { TableRowDirective } from './directives/table-row.directive';\nimport { TableCellDirective } from './directives/table-cell.directive';\nimport { TableWrapperComponent } from './table-wrapper.component';\nimport { TableFooterDirective } from './directives/table-footer.directive';\nimport { TableStatusIndicatorDirective } from './directives/table-status-indicator.directive';\nimport { TablePopoverDirective } from './directives/table-popover.directive';\nimport { TableInnerDirective } from './directives/table-inner.directive';\nimport { TableTextDirective } from './directives/table-text.directive';\nimport { TableIconDirective } from './directives/table-icon.directive';\nimport { TableService } from './table.service';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n TableComponent,\n TableResponsiveWrapperDirective,\n TableWrapperComponent,\n TableHeaderDirective,\n TableFooterDirective,\n TableBodyDirective,\n TableRowDirective,\n TableCellDirective,\n TableStatusIndicatorDirective,\n TablePopoverDirective,\n TableInnerDirective,\n TableTextDirective,\n TableIconDirective\n ],\n exports: [\n TableComponent,\n TableResponsiveWrapperDirective,\n TableWrapperComponent,\n TableHeaderDirective,\n TableFooterDirective,\n TableBodyDirective,\n TableRowDirective,\n TableCellDirective,\n TableStatusIndicatorDirective,\n TablePopoverDirective,\n TableInnerDirective,\n TableTextDirective,\n TableIconDirective\n ],\n providers: [TableService]\n})\nexport class TableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -66,7 +66,7 @@ class TextComponent {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
TextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: TextComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
-
TextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: TextComponent, selector: "fd-text", inputs: { text: "text", maxLines: "maxLines", whitespaces: "whitespaces", hyphenation: "hyphenation", expandable: "expandable", moreLabel: "moreLabel", lessLabel: "lessLabel", isCollapsed: "isCollapsed" }, outputs: { isCollapsedChange: "isCollapsedChange" }, ngImport: i0, template: "<p class=\"fd-text\" [class.fd-text--pre-wrap]=\"whitespaces\" [style.hyphens]=\"hyphenation\">\n <span\n fd-lineclamp\n class=\"fd-text__lineclamp\"\n #lineClamp=\"fdLineClamp\"\n [fdLineclampState]=\"_isCollapsed\"\n [fdLineClampLines]=\"maxLines\"\n (lineCountUpdate)=\"checkLineCount($event)\"\n >\n <span fd-lineclamp-target [fdLineClampTargetText]=\"text\" (update)=\"lineClamp.refreshTarget($event)\"></span>\n </span>\n\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-text__link--more\"\n *ngIf=\"_expandable && _hasMore\"\n (keydown.enter)=\"toggleTextView()\"\n (click)=\"toggleTextView()\"\n [innerText]=\"isCollapsed ? moreLabel : lessLabel\"\n ></a>\n</p>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.0-rc.128\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-text{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0}.fd-text:before,.fd-text:after{box-sizing:inherit;font-size:inherit}.fd-text::selection{color:var(--sapContent_ContrastTextColor);background-color:var(--fdText_Selected_Background_Color)}.fd-text--max-lines{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.fd-text--pre-wrap{white-space:pre-wrap}.fd-text--hyphenation{-webkit-hyphens:auto;hyphens:auto}.fd-text__lineclamp{display:block}.fd-text__link--more{text-transform:uppercase;cursor:pointer}\n"], components: [{ type: i1.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }], directives: [{ type: i2.LineClampDirective, selector: "[fd-lineclamp]", inputs: ["fdLineClampLines", "fdLineclampState"], outputs: ["lineCountUpdate"], exportAs: ["fdLineClamp"] }, { type: i2.LineClampTargetDirective, selector: "[fd-lineclamp-target]", inputs: ["fdLineClampTargetText"], outputs: ["update"], exportAs: ["fdLineClampTarget"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
69
|
+
TextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: TextComponent, selector: "fd-text", inputs: { text: "text", maxLines: "maxLines", whitespaces: "whitespaces", hyphenation: "hyphenation", expandable: "expandable", moreLabel: "moreLabel", lessLabel: "lessLabel", isCollapsed: "isCollapsed" }, outputs: { isCollapsedChange: "isCollapsedChange" }, ngImport: i0, template: "<p class=\"fd-text\" [class.fd-text--pre-wrap]=\"whitespaces\" [style.hyphens]=\"hyphenation\">\n <span\n fd-lineclamp\n class=\"fd-text__lineclamp\"\n #lineClamp=\"fdLineClamp\"\n [fdLineclampState]=\"_isCollapsed\"\n [fdLineClampLines]=\"maxLines\"\n (lineCountUpdate)=\"checkLineCount($event)\"\n >\n <span fd-lineclamp-target [fdLineClampTargetText]=\"text\" (update)=\"lineClamp.refreshTarget($event)\"></span>\n </span>\n\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-text__link--more\"\n *ngIf=\"_expandable && _hasMore\"\n (keydown.enter)=\"toggleTextView()\"\n (click)=\"toggleTextView()\"\n [innerText]=\"isCollapsed ? moreLabel : lessLabel\"\n ></a>\n</p>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.0-rc.128\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-text{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0}.fd-text:before,.fd-text:after{box-sizing:inherit;font-size:inherit}.fd-text::selection{color:var(--sapContent_ContrastTextColor);background-color:var(--fdText_Selected_Background_Color)}.fd-text--max-lines{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.fd-text--pre-wrap{white-space:pre-wrap}.fd-text--hyphenation{-webkit-hyphens:auto;hyphens:auto}.fd-text__lineclamp{display:block}.fd-text__link--more{text-transform:uppercase;cursor:pointer}\n"], components: [{ type: i1.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }], directives: [{ type: i2.LineClampDirective, selector: "[fd-lineclamp]", inputs: ["fdLineClampLines", "fdLineclampState"], outputs: ["lineCountUpdate"], exportAs: ["fdLineClamp"] }, { type: i2.LineClampTargetDirective, selector: "[fd-lineclamp-target]", inputs: ["fdLineClampTargetText"], outputs: ["update"], exportAs: ["fdLineClampTarget"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
70
70
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: TextComponent, decorators: [{
|
|
71
71
|
type: Component,
|
|
72
72
|
args: [{ selector: 'fd-text', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<p class=\"fd-text\" [class.fd-text--pre-wrap]=\"whitespaces\" [style.hyphens]=\"hyphenation\">\n <span\n fd-lineclamp\n class=\"fd-text__lineclamp\"\n #lineClamp=\"fdLineClamp\"\n [fdLineclampState]=\"_isCollapsed\"\n [fdLineClampLines]=\"maxLines\"\n (lineCountUpdate)=\"checkLineCount($event)\"\n >\n <span fd-lineclamp-target [fdLineClampTargetText]=\"text\" (update)=\"lineClamp.refreshTarget($event)\"></span>\n </span>\n\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-text__link--more\"\n *ngIf=\"_expandable && _hasMore\"\n (keydown.enter)=\"toggleTextView()\"\n (click)=\"toggleTextView()\"\n [innerText]=\"isCollapsed ? moreLabel : lessLabel\"\n ></a>\n</p>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.0-rc.128\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-text{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0}.fd-text:before,.fd-text:after{box-sizing:inherit;font-size:inherit}.fd-text::selection{color:var(--sapContent_ContrastTextColor);background-color:var(--fdText_Selected_Background_Color)}.fd-text--max-lines{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.fd-text--pre-wrap{white-space:pre-wrap}.fd-text--hyphenation{-webkit-hyphens:auto;hyphens:auto}.fd-text__lineclamp{display:block}.fd-text__link--more{text-transform:uppercase;cursor:pointer}\n"] }]
|