@fundamental-ngx/core 0.63.2-rc.4 → 0.63.2-rc.6

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 (201) hide show
  1. package/fesm2022/fundamental-ngx-core-action-bar.mjs +27 -26
  2. package/fesm2022/fundamental-ngx-core-action-bar.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-core-action-sheet.mjs +25 -22
  4. package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-core-avatar-group-legacy.mjs +35 -31
  6. package/fesm2022/fundamental-ngx-core-avatar-group-legacy.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-core-avatar-group.mjs +52 -43
  8. package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-core-avatar.mjs +67 -43
  10. package/fesm2022/fundamental-ngx-core-avatar.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-core-bar.mjs +50 -41
  12. package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +18 -14
  14. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs +34 -23
  16. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-core-button.mjs +56 -37
  18. package/fesm2022/fundamental-ngx-core-button.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-core-calendar.mjs +87 -62
  20. package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-core-card.mjs +264 -188
  22. package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
  23. package/fesm2022/fundamental-ngx-core-carousel.mjs +35 -26
  24. package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
  25. package/fesm2022/fundamental-ngx-core-checkbox.mjs +7 -7
  26. package/fesm2022/fundamental-ngx-core-combobox.mjs +19 -18
  27. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  28. package/fesm2022/fundamental-ngx-core-content-density.mjs +46 -36
  29. package/fesm2022/fundamental-ngx-core-content-density.mjs.map +1 -1
  30. package/fesm2022/fundamental-ngx-core-date-picker.mjs +13 -13
  31. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  32. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +15 -14
  33. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  34. package/fesm2022/fundamental-ngx-core-datetime.mjs +32 -31
  35. package/fesm2022/fundamental-ngx-core-datetime.mjs.map +1 -1
  36. package/fesm2022/fundamental-ngx-core-dialog.mjs +116 -89
  37. package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
  38. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +100 -77
  39. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  40. package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs +13 -13
  41. package/fesm2022/fundamental-ngx-core-facets.mjs +24 -20
  42. package/fesm2022/fundamental-ngx-core-facets.mjs.map +1 -1
  43. package/fesm2022/fundamental-ngx-core-feed-input.mjs +18 -17
  44. package/fesm2022/fundamental-ngx-core-feed-input.mjs.map +1 -1
  45. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +22 -22
  46. package/fesm2022/fundamental-ngx-core-file-uploader.mjs +16 -16
  47. package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs +17 -15
  48. package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
  49. package/fesm2022/fundamental-ngx-core-flexible-column-layout.mjs +7 -7
  50. package/fesm2022/fundamental-ngx-core-form.mjs +74 -74
  51. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  52. package/fesm2022/fundamental-ngx-core-formatted-text.mjs +17 -12
  53. package/fesm2022/fundamental-ngx-core-formatted-text.mjs.map +1 -1
  54. package/fesm2022/fundamental-ngx-core-generic-tag.mjs +19 -13
  55. package/fesm2022/fundamental-ngx-core-generic-tag.mjs.map +1 -1
  56. package/fesm2022/fundamental-ngx-core-grid-list.mjs +56 -51
  57. package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
  58. package/fesm2022/fundamental-ngx-core-icon.mjs +33 -20
  59. package/fesm2022/fundamental-ngx-core-icon.mjs.map +1 -1
  60. package/fesm2022/fundamental-ngx-core-illustrated-message.mjs +42 -31
  61. package/fesm2022/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
  62. package/fesm2022/fundamental-ngx-core-infinite-scroll.mjs +11 -9
  63. package/fesm2022/fundamental-ngx-core-infinite-scroll.mjs.map +1 -1
  64. package/fesm2022/fundamental-ngx-core-info-label.mjs +29 -18
  65. package/fesm2022/fundamental-ngx-core-info-label.mjs.map +1 -1
  66. package/fesm2022/fundamental-ngx-core-inline-help.mjs +35 -25
  67. package/fesm2022/fundamental-ngx-core-inline-help.mjs.map +1 -1
  68. package/fesm2022/fundamental-ngx-core-input-group.mjs +21 -21
  69. package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
  70. package/fesm2022/fundamental-ngx-core-layout-grid.mjs +40 -27
  71. package/fesm2022/fundamental-ngx-core-layout-grid.mjs.map +1 -1
  72. package/fesm2022/fundamental-ngx-core-layout-panel.mjs +41 -37
  73. package/fesm2022/fundamental-ngx-core-layout-panel.mjs.map +1 -1
  74. package/fesm2022/fundamental-ngx-core-link.mjs +24 -19
  75. package/fesm2022/fundamental-ngx-core-link.mjs.map +1 -1
  76. package/fesm2022/fundamental-ngx-core-list.mjs +100 -91
  77. package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
  78. package/fesm2022/fundamental-ngx-core-menu.mjs +125 -101
  79. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  80. package/fesm2022/fundamental-ngx-core-message-box.mjs +39 -38
  81. package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
  82. package/fesm2022/fundamental-ngx-core-message-page.mjs +19 -19
  83. package/fesm2022/fundamental-ngx-core-message-strip.mjs +79 -55
  84. package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
  85. package/fesm2022/fundamental-ngx-core-message-toast.mjs +17 -17
  86. package/fesm2022/fundamental-ngx-core-message-toast.mjs.map +1 -1
  87. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +21 -20
  88. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs.map +1 -1
  89. package/fesm2022/fundamental-ngx-core-mobile-mode.mjs +3 -3
  90. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +98 -66
  91. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  92. package/fesm2022/fundamental-ngx-core-multi-input.mjs +27 -21
  93. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  94. package/fesm2022/fundamental-ngx-core-nested-list.mjs +46 -43
  95. package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
  96. package/fesm2022/fundamental-ngx-core-notification.mjs +178 -132
  97. package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
  98. package/fesm2022/fundamental-ngx-core-object-attribute.mjs +7 -7
  99. package/fesm2022/fundamental-ngx-core-object-identifier.mjs +24 -17
  100. package/fesm2022/fundamental-ngx-core-object-identifier.mjs.map +1 -1
  101. package/fesm2022/fundamental-ngx-core-object-marker.mjs +41 -24
  102. package/fesm2022/fundamental-ngx-core-object-marker.mjs.map +1 -1
  103. package/fesm2022/fundamental-ngx-core-object-number.mjs +33 -21
  104. package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
  105. package/fesm2022/fundamental-ngx-core-object-status.mjs +41 -26
  106. package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
  107. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +33 -32
  108. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  109. package/fesm2022/fundamental-ngx-core-pagination.mjs +10 -10
  110. package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
  111. package/fesm2022/fundamental-ngx-core-panel.mjs +51 -35
  112. package/fesm2022/fundamental-ngx-core-panel.mjs.map +1 -1
  113. package/fesm2022/fundamental-ngx-core-popover.mjs +267 -164
  114. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  115. package/fesm2022/fundamental-ngx-core-product-switch.mjs +46 -32
  116. package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
  117. package/fesm2022/fundamental-ngx-core-progress-indicator.mjs +7 -7
  118. package/fesm2022/fundamental-ngx-core-quick-view.mjs +47 -44
  119. package/fesm2022/fundamental-ngx-core-quick-view.mjs.map +1 -1
  120. package/fesm2022/fundamental-ngx-core-radio.mjs +8 -8
  121. package/fesm2022/fundamental-ngx-core-radio.mjs.map +1 -1
  122. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +61 -39
  123. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  124. package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs +12 -11
  125. package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
  126. package/fesm2022/fundamental-ngx-core-scroll-spy.mjs +17 -12
  127. package/fesm2022/fundamental-ngx-core-scroll-spy.mjs.map +1 -1
  128. package/fesm2022/fundamental-ngx-core-scrollbar.mjs +14 -12
  129. package/fesm2022/fundamental-ngx-core-scrollbar.mjs.map +1 -1
  130. package/fesm2022/fundamental-ngx-core-segmented-button.mjs +9 -8
  131. package/fesm2022/fundamental-ngx-core-segmented-button.mjs.map +1 -1
  132. package/fesm2022/fundamental-ngx-core-select.mjs +22 -21
  133. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  134. package/fesm2022/fundamental-ngx-core-settings.mjs +70 -60
  135. package/fesm2022/fundamental-ngx-core-settings.mjs.map +1 -1
  136. package/fesm2022/fundamental-ngx-core-shared.mjs +3 -3
  137. package/fesm2022/fundamental-ngx-core-shellbar.mjs +77 -63
  138. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  139. package/fesm2022/fundamental-ngx-core-side-navigation.mjs +13 -13
  140. package/fesm2022/fundamental-ngx-core-skeleton.mjs +24 -16
  141. package/fesm2022/fundamental-ngx-core-skeleton.mjs.map +1 -1
  142. package/fesm2022/fundamental-ngx-core-slider.mjs +15 -13
  143. package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
  144. package/fesm2022/fundamental-ngx-core-split-button.mjs +10 -10
  145. package/fesm2022/fundamental-ngx-core-status-indicator.mjs +62 -35
  146. package/fesm2022/fundamental-ngx-core-status-indicator.mjs.map +1 -1
  147. package/fesm2022/fundamental-ngx-core-step-input.mjs +11 -9
  148. package/fesm2022/fundamental-ngx-core-step-input.mjs.map +1 -1
  149. package/fesm2022/fundamental-ngx-core-switch.mjs +8 -8
  150. package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
  151. package/fesm2022/fundamental-ngx-core-table.mjs +51 -50
  152. package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
  153. package/fesm2022/fundamental-ngx-core-tabs.mjs +56 -55
  154. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  155. package/fesm2022/fundamental-ngx-core-text.mjs +29 -19
  156. package/fesm2022/fundamental-ngx-core-text.mjs.map +1 -1
  157. package/fesm2022/fundamental-ngx-core-theming.mjs +7 -7
  158. package/fesm2022/fundamental-ngx-core-tile.mjs +171 -136
  159. package/fesm2022/fundamental-ngx-core-tile.mjs.map +1 -1
  160. package/fesm2022/fundamental-ngx-core-time-picker.mjs +9 -8
  161. package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
  162. package/fesm2022/fundamental-ngx-core-time.mjs +16 -13
  163. package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
  164. package/fesm2022/fundamental-ngx-core-timeline.mjs +43 -43
  165. package/fesm2022/fundamental-ngx-core-title.mjs +12 -10
  166. package/fesm2022/fundamental-ngx-core-title.mjs.map +1 -1
  167. package/fesm2022/fundamental-ngx-core-token.mjs +33 -24
  168. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  169. package/fesm2022/fundamental-ngx-core-toolbar.mjs +35 -32
  170. package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
  171. package/fesm2022/fundamental-ngx-core-tree.mjs +41 -36
  172. package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
  173. package/fesm2022/fundamental-ngx-core-upload-collection.mjs +37 -37
  174. package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  175. package/fesm2022/fundamental-ngx-core-user-menu.mjs +108 -84
  176. package/fesm2022/fundamental-ngx-core-user-menu.mjs.map +1 -1
  177. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +20 -17
  178. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
  179. package/fesm2022/fundamental-ngx-core-wizard.mjs +41 -32
  180. package/fesm2022/fundamental-ngx-core-wizard.mjs.map +1 -1
  181. package/fesm2022/fundamental-ngx-core.mjs +4 -4
  182. package/package.json +11 -10
  183. package/schematics/add-styles/index.js +3 -3
  184. package/schematics/add-styles/index.js.map +1 -1
  185. package/schematics/add-theming/index.js +1 -1
  186. package/schematics/add-theming/index.js.map +1 -1
  187. package/schematics/package.json +7 -0
  188. package/schematics/tsconfig.json +12 -6
  189. package/schematics/tsconfig.spec.json +2 -0
  190. package/schematics/utils/calls-providers-function.js +34 -1
  191. package/schematics/utils/calls-providers-function.js.map +1 -1
  192. package/schematics/utils/ng-module-utils.js +34 -1
  193. package/schematics/utils/ng-module-utils.js.map +1 -1
  194. package/types/fundamental-ngx-core-avatar-group-legacy.d.ts +1 -0
  195. package/types/fundamental-ngx-core-carousel.d.ts +2 -0
  196. package/types/fundamental-ngx-core-list.d.ts +2 -2
  197. package/types/fundamental-ngx-core-menu.d.ts +4 -4
  198. package/types/fundamental-ngx-core-notification.d.ts +0 -2
  199. package/types/fundamental-ngx-core-popover.d.ts +8 -6
  200. package/types/fundamental-ngx-core-product-switch.d.ts +6 -3
  201. package/types/fundamental-ngx-core-wizard.d.ts +4 -1
@@ -28,10 +28,10 @@ class AvatarIconPipe {
28
28
  }
