@fundamental-ngx/core 0.46.1-rc.4 → 0.46.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/carousel/carousel-item/carousel-item.component.d.ts +1 -1
- package/carousel/carousel.component.d.ts +7 -15
- package/esm2022/carousel/carousel-item/carousel-item.component.mjs +3 -3
- package/esm2022/carousel/carousel.component.mjs +40 -37
- package/fesm2022/fundamental-ngx-core-carousel.mjs +37 -34
- package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fundamental-ngx-core-v0.46.1.tgz +0 -0
- package/package.json +3 -3
- package/schematics/add-dependencies/index.js +4 -4
- package/fundamental-ngx-core-v0.46.1-rc.4.tgz +0 -0
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, Input, HostBinding, EventEmitter, Injectable, Inject, Output, ContentChildren, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, ViewChild, HostListener, NgModule } from '@angular/core';
|
|
2
|
+
import { Directive, Input, HostBinding, EventEmitter, Injectable, Inject, Output, ContentChildren, Component, ChangeDetectionStrategy, ViewEncapsulation, inject, DestroyRef, Optional, ViewChild, HostListener, NgModule } from '@angular/core';
|
|
3
3
|
import { DOCUMENT, NgIf, NgTemplateOutlet, NgClass, NgFor } from '@angular/common';
|
|
4
4
|
import { Subject, merge, fromEvent } from 'rxjs';
|
|
5
5
|
import { takeUntil, take, debounceTime } from 'rxjs/operators';
|
|
6
|
+
import { LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW } from '@angular/cdk/keycodes';
|
|
7
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
8
|
import * as i2 from '@fundamental-ngx/cdk/utils';
|
|
7
|
-
import { resizeObservable } from '@fundamental-ngx/cdk/utils';
|
|
8
|
-
import {
|
|
9
|
+
import { KeyUtil, resizeObservable } from '@fundamental-ngx/cdk/utils';
|
|
10
|
+
import { ButtonComponent } from '@fundamental-ngx/core/button';
|
|
9
11
|
import { FdTranslatePipe } from '@fundamental-ngx/i18n';
|
|
10
|
-
import
|
|
11
|
-
import { ButtonModule } from '@fundamental-ngx/core/button';
|
|
12
|
+
import { BusyIndicatorComponent } from '@fundamental-ngx/core/busy-indicator';
|
|
12
13
|
|
|
13
14
|
let carouselItemCounter$1 = 0;
|
|
14
15
|
class CarouselItemDirective {
|
|
@@ -483,11 +484,11 @@ class CarouselItemComponent {
|
|
|
483
484
|
return this.element.getBoundingClientRect().height || this.initialHeight;
|
|
484
485
|
}
|
|
485
486
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: CarouselItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
486
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: CarouselItemComponent, isStandalone: true, selector: "fd-carousel-item", inputs: { id: "id", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", loading: "loading", title: "title", initialHeight: "initialHeight", initialWidth: "initialWidth", value: "value" }, host: { properties: { "attr.id": "this.id", "attr.aria-label": "this.ariaLabel", "attr.aria-labelledby": "this.ariaLabelledBy", "attr.aria-describedby": "this.ariaDescribedBy", "attr.title": "this.title", "class.fd-carousel__item": "this.carouselItem", "class.fd-carousel__item--active": "this.carouselItemActive", "style.visibility": "this._visibility" } }, ngImport: i0, template: "<fd-busy-indicator [loading]=\"loading\">\n <ng-content></ng-content>\n</fd-busy-indicator>\n", dependencies: [{ kind: "component", type: BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
487
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: CarouselItemComponent, isStandalone: true, selector: "fd-carousel-item", inputs: { id: "id", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", loading: "loading", title: "title", initialHeight: "initialHeight", initialWidth: "initialWidth", value: "value" }, host: { properties: { "attr.id": "this.id", "attr.aria-label": "this.ariaLabel", "attr.aria-labelledby": "this.ariaLabelledBy", "attr.aria-describedby": "this.ariaDescribedBy", "attr.title": "this.title", "class.fd-carousel__item": "this.carouselItem", "class.fd-carousel__item--active": "this.carouselItemActive", "style.visibility": "this._visibility" } }, ngImport: i0, template: "<fd-busy-indicator [loading]=\"loading\" [style.max-width.%]=\"100\">\n <ng-content></ng-content>\n</fd-busy-indicator>\n", styles: [".fd-carousel__slides{min-width:initial!important}.fd-carousel__item--active{display:flex;max-width:100%}\n"], dependencies: [{ kind: "component", type: BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
487
488
|
}
|
|
488
489
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: CarouselItemComponent, decorators: [{
|
|
489
490
|
type: Component,
|
|
490
|
-
args: [{ selector: 'fd-carousel-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [BusyIndicatorComponent], template: "<fd-busy-indicator [loading]=\"loading\">\n <ng-content></ng-content>\n</fd-busy-indicator>\n" }]
|
|
491
|
+
args: [{ selector: 'fd-carousel-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [BusyIndicatorComponent], template: "<fd-busy-indicator [loading]=\"loading\" [style.max-width.%]=\"100\">\n <ng-content></ng-content>\n</fd-busy-indicator>\n", styles: [".fd-carousel__slides{min-width:initial!important}.fd-carousel__item--active{display:flex;max-width:100%}\n"] }]
|
|
491
492
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { id: [{
|
|
492
493
|
type: Input
|
|
493
494
|
}, {
|
|
@@ -644,8 +645,28 @@ class CarouselComponent {
|
|
|
644
645
|
this._slidesCopy = [];
|
|
645
646
|
/** @hidden */
|
|
646
647
|
this._slideSwiped = false;
|
|
647
|
-
/** @hidden
|
|
648
|
-
this.
|
|
648
|
+
/** @hidden */
|
|
649
|
+
this._destroyRef = inject(DestroyRef);
|
|
650
|
+
}
|
|
651
|
+
/** @hidden */
|
|
652
|
+
handleKeyboardEvent(event) {
|
|
653
|
+
if (KeyUtil.isKeyCode(event, [LEFT_ARROW, RIGHT_ARROW]) ||
|
|
654
|
+
(this.vertical && KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW]))) {
|
|
655
|
+
event.preventDefault();
|
|
656
|
+
if (KeyUtil.isKeyCode(event, LEFT_ARROW)) {
|
|
657
|
+
this._isRtl() ? this.next() : this.previous();
|
|
658
|
+
}
|
|
659
|
+
if (KeyUtil.isKeyCode(event, RIGHT_ARROW)) {
|
|
660
|
+
this._isRtl() ? this.previous() : this.next();
|
|
661
|
+
}
|
|
662
|
+
if (KeyUtil.isKeyCode(event, UP_ARROW)) {
|
|
663
|
+
this.previous();
|
|
664
|
+
}
|
|
665
|
+
if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {
|
|
666
|
+
this.next();
|
|
667
|
+
}
|
|
668
|
+
this.carouselContainer.nativeElement.focus();
|
|
669
|
+
}
|
|
649
670
|
}
|
|
650
671
|
/** @hidden */
|
|
651
672
|
ngOnInit() {
|
|
@@ -680,7 +701,7 @@ class CarouselComponent {
|
|
|
680
701
|
this._slidesCopy = this.slides.toArray();
|
|
681
702
|
this._subscribeServiceEvents();
|
|
682
703
|
// Subscribe to dynamic update of slides
|
|
683
|
-
this.slides.changes.pipe(
|
|
704
|
+
this.slides.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this._onSlideUpdates());
|
|
684
705
|
this._changeDetectorRef.markForCheck();
|
|
685
706
|
}
|
|
686
707
|
/** @hidden */
|
|
@@ -701,11 +722,6 @@ class CarouselComponent {
|
|
|
701
722
|
}
|
|
702
723
|
}
|
|
703
724
|
/** @hidden */
|
|
704
|
-
ngOnDestroy() {
|
|
705
|
-
this._onDestroy$.next();
|
|
706
|
-
this._onDestroy$.complete();
|
|
707
|
-
}
|
|
708
|
-
/** @hidden */
|
|
709
725
|
get _showNavigationButtonInPageIndicatorContainer() {
|
|
710
726
|
return this.navigatorInPageIndicator && this.pageIndicatorsCountArray.length > 1;
|
|
711
727
|
}
|
|
@@ -739,16 +755,6 @@ class CarouselComponent {
|
|
|
739
755
|
_isRtl() {
|
|
740
756
|
return this._rtlService?.rtl.getValue();
|
|
741
757
|
}
|
|
742
|
-
/** @hidden */
|
|
743
|
-
onKeydownArrowRight(event) {
|
|
744
|
-
event.preventDefault();
|
|
745
|
-
this._isRtl() ? this.previous() : this.next();
|
|
746
|
-
}
|
|
747
|
-
/** @hidden */
|
|
748
|
-
onKeydownArrowLeft(event) {
|
|
749
|
-
event.preventDefault();
|
|
750
|
-
this._isRtl() ? this.next() : this.previous();
|
|
751
|
-
}
|
|
752
758
|
/** Transitions to the previous slide in the carousel. */
|
|
753
759
|
previous() {
|
|
754
760
|
if (!this.loop && this.currentActiveSlidesStartIndex <= 0) {
|
|
@@ -987,7 +993,7 @@ class CarouselComponent {
|
|
|
987
993
|
this._changeDetectorRef.detectChanges();
|
|
988
994
|
};
|
|
989
995
|
refreshDirection();
|
|
990
|
-
this._rtlService?.rtl.pipe(
|
|
996
|
+
this._rtlService?.rtl.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => refreshDirection());
|
|
991
997
|
}
|
|
992
998
|
/** @hidden On Swiping of slide, manage page indicator */
|
|
993
999
|
_onSlideSwipe(event) {
|
|
@@ -1038,7 +1044,7 @@ class CarouselComponent {
|
|
|
1038
1044
|
*/
|
|
1039
1045
|
_resizeContentContainer() {
|
|
1040
1046
|
merge(resizeObservable(this.slideContainer.nativeElement), resizeObservable(this.carouselContainer.nativeElement))
|
|
1041
|
-
.pipe(debounceTime(100),
|
|
1047
|
+
.pipe(debounceTime(100), takeUntilDestroyed(this._destroyRef))
|
|
1042
1048
|
.subscribe(() => {
|
|
1043
1049
|
const { width, slides } = this._getFittingSlidesAndWidth();
|
|
1044
1050
|
if (this.visibleSlidesCount === 'auto') {
|
|
@@ -1115,13 +1121,13 @@ class CarouselComponent {
|
|
|
1115
1121
|
return slides;
|
|
1116
1122
|
}
|
|
1117
1123
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: CarouselComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: CarouselService }, { token: i0.NgZone }, { token: i2.RtlService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1118
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: CarouselComponent, isStandalone: true, selector: "fd-carousel", inputs: { id: "id", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", pageIndicatorsOrientation: "pageIndicatorsOrientation", height: "height", width: "width", loop: "loop", navigation: "navigation", navigatorInPageIndicator: "navigatorInPageIndicator", numericIndicator: "numericIndicator", pageIndicatorContainer: "pageIndicatorContainer", pageIndicator: "pageIndicator", resourceStrings: "resourceStrings", slideTransitionDuration: "slideTransitionDuration", swipeEnabled: "swipeEnabled", vertical: "vertical", noPaginationContainerBorder: "noPaginationContainerBorder", contentBackground: "contentBackground", pageIndicatorBackground: "pageIndicatorBackground", visibleSlidesCount: "visibleSlidesCount" }, outputs: { slideChange: "slideChange" }, host: { listeners: { "keydown.arrowright": "onKeydownArrowRight($event)", "keydown.arrowleft": "onKeydownArrowLeft($event)" }, properties: { "style.width": "width", "attr.id": "this.id" } }, providers: [CarouselService], queries: [{ propertyName: "slides", predicate: CarouselItemComponent, descendants: true }], viewQueries: [{ propertyName: "slideContainer", first: true, predicate: ["slideContainer"], descendants: true }, { propertyName: "carouselContainer", first: true, predicate: ["carouselContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"fd-carousel\"\n [class.fd-carousel--no-navigation]=\"!navigation\"\n data-ride=\"carousel\"\n tabindex=\"0\"\n [style.height]=\"height\"\n [style.width]=\"width\"\n [attr.dir]=\"dir\"\n role=\"region\"\n #carouselContainer\n (click)=\"_focus()\"\n>\n <ng-container *ngIf=\"_showPageIndicatorContainer && pageIndicatorsOrientation === 'top'\">\n <ng-container *ngTemplateOutlet=\"pageIndicatorContainer\"></ng-container>\n </ng-container>\n\n <div\n class=\"fd-carousel__content\"\n [class.fd-carousel__content--horizontal]=\"!vertical\"\n [ngClass]=\"'fd-carousel__content--' + contentBackground\"\n [style.width]=\"_contentSizePx\"\n >\n <ng-container *ngIf=\"_showNavigationButtonInContent\">\n <ng-container *ngTemplateOutlet=\"buttonLeft\"></ng-container>\n </ng-container>\n\n <div #slideContainer class=\"fd-carousel__slides\">\n <ng-content></ng-content>\n </div>\n\n <ng-container *ngIf=\"_showNavigationButtonInContent\">\n <ng-container *ngTemplateOutlet=\"buttonRight\"></ng-container>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"_showPageIndicatorContainer && pageIndicatorsOrientation === 'bottom'\">\n <ng-container *ngTemplateOutlet=\"pageIndicatorContainer\"></ng-container>\n </ng-container>\n\n <div [style.display]=\"'none'\" role=\"region\" [attr.id]=\"id + '-accessibility'\" aria-live=\"polite\" dir=\"ltr\">\n {{ screenReaderLabel }}\n </div>\n</div>\n\n<ng-template #pageIndicatorContainer>\n <div\n class=\"fd-carousel__page-indicator-container\"\n [class.fd-carousel__page-indicator-container--no-border]=\"noPaginationContainerBorder\"\n [ngClass]=\"'fd-carousel__page-indicator-container--' + pageIndicatorBackground\"\n >\n <ng-container *ngIf=\"_showNavigationButtonInPageIndicatorContainer\">\n <ng-container *ngTemplateOutlet=\"buttonLeft\"></ng-container>\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"pageIndicators\"> </ng-container>\n\n <ng-container *ngIf=\"_showNavigationButtonInPageIndicatorContainer\">\n <ng-container *ngTemplateOutlet=\"buttonRight\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageIndicators>\n <ng-container *ngIf=\"numericIndicator\">\n <div class=\"fd-carousel__page-indicators\">\n <ng-container *ngIf=\"pageIndicator\">\n <div class=\"fd-carousel__text\" dir=\"ltr\">\n {{ getPageIndicatorLabel }}\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!numericIndicator && _showNavigationButtonInPageIndicatorContainer\">\n <ol class=\"fd-carousel__page-indicators\" [attr.dir]=\"dir\">\n <ng-container *ngIf=\"pageIndicator\">\n <ng-container *ngFor=\"let item of pageIndicatorsCountArray; let i = index\">\n <li\n [attr.data-slide-to]=\"i + 1\"\n class=\"fd-carousel__page-indicator\"\n [class.fd-carousel__page-indicator--active]=\"i === currentActiveSlidesStartIndex\"\n ></li>\n </ng-container>\n </ng-container>\n </ol>\n </ng-container>\n</ng-template>\n\n<ng-template #buttonLeft>\n <button\n fd-button\n class=\"fd-carousel__button\"\n [class.fd-carousel__button--left]=\"!vertical\"\n [class.fd-carousel__button--up]=\"vertical\"\n [style.z-index]=\"1\"\n data-slide=\"previous\"\n [attr.aria-label]=\"'coreCarousel.leftNavigationBtnLabel' | fdTranslate\"\n (click)=\"previous(); $event.stopPropagation()\"\n [disabled]=\"leftButtonDisabled\"\n [attr.title]=\"'coreCarousel.leftNavigationBtnLabel' | fdTranslate\"\n [glyph]=\"vertical ? 'slim-arrow-up' : 'slim-arrow-left'\"\n ></button>\n</ng-template>\n\n<ng-template #buttonRight>\n <button\n fd-button\n class=\"fd-carousel__button\"\n [class.fd-carousel__button--right]=\"!vertical\"\n [class.fd-carousel__button--down]=\"vertical\"\n [style.z-index]=\"1\"\n data-slide=\"next\"\n [attr.aria-label]=\"'coreCarousel.rightNavigationBtnLabel' | fdTranslate\"\n (click)=\"next(); $event.stopPropagation()\"\n [disabled]=\"rightButtonDisabled\"\n [attr.title]=\"'coreCarousel.rightNavigationBtnLabel' | fdTranslate\"\n [glyph]=\"vertical ? 'slim-arrow-down' : 'slim-arrow-right'\"\n ></button>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.30.2\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-carousel{--fdCarousel_Button_Display:block;--fdCarousel_Content_Background:var(--sapBackgroundColor);--fdCarousel_Page_Indicator_Margin:var(--fdCarousel_Dot_Margin);--fdCarousel_Page_Indicator_Size:var(--fdCarousel_Dot_Size);--fdCarousel_Page_Indicator_Background_Color:var(--fdCarousel_Dot_Background);--fdCarousel_Page_Indicator_Border:var(--fdCarousel_Dot_Border);--fdCarousel_Page_Indicator_Container_Background:var(--sapPageFooter_Background);-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:var(--sapContent_LineHeight);margin:0;max-width:100%;min-width:15.5rem;padding:0;width:100%}.fd-carousel:after,.fd-carousel:before{box-sizing:inherit;font-size:inherit}.fd-carousel.is-focus,.fd-carousel:focus{outline-color:var(--sapContent_FocusColor);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth)}.fd-carousel.is-hover .fd-carousel__content .fd-carousel__button,.fd-carousel:hover .fd-carousel__content .fd-carousel__button{--fdCarousel_Button_Display:block}.fd-carousel__content{-webkit-box-sizing:border-box;-ms-flex-preferred-size:100%;background:var(--fdCarousel_Content_Background);border:0;box-sizing:border-box;color:var(--sapTextColor);flex-basis:100%;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;position:relative}.fd-carousel__content:after,.fd-carousel__content:before{box-sizing:inherit;font-size:inherit}.fd-carousel__content .fd-carousel__button{--fdCarousel_Button_Display:none;box-shadow:var(--sapContent_Shadow1);margin:0;position:absolute}.fd-carousel__content .fd-carousel__button--left,.fd-carousel__content .fd-carousel__button--right{-webkit-transform:translateY(-50%);top:50%;transform:translateY(-50%)}.fd-carousel__content .fd-carousel__button--down,.fd-carousel__content .fd-carousel__button--up{-webkit-transform:translateX(-50%);left:50%;transform:translate(-50%)}.fd-carousel__content .fd-carousel__button--down[dir=rtl]>[class*=sap-icon],.fd-carousel__content .fd-carousel__button--up[dir=rtl]>[class*=sap-icon],[dir=rtl] .fd-carousel__content .fd-carousel__button--down>[class*=sap-icon],[dir=rtl] .fd-carousel__content .fd-carousel__button--up>[class*=sap-icon]{transform:rotate(0)}.fd-carousel__content .fd-carousel__button--left{left:.5rem}.fd-carousel__content .fd-carousel__button--left[dir=rtl],[dir=rtl] .fd-carousel__content .fd-carousel__button--left{left:auto;right:.5rem}.fd-carousel__content .fd-carousel__button--right{right:.5rem}.fd-carousel__content .fd-carousel__button--right[dir=rtl],[dir=rtl] .fd-carousel__content .fd-carousel__button--right{left:.5rem;right:auto}.fd-carousel__content .fd-carousel__button--up{top:.5rem}.fd-carousel__content .fd-carousel__button--down{bottom:.5rem}.fd-carousel__content .fd-carousel__item img{height:auto;min-width:100%}.fd-carousel__content--horizontal .fd-carousel__slides{-ms-touch-action:pan-y;display:flex;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;touch-action:pan-y;width:100%}.fd-carousel__content--horizontal .fd-carousel__item img{min-height:100%;min-width:auto;width:auto}.fd-carousel__content--solid{--fdCarousel_Content_Background:var(--sapGroup_ContentBackground)}.fd-carousel__content--transparent{--fdCarousel_Content_Background:transparent}.fd-carousel__slides{-webkit-box-sizing:border-box;-ms-touch-action:pan-x;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-drag:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:var(--sapContent_LineHeight);margin:0;min-height:-moz-fit-content;min-height:fit-content;padding:0;touch-action:pan-x;user-select:none}.fd-carousel__slides:after,.fd-carousel__slides:before{box-sizing:inherit;font-size:inherit}.fd-carousel__item{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;display:none;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:var(--sapContent_LineHeight);line-height:0;margin:0;padding:0}.fd-carousel__item:after,.fd-carousel__item:before{box-sizing:inherit;font-size:inherit}.fd-carousel__item--active{display:block}.fd-carousel__item img{pointer-events:none}.fd-carousel__page-indicator-container{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:var(--fdCarousel_Page_Indicator_Container_Background);border:0;border-top:var(--fdCarousel_Pagination_Border);box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-height:3.5rem;min-height:2.75rem;padding:.375rem .5rem}.fd-carousel__page-indicator-container:after,.fd-carousel__page-indicator-container:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator-container:first-child{border-bottom:var(--fdCarousel_Pagination_Border);border-top:none}.fd-carousel__page-indicator-container--translucent{--fdCarousel_Page_Indicator_Container_Background:var(--sapBackgroundColor)}.fd-carousel__page-indicator-container--transparent{--fdCarousel_Page_Indicator_Container_Background:transparent}.fd-carousel__page-indicator-container--no-border{border-top-color:transparent}.fd-carousel__page-indicator-container--no-border:first-child{border-bottom-color:transparent;border-top:none}.fd-carousel__page-indicators{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;-ms-flex-wrap:wrap;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;min-width:9rem;padding:.5rem}.fd-carousel__page-indicators:after,.fd-carousel__page-indicators:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator{-webkit-box-sizing:border-box;background-color:var(--fdCarousel_Page_Indicator_Background_Color);border:0;border:var(--fdCarousel_Page_Indicator_Border);border-radius:50%;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdCarousel_Page_Indicator_Size);line-height:var(--sapContent_LineHeight);list-style-type:none;margin:0;margin:var(--fdCarousel_Page_Indicator_Margin);max-height:var(--fdCarousel_Page_Indicator_Size);max-width:var(--fdCarousel_Page_Indicator_Size);min-height:var(--fdCarousel_Page_Indicator_Size);min-width:var(--fdCarousel_Page_Indicator_Size);padding:0;width:var(--fdCarousel_Page_Indicator_Size)}.fd-carousel__page-indicator:after,.fd-carousel__page-indicator:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator--active{--fdCarousel_Page_Indicator_Size:.5rem;--fdCarousel_Page_Indicator_Margin:0 .25rem;--fdCarousel_Page_Indicator_Border:var(--fdCarousel_Dot_Selected_Border);--fdCarousel_Page_Indicator_Background_Color:var(--fdCarousel_Dot_Selected_Background)}.fd-carousel__text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapPageFooter_TextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.fd-carousel__text:after,.fd-carousel__text:before{box-sizing:inherit;font-size:inherit}.fd-carousel .fd-carousel__button{-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:50%;display:flex;display:var(--fdCarousel_Button_Display);height:2.125rem;justify-content:center;margin:.25rem;max-height:2.125rem;max-width:2.125rem;min-height:2.125rem;min-width:2.125rem;padding:0;width:2.125rem}.fd-carousel .fd-carousel__button:before{inset:-.25rem;width:auto}.fd-carousel .fd-carousel__button[dir=rtl]>[class*=sap-icon],[dir=rtl] .fd-carousel .fd-carousel__button>[class*=sap-icon]{transform:rotate(180deg)}.fd-carousel .fd-carousel__button.is-hover,.fd-carousel .fd-carousel__button:hover{box-shadow:var(--sapContent_Shadow1)}.fd-carousel .fd-carousel__button.is-focus,.fd-carousel .fd-carousel__button:focus{z-index:5}.fd-carousel .fd-carousel__button.is-focus:after,.fd-carousel .fd-carousel__button:focus:after{--fdButton_Focus_Border_Radius:50%}.fd-carousel--no-navigation .fd-carousel__button,.fd-carousel--no-navigation.is-hover .fd-carousel__content .fd-carousel__button,.fd-carousel--no-navigation:hover .fd-carousel__content .fd-carousel__button{--fdCarousel_Button_Display:none}.fd-carousel__item fd-busy-indicator{display:block;height:100%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1124
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: CarouselComponent, isStandalone: true, selector: "fd-carousel", inputs: { id: "id", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", pageIndicatorsOrientation: "pageIndicatorsOrientation", height: "height", width: "width", loop: "loop", navigation: "navigation", navigatorInPageIndicator: "navigatorInPageIndicator", numericIndicator: "numericIndicator", pageIndicatorContainer: "pageIndicatorContainer", pageIndicator: "pageIndicator", resourceStrings: "resourceStrings", slideTransitionDuration: "slideTransitionDuration", swipeEnabled: "swipeEnabled", vertical: "vertical", noPaginationContainerBorder: "noPaginationContainerBorder", contentBackground: "contentBackground", pageIndicatorBackground: "pageIndicatorBackground", visibleSlidesCount: "visibleSlidesCount" }, outputs: { slideChange: "slideChange" }, host: { listeners: { "keydown": "handleKeyboardEvent($event)" }, properties: { "style.width": "width", "attr.id": "this.id" } }, providers: [CarouselService], queries: [{ propertyName: "slides", predicate: CarouselItemComponent, descendants: true }], viewQueries: [{ propertyName: "slideContainer", first: true, predicate: ["slideContainer"], descendants: true }, { propertyName: "carouselContainer", first: true, predicate: ["carouselContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"fd-carousel\"\n [class.fd-carousel--no-navigation]=\"!navigation\"\n data-ride=\"carousel\"\n tabindex=\"0\"\n [style.height]=\"height\"\n [style.width]=\"width\"\n [attr.dir]=\"dir\"\n role=\"region\"\n #carouselContainer\n (click)=\"_focus()\"\n>\n <ng-container *ngIf=\"_showPageIndicatorContainer && pageIndicatorsOrientation === 'top'\">\n <ng-container *ngTemplateOutlet=\"pageIndicatorContainer\"></ng-container>\n </ng-container>\n\n <div\n class=\"fd-carousel__content\"\n [class.fd-carousel__content--horizontal]=\"!vertical\"\n [ngClass]=\"'fd-carousel__content--' + contentBackground\"\n [style.width]=\"_contentSizePx\"\n >\n <ng-container *ngIf=\"_showNavigationButtonInContent\">\n <ng-container *ngTemplateOutlet=\"buttonLeft\"></ng-container>\n </ng-container>\n\n <div #slideContainer class=\"fd-carousel__slides\">\n <ng-content></ng-content>\n </div>\n\n <ng-container *ngIf=\"_showNavigationButtonInContent\">\n <ng-container *ngTemplateOutlet=\"buttonRight\"></ng-container>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"_showPageIndicatorContainer && pageIndicatorsOrientation === 'bottom'\">\n <ng-container *ngTemplateOutlet=\"pageIndicatorContainer\"></ng-container>\n </ng-container>\n\n <div [style.display]=\"'none'\" role=\"region\" [attr.id]=\"id + '-accessibility'\" aria-live=\"polite\" dir=\"ltr\">\n {{ screenReaderLabel }}\n </div>\n</div>\n\n<ng-template #pageIndicatorContainer>\n <div\n class=\"fd-carousel__page-indicator-container\"\n [class.fd-carousel__page-indicator-container--no-border]=\"noPaginationContainerBorder\"\n [ngClass]=\"'fd-carousel__page-indicator-container--' + pageIndicatorBackground\"\n >\n <ng-container *ngIf=\"_showNavigationButtonInPageIndicatorContainer\">\n <ng-container *ngTemplateOutlet=\"buttonLeft\"></ng-container>\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"pageIndicators\"> </ng-container>\n\n <ng-container *ngIf=\"_showNavigationButtonInPageIndicatorContainer\">\n <ng-container *ngTemplateOutlet=\"buttonRight\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageIndicators>\n <ng-container *ngIf=\"numericIndicator\">\n <div class=\"fd-carousel__page-indicators\">\n <ng-container *ngIf=\"pageIndicator\">\n <div class=\"fd-carousel__text\" dir=\"ltr\">\n {{ getPageIndicatorLabel }}\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!numericIndicator && _showNavigationButtonInPageIndicatorContainer\">\n <ol class=\"fd-carousel__page-indicators\" [attr.dir]=\"dir\">\n <ng-container *ngIf=\"pageIndicator\">\n <ng-container *ngFor=\"let item of pageIndicatorsCountArray; let i = index\">\n <li\n [attr.data-slide-to]=\"i + 1\"\n class=\"fd-carousel__page-indicator\"\n [class.fd-carousel__page-indicator--active]=\"i === currentActiveSlidesStartIndex\"\n ></li>\n </ng-container>\n </ng-container>\n </ol>\n </ng-container>\n</ng-template>\n\n<ng-template #buttonLeft>\n <button\n fd-button\n class=\"fd-carousel__button\"\n [class.fd-carousel__button--left]=\"!vertical\"\n [class.fd-carousel__button--up]=\"vertical\"\n [style.z-index]=\"1\"\n data-slide=\"previous\"\n [attr.aria-label]=\"'coreCarousel.leftNavigationBtnLabel' | fdTranslate\"\n (click)=\"previous(); $event.stopPropagation()\"\n [disabled]=\"leftButtonDisabled\"\n [attr.title]=\"'coreCarousel.leftNavigationBtnLabel' | fdTranslate\"\n [glyph]=\"vertical ? 'slim-arrow-up' : 'slim-arrow-left'\"\n ></button>\n</ng-template>\n\n<ng-template #buttonRight>\n <button\n fd-button\n class=\"fd-carousel__button\"\n [class.fd-carousel__button--right]=\"!vertical\"\n [class.fd-carousel__button--down]=\"vertical\"\n [style.z-index]=\"1\"\n data-slide=\"next\"\n [attr.aria-label]=\"'coreCarousel.rightNavigationBtnLabel' | fdTranslate\"\n (click)=\"next(); $event.stopPropagation()\"\n [disabled]=\"rightButtonDisabled\"\n [attr.title]=\"'coreCarousel.rightNavigationBtnLabel' | fdTranslate\"\n [glyph]=\"vertical ? 'slim-arrow-down' : 'slim-arrow-right'\"\n ></button>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.30.2\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-carousel{--fdCarousel_Button_Display:block;--fdCarousel_Content_Background:var(--sapBackgroundColor);--fdCarousel_Page_Indicator_Margin:var(--fdCarousel_Dot_Margin);--fdCarousel_Page_Indicator_Size:var(--fdCarousel_Dot_Size);--fdCarousel_Page_Indicator_Background_Color:var(--fdCarousel_Dot_Background);--fdCarousel_Page_Indicator_Border:var(--fdCarousel_Dot_Border);--fdCarousel_Page_Indicator_Container_Background:var(--sapPageFooter_Background);-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:var(--sapContent_LineHeight);margin:0;max-width:100%;min-width:15.5rem;padding:0;width:100%}.fd-carousel:after,.fd-carousel:before{box-sizing:inherit;font-size:inherit}.fd-carousel.is-focus,.fd-carousel:focus{outline-color:var(--sapContent_FocusColor);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth)}.fd-carousel.is-hover .fd-carousel__content .fd-carousel__button,.fd-carousel:hover .fd-carousel__content .fd-carousel__button{--fdCarousel_Button_Display:block}.fd-carousel__content{-webkit-box-sizing:border-box;-ms-flex-preferred-size:100%;background:var(--fdCarousel_Content_Background);border:0;box-sizing:border-box;color:var(--sapTextColor);flex-basis:100%;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;position:relative}.fd-carousel__content:after,.fd-carousel__content:before{box-sizing:inherit;font-size:inherit}.fd-carousel__content .fd-carousel__button{--fdCarousel_Button_Display:none;box-shadow:var(--sapContent_Shadow1);margin:0;position:absolute}.fd-carousel__content .fd-carousel__button--left,.fd-carousel__content .fd-carousel__button--right{-webkit-transform:translateY(-50%);top:50%;transform:translateY(-50%)}.fd-carousel__content .fd-carousel__button--down,.fd-carousel__content .fd-carousel__button--up{-webkit-transform:translateX(-50%);left:50%;transform:translate(-50%)}.fd-carousel__content .fd-carousel__button--down[dir=rtl]>[class*=sap-icon],.fd-carousel__content .fd-carousel__button--up[dir=rtl]>[class*=sap-icon],[dir=rtl] .fd-carousel__content .fd-carousel__button--down>[class*=sap-icon],[dir=rtl] .fd-carousel__content .fd-carousel__button--up>[class*=sap-icon]{transform:rotate(0)}.fd-carousel__content .fd-carousel__button--left{left:.5rem}.fd-carousel__content .fd-carousel__button--left[dir=rtl],[dir=rtl] .fd-carousel__content .fd-carousel__button--left{left:auto;right:.5rem}.fd-carousel__content .fd-carousel__button--right{right:.5rem}.fd-carousel__content .fd-carousel__button--right[dir=rtl],[dir=rtl] .fd-carousel__content .fd-carousel__button--right{left:.5rem;right:auto}.fd-carousel__content .fd-carousel__button--up{top:.5rem}.fd-carousel__content .fd-carousel__button--down{bottom:.5rem}.fd-carousel__content .fd-carousel__item img{height:auto;min-width:100%}.fd-carousel__content--horizontal .fd-carousel__slides{-ms-touch-action:pan-y;display:flex;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;touch-action:pan-y;width:100%}.fd-carousel__content--horizontal .fd-carousel__item img{min-height:100%;min-width:auto;width:auto}.fd-carousel__content--solid{--fdCarousel_Content_Background:var(--sapGroup_ContentBackground)}.fd-carousel__content--transparent{--fdCarousel_Content_Background:transparent}.fd-carousel__slides{-webkit-box-sizing:border-box;-ms-touch-action:pan-x;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-drag:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:var(--sapContent_LineHeight);margin:0;min-height:-moz-fit-content;min-height:fit-content;padding:0;touch-action:pan-x;user-select:none}.fd-carousel__slides:after,.fd-carousel__slides:before{box-sizing:inherit;font-size:inherit}.fd-carousel__item{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;display:none;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:var(--sapContent_LineHeight);line-height:0;margin:0;padding:0}.fd-carousel__item:after,.fd-carousel__item:before{box-sizing:inherit;font-size:inherit}.fd-carousel__item--active{display:block}.fd-carousel__item img{pointer-events:none}.fd-carousel__page-indicator-container{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:var(--fdCarousel_Page_Indicator_Container_Background);border:0;border-top:var(--fdCarousel_Pagination_Border);box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-height:3.5rem;min-height:2.75rem;padding:.375rem .5rem}.fd-carousel__page-indicator-container:after,.fd-carousel__page-indicator-container:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator-container:first-child{border-bottom:var(--fdCarousel_Pagination_Border);border-top:none}.fd-carousel__page-indicator-container--translucent{--fdCarousel_Page_Indicator_Container_Background:var(--sapBackgroundColor)}.fd-carousel__page-indicator-container--transparent{--fdCarousel_Page_Indicator_Container_Background:transparent}.fd-carousel__page-indicator-container--no-border{border-top-color:transparent}.fd-carousel__page-indicator-container--no-border:first-child{border-bottom-color:transparent;border-top:none}.fd-carousel__page-indicators{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;-ms-flex-wrap:wrap;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;min-width:9rem;padding:.5rem}.fd-carousel__page-indicators:after,.fd-carousel__page-indicators:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator{-webkit-box-sizing:border-box;background-color:var(--fdCarousel_Page_Indicator_Background_Color);border:0;border:var(--fdCarousel_Page_Indicator_Border);border-radius:50%;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdCarousel_Page_Indicator_Size);line-height:var(--sapContent_LineHeight);list-style-type:none;margin:0;margin:var(--fdCarousel_Page_Indicator_Margin);max-height:var(--fdCarousel_Page_Indicator_Size);max-width:var(--fdCarousel_Page_Indicator_Size);min-height:var(--fdCarousel_Page_Indicator_Size);min-width:var(--fdCarousel_Page_Indicator_Size);padding:0;width:var(--fdCarousel_Page_Indicator_Size)}.fd-carousel__page-indicator:after,.fd-carousel__page-indicator:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator--active{--fdCarousel_Page_Indicator_Size:.5rem;--fdCarousel_Page_Indicator_Margin:0 .25rem;--fdCarousel_Page_Indicator_Border:var(--fdCarousel_Dot_Selected_Border);--fdCarousel_Page_Indicator_Background_Color:var(--fdCarousel_Dot_Selected_Background)}.fd-carousel__text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapPageFooter_TextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.fd-carousel__text:after,.fd-carousel__text:before{box-sizing:inherit;font-size:inherit}.fd-carousel .fd-carousel__button{-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:50%;display:flex;display:var(--fdCarousel_Button_Display);height:2.125rem;justify-content:center;margin:.25rem;max-height:2.125rem;max-width:2.125rem;min-height:2.125rem;min-width:2.125rem;padding:0;width:2.125rem}.fd-carousel .fd-carousel__button:before{inset:-.25rem;width:auto}.fd-carousel .fd-carousel__button[dir=rtl]>[class*=sap-icon],[dir=rtl] .fd-carousel .fd-carousel__button>[class*=sap-icon]{transform:rotate(180deg)}.fd-carousel .fd-carousel__button.is-hover,.fd-carousel .fd-carousel__button:hover{box-shadow:var(--sapContent_Shadow1)}.fd-carousel .fd-carousel__button.is-focus,.fd-carousel .fd-carousel__button:focus{z-index:5}.fd-carousel .fd-carousel__button.is-focus:after,.fd-carousel .fd-carousel__button:focus:after{--fdButton_Focus_Border_Radius:50%}.fd-carousel--no-navigation .fd-carousel__button,.fd-carousel--no-navigation.is-hover .fd-carousel__content .fd-carousel__button,.fd-carousel--no-navigation:hover .fd-carousel__content .fd-carousel__button{--fdCarousel_Button_Display:none}.fd-carousel__item fd-busy-indicator{display:block;height:100%;width:100%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1119
1125
|
}
|
|
1120
1126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: CarouselComponent, decorators: [{
|
|
1121
1127
|
type: Component,
|
|
1122
1128
|
args: [{ selector: 'fd-carousel', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [CarouselService], host: {
|
|
1123
1129
|
'[style.width]': 'width'
|
|
1124
|
-
}, standalone: true, imports: [NgIf, NgTemplateOutlet, NgClass, NgFor, ButtonModule, FdTranslatePipe], template: "<div\n class=\"fd-carousel\"\n [class.fd-carousel--no-navigation]=\"!navigation\"\n data-ride=\"carousel\"\n tabindex=\"0\"\n [style.height]=\"height\"\n [style.width]=\"width\"\n [attr.dir]=\"dir\"\n role=\"region\"\n #carouselContainer\n (click)=\"_focus()\"\n>\n <ng-container *ngIf=\"_showPageIndicatorContainer && pageIndicatorsOrientation === 'top'\">\n <ng-container *ngTemplateOutlet=\"pageIndicatorContainer\"></ng-container>\n </ng-container>\n\n <div\n class=\"fd-carousel__content\"\n [class.fd-carousel__content--horizontal]=\"!vertical\"\n [ngClass]=\"'fd-carousel__content--' + contentBackground\"\n [style.width]=\"_contentSizePx\"\n >\n <ng-container *ngIf=\"_showNavigationButtonInContent\">\n <ng-container *ngTemplateOutlet=\"buttonLeft\"></ng-container>\n </ng-container>\n\n <div #slideContainer class=\"fd-carousel__slides\">\n <ng-content></ng-content>\n </div>\n\n <ng-container *ngIf=\"_showNavigationButtonInContent\">\n <ng-container *ngTemplateOutlet=\"buttonRight\"></ng-container>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"_showPageIndicatorContainer && pageIndicatorsOrientation === 'bottom'\">\n <ng-container *ngTemplateOutlet=\"pageIndicatorContainer\"></ng-container>\n </ng-container>\n\n <div [style.display]=\"'none'\" role=\"region\" [attr.id]=\"id + '-accessibility'\" aria-live=\"polite\" dir=\"ltr\">\n {{ screenReaderLabel }}\n </div>\n</div>\n\n<ng-template #pageIndicatorContainer>\n <div\n class=\"fd-carousel__page-indicator-container\"\n [class.fd-carousel__page-indicator-container--no-border]=\"noPaginationContainerBorder\"\n [ngClass]=\"'fd-carousel__page-indicator-container--' + pageIndicatorBackground\"\n >\n <ng-container *ngIf=\"_showNavigationButtonInPageIndicatorContainer\">\n <ng-container *ngTemplateOutlet=\"buttonLeft\"></ng-container>\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"pageIndicators\"> </ng-container>\n\n <ng-container *ngIf=\"_showNavigationButtonInPageIndicatorContainer\">\n <ng-container *ngTemplateOutlet=\"buttonRight\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageIndicators>\n <ng-container *ngIf=\"numericIndicator\">\n <div class=\"fd-carousel__page-indicators\">\n <ng-container *ngIf=\"pageIndicator\">\n <div class=\"fd-carousel__text\" dir=\"ltr\">\n {{ getPageIndicatorLabel }}\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!numericIndicator && _showNavigationButtonInPageIndicatorContainer\">\n <ol class=\"fd-carousel__page-indicators\" [attr.dir]=\"dir\">\n <ng-container *ngIf=\"pageIndicator\">\n <ng-container *ngFor=\"let item of pageIndicatorsCountArray; let i = index\">\n <li\n [attr.data-slide-to]=\"i + 1\"\n class=\"fd-carousel__page-indicator\"\n [class.fd-carousel__page-indicator--active]=\"i === currentActiveSlidesStartIndex\"\n ></li>\n </ng-container>\n </ng-container>\n </ol>\n </ng-container>\n</ng-template>\n\n<ng-template #buttonLeft>\n <button\n fd-button\n class=\"fd-carousel__button\"\n [class.fd-carousel__button--left]=\"!vertical\"\n [class.fd-carousel__button--up]=\"vertical\"\n [style.z-index]=\"1\"\n data-slide=\"previous\"\n [attr.aria-label]=\"'coreCarousel.leftNavigationBtnLabel' | fdTranslate\"\n (click)=\"previous(); $event.stopPropagation()\"\n [disabled]=\"leftButtonDisabled\"\n [attr.title]=\"'coreCarousel.leftNavigationBtnLabel' | fdTranslate\"\n [glyph]=\"vertical ? 'slim-arrow-up' : 'slim-arrow-left'\"\n ></button>\n</ng-template>\n\n<ng-template #buttonRight>\n <button\n fd-button\n class=\"fd-carousel__button\"\n [class.fd-carousel__button--right]=\"!vertical\"\n [class.fd-carousel__button--down]=\"vertical\"\n [style.z-index]=\"1\"\n data-slide=\"next\"\n [attr.aria-label]=\"'coreCarousel.rightNavigationBtnLabel' | fdTranslate\"\n (click)=\"next(); $event.stopPropagation()\"\n [disabled]=\"rightButtonDisabled\"\n [attr.title]=\"'coreCarousel.rightNavigationBtnLabel' | fdTranslate\"\n [glyph]=\"vertical ? 'slim-arrow-down' : 'slim-arrow-right'\"\n ></button>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.30.2\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-carousel{--fdCarousel_Button_Display:block;--fdCarousel_Content_Background:var(--sapBackgroundColor);--fdCarousel_Page_Indicator_Margin:var(--fdCarousel_Dot_Margin);--fdCarousel_Page_Indicator_Size:var(--fdCarousel_Dot_Size);--fdCarousel_Page_Indicator_Background_Color:var(--fdCarousel_Dot_Background);--fdCarousel_Page_Indicator_Border:var(--fdCarousel_Dot_Border);--fdCarousel_Page_Indicator_Container_Background:var(--sapPageFooter_Background);-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:var(--sapContent_LineHeight);margin:0;max-width:100%;min-width:15.5rem;padding:0;width:100%}.fd-carousel:after,.fd-carousel:before{box-sizing:inherit;font-size:inherit}.fd-carousel.is-focus,.fd-carousel:focus{outline-color:var(--sapContent_FocusColor);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth)}.fd-carousel.is-hover .fd-carousel__content .fd-carousel__button,.fd-carousel:hover .fd-carousel__content .fd-carousel__button{--fdCarousel_Button_Display:block}.fd-carousel__content{-webkit-box-sizing:border-box;-ms-flex-preferred-size:100%;background:var(--fdCarousel_Content_Background);border:0;box-sizing:border-box;color:var(--sapTextColor);flex-basis:100%;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;position:relative}.fd-carousel__content:after,.fd-carousel__content:before{box-sizing:inherit;font-size:inherit}.fd-carousel__content .fd-carousel__button{--fdCarousel_Button_Display:none;box-shadow:var(--sapContent_Shadow1);margin:0;position:absolute}.fd-carousel__content .fd-carousel__button--left,.fd-carousel__content .fd-carousel__button--right{-webkit-transform:translateY(-50%);top:50%;transform:translateY(-50%)}.fd-carousel__content .fd-carousel__button--down,.fd-carousel__content .fd-carousel__button--up{-webkit-transform:translateX(-50%);left:50%;transform:translate(-50%)}.fd-carousel__content .fd-carousel__button--down[dir=rtl]>[class*=sap-icon],.fd-carousel__content .fd-carousel__button--up[dir=rtl]>[class*=sap-icon],[dir=rtl] .fd-carousel__content .fd-carousel__button--down>[class*=sap-icon],[dir=rtl] .fd-carousel__content .fd-carousel__button--up>[class*=sap-icon]{transform:rotate(0)}.fd-carousel__content .fd-carousel__button--left{left:.5rem}.fd-carousel__content .fd-carousel__button--left[dir=rtl],[dir=rtl] .fd-carousel__content .fd-carousel__button--left{left:auto;right:.5rem}.fd-carousel__content .fd-carousel__button--right{right:.5rem}.fd-carousel__content .fd-carousel__button--right[dir=rtl],[dir=rtl] .fd-carousel__content .fd-carousel__button--right{left:.5rem;right:auto}.fd-carousel__content .fd-carousel__button--up{top:.5rem}.fd-carousel__content .fd-carousel__button--down{bottom:.5rem}.fd-carousel__content .fd-carousel__item img{height:auto;min-width:100%}.fd-carousel__content--horizontal .fd-carousel__slides{-ms-touch-action:pan-y;display:flex;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;touch-action:pan-y;width:100%}.fd-carousel__content--horizontal .fd-carousel__item img{min-height:100%;min-width:auto;width:auto}.fd-carousel__content--solid{--fdCarousel_Content_Background:var(--sapGroup_ContentBackground)}.fd-carousel__content--transparent{--fdCarousel_Content_Background:transparent}.fd-carousel__slides{-webkit-box-sizing:border-box;-ms-touch-action:pan-x;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-drag:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:var(--sapContent_LineHeight);margin:0;min-height:-moz-fit-content;min-height:fit-content;padding:0;touch-action:pan-x;user-select:none}.fd-carousel__slides:after,.fd-carousel__slides:before{box-sizing:inherit;font-size:inherit}.fd-carousel__item{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;display:none;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:var(--sapContent_LineHeight);line-height:0;margin:0;padding:0}.fd-carousel__item:after,.fd-carousel__item:before{box-sizing:inherit;font-size:inherit}.fd-carousel__item--active{display:block}.fd-carousel__item img{pointer-events:none}.fd-carousel__page-indicator-container{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:var(--fdCarousel_Page_Indicator_Container_Background);border:0;border-top:var(--fdCarousel_Pagination_Border);box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-height:3.5rem;min-height:2.75rem;padding:.375rem .5rem}.fd-carousel__page-indicator-container:after,.fd-carousel__page-indicator-container:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator-container:first-child{border-bottom:var(--fdCarousel_Pagination_Border);border-top:none}.fd-carousel__page-indicator-container--translucent{--fdCarousel_Page_Indicator_Container_Background:var(--sapBackgroundColor)}.fd-carousel__page-indicator-container--transparent{--fdCarousel_Page_Indicator_Container_Background:transparent}.fd-carousel__page-indicator-container--no-border{border-top-color:transparent}.fd-carousel__page-indicator-container--no-border:first-child{border-bottom-color:transparent;border-top:none}.fd-carousel__page-indicators{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;-ms-flex-wrap:wrap;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;min-width:9rem;padding:.5rem}.fd-carousel__page-indicators:after,.fd-carousel__page-indicators:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator{-webkit-box-sizing:border-box;background-color:var(--fdCarousel_Page_Indicator_Background_Color);border:0;border:var(--fdCarousel_Page_Indicator_Border);border-radius:50%;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdCarousel_Page_Indicator_Size);line-height:var(--sapContent_LineHeight);list-style-type:none;margin:0;margin:var(--fdCarousel_Page_Indicator_Margin);max-height:var(--fdCarousel_Page_Indicator_Size);max-width:var(--fdCarousel_Page_Indicator_Size);min-height:var(--fdCarousel_Page_Indicator_Size);min-width:var(--fdCarousel_Page_Indicator_Size);padding:0;width:var(--fdCarousel_Page_Indicator_Size)}.fd-carousel__page-indicator:after,.fd-carousel__page-indicator:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator--active{--fdCarousel_Page_Indicator_Size:.5rem;--fdCarousel_Page_Indicator_Margin:0 .25rem;--fdCarousel_Page_Indicator_Border:var(--fdCarousel_Dot_Selected_Border);--fdCarousel_Page_Indicator_Background_Color:var(--fdCarousel_Dot_Selected_Background)}.fd-carousel__text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapPageFooter_TextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.fd-carousel__text:after,.fd-carousel__text:before{box-sizing:inherit;font-size:inherit}.fd-carousel .fd-carousel__button{-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:50%;display:flex;display:var(--fdCarousel_Button_Display);height:2.125rem;justify-content:center;margin:.25rem;max-height:2.125rem;max-width:2.125rem;min-height:2.125rem;min-width:2.125rem;padding:0;width:2.125rem}.fd-carousel .fd-carousel__button:before{inset:-.25rem;width:auto}.fd-carousel .fd-carousel__button[dir=rtl]>[class*=sap-icon],[dir=rtl] .fd-carousel .fd-carousel__button>[class*=sap-icon]{transform:rotate(180deg)}.fd-carousel .fd-carousel__button.is-hover,.fd-carousel .fd-carousel__button:hover{box-shadow:var(--sapContent_Shadow1)}.fd-carousel .fd-carousel__button.is-focus,.fd-carousel .fd-carousel__button:focus{z-index:5}.fd-carousel .fd-carousel__button.is-focus:after,.fd-carousel .fd-carousel__button:focus:after{--fdButton_Focus_Border_Radius:50%}.fd-carousel--no-navigation .fd-carousel__button,.fd-carousel--no-navigation.is-hover .fd-carousel__content .fd-carousel__button,.fd-carousel--no-navigation:hover .fd-carousel__content .fd-carousel__button{--fdCarousel_Button_Display:none}.fd-carousel__item fd-busy-indicator{display:block;height:100%}\n"] }]
|
|
1130
|
+
}, standalone: true, imports: [NgIf, NgTemplateOutlet, NgClass, NgFor, ButtonComponent, FdTranslatePipe], template: "<div\n class=\"fd-carousel\"\n [class.fd-carousel--no-navigation]=\"!navigation\"\n data-ride=\"carousel\"\n tabindex=\"0\"\n [style.height]=\"height\"\n [style.width]=\"width\"\n [attr.dir]=\"dir\"\n role=\"region\"\n #carouselContainer\n (click)=\"_focus()\"\n>\n <ng-container *ngIf=\"_showPageIndicatorContainer && pageIndicatorsOrientation === 'top'\">\n <ng-container *ngTemplateOutlet=\"pageIndicatorContainer\"></ng-container>\n </ng-container>\n\n <div\n class=\"fd-carousel__content\"\n [class.fd-carousel__content--horizontal]=\"!vertical\"\n [ngClass]=\"'fd-carousel__content--' + contentBackground\"\n [style.width]=\"_contentSizePx\"\n >\n <ng-container *ngIf=\"_showNavigationButtonInContent\">\n <ng-container *ngTemplateOutlet=\"buttonLeft\"></ng-container>\n </ng-container>\n\n <div #slideContainer class=\"fd-carousel__slides\">\n <ng-content></ng-content>\n </div>\n\n <ng-container *ngIf=\"_showNavigationButtonInContent\">\n <ng-container *ngTemplateOutlet=\"buttonRight\"></ng-container>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"_showPageIndicatorContainer && pageIndicatorsOrientation === 'bottom'\">\n <ng-container *ngTemplateOutlet=\"pageIndicatorContainer\"></ng-container>\n </ng-container>\n\n <div [style.display]=\"'none'\" role=\"region\" [attr.id]=\"id + '-accessibility'\" aria-live=\"polite\" dir=\"ltr\">\n {{ screenReaderLabel }}\n </div>\n</div>\n\n<ng-template #pageIndicatorContainer>\n <div\n class=\"fd-carousel__page-indicator-container\"\n [class.fd-carousel__page-indicator-container--no-border]=\"noPaginationContainerBorder\"\n [ngClass]=\"'fd-carousel__page-indicator-container--' + pageIndicatorBackground\"\n >\n <ng-container *ngIf=\"_showNavigationButtonInPageIndicatorContainer\">\n <ng-container *ngTemplateOutlet=\"buttonLeft\"></ng-container>\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"pageIndicators\"> </ng-container>\n\n <ng-container *ngIf=\"_showNavigationButtonInPageIndicatorContainer\">\n <ng-container *ngTemplateOutlet=\"buttonRight\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageIndicators>\n <ng-container *ngIf=\"numericIndicator\">\n <div class=\"fd-carousel__page-indicators\">\n <ng-container *ngIf=\"pageIndicator\">\n <div class=\"fd-carousel__text\" dir=\"ltr\">\n {{ getPageIndicatorLabel }}\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!numericIndicator && _showNavigationButtonInPageIndicatorContainer\">\n <ol class=\"fd-carousel__page-indicators\" [attr.dir]=\"dir\">\n <ng-container *ngIf=\"pageIndicator\">\n <ng-container *ngFor=\"let item of pageIndicatorsCountArray; let i = index\">\n <li\n [attr.data-slide-to]=\"i + 1\"\n class=\"fd-carousel__page-indicator\"\n [class.fd-carousel__page-indicator--active]=\"i === currentActiveSlidesStartIndex\"\n ></li>\n </ng-container>\n </ng-container>\n </ol>\n </ng-container>\n</ng-template>\n\n<ng-template #buttonLeft>\n <button\n fd-button\n class=\"fd-carousel__button\"\n [class.fd-carousel__button--left]=\"!vertical\"\n [class.fd-carousel__button--up]=\"vertical\"\n [style.z-index]=\"1\"\n data-slide=\"previous\"\n [attr.aria-label]=\"'coreCarousel.leftNavigationBtnLabel' | fdTranslate\"\n (click)=\"previous(); $event.stopPropagation()\"\n [disabled]=\"leftButtonDisabled\"\n [attr.title]=\"'coreCarousel.leftNavigationBtnLabel' | fdTranslate\"\n [glyph]=\"vertical ? 'slim-arrow-up' : 'slim-arrow-left'\"\n ></button>\n</ng-template>\n\n<ng-template #buttonRight>\n <button\n fd-button\n class=\"fd-carousel__button\"\n [class.fd-carousel__button--right]=\"!vertical\"\n [class.fd-carousel__button--down]=\"vertical\"\n [style.z-index]=\"1\"\n data-slide=\"next\"\n [attr.aria-label]=\"'coreCarousel.rightNavigationBtnLabel' | fdTranslate\"\n (click)=\"next(); $event.stopPropagation()\"\n [disabled]=\"rightButtonDisabled\"\n [attr.title]=\"'coreCarousel.rightNavigationBtnLabel' | fdTranslate\"\n [glyph]=\"vertical ? 'slim-arrow-down' : 'slim-arrow-right'\"\n ></button>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.30.2\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-carousel{--fdCarousel_Button_Display:block;--fdCarousel_Content_Background:var(--sapBackgroundColor);--fdCarousel_Page_Indicator_Margin:var(--fdCarousel_Dot_Margin);--fdCarousel_Page_Indicator_Size:var(--fdCarousel_Dot_Size);--fdCarousel_Page_Indicator_Background_Color:var(--fdCarousel_Dot_Background);--fdCarousel_Page_Indicator_Border:var(--fdCarousel_Dot_Border);--fdCarousel_Page_Indicator_Container_Background:var(--sapPageFooter_Background);-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:var(--sapContent_LineHeight);margin:0;max-width:100%;min-width:15.5rem;padding:0;width:100%}.fd-carousel:after,.fd-carousel:before{box-sizing:inherit;font-size:inherit}.fd-carousel.is-focus,.fd-carousel:focus{outline-color:var(--sapContent_FocusColor);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth)}.fd-carousel.is-hover .fd-carousel__content .fd-carousel__button,.fd-carousel:hover .fd-carousel__content .fd-carousel__button{--fdCarousel_Button_Display:block}.fd-carousel__content{-webkit-box-sizing:border-box;-ms-flex-preferred-size:100%;background:var(--fdCarousel_Content_Background);border:0;box-sizing:border-box;color:var(--sapTextColor);flex-basis:100%;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;position:relative}.fd-carousel__content:after,.fd-carousel__content:before{box-sizing:inherit;font-size:inherit}.fd-carousel__content .fd-carousel__button{--fdCarousel_Button_Display:none;box-shadow:var(--sapContent_Shadow1);margin:0;position:absolute}.fd-carousel__content .fd-carousel__button--left,.fd-carousel__content .fd-carousel__button--right{-webkit-transform:translateY(-50%);top:50%;transform:translateY(-50%)}.fd-carousel__content .fd-carousel__button--down,.fd-carousel__content .fd-carousel__button--up{-webkit-transform:translateX(-50%);left:50%;transform:translate(-50%)}.fd-carousel__content .fd-carousel__button--down[dir=rtl]>[class*=sap-icon],.fd-carousel__content .fd-carousel__button--up[dir=rtl]>[class*=sap-icon],[dir=rtl] .fd-carousel__content .fd-carousel__button--down>[class*=sap-icon],[dir=rtl] .fd-carousel__content .fd-carousel__button--up>[class*=sap-icon]{transform:rotate(0)}.fd-carousel__content .fd-carousel__button--left{left:.5rem}.fd-carousel__content .fd-carousel__button--left[dir=rtl],[dir=rtl] .fd-carousel__content .fd-carousel__button--left{left:auto;right:.5rem}.fd-carousel__content .fd-carousel__button--right{right:.5rem}.fd-carousel__content .fd-carousel__button--right[dir=rtl],[dir=rtl] .fd-carousel__content .fd-carousel__button--right{left:.5rem;right:auto}.fd-carousel__content .fd-carousel__button--up{top:.5rem}.fd-carousel__content .fd-carousel__button--down{bottom:.5rem}.fd-carousel__content .fd-carousel__item img{height:auto;min-width:100%}.fd-carousel__content--horizontal .fd-carousel__slides{-ms-touch-action:pan-y;display:flex;flex-direction:row;min-width:-moz-fit-content;min-width:fit-content;touch-action:pan-y;width:100%}.fd-carousel__content--horizontal .fd-carousel__item img{min-height:100%;min-width:auto;width:auto}.fd-carousel__content--solid{--fdCarousel_Content_Background:var(--sapGroup_ContentBackground)}.fd-carousel__content--transparent{--fdCarousel_Content_Background:transparent}.fd-carousel__slides{-webkit-box-sizing:border-box;-ms-touch-action:pan-x;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-drag:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:var(--sapContent_LineHeight);margin:0;min-height:-moz-fit-content;min-height:fit-content;padding:0;touch-action:pan-x;user-select:none}.fd-carousel__slides:after,.fd-carousel__slides:before{box-sizing:inherit;font-size:inherit}.fd-carousel__item{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;display:none;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:var(--sapContent_LineHeight);line-height:0;margin:0;padding:0}.fd-carousel__item:after,.fd-carousel__item:before{box-sizing:inherit;font-size:inherit}.fd-carousel__item--active{display:block}.fd-carousel__item img{pointer-events:none}.fd-carousel__page-indicator-container{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:var(--fdCarousel_Page_Indicator_Container_Background);border:0;border-top:var(--fdCarousel_Pagination_Border);box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-height:3.5rem;min-height:2.75rem;padding:.375rem .5rem}.fd-carousel__page-indicator-container:after,.fd-carousel__page-indicator-container:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator-container:first-child{border-bottom:var(--fdCarousel_Pagination_Border);border-top:none}.fd-carousel__page-indicator-container--translucent{--fdCarousel_Page_Indicator_Container_Background:var(--sapBackgroundColor)}.fd-carousel__page-indicator-container--transparent{--fdCarousel_Page_Indicator_Container_Background:transparent}.fd-carousel__page-indicator-container--no-border{border-top-color:transparent}.fd-carousel__page-indicator-container--no-border:first-child{border-bottom-color:transparent;border-top:none}.fd-carousel__page-indicators{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;-ms-flex-wrap:wrap;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;min-width:9rem;padding:.5rem}.fd-carousel__page-indicators:after,.fd-carousel__page-indicators:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator{-webkit-box-sizing:border-box;background-color:var(--fdCarousel_Page_Indicator_Background_Color);border:0;border:var(--fdCarousel_Page_Indicator_Border);border-radius:50%;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdCarousel_Page_Indicator_Size);line-height:var(--sapContent_LineHeight);list-style-type:none;margin:0;margin:var(--fdCarousel_Page_Indicator_Margin);max-height:var(--fdCarousel_Page_Indicator_Size);max-width:var(--fdCarousel_Page_Indicator_Size);min-height:var(--fdCarousel_Page_Indicator_Size);min-width:var(--fdCarousel_Page_Indicator_Size);padding:0;width:var(--fdCarousel_Page_Indicator_Size)}.fd-carousel__page-indicator:after,.fd-carousel__page-indicator:before{box-sizing:inherit;font-size:inherit}.fd-carousel__page-indicator--active{--fdCarousel_Page_Indicator_Size:.5rem;--fdCarousel_Page_Indicator_Margin:0 .25rem;--fdCarousel_Page_Indicator_Border:var(--fdCarousel_Dot_Selected_Border);--fdCarousel_Page_Indicator_Background_Color:var(--fdCarousel_Dot_Selected_Background)}.fd-carousel__text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapPageFooter_TextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.fd-carousel__text:after,.fd-carousel__text:before{box-sizing:inherit;font-size:inherit}.fd-carousel .fd-carousel__button{-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border-radius:50%;display:flex;display:var(--fdCarousel_Button_Display);height:2.125rem;justify-content:center;margin:.25rem;max-height:2.125rem;max-width:2.125rem;min-height:2.125rem;min-width:2.125rem;padding:0;width:2.125rem}.fd-carousel .fd-carousel__button:before{inset:-.25rem;width:auto}.fd-carousel .fd-carousel__button[dir=rtl]>[class*=sap-icon],[dir=rtl] .fd-carousel .fd-carousel__button>[class*=sap-icon]{transform:rotate(180deg)}.fd-carousel .fd-carousel__button.is-hover,.fd-carousel .fd-carousel__button:hover{box-shadow:var(--sapContent_Shadow1)}.fd-carousel .fd-carousel__button.is-focus,.fd-carousel .fd-carousel__button:focus{z-index:5}.fd-carousel .fd-carousel__button.is-focus:after,.fd-carousel .fd-carousel__button:focus:after{--fdButton_Focus_Border_Radius:50%}.fd-carousel--no-navigation .fd-carousel__button,.fd-carousel--no-navigation.is-hover .fd-carousel__content .fd-carousel__button,.fd-carousel--no-navigation:hover .fd-carousel__content .fd-carousel__button{--fdCarousel_Button_Display:none}.fd-carousel__item fd-busy-indicator{display:block;height:100%;width:100%}\n"] }]
|
|
1125
1131
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: CarouselService }, { type: i0.NgZone }, { type: i2.RtlService, decorators: [{
|
|
1126
1132
|
type: Optional
|
|
1127
1133
|
}] }]; }, propDecorators: { id: [{
|
|
@@ -1182,12 +1188,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
1182
1188
|
}], carouselContainer: [{
|
|
1183
1189
|
type: ViewChild,
|
|
1184
1190
|
args: ['carouselContainer']
|
|
1185
|
-
}],
|
|
1186
|
-
type: HostListener,
|
|
1187
|
-
args: ['keydown.arrowright', ['$event']]
|
|
1188
|
-
}], onKeydownArrowLeft: [{
|
|
1191
|
+
}], handleKeyboardEvent: [{
|
|
1189
1192
|
type: HostListener,
|
|
1190
|
-
args: ['keydown
|
|
1193
|
+
args: ['keydown', ['$event']]
|
|
1191
1194
|
}] } });
|
|
1192
1195
|
|
|
1193
1196
|
class CarouselModule {
|