@fundamental-ngx/core 0.36.0-rc.21 → 0.36.0-rc.24
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.component.d.ts +6 -3
- package/breadcrumb/esm2020/breadcrumb.component.mjs +13 -5
- package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs +14 -6
- package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs +14 -6
- package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/breadcrumb/package.json +1 -1
- package/busy-indicator/package.json +1 -1
- package/button/package.json +1 -1
- package/calendar/package.json +1 -1
- package/card/package.json +1 -1
- package/carousel/package.json +1 -1
- package/checkbox/package.json +1 -1
- package/combobox/package.json +1 -1
- package/content-density/package.json +2 -2
- 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/dynamic-page-header/actions/dynamic-page-layout-actions.component.d.ts +7 -1
- package/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.d.ts +3 -1
- package/dynamic-page/dynamic-page.service.d.ts +2 -0
- package/dynamic-page/esm2020/dynamic-page-header/actions/dynamic-page-global-actions.component.mjs +6 -3
- package/dynamic-page/esm2020/dynamic-page-header/actions/dynamic-page-layout-actions.component.mjs +19 -5
- package/dynamic-page/esm2020/dynamic-page-header/header/dynamic-page-header.component.mjs +8 -4
- package/dynamic-page/esm2020/dynamic-page-header/subheader/dynamic-page-subheader.component.mjs +3 -3
- package/dynamic-page/esm2020/dynamic-page.service.mjs +3 -1
- package/dynamic-page/fesm2015/fundamental-ngx-core-dynamic-page.mjs +50 -30
- package/dynamic-page/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/dynamic-page/fesm2020/fundamental-ngx-core-dynamic-page.mjs +50 -30
- package/dynamic-page/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/dynamic-page/package.json +1 -1
- package/dynamic-side-content/package.json +1 -1
- package/esm2020/breadcrumb/breadcrumb.component.mjs +13 -5
- package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-global-actions.component.mjs +6 -3
- package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.mjs +19 -5
- package/esm2020/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +8 -4
- package/esm2020/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.mjs +3 -3
- package/esm2020/dynamic-page/dynamic-page.service.mjs +3 -1
- package/esm2020/flexible-column-layout/flexible-column-layout.component.mjs +9 -3
- package/esm2020/table/table.component.mjs +2 -1
- package/facets/package.json +1 -1
- package/feed-input/package.json +1 -1
- package/feed-list-item/package.json +1 -1
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +14 -6
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-dynamic-page.mjs +50 -30
- package/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-flexible-column-layout.mjs +8 -2
- package/fesm2015/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-table.mjs +1 -0
- package/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +14 -6
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-dynamic-page.mjs +50 -30
- package/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-flexible-column-layout.mjs +8 -2
- package/fesm2020/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-table.mjs +1 -0
- package/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
- package/file-uploader/package.json +1 -1
- package/fixed-card-layout/package.json +1 -1
- package/flexible-column-layout/esm2020/flexible-column-layout.component.mjs +9 -3
- package/flexible-column-layout/fesm2015/fundamental-ngx-core-flexible-column-layout.mjs +8 -2
- package/flexible-column-layout/fesm2015/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
- package/flexible-column-layout/fesm2020/fundamental-ngx-core-flexible-column-layout.mjs +8 -2
- package/flexible-column-layout/fesm2020/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
- package/flexible-column-layout/flexible-column-layout.component.d.ts +7 -1
- package/flexible-column-layout/package.json +1 -1
- package/form/package.json +1 -1
- package/formatted-text/package.json +1 -1
- package/grid-list/package.json +1 -1
- package/icon/package.json +1 -1
- package/illustrated-message/package.json +1 -1
- package/infinite-scroll/package.json +1 -1
- package/info-label/package.json +1 -1
- package/inline-help/package.json +1 -1
- package/input-group/package.json +1 -1
- package/layout-grid/package.json +1 -1
- package/layout-panel/package.json +1 -1
- package/link/package.json +1 -1
- package/list/package.json +1 -1
- package/menu/package.json +1 -1
- package/message-box/package.json +1 -1
- package/message-strip/package.json +1 -1
- package/message-toast/package.json +1 -1
- package/micro-process-flow/package.json +1 -1
- package/mobile-mode/package.json +1 -1
- package/multi-input/package.json +1 -1
- package/nested-list/package.json +1 -1
- package/notification/package.json +1 -1
- package/object-identifier/package.json +1 -1
- package/object-marker/package.json +1 -1
- package/object-number/package.json +1 -1
- package/object-status/package.json +1 -1
- package/overflow-layout/package.json +4 -4
- package/package.json +2 -2
- package/pagination/package.json +1 -1
- package/panel/package.json +1 -1
- package/popover/package.json +1 -1
- package/product-switch/package.json +1 -1
- package/progress-indicator/package.json +1 -1
- package/quick-view/package.json +1 -1
- package/radio/package.json +1 -1
- package/rating-indicator/package.json +1 -1
- package/resizable-card-layout/package.json +1 -1
- package/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/esm2020/table.component.mjs +2 -1
- package/table/fesm2015/fundamental-ngx-core-table.mjs +1 -0
- package/table/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
- package/table/fesm2020/fundamental-ngx-core-table.mjs +1 -0
- 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/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/package.json +1 -1
- package/vertical-navigation/package.json +1 -1
- package/wizard/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-flexible-column-layout.mjs","sources":["../../../../libs/core/src/lib/flexible-column-layout/constants.ts","../../../../libs/core/src/lib/flexible-column-layout/flexible-column-layout.component.ts","../../../../libs/core/src/lib/flexible-column-layout/flexible-column-layout.component.html","../../../../libs/core/src/lib/flexible-column-layout/flexible-column-layout.module.ts","../../../../libs/core/src/lib/flexible-column-layout/fundamental-ngx-core-flexible-column-layout.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const ONE_COLUMN_START_FULL_SCREEN = 'OneColumnStartFullScreen';\nexport const ONE_COLUMN_MID_FULL_SCREEN = 'OneColumnMidFullScreen';\nexport const ONE_COLUMN_END_FULL_SCREEN = 'OneColumnEndFullScreen';\nexport const TWO_COLUMNS_START_EXPANDED = 'TwoColumnsStartExpanded';\nexport const TWO_COLUMNS_MID_EXPANDED = 'TwoColumnsMidExpanded';\nexport const TWO_COLUMNS_END_EXPANDED = 'TwoColumnsEndExpanded';\nexport const THREE_COLUMNS_MID_EXPANDED = 'ThreeColumnsMidExpanded';\nexport const THREE_COLUMNS_END_EXPANDED = 'ThreeColumnsEndExpanded';\nexport const THREE_COLUMNS_START_MINIMIZED = 'ThreeColumnsStartMinimized';\nexport const THREE_COLUMNS_END_MINIMIZED = 'ThreeColumnsEndMinimized';\n\nexport const SM_SCREEN_SIZE = 'sm';\nexport const MD_SCREEN_SIZE = 'md';\nexport const LG_SCREEN_SIZE = 'lg';\n\nexport type ScreenSize = 'sm' | 'md' | 'lg';\n\nexport type FlexibleColumnLayout =\n | 'OneColumnStartFullScreen'\n | 'OneColumnMidFullScreen'\n | 'OneColumnEndFullScreen'\n | 'TwoColumnsStartExpanded'\n | 'TwoColumnsMidExpanded'\n | 'TwoColumnsEndExpanded'\n | 'ThreeColumnsMidExpanded'\n | 'ThreeColumnsEndExpanded'\n | 'ThreeColumnsStartMinimized'\n | 'ThreeColumnsEndMinimized';\n\nexport type ColumnSeparatorValue = 'right' | 'left' | null;\n\nexport interface FlexibleColumnSettings {\n start: number;\n mid: number;\n end: number;\n}\n\nexport type FlexibleColumnLayoutDefinition = { [key in FlexibleColumnLayout]: FlexibleColumnSettings };\n\nexport interface FlexibleLayoutConfig {\n layouts: FlexibleColumnLayoutDefinition;\n}\n\nexport const DEFAULT_FLEXIBLE_LAYOUT_CONFIG: FlexibleLayoutConfig = {\n layouts: {\n OneColumnStartFullScreen: { start: 100, mid: 0, end: 0 },\n OneColumnMidFullScreen: { start: 0, mid: 100, end: 0 },\n OneColumnEndFullScreen: { start: 0, mid: 0, end: 100 },\n TwoColumnsStartExpanded: { start: 67, mid: 33, end: 0 },\n TwoColumnsMidExpanded: { start: 33, mid: 67, end: 0 },\n TwoColumnsEndExpanded: { start: 0, mid: 33, end: 67 },\n ThreeColumnsMidExpanded: { start: 25, mid: 50, end: 25 },\n ThreeColumnsEndExpanded: { start: 25, mid: 25, end: 50 },\n ThreeColumnsStartMinimized: { start: 0, mid: 67, end: 33 },\n ThreeColumnsEndMinimized: { start: 33, mid: 67, end: 0 }\n }\n};\n\nexport const FD_FLEXIBLE_LAYOUT_CONFIG = new InjectionToken<FlexibleLayoutConfig>('FdFlexibleLayoutConfig');\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport {\n ColumnSeparatorValue,\n FD_FLEXIBLE_LAYOUT_CONFIG,\n FlexibleLayoutConfig,\n FlexibleColumnLayout,\n FlexibleColumnLayoutDefinition,\n LG_SCREEN_SIZE,\n MD_SCREEN_SIZE,\n ONE_COLUMN_END_FULL_SCREEN,\n ONE_COLUMN_MID_FULL_SCREEN,\n ONE_COLUMN_START_FULL_SCREEN,\n ScreenSize,\n SM_SCREEN_SIZE,\n THREE_COLUMNS_END_EXPANDED,\n THREE_COLUMNS_END_MINIMIZED,\n THREE_COLUMNS_MID_EXPANDED,\n THREE_COLUMNS_START_MINIMIZED,\n TWO_COLUMNS_END_EXPANDED,\n TWO_COLUMNS_MID_EXPANDED,\n TWO_COLUMNS_START_EXPANDED\n} from './constants';\n\n@Component({\n selector: 'fd-flexible-column-layout',\n templateUrl: './flexible-column-layout.component.html',\n styleUrls: ['./flexible-column-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class FlexibleColumnLayoutComponent implements AfterViewInit, OnChanges, OnDestroy, OnInit {\n /**\n * The template that provides the content of the first/start/left column\n */\n @ContentChild('startColumn')\n startColumn: TemplateRef<any>;\n\n /**\n * The template that provides the content of the middle column\n */\n @ContentChild('midColumn')\n midColumn: TemplateRef<any>;\n\n /**\n * The template that provides the content of the last/end/right column\n */\n @ContentChild('endColumn')\n endColumn: TemplateRef<any>;\n\n /**\n * The background design of the component\n * Options include: 'solid' | 'translucent' | 'transparent'\n * The default is set to 'solid'\n */\n @Input()\n backgroundDesign: 'solid' | 'translucent' | 'transparent' = 'solid';\n\n /**\n * The layout of the component\n * Options include: 'OneColumnStartFullScreen' | 'OneColumnMidFullScreen' |\n * 'OneColumnEndFullScreen' | 'TwoColumnsStartExpanded' | 'TwoColumnsMidExpanded' |\n * 'TwoColumnsEndExpanded' | 'ThreeColumnsMidExpanded' | 'ThreeColumnsEndExpanded' |\n * 'ThreeColumnsStartMinimized' | 'ThreeColumnsEndMinimized'\n */\n @Input()\n layout: FlexibleColumnLayout = ONE_COLUMN_START_FULL_SCREEN;\n\n /**\n * Mapping of the layout name and the column layout in %\n */\n @Input()\n layoutDefinitions: FlexibleColumnLayoutDefinition = this._config.layouts;\n\n /**\n * The event emitted on layout value change.\n */\n @Output()\n layoutChange: EventEmitter<FlexibleColumnLayout> = new EventEmitter<FlexibleColumnLayout>();\n\n /**\n * User defined break point for SM screens\n * Default (Fiori 3) value is 960\n */\n @Input()\n smBreakPoint = 960;\n\n /**\n * User-defined break point for LG screens\n * the default (Fiori 3) value is 1280\n */\n @Input()\n lgBreakPoint = 1280;\n\n /**\n * User-defined onResize function\n */\n @Input()\n customOnResizeFunction: () => void;\n\n /**\n * @hidden\n * left column separator value (between start and middle columns)\n * that specifies the direction of the arrow and\n * if the separator is visible\n * Options include: 'left', 'right' and null\n */\n _leftColumnSeparator: ColumnSeparatorValue = null;\n\n /**\n * @hidden\n * right column separator value (between middle and end columns)\n * that specifies the direction of the arrow and\n * if the separator is visible\n * Options include: 'left', 'right' and null\n */\n _rightColumnSeparator: ColumnSeparatorValue = null;\n\n /**\n * @hidden\n * allows to keep track of the previos layout\n * so we can go back to it on window resize\n */\n private _previousLayout: FlexibleColumnLayout = this.layout;\n\n /** @hidden */\n private _screenSize: ScreenSize = LG_SCREEN_SIZE;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /**\n * @hidden\n * the column layout representing the distribution of the width\n * between the first (start), the middle and the last(end) column\n */\n _columnLayout: { start: number; mid: number; end: number } = this.layoutDefinitions[this.layout];\n\n /**\n * @hidden\n * set to 'true' if the layout is changed to fullscreen on window resize\n * this will allow the layout to switch to previous mode on SM->MD transition\n * if a layout is set by the user to fullscreen, it should persist on window resize\n */\n private _responsiveFullscreenLayout = false;\n\n constructor(@Inject(FD_FLEXIBLE_LAYOUT_CONFIG) private readonly _config: FlexibleLayoutConfig) {}\n\n /**\n * @hidden\n * function that handles the click events on the left separator\n * and updates the layout\n */\n _handleLeftColumnSeparatorClick(): void {\n switch (this.layout) {\n case TWO_COLUMNS_START_EXPANDED:\n this._updateCurrentLayout(TWO_COLUMNS_MID_EXPANDED);\n break;\n case TWO_COLUMNS_MID_EXPANDED:\n this._updateCurrentLayout(TWO_COLUMNS_START_EXPANDED);\n break;\n case THREE_COLUMNS_MID_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_END_MINIMIZED);\n break;\n case THREE_COLUMNS_END_MINIMIZED:\n this._updateCurrentLayout(TWO_COLUMNS_START_EXPANDED);\n break;\n case THREE_COLUMNS_START_MINIMIZED:\n this._updateCurrentLayout(THREE_COLUMNS_END_MINIMIZED);\n break;\n }\n }\n\n /**\n * @hidden\n * function that handles the click events on the right separator\n * and updates the layout\n */\n _handleRightColumnSeparatorClick(): void {\n switch (this.layout) {\n case TWO_COLUMNS_END_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_START_MINIMIZED);\n break;\n case THREE_COLUMNS_MID_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_END_EXPANDED);\n break;\n case THREE_COLUMNS_END_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_MID_EXPANDED);\n break;\n case THREE_COLUMNS_END_MINIMIZED:\n this._updateCurrentLayout(THREE_COLUMNS_MID_EXPANDED);\n break;\n case THREE_COLUMNS_START_MINIMIZED:\n this._updateCurrentLayout(TWO_COLUMNS_END_EXPANDED);\n break;\n }\n }\n\n /**\n * @hidden\n * function to determine the screen size in 'sm' | 'md' | 'lg' | 'xl'\n * format depending on the window size in px\n */\n private _getScreenSize(size: number): ScreenSize {\n if (size > this.lgBreakPoint) {\n return LG_SCREEN_SIZE;\n } else if (size > this.smBreakPoint && size <= this.lgBreakPoint) {\n return MD_SCREEN_SIZE;\n } else {\n return SM_SCREEN_SIZE;\n }\n }\n\n /**\n * @hidden\n * handles the change of the layouts on reaching a break point\n */\n private _responsiveLayoutChangeHandler(): void {\n this._screenSize = this._getScreenSize(window.innerWidth);\n\n switch (this.layout) {\n case ONE_COLUMN_MID_FULL_SCREEN:\n case ONE_COLUMN_END_FULL_SCREEN: {\n if (\n this._screenSize !== SM_SCREEN_SIZE &&\n this.layout !== this._previousLayout &&\n this._responsiveFullscreenLayout\n ) {\n this._responsiveFullscreenLayout = false;\n this._updateCurrentLayout(this._previousLayout);\n }\n break;\n }\n\n case TWO_COLUMNS_START_EXPANDED:\n case TWO_COLUMNS_MID_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_MID_FULL_SCREEN);\n }\n break;\n }\n\n case TWO_COLUMNS_END_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === LG_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_END_EXPANDED);\n }\n break;\n }\n\n case THREE_COLUMNS_START_MINIMIZED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === LG_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_MID_EXPANDED);\n }\n break;\n }\n\n case THREE_COLUMNS_END_MINIMIZED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === LG_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_END_MINIMIZED);\n }\n break;\n }\n\n case THREE_COLUMNS_MID_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === MD_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_START_MINIMIZED);\n }\n break;\n }\n\n case THREE_COLUMNS_END_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === MD_SCREEN_SIZE) {\n this._updateCurrentLayout(TWO_COLUMNS_END_EXPANDED);\n }\n break;\n }\n }\n }\n\n /**\n * @hidden\n * Listen on window resize and update the layout\n * call user defined custom function if provided\n */\n private _listenOnWindowResize(): void {\n if (this.customOnResizeFunction) {\n this.customOnResizeFunction();\n } else {\n this._subscriptions.add(\n fromEvent(window, 'resize')\n .pipe(debounceTime(100))\n .subscribe(() => this._responsiveLayoutChangeHandler())\n );\n }\n }\n\n /**\n * @hidden\n * determines if the left separator should be visible\n * and the value that will specify the direction of the arrow\n */\n private _getLeftColumnSeparatorValue(): ColumnSeparatorValue {\n switch (this.layout) {\n case TWO_COLUMNS_START_EXPANDED:\n return 'left';\n case TWO_COLUMNS_MID_EXPANDED:\n case THREE_COLUMNS_MID_EXPANDED:\n case THREE_COLUMNS_END_MINIMIZED:\n case THREE_COLUMNS_START_MINIMIZED:\n return 'right';\n default:\n return null;\n }\n }\n\n /**\n * @hidden\n * determines if the right separator should be visible\n * and the value that will specify the direction of the arrow\n */\n private _getRightColumnSeparatorValue(): ColumnSeparatorValue {\n switch (this.layout) {\n case TWO_COLUMNS_END_EXPANDED:\n case THREE_COLUMNS_END_EXPANDED:\n return 'right';\n case THREE_COLUMNS_MID_EXPANDED:\n case THREE_COLUMNS_END_MINIMIZED:\n case THREE_COLUMNS_START_MINIMIZED:\n return 'left';\n default:\n return null;\n }\n }\n\n /**\n * @hidden\n * updates the column layout based on the layout name\n * makes a call to determine the new value of the left separator\n * makes a call to determine the new value of the right separator\n */\n private _updateColumnLayoutParameters(): void {\n this._columnLayout = this.layoutDefinitions[this.layout];\n this._leftColumnSeparator = this._getLeftColumnSeparatorValue();\n this._rightColumnSeparator = this._getRightColumnSeparatorValue();\n }\n\n /**\n * @hidden\n * updates the layout\n * emits an event\n * makes a call to the helper function that will update the column layout and the separators\n */\n private _updateCurrentLayout(newLayout: FlexibleColumnLayout): void {\n this.layout = newLayout;\n this._updateColumnLayoutParameters();\n\n // setTimeout fixes \"ExpressionChangedAfterItHasBeenCheckedError\"\n setTimeout(() => {\n this.layoutChange.emit(this.layout);\n });\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._updateColumnLayoutParameters();\n this._previousLayout = this.layout;\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._screenSize = this._getScreenSize(window.innerWidth);\n this._listenOnWindowResize();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n this._updateColumnLayoutParameters();\n\n if (changes && changes.layout.previousValue) {\n this._previousLayout = changes.layout.previousValue;\n }\n\n if (changes && changes.layout) {\n this._responsiveLayoutChangeHandler();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n}\n","<div\n class=\"fd-flexible-column-layout\"\n [class.fd-flexible-column-layout--translucent]=\"backgroundDesign === 'translucent'\"\n [class.fd-flexible-column-layout--transparent]=\"backgroundDesign === 'transparent'\"\n>\n <!-- Start/Left/First Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.start\"\n [style.visibility]=\"_columnLayout.start === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.start === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.start === 0\"\n >\n <ng-container *ngTemplateOutlet=\"startColumn\"></ng-container>\n </div>\n <!-- Left Separator -->\n <div *ngIf=\"_leftColumnSeparator\" class=\"fd-flexible-column-layout__separator\">\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n ariaLabel=\"Expand\"\n (click)=\"_handleLeftColumnSeparatorClick()\"\n >\n <i\n [class]=\"_leftColumnSeparator ? 'sap-icon--slim-arrow-' + _leftColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- Middle/Second Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.mid\"\n [style.visibility]=\"_columnLayout.mid === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.mid === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.mid === 0\"\n >\n <ng-container *ngTemplateOutlet=\"midColumn\"></ng-container>\n </div>\n <!-- Right Separator -->\n <div *ngIf=\"_rightColumnSeparator\" class=\"fd-flexible-column-layout__separator\">\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n ariaLabel=\"Expand\"\n (click)=\"_handleRightColumnSeparatorClick()\"\n >\n <i\n [class]=\"_rightColumnSeparator ? 'sap-icon--slim-arrow-' + _rightColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- End/Right/Third Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.end\"\n [style.visibility]=\"_columnLayout.end === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.end === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.end === 0\"\n >\n <ng-container *ngTemplateOutlet=\"endColumn\"></ng-container>\n </div>\n</div>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { DEFAULT_FLEXIBLE_LAYOUT_CONFIG, FD_FLEXIBLE_LAYOUT_CONFIG, FlexibleLayoutConfig } from './constants';\nimport { FlexibleColumnLayoutComponent } from './flexible-column-layout.component';\n\n/**\n * Adds Flexible Column Layout functionality to your application.\n *\n * Can be imported in two ways:\n * * Plain `FlexibleColumnLayoutModule` with default configuration\n * * With `withConfig()` method which allows passing custom default configuration.\n */\n@NgModule({\n declarations: [FlexibleColumnLayoutComponent],\n imports: [CommonModule, ButtonModule],\n exports: [FlexibleColumnLayoutComponent],\n providers: [\n {\n provide: FD_FLEXIBLE_LAYOUT_CONFIG,\n useValue: DEFAULT_FLEXIBLE_LAYOUT_CONFIG\n }\n ]\n})\nexport class FlexibleColumnLayoutModule {\n /**\n * Allows configuring module on a global level with custom configuration.\n * @param config User's custom configuration.\n */\n static withConfig(config: Partial<FlexibleLayoutConfig>): ModuleWithProviders<FlexibleColumnLayoutModule> {\n config = merge(cloneDeep(DEFAULT_FLEXIBLE_LAYOUT_CONFIG), cloneDeep(config));\n return {\n ngModule: FlexibleColumnLayoutModule,\n providers: [\n {\n provide: FD_FLEXIBLE_LAYOUT_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\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-flexible-column-layout.mjs","sources":["../../../../libs/core/src/lib/flexible-column-layout/constants.ts","../../../../libs/core/src/lib/flexible-column-layout/flexible-column-layout.component.ts","../../../../libs/core/src/lib/flexible-column-layout/flexible-column-layout.component.html","../../../../libs/core/src/lib/flexible-column-layout/flexible-column-layout.module.ts","../../../../libs/core/src/lib/flexible-column-layout/fundamental-ngx-core-flexible-column-layout.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const ONE_COLUMN_START_FULL_SCREEN = 'OneColumnStartFullScreen';\nexport const ONE_COLUMN_MID_FULL_SCREEN = 'OneColumnMidFullScreen';\nexport const ONE_COLUMN_END_FULL_SCREEN = 'OneColumnEndFullScreen';\nexport const TWO_COLUMNS_START_EXPANDED = 'TwoColumnsStartExpanded';\nexport const TWO_COLUMNS_MID_EXPANDED = 'TwoColumnsMidExpanded';\nexport const TWO_COLUMNS_END_EXPANDED = 'TwoColumnsEndExpanded';\nexport const THREE_COLUMNS_MID_EXPANDED = 'ThreeColumnsMidExpanded';\nexport const THREE_COLUMNS_END_EXPANDED = 'ThreeColumnsEndExpanded';\nexport const THREE_COLUMNS_START_MINIMIZED = 'ThreeColumnsStartMinimized';\nexport const THREE_COLUMNS_END_MINIMIZED = 'ThreeColumnsEndMinimized';\n\nexport const SM_SCREEN_SIZE = 'sm';\nexport const MD_SCREEN_SIZE = 'md';\nexport const LG_SCREEN_SIZE = 'lg';\n\nexport type ScreenSize = 'sm' | 'md' | 'lg';\n\nexport type FlexibleColumnLayout =\n | 'OneColumnStartFullScreen'\n | 'OneColumnMidFullScreen'\n | 'OneColumnEndFullScreen'\n | 'TwoColumnsStartExpanded'\n | 'TwoColumnsMidExpanded'\n | 'TwoColumnsEndExpanded'\n | 'ThreeColumnsMidExpanded'\n | 'ThreeColumnsEndExpanded'\n | 'ThreeColumnsStartMinimized'\n | 'ThreeColumnsEndMinimized';\n\nexport type ColumnSeparatorValue = 'right' | 'left' | null;\n\nexport interface FlexibleColumnSettings {\n start: number;\n mid: number;\n end: number;\n}\n\nexport type FlexibleColumnLayoutDefinition = { [key in FlexibleColumnLayout]: FlexibleColumnSettings };\n\nexport interface FlexibleLayoutConfig {\n layouts: FlexibleColumnLayoutDefinition;\n}\n\nexport const DEFAULT_FLEXIBLE_LAYOUT_CONFIG: FlexibleLayoutConfig = {\n layouts: {\n OneColumnStartFullScreen: { start: 100, mid: 0, end: 0 },\n OneColumnMidFullScreen: { start: 0, mid: 100, end: 0 },\n OneColumnEndFullScreen: { start: 0, mid: 0, end: 100 },\n TwoColumnsStartExpanded: { start: 67, mid: 33, end: 0 },\n TwoColumnsMidExpanded: { start: 33, mid: 67, end: 0 },\n TwoColumnsEndExpanded: { start: 0, mid: 33, end: 67 },\n ThreeColumnsMidExpanded: { start: 25, mid: 50, end: 25 },\n ThreeColumnsEndExpanded: { start: 25, mid: 25, end: 50 },\n ThreeColumnsStartMinimized: { start: 0, mid: 67, end: 33 },\n ThreeColumnsEndMinimized: { start: 33, mid: 67, end: 0 }\n }\n};\n\nexport const FD_FLEXIBLE_LAYOUT_CONFIG = new InjectionToken<FlexibleLayoutConfig>('FdFlexibleLayoutConfig');\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport {\n ColumnSeparatorValue,\n FD_FLEXIBLE_LAYOUT_CONFIG,\n FlexibleLayoutConfig,\n FlexibleColumnLayout,\n FlexibleColumnLayoutDefinition,\n LG_SCREEN_SIZE,\n MD_SCREEN_SIZE,\n ONE_COLUMN_END_FULL_SCREEN,\n ONE_COLUMN_MID_FULL_SCREEN,\n ONE_COLUMN_START_FULL_SCREEN,\n ScreenSize,\n SM_SCREEN_SIZE,\n THREE_COLUMNS_END_EXPANDED,\n THREE_COLUMNS_END_MINIMIZED,\n THREE_COLUMNS_MID_EXPANDED,\n THREE_COLUMNS_START_MINIMIZED,\n TWO_COLUMNS_END_EXPANDED,\n TWO_COLUMNS_MID_EXPANDED,\n TWO_COLUMNS_START_EXPANDED\n} from './constants';\n\n@Component({\n selector: 'fd-flexible-column-layout',\n templateUrl: './flexible-column-layout.component.html',\n styleUrls: ['./flexible-column-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class FlexibleColumnLayoutComponent implements AfterViewInit, OnChanges, OnDestroy, OnInit {\n /**\n * The template that provides the content of the first/start/left column\n */\n @ContentChild('startColumn')\n startColumn: TemplateRef<any>;\n\n /**\n * The template that provides the content of the middle column\n */\n @ContentChild('midColumn')\n midColumn: TemplateRef<any>;\n\n /**\n * The template that provides the content of the last/end/right column\n */\n @ContentChild('endColumn')\n endColumn: TemplateRef<any>;\n\n /**\n * The background design of the component\n * Options include: 'solid' | 'translucent' | 'transparent'\n * The default is set to 'solid'\n */\n @Input()\n backgroundDesign: 'solid' | 'translucent' | 'transparent' = 'solid';\n\n /**\n * The layout of the component\n * Options include: 'OneColumnStartFullScreen' | 'OneColumnMidFullScreen' |\n * 'OneColumnEndFullScreen' | 'TwoColumnsStartExpanded' | 'TwoColumnsMidExpanded' |\n * 'TwoColumnsEndExpanded' | 'ThreeColumnsMidExpanded' | 'ThreeColumnsEndExpanded' |\n * 'ThreeColumnsStartMinimized' | 'ThreeColumnsEndMinimized'\n */\n @Input()\n layout: FlexibleColumnLayout = ONE_COLUMN_START_FULL_SCREEN;\n\n /**\n * Mapping of the layout name and the column layout in %\n */\n @Input()\n layoutDefinitions: FlexibleColumnLayoutDefinition = this._config.layouts;\n\n /**\n * The event emitted on layout value change.\n */\n @Output()\n layoutChange: EventEmitter<FlexibleColumnLayout> = new EventEmitter<FlexibleColumnLayout>();\n\n /**\n * User defined break point for SM screens\n * Default (Fiori 3) value is 960\n */\n @Input()\n smBreakPoint = 960;\n\n /**\n * User-defined break point for LG screens\n * the default (Fiori 3) value is 1280\n */\n @Input()\n lgBreakPoint = 1280;\n\n /**\n * User-defined onResize function\n */\n @Input()\n customOnResizeFunction: () => void;\n\n /** aria-label for separator */\n @Input()\n separatorAriaLabel: string;\n\n /** title for expanded button */\n @Input()\n expandTitle: string;\n\n /** title for collapsed button */\n @Input()\n collapseTitle: string;\n\n /**\n * @hidden\n * left column separator value (between start and middle columns)\n * that specifies the direction of the arrow and\n * if the separator is visible\n * Options include: 'left', 'right' and null\n */\n _leftColumnSeparator: ColumnSeparatorValue = null;\n\n /**\n * @hidden\n * right column separator value (between middle and end columns)\n * that specifies the direction of the arrow and\n * if the separator is visible\n * Options include: 'left', 'right' and null\n */\n _rightColumnSeparator: ColumnSeparatorValue = null;\n\n /**\n * @hidden\n * allows to keep track of the previos layout\n * so we can go back to it on window resize\n */\n private _previousLayout: FlexibleColumnLayout = this.layout;\n\n /** @hidden */\n private _screenSize: ScreenSize = LG_SCREEN_SIZE;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /**\n * @hidden\n * the column layout representing the distribution of the width\n * between the first (start), the middle and the last(end) column\n */\n _columnLayout: { start: number; mid: number; end: number } = this.layoutDefinitions[this.layout];\n\n /**\n * @hidden\n * set to 'true' if the layout is changed to fullscreen on window resize\n * this will allow the layout to switch to previous mode on SM->MD transition\n * if a layout is set by the user to fullscreen, it should persist on window resize\n */\n private _responsiveFullscreenLayout = false;\n\n constructor(@Inject(FD_FLEXIBLE_LAYOUT_CONFIG) private readonly _config: FlexibleLayoutConfig) {}\n\n /**\n * @hidden\n * function that handles the click events on the left separator\n * and updates the layout\n */\n _handleLeftColumnSeparatorClick(): void {\n switch (this.layout) {\n case TWO_COLUMNS_START_EXPANDED:\n this._updateCurrentLayout(TWO_COLUMNS_MID_EXPANDED);\n break;\n case TWO_COLUMNS_MID_EXPANDED:\n this._updateCurrentLayout(TWO_COLUMNS_START_EXPANDED);\n break;\n case THREE_COLUMNS_MID_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_END_MINIMIZED);\n break;\n case THREE_COLUMNS_END_MINIMIZED:\n this._updateCurrentLayout(TWO_COLUMNS_START_EXPANDED);\n break;\n case THREE_COLUMNS_START_MINIMIZED:\n this._updateCurrentLayout(THREE_COLUMNS_END_MINIMIZED);\n break;\n }\n }\n\n /**\n * @hidden\n * function that handles the click events on the right separator\n * and updates the layout\n */\n _handleRightColumnSeparatorClick(): void {\n switch (this.layout) {\n case TWO_COLUMNS_END_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_START_MINIMIZED);\n break;\n case THREE_COLUMNS_MID_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_END_EXPANDED);\n break;\n case THREE_COLUMNS_END_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_MID_EXPANDED);\n break;\n case THREE_COLUMNS_END_MINIMIZED:\n this._updateCurrentLayout(THREE_COLUMNS_MID_EXPANDED);\n break;\n case THREE_COLUMNS_START_MINIMIZED:\n this._updateCurrentLayout(TWO_COLUMNS_END_EXPANDED);\n break;\n }\n }\n\n /**\n * @hidden\n * function to determine the screen size in 'sm' | 'md' | 'lg' | 'xl'\n * format depending on the window size in px\n */\n private _getScreenSize(size: number): ScreenSize {\n if (size > this.lgBreakPoint) {\n return LG_SCREEN_SIZE;\n } else if (size > this.smBreakPoint && size <= this.lgBreakPoint) {\n return MD_SCREEN_SIZE;\n } else {\n return SM_SCREEN_SIZE;\n }\n }\n\n /**\n * @hidden\n * handles the change of the layouts on reaching a break point\n */\n private _responsiveLayoutChangeHandler(): void {\n this._screenSize = this._getScreenSize(window.innerWidth);\n\n switch (this.layout) {\n case ONE_COLUMN_MID_FULL_SCREEN:\n case ONE_COLUMN_END_FULL_SCREEN: {\n if (\n this._screenSize !== SM_SCREEN_SIZE &&\n this.layout !== this._previousLayout &&\n this._responsiveFullscreenLayout\n ) {\n this._responsiveFullscreenLayout = false;\n this._updateCurrentLayout(this._previousLayout);\n }\n break;\n }\n\n case TWO_COLUMNS_START_EXPANDED:\n case TWO_COLUMNS_MID_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_MID_FULL_SCREEN);\n }\n break;\n }\n\n case TWO_COLUMNS_END_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === LG_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_END_EXPANDED);\n }\n break;\n }\n\n case THREE_COLUMNS_START_MINIMIZED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === LG_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_MID_EXPANDED);\n }\n break;\n }\n\n case THREE_COLUMNS_END_MINIMIZED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === LG_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_END_MINIMIZED);\n }\n break;\n }\n\n case THREE_COLUMNS_MID_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === MD_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_START_MINIMIZED);\n }\n break;\n }\n\n case THREE_COLUMNS_END_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === MD_SCREEN_SIZE) {\n this._updateCurrentLayout(TWO_COLUMNS_END_EXPANDED);\n }\n break;\n }\n }\n }\n\n /**\n * @hidden\n * Listen on window resize and update the layout\n * call user defined custom function if provided\n */\n private _listenOnWindowResize(): void {\n if (this.customOnResizeFunction) {\n this.customOnResizeFunction();\n } else {\n this._subscriptions.add(\n fromEvent(window, 'resize')\n .pipe(debounceTime(100))\n .subscribe(() => this._responsiveLayoutChangeHandler())\n );\n }\n }\n\n /**\n * @hidden\n * determines if the left separator should be visible\n * and the value that will specify the direction of the arrow\n */\n private _getLeftColumnSeparatorValue(): ColumnSeparatorValue {\n switch (this.layout) {\n case TWO_COLUMNS_START_EXPANDED:\n return 'left';\n case TWO_COLUMNS_MID_EXPANDED:\n case THREE_COLUMNS_MID_EXPANDED:\n case THREE_COLUMNS_END_MINIMIZED:\n case THREE_COLUMNS_START_MINIMIZED:\n return 'right';\n default:\n return null;\n }\n }\n\n /**\n * @hidden\n * determines if the right separator should be visible\n * and the value that will specify the direction of the arrow\n */\n private _getRightColumnSeparatorValue(): ColumnSeparatorValue {\n switch (this.layout) {\n case TWO_COLUMNS_END_EXPANDED:\n case THREE_COLUMNS_END_EXPANDED:\n return 'right';\n case THREE_COLUMNS_MID_EXPANDED:\n case THREE_COLUMNS_END_MINIMIZED:\n case THREE_COLUMNS_START_MINIMIZED:\n return 'left';\n default:\n return null;\n }\n }\n\n /**\n * @hidden\n * updates the column layout based on the layout name\n * makes a call to determine the new value of the left separator\n * makes a call to determine the new value of the right separator\n */\n private _updateColumnLayoutParameters(): void {\n this._columnLayout = this.layoutDefinitions[this.layout];\n this._leftColumnSeparator = this._getLeftColumnSeparatorValue();\n this._rightColumnSeparator = this._getRightColumnSeparatorValue();\n }\n\n /**\n * @hidden\n * updates the layout\n * emits an event\n * makes a call to the helper function that will update the column layout and the separators\n */\n private _updateCurrentLayout(newLayout: FlexibleColumnLayout): void {\n this.layout = newLayout;\n this._updateColumnLayoutParameters();\n\n // setTimeout fixes \"ExpressionChangedAfterItHasBeenCheckedError\"\n setTimeout(() => {\n this.layoutChange.emit(this.layout);\n });\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._updateColumnLayoutParameters();\n this._previousLayout = this.layout;\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._screenSize = this._getScreenSize(window.innerWidth);\n this._listenOnWindowResize();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n this._updateColumnLayoutParameters();\n\n if (changes && changes.layout.previousValue) {\n this._previousLayout = changes.layout.previousValue;\n }\n\n if (changes && changes.layout) {\n this._responsiveLayoutChangeHandler();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n}\n","<div\n class=\"fd-flexible-column-layout\"\n [class.fd-flexible-column-layout--translucent]=\"backgroundDesign === 'translucent'\"\n [class.fd-flexible-column-layout--transparent]=\"backgroundDesign === 'transparent'\"\n>\n <!-- Start/Left/First Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.start\"\n [style.visibility]=\"_columnLayout.start === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.start === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.start === 0\"\n >\n <ng-container *ngTemplateOutlet=\"startColumn\"></ng-container>\n </div>\n <!-- Left Separator -->\n <div\n *ngIf=\"_leftColumnSeparator\"\n class=\"fd-flexible-column-layout__separator\"\n [attr.aria-label]=\"separatorAriaLabel\"\n >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_leftColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n (click)=\"_handleLeftColumnSeparatorClick()\"\n >\n <i\n [class]=\"_leftColumnSeparator ? 'sap-icon--slim-arrow-' + _leftColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- Middle/Second Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.mid\"\n [style.visibility]=\"_columnLayout.mid === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.mid === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.mid === 0\"\n >\n <ng-container *ngTemplateOutlet=\"midColumn\"></ng-container>\n </div>\n <!-- Right Separator -->\n <div\n *ngIf=\"_rightColumnSeparator\"\n class=\"fd-flexible-column-layout__separator\"\n [attr.aria-label]=\"separatorAriaLabel\"\n >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_rightColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n (click)=\"_handleRightColumnSeparatorClick()\"\n >\n <i\n [class]=\"_rightColumnSeparator ? 'sap-icon--slim-arrow-' + _rightColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- End/Right/Third Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.end\"\n [style.visibility]=\"_columnLayout.end === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.end === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.end === 0\"\n >\n <ng-container *ngTemplateOutlet=\"endColumn\"></ng-container>\n </div>\n</div>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { DEFAULT_FLEXIBLE_LAYOUT_CONFIG, FD_FLEXIBLE_LAYOUT_CONFIG, FlexibleLayoutConfig } from './constants';\nimport { FlexibleColumnLayoutComponent } from './flexible-column-layout.component';\n\n/**\n * Adds Flexible Column Layout functionality to your application.\n *\n * Can be imported in two ways:\n * * Plain `FlexibleColumnLayoutModule` with default configuration\n * * With `withConfig()` method which allows passing custom default configuration.\n */\n@NgModule({\n declarations: [FlexibleColumnLayoutComponent],\n imports: [CommonModule, ButtonModule],\n exports: [FlexibleColumnLayoutComponent],\n providers: [\n {\n provide: FD_FLEXIBLE_LAYOUT_CONFIG,\n useValue: DEFAULT_FLEXIBLE_LAYOUT_CONFIG\n }\n ]\n})\nexport class FlexibleColumnLayoutModule {\n /**\n * Allows configuring module on a global level with custom configuration.\n * @param config User's custom configuration.\n */\n static withConfig(config: Partial<FlexibleLayoutConfig>): ModuleWithProviders<FlexibleColumnLayoutModule> {\n config = merge(cloneDeep(DEFAULT_FLEXIBLE_LAYOUT_CONFIG), cloneDeep(config));\n return {\n ngModule: FlexibleColumnLayoutModule,\n providers: [\n {\n provide: FD_FLEXIBLE_LAYOUT_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -76,6 +76,7 @@ class TableComponent {
|
|
|
76
76
|
_onCellKeydown(event, cell) {
|
|
77
77
|
const cellElement = cell.elementRef.nativeElement;
|
|
78
78
|
if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {
|
|
79
|
+
event.preventDefault();
|
|
79
80
|
const data = cell.getCellPosition();
|
|
80
81
|
if (!data) {
|
|
81
82
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-table.mjs","sources":["../../../../libs/core/src/lib/table/fd-table.interface.ts","../../../../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/deprecated-table-compact.directive.ts","../../../../libs/core/src/lib/table/deprecated-table-condensed.directive.ts","../../../../libs/core/src/lib/table/table.module.ts","../../../../libs/core/src/lib/table/fundamental-ngx-core-table.ts"],"sourcesContent":["import { TableCellDirective } from './directives/table-cell.directive';\n\n/** @hidden */\nexport abstract class FdTable {\n abstract _onCellKeydown(event: KeyboardEvent, cell: TableCellDirective): void;\n abstract allCellsFocusable: boolean;\n}\n","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 { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n ViewEncapsulation\n} from '@angular/core';\nimport { KeyUtil } from '@fundamental-ngx/core/utils';\nimport { Subscription } from 'rxjs';\nimport { Nullable } from '@fundamental-ngx/core/shared';\nimport { TableCellDirective } from './directives/table-cell.directive';\nimport { FdTable } from './fd-table.interface';\nimport { TableService } from './table.service';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\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: [\n TableService,\n { provide: FdTable, useExisting: TableComponent },\n contentDensityObserverProviders({\n modifiers: {\n [ContentDensityMode.COMPACT]: 'fd-table--compact',\n [ContentDensityMode.CONDENSED]: 'fd-table--condensed'\n },\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.CONDENSED, ContentDensityMode.COZY]\n })\n ]\n})\nexport class TableComponent implements AfterViewInit, OnDestroy, FdTable {\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 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 /** Applies `focusable` to all cells within this table */\n @Input()\n allCellsFocusable = false;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n constructor(\n private _tableService: TableService,\n private _cdr: ChangeDetectorRef,\n private _contentDensityObserver: ContentDensityObserver\n ) {\n _contentDensityObserver.subscribe();\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 /** @hidden being triggered by TableCellDirective whenever it's clicked */\n _onCellKeydown(event: KeyboardEvent, cell: TableCellDirective): void {\n const cellElement = cell.elementRef.nativeElement;\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {\n const data = cell.getCellPosition();\n if (!data) {\n return;\n }\n const dir = KeyUtil.isKeyCode(event, DOWN_ARROW) ? 1 : -1;\n // if navigating up&down through the rows, attempt to focus the cell in the next row within the same section (e.g. within body)\n const focused = this._focusCellInTableSection(data?.origin, data.row + dir, data?.col);\n if (!focused) {\n // if cannot find the next row, attempt to jump to another section (e.g. to the header or footer, depending on the direction)\n if (dir === 1) {\n this._focusCellInTableSection(data.origin.nextElementSibling, 0, data.col);\n } else {\n const prev = data.origin.previousElementSibling;\n prev && this._focusCellInTableSection(prev, prev.children.length - 1, data.col);\n }\n }\n } else if (KeyUtil.isKeyCode(event, LEFT_ARROW)) {\n const prev = cellElement.previousElementSibling;\n prev instanceof HTMLTableCellElement && prev.focus();\n } else if (KeyUtil.isKeyCode(event, RIGHT_ARROW)) {\n const next = cellElement.nextElementSibling;\n next instanceof HTMLTableCellElement && next.focus();\n }\n }\n\n /** @hidden */\n private _focusCellInTableSection(tableSectionElement: Nullable<Element>, row: number, col: number): boolean {\n const targetRow = tableSectionElement?.children.item(row);\n const targetCell = targetRow?.children.item(col);\n if (targetCell instanceof HTMLTableCellElement) {\n targetCell.focus();\n return true;\n } else {\n // if couldn't find the next cell, but the actual row exists, still treat the operation as success\n return !!targetRow;\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 { LiveAnnouncer } from '@angular/cdk/a11y';\nimport {\n AfterContentInit,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n QueryList,\n ContentChildren,\n forwardRef,\n OnDestroy,\n Optional\n} from '@angular/core';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\nimport { Nullable } from '@fundamental-ngx/core/shared';\nimport { NumberInput } from '@angular/cdk/coercion';\nimport { FdTable } from '../fd-table.interface';\n\n@Directive({\n selector: '[fdTableCell], [fd-table-cell]'\n})\nexport class TableCellDirective implements AfterContentInit, OnDestroy {\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 set focusable(value: Nullable<boolean>) {\n this._focusable = value;\n }\n\n get focusable(): Nullable<boolean> {\n return this._focusable ?? this._table?.allCellsFocusable;\n }\n\n /** @hidden */\n private _focusable: Nullable<boolean>;\n\n /** Tabindex attribute for the cell */\n @HostBinding('attr.tabindex')\n @Input()\n set tabindex(value: Nullable<NumberInput>) {\n this._tabindex = value;\n }\n\n get tabindex(): Nullable<NumberInput> {\n return this._tabindex ?? (this.focusable ? 0 : null);\n }\n\n /** @hidden */\n private _tabindex: Nullable<NumberInput>;\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 /** Function, that creates a string to be announced by screenreader whenever cell receives focus */\n @Input()\n cellFocusedEventAnnouncer: (data: TableCellPosition) => string = this._defaultCellFocusedEventAnnouncer;\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 /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n constructor(\n public readonly elementRef: ElementRef<HTMLElement>,\n private readonly _liveAnnouncer: LiveAnnouncer,\n @Optional() private readonly _table?: FdTable\n ) {}\n\n ngOnDestroy(): void {\n this._onDestroy$.next();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n const cell = this.elementRef.nativeElement;\n\n if (this._checkboxes && this._checkboxes.length) {\n cell.classList.add('fd-table__cell--checkbox');\n }\n\n if (this.noData) {\n cell.setAttribute('colspan', '100%');\n }\n\n fromEvent(cell, 'focusin')\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(() => {\n const data = this.getCellPosition();\n\n if (!data) {\n return;\n }\n\n this._liveAnnouncer.clear();\n this._liveAnnouncer.announce(this.cellFocusedEventAnnouncer(data));\n });\n\n fromEvent<KeyboardEvent>(cell, 'keydown')\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((event) => this._table?._onCellKeydown(event, this));\n }\n\n /** Returns row and col indexes for the cell */\n getCellPosition(): TableCellPosition | undefined {\n const parentRow = this.elementRef.nativeElement.parentElement;\n if (!(parentRow instanceof HTMLTableRowElement)) {\n return;\n }\n const section = parentRow.parentElement;\n if (!(section instanceof HTMLTableSectionElement)) {\n return;\n }\n const rows = section.children;\n const cols = parentRow.children;\n\n const row = [...(rows as any as Element[])].indexOf(parentRow);\n const col = [...(cols as any as Element[])].indexOf(this.elementRef.nativeElement);\n return {\n row,\n col,\n totalRows: rows.length,\n totalCols: cols.length,\n origin: section\n };\n }\n\n /** @hidden */\n private _defaultCellFocusedEventAnnouncer(data: TableCellPosition): string {\n return `Column ${data.col + 1} of ${data.totalCols}, row: ${data.row + 1} of ${data.totalRows}`;\n }\n}\n\nexport interface TableCellPosition {\n row: number;\n col: number;\n totalRows: number;\n totalCols: number;\n origin: HTMLTableSectionElement;\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';\nimport { startWith } from 'rxjs/operators';\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 this._setupCellsSubscription();\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 private _setupCellsSubscription(): void {\n this.cells.changes.pipe(startWith(null)).subscribe(() => {\n this.cells.forEach((cell, index) => {\n cell.elementRef.nativeElement.ariaColIndex = index.toString();\n });\n });\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\nimport { Nullable } from '@fundamental-ngx/core/shared';\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: Nullable<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 { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\nimport { Directive, forwardRef } from '@angular/core';\n\n@Directive({\n selector: 'table[fd-table][compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedTableCompactDirective)\n }\n ]\n})\nexport class DeprecatedTableCompactDirective extends DeprecatedCompactDirective {\n constructor() {\n super('table[fd-table]');\n }\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCondensedDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n selector: 'table[fd-table][condensed]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedTableCondensedDirective)\n }\n ]\n})\nexport class DeprecatedTableCondensedDirective extends DeprecatedCondensedDirective {\n constructor() {\n super('table[fd-table]');\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';\nimport { DeprecatedTableCompactDirective } from './deprecated-table-compact.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { DeprecatedTableCondensedDirective } from './deprecated-table-condensed.directive';\n\n@NgModule({\n imports: [CommonModule, ContentDensityModule],\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 DeprecatedTableCompactDirective,\n DeprecatedTableCondensedDirective\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 DeprecatedTableCompactDirective,\n DeprecatedTableCondensedDirective,\n ContentDensityModule\n ],\n providers: [TableService]\n})\nexport class TableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.TableService","i2.FdTable"],"mappings":";;;;;;;;;;;;;AAEA;MACsB,OAAO,CAAA;AAG5B;;MCJY,YAAY,CAAA;AAAzB,IAAA,WAAA,GAAA;AACI,QAAA,IAAA,CAAA,cAAc,GAA8B,IAAI,eAAe,CAAW,EAAE,CAAC,CAAC;KAOjF;AALG,IAAA,UAAU,CAAC,IAAc,EAAA;AACrB,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACvC,SAAA;KACJ;AACJ;;ACaD;;;;;;AAMG;MAqBU,cAAc,CAAA;AAoCvB,IAAA,WAAA,CACY,aAA2B,EAC3B,IAAuB,EACvB,uBAA+C,EAAA;QAF/C,IAAa,CAAA,aAAA,GAAb,aAAa,CAAc;QAC3B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAmB;QACvB,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;;QApC3D,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;;QAKpB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAKlB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAKlB,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;;QAKd,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;;QAQnB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;;AAGlB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;QAOxC,uBAAuB,CAAC,SAAS,EAAE,CAAC;KACvC;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;KACrC;;IAGD,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClC;;AAGD,IAAA,KAAK,CAAC,IAAc,EAAA;AAChB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;KAC7B;;AAGO,IAAA,cAAc,CAAC,IAAc,EAAA;AACjC,QAAA,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC5C,SAAA;KACJ;;IAGD,cAAc,CAAC,KAAoB,EAAE,IAAwB,EAAA;AACzD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAClD,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,EAAE;AAClD,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO;AACV,aAAA;AACD,YAAA,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;;YAE1D,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACvF,IAAI,CAAC,OAAO,EAAE;;gBAEV,IAAI,GAAG,KAAK,CAAC,EAAE;AACX,oBAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9E,iBAAA;AAAM,qBAAA;AACH,oBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC;AAChD,oBAAA,IAAI,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACnF,iBAAA;AACJ,aAAA;AACJ,SAAA;aAAM,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;AAC7C,YAAA,MAAM,IAAI,GAAG,WAAW,CAAC,sBAAsB,CAAC;AAChD,YAAA,IAAI,YAAY,oBAAoB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACxD,SAAA;aAAM,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;AAC9C,YAAA,MAAM,IAAI,GAAG,WAAW,CAAC,kBAAkB,CAAC;AAC5C,YAAA,IAAI,YAAY,oBAAoB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACxD,SAAA;KACJ;;AAGO,IAAA,wBAAwB,CAAC,mBAAsC,EAAE,GAAW,EAAE,GAAW,EAAA;QAC7F,MAAM,SAAS,GAAG,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,UAAU,YAAY,oBAAoB,EAAE;YAC5C,UAAU,CAAC,KAAK,EAAE,CAAC;AACnB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAAM,aAAA;;YAEH,OAAO,CAAC,CAAC,SAAS,CAAC;AACtB,SAAA;KACJ;;2GA1GQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAZZ,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,uCAAA,EAAA,gBAAA,EAAA,qCAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,YAAA,EAAA,4BAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;QACP,YAAY;AACZ,QAAA,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE;AACjD,QAAA,+BAA+B,CAAC;AAC5B,YAAA,SAAS,EAAE;AACP,gBAAA,CAAC,kBAAkB,CAAC,OAAO,GAAG,mBAAmB;AACjD,gBAAA,CAAC,kBAAkB,CAAC,SAAS,GAAG,qBAAqB;AACxD,aAAA;AACD,YAAA,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC;SAC/G,CAAC;AACL,KAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAdS,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sn3GAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAgB5B,cAAc,EAAA,UAAA,EAAA,CAAA;kBApB1B,SAAS;AAEI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EACjB,QAAA,EAAA,UAAU,EACV,QAAA,EAAA,CAAA,yBAAA,CAA2B,EAEtB,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;wBACP,YAAY;AACZ,wBAAA,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,gBAAgB,EAAE;AACjD,wBAAA,+BAA+B,CAAC;AAC5B,4BAAA,SAAS,EAAE;AACP,gCAAA,CAAC,kBAAkB,CAAC,OAAO,GAAG,mBAAmB;AACjD,gCAAA,CAAC,kBAAkB,CAAC,SAAS,GAAG,qBAAqB;AACxD,6BAAA;AACD,4BAAA,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC;yBAC/G,CAAC;AACL,qBAAA,EAAA,MAAA,EAAA,CAAA,sn3GAAA,CAAA,EAAA,CAAA;qKAKD,YAAY,EAAA,CAAA;sBADX,WAAW;uBAAC,gBAAgB,CAAA;gBAM7B,SAAS,EAAA,CAAA;sBAFR,WAAW;uBAAC,uCAAuC,CAAA;;sBACnD,KAAK;gBAMN,SAAS,EAAA,CAAA;sBAFR,WAAW;uBAAC,qCAAqC,CAAA;;sBACjD,KAAK;gBAMN,KAAK,EAAA,CAAA;sBAFJ,WAAW;uBAAC,wBAAwB,CAAA;;sBACpC,KAAK;gBAMN,UAAU,EAAA,CAAA;sBAFT,WAAW;uBAAC,4BAA4B,CAAA;;sBACxC,KAAK;gBAKN,IAAI,EAAA,CAAA;sBADH,KAAK;gBAKN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;;;AC/EV;;;;;;;;;AASG;MAQU,+BAA+B,CAAA;;4HAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gHAA/B,+BAA+B,EAAA,QAAA,EAAA,+BAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAP3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,kBAAkB;AAC5B,qBAAA;AACJ,iBAAA,CAAA;;;MCZY,oBAAoB,CAAA;AAHjC,IAAA,WAAA,GAAA;;QAMI,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;;QAK1B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAKlB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AACrB,KAAA;;iHAdY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qGAApB,oBAAoB,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,+CAAA,EAAA,gBAAA,EAAA,6CAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oCAAoC;AACjD,iBAAA,CAAA;8BAIG,kBAAkB,EAAA,CAAA;sBADjB,WAAW;uBAAC,wBAAwB,CAAA;gBAMrC,SAAS,EAAA,CAAA;sBAFR,WAAW;uBAAC,+CAA+C,CAAA;;sBAC3D,KAAK;gBAMN,SAAS,EAAA,CAAA;sBAFR,WAAW;uBAAC,6CAA6C,CAAA;;sBACzD,KAAK;;;MCZG,kBAAkB,CAAA;AAH/B,IAAA,WAAA,GAAA;;QAMI,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;;QAKxB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAKlB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AACrB,KAAA;;+GAdY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,6CAAA,EAAA,gBAAA,EAAA,2CAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gCAAgC;AAC7C,iBAAA,CAAA;8BAIG,gBAAgB,EAAA,CAAA;sBADf,WAAW;uBAAC,sBAAsB,CAAA;gBAMnC,SAAS,EAAA,CAAA;sBAFR,WAAW;uBAAC,6CAA6C,CAAA;;sBACzD,KAAK;gBAMN,SAAS,EAAA,CAAA;sBAFR,WAAW;uBAAC,2CAA2C,CAAA;;sBACvD,KAAK;;;MCKG,kBAAkB,CAAA;AAmF3B,IAAA,WAAA,CACoB,UAAmC,EAClC,cAA6B,EACjB,MAAgB,EAAA;QAF7B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QAClC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;QACjB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAU;;QAlFjD,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAKlB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAKlB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAiClB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAKlB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;;QAKnB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAKlB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;AAQf,QAAA,IAAA,CAAA,yBAAyB,GAAwC,IAAI,CAAC,iCAAiC,CAAC;;QAQxG,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;;AAGR,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ,CAAC;KAM/C;;IAtEJ,IAEI,SAAS,CAAC,KAAwB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KAC3B;AAED,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC;KAC5D;;IAMD,IAEI,QAAQ,CAAC,KAA4B,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;AAED,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;KACxD;IAkDD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KAC3B;;IAGD,kBAAkB,GAAA;AACd,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAE3C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AAC7C,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAClD,SAAA;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACxC,SAAA;AAED,QAAA,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;AACrB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACjC,SAAS,CAAC,MAAK;AACZ,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAEpC,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO;AACV,aAAA;AAED,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;AACvE,SAAC,CAAC,CAAC;AAEP,QAAA,SAAS,CAAgB,IAAI,EAAE,SAAS,CAAC;AACpC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,aAAA,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;KACvE;;IAGD,eAAe,GAAA;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC;AAC9D,QAAA,IAAI,EAAE,SAAS,YAAY,mBAAmB,CAAC,EAAE;YAC7C,OAAO;AACV,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC;AACxC,QAAA,IAAI,EAAE,OAAO,YAAY,uBAAuB,CAAC,EAAE;YAC/C,OAAO;AACV,SAAA;AACD,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;AAC9B,QAAA,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC;QAEhC,MAAM,GAAG,GAAG,CAAC,GAAI,IAAyB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC/D,QAAA,MAAM,GAAG,GAAG,CAAC,GAAI,IAAyB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACnF,OAAO;YACH,GAAG;YACH,GAAG;YACH,SAAS,EAAE,IAAI,CAAC,MAAM;YACtB,SAAS,EAAE,IAAI,CAAC,MAAM;AACtB,YAAA,MAAM,EAAE,OAAO;SAClB,CAAC;KACL;;AAGO,IAAA,iCAAiC,CAAC,IAAuB,EAAA;QAC7D,OAAO,CAAA,OAAA,EAAU,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,SAAS,UAAU,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,CAAA,CAAE,CAAC;KACnG;;+GAtJQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,g9BAyEO,iBAAiB,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAzE1C,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gCAAgC;AAC7C,iBAAA,CAAA;;0BAuFQ,QAAQ;4CAlFb,SAAS,EAAA,CAAA;sBAFR,WAAW;uBAAC,4CAA4C,CAAA;;sBACxD,KAAK;gBAMN,SAAS,EAAA,CAAA;sBAFR,WAAW;uBAAC,0CAA0C,CAAA;;sBACtD,KAAK;gBAMN,SAAS,EAAA,CAAA;sBAFR,WAAW;uBAAC,iCAAiC,CAAA;;sBAC7C,KAAK;gBAMF,SAAS,EAAA,CAAA;sBAFZ,WAAW;uBAAC,iCAAiC,CAAA;;sBAC7C,KAAK;gBAeF,QAAQ,EAAA,CAAA;sBAFX,WAAW;uBAAC,eAAe,CAAA;;sBAC3B,KAAK;gBAeN,SAAS,EAAA,CAAA;sBAFR,WAAW;uBAAC,iCAAiC,CAAA;;sBAC7C,KAAK;gBAMN,UAAU,EAAA,CAAA;sBAFT,WAAW;uBAAC,mCAAmC,CAAA;;sBAC/C,KAAK;gBAMN,SAAS,EAAA,CAAA;sBAFR,WAAW;uBAAC,kCAAkC,CAAA;;sBAC9C,KAAK;gBAMN,MAAM,EAAA,CAAA;sBAFL,WAAW;uBAAC,+BAA+B,CAAA;;sBAC3C,KAAK;gBAKN,GAAG,EAAA,CAAA;sBADF,KAAK;gBAKN,yBAAyB,EAAA,CAAA;sBADxB,KAAK;gBAKN,WAAW,EAAA,CAAA;sBADV,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,iBAAiB,CAAC,CAAA;gBAKpD,iBAAiB,EAAA,CAAA;sBADhB,WAAW;uBAAC,sBAAsB,CAAA;;;AClFhC,MAAM,iBAAiB,GAAG,mBAAmB;MAKvC,iBAAiB,CAAA;;IAsC1B,WAAoB,CAAA,aAAgC,EAAU,aAA2B,EAAA;QAArE,IAAa,CAAA,aAAA,GAAb,aAAa,CAAmB;QAAU,IAAa,CAAA,aAAA,GAAb,aAAa,CAAc;;QA/BzF,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;;QAKvB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAKlB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAKlB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAKlB,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;;QAKb,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;KAM2E;;IAG7F,QAAQ,GAAA;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,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAClC;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,CAAC;KAChD;;AAGO,IAAA,WAAW,CAAC,IAAc,EAAA;QAC9B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAE7B,YAAA,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;AAEtF,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAE9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAE3B,YAAA,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;AACtC,SAAA;KACJ;;AAGO,IAAA,WAAW,CAAC,CAAqB,EAAE,CAAqB,EAAE,IAAc,EAAA;AAC5E,QAAA,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;AACb,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,CAAC,CAAC;AACZ,SAAA;KACJ;;IAGO,mBAAmB,GAAA;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KACpB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CACvF,CAAC;KACL;;AAGO,IAAA,iBAAiB,CAAC,IAAc,EAAA;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAChG,QAAA,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;AACF,QAAA,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC/C;;AAGO,IAAA,YAAY,CAAC,OAA2B,EAAA;QAC5C,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;KACrE;IAEO,uBAAuB,GAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACpD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;gBAC/B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AAClE,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;;8GA7GQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,uhBAET,kBAAkB,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAF1B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,8BAA8B;AAC3C,iBAAA,CAAA;gIAIG,KAAK,EAAA,CAAA;sBADJ,eAAe;uBAAC,kBAAkB,CAAA;gBAKnC,eAAe,EAAA,CAAA;sBADd,WAAW;uBAAC,qBAAqB,CAAA;gBAMlC,SAAS,EAAA,CAAA;sBAFR,WAAW;uBAAC,gCAAgC,CAAA;;sBAC5C,KAAK;gBAMN,SAAS,EAAA,CAAA;sBAFR,WAAW;uBAAC,gCAAgC,CAAA;;sBAC5C,KAAK;gBAMN,SAAS,EAAA,CAAA;sBAFR,WAAW;uBAAC,gCAAgC,CAAA;;sBAC5C,KAAK;gBAMN,IAAI,EAAA,CAAA;sBAFH,WAAW;uBAAC,2BAA2B,CAAA;;sBACvC,KAAK;gBAMN,SAAS,EAAA,CAAA;sBAFR,WAAW;uBAAC,gCAAgC,CAAA;;sBAC5C,KAAK;;;ACnDV;;;;;;;;AAQG;MASU,qBAAqB,CAAA;AAC9B,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAAI;IAEvC,kBAAkB,GAAA;AACrB,QAAA,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;AAC9D,YAAA,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,YAAY,CAAC,QAAQ,EAAE;AACvB,gBAAA,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;AAC9C,wBAAA,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAC9D,qBAAA;yBAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,EAAE;AACrD,wBAAA,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC5D,qBAAA;yBAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,EAAE;AACrD,wBAAA,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAC9D,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;;kHAnBQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,wDALpB,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sn3GAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAK5B,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;+BAEI,kBAAkB,EAAA,QAAA,EAClB,2BAA2B,EAEtB,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,sn3GAAA,CAAA,EAAA,CAAA;;;MCZtC,oBAAoB,CAAA;AAHjC,IAAA,WAAA,GAAA;;QAMI,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;AAC7B,KAAA;;iHAJY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qGAApB,oBAAoB,EAAA,QAAA,EAAA,oCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oCAAoC;AACjD,iBAAA,CAAA;8BAIG,kBAAkB,EAAA,CAAA;sBADjB,WAAW;uBAAC,wBAAwB,CAAA;;;MCS5B,6BAA6B,CAAA;;0HAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;8GAA7B,6BAA6B,EAAA,QAAA,EAAA,uDAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,+CAAA,EAAA,sBAAA,EAAA,iDAAA,EAAA,wBAAA,EAAA,qDAAA,EAAA,4BAAA,EAAA,+CAAA,EAAA,sBAAA,EAAA,EAAA,cAAA,EAAA,kCAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAVzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uDAAuD;AACjE,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,kCAAkC;AACzC,wBAAA,iDAAiD,EAAE,oBAAoB;AACvE,wBAAA,mDAAmD,EAAE,sBAAsB;AAC3E,wBAAA,uDAAuD,EAAE,0BAA0B;AACnF,wBAAA,iDAAiD,EAAE,oBAAoB;AAC1E,qBAAA;AACJ,iBAAA,CAAA;8BAIG,MAAM,EAAA,CAAA;sBADL,KAAK;;;MCbG,qBAAqB,CAAA;AAHlC,IAAA,WAAA,GAAA;;QAMI,IAAmB,CAAA,mBAAA,GAAG,6CAA6C,CAAC;AACvE,KAAA;;kHAJY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAArB,qBAAqB,EAAA,QAAA,EAAA,sCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sCAAsC;AACnD,iBAAA,CAAA;8BAIG,mBAAmB,EAAA,CAAA;sBADlB,WAAW;uBAAC,OAAO,CAAA;;;MCFX,mBAAmB,CAAA;AAHhC,IAAA,WAAA,GAAA;;QAMI,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;AAC5B,KAAA;;gHAJY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,QAAA,EAAA,kCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kCAAkC;AAC/C,iBAAA,CAAA;8BAIG,iBAAiB,EAAA,CAAA;sBADhB,WAAW;uBAAC,uBAAuB,CAAA;;;MCF3B,kBAAkB,CAAA;AAH/B,IAAA,WAAA,GAAA;;QAOI,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;;QAKxB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;QAKf,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;AAMjB,KAAA;;+GApBY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,+BAAA,EAAA,aAAA,EAAA,6BAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gCAAgC;AAC7C,iBAAA,CAAA;8BAKG,gBAAgB,EAAA,CAAA;sBAFf,WAAW;uBAAC,sBAAsB,CAAA;;sBAClC,KAAK;gBAMN,MAAM,EAAA,CAAA;sBAFL,WAAW;uBAAC,+BAA+B,CAAA;;sBAC3C,KAAK;gBAMN,KAAK,EAAA,CAAA;sBAFJ,WAAW;uBAAC,6BAA6B,CAAA;;sBACzC,KAAK;gBAMN,QAAQ,EAAA,CAAA;sBAFP,WAAW;uBAAC,iBAAiB,CAAA;;sBAC7B,KAAK;;;MCjBG,kBAAkB,CAAA;;AAsB3B,IAAA,WAAA,CAAoB,WAAuB,EAAA;QAAvB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;;QAnB3C,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;AAExB;AACG;QAEI,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAElB;;;AAGG;QAEI,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;;QAIlB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;KAG4B;AAE/C;;;AAGG;IACH,WAAW,GAAA;QACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;;;AAME;IACH,sBAAsB,GAAA;QAClB,OAAO;YACH,gBAAgB;AAChB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAA,UAAA,EAAa,IAAI,CAAC,KAAK,CAAA,CAAE,GAAG,EAAE;YAC3C,IAAI,CAAC,UAAU,GAAG,4BAA4B,GAAG,EAAE;AACnD,YAAA,IAAI,CAAC,KAAK;SACb,CAAC;KACL;AAED;;AAEG;IACI,UAAU,GAAA;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;+GAvDQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAyC3B,UAAA,CAAA;IALC,aAAa;;;;AAYb,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,wBAAA,EAAA,IAAA,CAAA,CAAA;2FAhDQ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gCAAgC;AAC7C,iBAAA,CAAA;iGAIG,gBAAgB,EAAA,CAAA;sBADf,WAAW;uBAAC,sBAAsB,CAAA;gBAM5B,KAAK,EAAA,CAAA;sBADX,KAAK;gBAQC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAKN,UAAU,EAAA,CAAA;sBADT,KAAK;;AAmBN;;;AAGG;QACH,sBAAsB,EAAA,EAAA,EAAA,EAAA,CAAA;;ACnCpB,MAAO,+BAAgC,SAAQ,0BAA0B,CAAA;AAC3E,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,iBAAiB,CAAC,CAAC;KAC5B;;4HAHQ,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EAP7B,QAAA,EAAA,0BAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,+BAA+B,CAAC;AACjE,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAT3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,WAAW,EAAE,UAAU,CAAC,qCAAqC,CAAC;AACjE,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;;ACCK,MAAO,iCAAkC,SAAQ,4BAA4B,CAAA;AAC/E,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,iBAAiB,CAAC,CAAC;KAC5B;;8HAHQ,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjC,iCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,EAP/B,QAAA,EAAA,4BAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iCAAiC,CAAC;AACnE,SAAA;AACJ,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAT7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,WAAW,EAAE,UAAU,CAAC,uCAAuC,CAAC;AACnE,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;;MCiDY,WAAW,CAAA;;wGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,iBApChB,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;QAClB,+BAA+B;AAC/B,QAAA,iCAAiC,CAhB3B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,oBAAoB,aAmBxC,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;QAClB,+BAA+B;QAC/B,iCAAiC;QACjC,oBAAoB,CAAA,EAAA,CAAA,CAAA;yGAIf,WAAW,EAAA,SAAA,EAFT,CAAC,YAAY,CAAC,YApCf,YAAY,EAAE,oBAAoB,EAkCxC,oBAAoB,CAAA,EAAA,CAAA,CAAA;2FAIf,WAAW,EAAA,UAAA,EAAA,CAAA;kBAvCvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,oBAAoB,CAAC;AAC7C,oBAAA,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;wBAClB,+BAA+B;wBAC/B,iCAAiC;AACpC,qBAAA;AACD,oBAAA,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;wBAClB,+BAA+B;wBAC/B,iCAAiC;wBACjC,oBAAoB;AACvB,qBAAA;oBACD,SAAS,EAAE,CAAC,YAAY,CAAC;AAC5B,iBAAA,CAAA;;;AC3DD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-table.mjs","sources":["../../../../libs/core/src/lib/table/fd-table.interface.ts","../../../../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/deprecated-table-compact.directive.ts","../../../../libs/core/src/lib/table/deprecated-table-condensed.directive.ts","../../../../libs/core/src/lib/table/table.module.ts","../../../../libs/core/src/lib/table/fundamental-ngx-core-table.ts"],"sourcesContent":["import { TableCellDirective } from './directives/table-cell.directive';\n\n/** @hidden */\nexport abstract class FdTable {\n abstract _onCellKeydown(event: KeyboardEvent, cell: TableCellDirective): void;\n abstract allCellsFocusable: boolean;\n}\n","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 { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnDestroy,\n ViewEncapsulation\n} from '@angular/core';\nimport { KeyUtil } from '@fundamental-ngx/core/utils';\nimport { Subscription } from 'rxjs';\nimport { Nullable } from '@fundamental-ngx/core/shared';\nimport { TableCellDirective } from './directives/table-cell.directive';\nimport { FdTable } from './fd-table.interface';\nimport { TableService } from './table.service';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\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: [\n TableService,\n { provide: FdTable, useExisting: TableComponent },\n contentDensityObserverProviders({\n modifiers: {\n [ContentDensityMode.COMPACT]: 'fd-table--compact',\n [ContentDensityMode.CONDENSED]: 'fd-table--condensed'\n },\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.CONDENSED, ContentDensityMode.COZY]\n })\n ]\n})\nexport class TableComponent implements AfterViewInit, OnDestroy, FdTable {\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 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 /** Applies `focusable` to all cells within this table */\n @Input()\n allCellsFocusable = false;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n constructor(\n private _tableService: TableService,\n private _cdr: ChangeDetectorRef,\n private _contentDensityObserver: ContentDensityObserver\n ) {\n _contentDensityObserver.subscribe();\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 /** @hidden being triggered by TableCellDirective whenever it's clicked */\n _onCellKeydown(event: KeyboardEvent, cell: TableCellDirective): void {\n const cellElement = cell.elementRef.nativeElement;\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {\n event.preventDefault();\n const data = cell.getCellPosition();\n if (!data) {\n return;\n }\n const dir = KeyUtil.isKeyCode(event, DOWN_ARROW) ? 1 : -1;\n // if navigating up&down through the rows, attempt to focus the cell in the next row within the same section (e.g. within body)\n const focused = this._focusCellInTableSection(data?.origin, data.row + dir, data?.col);\n if (!focused) {\n // if cannot find the next row, attempt to jump to another section (e.g. to the header or footer, depending on the direction)\n if (dir === 1) {\n this._focusCellInTableSection(data.origin.nextElementSibling, 0, data.col);\n } else {\n const prev = data.origin.previousElementSibling;\n prev && this._focusCellInTableSection(prev, prev.children.length - 1, data.col);\n }\n }\n } else if (KeyUtil.isKeyCode(event, LEFT_ARROW)) {\n const prev = cellElement.previousElementSibling;\n prev instanceof HTMLTableCellElement && prev.focus();\n } else if (KeyUtil.isKeyCode(event, RIGHT_ARROW)) {\n const next = cellElement.nextElementSibling;\n next instanceof HTMLTableCellElement && next.focus();\n }\n }\n\n /** @hidden */\n private _focusCellInTableSection(tableSectionElement: Nullable<Element>, row: number, col: number): boolean {\n const targetRow = tableSectionElement?.children.item(row);\n const targetCell = targetRow?.children.item(col);\n if (targetCell instanceof HTMLTableCellElement) {\n targetCell.focus();\n return true;\n } else {\n // if couldn't find the next cell, but the actual row exists, still treat the operation as success\n return !!targetRow;\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 { LiveAnnouncer } from '@angular/cdk/a11y';\nimport {\n AfterContentInit,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n QueryList,\n ContentChildren,\n forwardRef,\n OnDestroy,\n Optional\n} from '@angular/core';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\nimport { Nullable } from '@fundamental-ngx/core/shared';\nimport { NumberInput } from '@angular/cdk/coercion';\nimport { FdTable } from '../fd-table.interface';\n\n@Directive({\n selector: '[fdTableCell], [fd-table-cell]'\n})\nexport class TableCellDirective implements AfterContentInit, OnDestroy {\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 set focusable(value: Nullable<boolean>) {\n this._focusable = value;\n }\n\n get focusable(): Nullable<boolean> {\n return this._focusable ?? this._table?.allCellsFocusable;\n }\n\n /** @hidden */\n private _focusable: Nullable<boolean>;\n\n /** Tabindex attribute for the cell */\n @HostBinding('attr.tabindex')\n @Input()\n set tabindex(value: Nullable<NumberInput>) {\n this._tabindex = value;\n }\n\n get tabindex(): Nullable<NumberInput> {\n return this._tabindex ?? (this.focusable ? 0 : null);\n }\n\n /** @hidden */\n private _tabindex: Nullable<NumberInput>;\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 /** Function, that creates a string to be announced by screenreader whenever cell receives focus */\n @Input()\n cellFocusedEventAnnouncer: (data: TableCellPosition) => string = this._defaultCellFocusedEventAnnouncer;\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 /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n constructor(\n public readonly elementRef: ElementRef<HTMLElement>,\n private readonly _liveAnnouncer: LiveAnnouncer,\n @Optional() private readonly _table?: FdTable\n ) {}\n\n ngOnDestroy(): void {\n this._onDestroy$.next();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n const cell = this.elementRef.nativeElement;\n\n if (this._checkboxes && this._checkboxes.length) {\n cell.classList.add('fd-table__cell--checkbox');\n }\n\n if (this.noData) {\n cell.setAttribute('colspan', '100%');\n }\n\n fromEvent(cell, 'focusin')\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(() => {\n const data = this.getCellPosition();\n\n if (!data) {\n return;\n }\n\n this._liveAnnouncer.clear();\n this._liveAnnouncer.announce(this.cellFocusedEventAnnouncer(data));\n });\n\n fromEvent<KeyboardEvent>(cell, 'keydown')\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((event) => this._table?._onCellKeydown(event, this));\n }\n\n /** Returns row and col indexes for the cell */\n getCellPosition(): TableCellPosition | undefined {\n const parentRow = this.elementRef.nativeElement.parentElement;\n if (!(parentRow instanceof HTMLTableRowElement)) {\n return;\n }\n const section = parentRow.parentElement;\n if (!(section instanceof HTMLTableSectionElement)) {\n return;\n }\n const rows = section.children;\n const cols = parentRow.children;\n\n const row = [...(rows as any as Element[])].indexOf(parentRow);\n const col = [...(cols as any as Element[])].indexOf(this.elementRef.nativeElement);\n return {\n row,\n col,\n totalRows: rows.length,\n totalCols: cols.length,\n origin: section\n };\n }\n\n /** @hidden */\n private _defaultCellFocusedEventAnnouncer(data: TableCellPosition): string {\n return `Column ${data.col + 1} of ${data.totalCols}, row: ${data.row + 1} of ${data.totalRows}`;\n }\n}\n\nexport interface TableCellPosition {\n row: number;\n col: number;\n totalRows: number;\n totalCols: number;\n origin: HTMLTableSectionElement;\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';\nimport { startWith } from 'rxjs/operators';\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 this._setupCellsSubscription();\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 private _setupCellsSubscription(): void {\n this.cells.changes.pipe(startWith(null)).subscribe(() => {\n this.cells.forEach((cell, index) => {\n cell.elementRef.nativeElement.ariaColIndex = index.toString();\n });\n });\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\nimport { Nullable } from '@fundamental-ngx/core/shared';\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: Nullable<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 { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\nimport { Directive, forwardRef } from '@angular/core';\n\n@Directive({\n selector: 'table[fd-table][compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedTableCompactDirective)\n }\n ]\n})\nexport class DeprecatedTableCompactDirective extends DeprecatedCompactDirective {\n constructor() {\n super('table[fd-table]');\n }\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCondensedDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n selector: 'table[fd-table][condensed]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedTableCondensedDirective)\n }\n ]\n})\nexport class DeprecatedTableCondensedDirective extends DeprecatedCondensedDirective {\n constructor() {\n super('table[fd-table]');\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';\nimport { DeprecatedTableCompactDirective } from './deprecated-table-compact.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { DeprecatedTableCondensedDirective } from './deprecated-table-condensed.directive';\n\n@NgModule({\n imports: [CommonModule, ContentDensityModule],\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 DeprecatedTableCompactDirective,\n DeprecatedTableCondensedDirective\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 DeprecatedTableCompactDirective,\n DeprecatedTableCondensedDirective,\n ContentDensityModule\n ],\n providers: [TableService]\n})\nexport class TableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.TableService","i2.FdTable"],"mappings":"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"}
|