igniteui-angular 21.2.0-rc.0 → 21.2.0-rc.2
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/igniteui-angular-accordion.mjs +7 -7
- package/fesm2022/igniteui-angular-action-strip.mjs +10 -10
- package/fesm2022/igniteui-angular-avatar.mjs +7 -7
- package/fesm2022/igniteui-angular-badge.mjs +7 -8
- package/fesm2022/igniteui-angular-badge.mjs.map +1 -1
- package/fesm2022/igniteui-angular-banner.mjs +10 -10
- package/fesm2022/igniteui-angular-bottom-nav.mjs +22 -22
- package/fesm2022/igniteui-angular-button-group.mjs +7 -7
- package/fesm2022/igniteui-angular-calendar.mjs +61 -61
- package/fesm2022/igniteui-angular-card.mjs +31 -31
- package/fesm2022/igniteui-angular-carousel.mjs +32 -33
- package/fesm2022/igniteui-angular-carousel.mjs.map +1 -1
- package/fesm2022/igniteui-angular-chat-extras.mjs +6 -6
- package/fesm2022/igniteui-angular-chat.mjs +12 -12
- package/fesm2022/igniteui-angular-checkbox.mjs +7 -7
- package/fesm2022/igniteui-angular-chips.mjs +10 -10
- package/fesm2022/igniteui-angular-combo.mjs +52 -52
- package/fesm2022/igniteui-angular-core.mjs +63 -110
- package/fesm2022/igniteui-angular-core.mjs.map +1 -1
- package/fesm2022/igniteui-angular-date-picker.mjs +38 -38
- package/fesm2022/igniteui-angular-dialog.mjs +13 -13
- package/fesm2022/igniteui-angular-directives.mjs +191 -191
- package/fesm2022/igniteui-angular-drop-down.mjs +29 -29
- package/fesm2022/igniteui-angular-expansion-panel.mjs +28 -28
- package/fesm2022/igniteui-angular-grids-core.mjs +454 -453
- package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-grid.mjs +49 -49
- package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +37 -37
- package/fesm2022/igniteui-angular-grids-lite.mjs +12 -12
- package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +79 -79
- package/fesm2022/igniteui-angular-grids-tree-grid.mjs +55 -55
- package/fesm2022/igniteui-angular-icon.mjs +10 -10
- package/fesm2022/igniteui-angular-input-group.mjs +25 -25
- package/fesm2022/igniteui-angular-list.mjs +40 -40
- package/fesm2022/igniteui-angular-navbar.mjs +13 -13
- package/fesm2022/igniteui-angular-navigation-drawer.mjs +16 -16
- package/fesm2022/igniteui-angular-paginator.mjs +19 -19
- package/fesm2022/igniteui-angular-progressbar.mjs +19 -19
- package/fesm2022/igniteui-angular-query-builder.mjs +22 -22
- package/fesm2022/igniteui-angular-radio.mjs +14 -14
- package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
- package/fesm2022/igniteui-angular-select.mjs +25 -25
- package/fesm2022/igniteui-angular-simple-combo.mjs +7 -7
- package/fesm2022/igniteui-angular-slider.mjs +39 -42
- package/fesm2022/igniteui-angular-slider.mjs.map +1 -1
- package/fesm2022/igniteui-angular-snackbar.mjs +7 -7
- package/fesm2022/igniteui-angular-splitter.mjs +13 -13
- package/fesm2022/igniteui-angular-stepper.mjs +38 -38
- package/fesm2022/igniteui-angular-stepper.mjs.map +1 -1
- package/fesm2022/igniteui-angular-switch.mjs +7 -7
- package/fesm2022/igniteui-angular-tabs.mjs +44 -43
- package/fesm2022/igniteui-angular-tabs.mjs.map +1 -1
- package/fesm2022/igniteui-angular-time-picker.mjs +19 -19
- package/fesm2022/igniteui-angular-toast.mjs +7 -7
- package/fesm2022/igniteui-angular-tree.mjs +28 -28
- package/lib/core/styles/components/badge/_badge-theme.scss +6 -1
- package/lib/core/styles/components/button-group/_button-group-theme.scss +78 -324
- package/lib/core/styles/components/chip/_chip-theme.scss +6 -2
- package/lib/core/styles/components/grid/_excel-filtering-theme.scss +16 -118
- package/lib/core/styles/components/grid/_grid-theme-builder.scss +391 -0
- package/lib/core/styles/components/grid/_grid-theme.scss +37 -39
- package/lib/core/styles/components/input/_input-group-theme.scss +1 -1
- package/lib/core/styles/components/progress/circular/_circular-theme.scss +1 -1
- package/lib/core/styles/components/query-builder/_query-builder-theme.scss +8 -8
- package/lib/core/styles/components/select/_select-theme.scss +1 -1
- package/migrations/common/ServerHost.js +35 -2
- package/migrations/common/UpdateChanges.js +37 -4
- package/migrations/common/tsLogger.js +34 -1
- package/migrations/common/tsUtils.js +35 -2
- package/migrations/common/util.d.ts +1 -1
- package/migrations/common/util.js +34 -1
- package/migrations/migration-collection.json +5 -0
- package/migrations/update-11_0_0/index.js +2 -3
- package/migrations/update-12_0_0/index.d.ts +1 -1
- package/migrations/update-12_0_0/index.js +2 -3
- package/migrations/update-12_1_0/index.js +2 -3
- package/migrations/update-13_0_0/index.js +2 -3
- package/migrations/update-13_1_0/index.js +2 -3
- package/migrations/update-15_1_0/index.js +2 -3
- package/migrations/update-16_1_0/index.js +2 -3
- package/migrations/update-17_0_0/index.js +36 -4
- package/migrations/update-17_1_0/index.js +2 -3
- package/migrations/update-18_0_0/index.js +2 -2
- package/migrations/update-20_0_6/index.js +3 -4
- package/migrations/update-21_0_0_import-migration/index.js +34 -1
- package/migrations/update-21_1_0_import-migration/index.js +34 -1
- package/migrations/update-21_2_0/changes/theme-changes.json +11 -0
- package/migrations/update-21_2_0/index.d.ts +3 -0
- package/migrations/update-21_2_0/index.js +18 -0
- package/package.json +2 -2
- package/schematics/ng-add/add-normalize.js +34 -1
- package/schematics/ng-add/index.spec.js +34 -1
- package/schematics/tsconfig.tsbuildinfo +1 -1
- package/skills/igniteui-angular-components/references/charts.md +4 -4
- package/skills/igniteui-angular-grids/SKILL.md +2 -0
- package/skills/igniteui-angular-grids/references/data-operations.md +3 -2
- package/skills/igniteui-angular-grids/references/sizing.md +204 -0
- package/skills/igniteui-angular-theming/SKILL.md +0 -3
- package/styles/igniteui-angular-dark.css +1 -1
- package/styles/igniteui-angular.css +1 -1
- package/styles/igniteui-bootstrap-dark.css +1 -1
- package/styles/igniteui-bootstrap-light.css +1 -1
- package/styles/igniteui-dark-green.css +1 -1
- package/styles/igniteui-fluent-dark-excel.css +1 -1
- package/styles/igniteui-fluent-dark-word.css +1 -1
- package/styles/igniteui-fluent-dark.css +1 -1
- package/styles/igniteui-fluent-light-excel.css +1 -1
- package/styles/igniteui-fluent-light-word.css +1 -1
- package/styles/igniteui-fluent-light.css +1 -1
- package/styles/igniteui-indigo-dark.css +1 -1
- package/styles/igniteui-indigo-light.css +1 -1
- package/styles/maps/igniteui-angular-dark.css.map +1 -1
- package/styles/maps/igniteui-angular.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
- package/styles/maps/igniteui-dark-green.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-light.css.map +1 -1
- package/styles/maps/igniteui-indigo-dark.css.map +1 -1
- package/styles/maps/igniteui-indigo-light.css.map +1 -1
- package/types/igniteui-angular-badge.d.ts +0 -2
- package/types/igniteui-angular-carousel.d.ts +0 -2
- package/types/igniteui-angular-core.d.ts +8 -35
- package/types/igniteui-angular-grids-core.d.ts +5 -0
- package/types/igniteui-angular-radio.d.ts +1 -1
- package/types/igniteui-angular-slider.d.ts +0 -2
- package/types/igniteui-angular-stepper.d.ts +0 -1
- package/types/igniteui-angular-tabs.d.ts +2 -4
- package/migrations/common/import-helper.js +0 -14
- package/skills/igniteui-angular-theming/references/contributing.md +0 -471
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igniteui-angular-carousel.mjs","sources":["../../../projects/igniteui-angular/carousel/src/carousel/enums.ts","../../../projects/igniteui-angular/carousel/src/carousel/carousel-base.ts","../../../projects/igniteui-angular/carousel/src/carousel/carousel.directives.ts","../../../projects/igniteui-angular/carousel/src/carousel/slide.component.ts","../../../projects/igniteui-angular/carousel/src/carousel/slide.component.html","../../../projects/igniteui-angular/carousel/src/carousel/carousel.component.ts","../../../projects/igniteui-angular/carousel/src/carousel/carousel.component.html","../../../projects/igniteui-angular/carousel/src/carousel/public_api.ts","../../../projects/igniteui-angular/carousel/src/carousel/carousel.module.ts","../../../projects/igniteui-angular/carousel/src/igniteui-angular-carousel.ts"],"sourcesContent":["\nexport const CarouselAnimationType = {\n none: 'none',\n slide: 'slide',\n fade: 'fade'\n} as const;\nexport type CarouselAnimationType = (typeof CarouselAnimationType)[keyof typeof CarouselAnimationType];\n\nexport const CarouselIndicatorsOrientation = {\n /**\n * @deprecated in version 19.1.0. Use `end` instead.\n */\n bottom: 'bottom',\n /**\n * @deprecated in version 19.1.0. Use `start` instead.\n */\n top: 'top',\n start: 'start',\n end: 'end'\n} as const;\nexport type CarouselIndicatorsOrientation = (typeof CarouselIndicatorsOrientation)[keyof typeof CarouselIndicatorsOrientation];\n","import { AnimationReferenceMetadata, useAnimation } from '@angular/animations';\nimport { ChangeDetectorRef, Directive, EventEmitter, inject, OnDestroy } from '@angular/core';\nimport { IgxAngularAnimationService } from 'igniteui-angular/core';\nimport { AnimationPlayer, AnimationService } from 'igniteui-angular/core';\nimport { fadeIn, slideInLeft } from 'igniteui-angular/animations';\nimport { CarouselAnimationType } from './enums';\n\nexport enum CarouselAnimationDirection { NONE, NEXT, PREV }\n\nexport interface CarouselAnimationSettings {\n enterAnimation: AnimationReferenceMetadata;\n leaveAnimation: AnimationReferenceMetadata;\n}\n\n/** @hidden */\nexport interface IgxSlideComponentBase {\n direction: CarouselAnimationDirection;\n previous: boolean;\n}\n\n/** @hidden */\n@Directive()\nexport abstract class IgxCarouselComponentBase implements OnDestroy {\n private animationService = inject<AnimationService>(IgxAngularAnimationService);\n protected cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n public animationType: CarouselAnimationType = CarouselAnimationType.slide;\n\n /** @hidden @internal */\n public enterAnimationDone = new EventEmitter();\n /** @hidden @internal */\n public leaveAnimationDone = new EventEmitter();\n\n /** @hidden */\n protected currentItem: IgxSlideComponentBase;\n /** @hidden */\n protected previousItem: IgxSlideComponentBase;\n /** @hidden */\n protected enterAnimationPlayer?: AnimationPlayer;\n /** @hidden */\n protected leaveAnimationPlayer?: AnimationPlayer;\n /** @hidden */\n protected defaultAnimationDuration = 320;\n /** @hidden */\n protected animationPosition = 0;\n /** @hidden */\n protected newDuration = 0;\n /** @hidden */\n protected vertical = false;\n\n public ngOnDestroy(): void {\n if (this.enterAnimationPlayer) {\n this.enterAnimationPlayer.destroy();\n this.enterAnimationPlayer = null;\n }\n if (this.leaveAnimationPlayer) {\n this.leaveAnimationPlayer.destroy();\n this.leaveAnimationPlayer = null;\n }\n }\n\n /** @hidden */\n protected triggerAnimations() {\n if (this.animationType !== CarouselAnimationType.none) {\n if (this.animationStarted(this.leaveAnimationPlayer) || this.animationStarted(this.enterAnimationPlayer)) {\n requestAnimationFrame(() => {\n this.resetAnimations();\n this.playAnimations();\n });\n } else {\n this.playAnimations();\n }\n }\n }\n\n /** @hidden */\n protected animationStarted(animation: AnimationPlayer): boolean {\n return animation && animation.hasStarted();\n }\n\n /** @hidden */\n protected playAnimations() {\n this.playLeaveAnimation();\n this.playEnterAnimation();\n }\n\n private resetAnimations() {\n if (this.animationStarted(this.leaveAnimationPlayer)) {\n this.leaveAnimationPlayer.reset();\n this.leaveAnimationDone.emit();\n }\n\n if (this.animationStarted(this.enterAnimationPlayer)) {\n this.enterAnimationPlayer.reset();\n this.enterAnimationDone.emit();\n this.cdr.markForCheck();\n }\n }\n\n private getAnimation(): CarouselAnimationSettings {\n let duration;\n if (this.newDuration) {\n duration = this.animationPosition ? this.animationPosition * this.newDuration : this.newDuration;\n } else {\n duration = this.animationPosition ? this.animationPosition * this.defaultAnimationDuration : this.defaultAnimationDuration;\n }\n\n const trans = this.animationPosition ? this.animationPosition * 100 : 100;\n switch (this.animationType) {\n case CarouselAnimationType.slide:\n return {\n enterAnimation: useAnimation(slideInLeft,\n {\n params: {\n delay: '0s',\n duration: `${duration}ms`,\n endOpacity: 1,\n startOpacity: 1,\n fromPosition: `${this.vertical ? 'translateY' : 'translateX'}(${this.currentItem.direction === 1 ? trans : -trans}%)`,\n toPosition: `${this.vertical ? 'translateY(0%)' : 'translateX(0%)'}`\n }\n }),\n leaveAnimation: useAnimation(slideInLeft,\n {\n params: {\n delay: '0s',\n duration: `${duration}ms`,\n endOpacity: 1,\n startOpacity: 1,\n fromPosition: `${this.vertical ? 'translateY(0%)' : 'translateX(0%)'}`,\n toPosition: `${this.vertical ? 'translateY' : 'translateX'}(${this.currentItem.direction === 1 ? -trans : trans}%)`,\n }\n })\n };\n case CarouselAnimationType.fade:\n return {\n enterAnimation: useAnimation(fadeIn,\n { params: { duration: `${duration}ms`, startOpacity: `${this.animationPosition}` } }),\n leaveAnimation: null\n };\n }\n return {\n enterAnimation: null,\n leaveAnimation: null\n };\n }\n\n private playEnterAnimation() {\n const animation = this.getAnimation().enterAnimation;\n if (!animation) {\n return;\n }\n\n this.enterAnimationPlayer = this.animationService.buildAnimation(animation, this.getCurrentElement());\n this.enterAnimationPlayer.animationEnd.subscribe(() => {\n // TODO: animation may never end. Find better way to clean up the player\n if (this.enterAnimationPlayer) {\n this.enterAnimationPlayer.destroy();\n this.enterAnimationPlayer = null;\n }\n this.animationPosition = 0;\n this.newDuration = 0;\n this.previousItem.previous = false;\n this.enterAnimationDone.emit();\n this.cdr.markForCheck();\n });\n this.previousItem.previous = true;\n this.enterAnimationPlayer.play();\n }\n\n private playLeaveAnimation() {\n const animation = this.getAnimation().leaveAnimation;\n if (!animation) {\n return;\n }\n\n this.leaveAnimationPlayer = this.animationService.buildAnimation(animation, this.getPreviousElement());\n this.leaveAnimationPlayer.animationEnd.subscribe(() => {\n // TODO: animation may never end. Find better way to clean up the player\n if (this.leaveAnimationPlayer) {\n this.leaveAnimationPlayer.destroy();\n this.leaveAnimationPlayer = null;\n }\n this.animationPosition = 0;\n this.newDuration = 0;\n this.leaveAnimationDone.emit();\n });\n this.leaveAnimationPlayer.play();\n }\n\n protected abstract getPreviousElement(): HTMLElement;\n\n protected abstract getCurrentElement(): HTMLElement;\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[igxCarouselIndicator]',\n standalone: true\n})\nexport class IgxCarouselIndicatorDirective {\n}\n\n@Directive({\n selector: '[igxCarouselNextButton]',\n standalone: true\n})\nexport class IgxCarouselNextButtonDirective {\n}\n\n@Directive({\n selector: '[igxCarouselPrevButton]',\n standalone: true\n})\nexport class IgxCarouselPrevButtonDirective {\n}\n","import { Component, OnDestroy, Input, HostBinding, Output, EventEmitter, ElementRef, AfterContentChecked, booleanAttribute, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { CarouselAnimationDirection, IgxSlideComponentBase } from './carousel-base';\n\n/**\n * A slide component that usually holds an image and/or a caption text.\n * IgxSlideComponent is usually a child component of an IgxCarouselComponent.\n *\n * ```\n * <igx-slide [input bindings] >\n * <ng-content></ng-content>\n * </igx-slide>\n * ```\n *\n * @export\n */\n@Component({\n selector: 'igx-slide',\n templateUrl: 'slide.component.html',\n standalone: true\n})\nexport class IgxSlideComponent implements AfterContentChecked, OnDestroy, IgxSlideComponentBase {\n private elementRef = inject(ElementRef);\n\n /**\n * Gets/sets the `index` of the slide inside the carousel.\n * ```html\n * <igx-carousel>\n * <igx-slide index=\"1\"></igx-slide>\n * <igx-carousel>\n * ```\n *\n * @memberOf IgxSlideComponent\n */\n @Input() public index: number;\n\n /**\n * Gets/sets the target `direction` for the slide.\n * ```html\n * <igx-carousel>\n * <igx-slide direction=\"NEXT\"></igx-slide>\n * <igx-carousel>\n * ```\n *\n * @memberOf IgxSlideComponent\n */\n @Input() public direction: CarouselAnimationDirection;\n\n @Input()\n public total: number;\n\n /**\n * Returns the `tabIndex` of the slide component.\n * ```typescript\n * let tabIndex = this.carousel.tabIndex;\n * ```\n *\n * @memberof IgxSlideComponent\n * @deprecated in version 19.2.0.\n */\n @HostBinding('attr.tabindex')\n public get tabIndex() {\n return this.active ? 0 : null;\n }\n\n /**\n * @hidden\n */\n @HostBinding('attr.id')\n public id: string;\n\n /**\n * Returns the `role` of the slide component.\n * By default is set to `tabpanel`\n *\n * @memberof IgxSlideComponent\n */\n @HostBinding('attr.role')\n public tab = 'tabpanel';\n\n /** @hidden */\n @HostBinding('attr.aria-labelledby')\n public ariaLabelledBy;\n\n /**\n * Returns the class of the slide component.\n * ```typescript\n * let class = this.slide.cssClass;\n * ```\n *\n * @memberof IgxSlideComponent\n */\n @HostBinding('class.igx-slide')\n public cssClass = 'igx-slide';\n\n /**\n * Gets/sets the `active` state of the slide.\n * ```html\n * <igx-carousel>\n * <igx-slide [active] =\"false\"></igx-slide>\n * <igx-carousel>\n * ```\n *\n * Two-way data binding.\n * ```html\n * <igx-carousel>\n * <igx-slide [(active)] =\"model.isActive\"></igx-slide>\n * <igx-carousel>\n * ```\n *\n * @memberof IgxSlideComponent\n */\n @HostBinding('class.igx-slide--current')\n @Input({ transform: booleanAttribute })\n public get active(): boolean {\n return this._active;\n }\n\n public set active(value) {\n this._active = value;\n this.activeChange.emit(this._active);\n }\n\n @HostBinding('class.igx-slide--previous')\n @Input({ transform: booleanAttribute }) public previous = false;\n\n /**\n * @hidden\n */\n @Output() public activeChange = new EventEmitter<boolean>();\n\n private _active = false;\n private _destroy$ = new Subject<boolean>();\n\n /**\n * Returns a reference to the carousel element in the DOM.\n * ```typescript\n * let nativeElement = this.slide.nativeElement;\n * ```\n *\n * @memberof IgxSlideComponent\n */\n public get nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n /**\n * @hidden\n */\n public get isDestroyed(): Subject<boolean> {\n return this._destroy$;\n }\n\n public ngAfterContentChecked() {\n this.id = `panel-${this.index}`;\n this.ariaLabelledBy = `tab-${this.index}-${this.total}`;\n }\n\n /**\n * @hidden\n */\n public ngOnDestroy() {\n this._destroy$.next(true);\n this._destroy$.complete();\n }\n}\n","<ng-content></ng-content>\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { AfterContentInit, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Injectable, Input, IterableChangeRecord, IterableDiffer, IterableDiffers, OnDestroy, Output, QueryList, TemplateRef, ViewChild, ViewChildren, booleanAttribute, DOCUMENT, inject } from '@angular/core';\nimport { HammerGestureConfig, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';\nimport { merge, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CarouselResourceStringsEN, ICarouselResourceStrings, ɵIgxDirectionality } from 'igniteui-angular/core';\nimport { first, IBaseEventArgs, last, PlatformUtil } from 'igniteui-angular/core';\nimport { CarouselAnimationDirection, IgxCarouselComponentBase } from './carousel-base';\nimport { IgxCarouselIndicatorDirective, IgxCarouselNextButtonDirective, IgxCarouselPrevButtonDirective } from './carousel.directives';\nimport { IgxSlideComponent } from './slide.component';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { IgxButtonDirective } from 'igniteui-angular/directives';\nimport { getCurrentResourceStrings, onResourceChangeHandle } from 'igniteui-angular/core';\nimport { HammerGesturesManager } from 'igniteui-angular/core';\nimport { CarouselAnimationType, CarouselIndicatorsOrientation } from './enums';\n\nlet NEXT_ID = 0;\n\n\n@Injectable()\nexport class CarouselHammerConfig extends HammerGestureConfig {\n public override overrides = {\n pan: { direction: HammerGesturesManager.Hammer?.DIRECTION_HORIZONTAL }\n };\n}\n/**\n * **Ignite UI for Angular Carousel** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/carousel.html)\n *\n * The Ignite UI Carousel is used to browse or navigate through a collection of slides. Slides can contain custom\n * content such as images or cards and be used for things such as on-boarding tutorials or page-based interfaces.\n * It can be used as a separate fullscreen element or inside another component.\n *\n * Example:\n * ```html\n * <igx-carousel>\n * <igx-slide>\n * <h3>First Slide Header</h3>\n * <p>First slide Content</p>\n * <igx-slide>\n * <igx-slide>\n * <h3>Second Slide Header</h3>\n * <p>Second Slide Content</p>\n * </igx-carousel>\n * ```\n */\n@Component({\n providers: [\n {\n provide: HAMMER_GESTURE_CONFIG,\n useClass: CarouselHammerConfig\n }\n ],\n selector: 'igx-carousel',\n templateUrl: 'carousel.component.html',\n styles: [`\n :host {\n display: block;\n outline-style: none;\n }`],\n imports: [IgxButtonDirective, IgxIconComponent, NgClass, NgTemplateOutlet]\n})\nexport class IgxCarouselComponent extends IgxCarouselComponentBase implements OnDestroy, AfterContentInit {\n private element = inject(ElementRef);\n private iterableDiffers = inject(IterableDiffers);\n private platformUtil = inject(PlatformUtil);\n private dir = inject(ɵIgxDirectionality);\n private document = inject(DOCUMENT);\n\n\n /**\n * Sets the `id` of the carousel.\n * If not set, the `id` of the first carousel component will be `\"igx-carousel-0\"`.\n * ```html\n * <igx-carousel id=\"my-first-carousel\"></igx-carousel>\n * ```\n *\n * @memberof IgxCarouselComponent\n */\n @HostBinding('attr.id')\n @Input()\n public id = `igx-carousel-${NEXT_ID++}`;\n /**\n * Returns the `role` attribute of the carousel.\n * ```typescript\n * let carouselRole = this.carousel.role;\n * ```\n *\n * @memberof IgxCarouselComponent\n */\n @HostBinding('attr.role') public role = 'region';\n\n /** @hidden */\n @HostBinding('attr.aria-roledescription')\n public roleDescription = 'carousel';\n\n /** @hidden */\n @HostBinding('attr.aria-labelledby')\n public get labelId() {\n return this.showIndicatorsLabel ? `${this.id}-label` : null;\n }\n\n /** @hidden */\n @HostBinding('class.igx-carousel--vertical')\n\tpublic get isVertical(): boolean {\n\t\treturn this.vertical;\n\t}\n\n /**\n * Returns the class of the carousel component.\n * ```typescript\n * let class = this.carousel.cssClass;\n * ```\n *\n * @memberof IgxCarouselComponent\n */\n @HostBinding('class.igx-carousel')\n public cssClass = 'igx-carousel';\n\n /**\n * Gets the `touch-action` style of the `list item`.\n * ```typescript\n * let touchAction = this.listItem.touchAction;\n * ```\n */\n @HostBinding('style.touch-action')\n public get touchAction() {\n return this.gesturesSupport ? 'pan-y' : 'auto';\n }\n\n /**\n * Sets whether the carousel should `loop` back to the first slide after reaching the last slide.\n * Default value is `true`.\n * ```html\n * <igx-carousel [loop]=\"false\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input({ transform: booleanAttribute }) public loop = true;\n\n /**\n * Sets whether the carousel will `pause` the slide transitions on user interactions.\n * Default value is `true`.\n * ```html\n * <igx-carousel [pause]=\"false\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input({ transform: booleanAttribute }) public pause = true;\n\n /**\n * Controls whether the carousel should render the left/right `navigation` buttons.\n * Default value is `true`.\n * ```html\n * <igx-carousel [navigation]=\"false\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input({ transform: booleanAttribute }) public navigation = true;\n\n /**\n * Controls whether the carousel should render the indicators.\n * Default value is `true`.\n * ```html\n * <igx-carousel [indicators]=\"false\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input({ transform: booleanAttribute }) public indicators = true;\n\n\n /**\n * Controls whether the carousel has vertical alignment.\n * Default value is `false`.\n * ```html\n * <igx-carousel [vertical]=\"true\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input({ transform: booleanAttribute }) public override vertical = false;\n\n /**\n * Controls whether the carousel should support gestures.\n * Default value is `true`.\n * ```html\n * <igx-carousel [gesturesSupport]=\"false\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input({ transform: booleanAttribute }) public gesturesSupport = true;\n\n /**\n * Controls the maximum indexes that can be shown.\n * Default value is `10`.\n * ```html\n * <igx-carousel [maximumIndicatorsCount]=\"5\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input() public maximumIndicatorsCount = 10;\n\n /**\n * Gets/sets the display mode of carousel indicators. It can be `start` or `end`.\n * Default value is `end`.\n * ```html\n * <igx-carousel indicatorsOrientation=\"start\">\n * <igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input() public indicatorsOrientation: CarouselIndicatorsOrientation = CarouselIndicatorsOrientation.end;\n\n /**\n * Gets/sets the animation type of carousel.\n * Default value is `slide`.\n * ```html\n * <igx-carousel animationType=\"none\">\n * <igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input() public override animationType: CarouselAnimationType = CarouselAnimationType.slide;\n\n /**\n * The custom template, if any, that should be used when rendering carousel indicators\n *\n * ```typescript\n * // Set in typescript\n * const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;\n * myComponent.carousel.indicatorTemplate = myCustomTemplate;\n * ```\n * ```html\n * <!-- Set in markup -->\n * <igx-carousel #carousel>\n * ...\n * <ng-template igxCarouselIndicator let-slide>\n * <igx-icon *ngIf=\"slide.active\">brightness_7</igx-icon>\n * <igx-icon *ngIf=\"!slide.active\">brightness_5</igx-icon>\n * </ng-template>\n * </igx-carousel>\n * ```\n */\n @ContentChild(IgxCarouselIndicatorDirective, { read: TemplateRef, static: false })\n public indicatorTemplate: TemplateRef<any> = null;\n\n /**\n * The custom template, if any, that should be used when rendering carousel next button\n *\n * ```typescript\n * // Set in typescript\n * const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;\n * myComponent.carousel.nextButtonTemplate = myCustomTemplate;\n * ```\n * ```html\n * <!-- Set in markup -->\n * <igx-carousel #carousel>\n * ...\n * <ng-template igxCarouselNextButton let-disabled>\n * <button type=\"button\" igxButton=\"fab\" igxRipple=\"white\" [disabled]=\"disabled\">\n * <igx-icon name=\"add\"></igx-icon>\n * </button>\n * </ng-template>\n * </igx-carousel>\n * ```\n */\n @ContentChild(IgxCarouselNextButtonDirective, { read: TemplateRef, static: false })\n public nextButtonTemplate: TemplateRef<any> = null;\n\n /**\n * The custom template, if any, that should be used when rendering carousel previous button\n *\n * ```typescript\n * // Set in typescript\n * const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;\n * myComponent.carousel.prevButtonTemplate = myCustomTemplate;\n * ```\n * ```html\n * <!-- Set in markup -->\n * <igx-carousel #carousel>\n * ...\n * <ng-template igxCarouselPrevButton let-disabled>\n * <button type=\"button\" igxButton=\"fab\" igxRipple=\"white\" [disabled]=\"disabled\">\n * <igx-icon name=\"remove\"></igx-icon>\n * </button>\n * </ng-template>\n * </igx-carousel>\n * ```\n */\n @ContentChild(IgxCarouselPrevButtonDirective, { read: TemplateRef, static: false })\n public prevButtonTemplate: TemplateRef<any> = null;\n\n /**\n * The collection of `slides` currently in the carousel.\n * ```typescript\n * let slides: QueryList<IgxSlideComponent> = this.carousel.slides;\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @ContentChildren(IgxSlideComponent)\n public slides: QueryList<IgxSlideComponent>;\n\n /**\n * An event that is emitted after a slide transition has happened.\n * Provides references to the `IgxCarouselComponent` and `IgxSlideComponent` as event arguments.\n * ```html\n * <igx-carousel (slideChanged)=\"slideChanged($event)\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Output() public slideChanged = new EventEmitter<ISlideEventArgs>();\n\n /**\n * An event that is emitted after a slide has been added to the carousel.\n * Provides references to the `IgxCarouselComponent` and `IgxSlideComponent` as event arguments.\n * ```html\n * <igx-carousel (slideAdded)=\"slideAdded($event)\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Output() public slideAdded = new EventEmitter<ISlideEventArgs>();\n\n /**\n * An event that is emitted after a slide has been removed from the carousel.\n * Provides references to the `IgxCarouselComponent` and `IgxSlideComponent` as event arguments.\n * ```html\n * <igx-carousel (slideRemoved)=\"slideRemoved($event)\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Output() public slideRemoved = new EventEmitter<ISlideEventArgs>();\n\n /**\n * An event that is emitted after the carousel has been paused.\n * Provides a reference to the `IgxCarouselComponent` as an event argument.\n * ```html\n * <igx-carousel (carouselPaused)=\"carouselPaused($event)\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Output() public carouselPaused = new EventEmitter<IgxCarouselComponent>();\n\n /**\n * An event that is emitted after the carousel has resumed transitioning between `slides`.\n * Provides a reference to the `IgxCarouselComponent` as an event argument.\n * ```html\n * <igx-carousel (carouselPlaying)=\"carouselPlaying($event)\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Output() public carouselPlaying = new EventEmitter<IgxCarouselComponent>();\n\n @ViewChild('defaultIndicator', { read: TemplateRef, static: true })\n private defaultIndicator: TemplateRef<any>;\n\n @ViewChild('defaultNextButton', { read: TemplateRef, static: true })\n private defaultNextButton: TemplateRef<any>;\n\n @ViewChild('defaultPrevButton', { read: TemplateRef, static: true })\n private defaultPrevButton: TemplateRef<any>;\n\n @ViewChildren('indicators', { read: ElementRef })\n private _indicators: QueryList<ElementRef<HTMLDivElement>>;\n\n /**\n * @hidden\n * @internal\n */\n public stoppedByInteraction: boolean;\n protected override currentItem: IgxSlideComponent;\n protected override previousItem: IgxSlideComponent;\n private _interval: number;\n private _resourceStrings: ICarouselResourceStrings = null;\n private _defaultResourceStrings = getCurrentResourceStrings(CarouselResourceStringsEN);\n private lastInterval: any;\n private playing: boolean;\n private destroyed: boolean;\n private destroy$ = new Subject<any>();\n private differ: IterableDiffer<IgxSlideComponent> | null = null;\n private incomingSlide: IgxSlideComponent;\n private _hasKeyboardFocusOnIndicators = false;\n\n /**\n * An accessor that sets the resource strings.\n * By default it uses EN resources.\n */\n @Input()\n public set resourceStrings(value: ICarouselResourceStrings) {\n this._resourceStrings = Object.assign({}, this._resourceStrings, value);\n }\n\n /**\n * An accessor that returns the resource strings.\n */\n public get resourceStrings(): ICarouselResourceStrings {\n return this._resourceStrings || this._defaultResourceStrings;\n }\n\n /** @hidden */\n public get getIndicatorTemplate(): TemplateRef<any> {\n if (this.indicatorTemplate) {\n return this.indicatorTemplate;\n }\n return this.defaultIndicator;\n }\n\n /** @hidden */\n public get getNextButtonTemplate(): TemplateRef<any> {\n if (this.nextButtonTemplate) {\n return this.nextButtonTemplate;\n }\n\n return this.defaultNextButton\n }\n\n /** @hidden */\n public get getPrevButtonTemplate(): TemplateRef<any> {\n if (this.prevButtonTemplate) {\n return this.prevButtonTemplate;\n }\n\n return this.defaultPrevButton\n }\n\n /** @hidden */\n public get indicatorsClass() {\n return {\n ['igx-carousel-indicators--focused']: this._hasKeyboardFocusOnIndicators,\n [`igx-carousel-indicators--${this.getIndicatorsClass()}`]: true\n };\n }\n\n /** @hidden */\n public get showIndicators(): boolean {\n return this.indicators && this.total <= this.maximumIndicatorsCount && this.total > 0;\n }\n\n /** @hidden */\n public get showIndicatorsLabel(): boolean {\n return this.indicators && this.total > this.maximumIndicatorsCount;\n }\n\n /** @hidden */\n public get getCarouselLabel() {\n return `${this.current + 1} ${this.resourceStrings.igx_carousel_of} ${this.total}`;\n }\n\n /**\n * Returns the total number of `slides` in the carousel.\n * ```typescript\n * let slideCount = this.carousel.total;\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public get total(): number {\n return this.slides?.length;\n }\n\n /**\n * The index of the slide being currently shown.\n * ```typescript\n * let currentSlideNumber = this.carousel.current;\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public get current(): number {\n return !this.currentItem ? 0 : this.currentItem.index;\n }\n\n /**\n * Returns a boolean indicating if the carousel is playing.\n * ```typescript\n * let isPlaying = this.carousel.isPlaying;\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public get isPlaying(): boolean {\n return this.playing;\n }\n\n /**\n * Returns а boolean indicating if the carousel is destroyed.\n * ```typescript\n * let isDestroyed = this.carousel.isDestroyed;\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public get isDestroyed(): boolean {\n return this.destroyed;\n }\n /**\n * Returns a reference to the carousel element in the DOM.\n * ```typescript\n * let nativeElement = this.carousel.nativeElement;\n * ```\n *\n * @memberof IgxCarouselComponent\n */\n public get nativeElement(): any {\n return this.element.nativeElement;\n }\n\n /**\n * Returns the time `interval` in milliseconds before the slide changes.\n * ```typescript\n * let timeInterval = this.carousel.interval;\n * ```\n *\n * @memberof IgxCarouselComponent\n */\n @Input()\n public get interval(): number {\n return this._interval;\n }\n\n /**\n * Sets the time `interval` in milliseconds before the slide changes.\n * If not set, the carousel will not change `slides` automatically.\n * ```html\n * <igx-carousel [interval]=\"1000\"></igx-carousel>\n * ```\n *\n * @memberof IgxCarouselComponent\n */\n public set interval(value: number) {\n this._interval = +value;\n this.restartInterval();\n }\n\n constructor() {\n super();\n this.differ = this.iterableDiffers.find([]).create(null);\n onResourceChangeHandle(this.destroy$, () => {\n this._defaultResourceStrings = getCurrentResourceStrings(CarouselResourceStringsEN, false);\n }, this);\n }\n\n /** @hidden */\n @HostListener('tap', ['$event'])\n public onTap(event) {\n // play pause only when tap on slide\n if (event.target && event.target.classList.contains('igx-slide')) {\n if (this.isPlaying) {\n if (this.pause) {\n this.stoppedByInteraction = true;\n }\n this.stop();\n } else if (this.stoppedByInteraction) {\n this.play();\n }\n }\n }\n\n /** @hidden */\n @HostListener('mouseenter')\n public onMouseEnter() {\n if (this.pause && this.isPlaying) {\n this.stoppedByInteraction = true;\n }\n this.stop();\n }\n\n /** @hidden */\n @HostListener('mouseleave')\n public onMouseLeave() {\n if (this.stoppedByInteraction) {\n this.play();\n }\n }\n\n /** @hidden */\n @HostListener('panleft', ['$event'])\n public onPanLeft(event) {\n if (!this.vertical) {\n this.pan(event);\n }\n }\n\n /** @hidden */\n @HostListener('panright', ['$event'])\n public onPanRight(event) {\n if (!this.vertical) {\n this.pan(event);\n }\n }\n\n /** @hidden */\n @HostListener('panup', ['$event'])\n public onPanUp(event) {\n if (this.vertical) {\n this.pan(event);\n }\n }\n\n /** @hidden */\n @HostListener('pandown', ['$event'])\n public onPanDown(event) {\n if (this.vertical) {\n this.pan(event);\n }\n }\n\n /**\n * @hidden\n */\n @HostListener('panend', ['$event'])\n public onPanEnd(event) {\n if (!this.gesturesSupport) {\n return;\n }\n event.preventDefault();\n\n const slideSize = this.vertical\n ? this.currentItem.nativeElement.offsetHeight\n : this.currentItem.nativeElement.offsetWidth;\n const panOffset = (slideSize / 1000);\n const eventDelta = this.vertical ? event.deltaY : event.deltaX;\n const delta = Math.abs(eventDelta) + panOffset < slideSize ? Math.abs(eventDelta) : slideSize - panOffset;\n const velocity = Math.abs(event.velocity);\n this.resetSlideStyles(this.currentItem);\n if (this.incomingSlide) {\n this.resetSlideStyles(this.incomingSlide);\n if (slideSize / 2 < delta || velocity > 1) {\n this.incomingSlide.direction = eventDelta < 0 ? CarouselAnimationDirection.NEXT : CarouselAnimationDirection.PREV;\n this.incomingSlide.previous = false;\n\n this.animationPosition = this.animationType === CarouselAnimationType.fade ?\n delta / slideSize : (slideSize - delta) / slideSize;\n\n if (velocity > 1) {\n this.newDuration = this.defaultAnimationDuration / velocity;\n }\n this.incomingSlide.active = true;\n } else {\n this.currentItem.direction = eventDelta > 0 ? CarouselAnimationDirection.NEXT : CarouselAnimationDirection.PREV;\n this.previousItem = this.incomingSlide;\n this.previousItem.previous = true;\n this.animationPosition = this.animationType === CarouselAnimationType.fade ?\n Math.abs((slideSize - delta) / slideSize) : delta / slideSize;\n this.playAnimations();\n }\n }\n\n if (this.stoppedByInteraction) {\n this.play();\n }\n }\n\n /** @hidden */\n public ngAfterContentInit() {\n this.slides.changes\n .pipe(takeUntil(this.destroy$))\n .subscribe((change: QueryList<IgxSlideComponent>) => this.initSlides(change));\n\n this.initSlides(this.slides);\n }\n\n /** @hidden */\n public override ngOnDestroy() {\n super.ngOnDestroy();\n this.destroy$.next(true);\n this.destroy$.complete();\n this.destroyed = true;\n if (this.lastInterval) {\n clearInterval(this.lastInterval);\n }\n }\n\n /** @hidden */\n public handleKeydownPrev(event: KeyboardEvent): void {\n if (this.platformUtil.isActivationKey(event)) {\n event.preventDefault();\n this.prev();\n }\n }\n\n /** @hidden */\n public handleKeydownNext(event: KeyboardEvent): void {\n if (this.platformUtil.isActivationKey(event)) {\n event.preventDefault();\n this.next();\n }\n }\n\n /** @hidden */\n public handleKeyUp(event: KeyboardEvent): void {\n if (event.key === this.platformUtil.KEYMAP.TAB) {\n this._hasKeyboardFocusOnIndicators = true;\n }\n }\n\n /** @hidden */\n public handleFocusOut(event: FocusEvent): void {\n const target = event.relatedTarget as HTMLElement;\n\n if (!target || !target.classList.contains('igx-carousel-indicators__indicator')) {\n this._hasKeyboardFocusOnIndicators = false;\n }\n }\n\n /** @hidden */\n public handleClick(): void {\n this._hasKeyboardFocusOnIndicators = false;\n }\n\n /** @hidden */\n public handleKeydown(event: KeyboardEvent): void {\n const { key } = event;\n const slides = this.slides.toArray();\n\n switch (key) {\n case this.platformUtil.KEYMAP.ARROW_LEFT:\n this.dir.rtl ? this.next() : this.prev();\n break;\n case this.platformUtil.KEYMAP.ARROW_RIGHT:\n this.dir.rtl ? this.prev() : this.next();\n break;\n case this.platformUtil.KEYMAP.HOME:\n event.preventDefault();\n this.select(this.dir.rtl ? last(slides) : first(slides));\n break;\n case this.platformUtil.KEYMAP.END:\n event.preventDefault();\n this.select(this.dir.rtl ? first(slides) : last(slides));\n break;\n }\n\n this.indicatorsElements[this.current].nativeElement.focus();\n }\n\n /**\n * Returns the slide corresponding to the provided `index` or null.\n * ```typescript\n * let slide1 = this.carousel.get(1);\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public get(index: number): IgxSlideComponent {\n return this.slides.find((slide) => slide.index === index);\n }\n\n /**\n * Adds a new slide to the carousel.\n * ```typescript\n * this.carousel.add(newSlide);\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public add(slide: IgxSlideComponent) {\n const newSlides = this.slides.toArray();\n newSlides.push(slide);\n this.slides.reset(newSlides);\n this.slides.notifyOnChanges();\n }\n\n /**\n * Removes a slide from the carousel.\n * ```typescript\n * this.carousel.remove(slide);\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public remove(slide: IgxSlideComponent) {\n if (slide && slide === this.get(slide.index)) { // check if the requested slide for delete is present in the carousel\n const newSlides = this.slides.toArray();\n newSlides.splice(slide.index, 1);\n this.slides.reset(newSlides);\n this.slides.notifyOnChanges();\n }\n }\n\n /**\n * Switches to the passed-in slide with a given `direction`.\n * ```typescript\n * const slide = this.carousel.get(2);\n * this.carousel.select(slide, CarouselAnimationDirection.NEXT);\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public select(slide: IgxSlideComponent, direction?: CarouselAnimationDirection): void;\n /**\n * Switches to slide by index with a given `direction`.\n * ```typescript\n * this.carousel.select(2, CarouselAnimationDirection.NEXT);\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public select(index: number, direction?: CarouselAnimationDirection): void;\n public select(slideOrIndex: IgxSlideComponent | number, direction: CarouselAnimationDirection = CarouselAnimationDirection.NONE): void {\n const slide = typeof slideOrIndex === 'number'\n ? this.get(slideOrIndex)\n : slideOrIndex;\n\n if (slide && slide !== this.currentItem) {\n slide.direction = direction;\n slide.active = true;\n }\n }\n\n /**\n * Transitions to the next slide in the carousel.\n * ```typescript\n * this.carousel.next();\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public next() {\n const index = this.getNextIndex();\n\n if (index === 0 && !this.loop) {\n this.stop();\n return;\n }\n return this.select(this.get(index), CarouselAnimationDirection.NEXT);\n }\n\n /**\n * Transitions to the previous slide in the carousel.\n * ```typescript\n * this.carousel.prev();\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public prev() {\n const index = this.getPrevIndex();\n\n if (!this.loop && index === this.total - 1) {\n this.stop();\n return;\n }\n return this.select(this.get(index), CarouselAnimationDirection.PREV);\n }\n\n /**\n * Resumes playing of the carousel if in paused state.\n * No operation otherwise.\n * ```typescript\n * this.carousel.play();\n * }\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public play() {\n if (!this.playing) {\n this.playing = true;\n this.carouselPlaying.emit(this);\n this.restartInterval();\n this.stoppedByInteraction = false;\n }\n }\n\n /**\n * Stops slide transitions if the `pause` option is set to `true`.\n * No operation otherwise.\n * ```typescript\n * this.carousel.stop();\n * }\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public stop() {\n if (this.pause) {\n this.playing = false;\n this.carouselPaused.emit(this);\n this.resetInterval();\n }\n }\n\n protected getPreviousElement(): HTMLElement {\n return this.previousItem.nativeElement;\n }\n\n protected getCurrentElement(): HTMLElement {\n return this.currentItem.nativeElement;\n }\n\n private resetInterval() {\n if (this.lastInterval) {\n clearInterval(this.lastInterval);\n this.lastInterval = null;\n }\n }\n\n private restartInterval() {\n this.resetInterval();\n\n if (!isNaN(this.interval) && this.interval > 0 && this.platformUtil.isBrowser) {\n this.lastInterval = setInterval(() => {\n const tick = +this.interval;\n if (this.playing && this.total && !isNaN(tick) && tick > 0) {\n this.next();\n } else {\n this.stop();\n }\n }, this.interval);\n }\n }\n\n /** @hidden */\n public get nextButtonDisabled() {\n return !this.loop && this.current === (this.total - 1);\n }\n\n /** @hidden */\n public get prevButtonDisabled() {\n return !this.loop && this.current === 0;\n }\n\n private get indicatorsElements() {\n return this._indicators.toArray();\n }\n\n private getIndicatorsClass(): string {\n switch (this.indicatorsOrientation) {\n case CarouselIndicatorsOrientation.top:\n return CarouselIndicatorsOrientation.start;\n case CarouselIndicatorsOrientation.bottom:\n return CarouselIndicatorsOrientation.end;\n default:\n return this.indicatorsOrientation;\n }\n }\n\n private getNextIndex(): number {\n return (this.current + 1) % this.total;\n }\n\n private getPrevIndex(): number {\n return this.current - 1 < 0 ? this.total - 1 : this.current - 1;\n }\n\n private resetSlideStyles(slide: IgxSlideComponent) {\n slide.nativeElement.style.transform = '';\n slide.nativeElement.style.opacity = '';\n }\n\n private pan(event) {\n const slideSize = this.vertical\n ? this.currentItem.nativeElement.offsetHeight\n : this.currentItem.nativeElement.offsetWidth;\n const panOffset = (slideSize / 1000);\n const delta = this.vertical ? event.deltaY : event.deltaX;\n const index = delta < 0 ? this.getNextIndex() : this.getPrevIndex();\n const offset = delta < 0 ? slideSize + delta : -slideSize + delta;\n\n if (!this.gesturesSupport || event.isFinal || Math.abs(delta) + panOffset >= slideSize) {\n return;\n }\n\n if (!this.loop && ((this.current === 0 && delta > 0) || (this.current === this.total - 1 && delta < 0))) {\n this.incomingSlide = null;\n return;\n }\n\n event.preventDefault();\n if (this.isPlaying) {\n this.stoppedByInteraction = true;\n this.stop();\n }\n\n if (this.previousItem && this.previousItem.previous) {\n this.previousItem.previous = false;\n }\n this.finishAnimations();\n\n if (this.incomingSlide) {\n if (index !== this.incomingSlide.index) {\n this.resetSlideStyles(this.incomingSlide);\n this.incomingSlide.previous = false;\n this.incomingSlide = this.get(index);\n }\n } else {\n this.incomingSlide = this.get(index);\n }\n this.incomingSlide.previous = true;\n\n if (this.animationType === CarouselAnimationType.fade) {\n this.currentItem.nativeElement.style.opacity = `${Math.abs(offset) / slideSize}`;\n } else {\n this.currentItem.nativeElement.style.transform = this.vertical\n ? `translateY(${delta}px)`\n : `translateX(${delta}px)`;\n this.incomingSlide.nativeElement.style.transform = this.vertical\n ? `translateY(${offset}px)`\n : `translateX(${offset}px)`;\n }\n }\n\n private unsubscriber(slide: IgxSlideComponent) {\n return merge(this.destroy$, slide.isDestroyed);\n }\n\n private onSlideActivated(slide: IgxSlideComponent) {\n if (slide.active && slide !== this.currentItem) {\n if (slide.direction === CarouselAnimationDirection.NONE) {\n const newIndex = slide.index;\n slide.direction = newIndex > this.current ? CarouselAnimationDirection.NEXT : CarouselAnimationDirection.PREV;\n }\n\n if (this.currentItem) {\n if (this.previousItem && this.previousItem.previous) {\n this.previousItem.previous = false;\n }\n this.currentItem.direction = slide.direction;\n this.currentItem.active = false;\n\n this.previousItem = this.currentItem;\n this.currentItem = slide;\n this.triggerAnimations();\n } else {\n this.currentItem = slide;\n }\n this.slideChanged.emit({ carousel: this, slide });\n this.restartInterval();\n this.cdr.markForCheck();\n }\n }\n\n\n private finishAnimations() {\n if (this.animationStarted(this.leaveAnimationPlayer)) {\n this.leaveAnimationPlayer.finish();\n }\n\n if (this.animationStarted(this.enterAnimationPlayer)) {\n this.enterAnimationPlayer.finish();\n }\n }\n\n private initSlides(change: QueryList<IgxSlideComponent>) {\n const diff = this.differ.diff(change.toArray());\n if (diff) {\n this.slides.reduce((any, c, ind) => c.index = ind, 0); // reset slides indexes\n diff.forEachAddedItem((record: IterableChangeRecord<IgxSlideComponent>) => {\n const slide = record.item;\n slide.total = this.total;\n this.slideAdded.emit({ carousel: this, slide });\n if (slide.active) {\n this.currentItem = slide;\n }\n slide.activeChange.pipe(takeUntil(this.unsubscriber(slide))).subscribe(() => this.onSlideActivated(slide));\n });\n\n diff.forEachRemovedItem((record: IterableChangeRecord<IgxSlideComponent>) => {\n const slide = record.item;\n this.slideRemoved.emit({ carousel: this, slide });\n if (slide.active) {\n slide.active = false;\n this.currentItem = this.get(slide.index < this.total ? slide.index : this.total - 1);\n }\n });\n\n this.updateSlidesSelection();\n }\n }\n\n private updateSlidesSelection() {\n if (this.platformUtil.isBrowser) {\n requestAnimationFrame(() => {\n if (this.currentItem) {\n this.currentItem.active = true;\n const activeSlides = this.slides.filter(slide => slide.active && slide.index !== this.currentItem.index);\n activeSlides.forEach(slide => slide.active = false);\n } else if (this.total) {\n this.slides.first.active = true;\n }\n this.play();\n });\n }\n }\n}\n\nexport interface ISlideEventArgs extends IBaseEventArgs {\n carousel: IgxCarouselComponent;\n slide: IgxSlideComponent;\n}\n","<ng-template #defaultIndicator let-slide>\n <div class=\"igx-nav-dot\"\n [class.igx-nav-dot--active]=\"slide.active\">\n </div>\n</ng-template>\n\n<ng-template #defaultNextButton>\n <igx-icon aria-hidden=\"true\" family=\"default\" name=\"carousel_next\"\n class=\"igx-nav-arrow\">\n </igx-icon>\n</ng-template>\n\n<ng-template #defaultPrevButton>\n <igx-icon aria-hidden=\"true\" family=\"default\" name=\"carousel_prev\"\n class=\"igx-nav-arrow\">\n </igx-icon>\n</ng-template>\n\n@if (navigation && slides.length) {\n <button\n igxButton\n class=\"igx-carousel__arrow--prev\"\n [attr.aria-label]=\"resourceStrings.igx_carousel_previous_slide\"\n [disabled]=\"prevButtonDisabled\"\n (click)=\"prev()\"\n (keydown)=\"handleKeydownPrev($event)\">\n <ng-container *ngTemplateOutlet=\"getPrevButtonTemplate; context: {$implicit: prevButtonDisabled};\"></ng-container>\n </button>\n}\n\n@if (navigation && slides.length) {\n <button\n igxButton\n class=\"igx-carousel__arrow--next\"\n [attr.aria-label]=\"resourceStrings.igx_carousel_next_slide\"\n [disabled]=\"nextButtonDisabled\"\n (click)=\"next()\"\n (keydown)=\"handleKeydownNext($event)\">\n <ng-container *ngTemplateOutlet=\"getNextButtonTemplate; context: {$implicit: nextButtonDisabled};\"></ng-container>\n </button>\n}\n\n@if (showIndicators) {\n <div [ngClass]=\"indicatorsClass\" [attr.role]=\"'tablist'\" (keyup)=\"handleKeyUp($event)\" (focusout)=\"handleFocusOut($event)\" (click)=\"handleClick()\" (keydown)=\"handleKeydown($event)\">\n @for (slide of slides; track slide) {\n <div #indicators\n class=\"igx-carousel-indicators__indicator\"\n (click)=\"select(slide)\"\n [id]=\"'tab-'+ slide.index + '-' + total\"\n [attr.role]=\"'tab'\"\n [attr.tabindex]=\"slide.active ? 0 : -1\"\n [attr.aria-label]=\"resourceStrings.igx_carousel_slide + ' ' + (slide.index + 1) + ' ' + resourceStrings.igx_carousel_of + ' ' + this.total\"\n [attr.aria-controls]=\"'panel-' + slide.index\"\n [attr.aria-selected]=\"slide.active\">\n <ng-container *ngTemplateOutlet=\"getIndicatorTemplate; context: {$implicit: slide};\"></ng-container>\n </div>\n }\n </div>\n}\n\n@if (showIndicatorsLabel) {\n <div [ngClass]=\"indicatorsClass\" class=\"igx-carousel-label-indicator\">\n <span [id]=\"labelId\" class=\"igx-carousel__label\">{{getCarouselLabel}}</span>\n </div>\n}\n\n<div class=\"igx-carousel__inner\" [attr.aria-live]=\"!interval || stoppedByInteraction ? 'polite' : 'off'\">\n <ng-content></ng-content>\n</div>\n","import { IgxCarouselComponent } from './carousel.component';\nimport { IgxCarouselIndicatorDirective, IgxCarouselNextButtonDirective, IgxCarouselPrevButtonDirective } from './carousel.directives';\nimport { IgxSlideComponent } from './slide.component';\n\nexport { CarouselAnimationDirection, IgxCarouselComponentBase, IgxSlideComponentBase, CarouselAnimationSettings } from './carousel-base';\nexport * from './carousel.component';\nexport * from './slide.component';\nexport * from './carousel.directives';\nexport { CarouselAnimationType, CarouselIndicatorsOrientation } from './enums';\n\n/* NOTE: Carousel directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_CAROUSEL_DIRECTIVES = [\n IgxCarouselComponent,\n IgxSlideComponent,\n IgxCarouselIndicatorDirective,\n IgxCarouselNextButtonDirective,\n IgxCarouselPrevButtonDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_CAROUSEL_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_CAROUSEL_DIRECTIVES\n ],\n exports: [\n ...IGX_CAROUSEL_DIRECTIVES\n ]\n})\nexport class IgxCarouselModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵIgxDirectionality","i1.IgxCarouselComponent","i2.IgxSlideComponent","i3.IgxCarouselIndicatorDirective","i3.IgxCarouselNextButtonDirective","i3.IgxCarouselPrevButtonDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"igniteui-angular-carousel.mjs","sources":["../../../projects/igniteui-angular/carousel/src/carousel/enums.ts","../../../projects/igniteui-angular/carousel/src/carousel/carousel-base.ts","../../../projects/igniteui-angular/carousel/src/carousel/carousel.directives.ts","../../../projects/igniteui-angular/carousel/src/carousel/slide.component.ts","../../../projects/igniteui-angular/carousel/src/carousel/slide.component.html","../../../projects/igniteui-angular/carousel/src/carousel/carousel.component.ts","../../../projects/igniteui-angular/carousel/src/carousel/carousel.component.html","../../../projects/igniteui-angular/carousel/src/carousel/public_api.ts","../../../projects/igniteui-angular/carousel/src/carousel/carousel.module.ts","../../../projects/igniteui-angular/carousel/src/igniteui-angular-carousel.ts"],"sourcesContent":["\nexport const CarouselAnimationType = {\n none: 'none',\n slide: 'slide',\n fade: 'fade'\n} as const;\nexport type CarouselAnimationType = (typeof CarouselAnimationType)[keyof typeof CarouselAnimationType];\n\nexport const CarouselIndicatorsOrientation = {\n /**\n * @deprecated in version 19.1.0. Use `end` instead.\n */\n bottom: 'bottom',\n /**\n * @deprecated in version 19.1.0. Use `start` instead.\n */\n top: 'top',\n start: 'start',\n end: 'end'\n} as const;\nexport type CarouselIndicatorsOrientation = (typeof CarouselIndicatorsOrientation)[keyof typeof CarouselIndicatorsOrientation];\n","import { AnimationReferenceMetadata, useAnimation } from '@angular/animations';\nimport { ChangeDetectorRef, Directive, EventEmitter, inject, OnDestroy } from '@angular/core';\nimport { IgxAngularAnimationService } from 'igniteui-angular/core';\nimport { AnimationPlayer, AnimationService } from 'igniteui-angular/core';\nimport { fadeIn, slideInLeft } from 'igniteui-angular/animations';\nimport { CarouselAnimationType } from './enums';\n\nexport enum CarouselAnimationDirection { NONE, NEXT, PREV }\n\nexport interface CarouselAnimationSettings {\n enterAnimation: AnimationReferenceMetadata;\n leaveAnimation: AnimationReferenceMetadata;\n}\n\n/** @hidden */\nexport interface IgxSlideComponentBase {\n direction: CarouselAnimationDirection;\n previous: boolean;\n}\n\n/** @hidden */\n@Directive()\nexport abstract class IgxCarouselComponentBase implements OnDestroy {\n private animationService = inject<AnimationService>(IgxAngularAnimationService);\n protected cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n public animationType: CarouselAnimationType = CarouselAnimationType.slide;\n\n /** @hidden @internal */\n public enterAnimationDone = new EventEmitter();\n /** @hidden @internal */\n public leaveAnimationDone = new EventEmitter();\n\n /** @hidden */\n protected currentItem: IgxSlideComponentBase;\n /** @hidden */\n protected previousItem: IgxSlideComponentBase;\n /** @hidden */\n protected enterAnimationPlayer?: AnimationPlayer;\n /** @hidden */\n protected leaveAnimationPlayer?: AnimationPlayer;\n /** @hidden */\n protected defaultAnimationDuration = 320;\n /** @hidden */\n protected animationPosition = 0;\n /** @hidden */\n protected newDuration = 0;\n /** @hidden */\n protected vertical = false;\n\n public ngOnDestroy(): void {\n if (this.enterAnimationPlayer) {\n this.enterAnimationPlayer.destroy();\n this.enterAnimationPlayer = null;\n }\n if (this.leaveAnimationPlayer) {\n this.leaveAnimationPlayer.destroy();\n this.leaveAnimationPlayer = null;\n }\n }\n\n /** @hidden */\n protected triggerAnimations() {\n if (this.animationType !== CarouselAnimationType.none) {\n if (this.animationStarted(this.leaveAnimationPlayer) || this.animationStarted(this.enterAnimationPlayer)) {\n requestAnimationFrame(() => {\n this.resetAnimations();\n this.playAnimations();\n });\n } else {\n this.playAnimations();\n }\n }\n }\n\n /** @hidden */\n protected animationStarted(animation: AnimationPlayer): boolean {\n return animation && animation.hasStarted();\n }\n\n /** @hidden */\n protected playAnimations() {\n this.playLeaveAnimation();\n this.playEnterAnimation();\n }\n\n private resetAnimations() {\n if (this.animationStarted(this.leaveAnimationPlayer)) {\n this.leaveAnimationPlayer.reset();\n this.leaveAnimationDone.emit();\n }\n\n if (this.animationStarted(this.enterAnimationPlayer)) {\n this.enterAnimationPlayer.reset();\n this.enterAnimationDone.emit();\n this.cdr.markForCheck();\n }\n }\n\n private getAnimation(): CarouselAnimationSettings {\n let duration;\n if (this.newDuration) {\n duration = this.animationPosition ? this.animationPosition * this.newDuration : this.newDuration;\n } else {\n duration = this.animationPosition ? this.animationPosition * this.defaultAnimationDuration : this.defaultAnimationDuration;\n }\n\n const trans = this.animationPosition ? this.animationPosition * 100 : 100;\n switch (this.animationType) {\n case CarouselAnimationType.slide:\n return {\n enterAnimation: useAnimation(slideInLeft,\n {\n params: {\n delay: '0s',\n duration: `${duration}ms`,\n endOpacity: 1,\n startOpacity: 1,\n fromPosition: `${this.vertical ? 'translateY' : 'translateX'}(${this.currentItem.direction === 1 ? trans : -trans}%)`,\n toPosition: `${this.vertical ? 'translateY(0%)' : 'translateX(0%)'}`\n }\n }),\n leaveAnimation: useAnimation(slideInLeft,\n {\n params: {\n delay: '0s',\n duration: `${duration}ms`,\n endOpacity: 1,\n startOpacity: 1,\n fromPosition: `${this.vertical ? 'translateY(0%)' : 'translateX(0%)'}`,\n toPosition: `${this.vertical ? 'translateY' : 'translateX'}(${this.currentItem.direction === 1 ? -trans : trans}%)`,\n }\n })\n };\n case CarouselAnimationType.fade:\n return {\n enterAnimation: useAnimation(fadeIn,\n { params: { duration: `${duration}ms`, startOpacity: `${this.animationPosition}` } }),\n leaveAnimation: null\n };\n }\n return {\n enterAnimation: null,\n leaveAnimation: null\n };\n }\n\n private playEnterAnimation() {\n const animation = this.getAnimation().enterAnimation;\n if (!animation) {\n return;\n }\n\n this.enterAnimationPlayer = this.animationService.buildAnimation(animation, this.getCurrentElement());\n this.enterAnimationPlayer.animationEnd.subscribe(() => {\n // TODO: animation may never end. Find better way to clean up the player\n if (this.enterAnimationPlayer) {\n this.enterAnimationPlayer.destroy();\n this.enterAnimationPlayer = null;\n }\n this.animationPosition = 0;\n this.newDuration = 0;\n this.previousItem.previous = false;\n this.enterAnimationDone.emit();\n this.cdr.markForCheck();\n });\n this.previousItem.previous = true;\n this.enterAnimationPlayer.play();\n }\n\n private playLeaveAnimation() {\n const animation = this.getAnimation().leaveAnimation;\n if (!animation) {\n return;\n }\n\n this.leaveAnimationPlayer = this.animationService.buildAnimation(animation, this.getPreviousElement());\n this.leaveAnimationPlayer.animationEnd.subscribe(() => {\n // TODO: animation may never end. Find better way to clean up the player\n if (this.leaveAnimationPlayer) {\n this.leaveAnimationPlayer.destroy();\n this.leaveAnimationPlayer = null;\n }\n this.animationPosition = 0;\n this.newDuration = 0;\n this.leaveAnimationDone.emit();\n });\n this.leaveAnimationPlayer.play();\n }\n\n protected abstract getPreviousElement(): HTMLElement;\n\n protected abstract getCurrentElement(): HTMLElement;\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[igxCarouselIndicator]',\n standalone: true\n})\nexport class IgxCarouselIndicatorDirective {\n}\n\n@Directive({\n selector: '[igxCarouselNextButton]',\n standalone: true\n})\nexport class IgxCarouselNextButtonDirective {\n}\n\n@Directive({\n selector: '[igxCarouselPrevButton]',\n standalone: true\n})\nexport class IgxCarouselPrevButtonDirective {\n}\n","import { Component, OnDestroy, Input, HostBinding, Output, EventEmitter, ElementRef, AfterContentChecked, booleanAttribute, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { CarouselAnimationDirection, IgxSlideComponentBase } from './carousel-base';\n\n/**\n * A slide component that usually holds an image and/or a caption text.\n * IgxSlideComponent is usually a child component of an IgxCarouselComponent.\n *\n * ```\n * <igx-slide [input bindings] >\n * <ng-content></ng-content>\n * </igx-slide>\n * ```\n *\n * @export\n */\n@Component({\n selector: 'igx-slide',\n templateUrl: 'slide.component.html',\n standalone: true\n})\nexport class IgxSlideComponent implements AfterContentChecked, OnDestroy, IgxSlideComponentBase {\n private elementRef = inject(ElementRef);\n\n /**\n * Gets/sets the `index` of the slide inside the carousel.\n * ```html\n * <igx-carousel>\n * <igx-slide index=\"1\"></igx-slide>\n * <igx-carousel>\n * ```\n *\n * @memberOf IgxSlideComponent\n */\n @Input() public index: number;\n\n /**\n * Gets/sets the target `direction` for the slide.\n * ```html\n * <igx-carousel>\n * <igx-slide direction=\"NEXT\"></igx-slide>\n * <igx-carousel>\n * ```\n *\n * @memberOf IgxSlideComponent\n */\n @Input() public direction: CarouselAnimationDirection;\n\n @Input()\n public total: number;\n\n /**\n * Returns the `tabIndex` of the slide component.\n * ```typescript\n * let tabIndex = this.carousel.tabIndex;\n * ```\n *\n * @memberof IgxSlideComponent\n * @deprecated in version 19.2.0.\n */\n @HostBinding('attr.tabindex')\n public get tabIndex() {\n return this.active ? 0 : null;\n }\n\n /**\n * @hidden\n */\n @HostBinding('attr.id')\n public id: string;\n\n /**\n * Returns the `role` of the slide component.\n * By default is set to `tabpanel`\n *\n * @memberof IgxSlideComponent\n */\n @HostBinding('attr.role')\n public tab = 'tabpanel';\n\n /** @hidden */\n @HostBinding('attr.aria-labelledby')\n public ariaLabelledBy;\n\n /**\n * Returns the class of the slide component.\n * ```typescript\n * let class = this.slide.cssClass;\n * ```\n *\n * @memberof IgxSlideComponent\n */\n @HostBinding('class.igx-slide')\n public cssClass = 'igx-slide';\n\n /**\n * Gets/sets the `active` state of the slide.\n * ```html\n * <igx-carousel>\n * <igx-slide [active] =\"false\"></igx-slide>\n * <igx-carousel>\n * ```\n *\n * Two-way data binding.\n * ```html\n * <igx-carousel>\n * <igx-slide [(active)] =\"model.isActive\"></igx-slide>\n * <igx-carousel>\n * ```\n *\n * @memberof IgxSlideComponent\n */\n @HostBinding('class.igx-slide--current')\n @Input({ transform: booleanAttribute })\n public get active(): boolean {\n return this._active;\n }\n\n public set active(value) {\n this._active = value;\n this.activeChange.emit(this._active);\n }\n\n @HostBinding('class.igx-slide--previous')\n @Input({ transform: booleanAttribute }) public previous = false;\n\n /**\n * @hidden\n */\n @Output() public activeChange = new EventEmitter<boolean>();\n\n private _active = false;\n private _destroy$ = new Subject<boolean>();\n\n /**\n * Returns a reference to the carousel element in the DOM.\n * ```typescript\n * let nativeElement = this.slide.nativeElement;\n * ```\n *\n * @memberof IgxSlideComponent\n */\n public get nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n /**\n * @hidden\n */\n public get isDestroyed(): Subject<boolean> {\n return this._destroy$;\n }\n\n public ngAfterContentChecked() {\n this.id = `panel-${this.index}`;\n this.ariaLabelledBy = `tab-${this.index}-${this.total}`;\n }\n\n /**\n * @hidden\n */\n public ngOnDestroy() {\n this._destroy$.next(true);\n this._destroy$.complete();\n }\n}\n","<ng-content></ng-content>\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { AfterContentInit, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Injectable, Input, IterableChangeRecord, IterableDiffer, IterableDiffers, OnDestroy, Output, QueryList, TemplateRef, ViewChild, ViewChildren, booleanAttribute, inject } from '@angular/core';\nimport { HammerGestureConfig, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';\nimport { merge, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CarouselResourceStringsEN, ICarouselResourceStrings, isLeftToRight} from 'igniteui-angular/core';\nimport { first, IBaseEventArgs, last, PlatformUtil } from 'igniteui-angular/core';\nimport { CarouselAnimationDirection, IgxCarouselComponentBase } from './carousel-base';\nimport { IgxCarouselIndicatorDirective, IgxCarouselNextButtonDirective, IgxCarouselPrevButtonDirective } from './carousel.directives';\nimport { IgxSlideComponent } from './slide.component';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { IgxButtonDirective } from 'igniteui-angular/directives';\nimport { getCurrentResourceStrings, onResourceChangeHandle } from 'igniteui-angular/core';\nimport { HammerGesturesManager } from 'igniteui-angular/core';\nimport { CarouselAnimationType, CarouselIndicatorsOrientation } from './enums';\n\nlet NEXT_ID = 0;\n\n\n@Injectable()\nexport class CarouselHammerConfig extends HammerGestureConfig {\n public override overrides = {\n pan: { direction: HammerGesturesManager.Hammer?.DIRECTION_HORIZONTAL }\n };\n}\n/**\n * **Ignite UI for Angular Carousel** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/carousel.html)\n *\n * The Ignite UI Carousel is used to browse or navigate through a collection of slides. Slides can contain custom\n * content such as images or cards and be used for things such as on-boarding tutorials or page-based interfaces.\n * It can be used as a separate fullscreen element or inside another component.\n *\n * Example:\n * ```html\n * <igx-carousel>\n * <igx-slide>\n * <h3>First Slide Header</h3>\n * <p>First slide Content</p>\n * <igx-slide>\n * <igx-slide>\n * <h3>Second Slide Header</h3>\n * <p>Second Slide Content</p>\n * </igx-carousel>\n * ```\n */\n@Component({\n providers: [\n {\n provide: HAMMER_GESTURE_CONFIG,\n useClass: CarouselHammerConfig\n }\n ],\n selector: 'igx-carousel',\n templateUrl: 'carousel.component.html',\n styles: [`\n :host {\n display: block;\n outline-style: none;\n }`],\n imports: [IgxButtonDirective, IgxIconComponent, NgClass, NgTemplateOutlet]\n})\nexport class IgxCarouselComponent extends IgxCarouselComponentBase implements OnDestroy, AfterContentInit {\n private element = inject(ElementRef);\n private iterableDiffers = inject(IterableDiffers);\n private platformUtil = inject(PlatformUtil);\n\n\n\n /**\n * Sets the `id` of the carousel.\n * If not set, the `id` of the first carousel component will be `\"igx-carousel-0\"`.\n * ```html\n * <igx-carousel id=\"my-first-carousel\"></igx-carousel>\n * ```\n *\n * @memberof IgxCarouselComponent\n */\n @HostBinding('attr.id')\n @Input()\n public id = `igx-carousel-${NEXT_ID++}`;\n /**\n * Returns the `role` attribute of the carousel.\n * ```typescript\n * let carouselRole = this.carousel.role;\n * ```\n *\n * @memberof IgxCarouselComponent\n */\n @HostBinding('attr.role') public role = 'region';\n\n /** @hidden */\n @HostBinding('attr.aria-roledescription')\n public roleDescription = 'carousel';\n\n /** @hidden */\n @HostBinding('attr.aria-labelledby')\n public get labelId() {\n return this.showIndicatorsLabel ? `${this.id}-label` : null;\n }\n\n /** @hidden */\n @HostBinding('class.igx-carousel--vertical')\n\tpublic get isVertical(): boolean {\n\t\treturn this.vertical;\n\t}\n\n /**\n * Returns the class of the carousel component.\n * ```typescript\n * let class = this.carousel.cssClass;\n * ```\n *\n * @memberof IgxCarouselComponent\n */\n @HostBinding('class.igx-carousel')\n public cssClass = 'igx-carousel';\n\n /**\n * Gets the `touch-action` style of the `list item`.\n * ```typescript\n * let touchAction = this.listItem.touchAction;\n * ```\n */\n @HostBinding('style.touch-action')\n public get touchAction() {\n return this.gesturesSupport ? 'pan-y' : 'auto';\n }\n\n /**\n * Sets whether the carousel should `loop` back to the first slide after reaching the last slide.\n * Default value is `true`.\n * ```html\n * <igx-carousel [loop]=\"false\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input({ transform: booleanAttribute }) public loop = true;\n\n /**\n * Sets whether the carousel will `pause` the slide transitions on user interactions.\n * Default value is `true`.\n * ```html\n * <igx-carousel [pause]=\"false\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input({ transform: booleanAttribute }) public pause = true;\n\n /**\n * Controls whether the carousel should render the left/right `navigation` buttons.\n * Default value is `true`.\n * ```html\n * <igx-carousel [navigation]=\"false\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input({ transform: booleanAttribute }) public navigation = true;\n\n /**\n * Controls whether the carousel should render the indicators.\n * Default value is `true`.\n * ```html\n * <igx-carousel [indicators]=\"false\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input({ transform: booleanAttribute }) public indicators = true;\n\n\n /**\n * Controls whether the carousel has vertical alignment.\n * Default value is `false`.\n * ```html\n * <igx-carousel [vertical]=\"true\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input({ transform: booleanAttribute }) public override vertical = false;\n\n /**\n * Controls whether the carousel should support gestures.\n * Default value is `true`.\n * ```html\n * <igx-carousel [gesturesSupport]=\"false\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input({ transform: booleanAttribute }) public gesturesSupport = true;\n\n /**\n * Controls the maximum indexes that can be shown.\n * Default value is `10`.\n * ```html\n * <igx-carousel [maximumIndicatorsCount]=\"5\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input() public maximumIndicatorsCount = 10;\n\n /**\n * Gets/sets the display mode of carousel indicators. It can be `start` or `end`.\n * Default value is `end`.\n * ```html\n * <igx-carousel indicatorsOrientation=\"start\">\n * <igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input() public indicatorsOrientation: CarouselIndicatorsOrientation = CarouselIndicatorsOrientation.end;\n\n /**\n * Gets/sets the animation type of carousel.\n * Default value is `slide`.\n * ```html\n * <igx-carousel animationType=\"none\">\n * <igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Input() public override animationType: CarouselAnimationType = CarouselAnimationType.slide;\n\n /**\n * The custom template, if any, that should be used when rendering carousel indicators\n *\n * ```typescript\n * // Set in typescript\n * const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;\n * myComponent.carousel.indicatorTemplate = myCustomTemplate;\n * ```\n * ```html\n * <!-- Set in markup -->\n * <igx-carousel #carousel>\n * ...\n * <ng-template igxCarouselIndicator let-slide>\n * <igx-icon *ngIf=\"slide.active\">brightness_7</igx-icon>\n * <igx-icon *ngIf=\"!slide.active\">brightness_5</igx-icon>\n * </ng-template>\n * </igx-carousel>\n * ```\n */\n @ContentChild(IgxCarouselIndicatorDirective, { read: TemplateRef, static: false })\n public indicatorTemplate: TemplateRef<any> = null;\n\n /**\n * The custom template, if any, that should be used when rendering carousel next button\n *\n * ```typescript\n * // Set in typescript\n * const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;\n * myComponent.carousel.nextButtonTemplate = myCustomTemplate;\n * ```\n * ```html\n * <!-- Set in markup -->\n * <igx-carousel #carousel>\n * ...\n * <ng-template igxCarouselNextButton let-disabled>\n * <button type=\"button\" igxButton=\"fab\" igxRipple=\"white\" [disabled]=\"disabled\">\n * <igx-icon name=\"add\"></igx-icon>\n * </button>\n * </ng-template>\n * </igx-carousel>\n * ```\n */\n @ContentChild(IgxCarouselNextButtonDirective, { read: TemplateRef, static: false })\n public nextButtonTemplate: TemplateRef<any> = null;\n\n /**\n * The custom template, if any, that should be used when rendering carousel previous button\n *\n * ```typescript\n * // Set in typescript\n * const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;\n * myComponent.carousel.prevButtonTemplate = myCustomTemplate;\n * ```\n * ```html\n * <!-- Set in markup -->\n * <igx-carousel #carousel>\n * ...\n * <ng-template igxCarouselPrevButton let-disabled>\n * <button type=\"button\" igxButton=\"fab\" igxRipple=\"white\" [disabled]=\"disabled\">\n * <igx-icon name=\"remove\"></igx-icon>\n * </button>\n * </ng-template>\n * </igx-carousel>\n * ```\n */\n @ContentChild(IgxCarouselPrevButtonDirective, { read: TemplateRef, static: false })\n public prevButtonTemplate: TemplateRef<any> = null;\n\n /**\n * The collection of `slides` currently in the carousel.\n * ```typescript\n * let slides: QueryList<IgxSlideComponent> = this.carousel.slides;\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @ContentChildren(IgxSlideComponent)\n public slides: QueryList<IgxSlideComponent>;\n\n /**\n * An event that is emitted after a slide transition has happened.\n * Provides references to the `IgxCarouselComponent` and `IgxSlideComponent` as event arguments.\n * ```html\n * <igx-carousel (slideChanged)=\"slideChanged($event)\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Output() public slideChanged = new EventEmitter<ISlideEventArgs>();\n\n /**\n * An event that is emitted after a slide has been added to the carousel.\n * Provides references to the `IgxCarouselComponent` and `IgxSlideComponent` as event arguments.\n * ```html\n * <igx-carousel (slideAdded)=\"slideAdded($event)\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Output() public slideAdded = new EventEmitter<ISlideEventArgs>();\n\n /**\n * An event that is emitted after a slide has been removed from the carousel.\n * Provides references to the `IgxCarouselComponent` and `IgxSlideComponent` as event arguments.\n * ```html\n * <igx-carousel (slideRemoved)=\"slideRemoved($event)\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Output() public slideRemoved = new EventEmitter<ISlideEventArgs>();\n\n /**\n * An event that is emitted after the carousel has been paused.\n * Provides a reference to the `IgxCarouselComponent` as an event argument.\n * ```html\n * <igx-carousel (carouselPaused)=\"carouselPaused($event)\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Output() public carouselPaused = new EventEmitter<IgxCarouselComponent>();\n\n /**\n * An event that is emitted after the carousel has resumed transitioning between `slides`.\n * Provides a reference to the `IgxCarouselComponent` as an event argument.\n * ```html\n * <igx-carousel (carouselPlaying)=\"carouselPlaying($event)\"></igx-carousel>\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n @Output() public carouselPlaying = new EventEmitter<IgxCarouselComponent>();\n\n @ViewChild('defaultIndicator', { read: TemplateRef, static: true })\n private defaultIndicator: TemplateRef<any>;\n\n @ViewChild('defaultNextButton', { read: TemplateRef, static: true })\n private defaultNextButton: TemplateRef<any>;\n\n @ViewChild('defaultPrevButton', { read: TemplateRef, static: true })\n private defaultPrevButton: TemplateRef<any>;\n\n @ViewChildren('indicators', { read: ElementRef })\n private _indicators: QueryList<ElementRef<HTMLDivElement>>;\n\n /**\n * @hidden\n * @internal\n */\n public stoppedByInteraction: boolean;\n protected override currentItem: IgxSlideComponent;\n protected override previousItem: IgxSlideComponent;\n private _interval: number;\n private _resourceStrings: ICarouselResourceStrings = null;\n private _defaultResourceStrings = getCurrentResourceStrings(CarouselResourceStringsEN);\n private lastInterval: any;\n private playing: boolean;\n private destroyed: boolean;\n private destroy$ = new Subject<any>();\n private differ: IterableDiffer<IgxSlideComponent> | null = null;\n private incomingSlide: IgxSlideComponent;\n private _hasKeyboardFocusOnIndicators = false;\n\n /**\n * An accessor that sets the resource strings.\n * By default it uses EN resources.\n */\n @Input()\n public set resourceStrings(value: ICarouselResourceStrings) {\n this._resourceStrings = Object.assign({}, this._resourceStrings, value);\n }\n\n /**\n * An accessor that returns the resource strings.\n */\n public get resourceStrings(): ICarouselResourceStrings {\n return this._resourceStrings || this._defaultResourceStrings;\n }\n\n /** @hidden */\n public get getIndicatorTemplate(): TemplateRef<any> {\n if (this.indicatorTemplate) {\n return this.indicatorTemplate;\n }\n return this.defaultIndicator;\n }\n\n /** @hidden */\n public get getNextButtonTemplate(): TemplateRef<any> {\n if (this.nextButtonTemplate) {\n return this.nextButtonTemplate;\n }\n\n return this.defaultNextButton\n }\n\n /** @hidden */\n public get getPrevButtonTemplate(): TemplateRef<any> {\n if (this.prevButtonTemplate) {\n return this.prevButtonTemplate;\n }\n\n return this.defaultPrevButton\n }\n\n /** @hidden */\n public get indicatorsClass() {\n return {\n ['igx-carousel-indicators--focused']: this._hasKeyboardFocusOnIndicators,\n [`igx-carousel-indicators--${this.getIndicatorsClass()}`]: true\n };\n }\n\n /** @hidden */\n public get showIndicators(): boolean {\n return this.indicators && this.total <= this.maximumIndicatorsCount && this.total > 0;\n }\n\n /** @hidden */\n public get showIndicatorsLabel(): boolean {\n return this.indicators && this.total > this.maximumIndicatorsCount;\n }\n\n /** @hidden */\n public get getCarouselLabel() {\n return `${this.current + 1} ${this.resourceStrings.igx_carousel_of} ${this.total}`;\n }\n\n /**\n * Returns the total number of `slides` in the carousel.\n * ```typescript\n * let slideCount = this.carousel.total;\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public get total(): number {\n return this.slides?.length;\n }\n\n /**\n * The index of the slide being currently shown.\n * ```typescript\n * let currentSlideNumber = this.carousel.current;\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public get current(): number {\n return !this.currentItem ? 0 : this.currentItem.index;\n }\n\n /**\n * Returns a boolean indicating if the carousel is playing.\n * ```typescript\n * let isPlaying = this.carousel.isPlaying;\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public get isPlaying(): boolean {\n return this.playing;\n }\n\n /**\n * Returns а boolean indicating if the carousel is destroyed.\n * ```typescript\n * let isDestroyed = this.carousel.isDestroyed;\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public get isDestroyed(): boolean {\n return this.destroyed;\n }\n /**\n * Returns a reference to the carousel element in the DOM.\n * ```typescript\n * let nativeElement = this.carousel.nativeElement;\n * ```\n *\n * @memberof IgxCarouselComponent\n */\n public get nativeElement(): any {\n return this.element.nativeElement;\n }\n\n /**\n * Returns the time `interval` in milliseconds before the slide changes.\n * ```typescript\n * let timeInterval = this.carousel.interval;\n * ```\n *\n * @memberof IgxCarouselComponent\n */\n @Input()\n public get interval(): number {\n return this._interval;\n }\n\n /**\n * Sets the time `interval` in milliseconds before the slide changes.\n * If not set, the carousel will not change `slides` automatically.\n * ```html\n * <igx-carousel [interval]=\"1000\"></igx-carousel>\n * ```\n *\n * @memberof IgxCarouselComponent\n */\n public set interval(value: number) {\n this._interval = +value;\n this.restartInterval();\n }\n\n constructor() {\n super();\n this.differ = this.iterableDiffers.find([]).create(null);\n onResourceChangeHandle(this.destroy$, () => {\n this._defaultResourceStrings = getCurrentResourceStrings(CarouselResourceStringsEN, false);\n }, this);\n }\n\n /** @hidden */\n @HostListener('tap', ['$event'])\n public onTap(event) {\n // play pause only when tap on slide\n if (event.target && event.target.classList.contains('igx-slide')) {\n if (this.isPlaying) {\n if (this.pause) {\n this.stoppedByInteraction = true;\n }\n this.stop();\n } else if (this.stoppedByInteraction) {\n this.play();\n }\n }\n }\n\n /** @hidden */\n @HostListener('mouseenter')\n public onMouseEnter() {\n if (this.pause && this.isPlaying) {\n this.stoppedByInteraction = true;\n }\n this.stop();\n }\n\n /** @hidden */\n @HostListener('mouseleave')\n public onMouseLeave() {\n if (this.stoppedByInteraction) {\n this.play();\n }\n }\n\n /** @hidden */\n @HostListener('panleft', ['$event'])\n public onPanLeft(event) {\n if (!this.vertical) {\n this.pan(event);\n }\n }\n\n /** @hidden */\n @HostListener('panright', ['$event'])\n public onPanRight(event) {\n if (!this.vertical) {\n this.pan(event);\n }\n }\n\n /** @hidden */\n @HostListener('panup', ['$event'])\n public onPanUp(event) {\n if (this.vertical) {\n this.pan(event);\n }\n }\n\n /** @hidden */\n @HostListener('pandown', ['$event'])\n public onPanDown(event) {\n if (this.vertical) {\n this.pan(event);\n }\n }\n\n /**\n * @hidden\n */\n @HostListener('panend', ['$event'])\n public onPanEnd(event) {\n if (!this.gesturesSupport) {\n return;\n }\n event.preventDefault();\n\n const slideSize = this.vertical\n ? this.currentItem.nativeElement.offsetHeight\n : this.currentItem.nativeElement.offsetWidth;\n const panOffset = (slideSize / 1000);\n const eventDelta = this.vertical ? event.deltaY : event.deltaX;\n const delta = Math.abs(eventDelta) + panOffset < slideSize ? Math.abs(eventDelta) : slideSize - panOffset;\n const velocity = Math.abs(event.velocity);\n this.resetSlideStyles(this.currentItem);\n if (this.incomingSlide) {\n this.resetSlideStyles(this.incomingSlide);\n if (slideSize / 2 < delta || velocity > 1) {\n this.incomingSlide.direction = eventDelta < 0 ? CarouselAnimationDirection.NEXT : CarouselAnimationDirection.PREV;\n this.incomingSlide.previous = false;\n\n this.animationPosition = this.animationType === CarouselAnimationType.fade ?\n delta / slideSize : (slideSize - delta) / slideSize;\n\n if (velocity > 1) {\n this.newDuration = this.defaultAnimationDuration / velocity;\n }\n this.incomingSlide.active = true;\n } else {\n this.currentItem.direction = eventDelta > 0 ? CarouselAnimationDirection.NEXT : CarouselAnimationDirection.PREV;\n this.previousItem = this.incomingSlide;\n this.previousItem.previous = true;\n this.animationPosition = this.animationType === CarouselAnimationType.fade ?\n Math.abs((slideSize - delta) / slideSize) : delta / slideSize;\n this.playAnimations();\n }\n }\n\n if (this.stoppedByInteraction) {\n this.play();\n }\n }\n\n /** @hidden */\n public ngAfterContentInit() {\n this.slides.changes\n .pipe(takeUntil(this.destroy$))\n .subscribe((change: QueryList<IgxSlideComponent>) => this.initSlides(change));\n\n this.initSlides(this.slides);\n }\n\n /** @hidden */\n public override ngOnDestroy() {\n super.ngOnDestroy();\n this.destroy$.next(true);\n this.destroy$.complete();\n this.destroyed = true;\n if (this.lastInterval) {\n clearInterval(this.lastInterval);\n }\n }\n\n /** @hidden */\n public handleKeydownPrev(event: KeyboardEvent): void {\n if (this.platformUtil.isActivationKey(event)) {\n event.preventDefault();\n this.prev();\n }\n }\n\n /** @hidden */\n public handleKeydownNext(event: KeyboardEvent): void {\n if (this.platformUtil.isActivationKey(event)) {\n event.preventDefault();\n this.next();\n }\n }\n\n /** @hidden */\n public handleKeyUp(event: KeyboardEvent): void {\n if (event.key === this.platformUtil.KEYMAP.TAB) {\n this._hasKeyboardFocusOnIndicators = true;\n }\n }\n\n /** @hidden */\n public handleFocusOut(event: FocusEvent): void {\n const target = event.relatedTarget as HTMLElement;\n\n if (!target || !target.classList.contains('igx-carousel-indicators__indicator')) {\n this._hasKeyboardFocusOnIndicators = false;\n }\n }\n\n /** @hidden */\n public handleClick(): void {\n this._hasKeyboardFocusOnIndicators = false;\n }\n\n /** @hidden */\n public handleKeydown(event: KeyboardEvent): void {\n const { key } = event;\n const slides = this.slides.toArray();\n const isRTL = !isLeftToRight(this.nativeElement);\n\n switch (key) {\n case this.platformUtil.KEYMAP.ARROW_LEFT:\n isRTL ? this.next() : this.prev();\n break;\n case this.platformUtil.KEYMAP.ARROW_RIGHT:\n isRTL ? this.prev() : this.next();\n break;\n case this.platformUtil.KEYMAP.HOME:\n event.preventDefault();\n this.select(isRTL ? last(slides) : first(slides));\n break;\n case this.platformUtil.KEYMAP.END:\n event.preventDefault();\n this.select(isRTL ? first(slides) : last(slides));\n break;\n }\n\n this.indicatorsElements[this.current].nativeElement.focus();\n }\n\n /**\n * Returns the slide corresponding to the provided `index` or null.\n * ```typescript\n * let slide1 = this.carousel.get(1);\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public get(index: number): IgxSlideComponent {\n return this.slides.find((slide) => slide.index === index);\n }\n\n /**\n * Adds a new slide to the carousel.\n * ```typescript\n * this.carousel.add(newSlide);\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public add(slide: IgxSlideComponent) {\n const newSlides = this.slides.toArray();\n newSlides.push(slide);\n this.slides.reset(newSlides);\n this.slides.notifyOnChanges();\n }\n\n /**\n * Removes a slide from the carousel.\n * ```typescript\n * this.carousel.remove(slide);\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public remove(slide: IgxSlideComponent) {\n if (slide && slide === this.get(slide.index)) { // check if the requested slide for delete is present in the carousel\n const newSlides = this.slides.toArray();\n newSlides.splice(slide.index, 1);\n this.slides.reset(newSlides);\n this.slides.notifyOnChanges();\n }\n }\n\n /**\n * Switches to the passed-in slide with a given `direction`.\n * ```typescript\n * const slide = this.carousel.get(2);\n * this.carousel.select(slide, CarouselAnimationDirection.NEXT);\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public select(slide: IgxSlideComponent, direction?: CarouselAnimationDirection): void;\n /**\n * Switches to slide by index with a given `direction`.\n * ```typescript\n * this.carousel.select(2, CarouselAnimationDirection.NEXT);\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public select(index: number, direction?: CarouselAnimationDirection): void;\n public select(slideOrIndex: IgxSlideComponent | number, direction: CarouselAnimationDirection = CarouselAnimationDirection.NONE): void {\n const slide = typeof slideOrIndex === 'number'\n ? this.get(slideOrIndex)\n : slideOrIndex;\n\n if (slide && slide !== this.currentItem) {\n slide.direction = direction;\n slide.active = true;\n }\n }\n\n /**\n * Transitions to the next slide in the carousel.\n * ```typescript\n * this.carousel.next();\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public next() {\n const index = this.getNextIndex();\n\n if (index === 0 && !this.loop) {\n this.stop();\n return;\n }\n return this.select(this.get(index), CarouselAnimationDirection.NEXT);\n }\n\n /**\n * Transitions to the previous slide in the carousel.\n * ```typescript\n * this.carousel.prev();\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public prev() {\n const index = this.getPrevIndex();\n\n if (!this.loop && index === this.total - 1) {\n this.stop();\n return;\n }\n return this.select(this.get(index), CarouselAnimationDirection.PREV);\n }\n\n /**\n * Resumes playing of the carousel if in paused state.\n * No operation otherwise.\n * ```typescript\n * this.carousel.play();\n * }\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public play() {\n if (!this.playing) {\n this.playing = true;\n this.carouselPlaying.emit(this);\n this.restartInterval();\n this.stoppedByInteraction = false;\n }\n }\n\n /**\n * Stops slide transitions if the `pause` option is set to `true`.\n * No operation otherwise.\n * ```typescript\n * this.carousel.stop();\n * }\n * ```\n *\n * @memberOf IgxCarouselComponent\n */\n public stop() {\n if (this.pause) {\n this.playing = false;\n this.carouselPaused.emit(this);\n this.resetInterval();\n }\n }\n\n protected getPreviousElement(): HTMLElement {\n return this.previousItem.nativeElement;\n }\n\n protected getCurrentElement(): HTMLElement {\n return this.currentItem.nativeElement;\n }\n\n private resetInterval() {\n if (this.lastInterval) {\n clearInterval(this.lastInterval);\n this.lastInterval = null;\n }\n }\n\n private restartInterval() {\n this.resetInterval();\n\n if (!isNaN(this.interval) && this.interval > 0 && this.platformUtil.isBrowser) {\n this.lastInterval = setInterval(() => {\n const tick = +this.interval;\n if (this.playing && this.total && !isNaN(tick) && tick > 0) {\n this.next();\n } else {\n this.stop();\n }\n }, this.interval);\n }\n }\n\n /** @hidden */\n public get nextButtonDisabled() {\n return !this.loop && this.current === (this.total - 1);\n }\n\n /** @hidden */\n public get prevButtonDisabled() {\n return !this.loop && this.current === 0;\n }\n\n private get indicatorsElements() {\n return this._indicators.toArray();\n }\n\n private getIndicatorsClass(): string {\n switch (this.indicatorsOrientation) {\n case CarouselIndicatorsOrientation.top:\n return CarouselIndicatorsOrientation.start;\n case CarouselIndicatorsOrientation.bottom:\n return CarouselIndicatorsOrientation.end;\n default:\n return this.indicatorsOrientation;\n }\n }\n\n private getNextIndex(): number {\n return (this.current + 1) % this.total;\n }\n\n private getPrevIndex(): number {\n return this.current - 1 < 0 ? this.total - 1 : this.current - 1;\n }\n\n private resetSlideStyles(slide: IgxSlideComponent) {\n slide.nativeElement.style.transform = '';\n slide.nativeElement.style.opacity = '';\n }\n\n private pan(event) {\n const slideSize = this.vertical\n ? this.currentItem.nativeElement.offsetHeight\n : this.currentItem.nativeElement.offsetWidth;\n const panOffset = (slideSize / 1000);\n const delta = this.vertical ? event.deltaY : event.deltaX;\n const index = delta < 0 ? this.getNextIndex() : this.getPrevIndex();\n const offset = delta < 0 ? slideSize + delta : -slideSize + delta;\n\n if (!this.gesturesSupport || event.isFinal || Math.abs(delta) + panOffset >= slideSize) {\n return;\n }\n\n if (!this.loop && ((this.current === 0 && delta > 0) || (this.current === this.total - 1 && delta < 0))) {\n this.incomingSlide = null;\n return;\n }\n\n event.preventDefault();\n if (this.isPlaying) {\n this.stoppedByInteraction = true;\n this.stop();\n }\n\n if (this.previousItem && this.previousItem.previous) {\n this.previousItem.previous = false;\n }\n this.finishAnimations();\n\n if (this.incomingSlide) {\n if (index !== this.incomingSlide.index) {\n this.resetSlideStyles(this.incomingSlide);\n this.incomingSlide.previous = false;\n this.incomingSlide = this.get(index);\n }\n } else {\n this.incomingSlide = this.get(index);\n }\n this.incomingSlide.previous = true;\n\n if (this.animationType === CarouselAnimationType.fade) {\n this.currentItem.nativeElement.style.opacity = `${Math.abs(offset) / slideSize}`;\n } else {\n this.currentItem.nativeElement.style.transform = this.vertical\n ? `translateY(${delta}px)`\n : `translateX(${delta}px)`;\n this.incomingSlide.nativeElement.style.transform = this.vertical\n ? `translateY(${offset}px)`\n : `translateX(${offset}px)`;\n }\n }\n\n private unsubscriber(slide: IgxSlideComponent) {\n return merge(this.destroy$, slide.isDestroyed);\n }\n\n private onSlideActivated(slide: IgxSlideComponent) {\n if (slide.active && slide !== this.currentItem) {\n if (slide.direction === CarouselAnimationDirection.NONE) {\n const newIndex = slide.index;\n slide.direction = newIndex > this.current ? CarouselAnimationDirection.NEXT : CarouselAnimationDirection.PREV;\n }\n\n if (this.currentItem) {\n if (this.previousItem && this.previousItem.previous) {\n this.previousItem.previous = false;\n }\n this.currentItem.direction = slide.direction;\n this.currentItem.active = false;\n\n this.previousItem = this.currentItem;\n this.currentItem = slide;\n this.triggerAnimations();\n } else {\n this.currentItem = slide;\n }\n this.slideChanged.emit({ carousel: this, slide });\n this.restartInterval();\n this.cdr.markForCheck();\n }\n }\n\n\n private finishAnimations() {\n if (this.animationStarted(this.leaveAnimationPlayer)) {\n this.leaveAnimationPlayer.finish();\n }\n\n if (this.animationStarted(this.enterAnimationPlayer)) {\n this.enterAnimationPlayer.finish();\n }\n }\n\n private initSlides(change: QueryList<IgxSlideComponent>) {\n const diff = this.differ.diff(change.toArray());\n if (diff) {\n this.slides.reduce((any, c, ind) => c.index = ind, 0); // reset slides indexes\n diff.forEachAddedItem((record: IterableChangeRecord<IgxSlideComponent>) => {\n const slide = record.item;\n slide.total = this.total;\n this.slideAdded.emit({ carousel: this, slide });\n if (slide.active) {\n this.currentItem = slide;\n }\n slide.activeChange.pipe(takeUntil(this.unsubscriber(slide))).subscribe(() => this.onSlideActivated(slide));\n });\n\n diff.forEachRemovedItem((record: IterableChangeRecord<IgxSlideComponent>) => {\n const slide = record.item;\n this.slideRemoved.emit({ carousel: this, slide });\n if (slide.active) {\n slide.active = false;\n this.currentItem = this.get(slide.index < this.total ? slide.index : this.total - 1);\n }\n });\n\n this.updateSlidesSelection();\n }\n }\n\n private updateSlidesSelection() {\n if (this.platformUtil.isBrowser) {\n requestAnimationFrame(() => {\n if (this.currentItem) {\n this.currentItem.active = true;\n const activeSlides = this.slides.filter(slide => slide.active && slide.index !== this.currentItem.index);\n activeSlides.forEach(slide => slide.active = false);\n } else if (this.total) {\n this.slides.first.active = true;\n }\n this.play();\n });\n }\n }\n}\n\nexport interface ISlideEventArgs extends IBaseEventArgs {\n carousel: IgxCarouselComponent;\n slide: IgxSlideComponent;\n}\n","<ng-template #defaultIndicator let-slide>\n <div class=\"igx-nav-dot\"\n [class.igx-nav-dot--active]=\"slide.active\">\n </div>\n</ng-template>\n\n<ng-template #defaultNextButton>\n <igx-icon aria-hidden=\"true\" family=\"default\" name=\"carousel_next\"\n class=\"igx-nav-arrow\">\n </igx-icon>\n</ng-template>\n\n<ng-template #defaultPrevButton>\n <igx-icon aria-hidden=\"true\" family=\"default\" name=\"carousel_prev\"\n class=\"igx-nav-arrow\">\n </igx-icon>\n</ng-template>\n\n@if (navigation && slides.length) {\n <button\n igxButton\n class=\"igx-carousel__arrow--prev\"\n [attr.aria-label]=\"resourceStrings.igx_carousel_previous_slide\"\n [disabled]=\"prevButtonDisabled\"\n (click)=\"prev()\"\n (keydown)=\"handleKeydownPrev($event)\">\n <ng-container *ngTemplateOutlet=\"getPrevButtonTemplate; context: {$implicit: prevButtonDisabled};\"></ng-container>\n </button>\n}\n\n@if (navigation && slides.length) {\n <button\n igxButton\n class=\"igx-carousel__arrow--next\"\n [attr.aria-label]=\"resourceStrings.igx_carousel_next_slide\"\n [disabled]=\"nextButtonDisabled\"\n (click)=\"next()\"\n (keydown)=\"handleKeydownNext($event)\">\n <ng-container *ngTemplateOutlet=\"getNextButtonTemplate; context: {$implicit: nextButtonDisabled};\"></ng-container>\n </button>\n}\n\n@if (showIndicators) {\n <div [ngClass]=\"indicatorsClass\" [attr.role]=\"'tablist'\" (keyup)=\"handleKeyUp($event)\" (focusout)=\"handleFocusOut($event)\" (click)=\"handleClick()\" (keydown)=\"handleKeydown($event)\">\n @for (slide of slides; track slide) {\n <div #indicators\n class=\"igx-carousel-indicators__indicator\"\n (click)=\"select(slide)\"\n [id]=\"'tab-'+ slide.index + '-' + total\"\n [attr.role]=\"'tab'\"\n [attr.tabindex]=\"slide.active ? 0 : -1\"\n [attr.aria-label]=\"resourceStrings.igx_carousel_slide + ' ' + (slide.index + 1) + ' ' + resourceStrings.igx_carousel_of + ' ' + this.total\"\n [attr.aria-controls]=\"'panel-' + slide.index\"\n [attr.aria-selected]=\"slide.active\">\n <ng-container *ngTemplateOutlet=\"getIndicatorTemplate; context: {$implicit: slide};\"></ng-container>\n </div>\n }\n </div>\n}\n\n@if (showIndicatorsLabel) {\n <div [ngClass]=\"indicatorsClass\" class=\"igx-carousel-label-indicator\">\n <span [id]=\"labelId\" class=\"igx-carousel__label\">{{getCarouselLabel}}</span>\n </div>\n}\n\n<div class=\"igx-carousel__inner\" [attr.aria-live]=\"!interval || stoppedByInteraction ? 'polite' : 'off'\">\n <ng-content></ng-content>\n</div>\n","import { IgxCarouselComponent } from './carousel.component';\nimport { IgxCarouselIndicatorDirective, IgxCarouselNextButtonDirective, IgxCarouselPrevButtonDirective } from './carousel.directives';\nimport { IgxSlideComponent } from './slide.component';\n\nexport { CarouselAnimationDirection, IgxCarouselComponentBase, IgxSlideComponentBase, CarouselAnimationSettings } from './carousel-base';\nexport * from './carousel.component';\nexport * from './slide.component';\nexport * from './carousel.directives';\nexport { CarouselAnimationType, CarouselIndicatorsOrientation } from './enums';\n\n/* NOTE: Carousel directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_CAROUSEL_DIRECTIVES = [\n IgxCarouselComponent,\n IgxSlideComponent,\n IgxCarouselIndicatorDirective,\n IgxCarouselNextButtonDirective,\n IgxCarouselPrevButtonDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_CAROUSEL_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_CAROUSEL_DIRECTIVES\n ],\n exports: [\n ...IGX_CAROUSEL_DIRECTIVES\n ]\n})\nexport class IgxCarouselModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxCarouselComponent","i2.IgxSlideComponent","i3.IgxCarouselIndicatorDirective","i3.IgxCarouselNextButtonDirective","i3.IgxCarouselPrevButtonDirective"],"mappings":"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"}
|
|
@@ -17,10 +17,10 @@ class IgxChatMarkdownService {
|
|
|
17
17
|
const renderer = await this._getRenderer();
|
|
18
18
|
return await renderer.parse(text);
|
|
19
19
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
21
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxChatMarkdownService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxChatMarkdownService, providedIn: 'root' }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxChatMarkdownService, decorators: [{
|
|
24
24
|
type: Injectable,
|
|
25
25
|
args: [{ providedIn: 'root' }]
|
|
26
26
|
}] });
|
|
@@ -33,10 +33,10 @@ class MarkdownPipe {
|
|
|
33
33
|
async transform(text) {
|
|
34
34
|
return this._sanitizer.bypassSecurityTrustHtml(await this._service.parse(text ?? ''));
|
|
35
35
|
}
|
|
36
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
37
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: MarkdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
37
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: MarkdownPipe, isStandalone: true, name: "fromMarkdown" }); }
|
|
38
38
|
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: MarkdownPipe, decorators: [{
|
|
40
40
|
type: Pipe,
|
|
41
41
|
args: [{ name: 'fromMarkdown' }]
|
|
42
42
|
}] });
|
|
@@ -139,10 +139,10 @@ class IgxChatComponent {
|
|
|
139
139
|
return viewRef.rootNodes;
|
|
140
140
|
};
|
|
141
141
|
}
|
|
142
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
143
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
142
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
143
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: IgxChatComponent, isStandalone: true, selector: "igx-chat", inputs: { messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, draftMessage: { classPropertyName: "draftMessage", publicName: "draftMessage", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, templates: { classPropertyName: "templates", publicName: "templates", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { messageCreated: "messageCreated", messageReact: "messageReact", attachmentClick: "attachmentClick", attachmentDrag: "attachmentDrag", attachmentDrop: "attachmentDrop", typingChange: "typingChange", inputFocus: "inputFocus", inputBlur: "inputBlur", inputChange: "inputChange" }, ngImport: i0, template: "<igc-chat\n [messages]=\"messages()\"\n [draftMessage]=\"draftMessage()\"\n [options]=\"_mergedOptions()\"\n (igcMessageCreated)=\"messageCreated.emit($event.detail)\"\n (igcMessageReact)=\"messageReact.emit($event.detail)\"\n (igcAttachmentClick)=\"attachmentClick.emit($event.detail)\"\n (igcAttachmentDrag)=\"attachmentDrag.emit()\"\n (igcAttachmentDrop)=\"attachmentDrop.emit()\"\n (igcTypingChange)=\"typingChange.emit($event.detail)\"\n (igcInputFocus)=\"inputFocus.emit()\"\n (igcInputBlur)=\"inputBlur.emit()\"\n (igcInputChange)=\"inputChange.emit($event.detail)\"\n>\n <ng-content></ng-content>\n</igc-chat>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
144
144
|
}
|
|
145
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxChatComponent, decorators: [{
|
|
146
146
|
type: Component,
|
|
147
147
|
args: [{ selector: 'igx-chat', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<igc-chat\n [messages]=\"messages()\"\n [draftMessage]=\"draftMessage()\"\n [options]=\"_mergedOptions()\"\n (igcMessageCreated)=\"messageCreated.emit($event.detail)\"\n (igcMessageReact)=\"messageReact.emit($event.detail)\"\n (igcAttachmentClick)=\"attachmentClick.emit($event.detail)\"\n (igcAttachmentDrag)=\"attachmentDrag.emit()\"\n (igcAttachmentDrop)=\"attachmentDrop.emit()\"\n (igcTypingChange)=\"typingChange.emit($event.detail)\"\n (igcInputFocus)=\"inputFocus.emit()\"\n (igcInputBlur)=\"inputBlur.emit()\"\n (igcInputChange)=\"inputChange.emit($event.detail)\"\n>\n <ng-content></ng-content>\n</igc-chat>\n" }]
|
|
148
148
|
}], ctorParameters: () => [], propDecorators: { messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], draftMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "draftMessage", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], templates: [{ type: i0.Input, args: [{ isSignal: true, alias: "templates", required: false }] }], messageCreated: [{ type: i0.Output, args: ["messageCreated"] }], messageReact: [{ type: i0.Output, args: ["messageReact"] }], attachmentClick: [{ type: i0.Output, args: ["attachmentClick"] }], attachmentDrag: [{ type: i0.Output, args: ["attachmentDrag"] }], attachmentDrop: [{ type: i0.Output, args: ["attachmentDrop"] }], typingChange: [{ type: i0.Output, args: ["typingChange"] }], inputFocus: [{ type: i0.Output, args: ["inputFocus"] }], inputBlur: [{ type: i0.Output, args: ["inputBlur"] }], inputChange: [{ type: i0.Output, args: ["inputChange"] }] } });
|
|
@@ -161,10 +161,10 @@ class IgxChatMessageContextDirective {
|
|
|
161
161
|
static ngTemplateContextGuard(_, ctx) {
|
|
162
162
|
return true;
|
|
163
163
|
}
|
|
164
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
165
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
164
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxChatMessageContextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
165
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: IgxChatMessageContextDirective, isStandalone: true, selector: "[igxChatMessageContext]", ngImport: i0 }); }
|
|
166
166
|
}
|
|
167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxChatMessageContextDirective, decorators: [{
|
|
168
168
|
type: Directive,
|
|
169
169
|
args: [{ selector: '[igxChatMessageContext]', standalone: true }]
|
|
170
170
|
}] });
|
|
@@ -183,10 +183,10 @@ class IgxChatAttachmentContextDirective {
|
|
|
183
183
|
static ngTemplateContextGuard(_, ctx) {
|
|
184
184
|
return true;
|
|
185
185
|
}
|
|
186
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
187
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
186
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxChatAttachmentContextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
187
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: IgxChatAttachmentContextDirective, isStandalone: true, selector: "[igxChatAttachmentContext]", ngImport: i0 }); }
|
|
188
188
|
}
|
|
189
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
189
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxChatAttachmentContextDirective, decorators: [{
|
|
190
190
|
type: Directive,
|
|
191
191
|
args: [{ selector: '[igxChatAttachmentContext]', standalone: true }]
|
|
192
192
|
}] });
|
|
@@ -205,10 +205,10 @@ class IgxChatInputContextDirective {
|
|
|
205
205
|
static ngTemplateContextGuard(_, ctx) {
|
|
206
206
|
return true;
|
|
207
207
|
}
|
|
208
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
209
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
208
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxChatInputContextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
209
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: IgxChatInputContextDirective, isStandalone: true, selector: "[igxChatInputContext]", ngImport: i0 }); }
|
|
210
210
|
}
|
|
211
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxChatInputContextDirective, decorators: [{
|
|
212
212
|
type: Directive,
|
|
213
213
|
args: [{ selector: '[igxChatInputContext]', standalone: true }]
|
|
214
214
|
}] });
|
|
@@ -179,8 +179,8 @@ class IgxCheckboxComponent extends CheckboxBaseDirective {
|
|
|
179
179
|
get checked() {
|
|
180
180
|
return super.checked;
|
|
181
181
|
}
|
|
182
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
183
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
182
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
183
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: IgxCheckboxComponent, isStandalone: true, selector: "igx-checkbox", inputs: { indeterminate: ["indeterminate", "indeterminate", booleanAttribute], checked: ["checked", "checked", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], invalid: ["invalid", "invalid", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], disableTransitions: ["disableTransitions", "disableTransitions", booleanAttribute] }, host: { properties: { "class.igx-checkbox": "this.cssClass", "class.igx-checkbox--material": "this.material", "class.igx-checkbox--indigo": "this.indigo", "class.igx-checkbox--bootstrap": "this.bootstrap", "class.igx-checkbox--fluent": "this.fluent", "class.igx-checkbox--focused": "this.focused", "class.igx-checkbox--indeterminate": "this.indeterminate", "class.igx-checkbox--checked": "this.checked", "class.igx-checkbox--disabled": "this.disabled", "class.igx-checkbox--invalid": "this.invalid", "class.igx-checkbox--plain": "this.disableTransitions" } }, providers: [
|
|
184
184
|
{
|
|
185
185
|
provide: EDITOR_PROVIDER,
|
|
186
186
|
useExisting: IgxCheckboxComponent,
|
|
@@ -188,7 +188,7 @@ class IgxCheckboxComponent extends CheckboxBaseDirective {
|
|
|
188
188
|
},
|
|
189
189
|
], usesInheritance: true, ngImport: i0, template: "<input #checkbox class=\"igx-checkbox__input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [name]=\"name\"\n [value]=\"value\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled\"\n [indeterminate]=\"indeterminate\"\n [checked]=\"checked\"\n [required]=\"required\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-labelledby]=\"ariaLabel ? null : ariaLabelledBy\"\n [attr.aria-label]=\"ariaLabel\"\n (change)=\"_onCheckboxChange($event)\"\n (blur)=\"onBlur()\" />\n\n<div\n igxRipple\n igxRippleTarget=\".igx-checkbox__ripple\"\n [igxRippleDisabled]=\"disableRipple\"\n [igxRippleCentered]=\"true\"\n [igxRippleDuration]=\"300\"\n class=\"igx-checkbox__composite-wrapper\"\n>\n <span #label class=\"igx-checkbox__composite\">\n @if (theme === 'indigo') {\n <svg class=\"igx-checkbox__composite-mark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <rect width=\"18\" height=\"4\" x=\"2\" y=\"9\" rx=\"1.85\"/>\n <path d=\"M19.033 5a1.966 1.966 0 0 0-1.418.586l-8.479 8.577-2.753-2.77a1.971 1.971 0 0 0-2.8 0 1.998 1.998 0 0 0 0 2.822l4.155 4.196a1.955 1.955 0 0 0 2.8 0l9.879-9.99a1.998 1.998 0 0 0 0-2.821 1.966 1.966 0 0 0-1.384-.6Z\"/>\n </svg>\n } @else {\n <svg class=\"igx-checkbox__composite-mark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M4.1,12.7 9,17.6 20.3,6.3\"/>\n </svg>\n }\n </span>\n\n <div class=\"igx-checkbox__ripple\"></div>\n</div>\n\n<span #placeholderLabel\n [class]=\"labelClass\"\n [id]=\"labelId\">\n <ng-content></ng-content>\n</span>\n", dependencies: [{ kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }] }); }
|
|
190
190
|
}
|
|
191
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxCheckboxComponent, decorators: [{
|
|
192
192
|
type: Component,
|
|
193
193
|
args: [{ selector: 'igx-checkbox', providers: [
|
|
194
194
|
{
|
|
@@ -255,11 +255,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
|
|
|
255
255
|
* IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
|
|
256
256
|
*/
|
|
257
257
|
class IgxCheckboxModule {
|
|
258
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
259
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
260
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
258
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
259
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: IgxCheckboxModule, imports: [IgxCheckboxComponent], exports: [IgxCheckboxComponent] }); }
|
|
260
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxCheckboxModule }); }
|
|
261
261
|
}
|
|
262
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
262
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IgxCheckboxModule, decorators: [{
|
|
263
263
|
type: NgModule,
|
|
264
264
|
args: [{
|
|
265
265
|
imports: [IgxCheckboxComponent],
|