@fundamental-ngx/core 0.61.2 → 0.62.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/fundamental-ngx-core-action-sheet.mjs +3 -2
- package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-avatar-group.mjs +6 -4
- package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-bar.mjs +36 -11
- package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +11 -13
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-busy-indicator.mjs +5 -7
- package/fesm2022/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-calendar.mjs +35 -31
- package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-carousel.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs +6 -4
- package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-date-picker.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime.mjs +7 -13
- package/fesm2022/fundamental-ngx-core-datetime.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dialog.mjs +19 -22
- package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +13 -13
- 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-feed-list-item.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-grid-list.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-info-label.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-info-label.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-link.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-link.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-list.mjs +47 -12
- package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-menu.mjs +5 -5
- package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-box.mjs +10 -10
- package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-strip.mjs +44 -49
- package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +25 -23
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs +6 -8
- package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-nested-list.mjs +22 -21
- package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-notification.mjs +13 -16
- package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-identifier.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-identifier.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-number.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-status.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs +11 -14
- package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-popover.mjs +5 -5
- package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-product-switch.mjs +8 -4
- package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-quick-view.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-quick-view.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +4 -7
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs +10 -11
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-select.mjs +15 -8
- package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-settings.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-settings.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-shellbar.mjs +44 -27
- package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-slider.mjs +6 -6
- package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-split-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-split-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-step-input.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-step-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-switch.mjs +2 -2
- 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-text.mjs +6 -4
- package/fesm2022/fundamental-ngx-core-text.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time-picker.mjs +4 -29
- package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-time.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-title.mjs +7 -4
- package/fesm2022/fundamental-ngx-core-title.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-token.mjs +12 -15
- package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-toolbar.mjs +5 -3
- package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tree.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs +5 -5
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-user-menu.mjs +6 -4
- package/fesm2022/fundamental-ngx-core-user-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
- package/package.json +3 -3
- package/types/fundamental-ngx-core-bar.d.ts +14 -4
- package/types/fundamental-ngx-core-breadcrumb.d.ts +5 -5
- package/types/fundamental-ngx-core-busy-indicator.d.ts +3 -3
- package/types/fundamental-ngx-core-combobox.d.ts +4 -2
- package/types/fundamental-ngx-core-datetime.d.ts +1 -5
- package/types/fundamental-ngx-core-dialog.d.ts +4 -2
- package/types/fundamental-ngx-core-dynamic-page.d.ts +1 -2
- package/types/fundamental-ngx-core-list.d.ts +24 -5
- package/types/fundamental-ngx-core-menu.d.ts +2 -0
- package/types/fundamental-ngx-core-message-box.d.ts +1 -1
- package/types/fundamental-ngx-core-message-strip.d.ts +3 -12
- package/types/fundamental-ngx-core-multi-combobox.d.ts +1 -1
- package/types/fundamental-ngx-core-nested-list.d.ts +10 -10
- package/types/fundamental-ngx-core-notification.d.ts +5 -7
- package/types/fundamental-ngx-core-pagination.d.ts +3 -4
- package/types/fundamental-ngx-core-product-switch.d.ts +3 -0
- package/types/fundamental-ngx-core-rating-indicator.d.ts +3 -2
- package/types/fundamental-ngx-core-segmented-button.d.ts +3 -5
- package/types/fundamental-ngx-core-select.d.ts +5 -1
- package/types/fundamental-ngx-core-shared.d.ts +21 -20
- package/types/fundamental-ngx-core-shellbar.d.ts +7 -1
- package/types/fundamental-ngx-core-slider.d.ts +1 -1
- package/types/fundamental-ngx-core-text.d.ts +3 -1
- package/types/fundamental-ngx-core-time-picker.d.ts +1 -17
- package/types/fundamental-ngx-core-title.d.ts +3 -1
- package/types/fundamental-ngx-core-token.d.ts +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-info-label.mjs","sources":["../../../../libs/core/info-label/info-label.component.ts","../../../../libs/core/info-label/info-label.component.html","../../../../libs/core/info-label/info-label.module.ts","../../../../libs/core/info-label/fundamental-ngx-core-info-label.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n ViewEncapsulation\n} from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\nimport { IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\n\n/** Display type for the info label. */\nexport type LabelType = 'numeric' | 'icon';\n\nconst labelColorRange = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] as const;\n\nconst defaultColor: InfoLabelColor = 7;\n\n/** Valid accent color values for info labels (1-10). */\nexport type InfoLabelColor = (typeof labelColorRange)[number];\n\n/** Accent color input accepting both number and string representations. */\nexport type InfoLabelColorInput = InfoLabelColor | `${InfoLabelColor}`;\n\n@Component({\n selector: 'fd-info-label',\n templateUrl: './info-label.component.html',\n styleUrl: './info-label.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent, FdTranslatePipe],\n host: {\n '[class]': 'cssClass()'\n }\n})\nexport class InfoLabelComponent implements HasElementRef {\n /**\n * The type of the info label.\n * - `'numeric'`: Displays the label as a number with special numeric styling\n * - `'icon'`: Displays an icon alongside the label text\n * - `undefined`: Default text-only label (omit this property for default)\n * @default undefined\n */\n readonly type = input<LabelType>();\n\n /**\n * The icon name to display when `type` is set to `'icon'`.\n * @default null\n */\n readonly glyph = input<string | null>();\n\n /**\n * The icon font family to use for the icon.\n * @default 'SAP-icons'\n */\n readonly font = input<IconFont>('SAP-icons');\n\n /**\n * Accent color of the info label, ranging from 1 to 10.\n * Invalid values default to 7 with a console warning in development mode.\n * @default 7\n */\n readonly color = input<InfoLabelColorInput | null | undefined>(defaultColor);\n\n /**\n * The text content displayed in the info label.\n */\n readonly label = input<string>();\n\n /**\n * Tooltip text displayed on hover.\n * Provides additional context about the label.\n */\n readonly title = input<string>();\n\n /**\n * ARIA label for accessibility.\n * Overrides the visible label for screen readers when provided.\n */\n readonly ariaLabel = input<string | null>();\n\n /**\n * ARIA labelledby for accessibility.\n * Used when the label is provided by another element.\n */\n readonly ariaLabelledBy = input<string | null>();\n\n /**\n * Screen reader only text for additional context.\n * Defaults to translated \"Info Label\" if not provided.\n */\n readonly srText = input<string>();\n\n /** @hidden */\n elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\n /** @hidden Validated color with fallback to default */\n protected readonly validatedColor = computed(() => {\n const numericColor = Number(this.color() ?? defaultColor);\n\n // Check if it's a valid integer in range 1-10\n if (Number.isInteger(numericColor) && numericColor >= 1 && numericColor <= 10) {\n return numericColor;\n }\n\n return defaultColor; // Default fallback for invalid values\n });\n\n /** @hidden */\n protected readonly cssClass = computed(() =>\n [\n 'fd-info-label',\n this.type() ? `fd-info-label--${this.type()}` : '',\n `fd-info-label--accent-color-${this.validatedColor()}`\n ]\n .filter(Boolean)\n .join(' ')\n );\n}\n","@if (glyph()) {\n <fd-icon\n class=\"fd-info-label__icon\"\n [glyph]=\"glyph()\"\n [font]=\"font()\"\n role=\"presentation\"\n aria-hidden=\"true\"\n ></fd-icon>\n}\n@if (label()) {\n <span\n class=\"fd-info-label__text\"\n [attr.title]=\"title()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n >{{ label() }}</span\n >\n}\n<span class=\"fd-info-label__sr-only\">{{ srText() || ('coreInfoLabel.srOnlyText' | fdTranslate) }}</span>\n","import { NgModule } from '@angular/core';\nimport { InfoLabelComponent } from './info-label.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [InfoLabelComponent],\n exports: [InfoLabelComponent]\n})\nexport class InfoLabelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAgBA,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAU;AAEhE,MAAM,YAAY,GAAmB,CAAC;MAmBzB,kBAAkB,CAAA;AAX/B,IAAA,WAAA,GAAA;AAYI;;;;;;AAMG;QACM,IAAA,CAAA,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAa;AAElC;;;AAGG;QACM,IAAA,CAAA,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAiB;AAEvC;;;AAGG;AACM,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAW,WAAW,gDAAC;AAE5C;;;;AAIG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAyC,YAAY,iDAAC;AAE5E;;AAEG;QACM,IAAA,CAAA,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAEhC;;;AAGG;QACM,IAAA,CAAA,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAEhC;;;AAGG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAiB;AAE3C;;;AAGG;QACM,IAAA,CAAA,cAAc,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAiB;AAEhD;;;AAGG;QACM,IAAA,CAAA,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;;AAGjC,QAAA,IAAA,CAAA,UAAU,GAA4B,MAAM,CAAC,UAAU,CAAC;;AAGrC,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;YAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,YAAY,CAAC;;AAGzD,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,IAAI,EAAE,EAAE;AAC3E,gBAAA,OAAO,YAAY;YACvB;YAEA,OAAO,YAAY,CAAC;AACxB,QAAA,CAAC,0DAAC;;AAGiB,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MACnC;YACI,eAAe;AACf,YAAA,IAAI,CAAC,IAAI,EAAE,GAAG,CAAA,eAAA,EAAkB,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,GAAG,EAAE;AAClD,YAAA,CAAA,4BAAA,EAA+B,IAAI,CAAC,cAAc,EAAE,CAAA;AACvD;aACI,MAAM,CAAC,OAAO;AACd,aAAA,IAAI,CAAC,GAAG,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CACjB;AACJ,IAAA;8GAnFY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,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,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrC/B,
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-info-label.mjs","sources":["../../../../libs/core/info-label/info-label.component.ts","../../../../libs/core/info-label/info-label.component.html","../../../../libs/core/info-label/info-label.module.ts","../../../../libs/core/info-label/fundamental-ngx-core-info-label.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n ViewEncapsulation\n} from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\nimport { IconComponent, IconFont } from '@fundamental-ngx/core/icon';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\n\n/** Display type for the info label. */\nexport type LabelType = 'numeric' | 'icon';\n\nconst labelColorRange = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] as const;\n\nconst defaultColor: InfoLabelColor = 7;\n\n/** Valid accent color values for info labels (1-10). */\nexport type InfoLabelColor = (typeof labelColorRange)[number];\n\n/** Accent color input accepting both number and string representations. */\nexport type InfoLabelColorInput = InfoLabelColor | `${InfoLabelColor}`;\n\n@Component({\n selector: 'fd-info-label',\n templateUrl: './info-label.component.html',\n styleUrl: './info-label.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent, FdTranslatePipe],\n host: {\n '[class]': 'cssClass()'\n }\n})\nexport class InfoLabelComponent implements HasElementRef {\n /**\n * The type of the info label.\n * - `'numeric'`: Displays the label as a number with special numeric styling\n * - `'icon'`: Displays an icon alongside the label text\n * - `undefined`: Default text-only label (omit this property for default)\n * @default undefined\n */\n readonly type = input<LabelType>();\n\n /**\n * The icon name to display when `type` is set to `'icon'`.\n * @default null\n */\n readonly glyph = input<string | null>();\n\n /**\n * The icon font family to use for the icon.\n * @default 'SAP-icons'\n */\n readonly font = input<IconFont>('SAP-icons');\n\n /**\n * Accent color of the info label, ranging from 1 to 10.\n * Invalid values default to 7 with a console warning in development mode.\n * @default 7\n */\n readonly color = input<InfoLabelColorInput | null | undefined>(defaultColor);\n\n /**\n * The text content displayed in the info label.\n */\n readonly label = input<string>();\n\n /**\n * Tooltip text displayed on hover.\n * Provides additional context about the label.\n */\n readonly title = input<string>();\n\n /**\n * ARIA label for accessibility.\n * Overrides the visible label for screen readers when provided.\n */\n readonly ariaLabel = input<string | null>();\n\n /**\n * ARIA labelledby for accessibility.\n * Used when the label is provided by another element.\n */\n readonly ariaLabelledBy = input<string | null>();\n\n /**\n * Screen reader only text for additional context.\n * Defaults to translated \"Info Label\" if not provided.\n */\n readonly srText = input<string>();\n\n /** @hidden */\n elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\n /** @hidden Validated color with fallback to default */\n protected readonly validatedColor = computed(() => {\n const numericColor = Number(this.color() ?? defaultColor);\n\n // Check if it's a valid integer in range 1-10\n if (Number.isInteger(numericColor) && numericColor >= 1 && numericColor <= 10) {\n return numericColor;\n }\n\n return defaultColor; // Default fallback for invalid values\n });\n\n /** @hidden */\n protected readonly cssClass = computed(() =>\n [\n 'fd-info-label',\n this.type() ? `fd-info-label--${this.type()}` : '',\n `fd-info-label--accent-color-${this.validatedColor()}`\n ]\n .filter(Boolean)\n .join(' ')\n );\n}\n","@if (glyph()) {\n <fd-icon\n class=\"fd-info-label__icon\"\n [glyph]=\"glyph()\"\n [font]=\"font()\"\n role=\"presentation\"\n aria-hidden=\"true\"\n ></fd-icon>\n}\n@if (label()) {\n <span\n class=\"fd-info-label__text\"\n [attr.title]=\"title()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n >{{ label() }}</span\n >\n}\n<span class=\"fd-info-label__sr-only\">{{ srText() || ('coreInfoLabel.srOnlyText' | fdTranslate)() }}</span>\n","import { NgModule } from '@angular/core';\nimport { InfoLabelComponent } from './info-label.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [InfoLabelComponent],\n exports: [InfoLabelComponent]\n})\nexport class InfoLabelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -110,7 +110,7 @@ class LinkComponent {
|
|
|
110
110
|
[new Optional(), new Self(), RouterLink]
|
|
111
111
|
]
|
|
112
112
|
}
|
|
113
|
-
], queries: [{ propertyName: "iconComponents", predicate: FD_ICON_COMPONENT, isSignal: true }], viewQueries: [{ propertyName: "contentSpan", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (prefixPortal()) {\n <span class=\"fd-link__icon-container\" role=\"presentation\" aria-hidden=\"true\">\n <ng-container *cdkPortalOutlet=\"prefixPortal()\"></ng-container>\n </span>\n}\n<span class=\"fd-link__content\" #content [class.fd-link__content--icon-line-height]=\"postfixPortal() || prefixPortal()\">\n <ng-content></ng-content>\n</span>\n@if (postfixPortal()) {\n <span class=\"fd-link__icon-container\" role=\"presentation\" aria-hidden=\"true\">\n <ng-container *cdkPortalOutlet=\"postfixPortal()\"></ng-container>\n </span>\n}\n@if (emphasized()) {\n <span class=\"fd-link__sr-only\">{{ 'coreLink.emphasized' | fdTranslate }}</span>\n}\n@if (subtle()) {\n <span class=\"fd-link__sr-only\">{{ 'coreLink.subtle' | fdTranslate }}</span>\n}\n", styles: [".fd-link{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapLinkColor);cursor:pointer;display:var(--fdLink_Display, inline-block);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;text-shadow:var(--sapContent_TextShadow);-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:inherit;line-height:var(--fdLink_Line_Height, 1.125rem);-webkit-text-decoration:var(--fdLink_Text_Decoration, none);text-decoration:var(--fdLink_Text_Decoration, none);text-underline-offset:.125rem;-webkit-transition:all .125s ease-in;transition:all .125s ease-in}.fd-link:after,.fd-link:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-link__content{-webkit-text-decoration:var(--fdLink_Text_Content_Decoration, none);text-decoration:var(--fdLink_Text_Content_Decoration, none)}.fd-link.is-hover,.fd-link:hover{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Hover,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Hover,none)}.fd-link.is-focus,.fd-link:focus{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Focus,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Focus,none)}.fd-link.is-active,.fd-link:active{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Active,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Active,none)}.fd-link.is-disabled,.fd-link:disabled,.fd-link[aria-disabled=true]{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Disabled,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Disabled,none)}.fd-link--subtle{--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Subtle,none);--fdLink_Text_Content_Decoration_Hover:var(--fdLink_Text_Content_Decoration_Subtle_Hover,none);--fdLink_Text_Content_Decoration_Active:var(--fdLink_Text_Content_Decoration_Subtle_Active,none);--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Subtle,none);--fdLink_Text_Decoration_Hover:var(--fdLink_Text_Decoration_Subtle_Hover,none);--fdLink_Text_Decoration_Active:var(--fdLink_Text_Decoration_Subtle_Active,none)}.fd-link--undecorated{--fdLink_Text_Decoration:none;--fdLink_Text_Decoration_Subtle:none;--fdLink_Text_Decoration_Subtle_Hover:none;--fdLink_Text_Decoration_Subtle_Active:none;--fdLink_Text_Decoration_Hover:none;--fdLink_Text_Decoration_Focus:none;--fdLink_Text_Decoration_Active:none;--fdLink_Text_Decoration_Visited:none;--fdLink_Text_Decoration_Disabled:none;--fdLink_Text_Content_Decoration:none;--fdLink_Text_Content_Decoration_Subtle:none;--fdLink_Text_Content_Decoration_Subtle_Hover:none;--fdLink_Text_Content_Decoration_Subtle_Active:none;--fdLink_Text_Content_Decoration_Hover:none;--fdLink_Text_Content_Decoration_Focus:none;--fdLink_Text_Content_Decoration_Active:none;--fdLink_Text_Content_Decoration_Visited:none;--fdLink_Text_Content_Decoration_Disabled:none}.fd-link--emphasized{font-family:var(--sapFontBoldFamily)}.fd-link:visited{color:var(--sapLink_Visited_Color)}.fd-link.is-hover,.fd-link:hover{color:var(--sapLink_Hover_Color)}.fd-link.is-focus,.fd-link:focus{background-color:var(--fdLink_Focus_Background);border-radius:var(--fdLink_Focus_Border_Radius);-webkit-box-shadow:none;box-shadow:none;color:var(--fdLink_Text_Focus_Color);outline:var(--fdLink_Hover_Outline_Color) var(--fdLink_Hover_Outline_Style) var(--fdLink_Hover_Outline_Width);outline-offset:var(--fdLink_Hover_Outline_Offset);text-shadow:var(--fdLink_Focus_Text_Shadow)}.fd-link.is-active,.fd-link:active{color:var(--sapLink_Active_Color)}.fd-link.is-active.is-focus,.fd-link.is-active:focus,.fd-link:active.is-focus,.fd-link:active:focus{background-color:transparent;z-index:5}.fd-link--inverted{text-shadow:none}.fd-link--inverted,.fd-link--inverted.is-hover,.fd-link--inverted:hover{color:var(--sapLink_InvertedColor)}.fd-link--inverted.is-focus,.fd-link--inverted:focus{outline-color:var(--sapContent_ContrastFocusColor);z-index:5}.fd-link--subtle{color:var(--sapLink_SubtleColor)}.fd-link.is-disabled,.fd-link:disabled,.fd-link[aria-disabled=true]{color:var(--sapLinkColor);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-link>img{vertical-align:bottom}.fd-link [class*=sap-icon],.fd-link[class*=sap-icon]{color:var(--sapLinkColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;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}.fd-link [class*=sap-icon]:first-child,.fd-link[class*=sap-icon]:first-child{-webkit-margin-end:var(--fdLink_Icon_Spacing, 0);margin-inline-end:var(--fdLink_Icon_Spacing, 0)}.fd-link [class*=sap-icon]:last-child,.fd-link[class*=sap-icon]:last-child{-webkit-margin-start:var(--fdLink_Icon_Spacing, 0);margin-inline-start:var(--fdLink_Icon_Spacing, 0)}.fd-link.is-hover [class*=sap-icon],.fd-link.is-hover[class*=sap-icon],.fd-link:hover [class*=sap-icon],.fd-link:hover[class*=sap-icon]{color:var(--sapLink_Hover_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Hover);text-decoration:var(--fdLink_Text_Decoration_Hover)}.fd-link.is-focus,.fd-link:focus{z-index:5}.fd-link.is-focus [class*=sap-icon],.fd-link.is-focus[class*=sap-icon],.fd-link:focus [class*=sap-icon],.fd-link:focus[class*=sap-icon]{color:var(--fdLink_Text_Focus_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Focus);text-decoration:var(--fdLink_Text_Decoration_Focus)}.fd-link.is-active [class*=sap-icon],.fd-link.is-active[class*=sap-icon],.fd-link:active [class*=sap-icon],.fd-link:active[class*=sap-icon]{color:var(--sapLink_Active_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Active);text-decoration:var(--fdLink_Text_Decoration_Active)}.fd-link:visited:not(:focus) [class*=sap-icon],.fd-link:visited:not(:focus)[class*=sap-icon]{color:var(--sapLink_Visited_Color)}.fd-link__content--icon-line-height{line-height:var(--sapContent_LineHeight)}.fd-link__icon-container{display:inline-flex;justify-content:center;align-items:center}.fd-link__icon-container:first-child{margin-inline-end:var(--fdLink_Icon_Spacing, 0)}.fd-link__icon-container:last-child{margin-inline-start:var(--fdLink_Icon_Spacing, 0)}.fd-link--touch-target{--fdLink_Line_Height: 1.5rem}.fd-link__sr-only{position:absolute;clip:rect(0 0 0 0);height:1px;width:1px;border:0;margin-inline:-1px;margin-block:-1px;padding-inline:0;padding-block:0;overflow:hidden;white-space:nowrap}\n/*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
113
|
+
], queries: [{ propertyName: "iconComponents", predicate: FD_ICON_COMPONENT, isSignal: true }], viewQueries: [{ propertyName: "contentSpan", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (prefixPortal()) {\n <span class=\"fd-link__icon-container\" role=\"presentation\" aria-hidden=\"true\">\n <ng-container *cdkPortalOutlet=\"prefixPortal()\"></ng-container>\n </span>\n}\n<span class=\"fd-link__content\" #content [class.fd-link__content--icon-line-height]=\"postfixPortal() || prefixPortal()\">\n <ng-content></ng-content>\n</span>\n@if (postfixPortal()) {\n <span class=\"fd-link__icon-container\" role=\"presentation\" aria-hidden=\"true\">\n <ng-container *cdkPortalOutlet=\"postfixPortal()\"></ng-container>\n </span>\n}\n@if (emphasized()) {\n <span class=\"fd-link__sr-only\">{{ ('coreLink.emphasized' | fdTranslate)() }}</span>\n}\n@if (subtle()) {\n <span class=\"fd-link__sr-only\">{{ ('coreLink.subtle' | fdTranslate)() }}</span>\n}\n", styles: [".fd-link{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapLinkColor);cursor:pointer;display:var(--fdLink_Display, inline-block);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;text-shadow:var(--sapContent_TextShadow);-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:inherit;line-height:var(--fdLink_Line_Height, 1.125rem);-webkit-text-decoration:var(--fdLink_Text_Decoration, none);text-decoration:var(--fdLink_Text_Decoration, none);text-underline-offset:.125rem;-webkit-transition:all .125s ease-in;transition:all .125s ease-in}.fd-link:after,.fd-link:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-link__content{-webkit-text-decoration:var(--fdLink_Text_Content_Decoration, none);text-decoration:var(--fdLink_Text_Content_Decoration, none)}.fd-link.is-hover,.fd-link:hover{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Hover,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Hover,none)}.fd-link.is-focus,.fd-link:focus{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Focus,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Focus,none)}.fd-link.is-active,.fd-link:active{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Active,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Active,none)}.fd-link.is-disabled,.fd-link:disabled,.fd-link[aria-disabled=true]{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Disabled,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Disabled,none)}.fd-link--subtle{--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Subtle,none);--fdLink_Text_Content_Decoration_Hover:var(--fdLink_Text_Content_Decoration_Subtle_Hover,none);--fdLink_Text_Content_Decoration_Active:var(--fdLink_Text_Content_Decoration_Subtle_Active,none);--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Subtle,none);--fdLink_Text_Decoration_Hover:var(--fdLink_Text_Decoration_Subtle_Hover,none);--fdLink_Text_Decoration_Active:var(--fdLink_Text_Decoration_Subtle_Active,none)}.fd-link--undecorated{--fdLink_Text_Decoration:none;--fdLink_Text_Decoration_Subtle:none;--fdLink_Text_Decoration_Subtle_Hover:none;--fdLink_Text_Decoration_Subtle_Active:none;--fdLink_Text_Decoration_Hover:none;--fdLink_Text_Decoration_Focus:none;--fdLink_Text_Decoration_Active:none;--fdLink_Text_Decoration_Visited:none;--fdLink_Text_Decoration_Disabled:none;--fdLink_Text_Content_Decoration:none;--fdLink_Text_Content_Decoration_Subtle:none;--fdLink_Text_Content_Decoration_Subtle_Hover:none;--fdLink_Text_Content_Decoration_Subtle_Active:none;--fdLink_Text_Content_Decoration_Hover:none;--fdLink_Text_Content_Decoration_Focus:none;--fdLink_Text_Content_Decoration_Active:none;--fdLink_Text_Content_Decoration_Visited:none;--fdLink_Text_Content_Decoration_Disabled:none}.fd-link--emphasized{font-family:var(--sapFontBoldFamily)}.fd-link:visited{color:var(--sapLink_Visited_Color)}.fd-link.is-hover,.fd-link:hover{color:var(--sapLink_Hover_Color)}.fd-link.is-focus,.fd-link:focus{background-color:var(--fdLink_Focus_Background);border-radius:var(--fdLink_Focus_Border_Radius);-webkit-box-shadow:none;box-shadow:none;color:var(--fdLink_Text_Focus_Color);outline:var(--fdLink_Hover_Outline_Color) var(--fdLink_Hover_Outline_Style) var(--fdLink_Hover_Outline_Width);outline-offset:var(--fdLink_Hover_Outline_Offset);text-shadow:var(--fdLink_Focus_Text_Shadow)}.fd-link.is-active,.fd-link:active{color:var(--sapLink_Active_Color)}.fd-link.is-active.is-focus,.fd-link.is-active:focus,.fd-link:active.is-focus,.fd-link:active:focus{background-color:transparent;z-index:5}.fd-link--inverted{text-shadow:none}.fd-link--inverted,.fd-link--inverted.is-hover,.fd-link--inverted:hover{color:var(--sapLink_InvertedColor)}.fd-link--inverted.is-focus,.fd-link--inverted:focus{outline-color:var(--sapContent_ContrastFocusColor);z-index:5}.fd-link--subtle{color:var(--sapLink_SubtleColor)}.fd-link.is-disabled,.fd-link:disabled,.fd-link[aria-disabled=true]{color:var(--sapLinkColor);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-link>img{vertical-align:bottom}.fd-link [class*=sap-icon],.fd-link[class*=sap-icon]{color:var(--sapLinkColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;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}.fd-link [class*=sap-icon]:first-child,.fd-link[class*=sap-icon]:first-child{-webkit-margin-end:var(--fdLink_Icon_Spacing, 0);margin-inline-end:var(--fdLink_Icon_Spacing, 0)}.fd-link [class*=sap-icon]:last-child,.fd-link[class*=sap-icon]:last-child{-webkit-margin-start:var(--fdLink_Icon_Spacing, 0);margin-inline-start:var(--fdLink_Icon_Spacing, 0)}.fd-link.is-hover [class*=sap-icon],.fd-link.is-hover[class*=sap-icon],.fd-link:hover [class*=sap-icon],.fd-link:hover[class*=sap-icon]{color:var(--sapLink_Hover_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Hover);text-decoration:var(--fdLink_Text_Decoration_Hover)}.fd-link.is-focus,.fd-link:focus{z-index:5}.fd-link.is-focus [class*=sap-icon],.fd-link.is-focus[class*=sap-icon],.fd-link:focus [class*=sap-icon],.fd-link:focus[class*=sap-icon]{color:var(--fdLink_Text_Focus_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Focus);text-decoration:var(--fdLink_Text_Decoration_Focus)}.fd-link.is-active [class*=sap-icon],.fd-link.is-active[class*=sap-icon],.fd-link:active [class*=sap-icon],.fd-link:active[class*=sap-icon]{color:var(--sapLink_Active_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Active);text-decoration:var(--fdLink_Text_Decoration_Active)}.fd-link:visited:not(:focus) [class*=sap-icon],.fd-link:visited:not(:focus)[class*=sap-icon]{color:var(--sapLink_Visited_Color)}.fd-link__content--icon-line-height{line-height:var(--sapContent_LineHeight)}.fd-link__icon-container{display:inline-flex;justify-content:center;align-items:center}.fd-link__icon-container:first-child{margin-inline-end:var(--fdLink_Icon_Spacing, 0)}.fd-link__icon-container:last-child{margin-inline-start:var(--fdLink_Icon_Spacing, 0)}.fd-link--touch-target{--fdLink_Line_Height: 1.5rem}.fd-link__sr-only{position:absolute;clip:rect(0 0 0 0);height:1px;width:1px;border:0;margin-inline:-1px;margin-block:-1px;padding-inline:0;padding-block:0;overflow:hidden;white-space:nowrap}\n/*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
114
114
|
}
|
|
115
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: LinkComponent, decorators: [{
|
|
116
116
|
type: Component,
|
|
@@ -136,7 +136,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
136
136
|
[new Optional(), new Self(), RouterLink]
|
|
137
137
|
]
|
|
138
138
|
}
|
|
139
|
-
], imports: [PortalModule, FdTranslatePipe], template: "@if (prefixPortal()) {\n <span class=\"fd-link__icon-container\" role=\"presentation\" aria-hidden=\"true\">\n <ng-container *cdkPortalOutlet=\"prefixPortal()\"></ng-container>\n </span>\n}\n<span class=\"fd-link__content\" #content [class.fd-link__content--icon-line-height]=\"postfixPortal() || prefixPortal()\">\n <ng-content></ng-content>\n</span>\n@if (postfixPortal()) {\n <span class=\"fd-link__icon-container\" role=\"presentation\" aria-hidden=\"true\">\n <ng-container *cdkPortalOutlet=\"postfixPortal()\"></ng-container>\n </span>\n}\n@if (emphasized()) {\n <span class=\"fd-link__sr-only\">{{ 'coreLink.emphasized' | fdTranslate }}</span>\n}\n@if (subtle()) {\n <span class=\"fd-link__sr-only\">{{ 'coreLink.subtle' | fdTranslate }}</span>\n}\n", styles: [".fd-link{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapLinkColor);cursor:pointer;display:var(--fdLink_Display, inline-block);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;text-shadow:var(--sapContent_TextShadow);-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:inherit;line-height:var(--fdLink_Line_Height, 1.125rem);-webkit-text-decoration:var(--fdLink_Text_Decoration, none);text-decoration:var(--fdLink_Text_Decoration, none);text-underline-offset:.125rem;-webkit-transition:all .125s ease-in;transition:all .125s ease-in}.fd-link:after,.fd-link:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-link__content{-webkit-text-decoration:var(--fdLink_Text_Content_Decoration, none);text-decoration:var(--fdLink_Text_Content_Decoration, none)}.fd-link.is-hover,.fd-link:hover{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Hover,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Hover,none)}.fd-link.is-focus,.fd-link:focus{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Focus,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Focus,none)}.fd-link.is-active,.fd-link:active{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Active,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Active,none)}.fd-link.is-disabled,.fd-link:disabled,.fd-link[aria-disabled=true]{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Disabled,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Disabled,none)}.fd-link--subtle{--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Subtle,none);--fdLink_Text_Content_Decoration_Hover:var(--fdLink_Text_Content_Decoration_Subtle_Hover,none);--fdLink_Text_Content_Decoration_Active:var(--fdLink_Text_Content_Decoration_Subtle_Active,none);--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Subtle,none);--fdLink_Text_Decoration_Hover:var(--fdLink_Text_Decoration_Subtle_Hover,none);--fdLink_Text_Decoration_Active:var(--fdLink_Text_Decoration_Subtle_Active,none)}.fd-link--undecorated{--fdLink_Text_Decoration:none;--fdLink_Text_Decoration_Subtle:none;--fdLink_Text_Decoration_Subtle_Hover:none;--fdLink_Text_Decoration_Subtle_Active:none;--fdLink_Text_Decoration_Hover:none;--fdLink_Text_Decoration_Focus:none;--fdLink_Text_Decoration_Active:none;--fdLink_Text_Decoration_Visited:none;--fdLink_Text_Decoration_Disabled:none;--fdLink_Text_Content_Decoration:none;--fdLink_Text_Content_Decoration_Subtle:none;--fdLink_Text_Content_Decoration_Subtle_Hover:none;--fdLink_Text_Content_Decoration_Subtle_Active:none;--fdLink_Text_Content_Decoration_Hover:none;--fdLink_Text_Content_Decoration_Focus:none;--fdLink_Text_Content_Decoration_Active:none;--fdLink_Text_Content_Decoration_Visited:none;--fdLink_Text_Content_Decoration_Disabled:none}.fd-link--emphasized{font-family:var(--sapFontBoldFamily)}.fd-link:visited{color:var(--sapLink_Visited_Color)}.fd-link.is-hover,.fd-link:hover{color:var(--sapLink_Hover_Color)}.fd-link.is-focus,.fd-link:focus{background-color:var(--fdLink_Focus_Background);border-radius:var(--fdLink_Focus_Border_Radius);-webkit-box-shadow:none;box-shadow:none;color:var(--fdLink_Text_Focus_Color);outline:var(--fdLink_Hover_Outline_Color) var(--fdLink_Hover_Outline_Style) var(--fdLink_Hover_Outline_Width);outline-offset:var(--fdLink_Hover_Outline_Offset);text-shadow:var(--fdLink_Focus_Text_Shadow)}.fd-link.is-active,.fd-link:active{color:var(--sapLink_Active_Color)}.fd-link.is-active.is-focus,.fd-link.is-active:focus,.fd-link:active.is-focus,.fd-link:active:focus{background-color:transparent;z-index:5}.fd-link--inverted{text-shadow:none}.fd-link--inverted,.fd-link--inverted.is-hover,.fd-link--inverted:hover{color:var(--sapLink_InvertedColor)}.fd-link--inverted.is-focus,.fd-link--inverted:focus{outline-color:var(--sapContent_ContrastFocusColor);z-index:5}.fd-link--subtle{color:var(--sapLink_SubtleColor)}.fd-link.is-disabled,.fd-link:disabled,.fd-link[aria-disabled=true]{color:var(--sapLinkColor);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-link>img{vertical-align:bottom}.fd-link [class*=sap-icon],.fd-link[class*=sap-icon]{color:var(--sapLinkColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;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}.fd-link [class*=sap-icon]:first-child,.fd-link[class*=sap-icon]:first-child{-webkit-margin-end:var(--fdLink_Icon_Spacing, 0);margin-inline-end:var(--fdLink_Icon_Spacing, 0)}.fd-link [class*=sap-icon]:last-child,.fd-link[class*=sap-icon]:last-child{-webkit-margin-start:var(--fdLink_Icon_Spacing, 0);margin-inline-start:var(--fdLink_Icon_Spacing, 0)}.fd-link.is-hover [class*=sap-icon],.fd-link.is-hover[class*=sap-icon],.fd-link:hover [class*=sap-icon],.fd-link:hover[class*=sap-icon]{color:var(--sapLink_Hover_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Hover);text-decoration:var(--fdLink_Text_Decoration_Hover)}.fd-link.is-focus,.fd-link:focus{z-index:5}.fd-link.is-focus [class*=sap-icon],.fd-link.is-focus[class*=sap-icon],.fd-link:focus [class*=sap-icon],.fd-link:focus[class*=sap-icon]{color:var(--fdLink_Text_Focus_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Focus);text-decoration:var(--fdLink_Text_Decoration_Focus)}.fd-link.is-active [class*=sap-icon],.fd-link.is-active[class*=sap-icon],.fd-link:active [class*=sap-icon],.fd-link:active[class*=sap-icon]{color:var(--sapLink_Active_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Active);text-decoration:var(--fdLink_Text_Decoration_Active)}.fd-link:visited:not(:focus) [class*=sap-icon],.fd-link:visited:not(:focus)[class*=sap-icon]{color:var(--sapLink_Visited_Color)}.fd-link__content--icon-line-height{line-height:var(--sapContent_LineHeight)}.fd-link__icon-container{display:inline-flex;justify-content:center;align-items:center}.fd-link__icon-container:first-child{margin-inline-end:var(--fdLink_Icon_Spacing, 0)}.fd-link__icon-container:last-child{margin-inline-start:var(--fdLink_Icon_Spacing, 0)}.fd-link--touch-target{--fdLink_Line_Height: 1.5rem}.fd-link__sr-only{position:absolute;clip:rect(0 0 0 0);height:1px;width:1px;border:0;margin-inline:-1px;margin-block:-1px;padding-inline:0;padding-block:0;overflow:hidden;white-space:nowrap}\n/*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"] }]
|
|
139
|
+
], imports: [PortalModule, FdTranslatePipe], template: "@if (prefixPortal()) {\n <span class=\"fd-link__icon-container\" role=\"presentation\" aria-hidden=\"true\">\n <ng-container *cdkPortalOutlet=\"prefixPortal()\"></ng-container>\n </span>\n}\n<span class=\"fd-link__content\" #content [class.fd-link__content--icon-line-height]=\"postfixPortal() || prefixPortal()\">\n <ng-content></ng-content>\n</span>\n@if (postfixPortal()) {\n <span class=\"fd-link__icon-container\" role=\"presentation\" aria-hidden=\"true\">\n <ng-container *cdkPortalOutlet=\"postfixPortal()\"></ng-container>\n </span>\n}\n@if (emphasized()) {\n <span class=\"fd-link__sr-only\">{{ ('coreLink.emphasized' | fdTranslate)() }}</span>\n}\n@if (subtle()) {\n <span class=\"fd-link__sr-only\">{{ ('coreLink.subtle' | fdTranslate)() }}</span>\n}\n", styles: [".fd-link{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapLinkColor);cursor:pointer;display:var(--fdLink_Display, inline-block);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;text-shadow:var(--sapContent_TextShadow);-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:inherit;line-height:var(--fdLink_Line_Height, 1.125rem);-webkit-text-decoration:var(--fdLink_Text_Decoration, none);text-decoration:var(--fdLink_Text_Decoration, none);text-underline-offset:.125rem;-webkit-transition:all .125s ease-in;transition:all .125s ease-in}.fd-link:after,.fd-link:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-link__content{-webkit-text-decoration:var(--fdLink_Text_Content_Decoration, none);text-decoration:var(--fdLink_Text_Content_Decoration, none)}.fd-link.is-hover,.fd-link:hover{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Hover,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Hover,none)}.fd-link.is-focus,.fd-link:focus{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Focus,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Focus,none)}.fd-link.is-active,.fd-link:active{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Active,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Active,none)}.fd-link.is-disabled,.fd-link:disabled,.fd-link[aria-disabled=true]{--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Disabled,none);--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Disabled,none)}.fd-link--subtle{--fdLink_Text_Content_Decoration:var(--fdLink_Text_Content_Decoration_Subtle,none);--fdLink_Text_Content_Decoration_Hover:var(--fdLink_Text_Content_Decoration_Subtle_Hover,none);--fdLink_Text_Content_Decoration_Active:var(--fdLink_Text_Content_Decoration_Subtle_Active,none);--fdLink_Text_Decoration:var(--fdLink_Text_Decoration_Subtle,none);--fdLink_Text_Decoration_Hover:var(--fdLink_Text_Decoration_Subtle_Hover,none);--fdLink_Text_Decoration_Active:var(--fdLink_Text_Decoration_Subtle_Active,none)}.fd-link--undecorated{--fdLink_Text_Decoration:none;--fdLink_Text_Decoration_Subtle:none;--fdLink_Text_Decoration_Subtle_Hover:none;--fdLink_Text_Decoration_Subtle_Active:none;--fdLink_Text_Decoration_Hover:none;--fdLink_Text_Decoration_Focus:none;--fdLink_Text_Decoration_Active:none;--fdLink_Text_Decoration_Visited:none;--fdLink_Text_Decoration_Disabled:none;--fdLink_Text_Content_Decoration:none;--fdLink_Text_Content_Decoration_Subtle:none;--fdLink_Text_Content_Decoration_Subtle_Hover:none;--fdLink_Text_Content_Decoration_Subtle_Active:none;--fdLink_Text_Content_Decoration_Hover:none;--fdLink_Text_Content_Decoration_Focus:none;--fdLink_Text_Content_Decoration_Active:none;--fdLink_Text_Content_Decoration_Visited:none;--fdLink_Text_Content_Decoration_Disabled:none}.fd-link--emphasized{font-family:var(--sapFontBoldFamily)}.fd-link:visited{color:var(--sapLink_Visited_Color)}.fd-link.is-hover,.fd-link:hover{color:var(--sapLink_Hover_Color)}.fd-link.is-focus,.fd-link:focus{background-color:var(--fdLink_Focus_Background);border-radius:var(--fdLink_Focus_Border_Radius);-webkit-box-shadow:none;box-shadow:none;color:var(--fdLink_Text_Focus_Color);outline:var(--fdLink_Hover_Outline_Color) var(--fdLink_Hover_Outline_Style) var(--fdLink_Hover_Outline_Width);outline-offset:var(--fdLink_Hover_Outline_Offset);text-shadow:var(--fdLink_Focus_Text_Shadow)}.fd-link.is-active,.fd-link:active{color:var(--sapLink_Active_Color)}.fd-link.is-active.is-focus,.fd-link.is-active:focus,.fd-link:active.is-focus,.fd-link:active:focus{background-color:transparent;z-index:5}.fd-link--inverted{text-shadow:none}.fd-link--inverted,.fd-link--inverted.is-hover,.fd-link--inverted:hover{color:var(--sapLink_InvertedColor)}.fd-link--inverted.is-focus,.fd-link--inverted:focus{outline-color:var(--sapContent_ContrastFocusColor);z-index:5}.fd-link--subtle{color:var(--sapLink_SubtleColor)}.fd-link.is-disabled,.fd-link:disabled,.fd-link[aria-disabled=true]{color:var(--sapLinkColor);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-link>img{vertical-align:bottom}.fd-link [class*=sap-icon],.fd-link[class*=sap-icon]{color:var(--sapLinkColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;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}.fd-link [class*=sap-icon]:first-child,.fd-link[class*=sap-icon]:first-child{-webkit-margin-end:var(--fdLink_Icon_Spacing, 0);margin-inline-end:var(--fdLink_Icon_Spacing, 0)}.fd-link [class*=sap-icon]:last-child,.fd-link[class*=sap-icon]:last-child{-webkit-margin-start:var(--fdLink_Icon_Spacing, 0);margin-inline-start:var(--fdLink_Icon_Spacing, 0)}.fd-link.is-hover [class*=sap-icon],.fd-link.is-hover[class*=sap-icon],.fd-link:hover [class*=sap-icon],.fd-link:hover[class*=sap-icon]{color:var(--sapLink_Hover_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Hover);text-decoration:var(--fdLink_Text_Decoration_Hover)}.fd-link.is-focus,.fd-link:focus{z-index:5}.fd-link.is-focus [class*=sap-icon],.fd-link.is-focus[class*=sap-icon],.fd-link:focus [class*=sap-icon],.fd-link:focus[class*=sap-icon]{color:var(--fdLink_Text_Focus_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Focus);text-decoration:var(--fdLink_Text_Decoration_Focus)}.fd-link.is-active [class*=sap-icon],.fd-link.is-active[class*=sap-icon],.fd-link:active [class*=sap-icon],.fd-link:active[class*=sap-icon]{color:var(--sapLink_Active_Color);-webkit-text-decoration:var(--fdLink_Text_Decoration_Active);text-decoration:var(--fdLink_Text_Decoration_Active)}.fd-link:visited:not(:focus) [class*=sap-icon],.fd-link:visited:not(:focus)[class*=sap-icon]{color:var(--sapLink_Visited_Color)}.fd-link__content--icon-line-height{line-height:var(--sapContent_LineHeight)}.fd-link__icon-container{display:inline-flex;justify-content:center;align-items:center}.fd-link__icon-container:first-child{margin-inline-end:var(--fdLink_Icon_Spacing, 0)}.fd-link__icon-container:last-child{margin-inline-start:var(--fdLink_Icon_Spacing, 0)}.fd-link--touch-target{--fdLink_Line_Height: 1.5rem}.fd-link__sr-only{position:absolute;clip:rect(0 0 0 0);height:1px;width:1px;border:0;margin-inline:-1px;margin-block:-1px;padding-inline:0;padding-block:0;overflow:hidden;white-space:nowrap}\n/*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"] }]
|
|
140
140
|
}], ctorParameters: () => [], propDecorators: { iconComponents: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => FD_ICON_COMPONENT), { ...{ descendants: false }, isSignal: true }] }], contentSpan: [{ type: i0.ViewChild, args: ['content', { isSignal: true }] }], emphasized: [{ type: i0.Input, args: [{ isSignal: true, alias: "emphasized", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], inverted: [{ type: i0.Input, args: [{ isSignal: true, alias: "inverted", required: false }] }], subtle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtle", required: false }] }], undecorated: [{ type: i0.Input, args: [{ isSignal: true, alias: "undecorated", required: false }] }], touchTarget: [{ type: i0.Input, args: [{ isSignal: true, alias: "touchTarget", required: false }] }] } });
|
|
141
141
|
|
|
142
142
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-link.mjs","sources":["../../../../libs/core/link/constants.ts","../../../../libs/core/link/tokens.ts","../../../../libs/core/link/link.component.ts","../../../../libs/core/link/link.component.html","../../../../libs/core/link/link.module.ts","../../../../libs/core/link/fundamental-ngx-core-link.ts"],"sourcesContent":["export const LINK_CLASS_NAME = {\n linkContent: 'fd-link__content'\n} as const;\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_LINK_COMPONENT = new InjectionToken('FdLinkComponent');\n","import { DomPortal, Portal, PortalModule } from '@angular/cdk/portal';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n ElementRef,\n inject,\n InjectionToken,\n Injector,\n input,\n Optional,\n Self,\n signal,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { HasElementRef } from '@fundamental-ngx/cdk';\nimport { FD_ICON_COMPONENT, IconComponent } from '@fundamental-ngx/core/icon';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { FD_LINK_COMPONENT } from './tokens';\n\nconst LINK_ROUTER_TARGET = new InjectionToken<RouterLink | undefined>('linkRouterTarget');\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fdLink], [fd-link]',\n templateUrl: './link.component.html',\n styleUrl: './link.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-disabled]': 'disabled() ? true : false',\n class: 'fd-link',\n '[class.fd-link--emphasized]': 'emphasized()',\n '[class.is-disabled]': 'disabled()',\n '[class.fd-link--inverted]': 'inverted()',\n '[class.fd-link--subtle]': 'subtle()',\n '[class.fd-link--undecorated]': 'undecorated()',\n '[class.fd-link--touch-target]': 'touchTarget()'\n },\n providers: [\n {\n provide: FD_LINK_COMPONENT,\n useExisting: LinkComponent\n },\n {\n provide: LINK_ROUTER_TARGET,\n useFactory: (withHref?: RouterLink, routerLink?: RouterLink): RouterLink | undefined =>\n withHref || routerLink,\n deps: [\n [new Optional(), new Self(), RouterLink],\n [new Optional(), new Self(), RouterLink]\n ]\n }\n ],\n imports: [PortalModule, FdTranslatePipe]\n})\nexport class LinkComponent implements HasElementRef {\n /** @hidden */\n readonly iconComponents = contentChildren<IconComponent>(FD_ICON_COMPONENT, { descendants: false });\n\n /** @hidden */\n readonly contentSpan = viewChild<ElementRef<HTMLSpanElement>>('content');\n\n /** Whether user wants to use emphasized mode */\n readonly emphasized = input(false, { transform: booleanAttribute });\n\n /** Whether user wants to put disabled mode */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** Whether user wants to use inverted mode */\n readonly inverted = input(false, { transform: booleanAttribute });\n\n /** Whether user wants to use subtle mode */\n readonly subtle = input(false, { transform: booleanAttribute });\n\n /** Whether user wants to have a link without underline decoration */\n readonly undecorated = input(false, { transform: booleanAttribute });\n\n /** Whether user wants to have a larger touch target */\n readonly touchTarget = input(false, { transform: booleanAttribute });\n\n /** @hidden */\n readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /** @hidden */\n readonly routerLink = inject<RouterLink>(LINK_ROUTER_TARGET);\n\n /** @hidden */\n protected readonly prefixPortal = signal<Portal<any> | null>(null);\n\n /** @hidden */\n protected readonly postfixPortal = signal<Portal<any> | null>(null);\n\n /** @hidden */\n protected readonly prefixIconName = signal<string>('');\n\n /** @hidden */\n protected readonly postfixIconName = signal<string>('');\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n constructor() {\n // Effect that runs when icons or content changes\n effect(() => {\n const icons = this.iconComponents();\n const contentEl = this.contentSpan()?.nativeElement;\n\n if (!contentEl || icons.length === 0) {\n afterNextRender(\n () => {\n this._clearPortals();\n },\n { injector: this._injector }\n );\n return;\n }\n\n afterNextRender(\n () => {\n this._updatePortals(icons, contentEl);\n },\n { injector: this._injector }\n );\n });\n }\n\n /** @hidden */\n private _clearPortals(): void {\n this._detachPortals();\n this.prefixPortal.set(null);\n this.postfixPortal.set(null);\n this.prefixIconName.set('');\n this.postfixIconName.set('');\n }\n\n /** @hidden */\n private _updatePortals(icons: readonly IconComponent[], contentEl: HTMLElement): void {\n // Determine prefix and postfix icons\n const firstIcon = icons[0];\n const lastIcon = icons[icons.length - 1];\n\n const prefix =\n firstIcon.elementRef.nativeElement === contentEl.childNodes[0] ? firstIcon.elementRef.nativeElement : null;\n const postfix =\n lastIcon.elementRef.nativeElement === contentEl.childNodes[contentEl.childNodes.length - 1]\n ? lastIcon.elementRef.nativeElement\n : null;\n\n // Update icon names\n this.prefixIconName.set(prefix ? firstIcon.glyph() : '');\n this.postfixIconName.set(postfix ? lastIcon.glyph() : '');\n\n // Update portals\n this._detachPortals();\n this.prefixPortal.set(prefix ? new DomPortal(prefix) : null);\n this.postfixPortal.set(postfix ? new DomPortal(postfix) : null);\n }\n\n /** @hidden */\n private _detachPortals(): void {\n const prefix = this.prefixPortal();\n const postfix = this.postfixPortal();\n\n if (prefix?.isAttached) {\n prefix.detach();\n }\n if (postfix?.isAttached) {\n postfix.detach();\n }\n }\n}\n","@if (prefixPortal()) {\n <span class=\"fd-link__icon-container\" role=\"presentation\" aria-hidden=\"true\">\n <ng-container *cdkPortalOutlet=\"prefixPortal()\"></ng-container>\n </span>\n}\n<span class=\"fd-link__content\" #content [class.fd-link__content--icon-line-height]=\"postfixPortal() || prefixPortal()\">\n <ng-content></ng-content>\n</span>\n@if (postfixPortal()) {\n <span class=\"fd-link__icon-container\" role=\"presentation\" aria-hidden=\"true\">\n <ng-container *cdkPortalOutlet=\"postfixPortal()\"></ng-container>\n </span>\n}\n@if (emphasized()) {\n <span class=\"fd-link__sr-only\">{{ 'coreLink.emphasized' | fdTranslate }}</span>\n}\n@if (subtle()) {\n <span class=\"fd-link__sr-only\">{{ 'coreLink.subtle' | fdTranslate }}</span>\n}\n","import { NgModule } from '@angular/core';\n\nimport { LinkComponent } from './link.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [LinkComponent],\n exports: [LinkComponent]\n})\nexport class LinkModule {}\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-link.mjs","sources":["../../../../libs/core/link/constants.ts","../../../../libs/core/link/tokens.ts","../../../../libs/core/link/link.component.ts","../../../../libs/core/link/link.component.html","../../../../libs/core/link/link.module.ts","../../../../libs/core/link/fundamental-ngx-core-link.ts"],"sourcesContent":["export const LINK_CLASS_NAME = {\n linkContent: 'fd-link__content'\n} as const;\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_LINK_COMPONENT = new InjectionToken('FdLinkComponent');\n","import { DomPortal, Portal, PortalModule } from '@angular/cdk/portal';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n ElementRef,\n inject,\n InjectionToken,\n Injector,\n input,\n Optional,\n Self,\n signal,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { HasElementRef } from '@fundamental-ngx/cdk';\nimport { FD_ICON_COMPONENT, IconComponent } from '@fundamental-ngx/core/icon';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { FD_LINK_COMPONENT } from './tokens';\n\nconst LINK_ROUTER_TARGET = new InjectionToken<RouterLink | undefined>('linkRouterTarget');\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fdLink], [fd-link]',\n templateUrl: './link.component.html',\n styleUrl: './link.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-disabled]': 'disabled() ? true : false',\n class: 'fd-link',\n '[class.fd-link--emphasized]': 'emphasized()',\n '[class.is-disabled]': 'disabled()',\n '[class.fd-link--inverted]': 'inverted()',\n '[class.fd-link--subtle]': 'subtle()',\n '[class.fd-link--undecorated]': 'undecorated()',\n '[class.fd-link--touch-target]': 'touchTarget()'\n },\n providers: [\n {\n provide: FD_LINK_COMPONENT,\n useExisting: LinkComponent\n },\n {\n provide: LINK_ROUTER_TARGET,\n useFactory: (withHref?: RouterLink, routerLink?: RouterLink): RouterLink | undefined =>\n withHref || routerLink,\n deps: [\n [new Optional(), new Self(), RouterLink],\n [new Optional(), new Self(), RouterLink]\n ]\n }\n ],\n imports: [PortalModule, FdTranslatePipe]\n})\nexport class LinkComponent implements HasElementRef {\n /** @hidden */\n readonly iconComponents = contentChildren<IconComponent>(FD_ICON_COMPONENT, { descendants: false });\n\n /** @hidden */\n readonly contentSpan = viewChild<ElementRef<HTMLSpanElement>>('content');\n\n /** Whether user wants to use emphasized mode */\n readonly emphasized = input(false, { transform: booleanAttribute });\n\n /** Whether user wants to put disabled mode */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** Whether user wants to use inverted mode */\n readonly inverted = input(false, { transform: booleanAttribute });\n\n /** Whether user wants to use subtle mode */\n readonly subtle = input(false, { transform: booleanAttribute });\n\n /** Whether user wants to have a link without underline decoration */\n readonly undecorated = input(false, { transform: booleanAttribute });\n\n /** Whether user wants to have a larger touch target */\n readonly touchTarget = input(false, { transform: booleanAttribute });\n\n /** @hidden */\n readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /** @hidden */\n readonly routerLink = inject<RouterLink>(LINK_ROUTER_TARGET);\n\n /** @hidden */\n protected readonly prefixPortal = signal<Portal<any> | null>(null);\n\n /** @hidden */\n protected readonly postfixPortal = signal<Portal<any> | null>(null);\n\n /** @hidden */\n protected readonly prefixIconName = signal<string>('');\n\n /** @hidden */\n protected readonly postfixIconName = signal<string>('');\n\n /** @hidden */\n private readonly _injector = inject(Injector);\n\n constructor() {\n // Effect that runs when icons or content changes\n effect(() => {\n const icons = this.iconComponents();\n const contentEl = this.contentSpan()?.nativeElement;\n\n if (!contentEl || icons.length === 0) {\n afterNextRender(\n () => {\n this._clearPortals();\n },\n { injector: this._injector }\n );\n return;\n }\n\n afterNextRender(\n () => {\n this._updatePortals(icons, contentEl);\n },\n { injector: this._injector }\n );\n });\n }\n\n /** @hidden */\n private _clearPortals(): void {\n this._detachPortals();\n this.prefixPortal.set(null);\n this.postfixPortal.set(null);\n this.prefixIconName.set('');\n this.postfixIconName.set('');\n }\n\n /** @hidden */\n private _updatePortals(icons: readonly IconComponent[], contentEl: HTMLElement): void {\n // Determine prefix and postfix icons\n const firstIcon = icons[0];\n const lastIcon = icons[icons.length - 1];\n\n const prefix =\n firstIcon.elementRef.nativeElement === contentEl.childNodes[0] ? firstIcon.elementRef.nativeElement : null;\n const postfix =\n lastIcon.elementRef.nativeElement === contentEl.childNodes[contentEl.childNodes.length - 1]\n ? lastIcon.elementRef.nativeElement\n : null;\n\n // Update icon names\n this.prefixIconName.set(prefix ? firstIcon.glyph() : '');\n this.postfixIconName.set(postfix ? lastIcon.glyph() : '');\n\n // Update portals\n this._detachPortals();\n this.prefixPortal.set(prefix ? new DomPortal(prefix) : null);\n this.postfixPortal.set(postfix ? new DomPortal(postfix) : null);\n }\n\n /** @hidden */\n private _detachPortals(): void {\n const prefix = this.prefixPortal();\n const postfix = this.postfixPortal();\n\n if (prefix?.isAttached) {\n prefix.detach();\n }\n if (postfix?.isAttached) {\n postfix.detach();\n }\n }\n}\n","@if (prefixPortal()) {\n <span class=\"fd-link__icon-container\" role=\"presentation\" aria-hidden=\"true\">\n <ng-container *cdkPortalOutlet=\"prefixPortal()\"></ng-container>\n </span>\n}\n<span class=\"fd-link__content\" #content [class.fd-link__content--icon-line-height]=\"postfixPortal() || prefixPortal()\">\n <ng-content></ng-content>\n</span>\n@if (postfixPortal()) {\n <span class=\"fd-link__icon-container\" role=\"presentation\" aria-hidden=\"true\">\n <ng-container *cdkPortalOutlet=\"postfixPortal()\"></ng-container>\n </span>\n}\n@if (emphasized()) {\n <span class=\"fd-link__sr-only\">{{ ('coreLink.emphasized' | fdTranslate)() }}</span>\n}\n@if (subtle()) {\n <span class=\"fd-link__sr-only\">{{ ('coreLink.subtle' | fdTranslate)() }}</span>\n}\n","import { NgModule } from '@angular/core';\n\nimport { LinkComponent } from './link.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [LinkComponent],\n exports: [LinkComponent]\n})\nexport class LinkModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -252,6 +252,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
252
252
|
args: ['attr.aria-hidden']
|
|
253
253
|
}], buildComponentCssClass: [] } });
|
|
254
254
|
|
|
255
|
+
class ListInfoLabelDirective {
|
|
256
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ListInfoLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
257
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: ListInfoLabelDirective, isStandalone: true, selector: "[fd-list-info-label], [fdListInfoLabel]", host: { classAttribute: "fd-list__info-label" }, ngImport: i0 }); }
|
|
258
|
+
}
|
|
259
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ListInfoLabelDirective, decorators: [{
|
|
260
|
+
type: Directive,
|
|
261
|
+
args: [{
|
|
262
|
+
selector: '[fd-list-info-label], [fdListInfoLabel]',
|
|
263
|
+
host: {
|
|
264
|
+
class: 'fd-list__info-label'
|
|
265
|
+
}
|
|
266
|
+
}]
|
|
267
|
+
}] });
|
|
268
|
+
|
|
255
269
|
const FD_LIST_MESSAGE_DIRECTIVE = new InjectionToken('FdListMessageDirective');
|
|
256
270
|
const FD_LIST_LINK_DIRECTIVE = new InjectionToken('FdListLinkDirective');
|
|
257
271
|
const FD_LIST_COMPONENT = new InjectionToken('ListComponent');
|
|
@@ -449,6 +463,8 @@ class ListTitleDirective {
|
|
|
449
463
|
this.wrap = input(false, { ...(ngDevMode ? { debugName: "wrap" } : {}), transform: booleanAttribute });
|
|
450
464
|
/** Whether the text should truncate with ellipsis. */
|
|
451
465
|
this.truncate = input(false, { ...(ngDevMode ? { debugName: "truncate" } : {}), transform: booleanAttribute });
|
|
466
|
+
/** Whether this title is used for scope in the shell search results. */
|
|
467
|
+
this.scope = input(false, { ...(ngDevMode ? { debugName: "scope" } : {}), transform: booleanAttribute });
|
|
452
468
|
/** @hidden */
|
|
453
469
|
this.elRef = inject(ElementRef);
|
|
454
470
|
}
|
|
@@ -460,7 +476,7 @@ class ListTitleDirective {
|
|
|
460
476
|
}
|
|
461
477
|
}
|
|
462
478
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ListTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
463
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: ListTitleDirective, isStandalone: true, selector: "[fd-list-title], [fdListTitle]", inputs: { wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null }, truncate: { classPropertyName: "truncate", publicName: "truncate", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.fd-list__title--truncate": "truncate()", "class.fd-list__title--wrap": "wrap()" }, classAttribute: "fd-list__title" }, ngImport: i0 }); }
|
|
479
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: ListTitleDirective, isStandalone: true, selector: "[fd-list-title], [fdListTitle]", inputs: { wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null }, truncate: { classPropertyName: "truncate", publicName: "truncate", isSignal: true, isRequired: false, transformFunction: null }, scope: { classPropertyName: "scope", publicName: "scope", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.fd-list__title--truncate": "truncate()", "class.fd-list__title--scope": "scope()", "class.fd-list__title--wrap": "wrap()" }, classAttribute: "fd-list__title" }, ngImport: i0 }); }
|
|
464
480
|
}
|
|
465
481
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ListTitleDirective, decorators: [{
|
|
466
482
|
type: Directive,
|
|
@@ -469,10 +485,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
469
485
|
host: {
|
|
470
486
|
class: 'fd-list__title',
|
|
471
487
|
'[class.fd-list__title--truncate]': 'truncate()',
|
|
488
|
+
'[class.fd-list__title--scope]': 'scope()',
|
|
472
489
|
'[class.fd-list__title--wrap]': 'wrap()'
|
|
473
490
|
}
|
|
474
491
|
}]
|
|
475
|
-
}], propDecorators: { wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }], truncate: [{ type: i0.Input, args: [{ isSignal: true, alias: "truncate", required: false }] }] } });
|
|
492
|
+
}], propDecorators: { wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }], truncate: [{ type: i0.Input, args: [{ isSignal: true, alias: "truncate", required: false }] }], scope: [{ type: i0.Input, args: [{ isSignal: true, alias: "scope", required: false }] }] } });
|
|
476
493
|
|
|
477
494
|
class ListSublineDirective {
|
|
478
495
|
constructor() {
|
|
@@ -621,6 +638,8 @@ class ListItemComponent extends ListFocusItem {
|
|
|
621
638
|
});
|
|
622
639
|
/** Template ref for Settings list item */
|
|
623
640
|
this.settingsListTpl = input(...(ngDevMode ? [undefined, { debugName: "settingsListTpl" }] : []));
|
|
641
|
+
/** @hidden Whether this is a suggestion type list item. */
|
|
642
|
+
this.suggestion = input(false, { ...(ngDevMode ? { debugName: "suggestion" } : {}), transform: booleanAttribute });
|
|
624
643
|
/** @hidden */
|
|
625
644
|
this._role = 'listitem'; // default for li elements
|
|
626
645
|
/** @hidden An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */
|
|
@@ -718,7 +737,7 @@ class ListItemComponent extends ListFocusItem {
|
|
|
718
737
|
event.preventDefault();
|
|
719
738
|
}
|
|
720
739
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ListItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
721
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: ListItemComponent, isStandalone: true, selector: "[fdListItem] ,[fd-list-item]", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: false, isRequired: false, transformFunction: null }, noData: { classPropertyName: "noData", publicName: "noData", isSignal: false, isRequired: false, transformFunction: null }, action: { classPropertyName: "action", publicName: "action", isSignal: false, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: false, isRequired: false, transformFunction: null }, growing: { classPropertyName: "growing", publicName: "growing", isSignal: false, isRequired: false, transformFunction: null }, counter: { classPropertyName: "counter", publicName: "counter", isSignal: false, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: false, isRequired: false, transformFunction: null }, unread: { classPropertyName: "unread", publicName: "unread", isSignal: false, isRequired: false, transformFunction: null }, byline: { classPropertyName: "byline", publicName: "byline", isSignal: false, isRequired: false, transformFunction: null }, ariaRole: { classPropertyName: "ariaRole", publicName: "ariaRole", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, preventClick: { classPropertyName: "preventClick", publicName: "preventClick", isSignal: false, isRequired: false, transformFunction: null }, settingsListTpl: { classPropertyName: "settingsListTpl", publicName: "settingsListTpl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { keyDown: "keyDown" }, host: { listeners: { "keydown": "keydownHandler($event)", "keyup": "keyupHandler($event)", "click": "onClick($event)", "focus": "_onFocus()" }, properties: { "attr.tabindex": "_normalizedTabIndex$()", "attr.id": "id", "class.is-selected": "this.selected", "attr.aria-selected": "this.selected", "class.fd-list__item--no-data": "this.noData", "class.fd-list__item--action": "this.action", "class.fd-list__item--interractive": "this.interactive", "class.fd-list__item--growing": "this.growing", "class.fd-list__item--unread": "this.unread", "class.fd-list__item--byline": "this.byline", "class.fd-list__item--link": "this.link", "attr.role": "this.roleAttr" }, classAttribute: "fd-list__item" }, providers: [
|
|
740
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: ListItemComponent, isStandalone: true, selector: "[fdListItem] ,[fd-list-item]", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: false, isRequired: false, transformFunction: null }, noData: { classPropertyName: "noData", publicName: "noData", isSignal: false, isRequired: false, transformFunction: null }, action: { classPropertyName: "action", publicName: "action", isSignal: false, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: false, isRequired: false, transformFunction: null }, growing: { classPropertyName: "growing", publicName: "growing", isSignal: false, isRequired: false, transformFunction: null }, counter: { classPropertyName: "counter", publicName: "counter", isSignal: false, isRequired: false, transformFunction: null }, counterRole: { classPropertyName: "counterRole", publicName: "counterRole", isSignal: false, isRequired: false, transformFunction: null }, counterAriaLabel: { classPropertyName: "counterAriaLabel", publicName: "counterAriaLabel", isSignal: false, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: false, isRequired: false, transformFunction: null }, unread: { classPropertyName: "unread", publicName: "unread", isSignal: false, isRequired: false, transformFunction: null }, byline: { classPropertyName: "byline", publicName: "byline", isSignal: false, isRequired: false, transformFunction: null }, ariaRole: { classPropertyName: "ariaRole", publicName: "ariaRole", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, preventClick: { classPropertyName: "preventClick", publicName: "preventClick", isSignal: false, isRequired: false, transformFunction: null }, settingsListTpl: { classPropertyName: "settingsListTpl", publicName: "settingsListTpl", isSignal: true, isRequired: false, transformFunction: null }, suggestion: { classPropertyName: "suggestion", publicName: "suggestion", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { keyDown: "keyDown" }, host: { listeners: { "keydown": "keydownHandler($event)", "keyup": "keyupHandler($event)", "click": "onClick($event)", "focus": "_onFocus()" }, properties: { "attr.tabindex": "_normalizedTabIndex$()", "attr.id": "id", "class.fd-list__item--suggestion": "suggestion()", "class.is-selected": "this.selected", "attr.aria-selected": "this.selected", "class.fd-list__item--no-data": "this.noData", "class.fd-list__item--action": "this.action", "class.fd-list__item--interractive": "this.interactive", "class.fd-list__item--growing": "this.growing", "class.fd-list__item--unread": "this.unread", "class.fd-list__item--byline": "this.byline", "class.fd-list__item--link": "this.link", "attr.role": "this.roleAttr" }, classAttribute: "fd-list__item" }, providers: [
|
|
722
741
|
{
|
|
723
742
|
provide: LIST_ITEM_COMPONENT,
|
|
724
743
|
useExisting: forwardRef(() => ListItemComponent)
|
|
@@ -727,14 +746,15 @@ class ListItemComponent extends ListFocusItem {
|
|
|
727
746
|
provide: ListFocusItem,
|
|
728
747
|
useExisting: forwardRef(() => ListItemComponent)
|
|
729
748
|
}
|
|
730
|
-
], queries: [{ propertyName: "radio", first: true, predicate: FD_RADIO_BUTTON_COMPONENT, descendants: true }, { propertyName: "checkbox", first: true, predicate: FD_CHECKBOX_COMPONENT, descendants: true }, { propertyName: "linkDirectives", predicate: FD_LIST_LINK_DIRECTIVE }, { propertyName: "buttons", predicate: FD_BUTTON_COMPONENT, descendants: true }], exportAs: ["fdListItem"], usesInheritance: true, ngImport: i0, template: "@if (checkbox || radio) {\n <div fd-form-item class=\"fd-list__form-item\">\n <ng-content select=\"fd-checkbox\"></ng-content>\n <ng-content select=\"fd-radio-button\"></ng-content>\n </div>\n}\n@if (unread && (!_list || _list.byline)) {\n <fd-icon class=\"fd-list__notification\" glyph=\"circle-task-2\"></fd-icon>\n}\n<ng-content></ng-content>\n@if (counter || counter === 0) {\n <span class=\"fd-list__item-counter\">\n {{ counter | number: '1.0-2' }}\n </span>\n}\n@if (active) {\n <span class=\"fd-list__active-indicator sap-icon--sys-enter-2\"></span>\n}\n", dependencies: [{ kind: "component", type: FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "pipe", type: DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
749
|
+
], queries: [{ propertyName: "radio", first: true, predicate: FD_RADIO_BUTTON_COMPONENT, descendants: true }, { propertyName: "checkbox", first: true, predicate: FD_CHECKBOX_COMPONENT, descendants: true }, { propertyName: "listTitle", first: true, predicate: ListTitleDirective, descendants: true }, { propertyName: "linkDirectives", predicate: FD_LIST_LINK_DIRECTIVE }, { propertyName: "buttons", predicate: FD_BUTTON_COMPONENT, descendants: true }], exportAs: ["fdListItem"], usesInheritance: true, ngImport: i0, template: "@if (checkbox || radio) {\n <div fd-form-item class=\"fd-list__form-item\">\n <ng-content select=\"fd-checkbox\"></ng-content>\n <ng-content select=\"fd-radio-button\"></ng-content>\n </div>\n}\n@if (unread && (!_list || _list.byline)) {\n <fd-icon class=\"fd-list__notification\" glyph=\"circle-task-2\"></fd-icon>\n}\n<ng-content></ng-content>\n@if (counter || counter === 0) {\n <span class=\"fd-list__item-counter\" [attr.role]=\"counterRole\" [attr.aria-label]=\"counterAriaLabel\">\n {{ counter | number: '1.0-2' }}\n </span>\n}\n@if (active) {\n <span class=\"fd-list__active-indicator sap-icon--sys-enter-2\"></span>\n}\n", dependencies: [{ kind: "component", type: FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "pipe", type: DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
731
750
|
}
|
|
732
751
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ListItemComponent, decorators: [{
|
|
733
752
|
type: Component,
|
|
734
753
|
args: [{ selector: '[fdListItem] ,[fd-list-item]', host: {
|
|
735
754
|
class: 'fd-list__item',
|
|
736
755
|
'[attr.tabindex]': '_normalizedTabIndex$()',
|
|
737
|
-
'[attr.id]': 'id'
|
|
756
|
+
'[attr.id]': 'id',
|
|
757
|
+
'[class.fd-list__item--suggestion]': 'suggestion()'
|
|
738
758
|
}, providers: [
|
|
739
759
|
{
|
|
740
760
|
provide: LIST_ITEM_COMPONENT,
|
|
@@ -744,7 +764,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
744
764
|
provide: ListFocusItem,
|
|
745
765
|
useExisting: forwardRef(() => ListItemComponent)
|
|
746
766
|
}
|
|
747
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [FormItemComponent, DecimalPipe, IconComponent], exportAs: 'fdListItem', template: "@if (checkbox || radio) {\n <div fd-form-item class=\"fd-list__form-item\">\n <ng-content select=\"fd-checkbox\"></ng-content>\n <ng-content select=\"fd-radio-button\"></ng-content>\n </div>\n}\n@if (unread && (!_list || _list.byline)) {\n <fd-icon class=\"fd-list__notification\" glyph=\"circle-task-2\"></fd-icon>\n}\n<ng-content></ng-content>\n@if (counter || counter === 0) {\n <span class=\"fd-list__item-counter\">\n {{ counter | number: '1.0-2' }}\n </span>\n}\n@if (active) {\n <span class=\"fd-list__active-indicator sap-icon--sys-enter-2\"></span>\n}\n" }]
|
|
767
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [FormItemComponent, DecimalPipe, IconComponent], exportAs: 'fdListItem', template: "@if (checkbox || radio) {\n <div fd-form-item class=\"fd-list__form-item\">\n <ng-content select=\"fd-checkbox\"></ng-content>\n <ng-content select=\"fd-radio-button\"></ng-content>\n </div>\n}\n@if (unread && (!_list || _list.byline)) {\n <fd-icon class=\"fd-list__notification\" glyph=\"circle-task-2\"></fd-icon>\n}\n<ng-content></ng-content>\n@if (counter || counter === 0) {\n <span class=\"fd-list__item-counter\" [attr.role]=\"counterRole\" [attr.aria-label]=\"counterAriaLabel\">\n {{ counter | number: '1.0-2' }}\n </span>\n}\n@if (active) {\n <span class=\"fd-list__active-indicator sap-icon--sys-enter-2\"></span>\n}\n" }]
|
|
748
768
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { selected: [{
|
|
749
769
|
type: Input
|
|
750
770
|
}, {
|
|
@@ -775,6 +795,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
775
795
|
args: ['class.fd-list__item--growing']
|
|
776
796
|
}], counter: [{
|
|
777
797
|
type: Input
|
|
798
|
+
}], counterRole: [{
|
|
799
|
+
type: Input
|
|
800
|
+
}], counterAriaLabel: [{
|
|
801
|
+
type: Input
|
|
778
802
|
}], active: [{
|
|
779
803
|
type: Input
|
|
780
804
|
}], unread: [{
|
|
@@ -802,13 +826,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
802
826
|
}], checkbox: [{
|
|
803
827
|
type: ContentChild,
|
|
804
828
|
args: [FD_CHECKBOX_COMPONENT]
|
|
829
|
+
}], listTitle: [{
|
|
830
|
+
type: ContentChild,
|
|
831
|
+
args: [ListTitleDirective]
|
|
805
832
|
}], linkDirectives: [{
|
|
806
833
|
type: ContentChildren,
|
|
807
834
|
args: [FD_LIST_LINK_DIRECTIVE]
|
|
808
835
|
}], buttons: [{
|
|
809
836
|
type: ContentChildren,
|
|
810
837
|
args: [FD_BUTTON_COMPONENT, { descendants: true }]
|
|
811
|
-
}], keyDown: [{ type: i0.Output, args: ["keyDown"] }], settingsListTpl: [{ type: i0.Input, args: [{ isSignal: true, alias: "settingsListTpl", required: false }] }], roleAttr: [{
|
|
838
|
+
}], keyDown: [{ type: i0.Output, args: ["keyDown"] }], settingsListTpl: [{ type: i0.Input, args: [{ isSignal: true, alias: "settingsListTpl", required: false }] }], suggestion: [{ type: i0.Input, args: [{ isSignal: true, alias: "suggestion", required: false }] }], roleAttr: [{
|
|
812
839
|
type: HostBinding,
|
|
813
840
|
args: ['attr.role']
|
|
814
841
|
}], keydownHandler: [{
|
|
@@ -1130,6 +1157,10 @@ class ListComponent {
|
|
|
1130
1157
|
this.settingsList = input(false, { ...(ngDevMode ? { debugName: "settingsList" } : {}), transform: booleanAttribute });
|
|
1131
1158
|
/** Whether the list is used inside Settings Dialog Footer */
|
|
1132
1159
|
this.settingsListFooter = input(false, { ...(ngDevMode ? { debugName: "settingsListFooter" } : {}), transform: booleanAttribute });
|
|
1160
|
+
/** @hidden Whether the list is the shell search results list. */
|
|
1161
|
+
this.searchResultsList = input(false, ...(ngDevMode ? [{ debugName: "searchResultsList" }] : []));
|
|
1162
|
+
/** @hidden */
|
|
1163
|
+
this.elementRef = inject(ElementRef);
|
|
1133
1164
|
/**
|
|
1134
1165
|
* @hidden
|
|
1135
1166
|
* Default role for lists
|
|
@@ -1217,7 +1248,7 @@ class ListComponent {
|
|
|
1217
1248
|
/** @hidden */
|
|
1218
1249
|
_recheckLinks() {
|
|
1219
1250
|
const items = this.items.filter((item) => item.link);
|
|
1220
|
-
this.hasNavigation = items.length > 0;
|
|
1251
|
+
this.hasNavigation = items.length > 0 || this.searchResultsList();
|
|
1221
1252
|
if (this.selection) {
|
|
1222
1253
|
this._defaultRole = 'listbox';
|
|
1223
1254
|
}
|
|
@@ -1229,7 +1260,7 @@ class ListComponent {
|
|
|
1229
1260
|
.subscribe((direction) => this.focusEscapeList.emit(direction));
|
|
1230
1261
|
}
|
|
1231
1262
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ListComponent, deps: [{ token: i1$1.KeyboardSupportService }, { token: i2.ContentDensityObserver }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1232
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.0", type: ListComponent, isStandalone: true, selector: "[fd-list], [fdList]", inputs: { dropdownMode: { classPropertyName: "dropdownMode", publicName: "dropdownMode", isSignal: false, isRequired: false, transformFunction: null }, multiInputMode: { classPropertyName: "multiInputMode", publicName: "multiInputMode", isSignal: false, isRequired: false, transformFunction: null }, mobileMode: { classPropertyName: "mobileMode", publicName: "mobileMode", isSignal: false, isRequired: false, transformFunction: null }, hasMessage: { classPropertyName: "hasMessage", publicName: "hasMessage", isSignal: false, isRequired: false, transformFunction: null }, noBorder: { classPropertyName: "noBorder", publicName: "noBorder", isSignal: false, isRequired: false, transformFunction: null }, navigationIndicator: { classPropertyName: "navigationIndicator", publicName: "navigationIndicator", isSignal: false, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: false, isRequired: false, transformFunction: null }, keyboardSupport: { classPropertyName: "keyboardSupport", publicName: "keyboardSupport", isSignal: false, isRequired: false, transformFunction: null }, byline: { classPropertyName: "byline", publicName: "byline", isSignal: false, isRequired: false, transformFunction: null }, subline: { classPropertyName: "subline", publicName: "subline", isSignal: false, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: false, isRequired: false, transformFunction: null }, unreadIndicator: { classPropertyName: "unreadIndicator", publicName: "unreadIndicator", isSignal: false, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: false, isRequired: false, transformFunction: null }, settingsList: { classPropertyName: "settingsList", publicName: "settingsList", isSignal: true, isRequired: false, transformFunction: null }, settingsListFooter: { classPropertyName: "settingsListFooter", publicName: "settingsListFooter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focusEscapeList: "focusEscapeList" }, host: { listeners: { "keydown": "keyDownHandler($event)" }, properties: { "class.fd-settings__list": "settingsList() || settingsListFooter()", "class.fd-settings__list--footer": "settingsListFooter()", "class.fd-list--dropdown": "this.dropdownMode", "class.fd-list--multi-input": "this.multiInputMode", "class.fd-list--mobile": "this.mobileMode", "class.fd-list--has-message": "this.hasMessage", "class.fd-list--no-border": "this.noBorder", "class.fd-list--navigation-indication": "this.navigationIndicator", "class.fd-list--selection": "this.selection", "class.fd-list--byline": "this.byline", "class.fd-list--subline": "this.subline", "class.fd-list--theme": "this.theme", "class.fd-list--unread-indicator": "this.unreadIndicator", "class.fd-list--navigation": "this.hasNavigation", "attr.role": "this._ariaRole" }, classAttribute: "fd-list" }, providers: [
|
|
1263
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.0", type: ListComponent, isStandalone: true, selector: "[fd-list], [fdList]", inputs: { dropdownMode: { classPropertyName: "dropdownMode", publicName: "dropdownMode", isSignal: false, isRequired: false, transformFunction: null }, multiInputMode: { classPropertyName: "multiInputMode", publicName: "multiInputMode", isSignal: false, isRequired: false, transformFunction: null }, mobileMode: { classPropertyName: "mobileMode", publicName: "mobileMode", isSignal: false, isRequired: false, transformFunction: null }, hasMessage: { classPropertyName: "hasMessage", publicName: "hasMessage", isSignal: false, isRequired: false, transformFunction: null }, noBorder: { classPropertyName: "noBorder", publicName: "noBorder", isSignal: false, isRequired: false, transformFunction: null }, navigationIndicator: { classPropertyName: "navigationIndicator", publicName: "navigationIndicator", isSignal: false, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: false, isRequired: false, transformFunction: null }, keyboardSupport: { classPropertyName: "keyboardSupport", publicName: "keyboardSupport", isSignal: false, isRequired: false, transformFunction: null }, byline: { classPropertyName: "byline", publicName: "byline", isSignal: false, isRequired: false, transformFunction: null }, subline: { classPropertyName: "subline", publicName: "subline", isSignal: false, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: false, isRequired: false, transformFunction: null }, unreadIndicator: { classPropertyName: "unreadIndicator", publicName: "unreadIndicator", isSignal: false, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: false, isRequired: false, transformFunction: null }, settingsList: { classPropertyName: "settingsList", publicName: "settingsList", isSignal: true, isRequired: false, transformFunction: null }, settingsListFooter: { classPropertyName: "settingsListFooter", publicName: "settingsListFooter", isSignal: true, isRequired: false, transformFunction: null }, searchResultsList: { classPropertyName: "searchResultsList", publicName: "searchResultsList", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focusEscapeList: "focusEscapeList" }, host: { listeners: { "keydown": "keyDownHandler($event)" }, properties: { "class.fd-settings__list": "settingsList() || settingsListFooter()", "class.fd-settings__list--footer": "settingsListFooter()", "class.fd-list--search-results": "searchResultsList()", "class.fd-list--dropdown": "this.dropdownMode", "class.fd-list--multi-input": "this.multiInputMode", "class.fd-list--mobile": "this.mobileMode", "class.fd-list--has-message": "this.hasMessage", "class.fd-list--no-border": "this.noBorder", "class.fd-list--navigation-indication": "this.navigationIndicator", "class.fd-list--selection": "this.selection", "class.fd-list--byline": "this.byline", "class.fd-list--subline": "this.subline", "class.fd-list--theme": "this.theme", "class.fd-list--unread-indicator": "this.unreadIndicator", "class.fd-list--navigation": "this.hasNavigation", "attr.role": "this._ariaRole" }, classAttribute: "fd-list" }, providers: [
|
|
1233
1264
|
KeyboardSupportService,
|
|
1234
1265
|
contentDensityObserverProviders(),
|
|
1235
1266
|
{
|
|
@@ -1247,7 +1278,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
1247
1278
|
args: [{ selector: '[fd-list], [fdList]', template: `<ng-content></ng-content>`, host: {
|
|
1248
1279
|
class: 'fd-list',
|
|
1249
1280
|
'[class.fd-settings__list]': 'settingsList() || settingsListFooter()',
|
|
1250
|
-
'[class.fd-settings__list--footer]': 'settingsListFooter()'
|
|
1281
|
+
'[class.fd-settings__list--footer]': 'settingsListFooter()',
|
|
1282
|
+
'[class.fd-list--search-results]': 'searchResultsList()'
|
|
1251
1283
|
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
1252
1284
|
KeyboardSupportService,
|
|
1253
1285
|
contentDensityObserverProviders(),
|
|
@@ -1336,7 +1368,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
1336
1368
|
}], _ariaRole: [{
|
|
1337
1369
|
type: HostBinding,
|
|
1338
1370
|
args: ['attr.role']
|
|
1339
|
-
}], settingsList: [{ type: i0.Input, args: [{ isSignal: true, alias: "settingsList", required: false }] }], settingsListFooter: [{ type: i0.Input, args: [{ isSignal: true, alias: "settingsListFooter", required: false }] }], keyDownHandler: [{
|
|
1371
|
+
}], settingsList: [{ type: i0.Input, args: [{ isSignal: true, alias: "settingsList", required: false }] }], settingsListFooter: [{ type: i0.Input, args: [{ isSignal: true, alias: "settingsListFooter", required: false }] }], searchResultsList: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchResultsList", required: false }] }], keyDownHandler: [{
|
|
1340
1372
|
type: HostListener,
|
|
1341
1373
|
args: ['keydown', ['$event']]
|
|
1342
1374
|
}] } });
|
|
@@ -1357,6 +1389,7 @@ const components = [
|
|
|
1357
1389
|
ListContentDirective,
|
|
1358
1390
|
ListThumbnailDirective,
|
|
1359
1391
|
ListTitleTextDirective,
|
|
1392
|
+
ListInfoLabelDirective,
|
|
1360
1393
|
ListNavigationItemComponent,
|
|
1361
1394
|
ListNavigationItemArrowDirective,
|
|
1362
1395
|
ListNavigationItemTextDirective,
|
|
@@ -1383,6 +1416,7 @@ class ListModule {
|
|
|
1383
1416
|
ListContentDirective,
|
|
1384
1417
|
ListThumbnailDirective,
|
|
1385
1418
|
ListTitleTextDirective,
|
|
1419
|
+
ListInfoLabelDirective,
|
|
1386
1420
|
ListNavigationItemComponent,
|
|
1387
1421
|
ListNavigationItemArrowDirective,
|
|
1388
1422
|
ListNavigationItemTextDirective,
|
|
@@ -1401,6 +1435,7 @@ class ListModule {
|
|
|
1401
1435
|
ListContentDirective,
|
|
1402
1436
|
ListThumbnailDirective,
|
|
1403
1437
|
ListTitleTextDirective,
|
|
1438
|
+
ListInfoLabelDirective,
|
|
1404
1439
|
ListNavigationItemComponent,
|
|
1405
1440
|
ListNavigationItemArrowDirective,
|
|
1406
1441
|
ListNavigationItemTextDirective,
|
|
@@ -1420,5 +1455,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
1420
1455
|
* Generated bundle index. Do not edit.
|
|
1421
1456
|
*/
|
|
1422
1457
|
|
|
1423
|
-
export { FD_LIST_COMPONENT, FD_LIST_LINK_DIRECTIVE, FD_LIST_MESSAGE_DIRECTIVE, FD_LIST_UNREAD_INDICATOR, ListBylineDirective, ListBylineLeftDirective, ListBylineRightDirective, ListComponent, ListContentDirective, ListFocusItem, ListFooterDirective, ListGroupHeaderDirective, ListIconDirective, ListItemComponent, ListLinkDirective, ListMessageDirective, ListModule, ListNavigationItemArrowDirective, ListNavigationItemComponent, ListNavigationItemTextDirective, ListSecondaryDirective, ListSublineDirective, ListThumbnailDirective, ListTitleDirective, ListTitleTextDirective, _secondaryListItemTypes };
|
|
1458
|
+
export { FD_LIST_COMPONENT, FD_LIST_LINK_DIRECTIVE, FD_LIST_MESSAGE_DIRECTIVE, FD_LIST_UNREAD_INDICATOR, ListBylineDirective, ListBylineLeftDirective, ListBylineRightDirective, ListComponent, ListContentDirective, ListFocusItem, ListFooterDirective, ListGroupHeaderDirective, ListIconDirective, ListInfoLabelDirective, ListItemComponent, ListLinkDirective, ListMessageDirective, ListModule, ListNavigationItemArrowDirective, ListNavigationItemComponent, ListNavigationItemTextDirective, ListSecondaryDirective, ListSublineDirective, ListThumbnailDirective, ListTitleDirective, ListTitleTextDirective, _secondaryListItemTypes };
|
|
1424
1459
|
//# sourceMappingURL=fundamental-ngx-core-list.mjs.map
|