@fundamental-ngx/core 0.62.0-rc.97 → 0.62.0-rc.98
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/fundamental-ngx-core-avatar.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-avatar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-button.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dialog.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-facets.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-facets.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-flexible-column-layout.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-form.mjs +30 -17
- package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-generic-tag.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-generic-tag.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-grid-list.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-icon.mjs +25 -9
- package/fesm2022/fundamental-ngx-core-icon.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-info-label.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-info-label.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-input-group.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-list.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-box.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-page.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-message-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-strip.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-nested-list.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-notification.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-marker.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-object-marker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-status.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-product-switch.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-progress-indicator.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-progress-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-quick-view.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-quick-view.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-select.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-shellbar.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-switch.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tabs.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-timeline.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-timeline.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tree.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-wizard.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-wizard.mjs.map +1 -1
- package/package.json +3 -3
- package/types/fundamental-ngx-core-form.d.ts +16 -7
- package/types/fundamental-ngx-core-icon.d.ts +14 -7
|
@@ -332,7 +332,7 @@ class AvatarComponent {
|
|
|
332
332
|
provide: FD_AVATAR_COMPONENT,
|
|
333
333
|
useExisting: AvatarComponent
|
|
334
334
|
}
|
|
335
|
-
], 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.4\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", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "pipe", type: AvatarIconPipe, name: "fdAvatarIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
335
|
+
], 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.4\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
336
|
}
|
|
337
337
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
338
338
|
type: Component,
|
|
@@ -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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"}
|
|
@@ -324,7 +324,7 @@ class BreadcrumbComponent {
|
|
|
324
324
|
provide: FD_BREADCRUMB_COMPONENT,
|
|
325
325
|
useExisting: BreadcrumbComponent
|
|
326
326
|
}
|
|
327
|
-
], queries: [{ propertyName: "_contentItems", predicate: FD_BREADCRUMB_ITEM_COMPONENT }], viewQueries: [{ propertyName: "_menuComponent", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "_overflowLayout", first: true, predicate: OverflowLayoutComponent, descendants: true }], ngImport: i0, template: "<fd-overflow-layout\n [reverseHiddenItems]=\"!reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n ariaRole=\"list\"\n>\n @for (breadcrumb of _items$(); track breadcrumb) {\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n }\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items$()\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement()\">\n @for (breadcrumbItem of breadcrumbs; track breadcrumbItem) {\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled() : false\n \"\n >\n <a fd-menu-interactive (click)=\"itemClicked(breadcrumbItem.item, $event)\">\n @if (breadcrumbItem?.item.breadcrumbLink) {\n @if (breadcrumbItem.item.breadcrumbLink.prefixIconName()) {\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink.prefixIconName()\"\n ></fd-menu-addon>\n }\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n @if (breadcrumbItem.item.breadcrumbLink.postfixIconName()) {\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink.postfixIconName()\"\n ></fd-menu-addon>\n }\n } @else {\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n }\n </a>\n </li>\n }\n </fd-menu>\n @if (breadcrumbs.length > 0) {\n <span class=\"fd-breadcrumb__item\" [fdMenuTrigger]=\"menu\" #menuTriggerSpan>\n <a\n fd-link\n [attr.aria-label]=\"('coreBreadcrumb.overflowTitleMore' | fdTranslate)()\"\n aria-haspopup=\"menu\"\n tabindex=\"-1\"\n class=\"fd-breadcrumb__collapsed\"\n (keyup.enter)=\"openOverflowMenu($event)\"\n (keyup.space)=\"openOverflowMenu($event)\"\n (keydown.enter)=\"$event.preventDefault()\"\n (keydown.space)=\"$event.preventDefault()\"\n >\n <fd-icon\n glyph=\"overflow\"\n [title]=\"('coreBreadcrumb.overflowTitleMore' | fdTranslate)()\"\n [ariaLabel]=\"('coreBreadcrumb.overflowTitleMore' | fdTranslate)()\"\n ></fd-icon>\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n <span class=\"fd-breadcrumb__separator\" aria-hidden=\"true\"></span>\n </span>\n }\n </ng-container>\n</fd-overflow-layout>\n<ng-content></ng-content>\n", styles: [".fd-breadcrumb{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;--fdLink_Line_Height:1.5rem;list-style:none;-webkit-margin-after:.5rem;margin-block-end:.5rem}.fd-breadcrumb:after,.fd-breadcrumb:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapContent_LabelColor);padding-block:.0625rem}.fd-breadcrumb__item:after,.fd-breadcrumb__item:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:last-child:not(:has(a)){--fdBreadcrumb_Separator:none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb__separator{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-breadcrumb__separator:after,.fd-breadcrumb__separator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-breadcrumb__separator:after{color:var(--sapTextColor);content:var(--fdBreadcrumb_Separator,\"/\");margin-inline:.25rem}.fd-breadcrumb--backslash{--fdBreadcrumb_Separator:\"\\\\\"}.fd-breadcrumb--double-slash{--fdBreadcrumb_Separator:\"//\"}.fd-breadcrumb--double-backslash{--fdBreadcrumb_Separator:\"\\\\\\\\\"}.fd-breadcrumb--greater-than{--fdBreadcrumb_Separator:\">\"}.fd-breadcrumb--double-greater-than{--fdBreadcrumb_Separator:\">>\"}.fd-breadcrumb .fd-overflow-layout{justify-content:flex-start}.fd-breadcrumb .fd-breadcrumb__item,.fd-breadcrumb .fd-link{white-space:nowrap;text-wrap:nowrap}\n/*! Bundled license information:\n\nfundamental-styles/dist/breadcrumb.css:\n (*!\n * Fundamental Library Styles v0.41.4\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: OverflowLayoutComponent, selector: "fd-overflow-layout", inputs: ["maxVisibleItems", "navigationTrigger", "showMorePosition", "renderShowMoreButton", "reverseHiddenItems", "enableKeyboardNavigation", "ariaRole", "moreItemsButtonText"], outputs: ["visibleItemsCount", "hiddenItemsCount", "hiddenItemsChange"] }, { kind: "directive", type: OverflowItemRefDirective, selector: "[fdOverflowItemRef]", inputs: ["fdOverflowItemRef"] }, { kind: "directive", type: OverflowLayoutItemDirective, selector: "[fdOverflowLayoutItem]", inputs: ["forceVisibility"], outputs: ["hiddenChange"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: OverflowExpandDirective, selector: "[fdOverflowExpand]", inputs: ["fdOverflowExpandItems"] }, { kind: "component", type: MenuComponent, selector: "fd-menu", inputs: ["openOnHoverTime", "ariaLabel", "ariaLabelledby", "id", "config", "mobile", "mobileConfig", "placement", "closeOnEscapeKey", "focusAutoCapture", "disabled", "disableScrollbar", "triggers", "fillControlMode", "closeOnOutsideClick", "noArrow", "focusTrapped", "additionalBodyClass", "closeOnNavigation", "restoreFocusOnClose", "appendTo", "fixedPosition", "isOpen"], outputs: ["isOpenChange", "activePath", "beforeOpen"] }, { kind: "component", type: MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "component", type: MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: MenuTitleDirective, selector: "[fd-menu-title]", inputs: ["truncate"] }, { kind: "directive", type: MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
327
|
+
], queries: [{ propertyName: "_contentItems", predicate: FD_BREADCRUMB_ITEM_COMPONENT }], viewQueries: [{ propertyName: "_menuComponent", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "_overflowLayout", first: true, predicate: OverflowLayoutComponent, descendants: true }], ngImport: i0, template: "<fd-overflow-layout\n [reverseHiddenItems]=\"!reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n ariaRole=\"list\"\n>\n @for (breadcrumb of _items$(); track breadcrumb) {\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n }\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items$()\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement()\">\n @for (breadcrumbItem of breadcrumbs; track breadcrumbItem) {\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled() : false\n \"\n >\n <a fd-menu-interactive (click)=\"itemClicked(breadcrumbItem.item, $event)\">\n @if (breadcrumbItem?.item.breadcrumbLink) {\n @if (breadcrumbItem.item.breadcrumbLink.prefixIconName()) {\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink.prefixIconName()\"\n ></fd-menu-addon>\n }\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n @if (breadcrumbItem.item.breadcrumbLink.postfixIconName()) {\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink.postfixIconName()\"\n ></fd-menu-addon>\n }\n } @else {\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n }\n </a>\n </li>\n }\n </fd-menu>\n @if (breadcrumbs.length > 0) {\n <span class=\"fd-breadcrumb__item\" [fdMenuTrigger]=\"menu\" #menuTriggerSpan>\n <a\n fd-link\n [attr.aria-label]=\"('coreBreadcrumb.overflowTitleMore' | fdTranslate)()\"\n aria-haspopup=\"menu\"\n tabindex=\"-1\"\n class=\"fd-breadcrumb__collapsed\"\n (keyup.enter)=\"openOverflowMenu($event)\"\n (keyup.space)=\"openOverflowMenu($event)\"\n (keydown.enter)=\"$event.preventDefault()\"\n (keydown.space)=\"$event.preventDefault()\"\n >\n <fd-icon\n glyph=\"overflow\"\n [title]=\"('coreBreadcrumb.overflowTitleMore' | fdTranslate)()\"\n [ariaLabel]=\"('coreBreadcrumb.overflowTitleMore' | fdTranslate)()\"\n ></fd-icon>\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n <span class=\"fd-breadcrumb__separator\" aria-hidden=\"true\"></span>\n </span>\n }\n </ng-container>\n</fd-overflow-layout>\n<ng-content></ng-content>\n", styles: [".fd-breadcrumb{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;--fdLink_Line_Height:1.5rem;list-style:none;-webkit-margin-after:.5rem;margin-block-end:.5rem}.fd-breadcrumb:after,.fd-breadcrumb:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapContent_LabelColor);padding-block:.0625rem}.fd-breadcrumb__item:after,.fd-breadcrumb__item:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:last-child:not(:has(a)){--fdBreadcrumb_Separator:none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb__separator{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-breadcrumb__separator:after,.fd-breadcrumb__separator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-breadcrumb__separator:after{color:var(--sapTextColor);content:var(--fdBreadcrumb_Separator,\"/\");margin-inline:.25rem}.fd-breadcrumb--backslash{--fdBreadcrumb_Separator:\"\\\\\"}.fd-breadcrumb--double-slash{--fdBreadcrumb_Separator:\"//\"}.fd-breadcrumb--double-backslash{--fdBreadcrumb_Separator:\"\\\\\\\\\"}.fd-breadcrumb--greater-than{--fdBreadcrumb_Separator:\">\"}.fd-breadcrumb--double-greater-than{--fdBreadcrumb_Separator:\">>\"}.fd-breadcrumb .fd-overflow-layout{justify-content:flex-start}.fd-breadcrumb .fd-breadcrumb__item,.fd-breadcrumb .fd-link{white-space:nowrap;text-wrap:nowrap}\n/*! Bundled license information:\n\nfundamental-styles/dist/breadcrumb.css:\n (*!\n * Fundamental Library Styles v0.41.4\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: OverflowLayoutComponent, selector: "fd-overflow-layout", inputs: ["maxVisibleItems", "navigationTrigger", "showMorePosition", "renderShowMoreButton", "reverseHiddenItems", "enableKeyboardNavigation", "ariaRole", "moreItemsButtonText"], outputs: ["visibleItemsCount", "hiddenItemsCount", "hiddenItemsChange"] }, { kind: "directive", type: OverflowItemRefDirective, selector: "[fdOverflowItemRef]", inputs: ["fdOverflowItemRef"] }, { kind: "directive", type: OverflowLayoutItemDirective, selector: "[fdOverflowLayoutItem]", inputs: ["forceVisibility"], outputs: ["hiddenChange"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: OverflowExpandDirective, selector: "[fdOverflowExpand]", inputs: ["fdOverflowExpandItems"] }, { kind: "component", type: MenuComponent, selector: "fd-menu", inputs: ["openOnHoverTime", "ariaLabel", "ariaLabelledby", "id", "config", "mobile", "mobileConfig", "placement", "closeOnEscapeKey", "focusAutoCapture", "disabled", "disableScrollbar", "triggers", "fillControlMode", "closeOnOutsideClick", "noArrow", "focusTrapped", "additionalBodyClass", "closeOnNavigation", "restoreFocusOnClose", "appendTo", "fixedPosition", "isOpen"], outputs: ["isOpenChange", "activePath", "beforeOpen"] }, { kind: "component", type: MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "component", type: MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: MenuTitleDirective, selector: "[fd-menu-title]", inputs: ["truncate"] }, { kind: "directive", type: MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "size", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
328
328
|
}
|
|
329
329
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
330
330
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-breadcrumb.mjs","sources":["../../../../libs/core/breadcrumb/tokens.ts","../../../../libs/core/breadcrumb/breadcrumb-item.component.ts","../../../../libs/core/breadcrumb/breadcrumb.component.ts","../../../../libs/core/breadcrumb/breadcrumb.component.html","../../../../libs/core/breadcrumb/breadcrumb.module.ts","../../../../libs/core/breadcrumb/fundamental-ngx-core-breadcrumb.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FD_BREADCRUMB_ITEM_COMPONENT = new InjectionToken('FdBreadcrumbItemComponent');\nexport const FD_BREADCRUMB_COMPONENT = new InjectionToken('FdBreadcrumbComponent');\n","import { DomPortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { FD_LINK_COMPONENT, LinkComponent } from '@fundamental-ngx/core/link';\nimport { FD_BREADCRUMB_ITEM_COMPONENT } from './tokens';\n\n/**\n * Breadcrumb item directive. Must have child breadcrumb link directives.\n *\n * ```html\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * ```\n */\n@Component({\n selector: 'fd-breadcrumb-item',\n template: `<ng-content></ng-content> <span class=\"fd-breadcrumb__separator\" aria-hidden=\"true\"></span>`,\n host: {\n class: 'fd-breadcrumb__item'\n },\n providers: [\n {\n provide: FD_BREADCRUMB_ITEM_COMPONENT,\n useExisting: BreadcrumbItemComponent\n }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BreadcrumbItemComponent implements AfterViewInit {\n /** @hidden */\n @ContentChild(FD_LINK_COMPONENT)\n breadcrumbLink: LinkComponent;\n\n /** In case there is no link in Item and breadcrumb item is non-interactive, we move whole item content to menu item title */\n breadcrumbItemPortal: DomPortal<Element>;\n\n /** When breadcrumb item has link in it, we are moving link content to menu item title */\n linkContentPortal: DomPortal;\n\n /**\n * Breadcrumb item dom portal.\n */\n portal: DomPortal;\n\n /** @hidden */\n private _attached = false;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef<HTMLElement>) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._attach();\n }\n\n /**\n * Sets breadcrumb item dom portal.\n */\n setPortal(): void {\n if (!this.portal) {\n this.portal = new DomPortal(this.elementRef);\n }\n }\n\n /** @hidden */\n _detach(): void {\n if (!this._attached) {\n return;\n }\n\n if (this.linkContentPortal?.isAttached) {\n this.linkContentPortal?.detach();\n }\n\n if (this.breadcrumbItemPortal?.isAttached) {\n this.breadcrumbItemPortal?.detach();\n }\n\n this._attached = false;\n }\n\n /** @hidden */\n _attach(): void {\n if (this._attached) {\n return;\n }\n\n const contentSpan = this.breadcrumbLink?.contentSpan();\n if (this.breadcrumbLink && contentSpan) {\n this.linkContentPortal = new DomPortal<HTMLElement>(contentSpan.nativeElement);\n }\n\n this.breadcrumbItemPortal = new DomPortal(this.elementRef.nativeElement.firstElementChild as Element);\n this._attached = true;\n }\n}\n","import { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { PortalModule } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { HasElementRef, KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\nimport {\n GlyphMenuAddonDirective,\n MenuAddonDirective,\n MenuComponent,\n MenuInteractiveComponent,\n MenuItemComponent,\n MenuTitleDirective,\n MenuTriggerDirective\n} from '@fundamental-ngx/core/menu';\nimport {\n OverflowExpandDirective,\n OverflowItemRefDirective,\n OverflowLayoutComponent,\n OverflowLayoutItemDirective\n} from '@fundamental-ngx/core/overflow-layout';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { FD_LANGUAGE_SIGNAL, FdTranslatePipe, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { FD_BREADCRUMB_COMPONENT, FD_BREADCRUMB_ITEM_COMPONENT } from './tokens';\n\nexport type BreadcrumbSeparatorStyle =\n | ''\n | 'backslash'\n | 'double-slash'\n | 'double-backslash'\n | 'greater-than'\n | 'double-greater-than';\n\n/**\n * Breadcrumb parent wrapper directive. Must have breadcrumb item child directives.\n *\n * ```html\n * <fd-breadcrumb>\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * </fd-breadcrumb>\n * ```\n */\n@Component({\n selector: 'fd-breadcrumb',\n host: {\n role: 'navigation',\n '[class]': '_cssClass()',\n '[attr.aria-label]': '_ariaLabel',\n '(keydown)': 'onKeydown($event)'\n },\n templateUrl: './breadcrumb.component.html',\n styleUrl: './breadcrumb.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_BREADCRUMB_COMPONENT,\n useExisting: BreadcrumbComponent\n }\n ],\n imports: [\n OverflowLayoutComponent,\n OverflowItemRefDirective,\n OverflowLayoutItemDirective,\n PortalModule,\n OverflowExpandDirective,\n MenuComponent,\n MenuItemComponent,\n MenuInteractiveComponent,\n GlyphMenuAddonDirective,\n MenuAddonDirective,\n MenuTitleDirective,\n MenuTriggerDirective,\n LinkComponent,\n IconComponent,\n FdTranslatePipe\n ]\n})\nexport class BreadcrumbComponent implements AfterViewInit, HasElementRef {\n /** Whether to append items to the overflow dropdown in reverse order. Default is true. */\n @Input()\n reverse = false;\n\n /** Tabindex of the breadcrumb. */\n @Input()\n tabIndex = '0';\n\n /**\n * Event emitted when visible items count is changed.\n */\n @Output()\n visibleItemsCount = new EventEmitter<number>();\n\n /**\n * Event emitted when hidden items count is changed.\n */\n @Output()\n hiddenItemsCount = new EventEmitter<number>();\n\n /** @hidden */\n @ContentChildren(FD_BREADCRUMB_ITEM_COMPONENT)\n private readonly _contentItems: QueryList<BreadcrumbItemComponent>;\n\n /** @hidden */\n @ViewChild(MenuComponent)\n private readonly _menuComponent: MenuComponent;\n\n /** @hidden */\n @ViewChild(OverflowLayoutComponent)\n private readonly _overflowLayout: OverflowLayoutComponent;\n\n /**\n * Separator style for the breadcrumb items.\n * Can be 'backslash' | 'double-slash' | 'double-backslash' | 'greater-than' | 'double-greater-than'\n * Omit for default (slash)\n */\n separatorStyle = input<BreadcrumbSeparatorStyle>('');\n\n /** @hidden */\n _ariaLabel: string;\n\n /**\n * @hidden\n * Array of breadcrumb items.\n */\n _items$ = signal<BreadcrumbItemComponent[]>([]);\n\n /** @hidden */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** @hidden */\n protected readonly placement = computed<Placement>(() => (this._rtlService?.rtl() ? 'bottom-end' : 'bottom-start'));\n\n /** @hidden */\n protected readonly _cssClass = computed(() => {\n const classes = ['fd-breadcrumb'];\n const style = this.separatorStyle();\n if (style) {\n classes.push(`fd-breadcrumb--${style}`);\n }\n return classes.join(' ');\n });\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, {\n optional: true\n });\n\n /** @hidden */\n private readonly _langSignal = inject(FD_LANGUAGE_SIGNAL);\n\n /** @hidden */\n private readonly _translationResolver = new TranslationResolver();\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor() {\n effect(() => {\n const lang = this._langSignal();\n this._ariaLabel = this._translationResolver.resolve(lang, 'coreBreadcrumb.breadcrumbTrailLabel');\n });\n }\n\n /** @hidden */\n onResize(): void {\n this._overflowLayout.triggerRecalculation();\n }\n\n /**\n * Function that handles click, touch, enter and space events.\n */\n itemClicked(breadcrumbItem: BreadcrumbItemComponent, $event: Event): void {\n $event.preventDefault();\n breadcrumbItem.breadcrumbLink.elementRef.nativeElement.click();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setItems();\n\n this._contentItems.changes.subscribe(() => {\n this._setItems();\n this._updateAriaLabels();\n });\n\n // Set menu roles for breadcrumb context\n (this._menuComponent as any)._navContainerRole = 'dialog';\n (this._menuComponent as any)._menuListContainerRole = 'menu';\n\n /**\n * Set initial aria-labels\n * Roving tabindex is applied in _onVisibleItemsCountChange once overflow layout resolves\n */\n this._updateAriaLabels();\n }\n\n /** @hidden */\n _onHiddenChange(isHidden: boolean, breadcrumb: BreadcrumbItemComponent): void {\n if (!isHidden) {\n breadcrumb._detach();\n } else {\n breadcrumb._attach();\n }\n }\n\n /** @hidden */\n _onVisibleItemsCountChange(visibleItemsCount: number): void {\n this.visibleItemsCount.emit(visibleItemsCount);\n\n /**\n * Defer tabindex update: the overflow layout emits this event before detectChanges(),\n * so soft-hidden CSS classes haven't been applied yet.\n * A microtask ensures the DOM is up to date.\n */\n Promise.resolve().then(() => this._updateTabIndexes());\n }\n\n /** @hidden */\n _onHiddenItemsCountChange(hiddenItemsCount: number): void {\n this.hiddenItemsCount.emit(hiddenItemsCount);\n }\n\n /**\n * @hidden\n * Opens the overflow menu on keyboard activation.\n * Bound to keyup (not keydown) so that by the time the menu opens and captures focus,\n * the key has been fully released and no stale key events reach the first menu item.\n */\n protected openOverflowMenu(event: Event): void {\n event.preventDefault();\n if (!this._menuComponent.isOpen()) {\n this._menuComponent.open();\n }\n }\n\n /** @hidden */\n protected onKeydown(event: KeyboardEvent): void {\n if (!KeyUtil.isKeyCode(event, [LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW])) {\n return;\n }\n\n const links = this._getVisibleLinks();\n if (links.length === 0) {\n return;\n }\n\n const activeEl = document.activeElement as HTMLElement;\n const currentIndex = links.indexOf(activeEl);\n if (currentIndex === -1) {\n return;\n }\n\n const isRtl = this._rtlService?.rtl();\n const isNext =\n KeyUtil.isKeyCode(event, DOWN_ARROW) || KeyUtil.isKeyCode(event, isRtl ? LEFT_ARROW : RIGHT_ARROW);\n const nextIndex = isNext ? Math.min(currentIndex + 1, links.length - 1) : Math.max(currentIndex - 1, 0);\n\n if (nextIndex !== currentIndex) {\n // Update roving tabindex: old item becomes unfocusable, new item becomes the tab stop\n links[currentIndex].setAttribute('tabindex', '-1');\n links[nextIndex].setAttribute('tabindex', '0');\n links[nextIndex].focus();\n event.preventDefault();\n }\n }\n\n /**\n * @hidden\n * Returns all focusable breadcrumb elements in DOM order: visible link items,\n * the overflow \"...\" collapse button, and the aria-current page span.\n * Excludes items hidden by the overflow layout (soft-hidden).\n *\n * Uses querySelectorAll rather than Angular queries because:\n * - The overflow \"...\" button is rendered in the component template, not projected\n * as a content child, so it cannot be captured via @ContentChildren.\n * - The aria-current span is user-provided content inside fd-breadcrumb-item and\n * is not an Angular component/directive — there's no token to query it.\n * - querySelectorAll naturally returns elements in DOM (visual) order, which is\n * exactly what arrow key navigation needs, without manual sorting.\n */\n private _getVisibleLinks(): HTMLElement[] {\n const el = this.elementRef.nativeElement;\n return Array.from(\n el.querySelectorAll<HTMLElement>(\n '.fd-overflow-layout__item:not(.fd-overflow-layout__item--soft-hidden) a.fd-link, .fd-overflow-layout__item:not(.fd-overflow-layout__item--soft-hidden) [aria-current], .fd-breadcrumb__collapsed'\n )\n );\n }\n\n /**\n * @hidden\n * Applies roving tabindex: sets all focusable breadcrumb elements to tabindex=\"-1\",\n * then promotes the first visible one to tabindex=\"0\".\n * This ensures Tab enters/exits the breadcrumb as a single stop,\n * and non-href elements (click-only links, aria-current spans) are programmatically focusable.\n */\n private _updateTabIndexes(): void {\n const el = this.elementRef.nativeElement;\n // Set ALL focusable breadcrumb elements to -1 (including hidden ones)\n const allLinks = el.querySelectorAll<HTMLElement>('a.fd-link, [aria-current], .fd-breadcrumb__collapsed');\n allLinks.forEach((link) => link.setAttribute('tabindex', '-1'));\n\n // Promote the first visible one to 0\n const visibleLinks = this._getVisibleLinks();\n if (visibleLinks.length > 0) {\n visibleLinks[0].setAttribute('tabindex', '0');\n }\n }\n\n /** @hidden */\n private _setItems(): void {\n this._contentItems.forEach((item) => item.setPortal());\n this._items$.set(this._contentItems.toArray());\n }\n\n /** @hidden */\n private _updateAriaLabels(): void {\n const items = this._contentItems.toArray();\n const totalCount = items.length;\n const lang = this._langSignal();\n\n items.forEach((item, index) => {\n const position = index + 1;\n const positionLabel = this._translationResolver.resolve(lang, 'coreBreadcrumb.positionLabel', {\n current: position,\n total: totalCount\n });\n\n // Set aria-label on link if present\n if (item.breadcrumbLink) {\n const linkEl = item.breadcrumbLink.elementRef.nativeElement;\n const linkText = linkEl.textContent?.trim() || '';\n linkEl.setAttribute('aria-label', `${linkText}, ${positionLabel}`);\n } else {\n // Set aria-label on direct child span with aria-current if present\n const itemElement = item.elementRef.nativeElement;\n const directChildSpan = Array.from(itemElement.children).find(\n (child) => child.tagName === 'SPAN' && child.hasAttribute('aria-current')\n ) as HTMLElement;\n if (directChildSpan) {\n const spanText = directChildSpan.textContent?.trim() || '';\n directChildSpan.setAttribute('aria-label', `${spanText}, ${positionLabel}`);\n }\n }\n });\n }\n}\n","<fd-overflow-layout\n [reverseHiddenItems]=\"!reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n ariaRole=\"list\"\n>\n @for (breadcrumb of _items$(); track breadcrumb) {\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n }\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items$()\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement()\">\n @for (breadcrumbItem of breadcrumbs; track breadcrumbItem) {\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled() : false\n \"\n >\n <a fd-menu-interactive (click)=\"itemClicked(breadcrumbItem.item, $event)\">\n @if (breadcrumbItem?.item.breadcrumbLink) {\n @if (breadcrumbItem.item.breadcrumbLink.prefixIconName()) {\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink.prefixIconName()\"\n ></fd-menu-addon>\n }\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n @if (breadcrumbItem.item.breadcrumbLink.postfixIconName()) {\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink.postfixIconName()\"\n ></fd-menu-addon>\n }\n } @else {\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n }\n </a>\n </li>\n }\n </fd-menu>\n @if (breadcrumbs.length > 0) {\n <span class=\"fd-breadcrumb__item\" [fdMenuTrigger]=\"menu\" #menuTriggerSpan>\n <a\n fd-link\n [attr.aria-label]=\"('coreBreadcrumb.overflowTitleMore' | fdTranslate)()\"\n aria-haspopup=\"menu\"\n tabindex=\"-1\"\n class=\"fd-breadcrumb__collapsed\"\n (keyup.enter)=\"openOverflowMenu($event)\"\n (keyup.space)=\"openOverflowMenu($event)\"\n (keydown.enter)=\"$event.preventDefault()\"\n (keydown.space)=\"$event.preventDefault()\"\n >\n <fd-icon\n glyph=\"overflow\"\n [title]=\"('coreBreadcrumb.overflowTitleMore' | fdTranslate)()\"\n [ariaLabel]=\"('coreBreadcrumb.overflowTitleMore' | fdTranslate)()\"\n ></fd-icon>\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n <span class=\"fd-breadcrumb__separator\" aria-hidden=\"true\"></span>\n </span>\n }\n </ng-container>\n</fd-overflow-layout>\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { BreadcrumbComponent } from './breadcrumb.component';\n\nconst components = [BreadcrumbComponent, BreadcrumbItemComponent, LinkComponent, ContentDensityModule];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class BreadcrumbModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;MAEa,4BAA4B,GAAG,IAAI,cAAc,CAAC,2BAA2B;MAC7E,uBAAuB,GAAG,IAAI,cAAc,CAAC,uBAAuB;;ACSjF;;;;;;;;AAQG;MAgBU,uBAAuB,CAAA;;AAoBhC,IAAA,WAAA,CAA4B,UAAmC,EAAA;QAAnC,IAAA,CAAA,UAAU,GAAV,UAAU;;QAH9B,IAAA,CAAA,SAAS,GAAG,KAAK;IAGyC;;IAGlE,eAAe,GAAA;QACX,IAAI,CAAC,OAAO,EAAE;IAClB;AAEA;;AAEG;IACH,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;QAChD;IACJ;;IAGA,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB;QACJ;AAEA,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE;AACpC,YAAA,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE;QACpC;AAEA,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,UAAU,EAAE;AACvC,YAAA,IAAI,CAAC,oBAAoB,EAAE,MAAM,EAAE;QACvC;AAEA,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;IAC1B;;IAGA,OAAO,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB;QACJ;QAEA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE;AACtD,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,WAAW,EAAE;YACpC,IAAI,CAAC,iBAAiB,GAAG,IAAI,SAAS,CAAc,WAAW,CAAC,aAAa,CAAC;QAClF;AAEA,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,iBAA4B,CAAC;AACrG,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;IACzB;8GAlES,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,SAAA,EATrB;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,4BAA4B;AACrC,gBAAA,WAAW,EAAE;AAChB;SACJ,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAMa,iBAAiB,gDAfrB,CAAA,2FAAA,CAA6F,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAa9F,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAfnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,CAAA,2FAAA,CAA6F;AACvG,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE;AACV,qBAAA;AACD,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,WAAW,EAAA;AACd;AACJ,qBAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC;AAC5C,iBAAA;;sBAGI,YAAY;uBAAC,iBAAiB;;;ACcnC;;;;;;;;;;AAUG;MAqCU,mBAAmB,CAAA;;AAgF5B,IAAA,WAAA,GAAA;;QA7EA,IAAA,CAAA,OAAO,GAAG,KAAK;;QAIf,IAAA,CAAA,QAAQ,GAAG,GAAG;AAEd;;AAEG;AAEH,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAU;AAE9C;;AAEG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAU;AAc7C;;;;AAIG;AACH,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAA2B,EAAE,0DAAC;AAKpD;;;AAGG;AACH,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAA4B,EAAE,mDAAC;;AAGtC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;;QAG9C,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAY,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,YAAY,GAAG,cAAc,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;;AAGhG,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACzC,YAAA,MAAM,OAAO,GAAG,CAAC,eAAe,CAAC;AACjC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE;YACnC,IAAI,KAAK,EAAE;AACP,gBAAA,OAAO,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAA,CAAE,CAAC;YAC3C;AACA,YAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5B,QAAA,CAAC,qDAAC;;AAGe,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE;AAC9C,YAAA,QAAQ,EAAE;AACb,SAAA,CAAC;;AAGe,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC;;AAGxC,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,mBAAmB,EAAE;;AAGhD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QAI7C,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,qCAAqC,CAAC;AACpG,QAAA,CAAC,CAAC;IACN;;IAGA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE;IAC/C;AAEA;;AAEG;IACH,WAAW,CAAC,cAAuC,EAAE,MAAa,EAAA;QAC9D,MAAM,CAAC,cAAc,EAAE;QACvB,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;IAClE;;IAGA,eAAe,GAAA;QACX,IAAI,CAAC,SAAS,EAAE;QAEhB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;YACtC,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,iBAAiB,EAAE;AAC5B,QAAA,CAAC,CAAC;;AAGD,QAAA,IAAI,CAAC,cAAsB,CAAC,iBAAiB,GAAG,QAAQ;AACxD,QAAA,IAAI,CAAC,cAAsB,CAAC,sBAAsB,GAAG,MAAM;AAE5D;;;AAGG;QACH,IAAI,CAAC,iBAAiB,EAAE;IAC5B;;IAGA,eAAe,CAAC,QAAiB,EAAE,UAAmC,EAAA;QAClE,IAAI,CAAC,QAAQ,EAAE;YACX,UAAU,CAAC,OAAO,EAAE;QACxB;aAAO;YACH,UAAU,CAAC,OAAO,EAAE;QACxB;IACJ;;AAGA,IAAA,0BAA0B,CAAC,iBAAyB,EAAA;AAChD,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAE9C;;;;AAIG;AACH,QAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1D;;AAGA,IAAA,yBAAyB,CAAC,gBAAwB,EAAA;AAC9C,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAChD;AAEA;;;;;AAKG;AACO,IAAA,gBAAgB,CAAC,KAAY,EAAA;QACnC,KAAK,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE;AAC/B,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;QAC9B;IACJ;;AAGU,IAAA,SAAS,CAAC,KAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,EAAE;YAC5E;QACJ;AAEA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACrC,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB;QACJ;AAEA,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAA4B;QACtD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC5C,QAAA,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;YACrB;QACJ;QAEA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;QACrC,MAAM,MAAM,GACR,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;AACtG,QAAA,MAAM,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC;AAEvG,QAAA,IAAI,SAAS,KAAK,YAAY,EAAE;;YAE5B,KAAK,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;YAClD,KAAK,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;AAC9C,YAAA,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE;YACxB,KAAK,CAAC,cAAc,EAAE;QAC1B;IACJ;AAEA;;;;;;;;;;;;;AAaG;IACK,gBAAgB,GAAA;AACpB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;QACxC,OAAO,KAAK,CAAC,IAAI,CACb,EAAE,CAAC,gBAAgB,CACf,kMAAkM,CACrM,CACJ;IACL;AAEA;;;;;;AAMG;IACK,iBAAiB,GAAA;AACrB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;;QAExC,MAAM,QAAQ,GAAG,EAAE,CAAC,gBAAgB,CAAc,sDAAsD,CAAC;AACzG,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;;AAG/D,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAC5C,QAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;QACjD;IACJ;;IAGQ,SAAS,GAAA;AACb,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAClD;;IAGQ,iBAAiB,GAAA;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC1C,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM;AAC/B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC1B,YAAA,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC;YAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,8BAA8B,EAAE;AAC1F,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,KAAK,EAAE;AACV,aAAA,CAAC;;AAGF,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,aAAa;gBAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;gBACjD,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,CAAA,EAAG,QAAQ,CAAA,EAAA,EAAK,aAAa,CAAA,CAAE,CAAC;YACtE;iBAAO;;AAEH,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AACjD,gBAAA,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CACzD,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAC7D;gBAChB,IAAI,eAAe,EAAE;oBACjB,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;oBAC1D,eAAe,CAAC,YAAY,CAAC,YAAY,EAAE,CAAA,EAAG,QAAQ,CAAA,EAAA,EAAK,aAAa,CAAA,CAAE,CAAC;gBAC/E;YACJ;AACJ,QAAA,CAAC,CAAC;IACN;8GA7QS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,EAAA,EAAA,SAAA,EAxBjB;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,uBAAuB;AAChC,gBAAA,WAAW,EAAE;AAChB;AACJ,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAyCgB,4BAA4B,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIlC,aAAa,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIb,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjItC,o0HA+EA,EAAA,MAAA,EAAA,CAAA,iuFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDGQ,uBAAuB,2TACvB,wBAAwB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACxB,2BAA2B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAC3B,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,uBAAuB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,cAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,iBAAiB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,wBAAwB,kEAExB,kBAAkB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,kBAAkB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,oBAAoB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,aAAa,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,aAAa,oKACb,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAGV,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBApC/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,IAAA,EACnB;AACF,wBAAA,IAAI,EAAE,YAAY;AAClB,wBAAA,SAAS,EAAE,aAAa;AACxB,wBAAA,mBAAmB,EAAE,YAAY;AACjC,wBAAA,WAAW,EAAE;AAChB,qBAAA,EAAA,aAAA,EAGc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,uBAAuB;AAChC,4BAAA,WAAW,EAAA;AACd;qBACJ,EAAA,OAAA,EACQ;wBACL,uBAAuB;wBACvB,wBAAwB;wBACxB,2BAA2B;wBAC3B,YAAY;wBACZ,uBAAuB;wBACvB,aAAa;wBACb,iBAAiB;wBACjB,wBAAwB;wBACxB,uBAAuB;wBACvB,kBAAkB;wBAClB,kBAAkB;wBAClB,oBAAoB;wBACpB,aAAa;wBACb,aAAa;wBACb;AACH,qBAAA,EAAA,QAAA,EAAA,o0HAAA,EAAA,MAAA,EAAA,CAAA,iuFAAA,CAAA,EAAA;;sBAIA;;sBAIA;;sBAMA;;sBAMA;;sBAIA,eAAe;uBAAC,4BAA4B;;sBAI5C,SAAS;uBAAC,aAAa;;sBAIvB,SAAS;uBAAC,uBAAuB;;;AE1HtC,MAAM,UAAU,GAAG,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,aAAa,EAAE,oBAAoB,CAAC;AAEtG;;;AAGG;MAKU,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,OAAA,EAAA,CAVT,mBAAmB,EAAE,uBAAuB,EAAE,aAAa,EAAE,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAAjF,mBAAmB,EAAE,uBAAuB,EAAE,aAAa,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAUxF,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAVT,mBAAmB,EAA2B,aAAa,EAAE,oBAAoB,EAApB,oBAAoB,CAAA,EAAA,CAAA,CAAA;;2FAUxF,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AACxB,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU;AAC1B,iBAAA;;;AChBD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-breadcrumb.mjs","sources":["../../../../libs/core/breadcrumb/tokens.ts","../../../../libs/core/breadcrumb/breadcrumb-item.component.ts","../../../../libs/core/breadcrumb/breadcrumb.component.ts","../../../../libs/core/breadcrumb/breadcrumb.component.html","../../../../libs/core/breadcrumb/breadcrumb.module.ts","../../../../libs/core/breadcrumb/fundamental-ngx-core-breadcrumb.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FD_BREADCRUMB_ITEM_COMPONENT = new InjectionToken('FdBreadcrumbItemComponent');\nexport const FD_BREADCRUMB_COMPONENT = new InjectionToken('FdBreadcrumbComponent');\n","import { DomPortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { FD_LINK_COMPONENT, LinkComponent } from '@fundamental-ngx/core/link';\nimport { FD_BREADCRUMB_ITEM_COMPONENT } from './tokens';\n\n/**\n * Breadcrumb item directive. Must have child breadcrumb link directives.\n *\n * ```html\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * ```\n */\n@Component({\n selector: 'fd-breadcrumb-item',\n template: `<ng-content></ng-content> <span class=\"fd-breadcrumb__separator\" aria-hidden=\"true\"></span>`,\n host: {\n class: 'fd-breadcrumb__item'\n },\n providers: [\n {\n provide: FD_BREADCRUMB_ITEM_COMPONENT,\n useExisting: BreadcrumbItemComponent\n }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BreadcrumbItemComponent implements AfterViewInit {\n /** @hidden */\n @ContentChild(FD_LINK_COMPONENT)\n breadcrumbLink: LinkComponent;\n\n /** In case there is no link in Item and breadcrumb item is non-interactive, we move whole item content to menu item title */\n breadcrumbItemPortal: DomPortal<Element>;\n\n /** When breadcrumb item has link in it, we are moving link content to menu item title */\n linkContentPortal: DomPortal;\n\n /**\n * Breadcrumb item dom portal.\n */\n portal: DomPortal;\n\n /** @hidden */\n private _attached = false;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef<HTMLElement>) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._attach();\n }\n\n /**\n * Sets breadcrumb item dom portal.\n */\n setPortal(): void {\n if (!this.portal) {\n this.portal = new DomPortal(this.elementRef);\n }\n }\n\n /** @hidden */\n _detach(): void {\n if (!this._attached) {\n return;\n }\n\n if (this.linkContentPortal?.isAttached) {\n this.linkContentPortal?.detach();\n }\n\n if (this.breadcrumbItemPortal?.isAttached) {\n this.breadcrumbItemPortal?.detach();\n }\n\n this._attached = false;\n }\n\n /** @hidden */\n _attach(): void {\n if (this._attached) {\n return;\n }\n\n const contentSpan = this.breadcrumbLink?.contentSpan();\n if (this.breadcrumbLink && contentSpan) {\n this.linkContentPortal = new DomPortal<HTMLElement>(contentSpan.nativeElement);\n }\n\n this.breadcrumbItemPortal = new DomPortal(this.elementRef.nativeElement.firstElementChild as Element);\n this._attached = true;\n }\n}\n","import { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { PortalModule } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { HasElementRef, KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\nimport {\n GlyphMenuAddonDirective,\n MenuAddonDirective,\n MenuComponent,\n MenuInteractiveComponent,\n MenuItemComponent,\n MenuTitleDirective,\n MenuTriggerDirective\n} from '@fundamental-ngx/core/menu';\nimport {\n OverflowExpandDirective,\n OverflowItemRefDirective,\n OverflowLayoutComponent,\n OverflowLayoutItemDirective\n} from '@fundamental-ngx/core/overflow-layout';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { FD_LANGUAGE_SIGNAL, FdTranslatePipe, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { FD_BREADCRUMB_COMPONENT, FD_BREADCRUMB_ITEM_COMPONENT } from './tokens';\n\nexport type BreadcrumbSeparatorStyle =\n | ''\n | 'backslash'\n | 'double-slash'\n | 'double-backslash'\n | 'greater-than'\n | 'double-greater-than';\n\n/**\n * Breadcrumb parent wrapper directive. Must have breadcrumb item child directives.\n *\n * ```html\n * <fd-breadcrumb>\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * </fd-breadcrumb>\n * ```\n */\n@Component({\n selector: 'fd-breadcrumb',\n host: {\n role: 'navigation',\n '[class]': '_cssClass()',\n '[attr.aria-label]': '_ariaLabel',\n '(keydown)': 'onKeydown($event)'\n },\n templateUrl: './breadcrumb.component.html',\n styleUrl: './breadcrumb.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_BREADCRUMB_COMPONENT,\n useExisting: BreadcrumbComponent\n }\n ],\n imports: [\n OverflowLayoutComponent,\n OverflowItemRefDirective,\n OverflowLayoutItemDirective,\n PortalModule,\n OverflowExpandDirective,\n MenuComponent,\n MenuItemComponent,\n MenuInteractiveComponent,\n GlyphMenuAddonDirective,\n MenuAddonDirective,\n MenuTitleDirective,\n MenuTriggerDirective,\n LinkComponent,\n IconComponent,\n FdTranslatePipe\n ]\n})\nexport class BreadcrumbComponent implements AfterViewInit, HasElementRef {\n /** Whether to append items to the overflow dropdown in reverse order. Default is true. */\n @Input()\n reverse = false;\n\n /** Tabindex of the breadcrumb. */\n @Input()\n tabIndex = '0';\n\n /**\n * Event emitted when visible items count is changed.\n */\n @Output()\n visibleItemsCount = new EventEmitter<number>();\n\n /**\n * Event emitted when hidden items count is changed.\n */\n @Output()\n hiddenItemsCount = new EventEmitter<number>();\n\n /** @hidden */\n @ContentChildren(FD_BREADCRUMB_ITEM_COMPONENT)\n private readonly _contentItems: QueryList<BreadcrumbItemComponent>;\n\n /** @hidden */\n @ViewChild(MenuComponent)\n private readonly _menuComponent: MenuComponent;\n\n /** @hidden */\n @ViewChild(OverflowLayoutComponent)\n private readonly _overflowLayout: OverflowLayoutComponent;\n\n /**\n * Separator style for the breadcrumb items.\n * Can be 'backslash' | 'double-slash' | 'double-backslash' | 'greater-than' | 'double-greater-than'\n * Omit for default (slash)\n */\n separatorStyle = input<BreadcrumbSeparatorStyle>('');\n\n /** @hidden */\n _ariaLabel: string;\n\n /**\n * @hidden\n * Array of breadcrumb items.\n */\n _items$ = signal<BreadcrumbItemComponent[]>([]);\n\n /** @hidden */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** @hidden */\n protected readonly placement = computed<Placement>(() => (this._rtlService?.rtl() ? 'bottom-end' : 'bottom-start'));\n\n /** @hidden */\n protected readonly _cssClass = computed(() => {\n const classes = ['fd-breadcrumb'];\n const style = this.separatorStyle();\n if (style) {\n classes.push(`fd-breadcrumb--${style}`);\n }\n return classes.join(' ');\n });\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, {\n optional: true\n });\n\n /** @hidden */\n private readonly _langSignal = inject(FD_LANGUAGE_SIGNAL);\n\n /** @hidden */\n private readonly _translationResolver = new TranslationResolver();\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor() {\n effect(() => {\n const lang = this._langSignal();\n this._ariaLabel = this._translationResolver.resolve(lang, 'coreBreadcrumb.breadcrumbTrailLabel');\n });\n }\n\n /** @hidden */\n onResize(): void {\n this._overflowLayout.triggerRecalculation();\n }\n\n /**\n * Function that handles click, touch, enter and space events.\n */\n itemClicked(breadcrumbItem: BreadcrumbItemComponent, $event: Event): void {\n $event.preventDefault();\n breadcrumbItem.breadcrumbLink.elementRef.nativeElement.click();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setItems();\n\n this._contentItems.changes.subscribe(() => {\n this._setItems();\n this._updateAriaLabels();\n });\n\n // Set menu roles for breadcrumb context\n (this._menuComponent as any)._navContainerRole = 'dialog';\n (this._menuComponent as any)._menuListContainerRole = 'menu';\n\n /**\n * Set initial aria-labels\n * Roving tabindex is applied in _onVisibleItemsCountChange once overflow layout resolves\n */\n this._updateAriaLabels();\n }\n\n /** @hidden */\n _onHiddenChange(isHidden: boolean, breadcrumb: BreadcrumbItemComponent): void {\n if (!isHidden) {\n breadcrumb._detach();\n } else {\n breadcrumb._attach();\n }\n }\n\n /** @hidden */\n _onVisibleItemsCountChange(visibleItemsCount: number): void {\n this.visibleItemsCount.emit(visibleItemsCount);\n\n /**\n * Defer tabindex update: the overflow layout emits this event before detectChanges(),\n * so soft-hidden CSS classes haven't been applied yet.\n * A microtask ensures the DOM is up to date.\n */\n Promise.resolve().then(() => this._updateTabIndexes());\n }\n\n /** @hidden */\n _onHiddenItemsCountChange(hiddenItemsCount: number): void {\n this.hiddenItemsCount.emit(hiddenItemsCount);\n }\n\n /**\n * @hidden\n * Opens the overflow menu on keyboard activation.\n * Bound to keyup (not keydown) so that by the time the menu opens and captures focus,\n * the key has been fully released and no stale key events reach the first menu item.\n */\n protected openOverflowMenu(event: Event): void {\n event.preventDefault();\n if (!this._menuComponent.isOpen()) {\n this._menuComponent.open();\n }\n }\n\n /** @hidden */\n protected onKeydown(event: KeyboardEvent): void {\n if (!KeyUtil.isKeyCode(event, [LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW])) {\n return;\n }\n\n const links = this._getVisibleLinks();\n if (links.length === 0) {\n return;\n }\n\n const activeEl = document.activeElement as HTMLElement;\n const currentIndex = links.indexOf(activeEl);\n if (currentIndex === -1) {\n return;\n }\n\n const isRtl = this._rtlService?.rtl();\n const isNext =\n KeyUtil.isKeyCode(event, DOWN_ARROW) || KeyUtil.isKeyCode(event, isRtl ? LEFT_ARROW : RIGHT_ARROW);\n const nextIndex = isNext ? Math.min(currentIndex + 1, links.length - 1) : Math.max(currentIndex - 1, 0);\n\n if (nextIndex !== currentIndex) {\n // Update roving tabindex: old item becomes unfocusable, new item becomes the tab stop\n links[currentIndex].setAttribute('tabindex', '-1');\n links[nextIndex].setAttribute('tabindex', '0');\n links[nextIndex].focus();\n event.preventDefault();\n }\n }\n\n /**\n * @hidden\n * Returns all focusable breadcrumb elements in DOM order: visible link items,\n * the overflow \"...\" collapse button, and the aria-current page span.\n * Excludes items hidden by the overflow layout (soft-hidden).\n *\n * Uses querySelectorAll rather than Angular queries because:\n * - The overflow \"...\" button is rendered in the component template, not projected\n * as a content child, so it cannot be captured via @ContentChildren.\n * - The aria-current span is user-provided content inside fd-breadcrumb-item and\n * is not an Angular component/directive — there's no token to query it.\n * - querySelectorAll naturally returns elements in DOM (visual) order, which is\n * exactly what arrow key navigation needs, without manual sorting.\n */\n private _getVisibleLinks(): HTMLElement[] {\n const el = this.elementRef.nativeElement;\n return Array.from(\n el.querySelectorAll<HTMLElement>(\n '.fd-overflow-layout__item:not(.fd-overflow-layout__item--soft-hidden) a.fd-link, .fd-overflow-layout__item:not(.fd-overflow-layout__item--soft-hidden) [aria-current], .fd-breadcrumb__collapsed'\n )\n );\n }\n\n /**\n * @hidden\n * Applies roving tabindex: sets all focusable breadcrumb elements to tabindex=\"-1\",\n * then promotes the first visible one to tabindex=\"0\".\n * This ensures Tab enters/exits the breadcrumb as a single stop,\n * and non-href elements (click-only links, aria-current spans) are programmatically focusable.\n */\n private _updateTabIndexes(): void {\n const el = this.elementRef.nativeElement;\n // Set ALL focusable breadcrumb elements to -1 (including hidden ones)\n const allLinks = el.querySelectorAll<HTMLElement>('a.fd-link, [aria-current], .fd-breadcrumb__collapsed');\n allLinks.forEach((link) => link.setAttribute('tabindex', '-1'));\n\n // Promote the first visible one to 0\n const visibleLinks = this._getVisibleLinks();\n if (visibleLinks.length > 0) {\n visibleLinks[0].setAttribute('tabindex', '0');\n }\n }\n\n /** @hidden */\n private _setItems(): void {\n this._contentItems.forEach((item) => item.setPortal());\n this._items$.set(this._contentItems.toArray());\n }\n\n /** @hidden */\n private _updateAriaLabels(): void {\n const items = this._contentItems.toArray();\n const totalCount = items.length;\n const lang = this._langSignal();\n\n items.forEach((item, index) => {\n const position = index + 1;\n const positionLabel = this._translationResolver.resolve(lang, 'coreBreadcrumb.positionLabel', {\n current: position,\n total: totalCount\n });\n\n // Set aria-label on link if present\n if (item.breadcrumbLink) {\n const linkEl = item.breadcrumbLink.elementRef.nativeElement;\n const linkText = linkEl.textContent?.trim() || '';\n linkEl.setAttribute('aria-label', `${linkText}, ${positionLabel}`);\n } else {\n // Set aria-label on direct child span with aria-current if present\n const itemElement = item.elementRef.nativeElement;\n const directChildSpan = Array.from(itemElement.children).find(\n (child) => child.tagName === 'SPAN' && child.hasAttribute('aria-current')\n ) as HTMLElement;\n if (directChildSpan) {\n const spanText = directChildSpan.textContent?.trim() || '';\n directChildSpan.setAttribute('aria-label', `${spanText}, ${positionLabel}`);\n }\n }\n });\n }\n}\n","<fd-overflow-layout\n [reverseHiddenItems]=\"!reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n ariaRole=\"list\"\n>\n @for (breadcrumb of _items$(); track breadcrumb) {\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n }\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items$()\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement()\">\n @for (breadcrumbItem of breadcrumbs; track breadcrumbItem) {\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled() : false\n \"\n >\n <a fd-menu-interactive (click)=\"itemClicked(breadcrumbItem.item, $event)\">\n @if (breadcrumbItem?.item.breadcrumbLink) {\n @if (breadcrumbItem.item.breadcrumbLink.prefixIconName()) {\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink.prefixIconName()\"\n ></fd-menu-addon>\n }\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n @if (breadcrumbItem.item.breadcrumbLink.postfixIconName()) {\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink.postfixIconName()\"\n ></fd-menu-addon>\n }\n } @else {\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n }\n </a>\n </li>\n }\n </fd-menu>\n @if (breadcrumbs.length > 0) {\n <span class=\"fd-breadcrumb__item\" [fdMenuTrigger]=\"menu\" #menuTriggerSpan>\n <a\n fd-link\n [attr.aria-label]=\"('coreBreadcrumb.overflowTitleMore' | fdTranslate)()\"\n aria-haspopup=\"menu\"\n tabindex=\"-1\"\n class=\"fd-breadcrumb__collapsed\"\n (keyup.enter)=\"openOverflowMenu($event)\"\n (keyup.space)=\"openOverflowMenu($event)\"\n (keydown.enter)=\"$event.preventDefault()\"\n (keydown.space)=\"$event.preventDefault()\"\n >\n <fd-icon\n glyph=\"overflow\"\n [title]=\"('coreBreadcrumb.overflowTitleMore' | fdTranslate)()\"\n [ariaLabel]=\"('coreBreadcrumb.overflowTitleMore' | fdTranslate)()\"\n ></fd-icon>\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n <span class=\"fd-breadcrumb__separator\" aria-hidden=\"true\"></span>\n </span>\n }\n </ng-container>\n</fd-overflow-layout>\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { BreadcrumbComponent } from './breadcrumb.component';\n\nconst components = [BreadcrumbComponent, BreadcrumbItemComponent, LinkComponent, ContentDensityModule];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class BreadcrumbModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|