@fundamental-ngx/core 0.63.0-rc.20 → 0.63.0-rc.21
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 +1 -1
- package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-avatar-group.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-date-picker.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-form.mjs +5 -2
- package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-nested-list.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-popover.mjs +51 -6
- package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-product-switch.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-progress-indicator.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-progress-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-select.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-slider.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time-picker.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-token.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-toolbar.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-user-menu.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-user-menu.mjs.map +1 -1
- package/package.json +3 -3
- package/types/fundamental-ngx-core-form.d.ts +2 -0
- package/types/fundamental-ngx-core-popover.d.ts +360 -322
|
@@ -238,7 +238,7 @@ class ProductSwitchComponent {
|
|
|
238
238
|
provide: FD_PRODUCT_SWITCH_COMPONENT,
|
|
239
239
|
useExisting: ProductSwitchComponent
|
|
240
240
|
}
|
|
241
|
-
], queries: [{ propertyName: "customProductSwitchButton", first: true, predicate: ProductSwitchButtonDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"fd-product-switch\">\n <fd-popover\n [placement]=\"placement()\"\n [closeOnEscapeKey]=\"closeOnEscapeKey()\"\n [closeOnOutsideClick]=\"closeOnOutsideClick()\"\n [(isOpen)]=\"isOpen\"\n [disabled]=\"disabled()\"\n [triggers]=\"triggers()\"\n [focusTrapped]=\"focusTrapped()\"\n [focusAutoCapture]=\"focusAutoCapture()\"\n [noArrow]=\"noArrow()\"\n [disableScrollbar]=\"disableScrollbar()\"\n (beforeOpen)=\"beforeOpen.emit()\"\n (isOpenChange)=\"isOpenChange.emit($event)\"\n >\n <fd-popover-control>\n @if (!customProductSwitchButton()) {\n <button\n fd-button\n [attr.aria-label]=\"('coreProductSwitch.ariaLabel' | fdTranslate)()\"\n [attr.title]=\"('coreProductSwitch.ariaLabel' | fdTranslate)()\"\n class=\"fd-shellbar__button\"\n glyph=\"grid\"\n fdType=\"transparent\"\n [fdContentDensity]=\"contentDensity()\"\n ></button>\n } @else {\n <ng-template [ngTemplateOutlet]=\"customProductSwitchButton()!.templateRef\"></ng-template>\n }\n </fd-popover-control>\n <fd-popover-body>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</div>\n", dependencies: [{ kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "bodyAriaLabel", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"], outputs: ["onClose"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
241
|
+
], queries: [{ propertyName: "customProductSwitchButton", first: true, predicate: ProductSwitchButtonDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"fd-product-switch\">\n <fd-popover\n [placement]=\"placement()\"\n [closeOnEscapeKey]=\"closeOnEscapeKey()\"\n [closeOnOutsideClick]=\"closeOnOutsideClick()\"\n [(isOpen)]=\"isOpen\"\n [disabled]=\"disabled()\"\n [triggers]=\"triggers()\"\n [focusTrapped]=\"focusTrapped()\"\n [focusAutoCapture]=\"focusAutoCapture()\"\n [noArrow]=\"noArrow()\"\n [disableScrollbar]=\"disableScrollbar()\"\n (beforeOpen)=\"beforeOpen.emit()\"\n (isOpenChange)=\"isOpenChange.emit($event)\"\n >\n <fd-popover-control>\n @if (!customProductSwitchButton()) {\n <button\n fd-button\n [attr.aria-label]=\"('coreProductSwitch.ariaLabel' | fdTranslate)()\"\n [attr.title]=\"('coreProductSwitch.ariaLabel' | fdTranslate)()\"\n class=\"fd-shellbar__button\"\n glyph=\"grid\"\n fdType=\"transparent\"\n [fdContentDensity]=\"contentDensity()\"\n ></button>\n } @else {\n <ng-template [ngTemplateOutlet]=\"customProductSwitchButton()!.templateRef\"></ng-template>\n }\n </fd-popover-control>\n <fd-popover-body>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</div>\n", dependencies: [{ kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "bodyAriaLabel", "bodyRole", "bodyAriaLabelledBy", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"], outputs: ["onClose"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
242
242
|
}
|
|
243
243
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ProductSwitchComponent, decorators: [{
|
|
244
244
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-product-switch.mjs","sources":["../../../../libs/core/product-switch/product-switch-body/product-switch-body.component.ts","../../../../libs/core/product-switch/product-switch-body/product-switch-body.component.html","../../../../libs/core/product-switch/product-switch-button.directive.ts","../../../../libs/core/product-switch/tokens.ts","../../../../libs/core/product-switch/product-switch/product-switch.component.ts","../../../../libs/core/product-switch/product-switch/product-switch.component.html","../../../../libs/core/product-switch/product-switch.module.ts","../../../../libs/core/product-switch/fundamental-ngx-core-product-switch.ts"],"sourcesContent":["import { DOWN_ARROW, ENTER, LEFT_ARROW, RIGHT_ARROW, SPACE, TAB, UP_ARROW } from '@angular/cdk/keycodes';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { FdDropEvent, KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\n\nimport { DndItemDirective, DndListDirective } from '@fundamental-ngx/cdk/utils';\nimport { AvatarComponent } from '@fundamental-ngx/core/avatar';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent } from '@fundamental-ngx/core/icon';\nimport { ProductSwitchItem } from './product-switch.item';\n\nconst containerWidthPxSmallMode = 588;\nconst containerWidthPx = 776;\n\n@Component({\n selector: 'fd-product-switch-body',\n templateUrl: './product-switch-body.component.html',\n styleUrls: ['./product-switch-body.component.scss', '../../../cdk/utils/drag-and-drop/drag-and-drop.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DndItemDirective, DndListDirective, IconComponent, AvatarComponent]\n})\nexport class ProductSwitchBodyComponent implements OnInit, OnDestroy {\n /** Defines if drag and drop functionality should be included in product switch*/\n @Input()\n dragAndDropEnabled = true;\n\n /** The product switch's product items. */\n @Input()\n products: ProductSwitchItem[];\n\n /** Defines if the product switcher should be displayed in list mode, no matter what is the size of window */\n @Input()\n forceListMode = false;\n\n /** Event thrown on products array change */\n @Output()\n readonly productsChange: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n /** Event emitted on product click */\n @Output()\n readonly itemClicked: EventEmitter<void> = new EventEmitter<void>();\n\n /** @hidden */\n protected readonly FD_DEFAULT_ICON_FONT_FAMILY = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /** @hidden */\n private _listMode: boolean;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n constructor(\n private _viewportRuler: ViewportRuler,\n private readonly _cdr: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._subscriptions.add(\n this._viewportRuler.change().subscribe((event) => {\n const { innerWidth } = <Window>event.target;\n this._checkSize(innerWidth);\n })\n );\n\n const { width } = this._viewportRuler.getViewportSize();\n this._checkSize(width);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n _itemClick(item: ProductSwitchItem, event: MouseEvent): void {\n this.products.forEach((product) => (product.selected = product === item));\n\n this.itemClicked.emit();\n if (item.callback) {\n item.callback(event);\n }\n }\n\n /** Method called on products change */\n _productSwitchItemsChangeHandle(dropEvent: FdDropEvent<ProductSwitchItem>): void {\n this.productsChange.emit(dropEvent.items);\n this.products = dropEvent.items;\n }\n\n /** @hidden */\n _keyDownHandle(event: KeyboardEvent): void {\n const target = <HTMLElement>event.target;\n\n if (!KeyUtil.isKeyCode(event, TAB)) {\n event.preventDefault();\n }\n\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n target.click();\n } else if (!this._isListMode()) {\n const i = Array.from(target.parentElement?.children ?? []).indexOf(target);\n this._handleNoListKeydown(event, target, i);\n } else if (this._isListMode() && KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {\n this._handleListArrowUpDown(event, target);\n }\n }\n\n /** @hidden */\n _isSmallMode(): boolean {\n return this.products?.length < 7;\n }\n\n /** @hidden */\n _isListMode(): boolean {\n return this._listMode || this.forceListMode;\n }\n\n /** @hidden */\n private _checkSize(width: number): void {\n if (this._isSmallMode()) {\n this._listMode = width < containerWidthPxSmallMode;\n } else {\n this._listMode = width < containerWidthPx;\n }\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _handleNoListKeydown(event: KeyboardEvent, target: HTMLElement, i: number): void {\n const previousElementSibling = <HTMLElement>target.previousElementSibling;\n const nextElementSibling = <HTMLElement>target.nextElementSibling;\n\n if (\n i === this.products.length - 1 &&\n (KeyUtil.isKeyCode(event, RIGHT_ARROW) || (KeyUtil.isKeyCode(event, LEFT_ARROW) && this._rtlService?.rtl()))\n ) {\n while (<HTMLElement>target.previousElementSibling) {\n target = <HTMLElement>target.previousElementSibling;\n }\n target.focus();\n }\n\n if (KeyUtil.isKeyCode(event, LEFT_ARROW)) {\n this._rtlService?.rtl() ? nextElementSibling?.focus() : previousElementSibling?.focus();\n } else if (KeyUtil.isKeyCode(event, RIGHT_ARROW)) {\n this._rtlService?.rtl() ? previousElementSibling?.focus() : nextElementSibling?.focus();\n } else if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {\n if (this.products.length >= 7) {\n this._handleNoListMoreThanSeven(event, target, i);\n } else if (this.products.length < 7) {\n this._handleNoListLessThanSeven(event, target, i);\n }\n }\n }\n\n /** @hidden */\n private _handleNoListMoreThanSeven(event: KeyboardEvent, target: HTMLElement, i: number): void {\n const nextIndexByColumn = 4;\n const children = target.parentElement?.children;\n\n if (!children) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n (<HTMLElement>children[i + nextIndexByColumn])?.focus();\n }\n\n if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n (<HTMLElement>children[i - nextIndexByColumn])?.focus();\n }\n }\n\n /** @hidden */\n private _handleNoListLessThanSeven(event: KeyboardEvent, target: HTMLElement, i: number): void {\n const nextIndexByColumn = 3;\n const children = target.parentElement?.children;\n\n if (!children) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n (<HTMLElement>children[i + nextIndexByColumn])?.focus();\n }\n\n if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n (<HTMLElement>children[i - nextIndexByColumn])?.focus();\n }\n }\n\n /** @hidden */\n private _handleListArrowUpDown(event: KeyboardEvent, target: HTMLElement): void {\n const targetIndex = Array.from(target.parentElement?.children ?? []).indexOf(target);\n const previousElementSibling =\n targetIndex === 0\n ? <HTMLElement>target.parentElement?.children[this.products.length - 1]\n : <HTMLElement>target.previousElementSibling;\n const nextElementSibling =\n targetIndex === this.products.length - 1\n ? <HTMLElement>target.parentElement?.children[0]\n : <HTMLElement>target.nextElementSibling;\n\n if (this._isListMode() && KeyUtil.isKeyCode(event, DOWN_ARROW) && nextElementSibling) {\n nextElementSibling.focus();\n } else if (this._isListMode() && KeyUtil.isKeyCode(event, UP_ARROW) && previousElementSibling) {\n previousElementSibling.focus();\n }\n }\n}\n","<div\n class=\"fd-product-switch__body\"\n [class.fd-product-switch__body--col-3]=\"_isSmallMode() && !_isListMode()\"\n [class.fd-product-switch__body--mobile]=\"_isListMode()\"\n>\n <ul\n fd-dnd-list\n class=\"fd-product-switch__list\"\n [items]=\"products\"\n [gridMode]=\"!_isListMode()\"\n (itemDropped)=\"_productSwitchItemsChangeHandle($event)\"\n >\n @for (product of products; track product) {\n <li\n fd-dnd-item\n tabindex=\"0\"\n class=\"fd-product-switch__item\"\n [class.selected]=\"product.selected\"\n (keydown)=\"_keyDownHandle($event)\"\n (click)=\"_itemClick(product, $event)\"\n [draggable]=\"!product.disabledDragAndDrop && dragAndDropEnabled\"\n [stickInPlace]=\"!!product.stickToPosition\"\n >\n @if (product.avatar) {\n <fd-avatar\n size=\"s\"\n [glyph]=\"product.avatar.glyph ?? null\"\n [label]=\"product.avatar.label ?? null\"\n [circle]=\"!!product.avatar.circle\"\n [image]=\"product.avatar.image ?? null\"\n [contain]=\"!!product.avatar.contain\"\n [transparent]=\"!!product.avatar.transparent\"\n [placeholder]=\"!!product.avatar.placeholder\"\n [tile]=\"!!product.avatar.tile\"\n [colorAccent]=\"product.avatar.colorAccent\"\n [colorIndication]=\"product.avatar.colorIndication\"\n [border]=\"!!product.avatar.border\"\n [alterIcon]=\"product.avatar.alterIcon ?? null\"\n [backupImage]=\"product.avatar.backupImage ?? null\"\n [ariaLabel]=\"product.avatar.ariaLabel ?? null\"\n >\n </fd-avatar>\n } @else {\n <fd-icon\n [font]=\"product.font || FD_DEFAULT_ICON_FONT_FAMILY\"\n role=\"presentation\"\n class=\"fd-product-switch__icon\"\n [glyph]=\"product.icon\"\n ></fd-icon>\n }\n\n <div class=\"fd-product-switch__text\">\n <div class=\"fd-product-switch__title\">{{ product.title }}</div>\n @if (product.subtitle) {\n <div class=\"fd-product-switch__subtitle\">{{ product.subtitle }}</div>\n }\n </div>\n </li>\n }\n </ul>\n</div>\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[fdProductSwitchButton]',\n standalone: true\n})\nexport class ProductSwitchButtonDirective {\n /** @hidden */\n constructor(readonly templateRef: TemplateRef<any>) {}\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_PRODUCT_SWITCH_COMPONENT = new InjectionToken('FdProductSwitchComponent');\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n contentChild,\n input,\n model,\n output,\n signal\n} from '@angular/core';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective, ContentDensityMode } from '@fundamental-ngx/core/content-density';\nimport {\n PopoverBodyComponent,\n PopoverComponent,\n PopoverControlComponent,\n TriggerConfig\n} from '@fundamental-ngx/core/popover';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { ProductSwitchButtonDirective } from '../product-switch-button.directive';\nimport { FD_PRODUCT_SWITCH_COMPONENT } from '../tokens';\n\n@Component({\n selector: 'fd-product-switch',\n templateUrl: './product-switch.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_PRODUCT_SWITCH_COMPONENT,\n useExisting: ProductSwitchComponent\n }\n ],\n imports: [\n PopoverComponent,\n PopoverControlComponent,\n ButtonComponent,\n PopoverBodyComponent,\n FdTranslatePipe,\n NgTemplateOutlet,\n ContentDensityDirective\n ],\n host: {\n '[class.fd-popover-custom--disabled]': 'disabled()'\n }\n})\nexport class ProductSwitchComponent {\n /** Placement of the product switch dropdown. */\n readonly placement = input<Placement>('bottom-end');\n\n /** Whether the product switch is disabled. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** Whether the product switch should close when the escape key is pressed. */\n readonly closeOnEscapeKey = input(true, { transform: booleanAttribute });\n\n /** Whether the product switch should close when a click is made outside its boundaries. */\n readonly closeOnOutsideClick = input(true, { transform: booleanAttribute });\n\n /** Whether the product switch dropdown should have an arrow. */\n readonly noArrow = input(true, { transform: booleanAttribute });\n\n /** Whether to wrap content with fd-scrollbar directive. */\n readonly disableScrollbar = input(false, { transform: booleanAttribute });\n\n /** The trigger events that will open/close the product switch. */\n readonly triggers = input<(string | TriggerConfig)[]>(['click']);\n\n /** Whether the product switch should trap focus within its boundaries. */\n readonly focusTrapped = input(false, { transform: booleanAttribute });\n\n /** Whether the product switch should automatically move focus into the trapped region. */\n readonly focusAutoCapture = input(false, { transform: booleanAttribute });\n\n /** Two-way binding for product switch open state. */\n readonly isOpen = model(false);\n\n /** Event emitted right before the product switch is being opened. */\n readonly beforeOpen = output<void>();\n\n /** Event emitted when the product switch open state changes. */\n readonly isOpenChange = output<boolean>();\n\n /** @hidden */\n contentDensity = signal<ContentDensityMode>(ContentDensityMode.COZY);\n\n /** @hidden */\n protected readonly customProductSwitchButton = contentChild(ProductSwitchButtonDirective);\n}\n","<div class=\"fd-product-switch\">\n <fd-popover\n [placement]=\"placement()\"\n [closeOnEscapeKey]=\"closeOnEscapeKey()\"\n [closeOnOutsideClick]=\"closeOnOutsideClick()\"\n [(isOpen)]=\"isOpen\"\n [disabled]=\"disabled()\"\n [triggers]=\"triggers()\"\n [focusTrapped]=\"focusTrapped()\"\n [focusAutoCapture]=\"focusAutoCapture()\"\n [noArrow]=\"noArrow()\"\n [disableScrollbar]=\"disableScrollbar()\"\n (beforeOpen)=\"beforeOpen.emit()\"\n (isOpenChange)=\"isOpenChange.emit($event)\"\n >\n <fd-popover-control>\n @if (!customProductSwitchButton()) {\n <button\n fd-button\n [attr.aria-label]=\"('coreProductSwitch.ariaLabel' | fdTranslate)()\"\n [attr.title]=\"('coreProductSwitch.ariaLabel' | fdTranslate)()\"\n class=\"fd-shellbar__button\"\n glyph=\"grid\"\n fdType=\"transparent\"\n [fdContentDensity]=\"contentDensity()\"\n ></button>\n } @else {\n <ng-template [ngTemplateOutlet]=\"customProductSwitchButton()!.templateRef\"></ng-template>\n }\n </fd-popover-control>\n <fd-popover-body>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ProductSwitchBodyComponent } from './product-switch-body/product-switch-body.component';\nimport { ProductSwitchComponent } from './product-switch/product-switch.component';\n\n/**\n * @deprecated\n * Use direct imports of `ProductSwitchComponent`, `ProductSwitchBodyComponent`\n */\n@NgModule({\n imports: [ProductSwitchComponent, ProductSwitchBodyComponent],\n exports: [ProductSwitchComponent, ProductSwitchBodyComponent]\n})\nexport class ProductSwitchModule {}\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-product-switch.mjs","sources":["../../../../libs/core/product-switch/product-switch-body/product-switch-body.component.ts","../../../../libs/core/product-switch/product-switch-body/product-switch-body.component.html","../../../../libs/core/product-switch/product-switch-button.directive.ts","../../../../libs/core/product-switch/tokens.ts","../../../../libs/core/product-switch/product-switch/product-switch.component.ts","../../../../libs/core/product-switch/product-switch/product-switch.component.html","../../../../libs/core/product-switch/product-switch.module.ts","../../../../libs/core/product-switch/fundamental-ngx-core-product-switch.ts"],"sourcesContent":["import { DOWN_ARROW, ENTER, LEFT_ARROW, RIGHT_ARROW, SPACE, TAB, UP_ARROW } from '@angular/cdk/keycodes';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { FdDropEvent, KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\n\nimport { DndItemDirective, DndListDirective } from '@fundamental-ngx/cdk/utils';\nimport { AvatarComponent } from '@fundamental-ngx/core/avatar';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent } from '@fundamental-ngx/core/icon';\nimport { ProductSwitchItem } from './product-switch.item';\n\nconst containerWidthPxSmallMode = 588;\nconst containerWidthPx = 776;\n\n@Component({\n selector: 'fd-product-switch-body',\n templateUrl: './product-switch-body.component.html',\n styleUrls: ['./product-switch-body.component.scss', '../../../cdk/utils/drag-and-drop/drag-and-drop.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DndItemDirective, DndListDirective, IconComponent, AvatarComponent]\n})\nexport class ProductSwitchBodyComponent implements OnInit, OnDestroy {\n /** Defines if drag and drop functionality should be included in product switch*/\n @Input()\n dragAndDropEnabled = true;\n\n /** The product switch's product items. */\n @Input()\n products: ProductSwitchItem[];\n\n /** Defines if the product switcher should be displayed in list mode, no matter what is the size of window */\n @Input()\n forceListMode = false;\n\n /** Event thrown on products array change */\n @Output()\n readonly productsChange: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n /** Event emitted on product click */\n @Output()\n readonly itemClicked: EventEmitter<void> = new EventEmitter<void>();\n\n /** @hidden */\n protected readonly FD_DEFAULT_ICON_FONT_FAMILY = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /** @hidden */\n private _listMode: boolean;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n constructor(\n private _viewportRuler: ViewportRuler,\n private readonly _cdr: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._subscriptions.add(\n this._viewportRuler.change().subscribe((event) => {\n const { innerWidth } = <Window>event.target;\n this._checkSize(innerWidth);\n })\n );\n\n const { width } = this._viewportRuler.getViewportSize();\n this._checkSize(width);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n _itemClick(item: ProductSwitchItem, event: MouseEvent): void {\n this.products.forEach((product) => (product.selected = product === item));\n\n this.itemClicked.emit();\n if (item.callback) {\n item.callback(event);\n }\n }\n\n /** Method called on products change */\n _productSwitchItemsChangeHandle(dropEvent: FdDropEvent<ProductSwitchItem>): void {\n this.productsChange.emit(dropEvent.items);\n this.products = dropEvent.items;\n }\n\n /** @hidden */\n _keyDownHandle(event: KeyboardEvent): void {\n const target = <HTMLElement>event.target;\n\n if (!KeyUtil.isKeyCode(event, TAB)) {\n event.preventDefault();\n }\n\n if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n target.click();\n } else if (!this._isListMode()) {\n const i = Array.from(target.parentElement?.children ?? []).indexOf(target);\n this._handleNoListKeydown(event, target, i);\n } else if (this._isListMode() && KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {\n this._handleListArrowUpDown(event, target);\n }\n }\n\n /** @hidden */\n _isSmallMode(): boolean {\n return this.products?.length < 7;\n }\n\n /** @hidden */\n _isListMode(): boolean {\n return this._listMode || this.forceListMode;\n }\n\n /** @hidden */\n private _checkSize(width: number): void {\n if (this._isSmallMode()) {\n this._listMode = width < containerWidthPxSmallMode;\n } else {\n this._listMode = width < containerWidthPx;\n }\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _handleNoListKeydown(event: KeyboardEvent, target: HTMLElement, i: number): void {\n const previousElementSibling = <HTMLElement>target.previousElementSibling;\n const nextElementSibling = <HTMLElement>target.nextElementSibling;\n\n if (\n i === this.products.length - 1 &&\n (KeyUtil.isKeyCode(event, RIGHT_ARROW) || (KeyUtil.isKeyCode(event, LEFT_ARROW) && this._rtlService?.rtl()))\n ) {\n while (<HTMLElement>target.previousElementSibling) {\n target = <HTMLElement>target.previousElementSibling;\n }\n target.focus();\n }\n\n if (KeyUtil.isKeyCode(event, LEFT_ARROW)) {\n this._rtlService?.rtl() ? nextElementSibling?.focus() : previousElementSibling?.focus();\n } else if (KeyUtil.isKeyCode(event, RIGHT_ARROW)) {\n this._rtlService?.rtl() ? previousElementSibling?.focus() : nextElementSibling?.focus();\n } else if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {\n if (this.products.length >= 7) {\n this._handleNoListMoreThanSeven(event, target, i);\n } else if (this.products.length < 7) {\n this._handleNoListLessThanSeven(event, target, i);\n }\n }\n }\n\n /** @hidden */\n private _handleNoListMoreThanSeven(event: KeyboardEvent, target: HTMLElement, i: number): void {\n const nextIndexByColumn = 4;\n const children = target.parentElement?.children;\n\n if (!children) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n (<HTMLElement>children[i + nextIndexByColumn])?.focus();\n }\n\n if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n (<HTMLElement>children[i - nextIndexByColumn])?.focus();\n }\n }\n\n /** @hidden */\n private _handleNoListLessThanSeven(event: KeyboardEvent, target: HTMLElement, i: number): void {\n const nextIndexByColumn = 3;\n const children = target.parentElement?.children;\n\n if (!children) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n (<HTMLElement>children[i + nextIndexByColumn])?.focus();\n }\n\n if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n (<HTMLElement>children[i - nextIndexByColumn])?.focus();\n }\n }\n\n /** @hidden */\n private _handleListArrowUpDown(event: KeyboardEvent, target: HTMLElement): void {\n const targetIndex = Array.from(target.parentElement?.children ?? []).indexOf(target);\n const previousElementSibling =\n targetIndex === 0\n ? <HTMLElement>target.parentElement?.children[this.products.length - 1]\n : <HTMLElement>target.previousElementSibling;\n const nextElementSibling =\n targetIndex === this.products.length - 1\n ? <HTMLElement>target.parentElement?.children[0]\n : <HTMLElement>target.nextElementSibling;\n\n if (this._isListMode() && KeyUtil.isKeyCode(event, DOWN_ARROW) && nextElementSibling) {\n nextElementSibling.focus();\n } else if (this._isListMode() && KeyUtil.isKeyCode(event, UP_ARROW) && previousElementSibling) {\n previousElementSibling.focus();\n }\n }\n}\n","<div\n class=\"fd-product-switch__body\"\n [class.fd-product-switch__body--col-3]=\"_isSmallMode() && !_isListMode()\"\n [class.fd-product-switch__body--mobile]=\"_isListMode()\"\n>\n <ul\n fd-dnd-list\n class=\"fd-product-switch__list\"\n [items]=\"products\"\n [gridMode]=\"!_isListMode()\"\n (itemDropped)=\"_productSwitchItemsChangeHandle($event)\"\n >\n @for (product of products; track product) {\n <li\n fd-dnd-item\n tabindex=\"0\"\n class=\"fd-product-switch__item\"\n [class.selected]=\"product.selected\"\n (keydown)=\"_keyDownHandle($event)\"\n (click)=\"_itemClick(product, $event)\"\n [draggable]=\"!product.disabledDragAndDrop && dragAndDropEnabled\"\n [stickInPlace]=\"!!product.stickToPosition\"\n >\n @if (product.avatar) {\n <fd-avatar\n size=\"s\"\n [glyph]=\"product.avatar.glyph ?? null\"\n [label]=\"product.avatar.label ?? null\"\n [circle]=\"!!product.avatar.circle\"\n [image]=\"product.avatar.image ?? null\"\n [contain]=\"!!product.avatar.contain\"\n [transparent]=\"!!product.avatar.transparent\"\n [placeholder]=\"!!product.avatar.placeholder\"\n [tile]=\"!!product.avatar.tile\"\n [colorAccent]=\"product.avatar.colorAccent\"\n [colorIndication]=\"product.avatar.colorIndication\"\n [border]=\"!!product.avatar.border\"\n [alterIcon]=\"product.avatar.alterIcon ?? null\"\n [backupImage]=\"product.avatar.backupImage ?? null\"\n [ariaLabel]=\"product.avatar.ariaLabel ?? null\"\n >\n </fd-avatar>\n } @else {\n <fd-icon\n [font]=\"product.font || FD_DEFAULT_ICON_FONT_FAMILY\"\n role=\"presentation\"\n class=\"fd-product-switch__icon\"\n [glyph]=\"product.icon\"\n ></fd-icon>\n }\n\n <div class=\"fd-product-switch__text\">\n <div class=\"fd-product-switch__title\">{{ product.title }}</div>\n @if (product.subtitle) {\n <div class=\"fd-product-switch__subtitle\">{{ product.subtitle }}</div>\n }\n </div>\n </li>\n }\n </ul>\n</div>\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[fdProductSwitchButton]',\n standalone: true\n})\nexport class ProductSwitchButtonDirective {\n /** @hidden */\n constructor(readonly templateRef: TemplateRef<any>) {}\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_PRODUCT_SWITCH_COMPONENT = new InjectionToken('FdProductSwitchComponent');\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n contentChild,\n input,\n model,\n output,\n signal\n} from '@angular/core';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective, ContentDensityMode } from '@fundamental-ngx/core/content-density';\nimport {\n PopoverBodyComponent,\n PopoverComponent,\n PopoverControlComponent,\n TriggerConfig\n} from '@fundamental-ngx/core/popover';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { ProductSwitchButtonDirective } from '../product-switch-button.directive';\nimport { FD_PRODUCT_SWITCH_COMPONENT } from '../tokens';\n\n@Component({\n selector: 'fd-product-switch',\n templateUrl: './product-switch.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_PRODUCT_SWITCH_COMPONENT,\n useExisting: ProductSwitchComponent\n }\n ],\n imports: [\n PopoverComponent,\n PopoverControlComponent,\n ButtonComponent,\n PopoverBodyComponent,\n FdTranslatePipe,\n NgTemplateOutlet,\n ContentDensityDirective\n ],\n host: {\n '[class.fd-popover-custom--disabled]': 'disabled()'\n }\n})\nexport class ProductSwitchComponent {\n /** Placement of the product switch dropdown. */\n readonly placement = input<Placement>('bottom-end');\n\n /** Whether the product switch is disabled. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n /** Whether the product switch should close when the escape key is pressed. */\n readonly closeOnEscapeKey = input(true, { transform: booleanAttribute });\n\n /** Whether the product switch should close when a click is made outside its boundaries. */\n readonly closeOnOutsideClick = input(true, { transform: booleanAttribute });\n\n /** Whether the product switch dropdown should have an arrow. */\n readonly noArrow = input(true, { transform: booleanAttribute });\n\n /** Whether to wrap content with fd-scrollbar directive. */\n readonly disableScrollbar = input(false, { transform: booleanAttribute });\n\n /** The trigger events that will open/close the product switch. */\n readonly triggers = input<(string | TriggerConfig)[]>(['click']);\n\n /** Whether the product switch should trap focus within its boundaries. */\n readonly focusTrapped = input(false, { transform: booleanAttribute });\n\n /** Whether the product switch should automatically move focus into the trapped region. */\n readonly focusAutoCapture = input(false, { transform: booleanAttribute });\n\n /** Two-way binding for product switch open state. */\n readonly isOpen = model(false);\n\n /** Event emitted right before the product switch is being opened. */\n readonly beforeOpen = output<void>();\n\n /** Event emitted when the product switch open state changes. */\n readonly isOpenChange = output<boolean>();\n\n /** @hidden */\n contentDensity = signal<ContentDensityMode>(ContentDensityMode.COZY);\n\n /** @hidden */\n protected readonly customProductSwitchButton = contentChild(ProductSwitchButtonDirective);\n}\n","<div class=\"fd-product-switch\">\n <fd-popover\n [placement]=\"placement()\"\n [closeOnEscapeKey]=\"closeOnEscapeKey()\"\n [closeOnOutsideClick]=\"closeOnOutsideClick()\"\n [(isOpen)]=\"isOpen\"\n [disabled]=\"disabled()\"\n [triggers]=\"triggers()\"\n [focusTrapped]=\"focusTrapped()\"\n [focusAutoCapture]=\"focusAutoCapture()\"\n [noArrow]=\"noArrow()\"\n [disableScrollbar]=\"disableScrollbar()\"\n (beforeOpen)=\"beforeOpen.emit()\"\n (isOpenChange)=\"isOpenChange.emit($event)\"\n >\n <fd-popover-control>\n @if (!customProductSwitchButton()) {\n <button\n fd-button\n [attr.aria-label]=\"('coreProductSwitch.ariaLabel' | fdTranslate)()\"\n [attr.title]=\"('coreProductSwitch.ariaLabel' | fdTranslate)()\"\n class=\"fd-shellbar__button\"\n glyph=\"grid\"\n fdType=\"transparent\"\n [fdContentDensity]=\"contentDensity()\"\n ></button>\n } @else {\n <ng-template [ngTemplateOutlet]=\"customProductSwitchButton()!.templateRef\"></ng-template>\n }\n </fd-popover-control>\n <fd-popover-body>\n <ng-content></ng-content>\n </fd-popover-body>\n </fd-popover>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ProductSwitchBodyComponent } from './product-switch-body/product-switch-body.component';\nimport { ProductSwitchComponent } from './product-switch/product-switch.component';\n\n/**\n * @deprecated\n * Use direct imports of `ProductSwitchComponent`, `ProductSwitchBodyComponent`\n */\n@NgModule({\n imports: [ProductSwitchComponent, ProductSwitchBodyComponent],\n exports: [ProductSwitchComponent, ProductSwitchBodyComponent]\n})\nexport class ProductSwitchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -61,7 +61,7 @@ class ProgressIndicatorComponent {
|
|
|
61
61
|
this._cdRef.detectChanges();
|
|
62
62
|
}
|
|
63
63
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ProgressIndicatorComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: ProgressIndicatorComponent, isStandalone: true, selector: "fd-progress-indicator", inputs: { valueText: "valueText", unit: "unit", valueMin: "valueMin", valueMax: "valueMax", valueNow: "valueNow", state: "state", animate: "animate" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"fd-progress-indicator\"\n tabindex=\"-1\"\n role=\"progressbar\"\n [attr.aria-valuemin]=\"valueMin\"\n [attr.aria-valuenow]=\"valueNow\"\n [attr.aria-valuemax]=\"valueMax\"\n [attr.aria-valuetext]=\"valueText\"\n [attr.aria-label]=\"valueText\"\n [class]=\"state ? 'fd-progress-indicator--' + state : ''\"\n>\n @if (!hasPopover) {\n @if (_progressBarWidth >= 0) {\n <div class=\"fd-progress-indicator__container\">\n <ng-template [ngTemplateOutlet]=\"indicatorContainer\"></ng-template>\n </div>\n }\n } @else {\n <fd-popover\n [style.width.%]=\"100\"\n [noArrow]=\"false\"\n placement=\"bottom\"\n fillControlMode=\"equal\"\n #popover\n class=\"fd-progress-indicator__container\"\n >\n @if (_progressBarWidth >= 0) {\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"indicatorContainer\"></ng-template>\n </fd-popover-control>\n }\n <fd-popover-body>\n <div class=\"fd-popover__wrapper\">\n <div class=\"fd-progress-indicator__overflow\">\n <span>{{ valueText }}</span>\n <span class=\"fd-progress-indicator__overflow-close\" (click)=\"popover.close()\">\n <fd-icon glyph=\"decline\"></fd-icon>\n </span>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n }\n</div>\n<ng-template #indicatorContainer>\n @if (_progressBarWidth > 0) {\n <div\n class=\"fd-progress-indicator__progress-bar\"\n [class.fd-progress-indicator__progress-bar--animated]=\"animate\"\n [style.min-width.%]=\"_progressBarWidth\"\n [style.width.%]=\"_progressBarWidth\"\n >\n @if (_progressBarWidth > 50) {\n <ng-template [ngTemplateOutlet]=\"progressBarLabel\"></ng-template>\n }\n </div>\n }\n <div class=\"fd-progress-indicator__remaining\" [style.min-width]=\"0\">\n @if (_progressBarWidth <= 50) {\n <ng-template [ngTemplateOutlet]=\"progressBarLabel\"></ng-template>\n }\n </div>\n</ng-template>\n<ng-template #progressBarLabel>\n @if (state) {\n <span class=\"fd-progress-indicator__icon\"></span>\n }\n @if (!valueText) {\n <span class=\"fd-progress-indicator__label\"> {{ valueNow }}% </span>\n } @else {\n <span class=\"fd-progress-indicator__label\">\n {{ valueText }}\n </span>\n }\n</ng-template>\n", styles: [".fd-progress-indicator{--rootMarginBlock:.5rem;--progressBarBackground:var(--fdProgress_Indicator_Background_Color_Neutral);--progressBarBorderColor:var(--fdProgress_Indicator_Progress_Bar_Border_Color_Neutral,transparent);--progressBarBorderRightColor:var(--fdProgress_Indicator_Border_Right_Color,var(--progressBarBorderColor));--containerBackground:var(--fdProgress_Indicator_Container_Background_Neutral,var(--sapField_Background));--containerBorderColor:var(--fdProgress_Indicator_Container_Border_Neutral,var(--sapField_BorderColor));--iconDisplay:none;--iconContent:\"\";--labelMarginStart:var(--fdProgress_Indicator_Label_Margin_Start);--labelMarginEnd:var(--fdProgress_Indicator_Label_Margin_End);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdProgress_Indicator_Height);line-height:normal;margin-block:0;margin-block:var(--rootMarginBlock);margin-inline:0;padding-block:0;padding-block:var(--fdProgress_Indicator_Container_Margin_Block);padding-inline:0;padding-inline:var(--fdProgress_Indicator_Container_Margin_Inline);width:100%}.fd-progress-indicator:after,.fd-progress-indicator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-progress-indicator.fd-popover{cursor:pointer;margin-block:var(--rootMarginBlock);margin-inline:0}.fd-progress-indicator--mobile{--rootMarginBlock:.875rem}.fd-progress-indicator--display{--rootMarginBlock:0}.fd-progress-indicator--display.fd-popover{margin-block:0;margin-inline:0}.fd-progress-indicator--informative{--progressBarBackground:var(--fdProgress_Indicator_Background_Color_Informative);--progressBarBorderColor:var(--fdProgress_Indicator_Progress_Bar_Border_Color_Informative,transparent);--containerBackground:var(--fdProgress_Indicator_Container_Background_Informative,var(--sapField_Background));--containerBorderColor:var(--fdProgress_Indicator_Container_Border_Informative,var(--sapField_BorderColor));--iconContent:var(--fdProgress_Icon_Informative);--iconDisplay:inline;--iconColor:var(--fdProgress_Icon_Color_Informative,var(--fdProgress_Indicator_Label_Color));--labelMarginStart:0}.fd-progress-indicator--positive{--progressBarBackground:var(--fdProgress_Indicator_Background_Color_Positive);--progressBarBorderColor:var(--fdProgress_Indicator_Progress_Bar_Border_Color_Positive,transparent);--containerBackground:var(--fdProgress_Indicator_Container_Background_Positive,var(--sapField_Background));--containerBorderColor:var(--fdProgress_Indicator_Container_Border_Positive,var(--sapField_BorderColor));--iconContent:var(--fdProgress_Icon_Positive);--iconDisplay:inline;--iconColor:var(--fdProgress_Icon_Color_Positive,var(--fdProgress_Indicator_Label_Color));--labelMarginStart:0}.fd-progress-indicator--negative{--progressBarBackground:var(--fdProgress_Indicator_Background_Color_Negative);--progressBarBorderColor:var(--fdProgress_Indicator_Progress_Bar_Border_Color_Negative,transparent);--containerBackground:var(--fdProgress_Indicator_Container_Background_Negative,var(--sapField_Background));--containerBorderColor:var(--fdProgress_Indicator_Container_Border_Negative,var(--sapField_BorderColor));--iconContent:var(--fdProgress_Icon_Negative);--iconDisplay:inline;--iconColor:var(--fdProgress_Icon_Color_Negative,var(--fdProgress_Indicator_Label_Color));--labelMarginStart:0}.fd-progress-indicator--critical{--progressBarBackground:var(--fdProgress_Indicator_Background_Color_Critical);--progressBarBorderColor:var(--fdProgress_Indicator_Progress_Bar_Border_Color_Critical,transparent);--containerBackground:var(--fdProgress_Indicator_Container_Background_Critical,var(--sapField_Background));--containerBorderColor:var(--fdProgress_Indicator_Container_Border_Critical,var(--sapField_BorderColor));--iconContent:var(--fdProgress_Icon_Critical);--iconDisplay:inline;--iconColor:var(--fdProgress_Icon_Color_Critical,var(--fdProgress_Indicator_Label_Color));--labelMarginStart:0}.fd-progress-indicator .fd-progress-indicator__container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;background:var(--containerBackground);border:.0625rem solid var(--containerBorderColor);border-radius:.5rem;-ms-flex-direction:row;flex-direction:row;height:var(--fdProgress_Indicator_Container_Height);min-height:var(--fdProgress_Indicator_Container_Height);min-width:4rem;overflow:var(--fdProgress_Indicator_Container_Overflow);position:var(--fdProgress_Indicator_Container_Position,static);width:var(--fdProgress_Indicator_Container_Width)}.fd-progress-indicator .fd-progress-indicator__container:after,.fd-progress-indicator .fd-progress-indicator__container:before{background-color:var(--progressBarBackground);border-radius:50%;-webkit-box-sizing:inherit;box-sizing:inherit;content:\"\";display:var(--fdProgress_Indicator_Progress_Bar_Boundary_Display,none);font-size:inherit;height:.25rem;position:absolute;top:0;width:.25rem}.fd-progress-indicator .fd-progress-indicator__container:before{left:0}.fd-progress-indicator .fd-progress-indicator__container:after{right:0}.fd-progress-indicator[aria-valuenow=\"0\"] .fd-progress-indicator__progress-bar{border:none}.fd-progress-indicator[aria-valuenow=\"100\"] .fd-progress-indicator__progress-bar{right:var(--fdProgress_Indicator_Progress_Bar_Position_Left);width:auto!important}.fd-progress-indicator[aria-valuenow=\"100\"] .fd-progress-indicator__progress-bar[dir=rtl],.fd-progress-indicator__progress-bar,[dir=rtl] .fd-progress-indicator[aria-valuenow=\"100\"] .fd-progress-indicator__progress-bar{left:var(--fdProgress_Indicator_Progress_Bar_Position_Left)}.fd-progress-indicator__progress-bar{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:end;-ms-flex-pack:end;background:var(--progressBarBackground);border:var(--fdProgress_Indicator_Progress_Bar_Border) var(--progressBarBorderColor);border-radius:var(--fdProgress_Indicator_Progress_Bar_Border_Radius);border-right:var(--fdProgress_Indicator_Border_Right) var(--progressBarBorderRightColor);bottom:var(--fdProgress_Indicator_Progress_Bar_Position_Bottom);height:var(--fdProgress_Indicator_Progress_Bar_Height);justify-content:flex-end;margin-block:var(--fdProgress_Indicator_Progress_Bar_Margin_Block);margin-inline:0}.fd-progress-indicator__progress-bar:after,.fd-progress-indicator__progress-bar:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-progress-indicator__progress-bar .fd-progress-indicator__label{color:var(--fdProgress_Indicator_Label_Color_Contrast)}.fd-progress-indicator__progress-bar[dir=rtl],[dir=rtl] .fd-progress-indicator__progress-bar{border-right:none;border:var(--fdProgress_Indicator_Progress_Bar_Border) var(--progressBarBorderColor);border-left:var(--fdProgress_Indicator_Border_Right) var(--progressBarBorderRightColor);left:auto;right:var(--fdProgress_Indicator_Progress_Bar_Position_Left)}.fd-progress-indicator .fd-progress-indicator__remaining{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:static}.fd-progress-indicator .fd-progress-indicator__remaining:after,.fd-progress-indicator .fd-progress-indicator__remaining:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-progress-indicator .fd-progress-indicator__remaining.fd-popover__control{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;min-width:0}.fd-progress-indicator__icon{bottom:-.625rem;display:var(--iconDisplay);margin-inline:var(--fdProgress_Indicator_Label_Margin_Start) var(--fdProgress_Icon_Space_Before_Label);position:var(--fdProgress_Indicator_Icon_Position,static);right:-1.25rem}.fd-progress-indicator__icon[dir=rtl],[dir=rtl] .fd-progress-indicator__icon{left:-1.25rem;right:auto}.fd-progress-indicator__icon:before{color:var(--iconColor);content:var(--iconContent);font-family:SAP-icons;font-size:var(--fdProgress_Indicator_Icon_Font_Size);vertical-align:middle}.fd-progress-indicator__icon+.fd-progress-indicator__label{-webkit-margin-start:0;margin-inline-start:0}.fd-progress-indicator__label{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdProgress_Indicator_Label_Color);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--fdProgress_Indicator_Label_Font_Size);font-weight:400;forced-color-adjust:none;left:0;line-height:normal;margin-block:0;margin-inline:0;margin-inline:var(--labelMarginStart) var(--labelMarginEnd);max-width:100%;overflow:hidden;padding-block:0;padding-inline:0;position:var(--fdProgress_Indicator_Label_Position,static);text-overflow:ellipsis;top:-1.25rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.fd-progress-indicator__label:after,.fd-progress-indicator__label:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-progress-indicator__label[dir=rtl],[dir=rtl] .fd-progress-indicator__label{left:auto;right:0}.fd-progress-indicator__overflow{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:.25rem;padding-inline:0;padding-inline:.5rem 0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.5rem;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;max-width:95vw;overflow:hidden;white-space:normal}.fd-progress-indicator__overflow:after,.fd-progress-indicator__overflow:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-progress-indicator__overflow-close{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:transparent;cursor:pointer;height:1.375rem;max-height:1.375rem;max-width:1.4375rem;min-height:1.375rem;min-width:1.4375rem;text-align:center;width:1.4375rem}.fd-progress-indicator__overflow-close:after,.fd-progress-indicator__overflow-close:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-progress-indicator__overflow-close.is-focus,.fd-progress-indicator__overflow-close:focus{outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);z-index:5}.fd-progress-indicator__overflow-close [class*=sap-icon]{color:var(--sapContent_IconColor);font-size:var(--sapFontSmallSize)}.fd-progress-indicator__progress-bar--animated{-webkit-transition:min-width .5s ease-in-out,width .5s ease-in-out;-moz-transition:min-width .5s ease-in-out,width .5s ease-in-out;-o-transition:min-width .5s ease-in-out,width .5s ease-in-out;transition:min-width .5s ease-in-out,width .5s ease-in-out}.fd-progress-indicator__container .fd-popover__control{width:100%}\n/*! Bundled license information:\n\nfundamental-styles/dist/progress-indicator.css:\n (*!\n * Fundamental Library Styles v0.41.7\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "bodyAriaLabel", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"], outputs: ["onClose"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "size", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
64
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: ProgressIndicatorComponent, isStandalone: true, selector: "fd-progress-indicator", inputs: { valueText: "valueText", unit: "unit", valueMin: "valueMin", valueMax: "valueMax", valueNow: "valueNow", state: "state", animate: "animate" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"fd-progress-indicator\"\n tabindex=\"-1\"\n role=\"progressbar\"\n [attr.aria-valuemin]=\"valueMin\"\n [attr.aria-valuenow]=\"valueNow\"\n [attr.aria-valuemax]=\"valueMax\"\n [attr.aria-valuetext]=\"valueText\"\n [attr.aria-label]=\"valueText\"\n [class]=\"state ? 'fd-progress-indicator--' + state : ''\"\n>\n @if (!hasPopover) {\n @if (_progressBarWidth >= 0) {\n <div class=\"fd-progress-indicator__container\">\n <ng-template [ngTemplateOutlet]=\"indicatorContainer\"></ng-template>\n </div>\n }\n } @else {\n <fd-popover\n [style.width.%]=\"100\"\n [noArrow]=\"false\"\n placement=\"bottom\"\n fillControlMode=\"equal\"\n #popover\n class=\"fd-progress-indicator__container\"\n >\n @if (_progressBarWidth >= 0) {\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"indicatorContainer\"></ng-template>\n </fd-popover-control>\n }\n <fd-popover-body>\n <div class=\"fd-popover__wrapper\">\n <div class=\"fd-progress-indicator__overflow\">\n <span>{{ valueText }}</span>\n <span class=\"fd-progress-indicator__overflow-close\" (click)=\"popover.close()\">\n <fd-icon glyph=\"decline\"></fd-icon>\n </span>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n }\n</div>\n<ng-template #indicatorContainer>\n @if (_progressBarWidth > 0) {\n <div\n class=\"fd-progress-indicator__progress-bar\"\n [class.fd-progress-indicator__progress-bar--animated]=\"animate\"\n [style.min-width.%]=\"_progressBarWidth\"\n [style.width.%]=\"_progressBarWidth\"\n >\n @if (_progressBarWidth > 50) {\n <ng-template [ngTemplateOutlet]=\"progressBarLabel\"></ng-template>\n }\n </div>\n }\n <div class=\"fd-progress-indicator__remaining\" [style.min-width]=\"0\">\n @if (_progressBarWidth <= 50) {\n <ng-template [ngTemplateOutlet]=\"progressBarLabel\"></ng-template>\n }\n </div>\n</ng-template>\n<ng-template #progressBarLabel>\n @if (state) {\n <span class=\"fd-progress-indicator__icon\"></span>\n }\n @if (!valueText) {\n <span class=\"fd-progress-indicator__label\"> {{ valueNow }}% </span>\n } @else {\n <span class=\"fd-progress-indicator__label\">\n {{ valueText }}\n </span>\n }\n</ng-template>\n", styles: [".fd-progress-indicator{--rootMarginBlock:.5rem;--progressBarBackground:var(--fdProgress_Indicator_Background_Color_Neutral);--progressBarBorderColor:var(--fdProgress_Indicator_Progress_Bar_Border_Color_Neutral,transparent);--progressBarBorderRightColor:var(--fdProgress_Indicator_Border_Right_Color,var(--progressBarBorderColor));--containerBackground:var(--fdProgress_Indicator_Container_Background_Neutral,var(--sapField_Background));--containerBorderColor:var(--fdProgress_Indicator_Container_Border_Neutral,var(--sapField_BorderColor));--iconDisplay:none;--iconContent:\"\";--labelMarginStart:var(--fdProgress_Indicator_Label_Margin_Start);--labelMarginEnd:var(--fdProgress_Indicator_Label_Margin_End);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdProgress_Indicator_Height);line-height:normal;margin-block:0;margin-block:var(--rootMarginBlock);margin-inline:0;padding-block:0;padding-block:var(--fdProgress_Indicator_Container_Margin_Block);padding-inline:0;padding-inline:var(--fdProgress_Indicator_Container_Margin_Inline);width:100%}.fd-progress-indicator:after,.fd-progress-indicator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-progress-indicator.fd-popover{cursor:pointer;margin-block:var(--rootMarginBlock);margin-inline:0}.fd-progress-indicator--mobile{--rootMarginBlock:.875rem}.fd-progress-indicator--display{--rootMarginBlock:0}.fd-progress-indicator--display.fd-popover{margin-block:0;margin-inline:0}.fd-progress-indicator--informative{--progressBarBackground:var(--fdProgress_Indicator_Background_Color_Informative);--progressBarBorderColor:var(--fdProgress_Indicator_Progress_Bar_Border_Color_Informative,transparent);--containerBackground:var(--fdProgress_Indicator_Container_Background_Informative,var(--sapField_Background));--containerBorderColor:var(--fdProgress_Indicator_Container_Border_Informative,var(--sapField_BorderColor));--iconContent:var(--fdProgress_Icon_Informative);--iconDisplay:inline;--iconColor:var(--fdProgress_Icon_Color_Informative,var(--fdProgress_Indicator_Label_Color));--labelMarginStart:0}.fd-progress-indicator--positive{--progressBarBackground:var(--fdProgress_Indicator_Background_Color_Positive);--progressBarBorderColor:var(--fdProgress_Indicator_Progress_Bar_Border_Color_Positive,transparent);--containerBackground:var(--fdProgress_Indicator_Container_Background_Positive,var(--sapField_Background));--containerBorderColor:var(--fdProgress_Indicator_Container_Border_Positive,var(--sapField_BorderColor));--iconContent:var(--fdProgress_Icon_Positive);--iconDisplay:inline;--iconColor:var(--fdProgress_Icon_Color_Positive,var(--fdProgress_Indicator_Label_Color));--labelMarginStart:0}.fd-progress-indicator--negative{--progressBarBackground:var(--fdProgress_Indicator_Background_Color_Negative);--progressBarBorderColor:var(--fdProgress_Indicator_Progress_Bar_Border_Color_Negative,transparent);--containerBackground:var(--fdProgress_Indicator_Container_Background_Negative,var(--sapField_Background));--containerBorderColor:var(--fdProgress_Indicator_Container_Border_Negative,var(--sapField_BorderColor));--iconContent:var(--fdProgress_Icon_Negative);--iconDisplay:inline;--iconColor:var(--fdProgress_Icon_Color_Negative,var(--fdProgress_Indicator_Label_Color));--labelMarginStart:0}.fd-progress-indicator--critical{--progressBarBackground:var(--fdProgress_Indicator_Background_Color_Critical);--progressBarBorderColor:var(--fdProgress_Indicator_Progress_Bar_Border_Color_Critical,transparent);--containerBackground:var(--fdProgress_Indicator_Container_Background_Critical,var(--sapField_Background));--containerBorderColor:var(--fdProgress_Indicator_Container_Border_Critical,var(--sapField_BorderColor));--iconContent:var(--fdProgress_Icon_Critical);--iconDisplay:inline;--iconColor:var(--fdProgress_Icon_Color_Critical,var(--fdProgress_Indicator_Label_Color));--labelMarginStart:0}.fd-progress-indicator .fd-progress-indicator__container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;background:var(--containerBackground);border:.0625rem solid var(--containerBorderColor);border-radius:.5rem;-ms-flex-direction:row;flex-direction:row;height:var(--fdProgress_Indicator_Container_Height);min-height:var(--fdProgress_Indicator_Container_Height);min-width:4rem;overflow:var(--fdProgress_Indicator_Container_Overflow);position:var(--fdProgress_Indicator_Container_Position,static);width:var(--fdProgress_Indicator_Container_Width)}.fd-progress-indicator .fd-progress-indicator__container:after,.fd-progress-indicator .fd-progress-indicator__container:before{background-color:var(--progressBarBackground);border-radius:50%;-webkit-box-sizing:inherit;box-sizing:inherit;content:\"\";display:var(--fdProgress_Indicator_Progress_Bar_Boundary_Display,none);font-size:inherit;height:.25rem;position:absolute;top:0;width:.25rem}.fd-progress-indicator .fd-progress-indicator__container:before{left:0}.fd-progress-indicator .fd-progress-indicator__container:after{right:0}.fd-progress-indicator[aria-valuenow=\"0\"] .fd-progress-indicator__progress-bar{border:none}.fd-progress-indicator[aria-valuenow=\"100\"] .fd-progress-indicator__progress-bar{right:var(--fdProgress_Indicator_Progress_Bar_Position_Left);width:auto!important}.fd-progress-indicator[aria-valuenow=\"100\"] .fd-progress-indicator__progress-bar[dir=rtl],.fd-progress-indicator__progress-bar,[dir=rtl] .fd-progress-indicator[aria-valuenow=\"100\"] .fd-progress-indicator__progress-bar{left:var(--fdProgress_Indicator_Progress_Bar_Position_Left)}.fd-progress-indicator__progress-bar{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:end;-ms-flex-pack:end;background:var(--progressBarBackground);border:var(--fdProgress_Indicator_Progress_Bar_Border) var(--progressBarBorderColor);border-radius:var(--fdProgress_Indicator_Progress_Bar_Border_Radius);border-right:var(--fdProgress_Indicator_Border_Right) var(--progressBarBorderRightColor);bottom:var(--fdProgress_Indicator_Progress_Bar_Position_Bottom);height:var(--fdProgress_Indicator_Progress_Bar_Height);justify-content:flex-end;margin-block:var(--fdProgress_Indicator_Progress_Bar_Margin_Block);margin-inline:0}.fd-progress-indicator__progress-bar:after,.fd-progress-indicator__progress-bar:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-progress-indicator__progress-bar .fd-progress-indicator__label{color:var(--fdProgress_Indicator_Label_Color_Contrast)}.fd-progress-indicator__progress-bar[dir=rtl],[dir=rtl] .fd-progress-indicator__progress-bar{border-right:none;border:var(--fdProgress_Indicator_Progress_Bar_Border) var(--progressBarBorderColor);border-left:var(--fdProgress_Indicator_Border_Right) var(--progressBarBorderRightColor);left:auto;right:var(--fdProgress_Indicator_Progress_Bar_Position_Left)}.fd-progress-indicator .fd-progress-indicator__remaining{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:static}.fd-progress-indicator .fd-progress-indicator__remaining:after,.fd-progress-indicator .fd-progress-indicator__remaining:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-progress-indicator .fd-progress-indicator__remaining.fd-popover__control{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;min-width:0}.fd-progress-indicator__icon{bottom:-.625rem;display:var(--iconDisplay);margin-inline:var(--fdProgress_Indicator_Label_Margin_Start) var(--fdProgress_Icon_Space_Before_Label);position:var(--fdProgress_Indicator_Icon_Position,static);right:-1.25rem}.fd-progress-indicator__icon[dir=rtl],[dir=rtl] .fd-progress-indicator__icon{left:-1.25rem;right:auto}.fd-progress-indicator__icon:before{color:var(--iconColor);content:var(--iconContent);font-family:SAP-icons;font-size:var(--fdProgress_Indicator_Icon_Font_Size);vertical-align:middle}.fd-progress-indicator__icon+.fd-progress-indicator__label{-webkit-margin-start:0;margin-inline-start:0}.fd-progress-indicator__label{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdProgress_Indicator_Label_Color);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--fdProgress_Indicator_Label_Font_Size);font-weight:400;forced-color-adjust:none;left:0;line-height:normal;margin-block:0;margin-inline:0;margin-inline:var(--labelMarginStart) var(--labelMarginEnd);max-width:100%;overflow:hidden;padding-block:0;padding-inline:0;position:var(--fdProgress_Indicator_Label_Position,static);text-overflow:ellipsis;top:-1.25rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.fd-progress-indicator__label:after,.fd-progress-indicator__label:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-progress-indicator__label[dir=rtl],[dir=rtl] .fd-progress-indicator__label{left:auto;right:0}.fd-progress-indicator__overflow{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-block:.25rem;padding-inline:0;padding-inline:.5rem 0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.5rem;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;max-width:95vw;overflow:hidden;white-space:normal}.fd-progress-indicator__overflow:after,.fd-progress-indicator__overflow:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-progress-indicator__overflow-close{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:transparent;cursor:pointer;height:1.375rem;max-height:1.375rem;max-width:1.4375rem;min-height:1.375rem;min-width:1.4375rem;text-align:center;width:1.4375rem}.fd-progress-indicator__overflow-close:after,.fd-progress-indicator__overflow-close:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-progress-indicator__overflow-close.is-focus,.fd-progress-indicator__overflow-close:focus{outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);z-index:5}.fd-progress-indicator__overflow-close [class*=sap-icon]{color:var(--sapContent_IconColor);font-size:var(--sapFontSmallSize)}.fd-progress-indicator__progress-bar--animated{-webkit-transition:min-width .5s ease-in-out,width .5s ease-in-out;-moz-transition:min-width .5s ease-in-out,width .5s ease-in-out;-o-transition:min-width .5s ease-in-out,width .5s ease-in-out;transition:min-width .5s ease-in-out,width .5s ease-in-out}.fd-progress-indicator__container .fd-popover__control{width:100%}\n/*! Bundled license information:\n\nfundamental-styles/dist/progress-indicator.css:\n (*!\n * Fundamental Library Styles v0.41.7\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "bodyAriaLabel", "bodyRole", "bodyAriaLabelledBy", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"], outputs: ["onClose"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "size", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
65
65
|
}
|
|
66
66
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ProgressIndicatorComponent, decorators: [{
|
|
67
67
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-progress-indicator.mjs","sources":["../../../../libs/core/progress-indicator/progress-indicator.component.ts","../../../../libs/core/progress-indicator/progress-indicator.component.html","../../../../libs/core/progress-indicator/progress-indicator.module.ts","../../../../libs/core/progress-indicator/fundamental-ngx-core-progress-indicator.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { PopoverBodyComponent, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { debounceTime } from 'rxjs/operators';\n\nexport type ProgressIndicatorState = 'informative' | 'positive' | 'critical' | 'negative';\n\n@Component({\n selector: 'fd-progress-indicator',\n templateUrl: './progress-indicator.component.html',\n styleUrl: './progress-indicator.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, PopoverComponent, PopoverControlComponent, PopoverBodyComponent, IconComponent]\n})\nexport class ProgressIndicatorComponent implements OnInit, OnChanges, AfterViewInit {\n /** The text to display if you would like to override the default percentage text. */\n @Input()\n valueText: string;\n\n /** Custom unit if you would like to override the default percentage. */\n @Input()\n unit = '%';\n\n /** The minimum value possible for the progress indicator. */\n @Input()\n valueMin = 0;\n\n /** The maximum value possible for the progress indicator. */\n @Input()\n valueMax = 100;\n\n /** The current value for the progress indicator. */\n @Input()\n valueNow = 0;\n\n /** The state for the progress indicator. */\n @Input()\n state?: ProgressIndicatorState;\n\n /** Whether or not to animate changes to the progress bar's valueNow. */\n @Input()\n animate = false;\n\n /** @hidden */\n hasPopover = false;\n\n /** @hidden */\n _progressBarWidth = 0;\n\n /** @hidden An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n private _elementRef: ElementRef,\n private _cdRef: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.valueText) {\n this._handleTruncation();\n }\n\n if ('valueNow' in changes || 'valueMin' in changes || 'valueMax' in changes) {\n this._progressBarWidth = this.calculateProgressBarWidth();\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n resizeObservable(this._elementRef.nativeElement)\n .pipe(debounceTime(20), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._handleTruncation();\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._handleTruncation();\n }\n\n /** @hidden */\n calculateProgressBarWidth(): number {\n return ((this.valueNow - this.valueMin) / (this.valueMax - this.valueMin)) * 100;\n }\n\n /** @hidden */\n private _handleTruncation(): void {\n const labelSpan = this._elementRef.nativeElement.querySelector('.fd-progress-indicator__label');\n this.hasPopover = labelSpan && labelSpan.offsetWidth < labelSpan.scrollWidth;\n this._cdRef.detectChanges();\n }\n}\n","<div\n class=\"fd-progress-indicator\"\n tabindex=\"-1\"\n role=\"progressbar\"\n [attr.aria-valuemin]=\"valueMin\"\n [attr.aria-valuenow]=\"valueNow\"\n [attr.aria-valuemax]=\"valueMax\"\n [attr.aria-valuetext]=\"valueText\"\n [attr.aria-label]=\"valueText\"\n [class]=\"state ? 'fd-progress-indicator--' + state : ''\"\n>\n @if (!hasPopover) {\n @if (_progressBarWidth >= 0) {\n <div class=\"fd-progress-indicator__container\">\n <ng-template [ngTemplateOutlet]=\"indicatorContainer\"></ng-template>\n </div>\n }\n } @else {\n <fd-popover\n [style.width.%]=\"100\"\n [noArrow]=\"false\"\n placement=\"bottom\"\n fillControlMode=\"equal\"\n #popover\n class=\"fd-progress-indicator__container\"\n >\n @if (_progressBarWidth >= 0) {\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"indicatorContainer\"></ng-template>\n </fd-popover-control>\n }\n <fd-popover-body>\n <div class=\"fd-popover__wrapper\">\n <div class=\"fd-progress-indicator__overflow\">\n <span>{{ valueText }}</span>\n <span class=\"fd-progress-indicator__overflow-close\" (click)=\"popover.close()\">\n <fd-icon glyph=\"decline\"></fd-icon>\n </span>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n }\n</div>\n<ng-template #indicatorContainer>\n @if (_progressBarWidth > 0) {\n <div\n class=\"fd-progress-indicator__progress-bar\"\n [class.fd-progress-indicator__progress-bar--animated]=\"animate\"\n [style.min-width.%]=\"_progressBarWidth\"\n [style.width.%]=\"_progressBarWidth\"\n >\n @if (_progressBarWidth > 50) {\n <ng-template [ngTemplateOutlet]=\"progressBarLabel\"></ng-template>\n }\n </div>\n }\n <div class=\"fd-progress-indicator__remaining\" [style.min-width]=\"0\">\n @if (_progressBarWidth <= 50) {\n <ng-template [ngTemplateOutlet]=\"progressBarLabel\"></ng-template>\n }\n </div>\n</ng-template>\n<ng-template #progressBarLabel>\n @if (state) {\n <span class=\"fd-progress-indicator__icon\"></span>\n }\n @if (!valueText) {\n <span class=\"fd-progress-indicator__label\"> {{ valueNow }}% </span>\n } @else {\n <span class=\"fd-progress-indicator__label\">\n {{ valueText }}\n </span>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { ProgressIndicatorComponent } from './progress-indicator.component';\n\n/**\n * @deprecated\n * Use `ProgressIndicatorComponent` import instead.\n */\n@NgModule({\n imports: [ProgressIndicatorComponent],\n exports: [ProgressIndicatorComponent]\n})\nexport class ProgressIndicatorModule {}\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-progress-indicator.mjs","sources":["../../../../libs/core/progress-indicator/progress-indicator.component.ts","../../../../libs/core/progress-indicator/progress-indicator.component.html","../../../../libs/core/progress-indicator/progress-indicator.module.ts","../../../../libs/core/progress-indicator/fundamental-ngx-core-progress-indicator.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { PopoverBodyComponent, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { debounceTime } from 'rxjs/operators';\n\nexport type ProgressIndicatorState = 'informative' | 'positive' | 'critical' | 'negative';\n\n@Component({\n selector: 'fd-progress-indicator',\n templateUrl: './progress-indicator.component.html',\n styleUrl: './progress-indicator.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, PopoverComponent, PopoverControlComponent, PopoverBodyComponent, IconComponent]\n})\nexport class ProgressIndicatorComponent implements OnInit, OnChanges, AfterViewInit {\n /** The text to display if you would like to override the default percentage text. */\n @Input()\n valueText: string;\n\n /** Custom unit if you would like to override the default percentage. */\n @Input()\n unit = '%';\n\n /** The minimum value possible for the progress indicator. */\n @Input()\n valueMin = 0;\n\n /** The maximum value possible for the progress indicator. */\n @Input()\n valueMax = 100;\n\n /** The current value for the progress indicator. */\n @Input()\n valueNow = 0;\n\n /** The state for the progress indicator. */\n @Input()\n state?: ProgressIndicatorState;\n\n /** Whether or not to animate changes to the progress bar's valueNow. */\n @Input()\n animate = false;\n\n /** @hidden */\n hasPopover = false;\n\n /** @hidden */\n _progressBarWidth = 0;\n\n /** @hidden An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n private _elementRef: ElementRef,\n private _cdRef: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.valueText) {\n this._handleTruncation();\n }\n\n if ('valueNow' in changes || 'valueMin' in changes || 'valueMax' in changes) {\n this._progressBarWidth = this.calculateProgressBarWidth();\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n resizeObservable(this._elementRef.nativeElement)\n .pipe(debounceTime(20), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._handleTruncation();\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._handleTruncation();\n }\n\n /** @hidden */\n calculateProgressBarWidth(): number {\n return ((this.valueNow - this.valueMin) / (this.valueMax - this.valueMin)) * 100;\n }\n\n /** @hidden */\n private _handleTruncation(): void {\n const labelSpan = this._elementRef.nativeElement.querySelector('.fd-progress-indicator__label');\n this.hasPopover = labelSpan && labelSpan.offsetWidth < labelSpan.scrollWidth;\n this._cdRef.detectChanges();\n }\n}\n","<div\n class=\"fd-progress-indicator\"\n tabindex=\"-1\"\n role=\"progressbar\"\n [attr.aria-valuemin]=\"valueMin\"\n [attr.aria-valuenow]=\"valueNow\"\n [attr.aria-valuemax]=\"valueMax\"\n [attr.aria-valuetext]=\"valueText\"\n [attr.aria-label]=\"valueText\"\n [class]=\"state ? 'fd-progress-indicator--' + state : ''\"\n>\n @if (!hasPopover) {\n @if (_progressBarWidth >= 0) {\n <div class=\"fd-progress-indicator__container\">\n <ng-template [ngTemplateOutlet]=\"indicatorContainer\"></ng-template>\n </div>\n }\n } @else {\n <fd-popover\n [style.width.%]=\"100\"\n [noArrow]=\"false\"\n placement=\"bottom\"\n fillControlMode=\"equal\"\n #popover\n class=\"fd-progress-indicator__container\"\n >\n @if (_progressBarWidth >= 0) {\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"indicatorContainer\"></ng-template>\n </fd-popover-control>\n }\n <fd-popover-body>\n <div class=\"fd-popover__wrapper\">\n <div class=\"fd-progress-indicator__overflow\">\n <span>{{ valueText }}</span>\n <span class=\"fd-progress-indicator__overflow-close\" (click)=\"popover.close()\">\n <fd-icon glyph=\"decline\"></fd-icon>\n </span>\n </div>\n </div>\n </fd-popover-body>\n </fd-popover>\n }\n</div>\n<ng-template #indicatorContainer>\n @if (_progressBarWidth > 0) {\n <div\n class=\"fd-progress-indicator__progress-bar\"\n [class.fd-progress-indicator__progress-bar--animated]=\"animate\"\n [style.min-width.%]=\"_progressBarWidth\"\n [style.width.%]=\"_progressBarWidth\"\n >\n @if (_progressBarWidth > 50) {\n <ng-template [ngTemplateOutlet]=\"progressBarLabel\"></ng-template>\n }\n </div>\n }\n <div class=\"fd-progress-indicator__remaining\" [style.min-width]=\"0\">\n @if (_progressBarWidth <= 50) {\n <ng-template [ngTemplateOutlet]=\"progressBarLabel\"></ng-template>\n }\n </div>\n</ng-template>\n<ng-template #progressBarLabel>\n @if (state) {\n <span class=\"fd-progress-indicator__icon\"></span>\n }\n @if (!valueText) {\n <span class=\"fd-progress-indicator__label\"> {{ valueNow }}% </span>\n } @else {\n <span class=\"fd-progress-indicator__label\">\n {{ valueText }}\n </span>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { ProgressIndicatorComponent } from './progress-indicator.component';\n\n/**\n * @deprecated\n * Use `ProgressIndicatorComponent` import instead.\n */\n@NgModule({\n imports: [ProgressIndicatorComponent],\n exports: [ProgressIndicatorComponent]\n})\nexport class ProgressIndicatorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -347,7 +347,7 @@ class RatingIndicatorComponent {
|
|
|
347
347
|
multi: true
|
|
348
348
|
},
|
|
349
349
|
registerFormItemControl(RatingIndicatorComponent)
|
|
350
|
-
], ngImport: i0, template: "<ng-template #zeroRate let-halves=\"halves\">\n <input\n [attr.aria-label]=\"('coreRatingIndicator.ariaLabelReset' | fdTranslate)()\"\n role=\"button\"\n type=\"radio\"\n class=\"fd-rating-indicator__input fd-rating-indicator__input--zero-rating\"\n (change)=\"onSelect(0)\"\n [disabled]=\"disabled() || nonInteractive() || displayMode()\"\n name=\"rating-{{ ratingUID }}{{ halves ? '-halves' : '' }}\"\n [attr.checked]=\"displayValue() === 0 ? true : null\"\n value=\"0\"\n />\n <label class=\"fd-rating-indicator__label fd-rating-indicator__label--zero-rating\" aria-hidden=\"true\"></label>\n</ng-template>\n<!-- role=\"application\" is used in order to let user to change value with left/right arrows in JAWS, since JAWS ovverrides these actions -->\n<div\n class=\"fd-rating-indicator__container\"\n role=\"application\"\n [attr.aria-roledescription]=\"ariaRoledescription() || ('coreRatingIndicator.ariaRoleDescription' | fdTranslate)()\"\n>\n <!-- Zero value if we don't have provided value from user, `ratingAverage` or `ratings` -->\n <ng-template [ngTemplateOutlet]=\"zeroRate\"></ng-template>\n <!-- Available rate values -->\n @for (rate of rates(); track rate.id; let i = $index) {\n <input\n [attr.aria-label]=\"i | ratingStarLabel: rates().length : allowHalves() : language()\"\n role=\"button\"\n type=\"radio\"\n class=\"fd-rating-indicator__input\"\n [disabled]=\"disabled() || nonInteractive() || displayMode()\"\n [id]=\"rate.id\"\n name=\"rating-{{ ratingUID }}\"\n [value]=\"rate.value\"\n [attr.checked]=\"displayValue() === rate.value ? true : null\"\n (change)=\"onSelect(rate.value)\"\n />\n <label class=\"fd-rating-indicator__label\" [for]=\"rate.id\" aria-hidden=\"true\">\n @if (ratedIcon()) {\n <i class=\"fd-rating-indicator__label-rated\" [class]=\"unratedIcon()\"></i>\n }\n @if (unratedIcon()) {\n <i class=\"fd-rating-indicator__label-unrated\" [class]=\"ratedIcon()\"></i>\n }\n </label>\n }\n</div>\n<!-- Popover if displayAllRatings is true and we have ratings object -->\n@if (showDynamicText()) {\n @if (displayAllRatings() && ratingItems().length) {\n <span [fdPopoverTrigger]=\"allRatingContent\" class=\"fd-rating-indicator__dynamic-text\">\n (<span [attr.aria-label]=\"('coreRatingIndicator.ariaLabelTotalRating' | fdTranslate)()\" fd-link>{{\n computedTotalRatings\n }}</span\n >)\n </span>\n } @else if (computedTotalRatings !== undefined && computedTotalRatings !== null) {\n <span class=\"fd-rating-indicator__dynamic-text\">({{ computedTotalRatings }})</span>\n } @else {\n <span class=\"fd-rating-indicator__dynamic-text\"\n >({{ displayValue() }} {{ dynamicTextIndicator() }} {{ indicatorCapacity() }})</span\n >\n }\n}\n<fd-popover\n #allRatingContent\n [triggers]=\"['mouseenter', 'mouseleave']\"\n [noArrow]=\"false\"\n placement=\"top\"\n additionalBodyClass=\"fd-rating-indicator__popover\"\n>\n @for (rating of ratingItems(); track rating) {\n <div class=\"fd-rating-indicator__sum-row\" [class]=\"sizeClass()\">\n <div class=\"fd-rating-indicator__container\">\n @for (rate of rates(); track rate.id) {\n <span\n [class.fd-rating-indicator__input-checked]=\"rate.value === rating.rate\"\n class=\"fd-rating-indicator__input\"\n ></span>\n <label class=\"fd-rating-indicator__label\">\n @if (ratedIcon()) {\n <i class=\"fd-rating-indicator__label-rated\" [class]=\"unratedIcon()\"></i>\n }\n @if (unratedIcon()) {\n <i class=\"fd-rating-indicator__label-unrated\" [class]=\"ratedIcon()\"></i>\n }\n </label>\n }\n </div>\n ({{ rating.votes }})\n </div>\n }\n</fd-popover>\n", styles: [".fd-rating-indicator{--fontSize:1.375rem;--spacingBetweenIcons:.1875rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative}.fd-rating-indicator:after,.fd-rating-indicator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-rating-indicator--cozy{--fontSize:1.5rem;--spacingBetweenIcons:.1875rem;margin-block:.8125rem;margin-inline:0}.fd-rating-indicator--compact{margin-block:.5rem;margin-inline:0}.fd-rating-indicator--compact,.fd-rating-indicator--condensed{--fontSize:1rem;--spacingBetweenIcons:.125rem}.fd-rating-indicator--xs{--fontSize:.75rem;--spacingBetweenIcons:1px}.fd-rating-indicator--sm{--fontSize:1rem;--spacingBetweenIcons:.125rem}.fd-rating-indicator--md{--fontSize:1.375rem;--spacingBetweenIcons:.1875rem}.fd-rating-indicator--lg{--fontSize:2rem;--spacingBetweenIcons:.25rem}.fd-rating-indicator__container{border:0;border-radius:var(--fdRating_Indicator_Border_Radius);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-rating-indicator__container:after,.fd-rating-indicator__container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-rating-indicator__container:focus-within{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:var(--fdRating_Indicator_Focus_Outline_Offset,0)}.fd-rating-indicator__container:focus-within .fd-rating-indicator__input,.fd-rating-indicator__container:focus-within .fd-rating-indicator__label{outline:none!important}.fd-rating-indicator__input{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fontSize);line-height:normal;margin-block:0;margin-inline:0;opacity:.0001;padding-block:0;padding-inline:0;position:absolute;top:0;width:var(--fontSize);z-index:-1}.fd-rating-indicator__input:after,.fd-rating-indicator__input:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-rating-indicator__input:checked.is-focus,.fd-rating-indicator__input:checked:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth)}.fd-rating-indicator__input:checked.is-focus+.fd-rating-indicator__label,.fd-rating-indicator__input:checked:focus+.fd-rating-indicator__label{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:0}.fd-rating-indicator__label{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;float:left;height:var(--fontSize);opacity:1;-webkit-margin-end:var(--spacingBetweenIcons);margin-inline-end:var(--spacingBetweenIcons)}.fd-rating-indicator__label:after,.fd-rating-indicator__label:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-rating-indicator__label:before{color:var(--sapContent_RatedColor);content:\"\\e065\";font-family:SAP-icons;font-size:var(--fontSize)}.fd-rating-indicator__label:last-child{-webkit-margin-end:0;margin-inline-end:0}.fd-rating-indicator__label:hover:before{opacity:var(--fdRating_Indicator_Selected_Hover_Opacity);-webkit-transition:opacity .125s ease-in;transition:opacity .125s ease-in}.fd-rating-indicator .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label:before{color:var(--sapContent_UnratedColor);content:\"\\e0a1\"}.fd-rating-indicator__dynamic-text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontSmallSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap;-webkit-margin-start:.5rem;margin-inline-start:.5rem}.fd-rating-indicator__dynamic-text:after,.fd-rating-indicator__dynamic-text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-rating-indicator--hide-dynamic-text>.fd-rating-indicator__dynamic-text{display:none}.fd-rating-indicator[dir=rtl] .fd-rating-indicator__label,[dir=rtl] .fd-rating-indicator .fd-rating-indicator__label{float:right}.fd-rating-indicator.is-disabled,.fd-rating-indicator:disabled,.fd-rating-indicator[aria-disabled=true]{opacity:var(--fdRating_Indicator_Disabled_Control_Opacity);pointer-events:none}.fd-rating-indicator.is-disabled .fd-rating-indicator__input:before,.fd-rating-indicator:disabled .fd-rating-indicator__input:before,.fd-rating-indicator[aria-disabled=true] .fd-rating-indicator__input:before{color:var(--fdRating_Indicator_Disabled_Selected_Color);content:\"\\e065\"}.fd-rating-indicator.is-disabled .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label:before,.fd-rating-indicator:disabled .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label:before,.fd-rating-indicator[aria-disabled=true] .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label:before{color:var(--fdRating_Indicator_Disabled_Unselected_Color);content:\"\\e065\";font-size:calc(var(--fontSize)*var(--fdRating_Indicator_View_Mode_Unselected_Icon_Size_Ratio))}.fd-rating-indicator--display-mode{--fontSize:1rem}.fd-rating-indicator--display-mode .fd-rating-indicator__label{-webkit-margin-end:.125rem;margin-inline-end:.125rem}.fd-rating-indicator--display-mode .fd-rating-indicator__label:before{color:var(--fdRating_Indicator_Display_Only_Selected_Color);content:\"\\e065\";font-size:var(--fontSize)}.fd-rating-indicator--display-mode,.fd-rating-indicator--non-interactive{pointer-events:none}.fd-rating-indicator--display-mode .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label:before,.fd-rating-indicator--non-interactive .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label:before{color:var(--sapContent_UnratedColor);content:\"\\e065\";font-size:calc(var(--fontSize)*var(--fdRating_Indicator_View_Mode_Unselected_Icon_Size_Ratio))}.fd-rating-indicator--icon .fd-rating-indicator__label{height:var(--fontSize);width:var(--fontSize)}.fd-rating-indicator--icon .fd-rating-indicator__label:after,.fd-rating-indicator--icon .fd-rating-indicator__label:before{content:none!important}.fd-rating-indicator--icon .fd-rating-indicator__label-rated,.fd-rating-indicator--icon .fd-rating-indicator__label-unrated{font-size:var(--fontSize);height:100%;line-height:1}.fd-rating-indicator--icon .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-rated,.fd-rating-indicator--icon .fd-rating-indicator__label-unrated{display:none}.fd-rating-indicator--icon .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated{display:block}.fd-rating-indicator--half-star .fd-rating-indicator__input{height:var(--fontSize);width:calc(var(--fontSize)*.5)}.fd-rating-indicator--half-star .fd-rating-indicator__label{-webkit-margin-end:0;margin-inline-end:0;overflow:hidden;width:calc(var(--fontSize)*.5)}.fd-rating-indicator--half-star .fd-rating-indicator__label:nth-child(4n+6){-webkit-margin-end:var(--spacingBetweenIcons);margin-inline-end:var(--spacingBetweenIcons);-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.fd-rating-indicator--half-star .fd-rating-indicator__label:last-child{-webkit-margin-end:0;margin-inline-end:0}.fd-rating-indicator--half-star .fd-rating-indicator--icon .fd-rating-indicator__label{width:calc(var(--fontSize)*.5)}.fd-rating-indicator--half-star .fd-rating-indicator .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label{width:calc(var(--fontSize)*var(--fdRating_Indicator_View_Mode_Unselected_Icon_Size_Ratio)*.5)}.fd-rating-indicator--half-star.fd-rating-indicator--display-mode .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star.fd-rating-indicator--non-interactive .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star.is-disabled .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star:disabled .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star[aria-disabled=true] .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label{width:calc(var(--fontSize)*.5)}.fd-rating-indicator--half-star.fd-rating-indicator--display-mode .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star.fd-rating-indicator--display-mode .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label:before,.fd-rating-indicator--half-star.fd-rating-indicator--non-interactive .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star.fd-rating-indicator--non-interactive .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label:before,.fd-rating-indicator--half-star.is-disabled .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star.is-disabled .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label:before,.fd-rating-indicator--half-star:disabled .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star:disabled .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label:before,.fd-rating-indicator--half-star[aria-disabled=true] .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star[aria-disabled=true] .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label:before{font-size:var(--fontSize)}.fd-rating-indicator--half-star.fd-rating-indicator--display-mode .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star.fd-rating-indicator--non-interactive .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star.is-disabled .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star:disabled .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star[aria-disabled=true] .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label{width:calc(var(--fontSize)*var(--fdRating_Indicator_View_Mode_Unselected_Icon_Size_Ratio)*.5)}.fd-rating-indicator--half-star.fd-rating-indicator--display-mode .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star.fd-rating-indicator--non-interactive .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star.is-disabled .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star:disabled .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star[aria-disabled=true] .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before{font-size:calc(var(--fontSize)*var(--fdRating_Indicator_View_Mode_Unselected_Icon_Size_Ratio))}.fd-rating-indicator[class*=fd-rating-indicator--] .fd-rating-indicator__input--zero-rating,.fd-rating-indicator[class*=fd-rating-indicator--] .fd-rating-indicator__label--zero-rating,.fd-rating-indicator__input--zero-rating,.fd-rating-indicator__label--zero-rating{margin-block:0;margin-inline:0;opacity:.0001;overflow:hidden;padding-block:0;padding-inline:0;width:0}.fd-rating-indicator__popover{padding:.5rem 0!important}.fd-rating-indicator__popover .fd-rating-indicator__sum-row{display:flex;align-items:center;padding:.5rem 1rem;margin:0}.fd-rating-indicator__popover .fd-rating-indicator__sum-row .fd-rating-indicator__container{margin-right:.5rem}\n/*! Bundled license information:\n\nfundamental-styles/dist/rating-indicator.css:\n (*!\n * Fundamental Library Styles v0.41.7\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: PopoverTriggerDirective, selector: "[fdPopoverTrigger], [fd-popover-trigger]", inputs: ["fdPopoverTrigger"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "bodyAriaLabel", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "pipe", type: RatingStarLabelPipe, name: "ratingStarLabel" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
350
|
+
], ngImport: i0, template: "<ng-template #zeroRate let-halves=\"halves\">\n <input\n [attr.aria-label]=\"('coreRatingIndicator.ariaLabelReset' | fdTranslate)()\"\n role=\"button\"\n type=\"radio\"\n class=\"fd-rating-indicator__input fd-rating-indicator__input--zero-rating\"\n (change)=\"onSelect(0)\"\n [disabled]=\"disabled() || nonInteractive() || displayMode()\"\n name=\"rating-{{ ratingUID }}{{ halves ? '-halves' : '' }}\"\n [attr.checked]=\"displayValue() === 0 ? true : null\"\n value=\"0\"\n />\n <label class=\"fd-rating-indicator__label fd-rating-indicator__label--zero-rating\" aria-hidden=\"true\"></label>\n</ng-template>\n<!-- role=\"application\" is used in order to let user to change value with left/right arrows in JAWS, since JAWS ovverrides these actions -->\n<div\n class=\"fd-rating-indicator__container\"\n role=\"application\"\n [attr.aria-roledescription]=\"ariaRoledescription() || ('coreRatingIndicator.ariaRoleDescription' | fdTranslate)()\"\n>\n <!-- Zero value if we don't have provided value from user, `ratingAverage` or `ratings` -->\n <ng-template [ngTemplateOutlet]=\"zeroRate\"></ng-template>\n <!-- Available rate values -->\n @for (rate of rates(); track rate.id; let i = $index) {\n <input\n [attr.aria-label]=\"i | ratingStarLabel: rates().length : allowHalves() : language()\"\n role=\"button\"\n type=\"radio\"\n class=\"fd-rating-indicator__input\"\n [disabled]=\"disabled() || nonInteractive() || displayMode()\"\n [id]=\"rate.id\"\n name=\"rating-{{ ratingUID }}\"\n [value]=\"rate.value\"\n [attr.checked]=\"displayValue() === rate.value ? true : null\"\n (change)=\"onSelect(rate.value)\"\n />\n <label class=\"fd-rating-indicator__label\" [for]=\"rate.id\" aria-hidden=\"true\">\n @if (ratedIcon()) {\n <i class=\"fd-rating-indicator__label-rated\" [class]=\"unratedIcon()\"></i>\n }\n @if (unratedIcon()) {\n <i class=\"fd-rating-indicator__label-unrated\" [class]=\"ratedIcon()\"></i>\n }\n </label>\n }\n</div>\n<!-- Popover if displayAllRatings is true and we have ratings object -->\n@if (showDynamicText()) {\n @if (displayAllRatings() && ratingItems().length) {\n <span [fdPopoverTrigger]=\"allRatingContent\" class=\"fd-rating-indicator__dynamic-text\">\n (<span [attr.aria-label]=\"('coreRatingIndicator.ariaLabelTotalRating' | fdTranslate)()\" fd-link>{{\n computedTotalRatings\n }}</span\n >)\n </span>\n } @else if (computedTotalRatings !== undefined && computedTotalRatings !== null) {\n <span class=\"fd-rating-indicator__dynamic-text\">({{ computedTotalRatings }})</span>\n } @else {\n <span class=\"fd-rating-indicator__dynamic-text\"\n >({{ displayValue() }} {{ dynamicTextIndicator() }} {{ indicatorCapacity() }})</span\n >\n }\n}\n<fd-popover\n #allRatingContent\n [triggers]=\"['mouseenter', 'mouseleave']\"\n [noArrow]=\"false\"\n placement=\"top\"\n additionalBodyClass=\"fd-rating-indicator__popover\"\n>\n @for (rating of ratingItems(); track rating) {\n <div class=\"fd-rating-indicator__sum-row\" [class]=\"sizeClass()\">\n <div class=\"fd-rating-indicator__container\">\n @for (rate of rates(); track rate.id) {\n <span\n [class.fd-rating-indicator__input-checked]=\"rate.value === rating.rate\"\n class=\"fd-rating-indicator__input\"\n ></span>\n <label class=\"fd-rating-indicator__label\">\n @if (ratedIcon()) {\n <i class=\"fd-rating-indicator__label-rated\" [class]=\"unratedIcon()\"></i>\n }\n @if (unratedIcon()) {\n <i class=\"fd-rating-indicator__label-unrated\" [class]=\"ratedIcon()\"></i>\n }\n </label>\n }\n </div>\n ({{ rating.votes }})\n </div>\n }\n</fd-popover>\n", styles: [".fd-rating-indicator{--fontSize:1.375rem;--spacingBetweenIcons:.1875rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative}.fd-rating-indicator:after,.fd-rating-indicator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-rating-indicator--cozy{--fontSize:1.5rem;--spacingBetweenIcons:.1875rem;margin-block:.8125rem;margin-inline:0}.fd-rating-indicator--compact{margin-block:.5rem;margin-inline:0}.fd-rating-indicator--compact,.fd-rating-indicator--condensed{--fontSize:1rem;--spacingBetweenIcons:.125rem}.fd-rating-indicator--xs{--fontSize:.75rem;--spacingBetweenIcons:1px}.fd-rating-indicator--sm{--fontSize:1rem;--spacingBetweenIcons:.125rem}.fd-rating-indicator--md{--fontSize:1.375rem;--spacingBetweenIcons:.1875rem}.fd-rating-indicator--lg{--fontSize:2rem;--spacingBetweenIcons:.25rem}.fd-rating-indicator__container{border:0;border-radius:var(--fdRating_Indicator_Border_Radius);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-rating-indicator__container:after,.fd-rating-indicator__container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-rating-indicator__container:focus-within{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:var(--fdRating_Indicator_Focus_Outline_Offset,0)}.fd-rating-indicator__container:focus-within .fd-rating-indicator__input,.fd-rating-indicator__container:focus-within .fd-rating-indicator__label{outline:none!important}.fd-rating-indicator__input{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fontSize);line-height:normal;margin-block:0;margin-inline:0;opacity:.0001;padding-block:0;padding-inline:0;position:absolute;top:0;width:var(--fontSize);z-index:-1}.fd-rating-indicator__input:after,.fd-rating-indicator__input:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-rating-indicator__input:checked.is-focus,.fd-rating-indicator__input:checked:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth)}.fd-rating-indicator__input:checked.is-focus+.fd-rating-indicator__label,.fd-rating-indicator__input:checked:focus+.fd-rating-indicator__label{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:0}.fd-rating-indicator__label{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;float:left;height:var(--fontSize);opacity:1;-webkit-margin-end:var(--spacingBetweenIcons);margin-inline-end:var(--spacingBetweenIcons)}.fd-rating-indicator__label:after,.fd-rating-indicator__label:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-rating-indicator__label:before{color:var(--sapContent_RatedColor);content:\"\\e065\";font-family:SAP-icons;font-size:var(--fontSize)}.fd-rating-indicator__label:last-child{-webkit-margin-end:0;margin-inline-end:0}.fd-rating-indicator__label:hover:before{opacity:var(--fdRating_Indicator_Selected_Hover_Opacity);-webkit-transition:opacity .125s ease-in;transition:opacity .125s ease-in}.fd-rating-indicator .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label:before{color:var(--sapContent_UnratedColor);content:\"\\e0a1\"}.fd-rating-indicator__dynamic-text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontSmallSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap;-webkit-margin-start:.5rem;margin-inline-start:.5rem}.fd-rating-indicator__dynamic-text:after,.fd-rating-indicator__dynamic-text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-rating-indicator--hide-dynamic-text>.fd-rating-indicator__dynamic-text{display:none}.fd-rating-indicator[dir=rtl] .fd-rating-indicator__label,[dir=rtl] .fd-rating-indicator .fd-rating-indicator__label{float:right}.fd-rating-indicator.is-disabled,.fd-rating-indicator:disabled,.fd-rating-indicator[aria-disabled=true]{opacity:var(--fdRating_Indicator_Disabled_Control_Opacity);pointer-events:none}.fd-rating-indicator.is-disabled .fd-rating-indicator__input:before,.fd-rating-indicator:disabled .fd-rating-indicator__input:before,.fd-rating-indicator[aria-disabled=true] .fd-rating-indicator__input:before{color:var(--fdRating_Indicator_Disabled_Selected_Color);content:\"\\e065\"}.fd-rating-indicator.is-disabled .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label:before,.fd-rating-indicator:disabled .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label:before,.fd-rating-indicator[aria-disabled=true] .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label:before{color:var(--fdRating_Indicator_Disabled_Unselected_Color);content:\"\\e065\";font-size:calc(var(--fontSize)*var(--fdRating_Indicator_View_Mode_Unselected_Icon_Size_Ratio))}.fd-rating-indicator--display-mode{--fontSize:1rem}.fd-rating-indicator--display-mode .fd-rating-indicator__label{-webkit-margin-end:.125rem;margin-inline-end:.125rem}.fd-rating-indicator--display-mode .fd-rating-indicator__label:before{color:var(--fdRating_Indicator_Display_Only_Selected_Color);content:\"\\e065\";font-size:var(--fontSize)}.fd-rating-indicator--display-mode,.fd-rating-indicator--non-interactive{pointer-events:none}.fd-rating-indicator--display-mode .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label:before,.fd-rating-indicator--non-interactive .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label:before{color:var(--sapContent_UnratedColor);content:\"\\e065\";font-size:calc(var(--fontSize)*var(--fdRating_Indicator_View_Mode_Unselected_Icon_Size_Ratio))}.fd-rating-indicator--icon .fd-rating-indicator__label{height:var(--fontSize);width:var(--fontSize)}.fd-rating-indicator--icon .fd-rating-indicator__label:after,.fd-rating-indicator--icon .fd-rating-indicator__label:before{content:none!important}.fd-rating-indicator--icon .fd-rating-indicator__label-rated,.fd-rating-indicator--icon .fd-rating-indicator__label-unrated{font-size:var(--fontSize);height:100%;line-height:1}.fd-rating-indicator--icon .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-rated,.fd-rating-indicator--icon .fd-rating-indicator__label-unrated{display:none}.fd-rating-indicator--icon .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated{display:block}.fd-rating-indicator--half-star .fd-rating-indicator__input{height:var(--fontSize);width:calc(var(--fontSize)*.5)}.fd-rating-indicator--half-star .fd-rating-indicator__label{-webkit-margin-end:0;margin-inline-end:0;overflow:hidden;width:calc(var(--fontSize)*.5)}.fd-rating-indicator--half-star .fd-rating-indicator__label:nth-child(4n+6){-webkit-margin-end:var(--spacingBetweenIcons);margin-inline-end:var(--spacingBetweenIcons);-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.fd-rating-indicator--half-star .fd-rating-indicator__label:last-child{-webkit-margin-end:0;margin-inline-end:0}.fd-rating-indicator--half-star .fd-rating-indicator--icon .fd-rating-indicator__label{width:calc(var(--fontSize)*.5)}.fd-rating-indicator--half-star .fd-rating-indicator .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label{width:calc(var(--fontSize)*var(--fdRating_Indicator_View_Mode_Unselected_Icon_Size_Ratio)*.5)}.fd-rating-indicator--half-star.fd-rating-indicator--display-mode .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star.fd-rating-indicator--non-interactive .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star.is-disabled .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star:disabled .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star[aria-disabled=true] .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label{width:calc(var(--fontSize)*.5)}.fd-rating-indicator--half-star.fd-rating-indicator--display-mode .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star.fd-rating-indicator--display-mode .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label:before,.fd-rating-indicator--half-star.fd-rating-indicator--non-interactive .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star.fd-rating-indicator--non-interactive .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label:before,.fd-rating-indicator--half-star.is-disabled .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star.is-disabled .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label:before,.fd-rating-indicator--half-star:disabled .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star:disabled .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label:before,.fd-rating-indicator--half-star[aria-disabled=true] .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star[aria-disabled=true] .fd-rating-indicator__input:nth-child(4n+3):checked+.fd-rating-indicator__label+.fd-rating-indicator__input+.fd-rating-indicator__label:before{font-size:var(--fontSize)}.fd-rating-indicator--half-star.fd-rating-indicator--display-mode .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star.fd-rating-indicator--non-interactive .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star.is-disabled .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star:disabled .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label,.fd-rating-indicator--half-star[aria-disabled=true] .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label{width:calc(var(--fontSize)*var(--fdRating_Indicator_View_Mode_Unselected_Icon_Size_Ratio)*.5)}.fd-rating-indicator--half-star.fd-rating-indicator--display-mode .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star.fd-rating-indicator--non-interactive .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star.is-disabled .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star:disabled .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before,.fd-rating-indicator--half-star[aria-disabled=true] .fd-rating-indicator__input:checked~.fd-rating-indicator__input+.fd-rating-indicator__label .fd-rating-indicator__label-unrated:before{font-size:calc(var(--fontSize)*var(--fdRating_Indicator_View_Mode_Unselected_Icon_Size_Ratio))}.fd-rating-indicator[class*=fd-rating-indicator--] .fd-rating-indicator__input--zero-rating,.fd-rating-indicator[class*=fd-rating-indicator--] .fd-rating-indicator__label--zero-rating,.fd-rating-indicator__input--zero-rating,.fd-rating-indicator__label--zero-rating{margin-block:0;margin-inline:0;opacity:.0001;overflow:hidden;padding-block:0;padding-inline:0;width:0}.fd-rating-indicator__popover{padding:.5rem 0!important}.fd-rating-indicator__popover .fd-rating-indicator__sum-row{display:flex;align-items:center;padding:.5rem 1rem;margin:0}.fd-rating-indicator__popover .fd-rating-indicator__sum-row .fd-rating-indicator__container{margin-right:.5rem}\n/*! Bundled license information:\n\nfundamental-styles/dist/rating-indicator.css:\n (*!\n * Fundamental Library Styles v0.41.7\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: PopoverTriggerDirective, selector: "[fdPopoverTrigger], [fd-popover-trigger]", inputs: ["fdPopoverTrigger"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["config", "title", "trigger", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll", "placement", "maxWidth", "fillControlMode", "closeOnOutsideClick", "closeOnEscapeKey", "disabled", "triggers", "focusTrapped", "focusAutoCapture", "restoreFocusOnClose", "noArrow", "disableScrollbar", "appendTo", "placementContainer", "scrollStrategy", "cdkPositions", "applyOverlay", "additionalBodyClass", "additionalTriggerClass", "closeOnNavigation", "fixedPosition", "resizable", "bodyAriaLabel", "bodyRole", "bodyAriaLabelledBy", "isOpen"], outputs: ["triggerChange", "isOpenChange", "beforeOpen"] }, { kind: "pipe", type: RatingStarLabelPipe, name: "ratingStarLabel" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
351
351
|
}
|
|
352
352
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: RatingIndicatorComponent, decorators: [{
|
|
353
353
|
type: Component,
|