@fundamental-ngx/core 0.36.0-rc.36 → 0.36.0-rc.39

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.
Files changed (114) hide show
  1. package/action-bar/package.json +1 -1
  2. package/action-sheet/package.json +1 -1
  3. package/alert/package.json +1 -1
  4. package/avatar/package.json +1 -1
  5. package/avatar-group/package.json +1 -1
  6. package/bar/package.json +1 -1
  7. package/breadcrumb/package.json +1 -1
  8. package/busy-indicator/package.json +1 -1
  9. package/button/package.json +1 -1
  10. package/calendar/package.json +1 -1
  11. package/card/package.json +1 -1
  12. package/carousel/package.json +1 -1
  13. package/checkbox/package.json +1 -1
  14. package/combobox/package.json +1 -1
  15. package/content-density/package.json +2 -2
  16. package/date-picker/package.json +1 -1
  17. package/datetime/package.json +1 -1
  18. package/datetime-picker/package.json +1 -1
  19. package/dialog/package.json +1 -1
  20. package/dynamic-page/package.json +1 -1
  21. package/dynamic-side-content/package.json +1 -1
  22. package/esm2020/table/directives/table-row.directive.mjs +26 -11
  23. package/esm2020/timeline/services/position-strategies/base-strategy.mjs +4 -4
  24. package/facets/package.json +1 -1
  25. package/feed-input/package.json +1 -1
  26. package/feed-list-item/package.json +1 -1
  27. package/fesm2015/fundamental-ngx-core-table.mjs +24 -9
  28. package/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
  29. package/fesm2015/fundamental-ngx-core-timeline.mjs +3 -3
  30. package/fesm2015/fundamental-ngx-core-timeline.mjs.map +1 -1
  31. package/fesm2020/fundamental-ngx-core-table.mjs +22 -9
  32. package/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
  33. package/fesm2020/fundamental-ngx-core-timeline.mjs +3 -3
  34. package/fesm2020/fundamental-ngx-core-timeline.mjs.map +1 -1
  35. package/file-uploader/package.json +1 -1
  36. package/fixed-card-layout/package.json +1 -1
  37. package/flexible-column-layout/package.json +1 -1
  38. package/form/package.json +1 -1
  39. package/formatted-text/package.json +1 -1
  40. package/grid-list/package.json +1 -1
  41. package/icon/package.json +1 -1
  42. package/illustrated-message/package.json +1 -1
  43. package/infinite-scroll/package.json +1 -1
  44. package/info-label/package.json +1 -1
  45. package/inline-help/package.json +1 -1
  46. package/input-group/package.json +1 -1
  47. package/layout-grid/package.json +1 -1
  48. package/layout-panel/package.json +1 -1
  49. package/link/package.json +1 -1
  50. package/list/package.json +1 -1
  51. package/menu/package.json +1 -1
  52. package/message-box/package.json +1 -1
  53. package/message-strip/package.json +1 -1
  54. package/message-toast/package.json +1 -1
  55. package/micro-process-flow/package.json +1 -1
  56. package/mobile-mode/package.json +1 -1
  57. package/multi-input/package.json +1 -1
  58. package/nested-list/package.json +1 -1
  59. package/notification/package.json +1 -1
  60. package/object-identifier/package.json +1 -1
  61. package/object-marker/package.json +1 -1
  62. package/object-number/package.json +1 -1
  63. package/object-status/package.json +1 -1
  64. package/overflow-layout/package.json +4 -4
  65. package/package.json +2 -2
  66. package/pagination/package.json +1 -1
  67. package/panel/package.json +1 -1
  68. package/popover/package.json +1 -1
  69. package/product-switch/package.json +1 -1
  70. package/progress-indicator/package.json +1 -1
  71. package/quick-view/package.json +1 -1
  72. package/radio/package.json +1 -1
  73. package/rating-indicator/package.json +1 -1
  74. package/resizable-card-layout/package.json +1 -1
  75. package/scroll-spy/package.json +1 -1
  76. package/scrollbar/package.json +1 -1
  77. package/segmented-button/package.json +1 -1
  78. package/select/package.json +1 -1
  79. package/shared/package.json +1 -1
  80. package/shellbar/package.json +1 -1
  81. package/side-navigation/package.json +1 -1
  82. package/slider/package.json +1 -1
  83. package/split-button/package.json +1 -1
  84. package/splitter/package.json +1 -1
  85. package/status-indicator/package.json +1 -1
  86. package/step-input/package.json +1 -1
  87. package/switch/package.json +1 -1
  88. package/table/directives/table-row.directive.d.ts +13 -8
  89. package/table/esm2020/directives/table-row.directive.mjs +26 -11
  90. package/table/fesm2015/fundamental-ngx-core-table.mjs +24 -9
  91. package/table/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
  92. package/table/fesm2020/fundamental-ngx-core-table.mjs +22 -9
  93. package/table/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
  94. package/table/package.json +1 -1
  95. package/tabs/package.json +1 -1
  96. package/text/package.json +1 -1
  97. package/theming/package.json +1 -1
  98. package/tile/package.json +1 -1
  99. package/time/package.json +1 -1
  100. package/time-picker/package.json +1 -1
  101. package/timeline/esm2020/services/position-strategies/base-strategy.mjs +4 -4
  102. package/timeline/fesm2015/fundamental-ngx-core-timeline.mjs +3 -3
  103. package/timeline/fesm2015/fundamental-ngx-core-timeline.mjs.map +1 -1
  104. package/timeline/fesm2020/fundamental-ngx-core-timeline.mjs +3 -3
  105. package/timeline/fesm2020/fundamental-ngx-core-timeline.mjs.map +1 -1
  106. package/timeline/package.json +1 -1
  107. package/title/package.json +1 -1
  108. package/token/package.json +1 -1
  109. package/toolbar/package.json +1 -1
  110. package/tree/package.json +1 -1
  111. package/upload-collection/package.json +1 -1
  112. package/utils/package.json +1 -1
  113. package/vertical-navigation/package.json +1 -1
  114. package/wizard/package.json +1 -1
@@ -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 event.preventDefault();\n const data = cell.getCellPosition();\n if (!data) {\n return;\n }\n event.preventDefault();\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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"}
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 event.preventDefault();\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 Optional,\n QueryList\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { FdTable } from '../fd-table.interface';\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 the table row is activable */\n @HostBinding('class.fd-table__row--activable')\n @Input()\n activable = false;\n\n /** Whether to highlight active row when clicked. */\n @Input()\n highlightActive = false;\n\n /** Whether the table row is hoverable */\n @HostBinding('class.fd-table__row--hoverable')\n @Input()\n hoverable = false;\n\n /** Whether the table row is focusable */\n @HostBinding('class.fd-table__row--focusable')\n @Input()\n focusable = false;\n\n /** Whether 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 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 @HostBinding('class.is-selected')\n @Input()\n active = false;\n\n /** @hidden */\n propagateKeysSubscription: Subscription;\n\n /** @hidden */\n constructor(\n private _changeDetRef: ChangeDetectorRef,\n private _tableService: TableService,\n @Optional() private _table: FdTable\n ) {}\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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"}
@@ -63,9 +63,9 @@ class BaseStrategy {
63
63
  }
64
64
  /** @hidden */