29
29
  return `sap-icon--${computedIcon} ${valueState ? 'fd-avatar__zoom-icon--' + valueState : ''}`;
30
30
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AvatarIconPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
32
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: AvatarIconPipe, isStandalone: true, name: "fdAvatarIcon" }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AvatarIconPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
32
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.5", ngImport: i0, type: AvatarIconPipe, isStandalone: true, name: "fdAvatarIcon" }); }
33
33
  }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AvatarIconPipe, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AvatarIconPipe, decorators: [{
35
35
  type: Pipe,
36
36
  args: [{
37
37
  name: 'fdAvatarIcon',
@@ -53,82 +53,102 @@ class AvatarComponent {
53
53
  /** @hidden */
54
54
  constructor() {
55
55
  /** Id of the Avatar. */
56
- this.id = input('fd-avatar-' + ++avatarUniqueId, ...(ngDevMode ? [{ debugName: "id" }] : []));
56
+ this.id = input('fd-avatar-' + ++avatarUniqueId, /* @ts-ignore */
57
+ ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
57
58
  /** Aria-label for Avatar. */
58
- this.ariaLabel = input(null, ...(ngDevMode ? [{ debugName: "ariaLabel" }] : []));
59
+ this.ariaLabel = input(null, /* @ts-ignore */
60
+ ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
59
61
  /** Aria-Labelledby for element describing Avatar. */
60
- this.ariaLabelledby = input(null, ...(ngDevMode ? [{ debugName: "ariaLabelledby" }] : []));
62
+ this.ariaLabelledby = input(null, /* @ts-ignore */
63
+ ...(ngDevMode ? [{ debugName: "ariaLabelledby" }] : /* istanbul ignore next */ []));
61
64
  /** Localized text for label */
62
- this.label = input(null, ...(ngDevMode ? [{ debugName: "label" }] : []));
65
+ this.label = input(null, /* @ts-ignore */
66
+ ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
63
67
  /** The size of the Avatar. Options include: *xs*, *s*, *m*, *l* and *xl*. */
64
- this.size = input('l', ...(ngDevMode ? [{ debugName: "size" }] : []));
68
+ this.size = input('l', /* @ts-ignore */
69
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
65
70
  /** Font family of the icon. */
66
- this.font = input(FD_DEFAULT_ICON_FONT_FAMILY, ...(ngDevMode ? [{ debugName: "font" }] : []));
71
+ this.font = input(FD_DEFAULT_ICON_FONT_FAMILY, /* @ts-ignore */
72
+ ...(ngDevMode ? [{ debugName: "font" }] : /* istanbul ignore next */ []));
67
73
  /** The glyph name. */
68
- this.glyph = input(null, ...(ngDevMode ? [{ debugName: "glyph" }] : []));
74
+ this.glyph = input(null, /* @ts-ignore */
75
+ ...(ngDevMode ? [{ debugName: "glyph" }] : /* istanbul ignore next */ []));
69
76
  /** The glyph name for zoom icon. */
70
- this.zoomGlyph = input(null, ...(ngDevMode ? [{ debugName: "zoomGlyph" }] : []));
77
+ this.zoomGlyph = input(null, /* @ts-ignore */
78
+ ...(ngDevMode ? [{ debugName: "zoomGlyph" }] : /* istanbul ignore next */ []));
71
79
  /** Whether to apply a circle style to the Avatar. */
72
- this.circle = input(false, { ...(ngDevMode ? { debugName: "circle" } : {}), transform: booleanAttribute });
80
+ this.circle = input(false, { ...(ngDevMode ? { debugName: "circle" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
73
81
  /** Whether the Avatar should be interactive. */
74
- this.interactive = input(false, { ...(ngDevMode ? { debugName: "interactive" } : {}), transform: booleanAttribute });
82
+ this.interactive = input(false, { ...(ngDevMode ? { debugName: "interactive" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
75
83
  /** Whether to apply a transparent style to the Avatar. */
76
- this.transparent = input(false, { ...(ngDevMode ? { debugName: "transparent" } : {}), transform: booleanAttribute });
84
+ this.transparent = input(false, { ...(ngDevMode ? { debugName: "transparent" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
77
85
  /** Whether to apply background size contain style to the Avatar */
78
- this.contain = input(false, { ...(ngDevMode ? { debugName: "contain" } : {}), transform: booleanAttribute });
86
+ this.contain = input(false, { ...(ngDevMode ? { debugName: "contain" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
79
87
  /** Whether to apply a placeholder background style to the Avatar. */
80
- this.placeholder = input(false, { ...(ngDevMode ? { debugName: "placeholder" } : {}), transform: booleanAttribute });
88
+ this.placeholder = input(false, { ...(ngDevMode ? { debugName: "placeholder" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
81
89
  /** Whether to apply a tile background style to the Avatar. */
82
- this.tile = input(false, { ...(ngDevMode ? { debugName: "tile" } : {}), transform: booleanAttribute });
90
+ this.tile = input(false, { ...(ngDevMode ? { debugName: "tile" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
83
91
  /** Whether to apply a border to the Avatar. */
84
- this.border = input(false, { ...(ngDevMode ? { debugName: "border" } : {}), transform: booleanAttribute });
92
+ this.border = input(false, { ...(ngDevMode ? { debugName: "border" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
85
93
  /** A number from 1 to 10 representing the background color of the Avatar.
86
94
  * This property will override the colorIndication property.
87
95
  */
88
- this.colorAccent = input(null, ...(ngDevMode ? [{ debugName: "colorAccent" }] : []));
96
+ this.colorAccent = input(null, /* @ts-ignore */
97
+ ...(ngDevMode ? [{ debugName: "colorAccent" }] : /* istanbul ignore next */ []));
89
98
  /** A number from 1 to 10 representing the background color of the Avatar using the Indication Colors. */
90
- this.colorIndication = input(null, ...(ngDevMode ? [{ debugName: "colorIndication" }] : []));
99
+ this.colorIndication = input(null, /* @ts-ignore */
100
+ ...(ngDevMode ? [{ debugName: "colorIndication" }] : /* istanbul ignore next */ []));
91
101
  /** Whether to apply random background color to the Avatar. */
92
- this.random = input(false, { ...(ngDevMode ? { debugName: "random" } : {}), transform: booleanAttribute });
102
+ this.random = input(false, { ...(ngDevMode ? { debugName: "random" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
93
103
  /** Whether component should be focusable & clicable */
94
- this.clickable = input(false, { ...(ngDevMode ? { debugName: "clickable" } : {}), transform: booleanAttribute });
104
+ this.clickable = input(false, { ...(ngDevMode ? { debugName: "clickable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
95
105
  /** Value state of the Avatar. */
96
- this.valueState = input(null, ...(ngDevMode ? [{ debugName: "valueState" }] : []));
106
+ this.valueState = input(null, /* @ts-ignore */
107
+ ...(ngDevMode ? [{ debugName: "valueState" }] : /* istanbul ignore next */ []));
97
108
  /** Background image resource: url or base64. */
98
- this.image = input(null, ...(ngDevMode ? [{ debugName: "image" }] : []));
109
+ this.image = input(null, /* @ts-ignore */
110
+ ...(ngDevMode ? [{ debugName: "image" }] : /* istanbul ignore next */ []));
99
111
  /** Backup options to use when image hasn't been loaded successfully.
100
112
  * Options separated with "|" symbol.
101
113
  * Possible options: content, alt, backup, default-icon
102
114
  */
103
- this.alterIcon = input(null, ...(ngDevMode ? [{ debugName: "alterIcon" }] : []));
115
+ this.alterIcon = input(null, /* @ts-ignore */
116
+ ...(ngDevMode ? [{ debugName: "alterIcon" }] : /* istanbul ignore next */ []));
104
117
  /** Backup image to load when image hasn't been loaded successfully.
105
118
  * Only applicable when using alterIcon input property.
106
119
  */
107
- this.backupImage = input(null, ...(ngDevMode ? [{ debugName: "backupImage" }] : []));
120
+ this.backupImage = input(null, /* @ts-ignore */
121
+ ...(ngDevMode ? [{ debugName: "backupImage" }] : /* istanbul ignore next */ []));
108
122
  /** Event emitted when avatar clicked. Only fires if clickable input property set to true. */
109
123
  this.avatarClicked = output();
110
124
  /** Event emitted when zoom icon clicked. Only fires if zoomGlyph input property is set. */
111
125
  this.zoomGlyphClicked = output();
112
126
  /** @hidden */
113
- this.content = viewChild('content', ...(ngDevMode ? [{ debugName: "content" }] : []));
127
+ this.content = viewChild('content', /* @ts-ignore */
128
+ ...(ngDevMode ? [{ debugName: "content" }] : /* istanbul ignore next */ []));
114
129
  /** @hidden Internal state for background image */
115
- this.bgImage = signal(null, ...(ngDevMode ? [{ debugName: "bgImage" }] : []));
130
+ this.bgImage = signal(null, /* @ts-ignore */
131
+ ...(ngDevMode ? [{ debugName: "bgImage" }] : /* istanbul ignore next */ []));
116
132
  /** @hidden Internal state for computed abbreviation */
117
- this.abbreviate = signal(null, ...(ngDevMode ? [{ debugName: "abbreviate" }] : []));
133
+ this.abbreviate = signal(null, /* @ts-ignore */
134
+ ...(ngDevMode ? [{ debugName: "abbreviate" }] : /* istanbul ignore next */ []));
118
135
  /** @hidden Computed tabindex based on clickable state */
119
136
  this.tabindex = computed(() => {
120
137
  if (this._hostTabindex != null) {
121
138
  return this._hostTabindex;
122
139
  }
123
140
  return this.clickable() ? 0 : null;
124
- }, ...(ngDevMode ? [{ debugName: "tabindex" }] : []));
141
+ }, /* @ts-ignore */
142
+ ...(ngDevMode ? [{ debugName: "tabindex" }] : /* istanbul ignore next */ []));
125
143
  /** @hidden Computed role attribute */
126
- this.role = computed(() => (this.zoomGlyph() || this.clickable() ? 'button' : 'img'), ...(ngDevMode ? [{ debugName: "role" }] : []));
144
+ this.role = computed(() => (this.zoomGlyph() || this.clickable() ? 'button' : 'img'), /* @ts-ignore */
145
+ ...(ngDevMode ? [{ debugName: "role" }] : /* istanbul ignore next */ []));
127
146
  /** @hidden If a default placeholder should be displayed */
128
147
  this.showDefault = computed(() =>
129
148
  // Show default if explicitly requested OR if no content is available
130
149
  this._shouldShowDefaultIcon() ||
131
- (!this.abbreviate() && !this._imageLoaded() && !this.glyph() && !this.image()), ...(ngDevMode ? [{ debugName: "showDefault" }] : []));
150
+ (!this.abbreviate() && !this._imageLoaded() && !this.glyph() && !this.image()), /* @ts-ignore */
151
+ ...(ngDevMode ? [{ debugName: "showDefault" }] : /* istanbul ignore next */ []));
132
152
  /** @hidden Computed CSS classes */
133
153
  this.cssClass = computed(() => {
134
154
  const colorAccentValue = this.colorAccent();
@@ -152,13 +172,17 @@ class AvatarComponent {
152
172
  ]
153
173
  .filter(Boolean)
154
174
  .join(' ');
155
- }, ...(ngDevMode ? [{ debugName: "cssClass" }] : []));
175
+ }, /* @ts-ignore */
176
+ ...(ngDevMode ? [{ debugName: "cssClass" }] : /* istanbul ignore next */ []));
156
177
  /** @hidden Internal state tracking if image loaded successfully */
157
- this._imageLoaded = signal(false, ...(ngDevMode ? [{ debugName: "_imageLoaded" }] : []));
178
+ this._imageLoaded = signal(false, /* @ts-ignore */
179
+ ...(ngDevMode ? [{ debugName: "_imageLoaded" }] : /* istanbul ignore next */ []));
158
180
  /** @hidden Explicitly track when to show default icon (for failed images with no fallback) */
159
- this._shouldShowDefaultIcon = signal(false, ...(ngDevMode ? [{ debugName: "_shouldShowDefaultIcon" }] : []));
181
+ this._shouldShowDefaultIcon = signal(false, /* @ts-ignore */
182
+ ...(ngDevMode ? [{ debugName: "_shouldShowDefaultIcon" }] : /* istanbul ignore next */ []));
160
183
  /** @hidden Stored random color accent to prevent regeneration */
161
- this._randomColorAccent = signal(getRandomColorAccent(), ...(ngDevMode ? [{ debugName: "_randomColorAccent" }] : []));
184
+ this._randomColorAccent = signal(getRandomColorAccent(), /* @ts-ignore */
185
+ ...(ngDevMode ? [{ debugName: "_randomColorAccent" }] : /* istanbul ignore next */ []));
162
186
  /** @hidden Track the currently loading/loaded image URL to prevent duplicate requests */
163
187
  this._currentImageUrl = null;
164
188
  /** @hidden Cache of successfully loaded image URLs to prevent re-requesting */
@@ -326,15 +350,15 @@ class AvatarComponent {
326
350
  this._imageLoaded.set(false);
327
351
  this._shouldShowDefaultIcon.set(true);
328
352
  }
329
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
330
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: AvatarComponent, isStandalone: true, selector: "fd-avatar", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, font: { classPropertyName: "font", publicName: "font", isSignal: true, isRequired: false, transformFunction: null }, glyph: { classPropertyName: "glyph", publicName: "glyph", isSignal: true, isRequired: false, transformFunction: null }, zoomGlyph: { classPropertyName: "zoomGlyph", publicName: "zoomGlyph", isSignal: true, isRequired: false, transformFunction: null }, circle: { classPropertyName: "circle", publicName: "circle", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, transparent: { classPropertyName: "transparent", publicName: "transparent", isSignal: true, isRequired: false, transformFunction: null }, contain: { classPropertyName: "contain", publicName: "contain", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, tile: { classPropertyName: "tile", publicName: "tile", isSignal: true, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null }, colorAccent: { classPropertyName: "colorAccent", publicName: "colorAccent", isSignal: true, isRequired: false, transformFunction: null }, colorIndication: { classPropertyName: "colorIndication", publicName: "colorIndication", isSignal: true, isRequired: false, transformFunction: null }, random: { classPropertyName: "random", publicName: "random", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null }, image: { classPropertyName: "image", publicName: "image", isSignal: true, isRequired: false, transformFunction: null }, alterIcon: { classPropertyName: "alterIcon", publicName: "alterIcon", isSignal: true, isRequired: false, transformFunction: null }, backupImage: { classPropertyName: "backupImage", publicName: "backupImage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { avatarClicked: "avatarClicked", zoomGlyphClicked: "zoomGlyphClicked" }, host: { listeners: { "click": "onClick($event)", "keydown.enter": "onClick($event)", "keydown.space": "onClick($event)" }, properties: { "class": "cssClass()", "style.background-image": "bgImage()", "attr.tabindex": "tabindex()", "attr.id": "id()", "attr.aria-label": "ariaLabel()", "attr.aria-labelledby": "ariaLabelledby()", "attr.alt": "ariaLabel()", "attr.role": "role()" } }, providers: [
353
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
354
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: AvatarComponent, isStandalone: true, selector: "fd-avatar", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, font: { classPropertyName: "font", publicName: "font", isSignal: true, isRequired: false, transformFunction: null }, glyph: { classPropertyName: "glyph", publicName: "glyph", isSignal: true, isRequired: false, transformFunction: null }, zoomGlyph: { classPropertyName: "zoomGlyph", publicName: "zoomGlyph", isSignal: true, isRequired: false, transformFunction: null }, circle: { classPropertyName: "circle", publicName: "circle", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, transparent: { classPropertyName: "transparent", publicName: "transparent", isSignal: true, isRequired: false, transformFunction: null }, contain: { classPropertyName: "contain", publicName: "contain", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, tile: { classPropertyName: "tile", publicName: "tile", isSignal: true, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null }, colorAccent: { classPropertyName: "colorAccent", publicName: "colorAccent", isSignal: true, isRequired: false, transformFunction: null }, colorIndication: { classPropertyName: "colorIndication", publicName: "colorIndication", isSignal: true, isRequired: false, transformFunction: null }, random: { classPropertyName: "random", publicName: "random", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null }, image: { classPropertyName: "image", publicName: "image", isSignal: true, isRequired: false, transformFunction: null }, alterIcon: { classPropertyName: "alterIcon", publicName: "alterIcon", isSignal: true, isRequired: false, transformFunction: null }, backupImage: { classPropertyName: "backupImage", publicName: "backupImage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { avatarClicked: "avatarClicked", zoomGlyphClicked: "zoomGlyphClicked" }, host: { listeners: { "click": "onClick($event)", "keydown.enter": "onClick($event)", "keydown.space": "onClick($event)" }, properties: { "class": "cssClass()", "style.background-image": "bgImage()", "attr.tabindex": "tabindex()", "attr.id": "id()", "attr.aria-label": "ariaLabel()", "attr.aria-labelledby": "ariaLabelledby()", "attr.alt": "ariaLabel()", "attr.role": "role()" } }, providers: [
331
355
  {
332
356
  provide: FD_AVATAR_COMPONENT,
333
357
  useExisting: AvatarComponent
334
358
  }
335
359
  ], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (abbreviate()) {\n {{ abbreviate() }}\n}\n@if (zoomGlyph() || valueState()) {\n <i\n role=\"presentation\"\n class=\"fd-avatar__zoom-icon\"\n [class]=\"valueState() | fdAvatarIcon: zoomGlyph()\"\n (mousedown)=\"zoomClicked($event)\"\n >\n </i>\n}\n@if (glyph() || showDefault()) {\n <fd-icon\n class=\"fd-avatar__icon\"\n role=\"presentation\"\n [font]=\"font()\"\n [glyph]=\"glyph() || 'person-placeholder'\"\n ></fd-icon>\n}\n<div #content [style.display]=\"'none'\">\n <ng-content></ng-content>\n</div>\n", styles: [".fd-avatar{--fdAvatarZoomIconPosition:0;background-color:var(--fdAvatarBackgroundColor);background-position:50%;background-repeat:no-repeat;background-size:var(--fdAvatarBackgroundSize);border:0;border:var(--fdAvatarBorderWidth,.0625rem) solid var(--fdAvatarBorderColor);border-radius:var(--fdAvatarBorderRadius);-webkit-box-shadow:var(--fdAvatarBoxShadow);box-shadow:var(--fdAvatarBoxShadow);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdAvatarColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--fdAvatarFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdAvatarRatio);line-height:normal;margin-block:0;margin-inline:0;max-height:var(--fdAvatarRatio);max-width:var(--fdAvatarRatio);min-height:var(--fdAvatarRatio);min-width:var(--fdAvatarRatio);padding-block:0;padding-inline:0;position:relative;text-shadow:var(--fdAvatarTextShadow);vertical-align:middle;width:var(--fdAvatarRatio)}.fd-avatar:after,.fd-avatar:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-avatar.is-focus,.fd-avatar:focus{outline:none}.fd-avatar.is-focus:after,.fd-avatar:focus:after{border-color:var(--sapContent_FocusColor);border-radius:var(--fdAvatar_Focus_Outline_Radius);border-style:var(--sapContent_FocusStyle);border-width:var(--sapContent_FocusWidth);content:\"\";inset:var(--fdAvatar_Focus_Outline_Offset) var(--fdAvatar_Focus_Outline_Offset) var(--fdAvatar_Focus_Outline_Offset) var(--fdAvatar_Focus_Outline_Offset);pointer-events:none;position:absolute}.fd-avatar--interactive,.fd-avatar[role=button],.fd-avatar[tabindex=\"0\"]{cursor:pointer}.fd-avatar--interactive.is-hover,.fd-avatar--interactive:hover,.fd-avatar[role=button].is-hover,.fd-avatar[role=button]:hover,.fd-avatar[tabindex=\"0\"].is-hover,.fd-avatar[tabindex=\"0\"]:hover{--fdAvatarBorderColor:var(--fdAvatarBorderHoverColor,var(--sapAvatar_Hover_BorderColor));--fdAvatarBackgroundColor:var(--fdAvatarHoverBackgroundColor,var(--sapAvatar_6_Hover_Background))}.fd-avatar--interactive.is-disabled,.fd-avatar--interactive:disabled,.fd-avatar--interactive[aria-disabled=true],.fd-avatar[role=button].is-disabled,.fd-avatar[role=button]:disabled,.fd-avatar[role=button][aria-disabled=true],.fd-avatar[tabindex=\"0\"].is-disabled,.fd-avatar[tabindex=\"0\"]:disabled,.fd-avatar[tabindex=\"0\"][aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity)}.fd-avatar--interactive.is-active,.fd-avatar--interactive:active,.fd-avatar[role=button].is-active,.fd-avatar[role=button]:active,.fd-avatar[tabindex=\"0\"].is-active,.fd-avatar[tabindex=\"0\"]:active{--fdAvatarBorderColor:var(--fdAvatarBorderActiveColor,var(--sapButton_Active_BorderColor));--fdAvatarBackgroundColor:var(--fdAvatarBackgroundActiveColor,var(--sapButton_Active_Background));--fdAvatarColor:var(--fdAvatarActiveColor,var(--sapButton_Active_TextColor))}.fd-avatar--interactive.is-active.is-hover,.fd-avatar--interactive.is-active:hover,.fd-avatar--interactive:active.is-hover,.fd-avatar--interactive:active:hover,.fd-avatar[role=button].is-active.is-hover,.fd-avatar[role=button].is-active:hover,.fd-avatar[role=button]:active.is-hover,.fd-avatar[role=button]:active:hover,.fd-avatar[tabindex=\"0\"].is-active.is-hover,.fd-avatar[tabindex=\"0\"].is-active:hover,.fd-avatar[tabindex=\"0\"]:active.is-hover,.fd-avatar[tabindex=\"0\"]:active:hover{--fdAvatarBorderColor:var(--fdAvatarBorderActiveHoverColor,var(--sapButton_Selected_Hover_BorderColor));--fdAvatarBackgroundColor:var(--fdAvatarBackgroundActiveHoverColor,var(--sapButton_Selected_Hover_Background));--fdAvatarColor:var(--fdAvatarActiveHoverColor,var(--sapButton_Selected_TextColor))}.fd-avatar--interactive.is-toggled,.fd-avatar[role=button].is-toggled,.fd-avatar[tabindex=\"0\"].is-toggled{--fdAvatarBorderColor:var(--fdAvatarBorderActiveColor,var(--sapButton_Active_BorderColor));--fdAvatarBackgroundColor:var(--fdAvatarBackgroundActiveColor,var(--sapButton_Active_Background));--fdAvatarColor:var(--fdAvatarActiveColor,var(--sapButton_Active_TextColor))}.fd-avatar--interactive.is-toggled.is-hover,.fd-avatar--interactive.is-toggled:hover,.fd-avatar[role=button].is-toggled.is-hover,.fd-avatar[role=button].is-toggled:hover,.fd-avatar[tabindex=\"0\"].is-toggled.is-hover,.fd-avatar[tabindex=\"0\"].is-toggled:hover{--fdAvatarBorderColor:var(--fdAvatarBorderActiveHoverColor,var(--sapButton_Selected_Hover_BorderColor));--fdAvatarBackgroundColor:var(--fdAvatarBackgroundActiveHoverColor,var(--sapButton_Selected_Hover_Background));--fdAvatarColor:var(--fdAvatarActiveHoverColor,var(--sapButton_Selected_TextColor))}.fd-avatar--interactive.is-focus,.fd-avatar--interactive:focus,.fd-avatar[role=button].is-focus,.fd-avatar[role=button]:focus,.fd-avatar[tabindex=\"0\"].is-focus,.fd-avatar[tabindex=\"0\"]:focus{padding-block:.125rem;padding-inline:.125rem;z-index:5}.fd-avatar__zoom-icon{--fdAvatarZoomIconColor:var(--sapButton_Emphasized_TextColor);--fdAvatarZoomIconBorderColor:var(--sapButton_Emphasized_BorderColor);--fdAvatarZoomIconBackground:var(--sapButton_Emphasized_Background)}.fd-avatar__zoom-icon [class*=sap-icon],.fd-avatar__zoom-icon[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:inherit;line-height:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:var(--fdAvatarZoomIconBackground);border:.0625rem solid var(--fdAvatarZoomIconBorderColor);border-radius:100%;color:var(--fdAvatarZoomIconColor);font-size:var(--fdAvatarZoomIconFontSize);height:var(--fdAvatarZoomIconDimensions);min-width:var(--fdAvatarZoomIconDimensions);position:absolute;width:var(--fdAvatarZoomIconDimensions);z-index:5}.fd-avatar__zoom-icon [class*=sap-icon] [class*=sap-icon],.fd-avatar__zoom-icon [class*=sap-icon][class*=sap-icon],.fd-avatar__zoom-icon[class*=sap-icon] [class*=sap-icon],.fd-avatar__zoom-icon[class*=sap-icon][class*=sap-icon]{bottom:var(--fdAvatarZoomIconPosition);right:var(--fdAvatarZoomIconPosition)}.fd-avatar__zoom-icon [class*=sap-icon] [class*=sap-icon][dir=rtl],.fd-avatar__zoom-icon [class*=sap-icon][class*=sap-icon][dir=rtl],.fd-avatar__zoom-icon[class*=sap-icon] [class*=sap-icon][dir=rtl],.fd-avatar__zoom-icon[class*=sap-icon][class*=sap-icon][dir=rtl],[dir=rtl] .fd-avatar__zoom-icon [class*=sap-icon] [class*=sap-icon],[dir=rtl] .fd-avatar__zoom-icon [class*=sap-icon][class*=sap-icon],[dir=rtl] .fd-avatar__zoom-icon[class*=sap-icon] [class*=sap-icon],[dir=rtl] .fd-avatar__zoom-icon[class*=sap-icon][class*=sap-icon]{left:var(--fdAvatarZoomIconPosition);right:auto}.fd-avatar__zoom-icon--positive{--fdAvatarZoomIconColor:var(--sapPositiveTextColor);--fdAvatarZoomIconBorderColor: ;--fdAvatarZoomIconBackground:var(--sapSuccessBackground)}.fd-avatar__zoom-icon--caution{--fdAvatarZoomIconColor:var(--sapCriticalTextColor);--fdAvatarZoomIconBorderColor: ;--fdAvatarZoomIconBackground:var(--sapWarningBackground)}.fd-avatar__zoom-icon--negative{--fdAvatarZoomIconColor:var(--sapNegativeTextColor);--fdAvatarZoomIconBorderColor: ;--fdAvatarZoomIconBackground:var(--sapErrorBackground)}.fd-avatar__zoom-icon--information{--fdAvatarZoomIconColor:var(--sapInformativeTextColor);--fdAvatarZoomIconBorderColor: ;--fdAvatarZoomIconBackground:var(--sapInformationBackground)}.fd-avatar__zoom-icon--indication-1{--fdAvatarZoomIconColor:var(--sapIndicationColor_1_TextColor);--fdAvatarZoomIconBorderColor: ;--fdAvatarZoomIconBackground:var(--sapIndicationColor_1_Background)}.fd-avatar__zoom-icon--indication-2{--fdAvatarZoomIconColor:var(--sapIndicationColor_2_TextColor);--fdAvatarZoomIconBorderColor: ;--fdAvatarZoomIconBackground:var(--sapIndicationColor_2_Background)}.fd-avatar__zoom-icon--indication-3{--fdAvatarZoomIconColor:var(--sapIndicationColor_3_TextColor);--fdAvatarZoomIconBorderColor: ;--fdAvatarZoomIconBackground:var(--sapIndicationColor_3_Background)}.fd-avatar__zoom-icon--indication-4{--fdAvatarZoomIconColor:var(--sapIndicationColor_4_TextColor);--fdAvatarZoomIconBorderColor: ;--fdAvatarZoomIconBackground:var(--sapIndicationColor_4_Background)}.fd-avatar__zoom-icon--indication-5{--fdAvatarZoomIconColor:var(--sapIndicationColor_5_TextColor);--fdAvatarZoomIconBorderColor: ;--fdAvatarZoomIconBackground:var(--sapIndicationColor_5_Background)}.fd-avatar__zoom-icon--indication-6{--fdAvatarZoomIconColor:var(--sapIndicationColor_6_TextColor);--fdAvatarZoomIconBorderColor: ;--fdAvatarZoomIconBackground:var(--sapIndicationColor_6_Background)}.fd-avatar__zoom-icon--indication-7{--fdAvatarZoomIconColor:var(--sapIndicationColor_7_TextColor);--fdAvatarZoomIconBorderColor: ;--fdAvatarZoomIconBackground:var(--sapIndicationColor_7_Background)}.fd-avatar__zoom-icon--indication-8{--fdAvatarZoomIconColor:var(--sapIndicationColor_8_TextColor);--fdAvatarZoomIconBorderColor: ;--fdAvatarZoomIconBackground:var(--sapIndicationColor_8_Background)}.fd-avatar__zoom-icon--indication-9{--fdAvatarZoomIconColor:var(--sapIndicationColor_9_TextColor);--fdAvatarZoomIconBorderColor: ;--fdAvatarZoomIconBackground:var(--sapIndicationColor_9_Background)}.fd-avatar__zoom-icon--indication-10{--fdAvatarZoomIconColor:var(--sapIndicationColor_10_TextColor);--fdAvatarZoomIconBorderColor: ;--fdAvatarZoomIconBackground:var(--sapIndicationColor_10_Background)}.fd-avatar__icon [class*=sap-icon],.fd-avatar__icon[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:inherit;line-height:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center}.fd-avatar--circle{--fdAvatarBorderRadius:100%}.fd-avatar--circle.is-focus,.fd-avatar--circle:focus{outline:none}.fd-avatar--circle.is-focus:after,.fd-avatar--circle:focus:after{border-color:var(--sapContent_FocusColor);border-radius:var(--fdAvatar_Focus_Outline_Radius_Circle);border-style:var(--sapContent_FocusStyle);border-width:var(--sapContent_FocusWidth);content:\"\";inset:var(--fdAvatar_Focus_Outline_Offset) var(--fdAvatar_Focus_Outline_Offset) var(--fdAvatar_Focus_Outline_Offset) var(--fdAvatar_Focus_Outline_Offset);pointer-events:none;position:absolute}.fd-avatar--background-contain{--fdAvatarBackgroundSize:contain}.fd-avatar--transparent{--fdAvatarBorderColor:var(--sapAvatar_Lite_BorderColor);--fdAvatarBackgroundColor:var(--sapAvatar_Lite_Background);--fdAvatarColor:var(--sapContent_IconColor);--fdAvatarBorderHoverColor:var(--sapContent_IconColor);--fdAvatarHoverBackgroundColor:var(--sapAvatar_Lite_Background)}.fd-avatar--tile{--fdAvatarBorderColor:var(--sapAvatar_Lite_BorderColor);--fdAvatarBackgroundColor:var(--sapTile_Background);--fdAvatarColor:var(--sapTile_IconColor);--fdAvatarBorderHoverColor:var(--sapTile_IconColor);--fdAvatarHoverBackgroundColor:var(--sapTile_Background)}.fd-avatar--placeholder{--fdAvatarBorderColor:var(--sapAvatar_Lite_BorderColor);--fdAvatarBackgroundColor:var(--sapContent_ImagePlaceholderBackground);--fdAvatarColor:var(--sapContent_ImagePlaceholderForegroundColor);--fdAvatarBorderHoverColor:var(--sapContent_ImagePlaceholderForegroundColor);--fdAvatarHoverBackgroundColor:var(--sapContent_ImagePlaceholderBackground)}.fd-avatar--thumbnail{--fdAvatarBorderColor:var(--fdAvatar_Thumbnail_BorderColor);--fdAvatarHoverBorderColor:var(--sapContent_IconColor);--fdAvatarBackgroundColor:var(--sapAvatar_Lite_Background);--fdAvatarHoverBackgroundColor:var(--sapAvatar_Lite_Background)}.fd-avatar--border{--fdAvatarBorderColor:var(--sapGroup_ContentBorderColor);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor)}.fd-avatar--overflow{cursor:pointer;--fdAvatarBorderWidth:var(--fdAvatar_Overflow_Border_Width);--fdAvatarBorderColor:var(--sapButton_BorderColor);--fdAvatarBackgroundColor:var(--sapButton_Background);--fdAvatarColor:var(--sapButton_TextColor);--fdAvatarHoverBackgroundColor:var(--sapButton_Hover_Background);--fdAvatarHoverBorderColor:var(--sapButton_Hover_BorderColor);--fdAvatarBorderActiveColor:var(--sapButton_Active_BorderColor);--fdAvatarBackgroundActiveColor:var(--sapButton_Active_Background);--fdAvatarActiveColor:var(--sapButton_Active_TextColor);--fdAvatarBorderActiveHoverColor:var(--sapButton_Active_BorderColor);--fdAvatarBackgroundActiveHoverColor:var(--sapButton_Active_Background);--fdAvatarActiveHoverColor:var(--sapButton_Active_TextColor)}.fd-avatar--overflow.is-disabled,.fd-avatar--overflow:disabled,.fd-avatar--overflow[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity)}.fd-avatar--accent-color-1,.fd-avatar--accent-color-1.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapAvatar_1_BorderColor);--fdAvatarColor:var(--sapAvatar_1_TextColor);--fdAvatarBackgroundColor:var(--sapAvatar_1_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapAvatar_1_Hover_Background)}.fd-avatar--accent-color-2,.fd-avatar--accent-color-2.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapAvatar_2_BorderColor);--fdAvatarColor:var(--sapAvatar_2_TextColor);--fdAvatarBackgroundColor:var(--sapAvatar_2_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapAvatar_2_Hover_Background)}.fd-avatar--accent-color-3,.fd-avatar--accent-color-3.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapAvatar_3_BorderColor);--fdAvatarColor:var(--sapAvatar_3_TextColor);--fdAvatarBackgroundColor:var(--sapAvatar_3_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapAvatar_3_Hover_Background)}.fd-avatar--accent-color-4,.fd-avatar--accent-color-4.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapAvatar_4_BorderColor);--fdAvatarColor:var(--sapAvatar_4_TextColor);--fdAvatarBackgroundColor:var(--sapAvatar_4_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapAvatar_4_Hover_Background)}.fd-avatar--accent-color-5,.fd-avatar--accent-color-5.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapAvatar_5_BorderColor);--fdAvatarColor:var(--sapAvatar_5_TextColor);--fdAvatarBackgroundColor:var(--sapAvatar_5_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapAvatar_5_Hover_Background)}.fd-avatar--accent-color-6,.fd-avatar--accent-color-6.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapAvatar_6_BorderColor);--fdAvatarColor:var(--sapAvatar_6_TextColor);--fdAvatarBackgroundColor:var(--sapAvatar_6_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapAvatar_6_Hover_Background)}.fd-avatar--accent-color-7,.fd-avatar--accent-color-7.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapAvatar_7_BorderColor);--fdAvatarColor:var(--sapAvatar_7_TextColor);--fdAvatarBackgroundColor:var(--sapAvatar_7_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapAvatar_7_Hover_Background)}.fd-avatar--accent-color-8,.fd-avatar--accent-color-8.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapAvatar_8_BorderColor);--fdAvatarColor:var(--sapAvatar_8_TextColor);--fdAvatarBackgroundColor:var(--sapAvatar_8_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapAvatar_8_Hover_Background)}.fd-avatar--accent-color-9,.fd-avatar--accent-color-9.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapAvatar_9_BorderColor);--fdAvatarColor:var(--sapAvatar_9_TextColor);--fdAvatarBackgroundColor:var(--sapAvatar_9_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapAvatar_9_Hover_Background)}.fd-avatar--accent-color-10,.fd-avatar--accent-color-10.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapAvatar_10_BorderColor);--fdAvatarColor:var(--sapAvatar_10_TextColor);--fdAvatarBackgroundColor:var(--sapAvatar_10_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapAvatar_10_Hover_Background)}.fd-avatar--indication-color-1,.fd-avatar--indication-color-1.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapIndicationColor_1_BorderColor);--fdAvatarColor:var(--sapIndicationColor_1_TextColor);--fdAvatarBackgroundColor:var(--sapIndicationColor_1_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapIndicationColor_1_Hover_Background);--fdAvatarBorderActiveColor:var(--sapIndicationColor_1_Active_BorderColor);--fdAvatarBackgroundActiveColor:var(--sapIndicationColor_1_Active_Background);--fdAvatarActiveColor:var(--sapIndicationColor_1_Active_TextColor);--fdAvatarBorderActiveHoverColor:var(--sapIndicationColor_1_Active_BorderColor);--fdAvatarBackgroundActiveHoverColor:var(--sapIndicationColor_1_Active_Background);--fdAvatarActiveHoverColor:var(--sapIndicationColor_1_Active_TextColor)}.fd-avatar--indication-color-2,.fd-avatar--indication-color-2.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapIndicationColor_2_BorderColor);--fdAvatarColor:var(--sapIndicationColor_2_TextColor);--fdAvatarBackgroundColor:var(--sapIndicationColor_2_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapIndicationColor_2_Hover_Background);--fdAvatarBorderActiveColor:var(--sapIndicationColor_2_Active_BorderColor);--fdAvatarBackgroundActiveColor:var(--sapIndicationColor_2_Active_Background);--fdAvatarActiveColor:var(--sapIndicationColor_2_Active_TextColor);--fdAvatarBorderActiveHoverColor:var(--sapIndicationColor_2_Active_BorderColor);--fdAvatarBackgroundActiveHoverColor:var(--sapIndicationColor_2_Active_Background);--fdAvatarActiveHoverColor:var(--sapIndicationColor_2_Active_TextColor)}.fd-avatar--indication-color-3,.fd-avatar--indication-color-3.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapIndicationColor_3_BorderColor);--fdAvatarColor:var(--sapIndicationColor_3_TextColor);--fdAvatarBackgroundColor:var(--sapIndicationColor_3_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapIndicationColor_3_Hover_Background);--fdAvatarBorderActiveColor:var(--sapIndicationColor_3_Active_BorderColor);--fdAvatarBackgroundActiveColor:var(--sapIndicationColor_3_Active_Background);--fdAvatarActiveColor:var(--sapIndicationColor_3_Active_TextColor);--fdAvatarBorderActiveHoverColor:var(--sapIndicationColor_3_Active_BorderColor);--fdAvatarBackgroundActiveHoverColor:var(--sapIndicationColor_3_Active_Background);--fdAvatarActiveHoverColor:var(--sapIndicationColor_3_Active_TextColor)}.fd-avatar--indication-color-4,.fd-avatar--indication-color-4.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapIndicationColor_4_BorderColor);--fdAvatarColor:var(--sapIndicationColor_4_TextColor);--fdAvatarBackgroundColor:var(--sapIndicationColor_4_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapIndicationColor_4_Hover_Background);--fdAvatarBorderActiveColor:var(--sapIndicationColor_4_Active_BorderColor);--fdAvatarBackgroundActiveColor:var(--sapIndicationColor_4_Active_Background);--fdAvatarActiveColor:var(--sapIndicationColor_4_Active_TextColor);--fdAvatarBorderActiveHoverColor:var(--sapIndicationColor_4_Active_BorderColor);--fdAvatarBackgroundActiveHoverColor:var(--sapIndicationColor_4_Active_Background);--fdAvatarActiveHoverColor:var(--sapIndicationColor_4_Active_TextColor)}.fd-avatar--indication-color-5,.fd-avatar--indication-color-5.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapIndicationColor_5_BorderColor);--fdAvatarColor:var(--sapIndicationColor_5_TextColor);--fdAvatarBackgroundColor:var(--sapIndicationColor_5_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapIndicationColor_5_Hover_Background);--fdAvatarBorderActiveColor:var(--sapIndicationColor_5_Active_BorderColor);--fdAvatarBackgroundActiveColor:var(--sapIndicationColor_5_Active_Background);--fdAvatarActiveColor:var(--sapIndicationColor_5_Active_TextColor);--fdAvatarBorderActiveHoverColor:var(--sapIndicationColor_5_Active_BorderColor);--fdAvatarBackgroundActiveHoverColor:var(--sapIndicationColor_5_Active_Background);--fdAvatarActiveHoverColor:var(--sapIndicationColor_5_Active_TextColor)}.fd-avatar--indication-color-6,.fd-avatar--indication-color-6.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapIndicationColor_6_BorderColor);--fdAvatarColor:var(--sapIndicationColor_6_TextColor);--fdAvatarBackgroundColor:var(--sapIndicationColor_6_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapIndicationColor_6_Hover_Background);--fdAvatarBorderActiveColor:var(--sapIndicationColor_6_Active_BorderColor);--fdAvatarBackgroundActiveColor:var(--sapIndicationColor_6_Active_Background);--fdAvatarActiveColor:var(--sapIndicationColor_6_Active_TextColor);--fdAvatarBorderActiveHoverColor:var(--sapIndicationColor_6_Active_BorderColor);--fdAvatarBackgroundActiveHoverColor:var(--sapIndicationColor_6_Active_Background);--fdAvatarActiveHoverColor:var(--sapIndicationColor_6_Active_TextColor)}.fd-avatar--indication-color-7,.fd-avatar--indication-color-7.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapIndicationColor_7_BorderColor);--fdAvatarColor:var(--sapIndicationColor_7_TextColor);--fdAvatarBackgroundColor:var(--sapIndicationColor_7_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapIndicationColor_7_Hover_Background);--fdAvatarBorderActiveColor:var(--sapIndicationColor_7_Active_BorderColor);--fdAvatarBackgroundActiveColor:var(--sapIndicationColor_7_Active_Background);--fdAvatarActiveColor:var(--sapIndicationColor_7_Active_TextColor);--fdAvatarBorderActiveHoverColor:var(--sapIndicationColor_7_Active_BorderColor);--fdAvatarBackgroundActiveHoverColor:var(--sapIndicationColor_7_Active_Background);--fdAvatarActiveHoverColor:var(--sapIndicationColor_7_Active_TextColor)}.fd-avatar--indication-color-8,.fd-avatar--indication-color-8.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapIndicationColor_8_BorderColor);--fdAvatarColor:var(--sapIndicationColor_8_TextColor);--fdAvatarBackgroundColor:var(--sapIndicationColor_8_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapIndicationColor_8_Hover_Background);--fdAvatarBorderActiveColor:var(--sapIndicationColor_8_Active_BorderColor);--fdAvatarBackgroundActiveColor:var(--sapIndicationColor_8_Active_Background);--fdAvatarActiveColor:var(--sapIndicationColor_8_Active_TextColor);--fdAvatarBorderActiveHoverColor:var(--sapIndicationColor_8_Active_BorderColor);--fdAvatarBackgroundActiveHoverColor:var(--sapIndicationColor_8_Active_Background);--fdAvatarActiveHoverColor:var(--sapIndicationColor_8_Active_TextColor)}.fd-avatar--indication-color-9,.fd-avatar--indication-color-9.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapIndicationColor_9_BorderColor);--fdAvatarColor:var(--sapIndicationColor_9_TextColor);--fdAvatarBackgroundColor:var(--sapIndicationColor_9_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapIndicationColor_9_Hover_Background);--fdAvatarBorderActiveColor:var(--sapIndicationColor_9_Active_BorderColor);--fdAvatarBackgroundActiveColor:var(--sapIndicationColor_9_Active_Background);--fdAvatarActiveColor:var(--sapIndicationColor_9_Active_TextColor);--fdAvatarBorderActiveHoverColor:var(--sapIndicationColor_9_Active_BorderColor);--fdAvatarBackgroundActiveHoverColor:var(--sapIndicationColor_9_Active_Background);--fdAvatarActiveHoverColor:var(--sapIndicationColor_9_Active_TextColor)}.fd-avatar--indication-color-10,.fd-avatar--indication-color-10.fd-avatar--overflow{--fdAvatarBorderColor:var(--sapIndicationColor_10_BorderColor);--fdAvatarColor:var(--sapIndicationColor_10_TextColor);--fdAvatarBackgroundColor:var(--sapIndicationColor_10_Background);--fdAvatarBorderHoverColor:var(--sapAvatar_Hover_BorderColor);--fdAvatarHoverBackgroundColor:var(--sapIndicationColor_10_Hover_Background);--fdAvatarBorderActiveColor:var(--sapIndicationColor_10_Active_BorderColor);--fdAvatarBackgroundActiveColor:var(--sapIndicationColor_10_Active_Background);--fdAvatarActiveColor:var(--sapIndicationColor_10_Active_TextColor);--fdAvatarBorderActiveHoverColor:var(--sapIndicationColor_10_Active_BorderColor);--fdAvatarBackgroundActiveHoverColor:var(--sapIndicationColor_10_Active_Background);--fdAvatarActiveHoverColor:var(--sapIndicationColor_10_Active_TextColor)}.fd-avatar--xs{--fdAvatarZoomIconOffset:-.125rem;--fdAvatarRatio:2rem;--fdAvatarFontSize:1rem}:not(.fd-avatar-group--vertical)>.fd-avatar--xs.fd-avatar--overflow{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;padding-inline:.5rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}:not(.fd-avatar-group--vertical)>.fd-avatar--xs.fd-avatar--overflow.fd-avatar--circle{--fdAvatarBorderRadius:1rem}.fd-avatar--xs .fd-avatar__zoom-icon [class*=sap-icon],.fd-avatar--xs .fd-avatar__zoom-icon[class*=sap-icon]{--fdAvatarZoomIconDimensions:1.125rem;--fdAvatarZoomIconFontSize:.75rem}.fd-avatar--s{--fdAvatarZoomIconOffset:-.125rem;--fdAvatarRatio:3rem;--fdAvatarFontSize:1.125rem}:not(.fd-avatar-group--vertical)>.fd-avatar--s.fd-avatar--overflow{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;padding-inline:.5rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}:not(.fd-avatar-group--vertical)>.fd-avatar--s.fd-avatar--overflow.fd-avatar--circle{--fdAvatarBorderRadius:1.5rem}:not(.fd-avatar-group--vertical)>.fd-avatar--s.fd-avatar--overflow.fd-avatar--circle:focus:after{border-radius:1.75rem}.fd-avatar--s .fd-avatar__zoom-icon [class*=sap-icon],.fd-avatar--s .fd-avatar__zoom-icon[class*=sap-icon]{--fdAvatarZoomIconDimensions:1.125rem;--fdAvatarZoomIconFontSize:.75rem}.fd-avatar--sm{--fdAvatarZoomIconOffset:-.125rem;--fdAvatarRatio:3rem;--fdAvatarFontSize:1.125rem}:not(.fd-avatar-group--vertical)>.fd-avatar--sm.fd-avatar--overflow{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;padding-inline:.5rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}:not(.fd-avatar-group--vertical)>.fd-avatar--sm.fd-avatar--overflow.fd-avatar--circle{--fdAvatarBorderRadius:1.5rem}:not(.fd-avatar-group--vertical)>.fd-avatar--sm.fd-avatar--overflow.fd-avatar--circle:focus:after{border-radius:1.75rem}.fd-avatar--sm .fd-avatar__zoom-icon [class*=sap-icon],.fd-avatar--sm .fd-avatar__zoom-icon[class*=sap-icon]{--fdAvatarZoomIconDimensions:1.125rem;--fdAvatarZoomIconFontSize:.75rem}.fd-avatar--m{--fdAvatarZoomIconOffset:-.125rem;--fdAvatarRatio:4rem;--fdAvatarFontSize:1.5rem}:not(.fd-avatar-group--vertical)>.fd-avatar--m.fd-avatar--overflow{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;padding-inline:.5rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}:not(.fd-avatar-group--vertical)>.fd-avatar--m.fd-avatar--overflow.fd-avatar--circle{--fdAvatarBorderRadius:2rem}:not(.fd-avatar-group--vertical)>.fd-avatar--m.fd-avatar--overflow.fd-avatar--circle:focus:after{border-radius:2.25rem}.fd-avatar--m .fd-avatar__zoom-icon [class*=sap-icon],.fd-avatar--m .fd-avatar__zoom-icon[class*=sap-icon]{--fdAvatarZoomIconDimensions:1.125rem;--fdAvatarZoomIconFontSize:.75rem}.fd-avatar--md{--fdAvatarZoomIconOffset:-.125rem;--fdAvatarRatio:4rem;--fdAvatarFontSize:1.5rem}:not(.fd-avatar-group--vertical)>.fd-avatar--md.fd-avatar--overflow{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;padding-inline:.5rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}:not(.fd-avatar-group--vertical)>.fd-avatar--md.fd-avatar--overflow.fd-avatar--circle{--fdAvatarBorderRadius:2rem}:not(.fd-avatar-group--vertical)>.fd-avatar--md.fd-avatar--overflow.fd-avatar--circle:focus:after{border-radius:2.25rem}.fd-avatar--md .fd-avatar__zoom-icon [class*=sap-icon],.fd-avatar--md .fd-avatar__zoom-icon[class*=sap-icon]{--fdAvatarZoomIconDimensions:1.125rem;--fdAvatarZoomIconFontSize:.75rem}.fd-avatar--l{--fdAvatarZoomIconOffset:-.1875rem;--fdAvatarRatio:5rem;--fdAvatarFontSize:2.25rem}:not(.fd-avatar-group--vertical)>.fd-avatar--l.fd-avatar--overflow{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;padding-inline:.5rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}:not(.fd-avatar-group--vertical)>.fd-avatar--l.fd-avatar--overflow.fd-avatar--circle{--fdAvatarBorderRadius:2.5rem}:not(.fd-avatar-group--vertical)>.fd-avatar--l.fd-avatar--overflow.fd-avatar--circle:focus:after{border-radius:2.75rem}.fd-avatar--l .fd-avatar__zoom-icon [class*=sap-icon],.fd-avatar--l .fd-avatar__zoom-icon[class*=sap-icon]{--fdAvatarZoomIconDimensions:1.25rem;--fdAvatarZoomIconFontSize:.875rem}.fd-avatar--lg{--fdAvatarZoomIconOffset:-.1875rem;--fdAvatarRatio:5rem;--fdAvatarFontSize:2.25rem}:not(.fd-avatar-group--vertical)>.fd-avatar--lg.fd-avatar--overflow{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;padding-inline:.5rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}:not(.fd-avatar-group--vertical)>.fd-avatar--lg.fd-avatar--overflow.fd-avatar--circle{--fdAvatarBorderRadius:2.5rem}:not(.fd-avatar-group--vertical)>.fd-avatar--lg.fd-avatar--overflow.fd-avatar--circle:focus:after{border-radius:2.75rem}.fd-avatar--lg .fd-avatar__zoom-icon [class*=sap-icon],.fd-avatar--lg .fd-avatar__zoom-icon[class*=sap-icon]{--fdAvatarZoomIconDimensions:1.25rem;--fdAvatarZoomIconFontSize:.875rem}.fd-avatar--xl{--fdAvatarZoomIconOffset:-.25rem;--fdAvatarRatio:7rem;--fdAvatarFontSize:3rem}:not(.fd-avatar-group--vertical)>.fd-avatar--xl.fd-avatar--overflow{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;padding-inline:.5rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}:not(.fd-avatar-group--vertical)>.fd-avatar--xl.fd-avatar--overflow.fd-avatar--circle{--fdAvatarBorderRadius:3.5rem}.fd-avatar--xl .fd-avatar__zoom-icon [class*=sap-icon],.fd-avatar--xl .fd-avatar__zoom-icon[class*=sap-icon]{--fdAvatarZoomIconDimensions:1.75rem;--fdAvatarZoomIconFontSize:1rem}.fd-avatar--accent-color-1.fd-avatar--shell,.fd-avatar--accent-color-10.fd-avatar--shell,.fd-avatar--accent-color-2.fd-avatar--shell,.fd-avatar--accent-color-3.fd-avatar--shell,.fd-avatar--accent-color-4.fd-avatar--shell,.fd-avatar--accent-color-5.fd-avatar--shell,.fd-avatar--accent-color-6.fd-avatar--shell,.fd-avatar--accent-color-7.fd-avatar--shell,.fd-avatar--accent-color-8.fd-avatar--shell,.fd-avatar--accent-color-9.fd-avatar--shell,.fd-avatar--indication-color-1.fd-avatar--shell,.fd-avatar--indication-color-10.fd-avatar--shell,.fd-avatar--indication-color-2.fd-avatar--shell,.fd-avatar--indication-color-3.fd-avatar--shell,.fd-avatar--indication-color-4.fd-avatar--shell,.fd-avatar--indication-color-5.fd-avatar--shell,.fd-avatar--indication-color-6.fd-avatar--shell,.fd-avatar--indication-color-7.fd-avatar--shell,.fd-avatar--indication-color-8.fd-avatar--shell,.fd-avatar--indication-color-9.fd-avatar--shell{border:.0625rem solid var(--sapShell_InteractiveBorderColor)}.fd-avatar--l,.fd-avatar--lg,.fd-avatar--m,.fd-avatar--md,.fd-avatar--s,.fd-avatar--sm,.fd-avatar--xl,.fd-avatar--xs{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fd-avatar--l:not(.fd-avatar--circle),.fd-avatar--lg:not(.fd-avatar--circle),.fd-avatar--m:not(.fd-avatar--circle),.fd-avatar--md:not(.fd-avatar--circle),.fd-avatar--s:not(.fd-avatar--circle),.fd-avatar--sm:not(.fd-avatar--circle),.fd-avatar--xl:not(.fd-avatar--circle),.fd-avatar--xs:not(.fd-avatar--circle){--fdAvatarZoomIconPosition:var(--fdAvatarZoomIconOffset)}.fd-avatar.fd-avatar--xs,.fd-avatar.fd-avatar--s,.fd-avatar.fd-avatar--sm{--fdAvatarFontStretch: normal}:not(.fd-avatar-group--vertical)>[class*=fd-avatar--].fd-avatar--overflow{width:fit-content;max-width:fit-content;padding-inline:.5rem}:not(.fd-avatar-group--vertical)>.fd-avatar--xs.fd-avatar--overflow.fd-avatar--circle{--fdAvatarBorderRadius: 1rem}:not(.fd-avatar-group--vertical)>.fd-avatar--xs.fd-avatar--overflow.fd-avatar--circle:focus:after{border-radius:1.25rem}:not(.fd-avatar-group--vertical)>.fd-avatar--s.fd-avatar--overflow.fd-avatar--circle,:not(.fd-avatar-group--vertical)>.fd-avatar--sm.fd-avatar--overflow.fd-avatar--circle{--fdAvatarBorderRadius: 1.5rem}:not(.fd-avatar-group--vertical)>.fd-avatar--s.fd-avatar--overflow.fd-avatar--circle:focus:after,:not(.fd-avatar-group--vertical)>.fd-avatar--sm.fd-avatar--overflow.fd-avatar--circle:focus:after{border-radius:1.75rem}:not(.fd-avatar-group--vertical)>.fd-avatar--m.fd-avatar--overflow.fd-avatar--circle,:not(.fd-avatar-group--vertical)>.fd-avatar--md.fd-avatar--overflow.fd-avatar--circle{--fdAvatarBorderRadius: 2rem}:not(.fd-avatar-group--vertical)>.fd-avatar--m.fd-avatar--overflow.fd-avatar--circle:focus:after,:not(.fd-avatar-group--vertical)>.fd-avatar--md.fd-avatar--overflow.fd-avatar--circle:focus:after{border-radius:2.25rem}:not(.fd-avatar-group--vertical)>.fd-avatar--l.fd-avatar--overflow.fd-avatar--circle,:not(.fd-avatar-group--vertical)>.fd-avatar--lg.fd-avatar--overflow.fd-avatar--circle{--fdAvatarBorderRadius: 2.5rem}:not(.fd-avatar-group--vertical)>.fd-avatar--l.fd-avatar--overflow.fd-avatar--circle:focus:after,:not(.fd-avatar-group--vertical)>.fd-avatar--lg.fd-avatar--overflow.fd-avatar--circle:focus:after{border-radius:2.75rem}:not(.fd-avatar-group--vertical)>.fd-avatar--xl.fd-avatar--overflow.fd-avatar--circle{--fdAvatarBorderRadius: 3.5rem}:not(.fd-avatar-group--vertical)>.fd-avatar--xl.fd-avatar--overflow.fd-avatar--circle:focus:after{border-radius:3.75rem}\n/*! Bundled license information:\n\nfundamental-styles/dist/avatar.css:\n (*!\n * Fundamental Library Styles v0.41.8\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "size", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "pipe", type: AvatarIconPipe, name: "fdAvatarIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
336
360
  }
337
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AvatarComponent, decorators: [{
361
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AvatarComponent, decorators: [{
338
362
  type: Component,
339
363
  args: [{ selector: 'fd-avatar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
340
364
  {
@@ -361,11 +385,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
361
385
  * Use `AvatarComponent` import instead.
362
386
  */
363
387
  class AvatarModule {
364
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AvatarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
365
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: AvatarModule, imports: [AvatarComponent], exports: [AvatarComponent] }); }
366
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AvatarModule, imports: [AvatarComponent] }); }
388
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AvatarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
389
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.5", ngImport: i0, type: AvatarModule, imports: [AvatarComponent], exports: [AvatarComponent] }); }
390
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AvatarModule, imports: [AvatarComponent] }); }
367
391
  }
368
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AvatarModule, decorators: [{
392
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AvatarModule, decorators: [{
369
393
  type: NgModule,
370
394
  args: [{
371
395
  imports: [AvatarComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-avatar.mjs","sources":["../../../../libs/core/avatar/avatar-icon.pipe.ts","../../../../libs/core/avatar/tokens.ts","../../../../libs/core/avatar/avatar.component.ts","../../../../libs/core/avatar/avatar.component.html","../../../../libs/core/avatar/avatar.module.ts","../../../../libs/core/avatar/fundamental-ngx-core-avatar.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { AvatarValueStates } from './avatar-value-states.type';\n\n@Pipe({\n name: 'fdAvatarIcon',\n pure: true,\n standalone: true\n})\nexport class AvatarIconPipe implements PipeTransform {\n /**\n * Selects appropriate Avatar icon based on Avatar Value state and fallback icon.\n */\n transform(valueState: Nullable<AvatarValueStates>, fallbackIcon: Nullable<string>): string {\n let computedIcon = '';\n if (!valueState) {\n computedIcon = fallbackIcon || '';\n }\n switch (valueState) {\n case 'positive':\n computedIcon = 'sys-enter-2';\n break;\n case 'caution':\n computedIcon = 'warning';\n break;\n case 'negative':\n computedIcon = 'error';\n break;\n case 'information':\n computedIcon = 'information';\n break;\n }\n\n return `sap-icon--${computedIcon} ${valueState ? 'fd-avatar__zoom-icon--' + valueState : ''}`;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_AVATAR_COMPONENT = new InjectionToken('FdAvatarComponent');\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n output,\n signal,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ANY_LANGUAGE_LETTERS_REGEX,\n ColorAccent,\n getRandomColorAccent,\n Nullable,\n Size\n} from '@fundamental-ngx/cdk/utils';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { AvatarIconPipe } from './avatar-icon.pipe';\nimport { AvatarValueStates } from './avatar-value-states.type';\nimport { FD_AVATAR_COMPONENT } from './tokens';\n\nlet avatarUniqueId = 0;\n\nconst ALTER_ICON_OPTIONS = {\n CONTENT: 'content',\n ALT: 'alt',\n BACKUP: 'backup',\n DEFAULT_ICON: 'default-icon'\n};\n\nexport type IndicationColor = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n\n@Component({\n selector: 'fd-avatar',\n templateUrl: './avatar.component.html',\n styleUrl: './avatar.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_AVATAR_COMPONENT,\n useExisting: AvatarComponent\n }\n ],\n host: {\n '[class]': 'cssClass()',\n '[style.background-image]': 'bgImage()',\n '[attr.tabindex]': 'tabindex()',\n '[attr.id]': 'id()',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-labelledby]': 'ariaLabelledby()',\n '[attr.alt]': 'ariaLabel()',\n '[attr.role]': 'role()',\n '(click)': 'onClick($event)',\n '(keydown.enter)': 'onClick($event)',\n '(keydown.space)': 'onClick($event)'\n },\n imports: [AvatarIconPipe, IconComponent]\n})\nexport class AvatarComponent {\n /** Id of the Avatar. */\n readonly id = input('fd-avatar-' + ++avatarUniqueId);\n\n /** Aria-label for Avatar. */\n readonly ariaLabel = input<string | null | undefined>(null);\n\n /** Aria-Labelledby for element describing Avatar. */\n readonly ariaLabelledby = input<string | null | undefined>(null);\n\n /** Localized text for label */\n readonly label = input<string | null | undefined>(null);\n\n /** The size of the Avatar. Options include: *xs*, *s*, *m*, *l* and *xl*. */\n readonly size = input<Size>('l');\n\n /** Font family of the icon. */\n readonly font = input<IconFont>(FD_DEFAULT_ICON_FONT_FAMILY);\n\n /** The glyph name. */\n readonly glyph = input<string | null | undefined>(null);\n\n /** The glyph name for zoom icon. */\n readonly zoomGlyph = input<string | null | undefined>(null);\n\n /** Whether to apply a circle style to the Avatar. */\n readonly circle = input(false, { transform: booleanAttribute });\n\n /** Whether the Avatar should be interactive. */\n readonly interactive = input(false, { transform: booleanAttribute });\n\n /** Whether to apply a transparent style to the Avatar. */\n readonly transparent = input(false, { transform: booleanAttribute });\n\n /** Whether to apply background size contain style to the Avatar */\n readonly contain = input(false, { transform: booleanAttribute });\n\n /** Whether to apply a placeholder background style to the Avatar. */\n readonly placeholder = input(false, { transform: booleanAttribute });\n\n /** Whether to apply a tile background style to the Avatar. */\n readonly tile = input(false, { transform: booleanAttribute });\n\n /** Whether to apply a border to the Avatar. */\n readonly border = input(false, { transform: booleanAttribute });\n\n /** A number from 1 to 10 representing the background color of the Avatar.\n * This property will override the colorIndication property.\n */\n readonly colorAccent = input<ColorAccent | null | undefined>(null);\n\n /** A number from 1 to 10 representing the background color of the Avatar using the Indication Colors. */\n readonly colorIndication = input<IndicationColor | null | undefined>(null);\n\n /** Whether to apply random background color to the Avatar. */\n readonly random = input(false, { transform: booleanAttribute });\n\n /** Whether component should be focusable & clicable */\n readonly clickable = input(false, { transform: booleanAttribute });\n\n /** Value state of the Avatar. */\n readonly valueState = input<AvatarValueStates | null | undefined>(null);\n\n /** Background image resource: url or base64. */\n readonly image = input<string | null | undefined>(null);\n\n /** Backup options to use when image hasn't been loaded successfully.\n * Options separated with \"|\" symbol.\n * Possible options: content, alt, backup, default-icon\n */\n readonly alterIcon = input<string | null | undefined>(null);\n\n /** Backup image to load when image hasn't been loaded successfully.\n * Only applicable when using alterIcon input property.\n */\n readonly backupImage = input<string | null | undefined>(null);\n\n /** Event emitted when avatar clicked. Only fires if clickable input property set to true. */\n readonly avatarClicked = output<Event>();\n\n /** Event emitted when zoom icon clicked. Only fires if zoomGlyph input property is set. */\n readonly zoomGlyphClicked = output<void>();\n\n /** @hidden */\n protected readonly content = viewChild<ElementRef>('content');\n\n /** @hidden Internal state for background image */\n protected readonly bgImage = signal<string | null | undefined>(null);\n\n /** @hidden Internal state for computed abbreviation */\n protected readonly abbreviate = signal<string | null | undefined>(null);\n\n /** @hidden Computed tabindex based on clickable state */\n protected readonly tabindex = computed(() => {\n if (this._hostTabindex != null) {\n return this._hostTabindex;\n }\n return this.clickable() ? 0 : null;\n });\n\n /** @hidden Computed role attribute */\n protected readonly role = computed(() => (this.zoomGlyph() || this.clickable() ? 'button' : 'img'));\n\n /** @hidden If a default placeholder should be displayed */\n protected readonly showDefault = computed(\n () =>\n // Show default if explicitly requested OR if no content is available\n this._shouldShowDefaultIcon() ||\n (!this.abbreviate() && !this._imageLoaded() && !this.glyph() && !this.image())\n );\n\n /** @hidden Computed CSS classes */\n protected readonly cssClass = computed(() => {\n const colorAccentValue = this.colorAccent();\n const randomValue = this.random();\n const colorIndicationValue = this.colorIndication();\n\n return [\n 'fd-avatar',\n this.size() ? `fd-avatar--${this.size()}` : '',\n colorAccentValue && !randomValue ? `fd-avatar--accent-color-${colorAccentValue}` : '',\n randomValue ? `fd-avatar--accent-color-${this._randomColorAccent()}` : '',\n colorIndicationValue && colorAccentValue === null && !randomValue\n ? `fd-avatar--indication-color-${colorIndicationValue}`\n : '',\n this.circle() ? 'fd-avatar--circle' : '',\n this.border() ? 'fd-avatar--border' : '',\n this.interactive() ? 'fd-avatar--interactive' : '',\n this.transparent() ? 'fd-avatar--transparent' : '',\n this.contain() ? 'fd-avatar--background-contain' : '',\n this.placeholder() ? 'fd-avatar--placeholder' : '',\n this.tile() ? 'fd-avatar--tile' : ''\n ]\n .filter(Boolean)\n .join(' ');\n });\n\n /** @hidden Internal state tracking if image loaded successfully */\n private readonly _imageLoaded = signal(false);\n\n /** @hidden Explicitly track when to show default icon (for failed images with no fallback) */\n private readonly _shouldShowDefaultIcon = signal(false);\n\n /** @hidden Stored random color accent to prevent regeneration */\n private readonly _randomColorAccent = signal<ColorAccent>(getRandomColorAccent());\n\n /** @hidden Track the currently loading/loaded image URL to prevent duplicate requests */\n private _currentImageUrl: string | null = null;\n\n /** @hidden Cache of successfully loaded image URLs to prevent re-requesting */\n private readonly _loadedImageCache = new Set<string>();\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef);\n\n /** @hidden */\n private readonly _hostTabindex = inject(new HostAttributeToken('tabindex'), { optional: true });\n\n /** @hidden */\n constructor() {\n // Effect to handle image changes\n effect(() => {\n const imageValue = this.image();\n if (imageValue) {\n // Only reset loaded state if the URL actually changed\n if (this._currentImageUrl !== imageValue) {\n this._imageLoaded.set(false);\n this._shouldShowDefaultIcon.set(false); // Reset default icon flag\n this._verifyImageUrl(imageValue, this._onErrorCallback.bind(this));\n }\n // If URL is the same and already loaded, do nothing (use cache)\n } else {\n // Image input cleared\n this._currentImageUrl = null;\n this._imageLoaded.set(false);\n this._shouldShowDefaultIcon.set(false);\n this._setBgImage(null);\n }\n });\n\n // Effect to handle label changes and compute abbreviation\n effect(() => {\n const labelValue = this.label();\n // Only generate abbreviation from label if there's no successful image\n if (labelValue && !this._imageLoaded()) {\n const abbreviation = this._generateAbbreviation(labelValue);\n this.abbreviate.set(abbreviation);\n } else if (!labelValue && !this._imageLoaded()) {\n // Clear abbreviation when label is removed (if no image)\n this.abbreviate.set(null);\n }\n });\n\n // Effect to regenerate random color when random property changes\n effect(() => {\n if (this.random()) {\n this._randomColorAccent.set(getRandomColorAccent());\n }\n });\n }\n\n /** @hidden */\n protected onClick(event: Event): void {\n if (!this.clickable()) {\n return;\n }\n\n event.preventDefault();\n\n this.avatarClicked.emit(event);\n\n if (this.zoomGlyph()) {\n this.zoomGlyphClicked.emit();\n }\n }\n\n /** @hidden */\n protected zoomClicked(event: Event): void {\n event.preventDefault();\n this._elementRef.nativeElement.focus();\n this.zoomGlyphClicked.emit();\n }\n\n /** @hidden Get the abbreviation string */\n private _generateAbbreviation(label: Nullable<string>): string | null {\n if (!label) {\n return null;\n }\n\n const maxLettersCount = 3;\n const words = label.split(' ').filter((word) => word.length > 0);\n\n if (words.length === 0 || words.length > maxLettersCount) {\n return null;\n }\n\n const abbreviate = words.map((word) => word[0]).join('');\n\n return abbreviate.match(ANY_LANGUAGE_LETTERS_REGEX) ? abbreviate : null;\n }\n\n /** @hidden */\n private _setBgImage(srcValue: Nullable<string>): void {\n this.bgImage.set(srcValue ? `url(${srcValue})` : null);\n }\n\n /** @hidden */\n private _verifyImageUrl(srcValue: string, onErrorCallback: () => void): void {\n // Check if this URL was previously loaded successfully (component-level cache)\n if (this._loadedImageCache.has(srcValue)) {\n // Image was loaded before, reuse it\n this._setBgImage(srcValue);\n this._imageLoaded.set(true);\n this._currentImageUrl = srcValue;\n return;\n }\n\n // Track the current image URL\n this._currentImageUrl = srcValue;\n\n const img = new Image();\n img.onload = () => {\n // Only set background if image loads successfully\n this._setBgImage(srcValue);\n this._imageLoaded.set(true);\n // Add to cache of successfully loaded images\n this._loadedImageCache.add(srcValue);\n };\n img.onerror = () => {\n onErrorCallback();\n };\n img.src = srcValue;\n }\n\n /** @hidden */\n private _onErrorCallback(): void {\n const alterIconValue = this.alterIcon();\n if (!alterIconValue) {\n this._showDefaultIcon();\n return;\n }\n\n const options = alterIconValue.split('|');\n for (const option of options) {\n if (option === ALTER_ICON_OPTIONS.CONTENT) {\n const contentValue = this.content()?.nativeElement.textContent;\n if (this._trySetAbbreviation(contentValue)) {\n return;\n }\n } else if (option === ALTER_ICON_OPTIONS.ALT) {\n const altValue = this._elementRef.nativeElement.getAttribute('alt');\n if (this._trySetAbbreviation(altValue)) {\n return;\n }\n } else if (option === ALTER_ICON_OPTIONS.BACKUP) {\n const backupImageValue = this.backupImage();\n if (backupImageValue) {\n this._verifyImageUrl(backupImageValue, () => this._showDefaultIcon());\n return;\n }\n } else if (option === ALTER_ICON_OPTIONS.DEFAULT_ICON) {\n this._showDefaultIcon();\n return;\n }\n }\n\n // Fallback if no valid option matched\n this._showDefaultIcon();\n }\n\n /** @hidden Helper to try setting abbreviation from text */\n private _trySetAbbreviation(text: string | null | undefined): boolean {\n if (!text) {\n return false;\n }\n const trimmedText = text.trim();\n if (!trimmedText) {\n return false;\n }\n const abbreviation = this._generateAbbreviation(trimmedText);\n if (abbreviation) {\n this.abbreviate.set(abbreviation);\n this._setBgImage(null); // Clear background image when using abbreviation\n return true;\n }\n return false;\n }\n\n /** @hidden */\n private _showDefaultIcon(): void {\n this.abbreviate.set(null);\n this._setBgImage(null);\n this._imageLoaded.set(false);\n this._shouldShowDefaultIcon.set(true);\n }\n}\n","@if (abbreviate()) {\n {{ abbreviate() }}\n}\n@if (zoomGlyph() || valueState()) {\n <i\n role=\"presentation\"\n class=\"fd-avatar__zoom-icon\"\n [class]=\"valueState() | fdAvatarIcon: zoomGlyph()\"\n (mousedown)=\"zoomClicked($event)\"\n >\n </i>\n}\n@if (glyph() || showDefault()) {\n <fd-icon\n class=\"fd-avatar__icon\"\n role=\"presentation\"\n [font]=\"font()\"\n [glyph]=\"glyph() || 'person-placeholder'\"\n ></fd-icon>\n}\n<div #content [style.display]=\"'none'\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { AvatarComponent } from './avatar.component';\n\n/**\n * @deprecated\n * Use `AvatarComponent` import instead.\n */\n@NgModule({\n imports: [AvatarComponent],\n exports: [AvatarComponent]\n})\nexport class AvatarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-avatar.mjs","sources":["../../../../libs/core/avatar/avatar-icon.pipe.ts","../../../../libs/core/avatar/tokens.ts","../../../../libs/core/avatar/avatar.component.ts","../../../../libs/core/avatar/avatar.component.html","../../../../libs/core/avatar/avatar.module.ts","../../../../libs/core/avatar/fundamental-ngx-core-avatar.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { AvatarValueStates } from './avatar-value-states.type';\n\n@Pipe({\n name: 'fdAvatarIcon',\n pure: true,\n standalone: true\n})\nexport class AvatarIconPipe implements PipeTransform {\n /**\n * Selects appropriate Avatar icon based on Avatar Value state and fallback icon.\n */\n transform(valueState: Nullable<AvatarValueStates>, fallbackIcon: Nullable<string>): string {\n let computedIcon = '';\n if (!valueState) {\n computedIcon = fallbackIcon || '';\n }\n switch (valueState) {\n case 'positive':\n computedIcon = 'sys-enter-2';\n break;\n case 'caution':\n computedIcon = 'warning';\n break;\n case 'negative':\n computedIcon = 'error';\n break;\n case 'information':\n computedIcon = 'information';\n break;\n }\n\n return `sap-icon--${computedIcon} ${valueState ? 'fd-avatar__zoom-icon--' + valueState : ''}`;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_AVATAR_COMPONENT = new InjectionToken('FdAvatarComponent');\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n output,\n signal,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ANY_LANGUAGE_LETTERS_REGEX,\n ColorAccent,\n getRandomColorAccent,\n Nullable,\n Size\n} from '@fundamental-ngx/cdk/utils';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { AvatarIconPipe } from './avatar-icon.pipe';\nimport { AvatarValueStates } from './avatar-value-states.type';\nimport { FD_AVATAR_COMPONENT } from './tokens';\n\nlet avatarUniqueId = 0;\n\nconst ALTER_ICON_OPTIONS = {\n CONTENT: 'content',\n ALT: 'alt',\n BACKUP: 'backup',\n DEFAULT_ICON: 'default-icon'\n};\n\nexport type IndicationColor = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n\n@Component({\n selector: 'fd-avatar',\n templateUrl: './avatar.component.html',\n styleUrl: './avatar.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_AVATAR_COMPONENT,\n useExisting: AvatarComponent\n }\n ],\n host: {\n '[class]': 'cssClass()',\n '[style.background-image]': 'bgImage()',\n '[attr.tabindex]': 'tabindex()',\n '[attr.id]': 'id()',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-labelledby]': 'ariaLabelledby()',\n '[attr.alt]': 'ariaLabel()',\n '[attr.role]': 'role()',\n '(click)': 'onClick($event)',\n '(keydown.enter)': 'onClick($event)',\n '(keydown.space)': 'onClick($event)'\n },\n imports: [AvatarIconPipe, IconComponent]\n})\nexport class AvatarComponent {\n /** Id of the Avatar. */\n readonly id = input('fd-avatar-' + ++avatarUniqueId);\n\n /** Aria-label for Avatar. */\n readonly ariaLabel = input<string | null | undefined>(null);\n\n /** Aria-Labelledby for element describing Avatar. */\n readonly ariaLabelledby = input<string | null | undefined>(null);\n\n /** Localized text for label */\n readonly label = input<string | null | undefined>(null);\n\n /** The size of the Avatar. Options include: *xs*, *s*, *m*, *l* and *xl*. */\n readonly size = input<Size>('l');\n\n /** Font family of the icon. */\n readonly font = input<IconFont>(FD_DEFAULT_ICON_FONT_FAMILY);\n\n /** The glyph name. */\n readonly glyph = input<string | null | undefined>(null);\n\n /** The glyph name for zoom icon. */\n readonly zoomGlyph = input<string | null | undefined>(null);\n\n /** Whether to apply a circle style to the Avatar. */\n readonly circle = input(false, { transform: booleanAttribute });\n\n /** Whether the Avatar should be interactive. */\n readonly interactive = input(false, { transform: booleanAttribute });\n\n /** Whether to apply a transparent style to the Avatar. */\n readonly transparent = input(false, { transform: booleanAttribute });\n\n /** Whether to apply background size contain style to the Avatar */\n readonly contain = input(false, { transform: booleanAttribute });\n\n /** Whether to apply a placeholder background style to the Avatar. */\n readonly placeholder = input(false, { transform: booleanAttribute });\n\n /** Whether to apply a tile background style to the Avatar. */\n readonly tile = input(false, { transform: booleanAttribute });\n\n /** Whether to apply a border to the Avatar. */\n readonly border = input(false, { transform: booleanAttribute });\n\n /** A number from 1 to 10 representing the background color of the Avatar.\n * This property will override the colorIndication property.\n */\n readonly colorAccent = input<ColorAccent | null | undefined>(null);\n\n /** A number from 1 to 10 representing the background color of the Avatar using the Indication Colors. */\n readonly colorIndication = input<IndicationColor | null | undefined>(null);\n\n /** Whether to apply random background color to the Avatar. */\n readonly random = input(false, { transform: booleanAttribute });\n\n /** Whether component should be focusable & clicable */\n readonly clickable = input(false, { transform: booleanAttribute });\n\n /** Value state of the Avatar. */\n readonly valueState = input<AvatarValueStates | null | undefined>(null);\n\n /** Background image resource: url or base64. */\n readonly image = input<string | null | undefined>(null);\n\n /** Backup options to use when image hasn't been loaded successfully.\n * Options separated with \"|\" symbol.\n * Possible options: content, alt, backup, default-icon\n */\n readonly alterIcon = input<string | null | undefined>(null);\n\n /** Backup image to load when image hasn't been loaded successfully.\n * Only applicable when using alterIcon input property.\n */\n readonly backupImage = input<string | null | undefined>(null);\n\n /** Event emitted when avatar clicked. Only fires if clickable input property set to true. */\n readonly avatarClicked = output<Event>();\n\n /** Event emitted when zoom icon clicked. Only fires if zoomGlyph input property is set. */\n readonly zoomGlyphClicked = output<void>();\n\n /** @hidden */\n protected readonly content = viewChild<ElementRef>('content');\n\n /** @hidden Internal state for background image */\n protected readonly bgImage = signal<string | null | undefined>(null);\n\n /** @hidden Internal state for computed abbreviation */\n protected readonly abbreviate = signal<string | null | undefined>(null);\n\n /** @hidden Computed tabindex based on clickable state */\n protected readonly tabindex = computed(() => {\n if (this._hostTabindex != null) {\n return this._hostTabindex;\n }\n return this.clickable() ? 0 : null;\n });\n\n /** @hidden Computed role attribute */\n protected readonly role = computed(() => (this.zoomGlyph() || this.clickable() ? 'button' : 'img'));\n\n /** @hidden If a default placeholder should be displayed */\n protected readonly showDefault = computed(\n () =>\n // Show default if explicitly requested OR if no content is available\n this._shouldShowDefaultIcon() ||\n (!this.abbreviate() && !this._imageLoaded() && !this.glyph() && !this.image())\n );\n\n /** @hidden Computed CSS classes */\n protected readonly cssClass = computed(() => {\n const colorAccentValue = this.colorAccent();\n const randomValue = this.random();\n const colorIndicationValue = this.colorIndication();\n\n return [\n 'fd-avatar',\n this.size() ? `fd-avatar--${this.size()}` : '',\n colorAccentValue && !randomValue ? `fd-avatar--accent-color-${colorAccentValue}` : '',\n randomValue ? `fd-avatar--accent-color-${this._randomColorAccent()}` : '',\n colorIndicationValue && colorAccentValue === null && !randomValue\n ? `fd-avatar--indication-color-${colorIndicationValue}`\n : '',\n this.circle() ? 'fd-avatar--circle' : '',\n this.border() ? 'fd-avatar--border' : '',\n this.interactive() ? 'fd-avatar--interactive' : '',\n this.transparent() ? 'fd-avatar--transparent' : '',\n this.contain() ? 'fd-avatar--background-contain' : '',\n this.placeholder() ? 'fd-avatar--placeholder' : '',\n this.tile() ? 'fd-avatar--tile' : ''\n ]\n .filter(Boolean)\n .join(' ');\n });\n\n /** @hidden Internal state tracking if image loaded successfully */\n private readonly _imageLoaded = signal(false);\n\n /** @hidden Explicitly track when to show default icon (for failed images with no fallback) */\n private readonly _shouldShowDefaultIcon = signal(false);\n\n /** @hidden Stored random color accent to prevent regeneration */\n private readonly _randomColorAccent = signal<ColorAccent>(getRandomColorAccent());\n\n /** @hidden Track the currently loading/loaded image URL to prevent duplicate requests */\n private _currentImageUrl: string | null = null;\n\n /** @hidden Cache of successfully loaded image URLs to prevent re-requesting */\n private readonly _loadedImageCache = new Set<string>();\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef);\n\n /** @hidden */\n private readonly _hostTabindex = inject(new HostAttributeToken('tabindex'), { optional: true });\n\n /** @hidden */\n constructor() {\n // Effect to handle image changes\n effect(() => {\n const imageValue = this.image();\n if (imageValue) {\n // Only reset loaded state if the URL actually changed\n if (this._currentImageUrl !== imageValue) {\n this._imageLoaded.set(false);\n this._shouldShowDefaultIcon.set(false); // Reset default icon flag\n this._verifyImageUrl(imageValue, this._onErrorCallback.bind(this));\n }\n // If URL is the same and already loaded, do nothing (use cache)\n } else {\n // Image input cleared\n this._currentImageUrl = null;\n this._imageLoaded.set(false);\n this._shouldShowDefaultIcon.set(false);\n this._setBgImage(null);\n }\n });\n\n // Effect to handle label changes and compute abbreviation\n effect(() => {\n const labelValue = this.label();\n // Only generate abbreviation from label if there's no successful image\n if (labelValue && !this._imageLoaded()) {\n const abbreviation = this._generateAbbreviation(labelValue);\n this.abbreviate.set(abbreviation);\n } else if (!labelValue && !this._imageLoaded()) {\n // Clear abbreviation when label is removed (if no image)\n this.abbreviate.set(null);\n }\n });\n\n // Effect to regenerate random color when random property changes\n effect(() => {\n if (this.random()) {\n this._randomColorAccent.set(getRandomColorAccent());\n }\n });\n }\n\n /** @hidden */\n protected onClick(event: Event): void {\n if (!this.clickable()) {\n return;\n }\n\n event.preventDefault();\n\n this.avatarClicked.emit(event);\n\n if (this.zoomGlyph()) {\n this.zoomGlyphClicked.emit();\n }\n }\n\n /** @hidden */\n protected zoomClicked(event: Event): void {\n event.preventDefault();\n this._elementRef.nativeElement.focus();\n this.zoomGlyphClicked.emit();\n }\n\n /** @hidden Get the abbreviation string */\n private _generateAbbreviation(label: Nullable<string>): string | null {\n if (!label) {\n return null;\n }\n\n const maxLettersCount = 3;\n const words = label.split(' ').filter((word) => word.length > 0);\n\n if (words.length === 0 || words.length > maxLettersCount) {\n return null;\n }\n\n const abbreviate = words.map((word) => word[0]).join('');\n\n return abbreviate.match(ANY_LANGUAGE_LETTERS_REGEX) ? abbreviate : null;\n }\n\n /** @hidden */\n private _setBgImage(srcValue: Nullable<string>): void {\n this.bgImage.set(srcValue ? `url(${srcValue})` : null);\n }\n\n /** @hidden */\n private _verifyImageUrl(srcValue: string, onErrorCallback: () => void): void {\n // Check if this URL was previously loaded successfully (component-level cache)\n if (this._loadedImageCache.has(srcValue)) {\n // Image was loaded before, reuse it\n this._setBgImage(srcValue);\n this._imageLoaded.set(true);\n this._currentImageUrl = srcValue;\n return;\n }\n\n // Track the current image URL\n this._currentImageUrl = srcValue;\n\n const img = new Image();\n img.onload = () => {\n // Only set background if image loads successfully\n this._setBgImage(srcValue);\n this._imageLoaded.set(true);\n // Add to cache of successfully loaded images\n this._loadedImageCache.add(srcValue);\n };\n img.onerror = () => {\n onErrorCallback();\n };\n img.src = srcValue;\n }\n\n /** @hidden */\n private _onErrorCallback(): void {\n const alterIconValue = this.alterIcon();\n if (!alterIconValue) {\n this._showDefaultIcon();\n return;\n }\n\n const options = alterIconValue.split('|');\n for (const option of options) {\n if (option === ALTER_ICON_OPTIONS.CONTENT) {\n const contentValue = this.content()?.nativeElement.textContent;\n if (this._trySetAbbreviation(contentValue)) {\n return;\n }\n } else if (option === ALTER_ICON_OPTIONS.ALT) {\n const altValue = this._elementRef.nativeElement.getAttribute('alt');\n if (this._trySetAbbreviation(altValue)) {\n return;\n }\n } else if (option === ALTER_ICON_OPTIONS.BACKUP) {\n const backupImageValue = this.backupImage();\n if (backupImageValue) {\n this._verifyImageUrl(backupImageValue, () => this._showDefaultIcon());\n return;\n }\n } else if (option === ALTER_ICON_OPTIONS.DEFAULT_ICON) {\n this._showDefaultIcon();\n return;\n }\n }\n\n // Fallback if no valid option matched\n this._showDefaultIcon();\n }\n\n /** @hidden Helper to try setting abbreviation from text */\n private _trySetAbbreviation(text: string | null | undefined): boolean {\n if (!text) {\n return false;\n }\n const trimmedText = text.trim();\n if (!trimmedText) {\n return false;\n }\n const abbreviation = this._generateAbbreviation(trimmedText);\n if (abbreviation) {\n this.abbreviate.set(abbreviation);\n this._setBgImage(null); // Clear background image when using abbreviation\n return true;\n }\n return false;\n }\n\n /** @hidden */\n private _showDefaultIcon(): void {\n this.abbreviate.set(null);\n this._setBgImage(null);\n this._imageLoaded.set(false);\n this._shouldShowDefaultIcon.set(true);\n }\n}\n","@if (abbreviate()) {\n {{ abbreviate() }}\n}\n@if (zoomGlyph() || valueState()) {\n <i\n role=\"presentation\"\n class=\"fd-avatar__zoom-icon\"\n [class]=\"valueState() | fdAvatarIcon: zoomGlyph()\"\n (mousedown)=\"zoomClicked($event)\"\n >\n </i>\n}\n@if (glyph() || showDefault()) {\n <fd-icon\n class=\"fd-avatar__icon\"\n role=\"presentation\"\n [font]=\"font()\"\n [glyph]=\"glyph() || 'person-placeholder'\"\n ></fd-icon>\n}\n<div #content [style.display]=\"'none'\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { AvatarComponent } from './avatar.component';\n\n/**\n * @deprecated\n * Use `AvatarComponent` import instead.\n */\n@NgModule({\n imports: [AvatarComponent],\n exports: [AvatarComponent]\n})\nexport class AvatarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}