@fundamental-ngx/core 0.61.2 → 0.62.0-rc.1

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 (137) hide show
  1. package/fesm2022/fundamental-ngx-core-action-sheet.mjs +3 -2
  2. package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-core-avatar-group.mjs +6 -4
  4. package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-core-bar.mjs +36 -11
  6. package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +11 -13
  8. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs +5 -7
  10. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-core-calendar.mjs +35 -31
  12. package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-core-carousel.mjs +2 -2
  14. package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-core-combobox.mjs +6 -4
  16. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-core-date-picker.mjs +3 -3
  18. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +3 -3
  20. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-core-datetime.mjs +7 -13
  22. package/fesm2022/fundamental-ngx-core-datetime.mjs.map +1 -1
  23. package/fesm2022/fundamental-ngx-core-dialog.mjs +19 -22
  24. package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
  25. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +13 -13
  26. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  27. package/fesm2022/fundamental-ngx-core-facets.mjs +1 -1
  28. package/fesm2022/fundamental-ngx-core-facets.mjs.map +1 -1
  29. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +2 -2
  30. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
  31. package/fesm2022/fundamental-ngx-core-grid-list.mjs +4 -4
  32. package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
  33. package/fesm2022/fundamental-ngx-core-info-label.mjs +2 -2
  34. package/fesm2022/fundamental-ngx-core-info-label.mjs.map +1 -1
  35. package/fesm2022/fundamental-ngx-core-link.mjs +2 -2
  36. package/fesm2022/fundamental-ngx-core-link.mjs.map +1 -1
  37. package/fesm2022/fundamental-ngx-core-list.mjs +47 -12
  38. package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
  39. package/fesm2022/fundamental-ngx-core-menu.mjs +5 -5
  40. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  41. package/fesm2022/fundamental-ngx-core-message-box.mjs +10 -10
  42. package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
  43. package/fesm2022/fundamental-ngx-core-message-strip.mjs +44 -49
  44. package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
  45. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +25 -23
  46. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  47. package/fesm2022/fundamental-ngx-core-multi-input.mjs +6 -8
  48. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  49. package/fesm2022/fundamental-ngx-core-nested-list.mjs +22 -21
  50. package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
  51. package/fesm2022/fundamental-ngx-core-notification.mjs +13 -16
  52. package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
  53. package/fesm2022/fundamental-ngx-core-object-identifier.mjs +2 -2
  54. package/fesm2022/fundamental-ngx-core-object-identifier.mjs.map +1 -1
  55. package/fesm2022/fundamental-ngx-core-object-number.mjs +2 -2
  56. package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
  57. package/fesm2022/fundamental-ngx-core-object-status.mjs +2 -2
  58. package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
  59. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +2 -2
  60. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  61. package/fesm2022/fundamental-ngx-core-pagination.mjs +11 -14
  62. package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
  63. package/fesm2022/fundamental-ngx-core-popover.mjs +5 -5
  64. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  65. package/fesm2022/fundamental-ngx-core-product-switch.mjs +8 -4
  66. package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
  67. package/fesm2022/fundamental-ngx-core-quick-view.mjs +3 -3
  68. package/fesm2022/fundamental-ngx-core-quick-view.mjs.map +1 -1
  69. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +4 -7
  70. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  71. package/fesm2022/fundamental-ngx-core-segmented-button.mjs +10 -11
  72. package/fesm2022/fundamental-ngx-core-segmented-button.mjs.map +1 -1
  73. package/fesm2022/fundamental-ngx-core-select.mjs +15 -8
  74. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  75. package/fesm2022/fundamental-ngx-core-settings.mjs +1 -1
  76. package/fesm2022/fundamental-ngx-core-settings.mjs.map +1 -1
  77. package/fesm2022/fundamental-ngx-core-shellbar.mjs +44 -27
  78. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  79. package/fesm2022/fundamental-ngx-core-slider.mjs +6 -6
  80. package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
  81. package/fesm2022/fundamental-ngx-core-split-button.mjs +2 -2
  82. package/fesm2022/fundamental-ngx-core-split-button.mjs.map +1 -1
  83. package/fesm2022/fundamental-ngx-core-step-input.mjs +2 -2
  84. package/fesm2022/fundamental-ngx-core-step-input.mjs.map +1 -1
  85. package/fesm2022/fundamental-ngx-core-switch.mjs +2 -2
  86. package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
  87. package/fesm2022/fundamental-ngx-core-tabs.mjs +2 -2
  88. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  89. package/fesm2022/fundamental-ngx-core-text.mjs +6 -4
  90. package/fesm2022/fundamental-ngx-core-text.mjs.map +1 -1
  91. package/fesm2022/fundamental-ngx-core-time-picker.mjs +4 -29
  92. package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
  93. package/fesm2022/fundamental-ngx-core-time.mjs +4 -4
  94. package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
  95. package/fesm2022/fundamental-ngx-core-timeline.mjs +1 -1
  96. package/fesm2022/fundamental-ngx-core-timeline.mjs.map +1 -1
  97. package/fesm2022/fundamental-ngx-core-title.mjs +7 -4
  98. package/fesm2022/fundamental-ngx-core-title.mjs.map +1 -1
  99. package/fesm2022/fundamental-ngx-core-token.mjs +12 -15
  100. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  101. package/fesm2022/fundamental-ngx-core-toolbar.mjs +5 -3
  102. package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
  103. package/fesm2022/fundamental-ngx-core-tree.mjs +4 -4
  104. package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
  105. package/fesm2022/fundamental-ngx-core-upload-collection.mjs +5 -5
  106. package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  107. package/fesm2022/fundamental-ngx-core-user-menu.mjs +6 -4
  108. package/fesm2022/fundamental-ngx-core-user-menu.mjs.map +1 -1
  109. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +3 -3
  110. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
  111. package/package.json +3 -3
  112. package/types/fundamental-ngx-core-bar.d.ts +14 -4
  113. package/types/fundamental-ngx-core-breadcrumb.d.ts +5 -5
  114. package/types/fundamental-ngx-core-busy-indicator.d.ts +3 -3
  115. package/types/fundamental-ngx-core-combobox.d.ts +4 -2
  116. package/types/fundamental-ngx-core-datetime.d.ts +1 -5
  117. package/types/fundamental-ngx-core-dialog.d.ts +4 -2
  118. package/types/fundamental-ngx-core-dynamic-page.d.ts +1 -2
  119. package/types/fundamental-ngx-core-list.d.ts +24 -5
  120. package/types/fundamental-ngx-core-menu.d.ts +2 -0
  121. package/types/fundamental-ngx-core-message-box.d.ts +1 -1
  122. package/types/fundamental-ngx-core-message-strip.d.ts +3 -12
  123. package/types/fundamental-ngx-core-multi-combobox.d.ts +1 -1
  124. package/types/fundamental-ngx-core-nested-list.d.ts +10 -10
  125. package/types/fundamental-ngx-core-notification.d.ts +5 -7
  126. package/types/fundamental-ngx-core-pagination.d.ts +3 -4
  127. package/types/fundamental-ngx-core-product-switch.d.ts +3 -0
  128. package/types/fundamental-ngx-core-rating-indicator.d.ts +3 -2
  129. package/types/fundamental-ngx-core-segmented-button.d.ts +3 -5
  130. package/types/fundamental-ngx-core-select.d.ts +5 -1
  131. package/types/fundamental-ngx-core-shared.d.ts +21 -20
  132. package/types/fundamental-ngx-core-shellbar.d.ts +7 -1
  133. package/types/fundamental-ngx-core-slider.d.ts +1 -1
  134. package/types/fundamental-ngx-core-text.d.ts +3 -1
  135. package/types/fundamental-ngx-core-time-picker.d.ts +1 -17
  136. package/types/fundamental-ngx-core-title.d.ts +3 -1
  137. package/types/fundamental-ngx-core-token.d.ts +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-timeline.mjs","sources":["../../../../libs/core/timeline/components/timeline-node-header/timeline-node-header.directive.ts","../../../../libs/core/timeline/services/position-strategies/base-strategy.ts","../../../../libs/core/timeline/services/position-strategies/horizontal-double-sides-strategy.ts","../../../../libs/core/timeline/services/position-strategies/horizontal-single-side-strategy.ts","../../../../libs/core/timeline/services/position-strategies/vertical-double-sides-strategy.ts","../../../../libs/core/timeline/services/position-strategies/vertical-single-side-strategy.ts","../../../../libs/core/timeline/services/position-strategies/position-strategy-factory.ts","../../../../libs/core/timeline/services/timeline-position-control.service.ts","../../../../libs/core/timeline/components/timeline-node/timeline-node.component.ts","../../../../libs/core/timeline/components/timeline-node/timeline-node.component.html","../../../../libs/core/timeline/directives/timeline-first-list-outlet.directive.ts","../../../../libs/core/timeline/directives/timeline-node-def.directive.ts","../../../../libs/core/timeline/directives/timeline-second-list-outlet.directive.ts","../../../../libs/core/timeline/timeline.component.ts","../../../../libs/core/timeline/timeline.component.html","../../../../libs/core/timeline/components/timeline-node-body/timeline-node-body.component.ts","../../../../libs/core/timeline/components/timeline-node-body/timeline-node-body.component.html","../../../../libs/core/timeline/components/timeline-node-footer/timeline-node-footer.component.ts","../../../../libs/core/timeline/components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.directive.ts","../../../../libs/core/timeline/directives/class-bindings/timeline-header-info-sub-title.directive.ts","../../../../libs/core/timeline/directives/class-bindings/timeline-node-header-info-text.directive.ts","../../../../libs/core/timeline/directives/class-bindings/timeline-node-header-info-title.directive.ts","../../../../libs/core/timeline/timeline.module.ts","../../../../libs/core/timeline/fundamental-ngx-core-timeline.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-timeline-node-header',\n host: {\n class: 'fd-timeline__post-header-container'\n },\n standalone: true\n})\nexport class TimelineNodeHeaderDirective {}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { TimelineAxis } from '../../types';\n\nexport abstract class BaseStrategy {\n /** Calculate styles for timeline nodes */\n abstract calculateStyles(nodes: TimelineNodeComponentInterface[]): any;\n\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 /** @hidden */\n protected _getOffset(node: TimelineNodeComponentInterface): number {\n return node.glyph ? this.BIG_OFFSET : this.SMALL_OFFSET;\n }\n\n /** @hidden */\n protected _getTwoListFromOne(\n nodes: TimelineNodeComponentInterface[]\n ): [TimelineNodeComponentInterface[], TimelineNodeComponentInterface[]] {\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: TimelineNodeComponentInterface[], 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: TimelineNodeComponentInterface[], 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 { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class HorizontalDoubleSidesStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): any {\n this._setStylesForDoubleList(nodes, 'horizontal');\n }\n}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class HorizontalSingleSideStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): any {\n this._setStylesForSingleList(nodes, 'horizontal');\n }\n}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class VerticalDoubleSidesStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): void {\n this._setStylesForDoubleList(nodes, 'vertical');\n }\n}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class VerticalSingleSideStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): void {\n this._setStylesForSingleList(nodes, 'vertical');\n }\n}\n","import { TimeLinePositionStrategy } from '../../types';\nimport { BaseStrategy } from './base-strategy';\nimport { HorizontalDoubleSidesStrategy } from './horizontal-double-sides-strategy';\nimport { HorizontalSingleSideStrategy } from './horizontal-single-side-strategy';\nimport { VerticalDoubleSidesStrategy } from './vertical-double-sides-strategy';\nimport { VerticalSingleSideStrategy } from './vertical-single-side-strategy';\n\nexport class PositionStrategyFactory {\n /** Get timeline position strategy */\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 { TimelineNodeComponentInterface } from '../components/timeline-node/timeline-node-component.interface';\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: TimelineNodeComponentInterface[] = [];\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: TimelineNodeComponentInterface): void {\n this._nodeItems.push(node);\n }\n\n /** Remove TimelineNodeComponent */\n removeNode(node: TimelineNodeComponentInterface): void {\n this._nodeItems = this._nodeItems.filter((item) => item !== node);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { TimelinePositionControlService } from '../../services/timeline-position-control.service';\nimport { TimelineNodeComponentInterface } from './timeline-node-component.interface';\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 imports: [IconComponent]\n})\nexport class TimelineNodeComponent implements TimelineNodeComponentInterface, OnInit, OnDestroy {\n /** Glyph of the current timeline node.*/\n @Input()\n glyph: string;\n\n /** Glyph font family */\n @Input()\n glyphFont: IconFont = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /** Aria label for the current timeline node. */\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(\n public el: ElementRef,\n private _timelinePositionControl: TimelinePositionControlService\n ) {}\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 @if (glyph) {\n <fd-icon [glyph]=\"glyph\" [font]=\"glyphFont\"></fd-icon>\n }\n </div>\n </div>\n <div #lineEl class=\"fd-timeline__connecting-line\"></div>\n</div>\n<div role=\"timelineitem\" [attr.aria-label]=\"ariaLabel\" class=\"fd-timeline__post\">\n <ng-content></ng-content>\n</div>\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineFirstListOutlet], [fd-timeline-first-list-outlet]',\n standalone: true\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 /** @hidden */\n constructor(data: T) {\n this.$implicit = data;\n }\n}\n\n@Directive({\n selector: '[fdTimelineNodeDef], [fd-timeline-node-def]',\n standalone: true\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 { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineSecondListOutlet], [fd-timeline-second-list-outlet]',\n standalone: true\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 DestroyRef,\n ElementRef,\n Input,\n IterableChangeRecord,\n IterableDiffer,\n IterableDiffers,\n OnChanges,\n OnDestroy,\n OnInit,\n QueryList,\n SimpleChanges,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { debounceTime } from 'rxjs';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { range } from '@fundamental-ngx/cdk/utils';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { TimelineNodeHeaderDirective } from './components/timeline-node-header/timeline-node-header.directive';\nimport { TimelineNodeComponent } from './components/timeline-node/timeline-node.component';\nimport { TimelineFirstListOutletDirective } from './directives/timeline-first-list-outlet.directive';\nimport { TimelineNodeDefDirective, TimelineNodeOutletContext } from './directives/timeline-node-def.directive';\nimport { TimelineSecondListOutletDirective } from './directives/timeline-second-list-outlet.directive';\nimport { TimelinePositionControlService } from './services/timeline-position-control.service';\nimport { TimeLinePositionStrategy, TimelineAxis, TimelineSidePosition } from './types';\n\n@Component({\n selector: 'fd-timeline',\n templateUrl: './timeline.component.html',\n styleUrl: './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 imports: [\n TimelineFirstListOutletDirective,\n TimelineSecondListOutletDirective,\n TimelineNodeComponent,\n TimelineNodeHeaderDirective,\n SkeletonComponent\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('loadingTemplate')\n _loadingTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ViewChild(TimelineFirstListOutletDirective, { static: true })\n private _firstListOutlet: TimelineFirstListOutletDirective;\n /* Second outlet within the timeline template where the dataNodes will be inserted. */\n\n /** @hidden */\n @ViewChild(TimelineSecondListOutletDirective, { static: true })\n private _secondListOutlet: TimelineSecondListOutletDirective;\n /** The timeline node template for the timeline */\n\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 /** @hidden */\n _loading = true;\n\n /** @hidden */\n readonly loadingRange = range(3);\n\n /** @hidden\n * Differ used to find the changes in the data provided by the data source.\n */\n private _dataDifferForFirstList: IterableDiffer<T>;\n\n /** @hidden */\n private _dataDifferForSecondList: IterableDiffer<T>;\n\n /** @hidden */\n private readonly _onDestroy = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n private _differs: IterableDiffers,\n private _cd: ChangeDetectorRef,\n private _timelinePositionControlService: TimelinePositionControlService,\n private _elementRef: ElementRef<HTMLElement>\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 resizeObservable(this._elementRef.nativeElement)\n .pipe(debounceTime(50), takeUntilDestroyed(this._onDestroy))\n .subscribe(() => this._timelinePositionControlService.calculatePositions());\n this._setPositionStrategy();\n this.switchDataSource(this.dataSource);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._firstListOutlet.viewContainer.clear();\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 this._loading = true;\n if (!data) {\n this._firstListOutlet.viewContainer.clear();\n this._firstListOutlet.viewContainer.createEmbeddedView(this._loadingTemplate);\n this._cd.detectChanges();\n this._timelinePositionControlService.calculatePositions();\n this._cd.detectChanges();\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._loading = false;\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 /** @hidden */\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.toArray()[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\n [class.fd-timeline__list--empty]=\"!_canShowFirstList && !_loading\"\n class=\"fd-timeline__list fd-timeline__list--first\"\n>\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\n<ng-template #loadingTemplate>\n @for (_ of loadingRange; track $index) {\n <fd-timeline-node>\n <fd-timeline-node-header>\n <fd-skeleton width=\"100%\" height=\"32px\">\n <svg:circle cx=\"16\" cy=\"16\" r=\"16\" rx=\"4\"></svg:circle>\n <svg:rect x=\"37\" y=\"0\" width=\"120\" height=\"12\" rx=\"4\"></svg:rect>\n <svg:rect x=\"37\" y=\"20\" width=\"80\" height=\"8\" rx=\"4\"></svg:rect>\n </fd-skeleton>\n </fd-timeline-node-header>\n\n <fd-skeleton type=\"text\"></fd-skeleton>\n </fd-timeline-node>\n }\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input, NgZone, ViewEncapsulation } from '@angular/core';\nimport { TextComponent } from '@fundamental-ngx/core/text';\nimport { first } from 'rxjs/operators';\nimport { TimelinePositionControlService } from '../../services/timeline-position-control.service';\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 imports: [TextComponent]\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 /** @hidden */\n constructor(\n private _ngZone: NgZone,\n private _timelinePositionControlService: TimelinePositionControlService\n ) {}\n\n /** @hidden */\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 standalone: true\n})\nexport class TimelineNodeFooterComponent {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-timeline-node-header-info',\n host: {\n class: 'fd-timeline__post-header'\n },\n standalone: true\n})\nexport class TimelineNodeHeaderInfoDirective {}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineHeaderInfoSubTitle], [fd-timeline-header-info-sub-title]',\n standalone: true\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 { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineNodeHeaderInfoText], [fd-timeline-node-header-info-text]',\n standalone: true\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: '[fdTimelineNodeHeaderInfoTitle], [fd-timeline-node-header-info-title]',\n standalone: true\n})\nexport class TimelineNodeHeaderInfoTitleDirective {\n /** fd-timeline__post-header-title*/\n @HostBinding('class.fd-timeline__post-header-title')\n fdTimelineNodeHeaderInfoTitleClass = true;\n}\n","import { NgModule } from '@angular/core';\n\nimport { TimelineNodeBodyComponent } from './components/timeline-node-body/timeline-node-body.component';\nimport { TimelineNodeFooterComponent } from './components/timeline-node-footer/timeline-node-footer.component';\nimport { TimelineNodeHeaderInfoDirective } from './components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.directive';\nimport { TimelineNodeHeaderDirective } from './components/timeline-node-header/timeline-node-header.directive';\nimport { TimelineNodeComponent } from './components/timeline-node/timeline-node.component';\nimport { TimelineHeaderInfoSubTitleDirective } from './directives/class-bindings/timeline-header-info-sub-title.directive';\nimport { TimelineNodeHeaderInfoTextDirective } from './directives/class-bindings/timeline-node-header-info-text.directive';\nimport { TimelineNodeHeaderInfoTitleDirective } from './directives/class-bindings/timeline-node-header-info-title.directive';\nimport { TimelineNodeDefDirective } from './directives/timeline-node-def.directive';\nimport { TimelineComponent } from './timeline.component';\n\n/**\n * @deprecated\n * Use direct imports of `TimelineComponent`,\n `TimelineNodeDefDirective`,\n `TimelineNodeHeaderComponent`,\n `TimelineNodeHeaderInfoComponent`,\n `TimelineNodeBodyComponent`,\n `TimelineNodeFooterComponent`,\n `TimelineNodeComponent`,\n `TimelineNodeHeaderInfoTitleDirective`,\n `TimelineNodeHeaderInfoTextDirective`,\n `TimelineHeaderInfoSubTitleDirective`\n */\n@NgModule({\n imports: [\n TimelineComponent,\n TimelineNodeDefDirective,\n TimelineNodeHeaderDirective,\n TimelineNodeHeaderInfoDirective,\n TimelineNodeBodyComponent,\n TimelineNodeFooterComponent,\n TimelineNodeComponent,\n TimelineNodeHeaderInfoTitleDirective,\n TimelineNodeHeaderInfoTextDirective,\n TimelineHeaderInfoSubTitleDirective\n ],\n exports: [\n TimelineComponent,\n TimelineNodeDefDirective,\n TimelineNodeHeaderDirective,\n TimelineNodeHeaderInfoDirective,\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 './index';\n"],"names":["i1.TimelinePositionControlService"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-timeline.mjs","sources":["../../../../libs/core/timeline/components/timeline-node-header/timeline-node-header.directive.ts","../../../../libs/core/timeline/services/position-strategies/base-strategy.ts","../../../../libs/core/timeline/services/position-strategies/horizontal-double-sides-strategy.ts","../../../../libs/core/timeline/services/position-strategies/horizontal-single-side-strategy.ts","../../../../libs/core/timeline/services/position-strategies/vertical-double-sides-strategy.ts","../../../../libs/core/timeline/services/position-strategies/vertical-single-side-strategy.ts","../../../../libs/core/timeline/services/position-strategies/position-strategy-factory.ts","../../../../libs/core/timeline/services/timeline-position-control.service.ts","../../../../libs/core/timeline/components/timeline-node/timeline-node.component.ts","../../../../libs/core/timeline/components/timeline-node/timeline-node.component.html","../../../../libs/core/timeline/directives/timeline-first-list-outlet.directive.ts","../../../../libs/core/timeline/directives/timeline-node-def.directive.ts","../../../../libs/core/timeline/directives/timeline-second-list-outlet.directive.ts","../../../../libs/core/timeline/timeline.component.ts","../../../../libs/core/timeline/timeline.component.html","../../../../libs/core/timeline/components/timeline-node-body/timeline-node-body.component.ts","../../../../libs/core/timeline/components/timeline-node-body/timeline-node-body.component.html","../../../../libs/core/timeline/components/timeline-node-footer/timeline-node-footer.component.ts","../../../../libs/core/timeline/components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.directive.ts","../../../../libs/core/timeline/directives/class-bindings/timeline-header-info-sub-title.directive.ts","../../../../libs/core/timeline/directives/class-bindings/timeline-node-header-info-text.directive.ts","../../../../libs/core/timeline/directives/class-bindings/timeline-node-header-info-title.directive.ts","../../../../libs/core/timeline/timeline.module.ts","../../../../libs/core/timeline/fundamental-ngx-core-timeline.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-timeline-node-header',\n host: {\n class: 'fd-timeline__post-header-container'\n },\n standalone: true\n})\nexport class TimelineNodeHeaderDirective {}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { TimelineAxis } from '../../types';\n\nexport abstract class BaseStrategy {\n /** Calculate styles for timeline nodes */\n abstract calculateStyles(nodes: TimelineNodeComponentInterface[]): any;\n\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 /** @hidden */\n protected _getOffset(node: TimelineNodeComponentInterface): number {\n return node.glyph ? this.BIG_OFFSET : this.SMALL_OFFSET;\n }\n\n /** @hidden */\n protected _getTwoListFromOne(\n nodes: TimelineNodeComponentInterface[]\n ): [TimelineNodeComponentInterface[], TimelineNodeComponentInterface[]] {\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: TimelineNodeComponentInterface[], 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: TimelineNodeComponentInterface[], 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 { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class HorizontalDoubleSidesStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): any {\n this._setStylesForDoubleList(nodes, 'horizontal');\n }\n}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class HorizontalSingleSideStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): any {\n this._setStylesForSingleList(nodes, 'horizontal');\n }\n}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class VerticalDoubleSidesStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): void {\n this._setStylesForDoubleList(nodes, 'vertical');\n }\n}\n","import { TimelineNodeComponentInterface } from '../../components/timeline-node/timeline-node-component.interface';\nimport { BaseStrategy } from './base-strategy';\n\nexport class VerticalSingleSideStrategy extends BaseStrategy {\n /** Calculate styles for timeline nodes */\n calculateStyles(nodes: TimelineNodeComponentInterface[]): void {\n this._setStylesForSingleList(nodes, 'vertical');\n }\n}\n","import { TimeLinePositionStrategy } from '../../types';\nimport { BaseStrategy } from './base-strategy';\nimport { HorizontalDoubleSidesStrategy } from './horizontal-double-sides-strategy';\nimport { HorizontalSingleSideStrategy } from './horizontal-single-side-strategy';\nimport { VerticalDoubleSidesStrategy } from './vertical-double-sides-strategy';\nimport { VerticalSingleSideStrategy } from './vertical-single-side-strategy';\n\nexport class PositionStrategyFactory {\n /** Get timeline position strategy */\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 { TimelineNodeComponentInterface } from '../components/timeline-node/timeline-node-component.interface';\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: TimelineNodeComponentInterface[] = [];\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: TimelineNodeComponentInterface): void {\n this._nodeItems.push(node);\n }\n\n /** Remove TimelineNodeComponent */\n removeNode(node: TimelineNodeComponentInterface): void {\n this._nodeItems = this._nodeItems.filter((item) => item !== node);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { TimelinePositionControlService } from '../../services/timeline-position-control.service';\nimport { TimelineNodeComponentInterface } from './timeline-node-component.interface';\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 imports: [IconComponent]\n})\nexport class TimelineNodeComponent implements TimelineNodeComponentInterface, OnInit, OnDestroy {\n /** Glyph of the current timeline node.*/\n @Input()\n glyph: string;\n\n /** Glyph font family */\n @Input()\n glyphFont: IconFont = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /** Aria label for the current timeline node. */\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(\n public el: ElementRef,\n private _timelinePositionControl: TimelinePositionControlService\n ) {}\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 @if (glyph) {\n <fd-icon [glyph]=\"glyph\" [font]=\"glyphFont\"></fd-icon>\n }\n </div>\n </div>\n <div #lineEl class=\"fd-timeline__connecting-line\"></div>\n</div>\n<div role=\"timelineitem\" [attr.aria-label]=\"ariaLabel\" class=\"fd-timeline__post\">\n <ng-content></ng-content>\n</div>\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineFirstListOutlet], [fd-timeline-first-list-outlet]',\n standalone: true\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 /** @hidden */\n constructor(data: T) {\n this.$implicit = data;\n }\n}\n\n@Directive({\n selector: '[fdTimelineNodeDef], [fd-timeline-node-def]',\n standalone: true\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 { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineSecondListOutlet], [fd-timeline-second-list-outlet]',\n standalone: true\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 DestroyRef,\n ElementRef,\n Input,\n IterableChangeRecord,\n IterableDiffer,\n IterableDiffers,\n OnChanges,\n OnDestroy,\n OnInit,\n QueryList,\n SimpleChanges,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { debounceTime } from 'rxjs';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { range } from '@fundamental-ngx/cdk/utils';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { TimelineNodeHeaderDirective } from './components/timeline-node-header/timeline-node-header.directive';\nimport { TimelineNodeComponent } from './components/timeline-node/timeline-node.component';\nimport { TimelineFirstListOutletDirective } from './directives/timeline-first-list-outlet.directive';\nimport { TimelineNodeDefDirective, TimelineNodeOutletContext } from './directives/timeline-node-def.directive';\nimport { TimelineSecondListOutletDirective } from './directives/timeline-second-list-outlet.directive';\nimport { TimelinePositionControlService } from './services/timeline-position-control.service';\nimport { TimeLinePositionStrategy, TimelineAxis, TimelineSidePosition } from './types';\n\n@Component({\n selector: 'fd-timeline',\n templateUrl: './timeline.component.html',\n styleUrl: './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 imports: [\n TimelineFirstListOutletDirective,\n TimelineSecondListOutletDirective,\n TimelineNodeComponent,\n TimelineNodeHeaderDirective,\n SkeletonComponent\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('loadingTemplate')\n _loadingTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ViewChild(TimelineFirstListOutletDirective, { static: true })\n private _firstListOutlet: TimelineFirstListOutletDirective;\n /* Second outlet within the timeline template where the dataNodes will be inserted. */\n\n /** @hidden */\n @ViewChild(TimelineSecondListOutletDirective, { static: true })\n private _secondListOutlet: TimelineSecondListOutletDirective;\n /** The timeline node template for the timeline */\n\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 /** @hidden */\n _loading = true;\n\n /** @hidden */\n readonly loadingRange = range(3);\n\n /** @hidden\n * Differ used to find the changes in the data provided by the data source.\n */\n private _dataDifferForFirstList: IterableDiffer<T>;\n\n /** @hidden */\n private _dataDifferForSecondList: IterableDiffer<T>;\n\n /** @hidden */\n private readonly _onDestroy = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n private _differs: IterableDiffers,\n private _cd: ChangeDetectorRef,\n private _timelinePositionControlService: TimelinePositionControlService,\n private _elementRef: ElementRef<HTMLElement>\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 resizeObservable(this._elementRef.nativeElement)\n .pipe(debounceTime(50), takeUntilDestroyed(this._onDestroy))\n .subscribe(() => this._timelinePositionControlService.calculatePositions());\n this._setPositionStrategy();\n this.switchDataSource(this.dataSource);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._firstListOutlet.viewContainer.clear();\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 this._loading = true;\n if (!data) {\n this._firstListOutlet.viewContainer.clear();\n this._firstListOutlet.viewContainer.createEmbeddedView(this._loadingTemplate);\n this._cd.detectChanges();\n this._timelinePositionControlService.calculatePositions();\n this._cd.detectChanges();\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._loading = false;\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 /** @hidden */\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.toArray()[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\n [class.fd-timeline__list--empty]=\"!_canShowFirstList && !_loading\"\n class=\"fd-timeline__list fd-timeline__list--first\"\n>\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\n<ng-template #loadingTemplate>\n @for (_ of loadingRange; track $index) {\n <fd-timeline-node>\n <fd-timeline-node-header>\n <fd-skeleton width=\"100%\" height=\"32px\">\n <svg:circle cx=\"16\" cy=\"16\" r=\"16\" rx=\"4\"></svg:circle>\n <svg:rect x=\"37\" y=\"0\" width=\"120\" height=\"12\" rx=\"4\"></svg:rect>\n <svg:rect x=\"37\" y=\"20\" width=\"80\" height=\"8\" rx=\"4\"></svg:rect>\n </fd-skeleton>\n </fd-timeline-node-header>\n\n <fd-skeleton type=\"text\"></fd-skeleton>\n </fd-timeline-node>\n }\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input, NgZone, ViewEncapsulation } from '@angular/core';\nimport { TextComponent } from '@fundamental-ngx/core/text';\nimport { first } from 'rxjs/operators';\nimport { TimelinePositionControlService } from '../../services/timeline-position-control.service';\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 imports: [TextComponent]\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 /** @hidden */\n constructor(\n private _ngZone: NgZone,\n private _timelinePositionControlService: TimelinePositionControlService\n ) {}\n\n /** @hidden */\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 standalone: true\n})\nexport class TimelineNodeFooterComponent {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-timeline-node-header-info',\n host: {\n class: 'fd-timeline__post-header'\n },\n standalone: true\n})\nexport class TimelineNodeHeaderInfoDirective {}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineHeaderInfoSubTitle], [fd-timeline-header-info-sub-title]',\n standalone: true\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 { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[fdTimelineNodeHeaderInfoText], [fd-timeline-node-header-info-text]',\n standalone: true\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: '[fdTimelineNodeHeaderInfoTitle], [fd-timeline-node-header-info-title]',\n standalone: true\n})\nexport class TimelineNodeHeaderInfoTitleDirective {\n /** fd-timeline__post-header-title*/\n @HostBinding('class.fd-timeline__post-header-title')\n fdTimelineNodeHeaderInfoTitleClass = true;\n}\n","import { NgModule } from '@angular/core';\n\nimport { TimelineNodeBodyComponent } from './components/timeline-node-body/timeline-node-body.component';\nimport { TimelineNodeFooterComponent } from './components/timeline-node-footer/timeline-node-footer.component';\nimport { TimelineNodeHeaderInfoDirective } from './components/timeline-node-header/timeline-node-header-info/timeline-node-header-info.directive';\nimport { TimelineNodeHeaderDirective } from './components/timeline-node-header/timeline-node-header.directive';\nimport { TimelineNodeComponent } from './components/timeline-node/timeline-node.component';\nimport { TimelineHeaderInfoSubTitleDirective } from './directives/class-bindings/timeline-header-info-sub-title.directive';\nimport { TimelineNodeHeaderInfoTextDirective } from './directives/class-bindings/timeline-node-header-info-text.directive';\nimport { TimelineNodeHeaderInfoTitleDirective } from './directives/class-bindings/timeline-node-header-info-title.directive';\nimport { TimelineNodeDefDirective } from './directives/timeline-node-def.directive';\nimport { TimelineComponent } from './timeline.component';\n\n/**\n * @deprecated\n * Use direct imports of `TimelineComponent`,\n `TimelineNodeDefDirective`,\n `TimelineNodeHeaderComponent`,\n `TimelineNodeHeaderInfoComponent`,\n `TimelineNodeBodyComponent`,\n `TimelineNodeFooterComponent`,\n `TimelineNodeComponent`,\n `TimelineNodeHeaderInfoTitleDirective`,\n `TimelineNodeHeaderInfoTextDirective`,\n `TimelineHeaderInfoSubTitleDirective`\n */\n@NgModule({\n imports: [\n TimelineComponent,\n TimelineNodeDefDirective,\n TimelineNodeHeaderDirective,\n TimelineNodeHeaderInfoDirective,\n TimelineNodeBodyComponent,\n TimelineNodeFooterComponent,\n TimelineNodeComponent,\n TimelineNodeHeaderInfoTitleDirective,\n TimelineNodeHeaderInfoTextDirective,\n TimelineHeaderInfoSubTitleDirective\n ],\n exports: [\n TimelineComponent,\n TimelineNodeDefDirective,\n TimelineNodeHeaderDirective,\n TimelineNodeHeaderInfoDirective,\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 './index';\n"],"names":["i1.TimelinePositionControlService"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, input, inject, ElementRef, effect, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
2
+ import { InjectionToken, input, booleanAttribute, inject, ElementRef, effect, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
3
 
4
4
  /**
5
5
  * Injection token for providing a default header size to title components.
@@ -50,6 +50,8 @@ class TitleComponent extends TitleToken {
50
50
  */
51
51
  constructor() {
52
52
  super();
53
+ /** Whether this title should clamp at two lines of text. */
54
+ this.twoLineClamp = input(false, { ...(ngDevMode ? { debugName: "twoLineClamp" } : {}), transform: booleanAttribute });
53
55
  /**
54
56
  * Explicit header size (1-6) for the title styling.
55
57
  * If not provided, uses the injected DEFAULT_TITLE_SIZE or automatically detected from the host element's tag name.
@@ -102,15 +104,16 @@ class TitleComponent extends TitleToken {
102
104
  this._appliedHeaderSize = Number(headerSize);
103
105
  }
104
106
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: TitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
105
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.0", type: TitleComponent, isStandalone: true, selector: "[fd-title], [fdTitle]", inputs: { headerSize: { classPropertyName: "headerSize", publicName: "headerSize", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.fd-title--wrap": "wrap()" }, classAttribute: "fd-title" }, providers: [{ provide: TitleToken, useExisting: TitleComponent }], exportAs: ["fd-title"], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".fd-title{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;--fdTitle_Font_Size:1rem;--fdTitle_Color:var(--sapTextColor);--fdTitle_Font_Family:var(--sapFontHeaderFamily);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdTitle_Color);font-family:var(--sapFontFamily);font-family:var(--fdTitle_Font_Family);font-size:var(--sapFontSize);font-size:var(--fdTitle_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-title:after,.fd-title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-title--h1{--fdTitle_Font_Size:var(--sapFontHeader1Size)}.fd-title--h2{--fdTitle_Font_Size:var(--sapFontHeader2Size)}.fd-title--h3{--fdTitle_Font_Size:var(--sapFontHeader3Size)}.fd-title--h4{--fdTitle_Font_Size:var(--sapFontHeader4Size)}.fd-title--h5{--fdTitle_Font_Size:var(--sapFontHeader5Size)}.fd-title--h6{--fdTitle_Font_Size:var(--sapFontHeader6Size)}.fd-title--wrap{overflow:auto;text-overflow:clip;white-space:normal}\n/*! Bundled license information:\n\nfundamental-styles/dist/title.css:\n (*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.0", type: TitleComponent, isStandalone: true, selector: "[fd-title], [fdTitle]", inputs: { twoLineClamp: { classPropertyName: "twoLineClamp", publicName: "twoLineClamp", isSignal: true, isRequired: false, transformFunction: null }, headerSize: { classPropertyName: "headerSize", publicName: "headerSize", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.fd-title--wrap": "wrap()", "class.fd-title--two-line-clamp": "twoLineClamp()" }, classAttribute: "fd-title" }, providers: [{ provide: TitleToken, useExisting: TitleComponent }], exportAs: ["fd-title"], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".fd-title{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;--fdTitle_Font_Size:1rem;--fdTitle_Color:var(--sapTextColor);--fdTitle_Font_Family:var(--sapFontHeaderFamily);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdTitle_Color);font-family:var(--sapFontFamily);font-family:var(--fdTitle_Font_Family);font-size:var(--sapFontSize);font-size:var(--fdTitle_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-title:after,.fd-title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-title--h1{--fdTitle_Font_Size:var(--sapFontHeader1Size)}.fd-title--h2{--fdTitle_Font_Size:var(--sapFontHeader2Size)}.fd-title--h3{--fdTitle_Font_Size:var(--sapFontHeader3Size)}.fd-title--h4{--fdTitle_Font_Size:var(--sapFontHeader4Size)}.fd-title--h5{--fdTitle_Font_Size:var(--sapFontHeader5Size)}.fd-title--h6{--fdTitle_Font_Size:var(--sapFontHeader6Size)}.fd-title--wrap{overflow:auto;text-overflow:clip;white-space:normal}\n/*! Bundled license information:\n\nfundamental-styles/dist/title.css:\n (*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
106
108
  }
107
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: TitleComponent, decorators: [{
108
110
  type: Component,
109
111
  args: [{ selector: '[fd-title], [fdTitle]', exportAs: 'fd-title', template: '<ng-content></ng-content>', host: {
110
112
  class: 'fd-title',
111
- '[class.fd-title--wrap]': 'wrap()'
113
+ '[class.fd-title--wrap]': 'wrap()',
114
+ '[class.fd-title--two-line-clamp]': 'twoLineClamp()'
112
115
  }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: TitleToken, useExisting: TitleComponent }], styles: [".fd-title{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;--fdTitle_Font_Size:1rem;--fdTitle_Color:var(--sapTextColor);--fdTitle_Font_Family:var(--sapFontHeaderFamily);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdTitle_Color);font-family:var(--sapFontFamily);font-family:var(--fdTitle_Font_Family);font-size:var(--sapFontSize);font-size:var(--fdTitle_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-title:after,.fd-title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-title--h1{--fdTitle_Font_Size:var(--sapFontHeader1Size)}.fd-title--h2{--fdTitle_Font_Size:var(--sapFontHeader2Size)}.fd-title--h3{--fdTitle_Font_Size:var(--sapFontHeader3Size)}.fd-title--h4{--fdTitle_Font_Size:var(--sapFontHeader4Size)}.fd-title--h5{--fdTitle_Font_Size:var(--sapFontHeader5Size)}.fd-title--h6{--fdTitle_Font_Size:var(--sapFontHeader6Size)}.fd-title--wrap{overflow:auto;text-overflow:clip;white-space:normal}\n/*! Bundled license information:\n\nfundamental-styles/dist/title.css:\n (*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"] }]
113
- }], ctorParameters: () => [], propDecorators: { headerSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerSize", required: false }] }], wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }] } });
116
+ }], ctorParameters: () => [], propDecorators: { twoLineClamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "twoLineClamp", required: false }] }], headerSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerSize", required: false }] }], wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }] } });
114
117
 
115
118
  /**
116
119
  * @deprecated Use the standalone `TitleComponent` directly instead. Import `TitleComponent` in your component's imports array.
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-title.mjs","sources":["../../../../libs/core/title/title.component.ts","../../../../libs/core/title/title.module.ts","../../../../libs/core/title/fundamental-ngx-core-title.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n InjectionToken,\n ViewEncapsulation,\n effect,\n inject,\n input\n} from '@angular/core';\n\n/**\n * Valid HTML heading sizes for the title component.\n * Corresponds to h1 through h6 HTML elements.\n */\nexport type HeaderSizes = 1 | 2 | 3 | 4 | 5 | 6;\n\n/**\n * Injection token for providing a default header size to title components.\n *\n * **How it works:**\n * 1. A parent component (like dialog-header) provides this token with a value (e.g., 5)\n * 2. Child title components automatically receive that value through dependency injection\n * 3. The title uses this default only if no explicit `headerSize` input is provided\n *\n * **Example:**\n * ```typescript\n * // Parent provides the default\n * @Component({\n * providers: [{ provide: DEFAULT_TITLE_SIZE, useValue: 5 }]\n * })\n * export class DialogHeaderComponent { }\n *\n * // Child receives the default automatically\n * <fd-dialog-header>\n * <h1 fd-title>Title</h1> <!-- Will be size 5 -->\n * </fd-dialog-header>\n * ```\n */\nexport const DEFAULT_TITLE_SIZE = new InjectionToken<HeaderSizes>('DEFAULT_TITLE_SIZE');\n\n/**\n * Abstract token for providing access to the title component's element reference.\n * Used for dependency injection when components need to access the title element.\n */\nexport abstract class TitleToken {\n abstract elementRef: ElementRef;\n}\n\n/**\n * Title component for rendering semantic headings with Fundamental styles.\n *\n * Applied as an attribute directive to heading elements (h1-h6).\n * Automatically detects heading level from the tag name or can be explicitly set via `headerSize`.\n */\n@Component({\n // eslint-disable-next-line\n selector: '[fd-title], [fdTitle]',\n exportAs: 'fd-title',\n template: '<ng-content></ng-content>',\n host: {\n class: 'fd-title',\n '[class.fd-title--wrap]': 'wrap()'\n },\n styleUrl: './title.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: TitleToken, useExisting: TitleComponent }]\n})\nexport class TitleComponent extends TitleToken {\n /**\n * Explicit header size (1-6) for the title styling.\n * If not provided, uses the injected DEFAULT_TITLE_SIZE or automatically detected from the host element's tag name.\n * @default null\n */\n readonly headerSize = input<HeaderSizes | null>(null);\n\n /**\n * Enables text wrapping. When `false`, text truncates with ellipsis.\n * @default false\n */\n readonly wrap = input(false);\n\n /**\n * Default header size provided by parent component via DI.\n * Will be `null` if no parent provides DEFAULT_TITLE_SIZE.\n * @hidden\n */\n private readonly _defaultHeaderSize = inject(DEFAULT_TITLE_SIZE, { optional: true });\n\n /**\n * Element reference to the host element.\n * @hidden\n */\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * Tracks the currently applied header size to avoid unnecessary DOM updates.\n * @hidden\n */\n private _appliedHeaderSize: number | undefined;\n\n /**\n * Returns the element reference for external access via TitleToken.\n */\n get elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /**\n * @hidden\n * Effect that reactively updates the header size class when headerSize input changes.\n * Runs on initialization and whenever the headerSize signal updates.\n */\n constructor() {\n super();\n effect(() => {\n this._setHeaderSize();\n });\n }\n\n /**\n * Applies the appropriate header size class to the host element.\n * Priority: explicit headerSize > injected default > element tag name.\n * @hidden\n */\n private _setHeaderSize(): void {\n let headerSize: HeaderSizes | string | null = this.headerSize() ?? this._defaultHeaderSize ?? null;\n\n // If no explicit size provided, try to extract from element tag name\n if (headerSize === null) {\n const tagName = this._elementRef.nativeElement.tagName;\n // Only extract from valid heading tags (H1-H6)\n if (/^H[1-6]$/i.test(tagName)) {\n headerSize = tagName.charAt(1);\n } else {\n // Default to h5 for non-heading elements (like div with role=\"heading\")\n headerSize = 5;\n }\n }\n\n if (this._appliedHeaderSize !== undefined) {\n this._elementRef.nativeElement.classList.remove(`fd-title--h${this._appliedHeaderSize}`);\n }\n this._elementRef.nativeElement.classList.add(`fd-title--h${headerSize}`);\n this._appliedHeaderSize = Number(headerSize);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TitleComponent } from './title.component';\n\n/**\n * @deprecated Use the standalone `TitleComponent` directly instead. Import `TitleComponent` in your component's imports array.\n * This module will be removed in a future version.\n */\n@NgModule({\n imports: [TitleComponent],\n exports: [TitleComponent]\n})\nexport class TitleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-title.mjs","sources":["../../../../libs/core/title/title.component.ts","../../../../libs/core/title/title.module.ts","../../../../libs/core/title/fundamental-ngx-core-title.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n InjectionToken,\n ViewEncapsulation,\n booleanAttribute,\n effect,\n inject,\n input\n} from '@angular/core';\n\n/**\n * Valid HTML heading sizes for the title component.\n * Corresponds to h1 through h6 HTML elements.\n */\nexport type HeaderSizes = 1 | 2 | 3 | 4 | 5 | 6;\n\n/**\n * Injection token for providing a default header size to title components.\n *\n * **How it works:**\n * 1. A parent component (like dialog-header) provides this token with a value (e.g., 5)\n * 2. Child title components automatically receive that value through dependency injection\n * 3. The title uses this default only if no explicit `headerSize` input is provided\n *\n * **Example:**\n * ```typescript\n * // Parent provides the default\n * @Component({\n * providers: [{ provide: DEFAULT_TITLE_SIZE, useValue: 5 }]\n * })\n * export class DialogHeaderComponent { }\n *\n * // Child receives the default automatically\n * <fd-dialog-header>\n * <h1 fd-title>Title</h1> <!-- Will be size 5 -->\n * </fd-dialog-header>\n * ```\n */\nexport const DEFAULT_TITLE_SIZE = new InjectionToken<HeaderSizes>('DEFAULT_TITLE_SIZE');\n\n/**\n * Abstract token for providing access to the title component's element reference.\n * Used for dependency injection when components need to access the title element.\n */\nexport abstract class TitleToken {\n abstract elementRef: ElementRef;\n}\n\n/**\n * Title component for rendering semantic headings with Fundamental styles.\n *\n * Applied as an attribute directive to heading elements (h1-h6).\n * Automatically detects heading level from the tag name or can be explicitly set via `headerSize`.\n */\n@Component({\n // eslint-disable-next-line\n selector: '[fd-title], [fdTitle]',\n exportAs: 'fd-title',\n template: '<ng-content></ng-content>',\n host: {\n class: 'fd-title',\n '[class.fd-title--wrap]': 'wrap()',\n '[class.fd-title--two-line-clamp]': 'twoLineClamp()'\n },\n styleUrl: './title.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: TitleToken, useExisting: TitleComponent }]\n})\nexport class TitleComponent extends TitleToken {\n /** Whether this title should clamp at two lines of text. */\n readonly twoLineClamp = input(false, { transform: booleanAttribute });\n\n /**\n * Explicit header size (1-6) for the title styling.\n * If not provided, uses the injected DEFAULT_TITLE_SIZE or automatically detected from the host element's tag name.\n * @default null\n */\n readonly headerSize = input<HeaderSizes | null>(null);\n\n /**\n * Enables text wrapping. When `false`, text truncates with ellipsis.\n * @default false\n */\n readonly wrap = input(false);\n\n /**\n * Default header size provided by parent component via DI.\n * Will be `null` if no parent provides DEFAULT_TITLE_SIZE.\n * @hidden\n */\n private readonly _defaultHeaderSize = inject(DEFAULT_TITLE_SIZE, { optional: true });\n\n /**\n * Element reference to the host element.\n * @hidden\n */\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * Tracks the currently applied header size to avoid unnecessary DOM updates.\n * @hidden\n */\n private _appliedHeaderSize: number | undefined;\n\n /**\n * Returns the element reference for external access via TitleToken.\n */\n get elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /**\n * @hidden\n * Effect that reactively updates the header size class when headerSize input changes.\n * Runs on initialization and whenever the headerSize signal updates.\n */\n constructor() {\n super();\n effect(() => {\n this._setHeaderSize();\n });\n }\n\n /**\n * Applies the appropriate header size class to the host element.\n * Priority: explicit headerSize > injected default > element tag name.\n * @hidden\n */\n private _setHeaderSize(): void {\n let headerSize: HeaderSizes | string | null = this.headerSize() ?? this._defaultHeaderSize ?? null;\n\n // If no explicit size provided, try to extract from element tag name\n if (headerSize === null) {\n const tagName = this._elementRef.nativeElement.tagName;\n // Only extract from valid heading tags (H1-H6)\n if (/^H[1-6]$/i.test(tagName)) {\n headerSize = tagName.charAt(1);\n } else {\n // Default to h5 for non-heading elements (like div with role=\"heading\")\n headerSize = 5;\n }\n }\n\n if (this._appliedHeaderSize !== undefined) {\n this._elementRef.nativeElement.classList.remove(`fd-title--h${this._appliedHeaderSize}`);\n }\n this._elementRef.nativeElement.classList.add(`fd-title--h${headerSize}`);\n this._appliedHeaderSize = Number(headerSize);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TitleComponent } from './title.component';\n\n/**\n * @deprecated Use the standalone `TitleComponent` directly instead. Import `TitleComponent` in your component's imports array.\n * This module will be removed in a future version.\n */\n@NgModule({\n imports: [TitleComponent],\n exports: [TitleComponent]\n})\nexport class TitleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}