65
65
  _getTwoListFromOne(nodes) {
66
- const lastIndexInFirstList = Math.floor(nodes.length / 2);
67
- const firstList = nodes.slice(0, lastIndexInFirstList + 1);
68
- const secondList = nodes.slice(lastIndexInFirstList + 1, nodes.length);
66
+ const lastIndexInFirstList = Math.ceil(nodes.length / 2);
67
+ const firstList = nodes.slice(0, lastIndexInFirstList);
68
+ const secondList = nodes.slice(lastIndexInFirstList, nodes.length);
69
69
  return [firstList, secondList];
70
70
  }
71
71
  /** @hidden */
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-timeline.mjs","sources":["../../../../libs/core/src/lib/timeline/directives/timeline-first-list-outlet.directive.ts","../../../../libs/core/src/lib/timeline/directives/timeline-node-def.directive.ts","../../../../libs/core/src/lib/timeline/services/position-strategies/base-strategy.ts","../../../../libs/core/src/lib/timeline/services/position-strategies/vertical-double-sides-strategy.ts","../../../../libs/core/src/lib/timeline/services/position-strategies/horizontal-single-side-strategy.ts","../../../../libs/core/src/lib/timeline/services/position-strategies/horizontal-double-sides-strategy.ts","../../../../libs/core/src/lib/timeline/services/position-strategies/vertical-single-side-strategy.ts","../../../../libs/core/src/lib/timeline/services/position-strategies/position-strategy-factory.ts","../../../../libs/core/src/lib/timeline/services/timeline-position-control.service.ts","../../../../libs/core/src/lib/timeline/directives/timeline-second-list-outlet.directive.ts","../../../../libs/core/src/lib/timeline/timeline.component.ts","../../../../libs/core/src/lib/timeline/timeline.component.html","../../../../libs/core/src/lib/timeline/components/timeline-node-header/timeline-node-header.component.ts","../../../../libs/core/src/lib/timeline/components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.component.ts","../../../../libs/core/src/lib/timeline/components/timeline-node-body/timeline-node-body.component.ts","../../../../libs/core/src/lib/timeline/components/timeline-node-body/timeline-node-body.component.html","../../../../libs/core/src/lib/timeline/components/timeline-node-footer/timeline-node-footer.component.ts","../../../../libs/core/src/lib/timeline/components/timeline-node/timeline-node.component.ts","../../../../libs/core/src/lib/timeline/components/timeline-node/timeline-node.component.html","../../../../libs/core/src/lib/timeline/directives/class-bindings/timeline-node-header-info-title.directive.ts","../../../../libs/core/src/lib/timeline/directives/class-bindings/timeline-node-header-info-text.directive.ts","../../../../libs/core/src/lib/timeline/directives/class-bindings/timeline-header-info-sub-title.directive.ts","../../../../libs/core/src/lib/timeline/timeline.module.ts","../../../../libs/core/src/lib/timeline/fundamental-ngx-core-timeline.ts"],"sourcesContent":["import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineFirstListOutlet], [fd-timeline-first-list-outlet]'\n})\nexport class TimelineFirstListOutletDirective {\n /* Ref to ViewContainerRef instance*/\n constructor(public viewContainer: ViewContainerRef) {}\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\n\n/** Context provided to the timeline node component. */\nexport class TimelineNodeOutletContext<T> {\n /** Data for the node. */\n $implicit: T;\n\n /** Index location of the node. */\n index?: number;\n\n /** Length of the number of total dataNodes. */\n count?: number;\n\n constructor(data: T) {\n this.$implicit = data;\n }\n}\n\n@Directive({\n selector: '[fdTimelineNodeDef], [fd-timeline-node-def]'\n})\nexport class TimelineNodeDefDirective<T> {\n /** Data passed to the template*/\n @Input()\n fdTimelineNodeData: T;\n\n /** @hidden */\n constructor(public template: TemplateRef<any>) {}\n}\n","import { TimelineNodeComponent } from '../../components/timeline-node/timeline-node.component';\nimport { TimelineAxis } from '../../types';\n\nexport abstract class BaseStrategy {\n /** Offset between nodes lines */\n private readonly SMALL_OFFSET = 14;\n\n /** Offset between nodes lines with icon */\n private readonly BIG_OFFSET = 30;\n\n /** Offset for second list in within vertical axis */\n private readonly VERTICAL_TOP_LIST_OFFSET = 24;\n\n /** Calculate styles for timeline nodes */\n abstract calculateStyles(nodes: TimelineNodeComponent[]): any;\n\n /** @hidden */\n protected _getOffset(node: TimelineNodeComponent): number {\n return node.glyph ? this.BIG_OFFSET : this.SMALL_OFFSET;\n }\n\n /** @hidden */\n protected _getTwoListFromOne(nodes: TimelineNodeComponent[]): [TimelineNodeComponent[], TimelineNodeComponent[]] {\n const lastIndexInFirstList = Math.floor(nodes.length / 2);\n const firstList = nodes.slice(0, lastIndexInFirstList + 1);\n const secondList = nodes.slice(lastIndexInFirstList + 1, nodes.length);\n return [firstList, secondList];\n }\n\n /** @hidden */\n protected _setStylesForSingleList(nodes: TimelineNodeComponent[], axis: TimelineAxis): void {\n const [offsetProperty, sizeProperty] =\n axis === 'horizontal' ? ['offsetLeft', 'width'] : ['offsetTop', 'height'];\n\n nodes.forEach((node, index) => {\n const nextNode = nodes[index + 1];\n // Set line size depend on where next node item is started\n if (nextNode) {\n const size =\n nextNode.el.nativeElement[offsetProperty] -\n node.el.nativeElement[offsetProperty] -\n this._getOffset(node);\n node.lineEl.nativeElement.style[sizeProperty] = size + 'px';\n } else {\n // Hide last timeline line in list\n node.lineEl.nativeElement.style.opacity = '0';\n }\n });\n }\n\n /** @hidden */\n protected _setStylesForDoubleList(nodes: TimelineNodeComponent[], axis: TimelineAxis): void {\n const [firstList, secondList] = this._getTwoListFromOne(nodes);\n const [offsetProp, sizeProp, sizeOffsetProp] =\n axis === 'horizontal' ? ['offsetLeft', 'width', 'offsetWidth'] : ['offsetTop', 'height', 'offsetHeight'];\n\n // Set styles for second list\n secondList.forEach((node, index) => {\n const el = node.el.nativeElement;\n const parallelNodeEl = firstList[index].el.nativeElement;\n\n // Handle case when bottom edge of item in second list higher than top edge of next item in first list\n // Actual only for vertical axis because items in horizontal axis have fixed size\n if (axis === 'vertical') {\n secondList[index].el.nativeElement.style.marginTop = `${this.SMALL_OFFSET}px`;\n const prevNode = secondList[index - 1];\n const diffBetween = prevNode\n ? parallelNodeEl.offsetTop +\n this.VERTICAL_TOP_LIST_OFFSET -\n (prevNode.el.nativeElement.offsetTop + prevNode.el.nativeElement.offsetHeight)\n : -1;\n if (diffBetween > 0) {\n prevNode.el.nativeElement.style.marginBottom = `${diffBetween}px`;\n }\n }\n\n // Set line size depend on where next node item is started\n const diff =\n parallelNodeEl[offsetProp] + parallelNodeEl[sizeOffsetProp] - el[offsetProp] - this._getOffset(node);\n node.lineEl.nativeElement.style[sizeProp] = diff + 'px';\n });\n\n // Set styles for first list\n firstList.forEach((node, index) => {\n const el = node.el.nativeElement;\n const parallelNode = secondList[index];\n // Set line size depend on where next node item is started\n if (parallelNode) {\n const diff = parallelNode.el.nativeElement[offsetProp] - el[offsetProp] - this._getOffset(node);\n node.lineEl.nativeElement.style[sizeProp] = diff + 'px';\n }\n });\n\n // Hide last timeline line in lists\n const lastNode =\n firstList.length === secondList.length\n ? secondList[secondList.length - 1]\n : firstList[firstList.length - 1];\n lastNode.lineEl.nativeElement.style.opacity = '0';\n }\n}\n","import { BaseStrategy } from './base-strategy';\nimport { TimelineNodeComponent } from '../../components/timeline-node/timeline-node.component';\n\nexport class VerticalDoubleSidesStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponent[]): void {\n this._setStylesForDoubleList(nodes, 'vertical');\n }\n}\n","import { BaseStrategy } from './base-strategy';\nimport { TimelineNodeComponent } from '../../components/timeline-node/timeline-node.component';\n\nexport class HorizontalSingleSideStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponent[]): any {\n this._setStylesForSingleList(nodes, 'horizontal');\n }\n}\n","import { BaseStrategy } from './base-strategy';\nimport { TimelineNodeComponent } from '../../components/timeline-node/timeline-node.component';\n\nexport class HorizontalDoubleSidesStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponent[]): any {\n this._setStylesForDoubleList(nodes, 'horizontal');\n }\n}\n","import { BaseStrategy } from './base-strategy';\nimport { TimelineNodeComponent } from '../../components/timeline-node/timeline-node.component';\n\nexport class VerticalSingleSideStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponent[]): void {\n this._setStylesForSingleList(nodes, 'vertical');\n }\n}\n","import { BaseStrategy } from './base-strategy';\nimport { TimeLinePositionStrategy } from '../../types';\nimport { VerticalDoubleSidesStrategy } from './vertical-double-sides-strategy';\nimport { HorizontalSingleSideStrategy } from './horizontal-single-side-strategy';\nimport { HorizontalDoubleSidesStrategy } from './horizontal-double-sides-strategy';\nimport { VerticalSingleSideStrategy } from './vertical-single-side-strategy';\n\nexport class PositionStrategyFactory {\n static getStrategy(strategy: TimeLinePositionStrategy): BaseStrategy {\n switch (strategy) {\n case 'vertical-right':\n return new VerticalSingleSideStrategy();\n case 'vertical-left':\n return new VerticalSingleSideStrategy();\n case 'vertical-double':\n return new VerticalDoubleSidesStrategy();\n case 'horizontal-top':\n return new HorizontalSingleSideStrategy();\n case 'horizontal-bottom':\n return new HorizontalSingleSideStrategy();\n case 'horizontal-double':\n return new HorizontalDoubleSidesStrategy();\n default:\n throw Error(`Unsupported strategy: ${strategy}`);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TimelineNodeComponent } from '../components/timeline-node/timeline-node.component';\nimport { TimeLinePositionStrategy } from '../types';\nimport { BaseStrategy } from './position-strategies/base-strategy';\nimport { PositionStrategyFactory } from './position-strategies/position-strategy-factory';\n\n@Injectable()\nexport class TimelinePositionControlService {\n /* List of TimelineNodeComponent */\n /** @hidden */\n private _nodeItems: TimelineNodeComponent[] = [];\n\n /* Current position strategy. It depends on axis and layout */\n /** @hidden */\n private _positionStrategy: BaseStrategy;\n\n /** Calculate styles for timeline nodes */\n calculatePositions(): void {\n this._positionStrategy.calculateStyles(this._nodeItems);\n }\n\n /** Set strategy for current axis and layout */\n setStrategy(strategy: TimeLinePositionStrategy): void {\n this._positionStrategy = PositionStrategyFactory.getStrategy(strategy);\n }\n\n /** Register TimelineNodeComponent */\n registerNode(node: TimelineNodeComponent): void {\n this._nodeItems.push(node);\n }\n /** Remove TimelineNodeComponent */\n removeNode(node: TimelineNodeComponent): void {\n this._nodeItems = this._nodeItems.filter((item) => item !== node);\n }\n}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineSecondListOutlet], [fd-timeline-second-list-outlet]'\n})\nexport class TimelineSecondListOutletDirective {\n /* Ref to ViewContainerRef instance*/\n constructor(public viewContainer: ViewContainerRef) {}\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Input,\n IterableChangeRecord,\n IterableDiffer,\n IterableDiffers,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n QueryList,\n SimpleChanges,\n TrackByFunction,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ViewportRuler } from '@angular/cdk/overlay';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { TimelineFirstListOutletDirective } from './directives/timeline-first-list-outlet.directive';\nimport { TimelineNodeDefDirective, TimelineNodeOutletContext } from './directives/timeline-node-def.directive';\nimport { TimelinePositionControlService } from './services/timeline-position-control.service';\nimport { TimelineAxis, TimeLinePositionStrategy, TimelineSidePosition } from './types';\nimport { TimelineSecondListOutletDirective } from './directives/timeline-second-list-outlet.directive';\n\n@Component({\n selector: 'fd-timeline',\n templateUrl: './timeline.component.html',\n styleUrls: ['./timeline.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TimelinePositionControlService],\n host: {\n role: 'timeline',\n 'arial-label': 'timeline',\n class: 'fd-timeline',\n '[class.fd-timeline--horizontal]': 'axis === \"horizontal\"',\n '[class.fd-timeline--vertical]': 'axis === \"vertical\"'\n }\n})\nexport class TimelineComponent<T> implements OnInit, OnDestroy, OnChanges, AfterViewInit {\n /**\n * Data array to render\n */\n @Input()\n dataSource: T[] = [];\n\n /**\n * Tracking function that will be used to check the differences in data changes.\n */\n @Input()\n trackBy: TrackByFunction<T>;\n\n /**\n * Axis for timeline\n */\n @Input()\n axis: TimelineAxis = 'vertical';\n\n /**\n * Layout for timeline\n */\n @Input()\n layout: TimelineSidePosition = 'right';\n\n /* First outlet within the timeline template where the dataNodes will be inserted. */\n /** @hidden */\n @ViewChild(TimelineFirstListOutletDirective, { static: true })\n private _firstListOutlet: TimelineFirstListOutletDirective;\n\n /* Second outlet within the timeline template where the dataNodes will be inserted. */\n /** @hidden */\n @ViewChild(TimelineSecondListOutletDirective, { static: true })\n private _secondListOutlet: TimelineSecondListOutletDirective;\n\n /** The timeline node template for the timeline */\n /** @hidden */\n @ContentChildren(TimelineNodeDefDirective, { descendants: true })\n private _nodeDefs: QueryList<TimelineNodeDefDirective<T>>;\n\n /** @hidden */\n _canShowFirstList = true;\n\n /** @hidden */\n _canShowSecondList = true;\n\n /** Differ used to find the changes in the data provided by the data source. */\n private _dataDifferForFirstList: IterableDiffer<T>;\n private _dataDifferForSecondList: IterableDiffer<T>;\n\n /** @hidden */\n private readonly _onDestroy = new Subject<void>();\n\n /** @hidden */\n constructor(\n private _differs: IterableDiffers,\n private _cd: ChangeDetectorRef,\n private _timelinePositionControlService: TimelinePositionControlService,\n private _viewportRuler: ViewportRuler,\n private _ngZone: NgZone\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._dataDifferForFirstList = this._differs.find([]).create(this.trackBy);\n this._dataDifferForSecondList = this._differs.find([]).create(this.trackBy);\n\n this._canShowFirstList = this.layout !== 'right' && this.layout !== 'bottom';\n this._canShowSecondList = this.layout !== 'left' && this.layout !== 'top';\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('axis' in changes || 'layout' in changes) {\n this._canShowFirstList = this.layout !== 'right' && this.layout !== 'bottom';\n this._canShowSecondList = this.layout !== 'left' && this.layout !== 'top';\n this._setPositionStrategy();\n this.switchDataSource(this.dataSource);\n }\n if ('dataSource' in changes && !changes['dataSource'].firstChange) {\n const value = changes['dataSource'].currentValue;\n this.switchDataSource(value);\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._viewportRuler\n .change(50)\n .pipe(takeUntil(this._onDestroy))\n // ViewportRuler invoked out of zone, that is why I need to invoke function in zone\n .subscribe(() => this._ngZone.run(() => this._timelinePositionControlService.calculatePositions()));\n this._setPositionStrategy();\n this.switchDataSource(this.dataSource);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._firstListOutlet.viewContainer.clear();\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n /**\n * Update state by new data source\n * If the data source is null, interpret this by clearing the node outlet.\n */\n /** @hidden */\n private switchDataSource(data: T[]): void {\n if (!data) {\n this._firstListOutlet.viewContainer.clear();\n return;\n }\n if (this._nodeDefs) {\n const [first, second] = this._splitList(data);\n this._renderNodeChanges(first, this._dataDifferForFirstList, this._firstListOutlet?.viewContainer);\n this._renderNodeChanges(second, this._dataDifferForSecondList, this._secondListOutlet?.viewContainer);\n this._cd.detectChanges();\n this._timelinePositionControlService.calculatePositions();\n this._cd.detectChanges();\n }\n }\n\n /** Check for changes made in the data and render each change (node added/removed/moved). */\n /** @hidden */\n private _renderNodeChanges(data: T[], differ: IterableDiffer<T>, vcr: ViewContainerRef): void {\n const changes = differ.diff(data);\n if (!changes) {\n return;\n }\n changes.forEachOperation(\n (item: IterableChangeRecord<T>, adjustedPreviousIndex: number | null, currentIndex: number | null) => {\n if (currentIndex != null && item.previousIndex === null) {\n this._insertNode(data[currentIndex], currentIndex, vcr);\n } else if (currentIndex === null && adjustedPreviousIndex != null) {\n vcr.remove(adjustedPreviousIndex);\n } else if (adjustedPreviousIndex != null && currentIndex != null) {\n const view = vcr.get(adjustedPreviousIndex);\n if (view) {\n vcr.move(view, currentIndex);\n }\n }\n }\n );\n }\n\n private _setPositionStrategy(): void {\n this._timelinePositionControlService.setStrategy(`${this.axis}-${this.layout}` as TimeLinePositionStrategy);\n }\n\n /**\n * Create the embedded view for the data node template and place it in the correct index location\n * within the data node view container.\n */\n /** @hidden */\n private _insertNode(nodeData: T, index: number, vcr: ViewContainerRef): void {\n const node = this._getNodeDef(index);\n\n // Node context that will be provided to created embedded view\n const context = new TimelineNodeOutletContext<T>(nodeData);\n\n vcr.createEmbeddedView(node.template, context, index);\n }\n\n /**\n * Finds the matching node definition that should be used for this node data. If there is only\n * one node definition, it is returned.\n */\n /** @hidden */\n private _getNodeDef(i: number): TimelineNodeDefDirective<T> {\n if (this._nodeDefs.length === 1) {\n return this._nodeDefs.first;\n }\n return this._nodeDefs[i];\n }\n\n /**\n * Split data list to two list first and second to represent timelines in two lists.\n */\n /** @hidden */\n private _splitList(dataSource: T[]): T[][] {\n let dataForFirstList: T[] = [];\n let dataForSecondList: T[] = [];\n if (this.layout === 'left' || this.layout === 'top') {\n dataForFirstList = [...dataSource];\n } else if (this.layout === 'right' || this.layout === 'bottom') {\n dataForSecondList = [...dataSource];\n } else {\n dataSource.forEach((item, index) => {\n if (index % 2 === 0) {\n dataForFirstList.push(item);\n } else {\n dataForSecondList.push(item);\n }\n });\n }\n return [dataForFirstList, dataForSecondList];\n }\n}\n","<div [class.fd-timeline__list--empty]=\"!_canShowFirstList\" class=\"fd-timeline__list fd-timeline__list--first\">\n <ng-container fdTimelineFirstListOutlet></ng-container>\n</div>\n<div class=\"fd-timeline__main-line\"></div>\n<div\n [class.fd-timeline__list--empty]=\"!_canShowSecondList\"\n [class.fd-timeline__list--with-offset]=\"_canShowFirstList\"\n class=\"fd-timeline__list fd-timeline__list--second\"\n>\n <ng-container fdTimelineSecondListOutlet></ng-container>\n</div>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-timeline-node-header',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-timeline__post-header-container'\n }\n})\nexport class TimelineNodeHeaderComponent {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-timeline-node-header-info',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-timeline__post-header'\n }\n})\nexport class TimelineNodeHeaderInfoComponent {}\n","import { ChangeDetectionStrategy, Component, Input, NgZone, ViewEncapsulation } from '@angular/core';\nimport { TimelinePositionControlService } from '../../services/timeline-position-control.service';\nimport { first } from 'rxjs/operators';\n\n@Component({\n selector: 'fd-timeline-node-body',\n templateUrl: './timeline-node-body.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-timeline__post-content'\n }\n})\nexport class TimelineNodeBodyComponent {\n /* Text content of timeline node*/\n @Input()\n content: string;\n\n /*\n The number of lines to be visible.\n If user doesn't provide it, all lines will be visible\n */\n @Input()\n maxLines: number;\n\n constructor(private _ngZone: NgZone, private _timelinePositionControlService: TimelinePositionControlService) {}\n\n calculatePositions(): void {\n this._ngZone.onStable.pipe(first()).subscribe(() => {\n this._timelinePositionControlService.calculatePositions();\n });\n }\n}\n","<fd-text\n [maxLines]=\"maxLines || 0\"\n [text]=\"content\"\n [isCollapsed]=\"!!maxLines\"\n [expandable]=\"!!maxLines\"\n (isCollapsedChange)=\"calculatePositions()\"\n></fd-text>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-timeline-node-footer',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-timeline__post-actions'\n },\n styles: [\n `\n .fd-timeline__post-actions button + button {\n margin-left: 0.5rem;\n }\n `\n ]\n})\nexport class TimelineNodeFooterComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { TimelinePositionControlService } from '../../services/timeline-position-control.service';\n\n@Component({\n selector: 'fd-timeline-node',\n templateUrl: './timeline-node.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-timeline__node-wrapper',\n '[class.fd-timeline__node-wrapper--icon]': '!!glyph'\n }\n})\nexport class TimelineNodeComponent implements OnInit, OnDestroy {\n /* Glyph of the current timeline node.*/\n @Input()\n glyph: string;\n\n @Input()\n ariaLabel = 'timelineitem';\n\n /* Reference to the line of timeline node*/\n @ViewChild('lineEl')\n lineEl: ElementRef;\n\n /** @hidden */\n constructor(public el: ElementRef, private _timelinePositionControl: TimelinePositionControlService) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._timelinePositionControl.registerNode(this);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._timelinePositionControl.removeNode(this);\n }\n}\n","<div class=\"fd-timeline__node-container\">\n <div class=\"fd-timeline__icon-wrapper\">\n <div class=\"fd-timeline__node\" [class.fd-timeline__node--icon]=\"!!glyph\">\n <fd-icon *ngIf=\"glyph\" [glyph]=\"glyph\"></fd-icon>\n </div>\n </div>\n <div #lineEl class=\"fd-timeline__connecting-line\"></div>\n</div>\n<div tabindex=\"0\" role=\"timelineitem\" [attr.aria-label]=\"ariaLabel\" class=\"fd-timeline__post\">\n <ng-content></ng-content>\n</div>\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineNodeHeaderInfoTitle], [fd-timeline-node-header-info-title]'\n})\nexport class TimelineNodeHeaderInfoTitleDirective {\n /** fd-timeline__post-header-title*/\n @HostBinding('class.fd-timeline__post-header-title')\n fdTimelineNodeHeaderInfoTitleClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineNodeHeaderInfoText], [fd-timeline-node-header-info-text]'\n})\nexport class TimelineNodeHeaderInfoTextDirective {\n /** add/remove fd-timeline__post-header-text class*/\n @HostBinding('class.fd-timeline__post-header-text')\n fdTimelineNodeHeaderInfoTextClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineHeaderInfoSubTitle], [fd-timeline-header-info-sub-title]'\n})\nexport class TimelineHeaderInfoSubTitleDirective {\n /** add/remove fd-timeline__post-subheader class*/\n @HostBinding('class.fd-timeline__post-subheader')\n fdTimelineNodeHeaderInfoSubTitleClass = true;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { TextModule } from '@fundamental-ngx/core/text';\n\nimport { TimelineComponent } from './timeline.component';\nimport { TimelineNodeDefDirective } from './directives/timeline-node-def.directive';\nimport { TimelineFirstListOutletDirective } from './directives/timeline-first-list-outlet.directive';\nimport { TimelineNodeHeaderComponent } from './components/timeline-node-header/timeline-node-header.component';\nimport { TimelineNodeHeaderInfoComponent } from './components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.component';\nimport { TimelineNodeBodyComponent } from './components/timeline-node-body/timeline-node-body.component';\nimport { TimelineNodeFooterComponent } from './components/timeline-node-footer/timeline-node-footer.component';\nimport { TimelineNodeComponent } from './components/timeline-node/timeline-node.component';\nimport { TimelineNodeHeaderInfoTitleDirective } from './directives/class-bindings/timeline-node-header-info-title.directive';\nimport { TimelineNodeHeaderInfoTextDirective } from './directives/class-bindings/timeline-node-header-info-text.directive';\nimport { TimelineHeaderInfoSubTitleDirective } from './directives/class-bindings/timeline-header-info-sub-title.directive';\nimport { TimelineSecondListOutletDirective } from './directives/timeline-second-list-outlet.directive';\n\n@NgModule({\n declarations: [\n TimelineComponent,\n TimelineNodeDefDirective,\n TimelineFirstListOutletDirective,\n TimelineNodeHeaderComponent,\n TimelineNodeHeaderInfoComponent,\n TimelineNodeBodyComponent,\n TimelineNodeFooterComponent,\n TimelineNodeComponent,\n TimelineNodeHeaderInfoTitleDirective,\n TimelineNodeHeaderInfoTextDirective,\n TimelineHeaderInfoSubTitleDirective,\n TimelineSecondListOutletDirective\n ],\n imports: [CommonModule, IconModule, TextModule],\n exports: [\n TimelineComponent,\n TimelineNodeDefDirective,\n TimelineNodeHeaderComponent,\n TimelineNodeHeaderInfoComponent,\n TimelineNodeBodyComponent,\n TimelineNodeFooterComponent,\n TimelineNodeComponent,\n TimelineNodeHeaderInfoTitleDirective,\n TimelineNodeHeaderInfoTextDirective,\n TimelineHeaderInfoSubTitleDirective\n ]\n})\nexport class TimelineModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.TimelinePositionControlService","i3.TimelineFirstListOutletDirective","i4.TimelineSecondListOutletDirective","i2"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-timeline.mjs","sources":["../../../../libs/core/src/lib/timeline/directives/timeline-first-list-outlet.directive.ts","../../../../libs/core/src/lib/timeline/directives/timeline-node-def.directive.ts","../../../../libs/core/src/lib/timeline/services/position-strategies/base-strategy.ts","../../../../libs/core/src/lib/timeline/services/position-strategies/vertical-double-sides-strategy.ts","../../../../libs/core/src/lib/timeline/services/position-strategies/horizontal-single-side-strategy.ts","../../../../libs/core/src/lib/timeline/services/position-strategies/horizontal-double-sides-strategy.ts","../../../../libs/core/src/lib/timeline/services/position-strategies/vertical-single-side-strategy.ts","../../../../libs/core/src/lib/timeline/services/position-strategies/position-strategy-factory.ts","../../../../libs/core/src/lib/timeline/services/timeline-position-control.service.ts","../../../../libs/core/src/lib/timeline/directives/timeline-second-list-outlet.directive.ts","../../../../libs/core/src/lib/timeline/timeline.component.ts","../../../../libs/core/src/lib/timeline/timeline.component.html","../../../../libs/core/src/lib/timeline/components/timeline-node-header/timeline-node-header.component.ts","../../../../libs/core/src/lib/timeline/components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.component.ts","../../../../libs/core/src/lib/timeline/components/timeline-node-body/timeline-node-body.component.ts","../../../../libs/core/src/lib/timeline/components/timeline-node-body/timeline-node-body.component.html","../../../../libs/core/src/lib/timeline/components/timeline-node-footer/timeline-node-footer.component.ts","../../../../libs/core/src/lib/timeline/components/timeline-node/timeline-node.component.ts","../../../../libs/core/src/lib/timeline/components/timeline-node/timeline-node.component.html","../../../../libs/core/src/lib/timeline/directives/class-bindings/timeline-node-header-info-title.directive.ts","../../../../libs/core/src/lib/timeline/directives/class-bindings/timeline-node-header-info-text.directive.ts","../../../../libs/core/src/lib/timeline/directives/class-bindings/timeline-header-info-sub-title.directive.ts","../../../../libs/core/src/lib/timeline/timeline.module.ts","../../../../libs/core/src/lib/timeline/fundamental-ngx-core-timeline.ts"],"sourcesContent":["import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineFirstListOutlet], [fd-timeline-first-list-outlet]'\n})\nexport class TimelineFirstListOutletDirective {\n /* Ref to ViewContainerRef instance*/\n constructor(public viewContainer: ViewContainerRef) {}\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\n\n/** Context provided to the timeline node component. */\nexport class TimelineNodeOutletContext<T> {\n /** Data for the node. */\n $implicit: T;\n\n /** Index location of the node. */\n index?: number;\n\n /** Length of the number of total dataNodes. */\n count?: number;\n\n constructor(data: T) {\n this.$implicit = data;\n }\n}\n\n@Directive({\n selector: '[fdTimelineNodeDef], [fd-timeline-node-def]'\n})\nexport class TimelineNodeDefDirective<T> {\n /** Data passed to the template*/\n @Input()\n fdTimelineNodeData: T;\n\n /** @hidden */\n constructor(public template: TemplateRef<any>) {}\n}\n","import { TimelineNodeComponent } from '../../components/timeline-node/timeline-node.component';\nimport { TimelineAxis } from '../../types';\n\nexport abstract class BaseStrategy {\n /** Offset between nodes lines */\n private readonly SMALL_OFFSET = 14;\n\n /** Offset between nodes lines with icon */\n private readonly BIG_OFFSET = 30;\n\n /** Offset for second list in within vertical axis */\n private readonly VERTICAL_TOP_LIST_OFFSET = 24;\n\n /** Calculate styles for timeline nodes */\n abstract calculateStyles(nodes: TimelineNodeComponent[]): any;\n\n /** @hidden */\n protected _getOffset(node: TimelineNodeComponent): number {\n return node.glyph ? this.BIG_OFFSET : this.SMALL_OFFSET;\n }\n\n /** @hidden */\n protected _getTwoListFromOne(nodes: TimelineNodeComponent[]): [TimelineNodeComponent[], TimelineNodeComponent[]] {\n const lastIndexInFirstList = Math.ceil(nodes.length / 2);\n const firstList = nodes.slice(0, lastIndexInFirstList);\n const secondList = nodes.slice(lastIndexInFirstList, nodes.length);\n return [firstList, secondList];\n }\n\n /** @hidden */\n protected _setStylesForSingleList(nodes: TimelineNodeComponent[], axis: TimelineAxis): void {\n const [offsetProperty, sizeProperty] =\n axis === 'horizontal' ? ['offsetLeft', 'width'] : ['offsetTop', 'height'];\n\n nodes.forEach((node, index) => {\n const nextNode = nodes[index + 1];\n // Set line size depend on where next node item is started\n if (nextNode) {\n const size =\n nextNode.el.nativeElement[offsetProperty] -\n node.el.nativeElement[offsetProperty] -\n this._getOffset(node);\n node.lineEl.nativeElement.style[sizeProperty] = size + 'px';\n } else {\n // Hide last timeline line in list\n node.lineEl.nativeElement.style.opacity = '0';\n }\n });\n }\n\n /** @hidden */\n protected _setStylesForDoubleList(nodes: TimelineNodeComponent[], axis: TimelineAxis): void {\n const [firstList, secondList] = this._getTwoListFromOne(nodes);\n const [offsetProp, sizeProp, sizeOffsetProp] =\n axis === 'horizontal' ? ['offsetLeft', 'width', 'offsetWidth'] : ['offsetTop', 'height', 'offsetHeight'];\n\n // Set styles for second list\n secondList.forEach((node, index) => {\n const el = node.el.nativeElement;\n const parallelNodeEl = firstList[index].el.nativeElement;\n\n // Handle case when bottom edge of item in second list higher than top edge of next item in first list\n // Actual only for vertical axis because items in horizontal axis have fixed size\n if (axis === 'vertical') {\n secondList[index].el.nativeElement.style.marginTop = `${this.SMALL_OFFSET}px`;\n const prevNode = secondList[index - 1];\n const diffBetween = prevNode\n ? parallelNodeEl.offsetTop +\n this.VERTICAL_TOP_LIST_OFFSET -\n (prevNode.el.nativeElement.offsetTop + prevNode.el.nativeElement.offsetHeight)\n : -1;\n if (diffBetween > 0) {\n prevNode.el.nativeElement.style.marginBottom = `${diffBetween}px`;\n }\n }\n\n // Set line size depend on where next node item is started\n const diff =\n parallelNodeEl[offsetProp] + parallelNodeEl[sizeOffsetProp] - el[offsetProp] - this._getOffset(node);\n node.lineEl.nativeElement.style[sizeProp] = diff + 'px';\n });\n\n // Set styles for first list\n firstList.forEach((node, index) => {\n const el = node.el.nativeElement;\n const parallelNode = secondList[index];\n // Set line size depend on where next node item is started\n if (parallelNode) {\n const diff = parallelNode.el.nativeElement[offsetProp] - el[offsetProp] - this._getOffset(node);\n node.lineEl.nativeElement.style[sizeProp] = diff + 'px';\n }\n });\n\n // Hide last timeline line in lists\n const lastNode =\n firstList.length === secondList.length\n ? secondList[secondList.length - 1]\n : firstList[firstList.length - 1];\n lastNode.lineEl.nativeElement.style.opacity = '0';\n }\n}\n","import { BaseStrategy } from './base-strategy';\nimport { TimelineNodeComponent } from '../../components/timeline-node/timeline-node.component';\n\nexport class VerticalDoubleSidesStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponent[]): void {\n this._setStylesForDoubleList(nodes, 'vertical');\n }\n}\n","import { BaseStrategy } from './base-strategy';\nimport { TimelineNodeComponent } from '../../components/timeline-node/timeline-node.component';\n\nexport class HorizontalSingleSideStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponent[]): any {\n this._setStylesForSingleList(nodes, 'horizontal');\n }\n}\n","import { BaseStrategy } from './base-strategy';\nimport { TimelineNodeComponent } from '../../components/timeline-node/timeline-node.component';\n\nexport class HorizontalDoubleSidesStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponent[]): any {\n this._setStylesForDoubleList(nodes, 'horizontal');\n }\n}\n","import { BaseStrategy } from './base-strategy';\nimport { TimelineNodeComponent } from '../../components/timeline-node/timeline-node.component';\n\nexport class VerticalSingleSideStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponent[]): void {\n this._setStylesForSingleList(nodes, 'vertical');\n }\n}\n","import { BaseStrategy } from './base-strategy';\nimport { TimeLinePositionStrategy } from '../../types';\nimport { VerticalDoubleSidesStrategy } from './vertical-double-sides-strategy';\nimport { HorizontalSingleSideStrategy } from './horizontal-single-side-strategy';\nimport { HorizontalDoubleSidesStrategy } from './horizontal-double-sides-strategy';\nimport { VerticalSingleSideStrategy } from './vertical-single-side-strategy';\n\nexport class PositionStrategyFactory {\n static getStrategy(strategy: TimeLinePositionStrategy): BaseStrategy {\n switch (strategy) {\n case 'vertical-right':\n return new VerticalSingleSideStrategy();\n case 'vertical-left':\n return new VerticalSingleSideStrategy();\n case 'vertical-double':\n return new VerticalDoubleSidesStrategy();\n case 'horizontal-top':\n return new HorizontalSingleSideStrategy();\n case 'horizontal-bottom':\n return new HorizontalSingleSideStrategy();\n case 'horizontal-double':\n return new HorizontalDoubleSidesStrategy();\n default:\n throw Error(`Unsupported strategy: ${strategy}`);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TimelineNodeComponent } from '../components/timeline-node/timeline-node.component';\nimport { TimeLinePositionStrategy } from '../types';\nimport { BaseStrategy } from './position-strategies/base-strategy';\nimport { PositionStrategyFactory } from './position-strategies/position-strategy-factory';\n\n@Injectable()\nexport class TimelinePositionControlService {\n /* List of TimelineNodeComponent */\n /** @hidden */\n private _nodeItems: TimelineNodeComponent[] = [];\n\n /* Current position strategy. It depends on axis and layout */\n /** @hidden */\n private _positionStrategy: BaseStrategy;\n\n /** Calculate styles for timeline nodes */\n calculatePositions(): void {\n this._positionStrategy.calculateStyles(this._nodeItems);\n }\n\n /** Set strategy for current axis and layout */\n setStrategy(strategy: TimeLinePositionStrategy): void {\n this._positionStrategy = PositionStrategyFactory.getStrategy(strategy);\n }\n\n /** Register TimelineNodeComponent */\n registerNode(node: TimelineNodeComponent): void {\n this._nodeItems.push(node);\n }\n /** Remove TimelineNodeComponent */\n removeNode(node: TimelineNodeComponent): void {\n this._nodeItems = this._nodeItems.filter((item) => item !== node);\n }\n}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineSecondListOutlet], [fd-timeline-second-list-outlet]'\n})\nexport class TimelineSecondListOutletDirective {\n /* Ref to ViewContainerRef instance*/\n constructor(public viewContainer: ViewContainerRef) {}\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Input,\n IterableChangeRecord,\n IterableDiffer,\n IterableDiffers,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n QueryList,\n SimpleChanges,\n TrackByFunction,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ViewportRuler } from '@angular/cdk/overlay';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { TimelineFirstListOutletDirective } from './directives/timeline-first-list-outlet.directive';\nimport { TimelineNodeDefDirective, TimelineNodeOutletContext } from './directives/timeline-node-def.directive';\nimport { TimelinePositionControlService } from './services/timeline-position-control.service';\nimport { TimelineAxis, TimeLinePositionStrategy, TimelineSidePosition } from './types';\nimport { TimelineSecondListOutletDirective } from './directives/timeline-second-list-outlet.directive';\n\n@Component({\n selector: 'fd-timeline',\n templateUrl: './timeline.component.html',\n styleUrls: ['./timeline.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TimelinePositionControlService],\n host: {\n role: 'timeline',\n 'arial-label': 'timeline',\n class: 'fd-timeline',\n '[class.fd-timeline--horizontal]': 'axis === \"horizontal\"',\n '[class.fd-timeline--vertical]': 'axis === \"vertical\"'\n }\n})\nexport class TimelineComponent<T> implements OnInit, OnDestroy, OnChanges, AfterViewInit {\n /**\n * Data array to render\n */\n @Input()\n dataSource: T[] = [];\n\n /**\n * Tracking function that will be used to check the differences in data changes.\n */\n @Input()\n trackBy: TrackByFunction<T>;\n\n /**\n * Axis for timeline\n */\n @Input()\n axis: TimelineAxis = 'vertical';\n\n /**\n * Layout for timeline\n */\n @Input()\n layout: TimelineSidePosition = 'right';\n\n /* First outlet within the timeline template where the dataNodes will be inserted. */\n /** @hidden */\n @ViewChild(TimelineFirstListOutletDirective, { static: true })\n private _firstListOutlet: TimelineFirstListOutletDirective;\n\n /* Second outlet within the timeline template where the dataNodes will be inserted. */\n /** @hidden */\n @ViewChild(TimelineSecondListOutletDirective, { static: true })\n private _secondListOutlet: TimelineSecondListOutletDirective;\n\n /** The timeline node template for the timeline */\n /** @hidden */\n @ContentChildren(TimelineNodeDefDirective, { descendants: true })\n private _nodeDefs: QueryList<TimelineNodeDefDirective<T>>;\n\n /** @hidden */\n _canShowFirstList = true;\n\n /** @hidden */\n _canShowSecondList = true;\n\n /** Differ used to find the changes in the data provided by the data source. */\n private _dataDifferForFirstList: IterableDiffer<T>;\n private _dataDifferForSecondList: IterableDiffer<T>;\n\n /** @hidden */\n private readonly _onDestroy = new Subject<void>();\n\n /** @hidden */\n constructor(\n private _differs: IterableDiffers,\n private _cd: ChangeDetectorRef,\n private _timelinePositionControlService: TimelinePositionControlService,\n private _viewportRuler: ViewportRuler,\n private _ngZone: NgZone\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._dataDifferForFirstList = this._differs.find([]).create(this.trackBy);\n this._dataDifferForSecondList = this._differs.find([]).create(this.trackBy);\n\n this._canShowFirstList = this.layout !== 'right' && this.layout !== 'bottom';\n this._canShowSecondList = this.layout !== 'left' && this.layout !== 'top';\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('axis' in changes || 'layout' in changes) {\n this._canShowFirstList = this.layout !== 'right' && this.layout !== 'bottom';\n this._canShowSecondList = this.layout !== 'left' && this.layout !== 'top';\n this._setPositionStrategy();\n this.switchDataSource(this.dataSource);\n }\n if ('dataSource' in changes && !changes['dataSource'].firstChange) {\n const value = changes['dataSource'].currentValue;\n this.switchDataSource(value);\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._viewportRuler\n .change(50)\n .pipe(takeUntil(this._onDestroy))\n // ViewportRuler invoked out of zone, that is why I need to invoke function in zone\n .subscribe(() => this._ngZone.run(() => this._timelinePositionControlService.calculatePositions()));\n this._setPositionStrategy();\n this.switchDataSource(this.dataSource);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._firstListOutlet.viewContainer.clear();\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n /**\n * Update state by new data source\n * If the data source is null, interpret this by clearing the node outlet.\n */\n /** @hidden */\n private switchDataSource(data: T[]): void {\n if (!data) {\n this._firstListOutlet.viewContainer.clear();\n return;\n }\n if (this._nodeDefs) {\n const [first, second] = this._splitList(data);\n this._renderNodeChanges(first, this._dataDifferForFirstList, this._firstListOutlet?.viewContainer);\n this._renderNodeChanges(second, this._dataDifferForSecondList, this._secondListOutlet?.viewContainer);\n this._cd.detectChanges();\n this._timelinePositionControlService.calculatePositions();\n this._cd.detectChanges();\n }\n }\n\n /** Check for changes made in the data and render each change (node added/removed/moved). */\n /** @hidden */\n private _renderNodeChanges(data: T[], differ: IterableDiffer<T>, vcr: ViewContainerRef): void {\n const changes = differ.diff(data);\n if (!changes) {\n return;\n }\n changes.forEachOperation(\n (item: IterableChangeRecord<T>, adjustedPreviousIndex: number | null, currentIndex: number | null) => {\n if (currentIndex != null && item.previousIndex === null) {\n this._insertNode(data[currentIndex], currentIndex, vcr);\n } else if (currentIndex === null && adjustedPreviousIndex != null) {\n vcr.remove(adjustedPreviousIndex);\n } else if (adjustedPreviousIndex != null && currentIndex != null) {\n const view = vcr.get(adjustedPreviousIndex);\n if (view) {\n vcr.move(view, currentIndex);\n }\n }\n }\n );\n }\n\n private _setPositionStrategy(): void {\n this._timelinePositionControlService.setStrategy(`${this.axis}-${this.layout}` as TimeLinePositionStrategy);\n }\n\n /**\n * Create the embedded view for the data node template and place it in the correct index location\n * within the data node view container.\n */\n /** @hidden */\n private _insertNode(nodeData: T, index: number, vcr: ViewContainerRef): void {\n const node = this._getNodeDef(index);\n\n // Node context that will be provided to created embedded view\n const context = new TimelineNodeOutletContext<T>(nodeData);\n\n vcr.createEmbeddedView(node.template, context, index);\n }\n\n /**\n * Finds the matching node definition that should be used for this node data. If there is only\n * one node definition, it is returned.\n */\n /** @hidden */\n private _getNodeDef(i: number): TimelineNodeDefDirective<T> {\n if (this._nodeDefs.length === 1) {\n return this._nodeDefs.first;\n }\n return this._nodeDefs[i];\n }\n\n /**\n * Split data list to two list first and second to represent timelines in two lists.\n */\n /** @hidden */\n private _splitList(dataSource: T[]): T[][] {\n let dataForFirstList: T[] = [];\n let dataForSecondList: T[] = [];\n if (this.layout === 'left' || this.layout === 'top') {\n dataForFirstList = [...dataSource];\n } else if (this.layout === 'right' || this.layout === 'bottom') {\n dataForSecondList = [...dataSource];\n } else {\n dataSource.forEach((item, index) => {\n if (index % 2 === 0) {\n dataForFirstList.push(item);\n } else {\n dataForSecondList.push(item);\n }\n });\n }\n return [dataForFirstList, dataForSecondList];\n }\n}\n","<div [class.fd-timeline__list--empty]=\"!_canShowFirstList\" class=\"fd-timeline__list fd-timeline__list--first\">\n <ng-container fdTimelineFirstListOutlet></ng-container>\n</div>\n<div class=\"fd-timeline__main-line\"></div>\n<div\n [class.fd-timeline__list--empty]=\"!_canShowSecondList\"\n [class.fd-timeline__list--with-offset]=\"_canShowFirstList\"\n class=\"fd-timeline__list fd-timeline__list--second\"\n>\n <ng-container fdTimelineSecondListOutlet></ng-container>\n</div>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-timeline-node-header',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-timeline__post-header-container'\n }\n})\nexport class TimelineNodeHeaderComponent {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-timeline-node-header-info',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-timeline__post-header'\n }\n})\nexport class TimelineNodeHeaderInfoComponent {}\n","import { ChangeDetectionStrategy, Component, Input, NgZone, ViewEncapsulation } from '@angular/core';\nimport { TimelinePositionControlService } from '../../services/timeline-position-control.service';\nimport { first } from 'rxjs/operators';\n\n@Component({\n selector: 'fd-timeline-node-body',\n templateUrl: './timeline-node-body.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-timeline__post-content'\n }\n})\nexport class TimelineNodeBodyComponent {\n /* Text content of timeline node*/\n @Input()\n content: string;\n\n /*\n The number of lines to be visible.\n If user doesn't provide it, all lines will be visible\n */\n @Input()\n maxLines: number;\n\n constructor(private _ngZone: NgZone, private _timelinePositionControlService: TimelinePositionControlService) {}\n\n calculatePositions(): void {\n this._ngZone.onStable.pipe(first()).subscribe(() => {\n this._timelinePositionControlService.calculatePositions();\n });\n }\n}\n","<fd-text\n [maxLines]=\"maxLines || 0\"\n [text]=\"content\"\n [isCollapsed]=\"!!maxLines\"\n [expandable]=\"!!maxLines\"\n (isCollapsedChange)=\"calculatePositions()\"\n></fd-text>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-timeline-node-footer',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-timeline__post-actions'\n },\n styles: [\n `\n .fd-timeline__post-actions button + button {\n margin-left: 0.5rem;\n }\n `\n ]\n})\nexport class TimelineNodeFooterComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { TimelinePositionControlService } from '../../services/timeline-position-control.service';\n\n@Component({\n selector: 'fd-timeline-node',\n templateUrl: './timeline-node.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-timeline__node-wrapper',\n '[class.fd-timeline__node-wrapper--icon]': '!!glyph'\n }\n})\nexport class TimelineNodeComponent implements OnInit, OnDestroy {\n /* Glyph of the current timeline node.*/\n @Input()\n glyph: string;\n\n @Input()\n ariaLabel = 'timelineitem';\n\n /* Reference to the line of timeline node*/\n @ViewChild('lineEl')\n lineEl: ElementRef;\n\n /** @hidden */\n constructor(public el: ElementRef, private _timelinePositionControl: TimelinePositionControlService) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._timelinePositionControl.registerNode(this);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._timelinePositionControl.removeNode(this);\n }\n}\n","<div class=\"fd-timeline__node-container\">\n <div class=\"fd-timeline__icon-wrapper\">\n <div class=\"fd-timeline__node\" [class.fd-timeline__node--icon]=\"!!glyph\">\n <fd-icon *ngIf=\"glyph\" [glyph]=\"glyph\"></fd-icon>\n </div>\n </div>\n <div #lineEl class=\"fd-timeline__connecting-line\"></div>\n</div>\n<div tabindex=\"0\" role=\"timelineitem\" [attr.aria-label]=\"ariaLabel\" class=\"fd-timeline__post\">\n <ng-content></ng-content>\n</div>\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineNodeHeaderInfoTitle], [fd-timeline-node-header-info-title]'\n})\nexport class TimelineNodeHeaderInfoTitleDirective {\n /** fd-timeline__post-header-title*/\n @HostBinding('class.fd-timeline__post-header-title')\n fdTimelineNodeHeaderInfoTitleClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineNodeHeaderInfoText], [fd-timeline-node-header-info-text]'\n})\nexport class TimelineNodeHeaderInfoTextDirective {\n /** add/remove fd-timeline__post-header-text class*/\n @HostBinding('class.fd-timeline__post-header-text')\n fdTimelineNodeHeaderInfoTextClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineHeaderInfoSubTitle], [fd-timeline-header-info-sub-title]'\n})\nexport class TimelineHeaderInfoSubTitleDirective {\n /** add/remove fd-timeline__post-subheader class*/\n @HostBinding('class.fd-timeline__post-subheader')\n fdTimelineNodeHeaderInfoSubTitleClass = true;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { TextModule } from '@fundamental-ngx/core/text';\n\nimport { TimelineComponent } from './timeline.component';\nimport { TimelineNodeDefDirective } from './directives/timeline-node-def.directive';\nimport { TimelineFirstListOutletDirective } from './directives/timeline-first-list-outlet.directive';\nimport { TimelineNodeHeaderComponent } from './components/timeline-node-header/timeline-node-header.component';\nimport { TimelineNodeHeaderInfoComponent } from './components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.component';\nimport { TimelineNodeBodyComponent } from './components/timeline-node-body/timeline-node-body.component';\nimport { TimelineNodeFooterComponent } from './components/timeline-node-footer/timeline-node-footer.component';\nimport { TimelineNodeComponent } from './components/timeline-node/timeline-node.component';\nimport { TimelineNodeHeaderInfoTitleDirective } from './directives/class-bindings/timeline-node-header-info-title.directive';\nimport { TimelineNodeHeaderInfoTextDirective } from './directives/class-bindings/timeline-node-header-info-text.directive';\nimport { TimelineHeaderInfoSubTitleDirective } from './directives/class-bindings/timeline-header-info-sub-title.directive';\nimport { TimelineSecondListOutletDirective } from './directives/timeline-second-list-outlet.directive';\n\n@NgModule({\n declarations: [\n TimelineComponent,\n TimelineNodeDefDirective,\n TimelineFirstListOutletDirective,\n TimelineNodeHeaderComponent,\n TimelineNodeHeaderInfoComponent,\n TimelineNodeBodyComponent,\n TimelineNodeFooterComponent,\n TimelineNodeComponent,\n TimelineNodeHeaderInfoTitleDirective,\n TimelineNodeHeaderInfoTextDirective,\n TimelineHeaderInfoSubTitleDirective,\n TimelineSecondListOutletDirective\n ],\n imports: [CommonModule, IconModule, TextModule],\n exports: [\n TimelineComponent,\n TimelineNodeDefDirective,\n TimelineNodeHeaderComponent,\n TimelineNodeHeaderInfoComponent,\n TimelineNodeBodyComponent,\n TimelineNodeFooterComponent,\n TimelineNodeComponent,\n TimelineNodeHeaderInfoTitleDirective,\n TimelineNodeHeaderInfoTextDirective,\n TimelineHeaderInfoSubTitleDirective\n ]\n})\nexport class TimelineModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.TimelinePositionControlService","i3.TimelineFirstListOutletDirective","i4.TimelineSecondListOutletDirective","i2"],"mappings":"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"}