@fundamental-ngx/core 0.35.1 → 0.35.2-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) 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/directives/avatar-group-overflow-button.directive.d.ts +4 -2
  6. package/avatar-group/esm2020/directives/avatar-group-overflow-button.directive.mjs +5 -1
  7. package/avatar-group/fesm2015/fundamental-ngx-core-avatar-group.mjs +4 -0
  8. package/avatar-group/fesm2015/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  9. package/avatar-group/fesm2020/fundamental-ngx-core-avatar-group.mjs +4 -0
  10. package/avatar-group/fesm2020/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  11. package/avatar-group/package.json +1 -1
  12. package/bar/esm2020/bar.component.mjs +2 -2
  13. package/bar/fesm2015/fundamental-ngx-core-bar.mjs +2 -2
  14. package/bar/fesm2020/fundamental-ngx-core-bar.mjs +2 -2
  15. package/bar/package.json +1 -1
  16. package/breadcrumb/package.json +1 -1
  17. package/busy-indicator/package.json +1 -1
  18. package/button/package.json +1 -1
  19. package/calendar/package.json +1 -1
  20. package/card/package.json +1 -1
  21. package/carousel/package.json +1 -1
  22. package/checkbox/package.json +1 -1
  23. package/combobox/package.json +1 -1
  24. package/date-picker/package.json +1 -1
  25. package/datetime/package.json +1 -1
  26. package/datetime-picker/package.json +1 -1
  27. package/dialog/package.json +1 -1
  28. package/dynamic-page/package.json +1 -1
  29. package/dynamic-side-content/package.json +1 -1
  30. package/esm2020/avatar-group/directives/avatar-group-overflow-button.directive.mjs +5 -1
  31. package/esm2020/bar/bar.component.mjs +2 -2
  32. package/esm2020/fixed-card-layout/fixed-card-layout.component.mjs +17 -26
  33. package/esm2020/fundamental-ngx.module.mjs +8 -4
  34. package/esm2020/info-label/info-label.component.mjs +12 -4
  35. package/esm2020/info-label/info-label.module.mjs +5 -4
  36. package/esm2020/input-group/input-group.component.mjs +3 -3
  37. package/esm2020/overflow-layout/directives/overflow-expand.directive.mjs +36 -0
  38. package/esm2020/overflow-layout/directives/overflow-item-container-ref.directive.mjs +46 -0
  39. package/esm2020/overflow-layout/directives/overflow-item-ref.directive.mjs +57 -0
  40. package/esm2020/overflow-layout/directives/overflow-layout-item-container.directive.mjs +26 -0
  41. package/esm2020/overflow-layout/directives/overflow-layout-item.directive.mjs +100 -0
  42. package/esm2020/overflow-layout/directives/overflow-layout-popover-content.directive.mjs +68 -0
  43. package/esm2020/overflow-layout/fundamental-ngx-core-overflow-layout.mjs +5 -0
  44. package/esm2020/overflow-layout/index.mjs +15 -0
  45. package/esm2020/overflow-layout/interfaces/overflow-container.interface.mjs +2 -0
  46. package/esm2020/overflow-layout/interfaces/overflow-expand.interface.mjs +2 -0
  47. package/esm2020/overflow-layout/interfaces/overflow-item-ref.interface.mjs +2 -0
  48. package/esm2020/overflow-layout/interfaces/overflow-item.interface.mjs +2 -0
  49. package/esm2020/overflow-layout/interfaces/overflow-popover-content.interface.mjs +2 -0
  50. package/esm2020/overflow-layout/overflow-layout.component.mjs +300 -0
  51. package/esm2020/overflow-layout/overflow-layout.module.mjs +52 -0
  52. package/esm2020/overflow-layout/tokens/overflow-container.token.mjs +3 -0
  53. package/esm2020/overflow-layout/tokens/overflow-expand.token.mjs +3 -0
  54. package/esm2020/overflow-layout/tokens/overflow-item-ref.token.mjs +3 -0
  55. package/esm2020/overflow-layout/tokens/overflow-item.token.mjs +3 -0
  56. package/esm2020/public_api.mjs +2 -1
  57. package/esm2020/select/select.component.mjs +1 -2
  58. package/esm2020/tabs/tab-panel/tab-panel.component.mjs +8 -3
  59. package/esm2020/theming/theming.service.mjs +1 -1
  60. package/esm2020/wizard/wizard.component.mjs +4 -3
  61. package/esm2020/wizard/wizard.module.mjs +5 -4
  62. package/facets/package.json +1 -1
  63. package/feed-input/package.json +1 -1
  64. package/feed-list-item/package.json +1 -1
  65. package/fesm2015/fundamental-ngx-core-avatar-group.mjs +4 -0
  66. package/fesm2015/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  67. package/fesm2015/fundamental-ngx-core-bar.mjs +2 -2
  68. package/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs +16 -25
  69. package/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
  70. package/fesm2015/fundamental-ngx-core-info-label.mjs +15 -6
  71. package/fesm2015/fundamental-ngx-core-info-label.mjs.map +1 -1
  72. package/fesm2015/fundamental-ngx-core-input-group.mjs +2 -2
  73. package/fesm2015/fundamental-ngx-core-input-group.mjs.map +1 -1
  74. package/fesm2015/fundamental-ngx-core-overflow-layout.mjs +672 -0
  75. package/fesm2015/fundamental-ngx-core-overflow-layout.mjs.map +1 -0
  76. package/fesm2015/fundamental-ngx-core-select.mjs +0 -1
  77. package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
  78. package/fesm2015/fundamental-ngx-core-tabs.mjs +7 -2
  79. package/fesm2015/fundamental-ngx-core-tabs.mjs.map +1 -1
  80. package/fesm2015/fundamental-ngx-core-theming.mjs.map +1 -1
  81. package/fesm2015/fundamental-ngx-core-wizard.mjs +7 -5
  82. package/fesm2015/fundamental-ngx-core-wizard.mjs.map +1 -1
  83. package/fesm2015/fundamental-ngx-core.mjs +8 -3
  84. package/fesm2015/fundamental-ngx-core.mjs.map +1 -1
  85. package/fesm2020/fundamental-ngx-core-avatar-group.mjs +4 -0
  86. package/fesm2020/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  87. package/fesm2020/fundamental-ngx-core-bar.mjs +2 -2
  88. package/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs +16 -25
  89. package/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
  90. package/fesm2020/fundamental-ngx-core-info-label.mjs +15 -6
  91. package/fesm2020/fundamental-ngx-core-info-label.mjs.map +1 -1
  92. package/fesm2020/fundamental-ngx-core-input-group.mjs +2 -2
  93. package/fesm2020/fundamental-ngx-core-input-group.mjs.map +1 -1
  94. package/fesm2020/fundamental-ngx-core-overflow-layout.mjs +660 -0
  95. package/fesm2020/fundamental-ngx-core-overflow-layout.mjs.map +1 -0
  96. package/fesm2020/fundamental-ngx-core-select.mjs +0 -1
  97. package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
  98. package/fesm2020/fundamental-ngx-core-tabs.mjs +7 -2
  99. package/fesm2020/fundamental-ngx-core-tabs.mjs.map +1 -1
  100. package/fesm2020/fundamental-ngx-core-theming.mjs.map +1 -1
  101. package/fesm2020/fundamental-ngx-core-wizard.mjs +7 -5
  102. package/fesm2020/fundamental-ngx-core-wizard.mjs.map +1 -1
  103. package/fesm2020/fundamental-ngx-core.mjs +8 -3
  104. package/fesm2020/fundamental-ngx-core.mjs.map +1 -1
  105. package/file-uploader/package.json +1 -1
  106. package/fixed-card-layout/esm2020/fixed-card-layout.component.mjs +17 -26
  107. package/fixed-card-layout/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs +16 -25
  108. package/fixed-card-layout/fesm2015/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
  109. package/fixed-card-layout/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs +16 -25
  110. package/fixed-card-layout/fesm2020/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
  111. package/fixed-card-layout/fixed-card-layout.component.d.ts +4 -6
  112. package/fixed-card-layout/package.json +1 -1
  113. package/flexible-column-layout/package.json +1 -1
  114. package/form/package.json +1 -1
  115. package/formatted-text/package.json +1 -1
  116. package/fundamental-ngx.module.d.ts +2 -1
  117. package/grid-list/package.json +1 -1
  118. package/icon/package.json +1 -1
  119. package/illustrated-message/package.json +1 -1
  120. package/infinite-scroll/package.json +1 -1
  121. package/info-label/esm2020/info-label.component.mjs +12 -4
  122. package/info-label/esm2020/info-label.module.mjs +5 -4
  123. package/info-label/fesm2015/fundamental-ngx-core-info-label.mjs +15 -6
  124. package/info-label/fesm2015/fundamental-ngx-core-info-label.mjs.map +1 -1
  125. package/info-label/fesm2020/fundamental-ngx-core-info-label.mjs +15 -6
  126. package/info-label/fesm2020/fundamental-ngx-core-info-label.mjs.map +1 -1
  127. package/info-label/info-label.component.d.ts +11 -3
  128. package/info-label/info-label.module.d.ts +2 -1
  129. package/info-label/package.json +1 -1
  130. package/inline-help/package.json +1 -1
  131. package/input-group/esm2020/input-group.component.mjs +3 -3
  132. package/input-group/fesm2015/fundamental-ngx-core-input-group.mjs +2 -2
  133. package/input-group/fesm2015/fundamental-ngx-core-input-group.mjs.map +1 -1
  134. package/input-group/fesm2020/fundamental-ngx-core-input-group.mjs +2 -2
  135. package/input-group/fesm2020/fundamental-ngx-core-input-group.mjs.map +1 -1
  136. package/input-group/package.json +1 -1
  137. package/layout-grid/package.json +1 -1
  138. package/layout-panel/package.json +1 -1
  139. package/link/package.json +1 -1
  140. package/list/package.json +1 -1
  141. package/menu/package.json +1 -1
  142. package/message-box/package.json +1 -1
  143. package/message-strip/package.json +1 -1
  144. package/message-toast/package.json +1 -1
  145. package/micro-process-flow/package.json +1 -1
  146. package/mobile-mode/package.json +1 -1
  147. package/multi-input/package.json +1 -1
  148. package/nested-list/package.json +1 -1
  149. package/notification/package.json +1 -1
  150. package/object-identifier/package.json +1 -1
  151. package/object-marker/package.json +1 -1
  152. package/object-number/package.json +1 -1
  153. package/object-status/package.json +1 -1
  154. package/overflow-layout/README.md +7 -0
  155. package/overflow-layout/directives/overflow-expand.directive.d.ts +15 -0
  156. package/overflow-layout/directives/overflow-item-container-ref.directive.d.ts +25 -0
  157. package/overflow-layout/directives/overflow-item-ref.directive.d.ts +42 -0
  158. package/overflow-layout/directives/overflow-layout-item-container.directive.d.ts +16 -0
  159. package/overflow-layout/directives/overflow-layout-item.directive.d.ts +38 -0
  160. package/overflow-layout/directives/overflow-layout-popover-content.directive.d.ts +31 -0
  161. package/overflow-layout/esm2020/directives/overflow-expand.directive.mjs +36 -0
  162. package/overflow-layout/esm2020/directives/overflow-item-container-ref.directive.mjs +46 -0
  163. package/overflow-layout/esm2020/directives/overflow-item-ref.directive.mjs +57 -0
  164. package/overflow-layout/esm2020/directives/overflow-layout-item-container.directive.mjs +26 -0
  165. package/overflow-layout/esm2020/directives/overflow-layout-item.directive.mjs +100 -0
  166. package/overflow-layout/esm2020/directives/overflow-layout-popover-content.directive.mjs +68 -0
  167. package/overflow-layout/esm2020/fundamental-ngx-core-overflow-layout.mjs +5 -0
  168. package/overflow-layout/esm2020/index.mjs +15 -0
  169. package/overflow-layout/esm2020/interfaces/overflow-container.interface.mjs +2 -0
  170. package/overflow-layout/esm2020/interfaces/overflow-expand.interface.mjs +2 -0
  171. package/overflow-layout/esm2020/interfaces/overflow-item-ref.interface.mjs +2 -0
  172. package/overflow-layout/esm2020/interfaces/overflow-item.interface.mjs +2 -0
  173. package/overflow-layout/esm2020/interfaces/overflow-popover-content.interface.mjs +2 -0
  174. package/overflow-layout/esm2020/overflow-layout.component.mjs +300 -0
  175. package/overflow-layout/esm2020/overflow-layout.module.mjs +52 -0
  176. package/overflow-layout/esm2020/tokens/overflow-container.token.mjs +3 -0
  177. package/overflow-layout/esm2020/tokens/overflow-expand.token.mjs +3 -0
  178. package/overflow-layout/esm2020/tokens/overflow-item-ref.token.mjs +3 -0
  179. package/overflow-layout/esm2020/tokens/overflow-item.token.mjs +3 -0
  180. package/overflow-layout/fesm2015/fundamental-ngx-core-overflow-layout.mjs +672 -0
  181. package/overflow-layout/fesm2015/fundamental-ngx-core-overflow-layout.mjs.map +1 -0
  182. package/overflow-layout/fesm2020/fundamental-ngx-core-overflow-layout.mjs +660 -0
  183. package/overflow-layout/fesm2020/fundamental-ngx-core-overflow-layout.mjs.map +1 -0
  184. package/overflow-layout/fundamental-ngx-core-overflow-layout.d.ts +5 -0
  185. package/overflow-layout/index.d.ts +14 -0
  186. package/overflow-layout/interfaces/overflow-container.interface.d.ts +4 -0
  187. package/overflow-layout/interfaces/overflow-expand.interface.d.ts +11 -0
  188. package/overflow-layout/interfaces/overflow-item-ref.interface.d.ts +38 -0
  189. package/overflow-layout/interfaces/overflow-item.interface.d.ts +20 -0
  190. package/overflow-layout/interfaces/overflow-popover-content.interface.d.ts +11 -0
  191. package/overflow-layout/overflow-layout.component.d.ts +131 -0
  192. package/overflow-layout/overflow-layout.module.d.ts +16 -0
  193. package/overflow-layout/package.json +53 -0
  194. package/overflow-layout/tokens/overflow-container.token.d.ts +3 -0
  195. package/overflow-layout/tokens/overflow-expand.token.d.ts +3 -0
  196. package/overflow-layout/tokens/overflow-item-ref.token.d.ts +3 -0
  197. package/overflow-layout/tokens/overflow-item.token.d.ts +3 -0
  198. package/package.json +9 -1
  199. package/pagination/package.json +1 -1
  200. package/panel/package.json +1 -1
  201. package/popover/package.json +1 -1
  202. package/product-switch/package.json +1 -1
  203. package/progress-indicator/package.json +1 -1
  204. package/public_api.d.ts +1 -0
  205. package/quick-view/package.json +1 -1
  206. package/radio/package.json +1 -1
  207. package/rating-indicator/package.json +1 -1
  208. package/resizable-card-layout/package.json +1 -1
  209. package/scroll-spy/package.json +1 -1
  210. package/scrollbar/package.json +1 -1
  211. package/segmented-button/package.json +1 -1
  212. package/select/esm2020/select.component.mjs +1 -2
  213. package/select/fesm2015/fundamental-ngx-core-select.mjs +0 -1
  214. package/select/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
  215. package/select/fesm2020/fundamental-ngx-core-select.mjs +0 -1
  216. package/select/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
  217. package/select/package.json +1 -1
  218. package/shared/package.json +1 -1
  219. package/shellbar/package.json +1 -1
  220. package/side-navigation/package.json +1 -1
  221. package/slider/package.json +1 -1
  222. package/split-button/package.json +1 -1
  223. package/splitter/package.json +1 -1
  224. package/status-indicator/package.json +1 -1
  225. package/step-input/package.json +1 -1
  226. package/switch/package.json +1 -1
  227. package/table/package.json +1 -1
  228. package/tabs/esm2020/tab-panel/tab-panel.component.mjs +8 -3
  229. package/tabs/fesm2015/fundamental-ngx-core-tabs.mjs +7 -2
  230. package/tabs/fesm2015/fundamental-ngx-core-tabs.mjs.map +1 -1
  231. package/tabs/fesm2020/fundamental-ngx-core-tabs.mjs +7 -2
  232. package/tabs/fesm2020/fundamental-ngx-core-tabs.mjs.map +1 -1
  233. package/tabs/package.json +1 -1
  234. package/text/package.json +1 -1
  235. package/theming/esm2020/theming.service.mjs +1 -1
  236. package/theming/fesm2015/fundamental-ngx-core-theming.mjs.map +1 -1
  237. package/theming/fesm2020/fundamental-ngx-core-theming.mjs.map +1 -1
  238. package/theming/package.json +1 -1
  239. package/tile/package.json +1 -1
  240. package/time/package.json +1 -1
  241. package/time-picker/package.json +1 -1
  242. package/timeline/package.json +1 -1
  243. package/title/package.json +1 -1
  244. package/token/package.json +1 -1
  245. package/toolbar/package.json +1 -1
  246. package/tree/package.json +1 -1
  247. package/upload-collection/package.json +1 -1
  248. package/utils/package.json +1 -1
  249. package/vertical-navigation/package.json +1 -1
  250. package/wizard/esm2020/wizard.component.mjs +4 -3
  251. package/wizard/esm2020/wizard.module.mjs +5 -4
  252. package/wizard/fesm2015/fundamental-ngx-core-wizard.mjs +7 -5
  253. package/wizard/fesm2015/fundamental-ngx-core-wizard.mjs.map +1 -1
  254. package/wizard/fesm2020/fundamental-ngx-core-wizard.mjs +7 -5
  255. package/wizard/fesm2020/fundamental-ngx-core-wizard.mjs.map +1 -1
  256. package/wizard/package.json +1 -1
  257. package/wizard/wizard.module.d.ts +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-fixed-card-layout.mjs","sources":["../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout-item/fixed-card-layout-item.component.ts","../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout.component.ts","../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout.component.html","../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout.module.ts","../../../../libs/core/src/lib/fixed-card-layout/fundamental-ngx-core-fixed-card-layout.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef } from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\n\n@Component({\n selector: 'fd-fixed-card-layout-item',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: block'\n }\n})\nexport class FixedCardLayoutItemComponent implements FocusableOption {\n constructor(private _elementRef: ElementRef) {}\n\n /** Set focus on the element. */\n focus(): void {\n const header = this._elementRef.nativeElement.querySelector('.fd-card__header');\n if (header) {\n header.focus();\n }\n }\n}\n","import {\n AfterContentInit,\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { CdkDrag, CdkDragDrop, CdkDragEnter, CdkDropList } from '@angular/cdk/drag-drop';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nimport { resizeObservable, RtlService } from '@fundamental-ngx/core/utils';\nimport { FixedCardLayoutItemComponent } from './fixed-card-layout-item/fixed-card-layout-item.component';\nimport { coerceNumberProperty, NumberInput } from '@angular/cdk/coercion';\n\nconst PX_IN_REM = 16;\nconst CARD_MINIMUM_WIDTH = 320; // 320px = 20rem\nconst CARD_GAP_WIDTH = 16; // 16px = 1rem\nconst DRAG_START_DELAY = 200; // in ms\nconst MAX_COLUMNS = 10;\n\nlet cardRank = 1;\n\n@Directive({ selector: '[fdCardDef]' })\nexport class CardDefinitionDirective {\n /**\n * Behaves like rank of card.\n * Useful in creating layout again after drag and drop.\n */\n @Input()\n set fdCardDef(value: NumberInput) {\n if (!value) {\n return;\n }\n\n this._fdCardDef = coerceNumberProperty(value);\n }\n get fdCardDef(): number {\n return this._fdCardDef;\n }\n\n /** @hidden */\n private _fdCardDef: number = cardRank++;\n\n /** @hidden */\n constructor(public template: TemplateRef<any>) {}\n}\n\nexport interface Layout {\n numberOfColumns?: number;\n screenSize: number;\n}\n\nexport interface CardDropped {\n previousIndex: number;\n currentIndex: number;\n layoutColumns: number;\n items: CardDefinitionDirective[];\n}\n\ntype Columns = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n\nexport type ColumnsWidthConfig = { [C in Columns]?: number };\n\ntype CardColumn = CardDefinitionDirective[];\n\n@Component({\n selector: 'fd-fixed-card-layout',\n templateUrl: './fixed-card-layout.component.html',\n styleUrls: ['./fixed-card-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-fixed-card-layout'\n }\n})\nexport class FixedCardLayoutComponent\n implements OnInit, AfterContentInit, AfterViewInit, AfterViewChecked, OnChanges, OnDestroy\n{\n /** Drag drop behavior can be disabled */\n @Input()\n disableDragDrop: boolean;\n\n /** Drag start delay in milliseconds, default to 200ms for safe scrolling on mobile with touchscreen */\n @Input()\n dragStartDelay = DRAG_START_DELAY;\n\n /** Card's minimum width in pixels. */\n @Input()\n set cardMinimumWidth(value: NumberInput) {\n const coercedValue = coerceNumberProperty(value);\n\n if (coercedValue < CARD_MINIMUM_WIDTH) {\n return;\n }\n\n this._cardMinimumWidth = coercedValue;\n\n // If component is ready, do the recalculation.\n if (this._layout) {\n this.updateLayout();\n }\n }\n get cardMinimumWidth(): number {\n return this._cardMinimumWidth;\n }\n\n /** Config with the width ratios that should take every column. Flex-grow principe. Missed values set to 0. s*/\n @Input()\n columnsWidthConfig: ColumnsWidthConfig;\n\n /** Limit the number of columns. Default is 10. */\n @Input()\n maxColumns = MAX_COLUMNS;\n\n /** Event to emit, when layout changes */\n @Output()\n layoutChange: EventEmitter<Layout> = new EventEmitter<Layout>();\n\n /** Event to emit on Card dragged and dropped */\n @Output()\n cardDraggedDropped: EventEmitter<CardDropped> = new EventEmitter<CardDropped>();\n\n /** @hidden */\n @ContentChildren(CardDefinitionDirective)\n _cards: QueryList<CardDefinitionDirective>;\n\n /** @hidden */\n @ViewChildren(FixedCardLayoutItemComponent)\n _cardContainers: QueryList<FixedCardLayoutItemComponent>;\n\n /** @hidden */\n @ViewChildren('dropList', { read: CdkDropList })\n _cardWrappers: QueryList<CdkDropList>;\n\n /** @hidden */\n @ViewChild('layout')\n _layout: ElementRef;\n\n /** @hidden */\n _cardsArray: Array<CardDefinitionDirective>;\n\n /** @hidden Number of Columns in layout */\n _numberOfColumns: number;\n\n /** @hidden */\n _cardColumns: CardColumn[];\n\n /** @hidden*/\n _containerHeight: number;\n\n /** @hidden handles rtl service */\n _dir = 'ltr';\n\n /** @hidden first number is the CardDefinition rank, i.e. id */\n _groupIndexes = new Map<number, number>();\n\n /** @hidden first number is the CardDefinition rank, i.e. id */\n _itemIndexes = new Map<number, number>();\n\n /** @hidden first number is the CardDefinition rank, i.e. id */\n _singleItemColumns = new Set<number>();\n\n /** @hidden */\n _columnsWidth = new Map<number, number>();\n\n /** @hidden Return available width for fixed card layout */\n get _availableWidth(): number {\n return this._layout.nativeElement.getBoundingClientRect().width;\n }\n\n /** @hidden */\n _placeholderMargin: { [klass: string]: string };\n\n /** @hidden */\n private _previousNumberOfColumns: number;\n\n /** @hidden FocusKeyManager instance */\n private _keyboardEventsManager: FocusKeyManager<FixedCardLayoutItemComponent>;\n\n /** @hidden */\n private _cardMinimumWidth = CARD_MINIMUM_WIDTH;\n\n /** @hidden */\n private _shouldCalculateContainerHeight = false;\n\n /** @hidden An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(\n private readonly _changeDetector: ChangeDetectorRef,\n @Optional() private readonly _rtlService: RtlService\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._subscribeToRtl();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._listenOnCardsChange();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._processCards();\n this._listenOnResize();\n this._accessibilitySetup();\n }\n\n /** @hidden */\n ngAfterViewChecked(): void {\n /**\n * Update column layout when orientation of screen changes.\n * actual width is returned when view is stable. In AfterViewInit, correct value does not come.\n */\n this.updateLayout();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._cards?.length) {\n return;\n }\n\n if ('maxColumns' in changes) {\n this.updateLayout();\n } else if ('columnsWidthConfig' in changes) {\n this._setColumnsWidth();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n handleKeydown(event: KeyboardEvent): void {\n event.stopImmediatePropagation();\n\n if (this._keyboardEventsManager) {\n this._keyboardEventsManager.onKeydown(event);\n }\n }\n\n /** Distribute cards on window resize */\n updateLayout(): void {\n if (!this._cards.length) {\n return;\n }\n\n const possibleNumberOfColumns = getNumberOfColumns(this._availableWidth, this.cardMinimumWidth);\n\n this._numberOfColumns = Math.min(\n possibleNumberOfColumns,\n this._cards.length,\n this.maxColumns || MAX_COLUMNS,\n MAX_COLUMNS\n );\n\n this.layoutChange.emit({\n numberOfColumns: this._numberOfColumns,\n screenSize: this._availableWidth\n });\n\n if (this._previousNumberOfColumns !== this._numberOfColumns) {\n this._previousNumberOfColumns = this._numberOfColumns;\n this._updateColumns();\n return;\n }\n\n this._setColumnsWidth();\n }\n\n /** @hidden Calculate container height basing on the card wrapper columns */\n _calculateContainerHeight(additionalSpace: number = 0): void {\n this._changeDetector.detectChanges();\n\n const wrapperColumns = this._cardColumns.map((column) =>\n column\n .map((card) => this._cardWrappers.find((wrapper) => wrapper.getSortedItems()[0].data === card)?.element)\n .filter((v): v is ElementRef<HTMLElement> => !!v)\n );\n\n const columnsHeights = wrapperColumns\n .map((column) => column.map((card) => card.nativeElement.getBoundingClientRect().height))\n .map((column) => column.reduce((height, cardHeight) => (height += cardHeight), 0));\n\n // +4px because it's the top & bottom borders of card placeholder\n this._containerHeight = Math.max(...columnsHeights) + 4 + additionalSpace;\n\n this._changeDetector.detectChanges();\n }\n\n /** @hidden */\n _enterPredicate = (_: CdkDrag, drop: CdkDropList): boolean => {\n // We should update container's height & its children rects (to react when drag moves into the list) before we entered any drop list.\n // That's why it's done here instead of cdkDropListEntered. As this predicate being called many times here is the optimization.\n if (this._shouldCalculateContainerHeight) {\n this._shouldCalculateContainerHeight = false;\n\n // Placeholder doesn't have margin set yet but we need to count it\n // Margin will be set only if there are already items in container\n const additionalSpace = drop.getSortedItems().length ? PX_IN_REM : 0;\n\n this._calculateContainerHeight(additionalSpace);\n }\n\n return true;\n };\n\n /** @hidden */\n _onDropListExited(): void {\n this._shouldCalculateContainerHeight = true;\n }\n\n /** @hidden */\n _onDropListEntered(event: CdkDragEnter): void {\n const containerItemCardDef = (event.container.getSortedItems()[0].data as CardDefinitionDirective).fdCardDef;\n const dragItemCardDef = (event.item.data as CardDefinitionDirective).fdCardDef;\n\n this._setPlaceholderStyle(containerItemCardDef !== dragItemCardDef);\n }\n\n /** @hidden */\n _onDragDropped(event: CdkDragDrop<number, number>): void {\n if (event.container.data === event.previousContainer.data) {\n return;\n }\n\n const movedCard = event.previousContainer.getSortedItems()[0].data;\n const replacedCard = event.container.getSortedItems()[0].data;\n\n const movedCardColumn = this._cardColumns.find((column) =>\n column.find((card) => card.fdCardDef === movedCard.fdCardDef)\n );\n const replacedCardColumn = this._cardColumns.find((column) =>\n column.find((card) => card.fdCardDef === replacedCard.fdCardDef)\n );\n\n // If we dragged the card from the same column as the column we're dropping into\n // There may be a situation where the order shouldn't change but since there are a different drop lists it will change\n // We should prevent this\n if (movedCardColumn === replacedCardColumn && movedCardColumn?.length === 2) {\n if (movedCard.fdCardDef < replacedCard.fdCardDef && event.previousContainer.data < event.container.data) {\n return;\n }\n\n if (movedCard.fdCardDef > replacedCard.fdCardDef && event.previousContainer.data > event.container.data) {\n return;\n }\n }\n\n this._processDragDrop(event.previousContainer.data, event.container.data, movedCard, replacedCard);\n }\n\n /** @hidden For the keyboard drag&drop directive */\n _customMoveFn = (group: CardColumn, indexFrom: number, indexTo: number): void => {\n const movedCard = group[indexFrom];\n const replacedCard = group[indexTo];\n\n const indexFromArray = this._cardsArray.findIndex((card) => card.fdCardDef === movedCard.fdCardDef);\n const indexToArray = this._cardsArray.findIndex((card) => card.fdCardDef === replacedCard.fdCardDef);\n\n this._processDragDrop(indexFromArray, indexToArray, movedCard, replacedCard);\n };\n\n /** @hidden For the keyboard drag&drop directive */\n _customTransferFn = (prevGroup: CardColumn, nextGroup: CardColumn, indexFrom: number, indexTo: number): void => {\n const movedCard = prevGroup[indexFrom];\n const replacedCard = nextGroup[indexTo];\n\n const indexFromArray = this._cardsArray.findIndex((card) => card.fdCardDef === movedCard.fdCardDef);\n const indexToArray = this._cardsArray.findIndex((card) => card.fdCardDef === replacedCard.fdCardDef);\n\n this._processDragDrop(indexFromArray, indexToArray, movedCard, replacedCard);\n };\n\n /** @hidden */\n _setPlaceholderStyle(value: boolean): void {\n this._placeholderMargin = value ? { 'margin-bottom': '1rem' } : {};\n }\n\n /** @hidden Arranges cards on drop of dragged card */\n private _processDragDrop(\n prevIndex: number,\n newIndex: number,\n prevCard: CardDefinitionDirective,\n newCard: CardDefinitionDirective\n ): void {\n // moveItemInArray from CDK won't work as it changes order of other cards\n const replacedCard = this._cardsArray[newIndex];\n this._cardsArray[newIndex] = this._cardsArray[prevIndex];\n this._cardsArray[prevIndex] = replacedCard;\n\n adjustCardRank(prevCard, newCard);\n\n this.cardDraggedDropped.emit({\n previousIndex: prevIndex,\n currentIndex: newIndex,\n layoutColumns: this._numberOfColumns,\n items: this._cards.toArray()\n });\n\n this._updateColumns();\n }\n\n /** @hidden */\n private _accessibilitySetup(): void {\n this._keyboardEventsManager = new FocusKeyManager(this._cardContainers).withWrap();\n }\n\n /** @hidden Rtl change subscription */\n private _subscribeToRtl(): void {\n this._rtlService?.rtl.pipe(takeUntil(this._onDestroy$)).subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n this._changeDetector.detectChanges();\n });\n }\n\n /** @hidden Listen window resize and distribute cards on column change */\n private _listenOnResize(): void {\n resizeObservable(this._layout.nativeElement)\n .pipe(debounceTime(60), takeUntil(this._onDestroy$))\n .subscribe(() => this.updateLayout());\n }\n\n /** @hidden Listen card change and distribute cards on column change */\n private _listenOnCardsChange(): void {\n this._cards.changes.subscribe(() => {\n this._processCards();\n this._updateColumns();\n });\n }\n\n /** @hidden Renders layout on column changes */\n private _updateColumns(): void {\n this._setCardColumns();\n this._setColumnsWidth(false);\n this._calculateContainerHeight();\n }\n\n /** @hidden */\n private _processCards(): void {\n this._cardsArray = this._cards\n .toArray()\n .sort((firstCard, secondCard) => firstCard.fdCardDef - secondCard.fdCardDef);\n\n this._changeDetector.detectChanges();\n\n this.updateLayout();\n }\n\n /** @hidden Distribute cards among columns to arrange them in \"Z\" flow */\n private _setCardColumns(): void {\n this._groupIndexes = new Map<number, number>();\n this._itemIndexes = new Map<number, number>();\n this._singleItemColumns = new Set<number>();\n\n const columns: CardColumn[] = new Array(this._numberOfColumns).fill(0).map(() => new Array(0));\n\n this._cardsArray.forEach((card, i) => {\n const currColumnIndex = i % this._numberOfColumns;\n const itemIndex = columns[currColumnIndex].length;\n\n columns[currColumnIndex].push(card);\n\n this._groupIndexes.set(card.fdCardDef, currColumnIndex);\n this._itemIndexes.set(card.fdCardDef, itemIndex);\n });\n\n this._cardColumns = columns;\n\n this._cardColumns.forEach((column) => {\n if (column.length > 0 && column.length < 2) {\n this._singleItemColumns.add(column[0].fdCardDef);\n }\n });\n }\n\n /** @hidden */\n private _setColumnsWidth(detectChanges = true): void {\n this._columnsWidth = new Map();\n\n const configPresent =\n this.columnsWidthConfig &&\n typeof this.columnsWidthConfig === 'object' &&\n Object.keys(this.columnsWidthConfig).length;\n\n if (!configPresent || !this._layout || this._numberOfColumns === 1) {\n return;\n }\n\n const fixedWidthModifiers = fixWidthModifiers(this.columnsWidthConfig, this._numberOfColumns);\n const totalWidthModifiers = fixedWidthModifiers.reduce((sum, width) => (sum += width), 0);\n const freeSpace = this._availableWidth - this.cardMinimumWidth * this._numberOfColumns;\n\n this._cardColumns.forEach((column, index) => {\n const columnWidth = Math.round(\n this.cardMinimumWidth + (freeSpace / totalWidthModifiers) * fixedWidthModifiers[index]\n );\n\n column.forEach((card) => this._columnsWidth.set(card.fdCardDef, columnWidth));\n });\n\n if (detectChanges) {\n this._changeDetector.detectChanges();\n }\n }\n}\n\n/** @hidden */\nfunction fixWidthModifiers(config: ColumnsWidthConfig, numberOfColumns: number): number[] {\n const modifiers = new Array(numberOfColumns).fill(0);\n\n return modifiers.map((_, index) => {\n const columnWidthModifier = config[index + 1];\n\n if (!columnWidthModifier || columnWidthModifier < 0) {\n return 0;\n }\n\n return columnWidthModifier;\n });\n}\n\n/** @hidden Returns number of columns that can fit in current available width for fd-card-layout */\nfunction getNumberOfColumns(containerWidth: number, cardWidth: number): number {\n containerWidth = containerWidth || 1;\n cardWidth = cardWidth || 1;\n\n const numberOfCardsWithNoGap = Math.max(Math.floor(containerWidth / cardWidth), 1); // Example: 960 / 320 = 3\n const requiredWidthWithGap = numberOfCardsWithNoGap * cardWidth + (numberOfCardsWithNoGap - 1) * CARD_GAP_WIDTH;\n const columnCount = requiredWidthWithGap > containerWidth ? numberOfCardsWithNoGap - 1 : numberOfCardsWithNoGap;\n\n return Math.max(columnCount, 1);\n}\n\n/** @hidden Method to update rank after cards are dragged */\nfunction adjustCardRank(draggedCard: CardDefinitionDirective, replacedCard: CardDefinitionDirective): void {\n const draggedCardRank = draggedCard.fdCardDef;\n draggedCard.fdCardDef = replacedCard.fdCardDef;\n replacedCard.fdCardDef = draggedCardRank;\n}\n","<div\n #layout\n cdkDropListGroup\n fdDndKeyboardGroup\n class=\"fd-fixed-card-layout__card-layout fd-fixed-card-layout__card-layout--columns-{{ this._numberOfColumns }}\"\n [style.height]=\"_containerHeight + 'px'\"\n [groups]=\"_cardColumns\"\n orientation=\"horizontal\"\n [customMoveFn]=\"_customMoveFn\"\n [customTransferFn]=\"_customTransferFn\"\n [disableKeyboardDragDrop]=\"disableDragDrop\"\n [cdkDropListGroupDisabled]=\"disableDragDrop\"\n [attr.dir]=\"_dir\"\n>\n <div\n #dropList\n *ngFor=\"let card of _cardsArray; let cardIndex = index\"\n cdkDropList\n cdkDropListSortingDisabled\n class=\"fd-fixed-card-layout__card\"\n [class.fd-fixed-card-layout__card--single]=\"_singleItemColumns.has(card.fdCardDef)\"\n [style.min-width.px]=\"_columnsWidth.get(card.fdCardDef)\"\n [style.max-width.px]=\"_columnsWidth.get(card.fdCardDef)\"\n [cdkDropListData]=\"cardIndex\"\n [cdkDropListEnterPredicate]=\"_enterPredicate\"\n (cdkDropListEntered)=\"_onDropListEntered($event)\"\n (cdkDropListExited)=\"_onDropListExited()\"\n >\n <div\n cdkDrag\n fdDndKeyboardItem\n tabindex=\"0\"\n cdkDragPreviewClass=\"fd-fixed-card-layout__card-preview\"\n [cdkDragData]=\"card\"\n [cdkDragStartDelay]=\"dragStartDelay\"\n [itemIndex]=\"_itemIndexes.get(card.fdCardDef)!\"\n [groupIndex]=\"_groupIndexes.get(card.fdCardDef)!\"\n (cdkDragDropped)=\"_onDragDropped($event)\"\n (cdkDragStarted)=\"_setPlaceholderStyle(false)\"\n >\n <fd-fixed-card-layout-item>\n <ng-container *ngTemplateOutlet=\"card?.template || null\"> </ng-container>\n </fd-fixed-card-layout-item>\n\n <div *cdkDragPlaceholder class=\"fd-fixed-card-layout__card-placeholder\" [style]=\"_placeholderMargin\">\n <ng-container *ngTemplateOutlet=\"card?.template || null\"></ng-container>\n </div>\n </div>\n </div>\n\n <ng-container *ngFor=\"let column of _cardColumns; let last = last; let index = index\">\n <div *ngIf=\"!last\" class=\"fd-fixed-card-layout__clearfix\" [style.order]=\"index + 1\"></div>\n </ng-container>\n</div>\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FixedCardLayoutItemComponent } from './fixed-card-layout-item/fixed-card-layout-item.component';\nimport { DragAndDropModule } from '@fundamental-ngx/core/utils';\nimport { CardDefinitionDirective, FixedCardLayoutComponent } from './fixed-card-layout.component';\n\n@NgModule({\n declarations: [FixedCardLayoutComponent, CardDefinitionDirective, FixedCardLayoutItemComponent],\n imports: [CommonModule, DragDropModule, DragAndDropModule],\n exports: [FixedCardLayoutComponent, CardDefinitionDirective, FixedCardLayoutItemComponent]\n})\nexport class FixedCardLayoutModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-fixed-card-layout.mjs","sources":["../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout-item/fixed-card-layout-item.component.ts","../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout.component.ts","../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout.component.html","../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout.module.ts","../../../../libs/core/src/lib/fixed-card-layout/fundamental-ngx-core-fixed-card-layout.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef } from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\n\n@Component({\n selector: 'fd-fixed-card-layout-item',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: block'\n }\n})\nexport class FixedCardLayoutItemComponent implements FocusableOption {\n constructor(private _elementRef: ElementRef) {}\n\n /** Set focus on the element. */\n focus(): void {\n const header = this._elementRef.nativeElement.querySelector('.fd-card__header');\n if (header) {\n header.focus();\n }\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { CdkDrag, CdkDragDrop, CdkDragEnter, CdkDropList } from '@angular/cdk/drag-drop';\nimport { Subject } from 'rxjs';\nimport { debounceTime, delay, takeUntil } from 'rxjs/operators';\n\nimport { resizeObservable, RtlService } from '@fundamental-ngx/core/utils';\nimport { FixedCardLayoutItemComponent } from './fixed-card-layout-item/fixed-card-layout-item.component';\nimport { coerceNumberProperty, NumberInput } from '@angular/cdk/coercion';\n\nconst PX_IN_REM = 16;\nconst CARD_MINIMUM_WIDTH = 320; // 320px = 20rem\nconst CARD_GAP_WIDTH = 16; // 16px = 1rem\nconst DRAG_START_DELAY = 200; // in ms\nconst MAX_COLUMNS = 10;\n\nlet cardRank = 1;\n\n@Directive({ selector: '[fdCardDef]' })\nexport class CardDefinitionDirective {\n /**\n * Behaves like rank of card.\n * Useful in creating layout again after drag and drop.\n */\n @Input()\n set fdCardDef(value: NumberInput) {\n if (!value) {\n return;\n }\n\n this._fdCardDef = coerceNumberProperty(value);\n }\n get fdCardDef(): number {\n return this._fdCardDef;\n }\n\n /** @hidden */\n private _fdCardDef: number = cardRank++;\n\n /** @hidden */\n constructor(public template: TemplateRef<any>) {}\n}\n\nexport interface Layout {\n numberOfColumns?: number;\n screenSize: number;\n}\n\nexport interface CardDropped {\n previousIndex: number;\n currentIndex: number;\n layoutColumns: number;\n items: CardDefinitionDirective[];\n}\n\ntype Columns = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n\nexport type ColumnsWidthConfig = { [C in Columns]?: number };\n\ntype CardColumn = CardDefinitionDirective[];\n\n@Component({\n selector: 'fd-fixed-card-layout',\n templateUrl: './fixed-card-layout.component.html',\n styleUrls: ['./fixed-card-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-fixed-card-layout'\n }\n})\nexport class FixedCardLayoutComponent implements OnInit, AfterContentInit, AfterViewInit, OnChanges, OnDestroy {\n /** Drag drop behavior can be disabled */\n @Input()\n disableDragDrop: boolean;\n\n /** Drag start delay in milliseconds, default to 200ms for safe scrolling on mobile with touchscreen */\n @Input()\n dragStartDelay = DRAG_START_DELAY;\n\n /** Card's minimum width in pixels. */\n @Input()\n set cardMinimumWidth(value: NumberInput) {\n const coercedValue = coerceNumberProperty(value);\n\n if (coercedValue < CARD_MINIMUM_WIDTH) {\n return;\n }\n\n this._cardMinimumWidth = coercedValue;\n\n // If component is ready, do the recalculation.\n if (this._layout) {\n this.updateLayout();\n }\n }\n get cardMinimumWidth(): number {\n return this._cardMinimumWidth;\n }\n\n /** Config with the width ratios that should take every column. Flex-grow principe. Missed values set to 0. s*/\n @Input()\n columnsWidthConfig: ColumnsWidthConfig;\n\n /** Limit the number of columns. Default is 10. */\n @Input()\n maxColumns = MAX_COLUMNS;\n\n /** Event to emit, when layout changes */\n @Output()\n layoutChange: EventEmitter<Layout> = new EventEmitter<Layout>();\n\n /** Event to emit on Card dragged and dropped */\n @Output()\n cardDraggedDropped: EventEmitter<CardDropped> = new EventEmitter<CardDropped>();\n\n /** @hidden */\n @ContentChildren(CardDefinitionDirective)\n _cards: QueryList<CardDefinitionDirective>;\n\n /** @hidden */\n @ViewChildren(FixedCardLayoutItemComponent)\n _cardContainers: QueryList<FixedCardLayoutItemComponent>;\n\n /** @hidden */\n @ViewChildren('dropList', { read: CdkDropList })\n _cardWrappers: QueryList<CdkDropList>;\n\n /** @hidden */\n @ViewChild('layout')\n _layout: ElementRef;\n\n /** @hidden */\n _cardsArray: Array<CardDefinitionDirective>;\n\n /** @hidden Number of Columns in layout */\n _numberOfColumns: number;\n\n /** @hidden */\n _cardColumns: CardColumn[];\n\n /** @hidden*/\n _containerHeight: number;\n\n /** @hidden handles rtl service */\n _dir = 'ltr';\n\n /** @hidden first number is the CardDefinition rank, i.e. id */\n _groupIndexes = new Map<number, number>();\n\n /** @hidden first number is the CardDefinition rank, i.e. id */\n _itemIndexes = new Map<number, number>();\n\n /** @hidden first number is the CardDefinition rank, i.e. id */\n _singleItemColumns = new Set<number>();\n\n /** @hidden */\n _columnsWidth = new Map<number, number>();\n\n /** @hidden Return available width for fixed card layout */\n get _availableWidth(): number {\n return this._layout.nativeElement.getBoundingClientRect().width;\n }\n\n /** @hidden */\n _placeholderMargin: { [klass: string]: string };\n\n /** @hidden */\n private _previousNumberOfColumns: number;\n\n /** @hidden FocusKeyManager instance */\n private _keyboardEventsManager: FocusKeyManager<FixedCardLayoutItemComponent>;\n\n /** @hidden */\n private _cardMinimumWidth = CARD_MINIMUM_WIDTH;\n\n /** @hidden */\n private _shouldCalculateContainerHeight = false;\n\n /** @hidden An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(\n private readonly _changeDetector: ChangeDetectorRef,\n @Optional() private readonly _rtlService: RtlService\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._subscribeToRtl();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._listenOnCardsChange();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._processCards();\n this._listenOnResize();\n this._accessibilitySetup();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._cards?.length) {\n return;\n }\n\n if ('maxColumns' in changes) {\n this.updateLayout();\n } else if ('columnsWidthConfig' in changes) {\n this._setColumnsWidth();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n handleKeydown(event: KeyboardEvent): void {\n event.stopImmediatePropagation();\n\n if (this._keyboardEventsManager) {\n this._keyboardEventsManager.onKeydown(event);\n }\n }\n\n /** Distribute cards on window resize */\n updateLayout(): void {\n if (!this._cards.length || !this._availableWidth) {\n return;\n }\n\n const possibleNumberOfColumns = getNumberOfColumns(this._availableWidth, this.cardMinimumWidth);\n\n this._numberOfColumns = Math.min(\n possibleNumberOfColumns,\n this._cards.length,\n this.maxColumns || MAX_COLUMNS,\n MAX_COLUMNS\n );\n\n this.layoutChange.emit({\n numberOfColumns: this._numberOfColumns,\n screenSize: this._availableWidth\n });\n\n if (this._previousNumberOfColumns !== this._numberOfColumns) {\n this._previousNumberOfColumns = this._numberOfColumns;\n this._updateColumns();\n return;\n }\n\n this._setColumnsWidth();\n }\n\n /** @hidden */\n _enterPredicate = (_: CdkDrag, drop: CdkDropList): boolean => {\n // We should update container's height & its children rects (to react when drag moves into the list) before we entered any drop list.\n // That's why it's done here instead of cdkDropListEntered. As this predicate being called many times here is the optimization.\n if (this._shouldCalculateContainerHeight) {\n this._shouldCalculateContainerHeight = false;\n\n // Placeholder doesn't have margin set yet but we need to count it\n // Margin will be set only if there are already items in container\n const additionalSpace = drop.getSortedItems().length ? PX_IN_REM : 0;\n\n this._calculateContainerHeight(additionalSpace);\n }\n\n return true;\n };\n\n /** @hidden */\n _onDropListExited(): void {\n this._shouldCalculateContainerHeight = true;\n }\n\n /** @hidden */\n _onDropListEntered(event: CdkDragEnter): void {\n const containerItemCardDef = (event.container.getSortedItems()[0].data as CardDefinitionDirective).fdCardDef;\n const dragItemCardDef = (event.item.data as CardDefinitionDirective).fdCardDef;\n\n this._setPlaceholderStyle(containerItemCardDef !== dragItemCardDef);\n }\n\n /** @hidden */\n _onDragDropped(event: CdkDragDrop<number, number>): void {\n if (event.container.data === event.previousContainer.data) {\n return;\n }\n\n const movedCard = event.previousContainer.getSortedItems()[0].data;\n const replacedCard = event.container.getSortedItems()[0].data;\n\n const movedCardColumn = this._cardColumns.find((column) =>\n column.find((card) => card.fdCardDef === movedCard.fdCardDef)\n );\n const replacedCardColumn = this._cardColumns.find((column) =>\n column.find((card) => card.fdCardDef === replacedCard.fdCardDef)\n );\n\n // If we dragged the card from the same column as the column we're dropping into\n // There may be a situation where the order shouldn't change but since there are a different drop lists it will change\n // We should prevent this\n if (movedCardColumn === replacedCardColumn && movedCardColumn?.length === 2) {\n if (movedCard.fdCardDef < replacedCard.fdCardDef && event.previousContainer.data < event.container.data) {\n return;\n }\n\n if (movedCard.fdCardDef > replacedCard.fdCardDef && event.previousContainer.data > event.container.data) {\n return;\n }\n }\n\n this._processDragDrop(event.previousContainer.data, event.container.data, movedCard, replacedCard);\n }\n\n /** @hidden For the keyboard drag&drop directive */\n _customMoveFn = (group: CardColumn, indexFrom: number, indexTo: number): void => {\n const movedCard = group[indexFrom];\n const replacedCard = group[indexTo];\n\n const indexFromArray = this._cardsArray.findIndex((card) => card.fdCardDef === movedCard.fdCardDef);\n const indexToArray = this._cardsArray.findIndex((card) => card.fdCardDef === replacedCard.fdCardDef);\n\n this._processDragDrop(indexFromArray, indexToArray, movedCard, replacedCard);\n };\n\n /** @hidden For the keyboard drag&drop directive */\n _customTransferFn = (prevGroup: CardColumn, nextGroup: CardColumn, indexFrom: number, indexTo: number): void => {\n const movedCard = prevGroup[indexFrom];\n const replacedCard = nextGroup[indexTo];\n\n const indexFromArray = this._cardsArray.findIndex((card) => card.fdCardDef === movedCard.fdCardDef);\n const indexToArray = this._cardsArray.findIndex((card) => card.fdCardDef === replacedCard.fdCardDef);\n\n this._processDragDrop(indexFromArray, indexToArray, movedCard, replacedCard);\n };\n\n /** @hidden */\n _setPlaceholderStyle(value: boolean): void {\n this._placeholderMargin = value ? { 'margin-bottom': '1rem' } : {};\n }\n\n /** @hidden Arranges cards on drop of dragged card */\n private _processDragDrop(\n prevIndex: number,\n newIndex: number,\n prevCard: CardDefinitionDirective,\n newCard: CardDefinitionDirective\n ): void {\n // moveItemInArray from CDK won't work as it changes order of other cards\n const replacedCard = this._cardsArray[newIndex];\n this._cardsArray[newIndex] = this._cardsArray[prevIndex];\n this._cardsArray[prevIndex] = replacedCard;\n\n adjustCardRank(prevCard, newCard);\n\n this.cardDraggedDropped.emit({\n previousIndex: prevIndex,\n currentIndex: newIndex,\n layoutColumns: this._numberOfColumns,\n items: this._cards.toArray()\n });\n\n this._updateColumns();\n }\n\n /** @hidden */\n private _accessibilitySetup(): void {\n this._keyboardEventsManager = new FocusKeyManager(this._cardContainers).withWrap();\n }\n\n /** @hidden Rtl change subscription */\n private _subscribeToRtl(): void {\n this._rtlService?.rtl.pipe(takeUntil(this._onDestroy$)).subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n this._changeDetector.detectChanges();\n });\n }\n\n /** @hidden Listen window resize and distribute cards on column change */\n private _listenOnResize(): void {\n resizeObservable(this._layout.nativeElement)\n .pipe(debounceTime(60), takeUntil(this._onDestroy$))\n .subscribe(() => this.updateLayout());\n }\n\n /** @hidden Listen card change and distribute cards on column change */\n private _listenOnCardsChange(): void {\n this._cards.changes.pipe(delay(0)).subscribe(() => {\n this._processCards();\n this._updateColumns();\n });\n }\n\n /** @hidden Renders layout on column changes */\n private _updateColumns(): void {\n this._setCardColumns();\n this._setColumnsWidth(false);\n this._calculateContainerHeight();\n }\n\n /** @hidden */\n private _processCards(): void {\n this._cardsArray = this._cards\n .toArray()\n .sort((firstCard, secondCard) => firstCard.fdCardDef - secondCard.fdCardDef);\n\n this.updateLayout();\n }\n\n /** @hidden Distribute cards among columns to arrange them in \"Z\" flow */\n private _setCardColumns(): void {\n this._groupIndexes = new Map<number, number>();\n this._itemIndexes = new Map<number, number>();\n this._singleItemColumns = new Set<number>();\n\n const columns: CardColumn[] = new Array(this._numberOfColumns).fill(0).map(() => new Array(0));\n\n this._cardsArray.forEach((card, i) => {\n const currColumnIndex = i % this._numberOfColumns;\n const itemIndex = columns[currColumnIndex].length;\n\n columns[currColumnIndex].push(card);\n\n this._groupIndexes.set(card.fdCardDef, currColumnIndex);\n this._itemIndexes.set(card.fdCardDef, itemIndex);\n });\n\n this._cardColumns = columns;\n\n this._cardColumns.forEach((column) => {\n if (column.length > 0 && column.length < 2) {\n this._singleItemColumns.add(column[0].fdCardDef);\n }\n });\n }\n\n /** @hidden */\n private _setColumnsWidth(detectChanges = true): void {\n this._columnsWidth = new Map();\n\n const configPresent =\n this.columnsWidthConfig &&\n typeof this.columnsWidthConfig === 'object' &&\n Object.keys(this.columnsWidthConfig).length;\n\n if (!configPresent || !this._layout || this._numberOfColumns === 1) {\n return;\n }\n\n const fixedWidthModifiers = fixWidthModifiers(this.columnsWidthConfig, this._numberOfColumns);\n const totalWidthModifiers = fixedWidthModifiers.reduce((sum, width) => (sum += width), 0);\n const freeSpace = this._availableWidth - this.cardMinimumWidth * this._numberOfColumns;\n\n this._cardColumns.forEach((column, index) => {\n const columnWidth = Math.round(\n this.cardMinimumWidth + (freeSpace / totalWidthModifiers) * fixedWidthModifiers[index]\n );\n\n column.forEach((card) => this._columnsWidth.set(card.fdCardDef, columnWidth));\n });\n\n if (detectChanges) {\n this._changeDetector.detectChanges();\n }\n }\n\n /** @hidden Calculate container height basing on the card wrapper columns */\n private _calculateContainerHeight(additionalSpace: number = 0): void {\n this._changeDetector.detectChanges();\n\n const wrapperColumns = this._cardColumns.map((column) =>\n column\n .map((card) => this._cardWrappers.find((wrapper) => wrapper.getSortedItems()[0].data === card)?.element)\n .filter((v): v is ElementRef<HTMLElement> => !!v)\n );\n\n const columnsHeights = wrapperColumns\n .map((column) => column.map((card) => card.nativeElement.getBoundingClientRect().height))\n .map((column) => column.reduce((height, cardHeight) => (height += cardHeight), 0));\n\n // +4px because it's the top & bottom borders of card placeholder\n this._containerHeight = Math.max(...columnsHeights) + 4 + additionalSpace;\n\n this._changeDetector.detectChanges();\n }\n}\n\n/** @hidden */\nfunction fixWidthModifiers(config: ColumnsWidthConfig, numberOfColumns: number): number[] {\n const modifiers = new Array(numberOfColumns).fill(0);\n\n return modifiers.map((_, index) => {\n const columnWidthModifier = config[index + 1];\n\n if (!columnWidthModifier || columnWidthModifier < 0) {\n return 0;\n }\n\n return columnWidthModifier;\n });\n}\n\n/** @hidden Returns number of columns that can fit in current available width for fd-card-layout */\nfunction getNumberOfColumns(containerWidth: number, cardWidth: number): number {\n containerWidth = containerWidth || 1;\n cardWidth = cardWidth || 1;\n\n const numberOfCardsWithNoGap = Math.max(Math.floor(containerWidth / cardWidth), 1); // Example: 960 / 320 = 3\n const requiredWidthWithGap = numberOfCardsWithNoGap * cardWidth + (numberOfCardsWithNoGap - 1) * CARD_GAP_WIDTH;\n const columnCount = requiredWidthWithGap > containerWidth ? numberOfCardsWithNoGap - 1 : numberOfCardsWithNoGap;\n\n return Math.max(columnCount, 1);\n}\n\n/** @hidden Method to update rank after cards are dragged */\nfunction adjustCardRank(draggedCard: CardDefinitionDirective, replacedCard: CardDefinitionDirective): void {\n const draggedCardRank = draggedCard.fdCardDef;\n draggedCard.fdCardDef = replacedCard.fdCardDef;\n replacedCard.fdCardDef = draggedCardRank;\n}\n","<div\n #layout\n cdkDropListGroup\n fdDndKeyboardGroup\n class=\"fd-fixed-card-layout__card-layout fd-fixed-card-layout__card-layout--columns-{{ this._numberOfColumns }}\"\n [style.height]=\"_containerHeight + 'px'\"\n [groups]=\"_cardColumns\"\n orientation=\"horizontal\"\n [customMoveFn]=\"_customMoveFn\"\n [customTransferFn]=\"_customTransferFn\"\n [disableKeyboardDragDrop]=\"disableDragDrop\"\n [cdkDropListGroupDisabled]=\"disableDragDrop\"\n [attr.dir]=\"_dir\"\n>\n <div\n #dropList\n *ngFor=\"let card of _cardsArray; let cardIndex = index\"\n cdkDropList\n cdkDropListSortingDisabled\n class=\"fd-fixed-card-layout__card\"\n [class.fd-fixed-card-layout__card--single]=\"_singleItemColumns.has(card.fdCardDef)\"\n [style.min-width.px]=\"_columnsWidth.get(card.fdCardDef)\"\n [style.max-width.px]=\"_columnsWidth.get(card.fdCardDef)\"\n [cdkDropListData]=\"cardIndex\"\n [cdkDropListEnterPredicate]=\"_enterPredicate\"\n (cdkDropListEntered)=\"_onDropListEntered($event)\"\n (cdkDropListExited)=\"_onDropListExited()\"\n >\n <div\n cdkDrag\n fdDndKeyboardItem\n tabindex=\"0\"\n cdkDragPreviewClass=\"fd-fixed-card-layout__card-preview\"\n [cdkDragData]=\"card\"\n [cdkDragStartDelay]=\"dragStartDelay\"\n [itemIndex]=\"_itemIndexes.get(card.fdCardDef)!\"\n [groupIndex]=\"_groupIndexes.get(card.fdCardDef)!\"\n (cdkDragDropped)=\"_onDragDropped($event)\"\n (cdkDragStarted)=\"_setPlaceholderStyle(false)\"\n >\n <fd-fixed-card-layout-item>\n <ng-container *ngTemplateOutlet=\"card?.template || null\"> </ng-container>\n </fd-fixed-card-layout-item>\n\n <div *cdkDragPlaceholder class=\"fd-fixed-card-layout__card-placeholder\" [style]=\"_placeholderMargin\">\n <ng-container *ngTemplateOutlet=\"card?.template || null\"></ng-container>\n </div>\n </div>\n </div>\n\n <ng-container *ngFor=\"let column of _cardColumns; let last = last; let index = index\">\n <div *ngIf=\"!last\" class=\"fd-fixed-card-layout__clearfix\" [style.order]=\"index + 1\"></div>\n </ng-container>\n</div>\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FixedCardLayoutItemComponent } from './fixed-card-layout-item/fixed-card-layout-item.component';\nimport { DragAndDropModule } from '@fundamental-ngx/core/utils';\nimport { CardDefinitionDirective, FixedCardLayoutComponent } from './fixed-card-layout.component';\n\n@NgModule({\n declarations: [FixedCardLayoutComponent, CardDefinitionDirective, FixedCardLayoutItemComponent],\n imports: [CommonModule, DragDropModule, DragAndDropModule],\n exports: [FixedCardLayoutComponent, CardDefinitionDirective, FixedCardLayoutItemComponent]\n})\nexport class FixedCardLayoutModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,9 @@ import { __decorate, __metadata } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
3
  import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';
4
4
  import { applyCssClass } from '@fundamental-ngx/core/utils';
5
- import * as i1 from '@angular/common';
5
+ import * as i1 from '@fundamental-ngx/core/icon';
6
+ import { IconModule } from '@fundamental-ngx/core/icon';
7
+ import * as i2 from '@angular/common';
6
8
  import { CommonModule } from '@angular/common';
7
9
 
8
10
  class InfoLabelComponent {
@@ -11,6 +13,11 @@ class InfoLabelComponent {
11
13
  this._elementRef = _elementRef;
12
14
  /** User's custom classes */
13
15
  this.class = '';
16
+ /**
17
+ * The icon font
18
+ * Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'
19
+ */
20
+ this.font = 'SAP-icons';
14
21
  }
15
22
  /** @hidden */
16
23
  ngOnInit() {
@@ -35,7 +42,7 @@ class InfoLabelComponent {
35
42
  }
36
43
  }
37
44
  InfoLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
38
- InfoLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: InfoLabelComponent, selector: "fd-info-label, [fd-info-label]", inputs: { class: "class", type: "type", glyph: "glyph", color: "color", label: "label", title: "title", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy" }, usesOnChanges: true, ngImport: i0, template: "<i *ngIf=\"glyph\" class=\"fd-info-label__icon\" [class]=\"glyph ? 'sap-icon--' + glyph : ''\"> </i>\n\n<span\n *ngIf=\"label\"\n class=\"fd-info-label__text\"\n [attr.title]=\"title\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n >{{ label }}</span\n>\n\n<!-- TODO @salarenko: DEPRECATED - Remove in v0.23.0 -->\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.1-rc.1\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-info-label{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;border-radius:.5rem;line-height:normal;height:1rem;max-width:100%;font-size:var(--sapFontSmallSize);letter-spacing:.0125rem;text-transform:uppercase;text-align:center;padding:0 .3125rem;border-width:.0625rem;border-style:solid}.fd-info-label:before,.fd-info-label:after{box-sizing:inherit;font-size:inherit}.fd-info-label__icon [class*=sap-icon],.fd-info-label__icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;font-size:.75rem;margin-right:.125rem}[dir=rtl] .fd-info-label__icon [class*=sap-icon],.fd-info-label__icon [class*=sap-icon][dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon],.fd-info-label__icon[class*=sap-icon][dir=rtl]{margin-right:0;margin-left:.125rem}.fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child{margin:0}[dir=rtl] .fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon [class*=sap-icon]:first-child:last-child[dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child[dir=rtl]{margin:0}.fd-info-label__text{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:inherit;font-weight:700;color:inherit;line-height:1}.fd-info-label__text:before,.fd-info-label__text:after{box-sizing:inherit;font-size:inherit}.fd-info-label--accent-color-1{background-color:var(--fdInfo_Label_Background_Color1);border-color:var(--fdInfo_Label_Border_Color1);color:var(--fdInfo_Label_Color1)}.fd-info-label--accent-color-1[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color1)}.fd-info-label--accent-color-2{background-color:var(--fdInfo_Label_Background_Color2);border-color:var(--fdInfo_Label_Border_Color2);color:var(--fdInfo_Label_Color2)}.fd-info-label--accent-color-2[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color2)}.fd-info-label--accent-color-3{background-color:var(--fdInfo_Label_Background_Color3);border-color:var(--fdInfo_Label_Border_Color3);color:var(--fdInfo_Label_Color3)}.fd-info-label--accent-color-3[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color3)}.fd-info-label--accent-color-4{background-color:var(--fdInfo_Label_Background_Color4);border-color:var(--fdInfo_Label_Border_Color4);color:var(--fdInfo_Label_Color4)}.fd-info-label--accent-color-4[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color4)}.fd-info-label--accent-color-5{background-color:var(--fdInfo_Label_Background_Color5);border-color:var(--fdInfo_Label_Border_Color5);color:var(--fdInfo_Label_Color5)}.fd-info-label--accent-color-5[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color5)}.fd-info-label--accent-color-6{background-color:var(--fdInfo_Label_Background_Color6);border-color:var(--fdInfo_Label_Border_Color6);color:var(--fdInfo_Label_Color6)}.fd-info-label--accent-color-6[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color6)}.fd-info-label--accent-color-7{background-color:var(--fdInfo_Label_Background_Color7);border-color:var(--fdInfo_Label_Border_Color7);color:var(--fdInfo_Label_Color7)}.fd-info-label--accent-color-7[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color7)}.fd-info-label--accent-color-8{background-color:var(--fdInfo_Label_Background_Color8);border-color:var(--fdInfo_Label_Border_Color8);color:var(--fdInfo_Label_Color8)}.fd-info-label--accent-color-8[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color8)}.fd-info-label--accent-color-9{background-color:var(--fdInfo_Label_Background_Color9);border-color:var(--fdInfo_Label_Border_Color9);color:var(--fdInfo_Label_Color9)}.fd-info-label--accent-color-9[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color9)}.fd-info-label--accent-color-10{background-color:var(--fdInfo_Label_Background_Color10);border-color:var(--fdInfo_Label_Border_Color10);color:var(--fdInfo_Label_Color10)}.fd-info-label--accent-color-10[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color10)}.fd-info-label--display{border-color:var(--fdInfo_Label_Display_Border_Color);background-color:var(--fdInfo_Label_Display_Background_Color);color:var(--fdInfo_Label_Display_Text_Color)}.fd-info-label--numeric{padding:0 .1875rem;font-weight:700}.fd-info-label--icon{font-size:var(--sapFontSmallSize);padding:0 .1875rem;line-height:1rem}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
45
+ InfoLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: InfoLabelComponent, selector: "fd-info-label", inputs: { class: "class", type: "type", glyph: "glyph", font: "font", color: "color", label: "label", title: "title", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy" }, usesOnChanges: true, ngImport: i0, template: "<fd-icon *ngIf=\"glyph\" class=\"fd-info-label__icon\" [glyph]=\"glyph\" [font]=\"font\"></fd-icon>\n\n<span\n *ngIf=\"label\"\n class=\"fd-info-label__text\"\n [attr.title]=\"title\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n >{{ label }}</span\n>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.1-rc.1\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-info-label{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;border-radius:.5rem;line-height:normal;height:1rem;max-width:100%;font-size:var(--sapFontSmallSize);letter-spacing:.0125rem;text-transform:uppercase;text-align:center;padding:0 .3125rem;border-width:.0625rem;border-style:solid}.fd-info-label:before,.fd-info-label:after{box-sizing:inherit;font-size:inherit}.fd-info-label__icon [class*=sap-icon],.fd-info-label__icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;font-size:.75rem;margin-right:.125rem}[dir=rtl] .fd-info-label__icon [class*=sap-icon],.fd-info-label__icon [class*=sap-icon][dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon],.fd-info-label__icon[class*=sap-icon][dir=rtl]{margin-right:0;margin-left:.125rem}.fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child{margin:0}[dir=rtl] .fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon [class*=sap-icon]:first-child:last-child[dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child[dir=rtl]{margin:0}.fd-info-label__text{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:inherit;font-weight:700;color:inherit;line-height:1}.fd-info-label__text:before,.fd-info-label__text:after{box-sizing:inherit;font-size:inherit}.fd-info-label--accent-color-1{background-color:var(--fdInfo_Label_Background_Color1);border-color:var(--fdInfo_Label_Border_Color1);color:var(--fdInfo_Label_Color1)}.fd-info-label--accent-color-1[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color1)}.fd-info-label--accent-color-2{background-color:var(--fdInfo_Label_Background_Color2);border-color:var(--fdInfo_Label_Border_Color2);color:var(--fdInfo_Label_Color2)}.fd-info-label--accent-color-2[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color2)}.fd-info-label--accent-color-3{background-color:var(--fdInfo_Label_Background_Color3);border-color:var(--fdInfo_Label_Border_Color3);color:var(--fdInfo_Label_Color3)}.fd-info-label--accent-color-3[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color3)}.fd-info-label--accent-color-4{background-color:var(--fdInfo_Label_Background_Color4);border-color:var(--fdInfo_Label_Border_Color4);color:var(--fdInfo_Label_Color4)}.fd-info-label--accent-color-4[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color4)}.fd-info-label--accent-color-5{background-color:var(--fdInfo_Label_Background_Color5);border-color:var(--fdInfo_Label_Border_Color5);color:var(--fdInfo_Label_Color5)}.fd-info-label--accent-color-5[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color5)}.fd-info-label--accent-color-6{background-color:var(--fdInfo_Label_Background_Color6);border-color:var(--fdInfo_Label_Border_Color6);color:var(--fdInfo_Label_Color6)}.fd-info-label--accent-color-6[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color6)}.fd-info-label--accent-color-7{background-color:var(--fdInfo_Label_Background_Color7);border-color:var(--fdInfo_Label_Border_Color7);color:var(--fdInfo_Label_Color7)}.fd-info-label--accent-color-7[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color7)}.fd-info-label--accent-color-8{background-color:var(--fdInfo_Label_Background_Color8);border-color:var(--fdInfo_Label_Border_Color8);color:var(--fdInfo_Label_Color8)}.fd-info-label--accent-color-8[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color8)}.fd-info-label--accent-color-9{background-color:var(--fdInfo_Label_Background_Color9);border-color:var(--fdInfo_Label_Border_Color9);color:var(--fdInfo_Label_Color9)}.fd-info-label--accent-color-9[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color9)}.fd-info-label--accent-color-10{background-color:var(--fdInfo_Label_Background_Color10);border-color:var(--fdInfo_Label_Border_Color10);color:var(--fdInfo_Label_Color10)}.fd-info-label--accent-color-10[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color10)}.fd-info-label--display{border-color:var(--fdInfo_Label_Display_Border_Color);background-color:var(--fdInfo_Label_Display_Background_Color);color:var(--fdInfo_Label_Display_Text_Color)}.fd-info-label--numeric{padding:0 .1875rem;font-weight:700}.fd-info-label--icon{font-size:var(--sapFontSmallSize);padding:0 .1875rem;line-height:1rem}\n"], components: [{ type: i1.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
39
46
  __decorate([
40
47
  applyCssClass,
41
48
  __metadata("design:type", Function),
@@ -44,13 +51,15 @@ __decorate([
44
51
  ], InfoLabelComponent.prototype, "buildComponentCssClass", null);
45
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelComponent, decorators: [{
46
53
  type: Component,
47
- args: [{ selector: 'fd-info-label, [fd-info-label]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<i *ngIf=\"glyph\" class=\"fd-info-label__icon\" [class]=\"glyph ? 'sap-icon--' + glyph : ''\"> </i>\n\n<span\n *ngIf=\"label\"\n class=\"fd-info-label__text\"\n [attr.title]=\"title\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n >{{ label }}</span\n>\n\n<!-- TODO @salarenko: DEPRECATED - Remove in v0.23.0 -->\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.1-rc.1\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-info-label{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;border-radius:.5rem;line-height:normal;height:1rem;max-width:100%;font-size:var(--sapFontSmallSize);letter-spacing:.0125rem;text-transform:uppercase;text-align:center;padding:0 .3125rem;border-width:.0625rem;border-style:solid}.fd-info-label:before,.fd-info-label:after{box-sizing:inherit;font-size:inherit}.fd-info-label__icon [class*=sap-icon],.fd-info-label__icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;font-size:.75rem;margin-right:.125rem}[dir=rtl] .fd-info-label__icon [class*=sap-icon],.fd-info-label__icon [class*=sap-icon][dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon],.fd-info-label__icon[class*=sap-icon][dir=rtl]{margin-right:0;margin-left:.125rem}.fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child{margin:0}[dir=rtl] .fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon [class*=sap-icon]:first-child:last-child[dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child[dir=rtl]{margin:0}.fd-info-label__text{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:inherit;font-weight:700;color:inherit;line-height:1}.fd-info-label__text:before,.fd-info-label__text:after{box-sizing:inherit;font-size:inherit}.fd-info-label--accent-color-1{background-color:var(--fdInfo_Label_Background_Color1);border-color:var(--fdInfo_Label_Border_Color1);color:var(--fdInfo_Label_Color1)}.fd-info-label--accent-color-1[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color1)}.fd-info-label--accent-color-2{background-color:var(--fdInfo_Label_Background_Color2);border-color:var(--fdInfo_Label_Border_Color2);color:var(--fdInfo_Label_Color2)}.fd-info-label--accent-color-2[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color2)}.fd-info-label--accent-color-3{background-color:var(--fdInfo_Label_Background_Color3);border-color:var(--fdInfo_Label_Border_Color3);color:var(--fdInfo_Label_Color3)}.fd-info-label--accent-color-3[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color3)}.fd-info-label--accent-color-4{background-color:var(--fdInfo_Label_Background_Color4);border-color:var(--fdInfo_Label_Border_Color4);color:var(--fdInfo_Label_Color4)}.fd-info-label--accent-color-4[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color4)}.fd-info-label--accent-color-5{background-color:var(--fdInfo_Label_Background_Color5);border-color:var(--fdInfo_Label_Border_Color5);color:var(--fdInfo_Label_Color5)}.fd-info-label--accent-color-5[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color5)}.fd-info-label--accent-color-6{background-color:var(--fdInfo_Label_Background_Color6);border-color:var(--fdInfo_Label_Border_Color6);color:var(--fdInfo_Label_Color6)}.fd-info-label--accent-color-6[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color6)}.fd-info-label--accent-color-7{background-color:var(--fdInfo_Label_Background_Color7);border-color:var(--fdInfo_Label_Border_Color7);color:var(--fdInfo_Label_Color7)}.fd-info-label--accent-color-7[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color7)}.fd-info-label--accent-color-8{background-color:var(--fdInfo_Label_Background_Color8);border-color:var(--fdInfo_Label_Border_Color8);color:var(--fdInfo_Label_Color8)}.fd-info-label--accent-color-8[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color8)}.fd-info-label--accent-color-9{background-color:var(--fdInfo_Label_Background_Color9);border-color:var(--fdInfo_Label_Border_Color9);color:var(--fdInfo_Label_Color9)}.fd-info-label--accent-color-9[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color9)}.fd-info-label--accent-color-10{background-color:var(--fdInfo_Label_Background_Color10);border-color:var(--fdInfo_Label_Border_Color10);color:var(--fdInfo_Label_Color10)}.fd-info-label--accent-color-10[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color10)}.fd-info-label--display{border-color:var(--fdInfo_Label_Display_Border_Color);background-color:var(--fdInfo_Label_Display_Background_Color);color:var(--fdInfo_Label_Display_Text_Color)}.fd-info-label--numeric{padding:0 .1875rem;font-weight:700}.fd-info-label--icon{font-size:var(--sapFontSmallSize);padding:0 .1875rem;line-height:1rem}\n"] }]
54
+ args: [{ selector: 'fd-info-label', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-icon *ngIf=\"glyph\" class=\"fd-info-label__icon\" [glyph]=\"glyph\" [font]=\"font\"></fd-icon>\n\n<span\n *ngIf=\"label\"\n class=\"fd-info-label__text\"\n [attr.title]=\"title\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n >{{ label }}</span\n>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.1-rc.1\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-info-label{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;border-radius:.5rem;line-height:normal;height:1rem;max-width:100%;font-size:var(--sapFontSmallSize);letter-spacing:.0125rem;text-transform:uppercase;text-align:center;padding:0 .3125rem;border-width:.0625rem;border-style:solid}.fd-info-label:before,.fd-info-label:after{box-sizing:inherit;font-size:inherit}.fd-info-label__icon [class*=sap-icon],.fd-info-label__icon[class*=sap-icon]{color:inherit;background:inherit;font-size:inherit;border-radius:inherit;line-height:1;font-size:.75rem;margin-right:.125rem}[dir=rtl] .fd-info-label__icon [class*=sap-icon],.fd-info-label__icon [class*=sap-icon][dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon],.fd-info-label__icon[class*=sap-icon][dir=rtl]{margin-right:0;margin-left:.125rem}.fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child{margin:0}[dir=rtl] .fd-info-label__icon [class*=sap-icon]:first-child:last-child,.fd-info-label__icon [class*=sap-icon]:first-child:last-child[dir=rtl],[dir=rtl] .fd-info-label__icon[class*=sap-icon]:first-child:last-child,.fd-info-label__icon[class*=sap-icon]:first-child:last-child[dir=rtl]{margin:0}.fd-info-label__text{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:inherit;font-weight:700;color:inherit;line-height:1}.fd-info-label__text:before,.fd-info-label__text:after{box-sizing:inherit;font-size:inherit}.fd-info-label--accent-color-1{background-color:var(--fdInfo_Label_Background_Color1);border-color:var(--fdInfo_Label_Border_Color1);color:var(--fdInfo_Label_Color1)}.fd-info-label--accent-color-1[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color1)}.fd-info-label--accent-color-2{background-color:var(--fdInfo_Label_Background_Color2);border-color:var(--fdInfo_Label_Border_Color2);color:var(--fdInfo_Label_Color2)}.fd-info-label--accent-color-2[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color2)}.fd-info-label--accent-color-3{background-color:var(--fdInfo_Label_Background_Color3);border-color:var(--fdInfo_Label_Border_Color3);color:var(--fdInfo_Label_Color3)}.fd-info-label--accent-color-3[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color3)}.fd-info-label--accent-color-4{background-color:var(--fdInfo_Label_Background_Color4);border-color:var(--fdInfo_Label_Border_Color4);color:var(--fdInfo_Label_Color4)}.fd-info-label--accent-color-4[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color4)}.fd-info-label--accent-color-5{background-color:var(--fdInfo_Label_Background_Color5);border-color:var(--fdInfo_Label_Border_Color5);color:var(--fdInfo_Label_Color5)}.fd-info-label--accent-color-5[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color5)}.fd-info-label--accent-color-6{background-color:var(--fdInfo_Label_Background_Color6);border-color:var(--fdInfo_Label_Border_Color6);color:var(--fdInfo_Label_Color6)}.fd-info-label--accent-color-6[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color6)}.fd-info-label--accent-color-7{background-color:var(--fdInfo_Label_Background_Color7);border-color:var(--fdInfo_Label_Border_Color7);color:var(--fdInfo_Label_Color7)}.fd-info-label--accent-color-7[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color7)}.fd-info-label--accent-color-8{background-color:var(--fdInfo_Label_Background_Color8);border-color:var(--fdInfo_Label_Border_Color8);color:var(--fdInfo_Label_Color8)}.fd-info-label--accent-color-8[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color8)}.fd-info-label--accent-color-9{background-color:var(--fdInfo_Label_Background_Color9);border-color:var(--fdInfo_Label_Border_Color9);color:var(--fdInfo_Label_Color9)}.fd-info-label--accent-color-9[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color9)}.fd-info-label--accent-color-10{background-color:var(--fdInfo_Label_Background_Color10);border-color:var(--fdInfo_Label_Border_Color10);color:var(--fdInfo_Label_Color10)}.fd-info-label--accent-color-10[class*=sap-icon]{border-color:var(--fdInfo_Label_Border_Color10)}.fd-info-label--display{border-color:var(--fdInfo_Label_Display_Border_Color);background-color:var(--fdInfo_Label_Display_Background_Color);color:var(--fdInfo_Label_Display_Text_Color)}.fd-info-label--numeric{padding:0 .1875rem;font-weight:700}.fd-info-label--icon{font-size:var(--sapFontSmallSize);padding:0 .1875rem;line-height:1rem}\n"] }]
48
55
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { class: [{
49
56
  type: Input
50
57
  }], type: [{
51
58
  type: Input
52
59
  }], glyph: [{
53
60
  type: Input
61
+ }], font: [{
62
+ type: Input
54
63
  }], color: [{
55
64
  type: Input
56
65
  }], label: [{
@@ -66,13 +75,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
66
75
  class InfoLabelModule {
67
76
  }
68
77
  InfoLabelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
69
- InfoLabelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, declarations: [InfoLabelComponent], imports: [CommonModule], exports: [InfoLabelComponent] });
70
- InfoLabelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, imports: [[CommonModule]] });
78
+ InfoLabelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, declarations: [InfoLabelComponent], imports: [CommonModule, IconModule], exports: [InfoLabelComponent] });
79
+ InfoLabelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, imports: [[CommonModule, IconModule]] });
71
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: InfoLabelModule, decorators: [{
72
81
  type: NgModule,
73
82
  args: [{
74
83
  declarations: [InfoLabelComponent],
75
- imports: [CommonModule],
84
+ imports: [CommonModule, IconModule],
76
85
  exports: [InfoLabelComponent]
77
86
  }]
78
87
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-info-label.mjs","sources":["../../../../libs/core/src/lib/info-label/info-label.component.ts","../../../../libs/core/src/lib/info-label/info-label.component.html","../../../../libs/core/src/lib/info-label/info-label.module.ts","../../../../libs/core/src/lib/info-label/fundamental-ngx-core-info-label.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport { applyCssClass, CssClassBuilder } from '@fundamental-ngx/core/utils';\nimport { Nullable } from '@fundamental-ngx/core/shared';\n\nexport type LabelType = 'numeric' | 'icon';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n // TODO @salarenko: DEPRECATED DIRECTIVE APPROACH - Remove in v0.23.0\n selector: 'fd-info-label, [fd-info-label]',\n templateUrl: './info-label.component.html',\n styleUrls: ['./info-label.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class InfoLabelComponent implements OnInit, OnChanges, CssClassBuilder {\n /** User's custom classes */\n @Input()\n class = '';\n\n /**\n * The LabelType represented by the info label .\n * For default info label omit this property\n */\n @Input()\n type: LabelType;\n\n /** Glyph define the icon of info label */\n @Input()\n glyph: string;\n\n /** Define the colour of the info label starting form 1 to 10 */\n @Input()\n color: string;\n\n /** Define the text content of the info label */\n @Input()\n label: string;\n\n /** Define the tooltip content of the info label */\n @Input()\n title: string;\n\n /** Define the ariaLabel content of the info label */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Define the labelled by content of the info label */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-info-label',\n this.type ? `fd-info-label--${this.type}` : '',\n this.color ? `fd-info-label--accent-color-${this.color}` : '',\n this.class\n ];\n }\n}\n","<i *ngIf=\"glyph\" class=\"fd-info-label__icon\" [class]=\"glyph ? 'sap-icon--' + glyph : ''\"> </i>\n\n<span\n *ngIf=\"label\"\n class=\"fd-info-label__text\"\n [attr.title]=\"title\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n >{{ label }}</span\n>\n\n<!-- TODO @salarenko: DEPRECATED - Remove in v0.23.0 -->\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InfoLabelComponent } from './info-label.component';\n\n@NgModule({\n declarations: [InfoLabelComponent],\n imports: [CommonModule],\n exports: [InfoLabelComponent]\n})\nexport class InfoLabelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;MAuBa,kBAAkB;;IAqC3B,YAAoB,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;;QAlC3C,UAAK,GAAG,EAAE,CAAC;KAkCoC;;IAG/C,QAAQ;QACJ,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,WAAW;QACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,UAAU;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;IAID,sBAAsB;QAClB,OAAO;YACH,eAAe;YACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,KAAK,GAAG,+BAA+B,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;YAC7D,IAAI,CAAC,KAAK;SACb,CAAC;KACL;;+GA/DQ,kBAAkB;mGAAlB,kBAAkB,+PCvB/B,2YAaA;ADkEI;IADC,aAAa;;;;gEAQb;2FA/DQ,kBAAkB;kBAT9B,SAAS;+BAGI,gCAAgC,iBAG3B,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM;iGAK/C,KAAK;sBADJ,KAAK;gBAQN,IAAI;sBADH,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAKN,SAAS;sBADR,KAAK;gBAKN,cAAc;sBADb,KAAK;gBAuBN,sBAAsB;;MEtEb,eAAe;;4GAAf,eAAe;6GAAf,eAAe,iBAJT,kBAAkB,aACvB,YAAY,aACZ,kBAAkB;6GAEnB,eAAe,YAHf,CAAC,YAAY,CAAC;2FAGd,eAAe;kBAL3B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,kBAAkB,CAAC;iBAChC;;;ACRD;;;;;;"}
1
+ {"version":3,"file":"fundamental-ngx-core-info-label.mjs","sources":["../../../../libs/core/src/lib/info-label/info-label.component.ts","../../../../libs/core/src/lib/info-label/info-label.component.html","../../../../libs/core/src/lib/info-label/info-label.module.ts","../../../../libs/core/src/lib/info-label/fundamental-ngx-core-info-label.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport { IconFont } from '@fundamental-ngx/core/icon';\nimport { applyCssClass, CssClassBuilder } from '@fundamental-ngx/core/utils';\nimport { Nullable } from '@fundamental-ngx/core/shared';\n\nexport type LabelType = 'numeric' | 'icon';\n\n@Component({\n selector: 'fd-info-label',\n templateUrl: './info-label.component.html',\n styleUrls: ['./info-label.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class InfoLabelComponent implements OnInit, OnChanges, CssClassBuilder {\n /** User's custom classes */\n @Input()\n class = '';\n\n /**\n * The LabelType represented by the info label .\n * For default info label omit this property\n */\n @Input()\n type: LabelType;\n\n /** The icon name to display. See the icon page for the list of icons\n * here: https://sap.github.io/fundamental-ngx/icon\n * */\n @Input()\n glyph: Nullable<string>;\n\n /**\n * The icon font\n * Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'\n */\n @Input()\n font: IconFont = 'SAP-icons';\n\n /** Define the colour of the info label starting form 1 to 10 */\n @Input()\n color: string;\n\n /** Define the text content of the info label */\n @Input()\n label: string;\n\n /** Define the tooltip content of the info label */\n @Input()\n title: string;\n\n /** Define the ariaLabel content of the info label */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Define the labelled by content of the info label */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n elementRef(): ElementRef {\n return this._elementRef;\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-info-label',\n this.type ? `fd-info-label--${this.type}` : '',\n this.color ? `fd-info-label--accent-color-${this.color}` : '',\n this.class\n ];\n }\n}\n","<fd-icon *ngIf=\"glyph\" class=\"fd-info-label__icon\" [glyph]=\"glyph\" [font]=\"font\"></fd-icon>\n\n<span\n *ngIf=\"label\"\n class=\"fd-info-label__text\"\n [attr.title]=\"title\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n >{{ label }}</span\n>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { InfoLabelComponent } from './info-label.component';\n\n@NgModule({\n declarations: [InfoLabelComponent],\n imports: [CommonModule, IconModule],\n exports: [InfoLabelComponent]\n})\nexport class InfoLabelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;MAsBa,kBAAkB;;IA8C3B,YAAoB,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;;QA3C3C,UAAK,GAAG,EAAE,CAAC;;;;;QAoBX,SAAI,GAAa,WAAW,CAAC;KAuBkB;;IAG/C,QAAQ;QACJ,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,WAAW;QACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,UAAU;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;IAID,sBAAsB;QAClB,OAAO;YACH,eAAe;YACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,KAAK,GAAG,+BAA+B,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;YAC7D,IAAI,CAAC,KAAK;SACb,CAAC;KACL;;+GAxEQ,kBAAkB;mGAAlB,kBAAkB,4PCtB/B,mTAUA;AD6EI;IADC,aAAa;;;;gEAQb;2FAxEQ,kBAAkB;kBAP9B,SAAS;+BACI,eAAe,iBAGV,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM;iGAK/C,KAAK;sBADJ,KAAK;gBAQN,IAAI;sBADH,KAAK;gBAON,KAAK;sBADJ,KAAK;gBAQN,IAAI;sBADH,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAKN,SAAS;sBADR,KAAK;gBAKN,cAAc;sBADb,KAAK;gBAuBN,sBAAsB;;ME7Eb,eAAe;;4GAAf,eAAe;6GAAf,eAAe,iBAJT,kBAAkB,aACvB,YAAY,EAAE,UAAU,aACxB,kBAAkB;6GAEnB,eAAe,YAHf,CAAC,YAAY,EAAE,UAAU,CAAC;2FAG1B,eAAe;kBAL3B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;oBACnC,OAAO,EAAE,CAAC,kBAAkB,CAAC;iBAChC;;;ACTD;;;;;;"}