Index: trip-planner-front/node_modules/.cache/babel-webpack/846a6693933fe03d06f73074879f470f.json
===================================================================
--- trip-planner-front/node_modules/.cache/babel-webpack/846a6693933fe03d06f73074879f470f.json	(revision e29cc2ea91f8c99a4329f6d20188305dfd752279)
+++ trip-planner-front/node_modules/.cache/babel-webpack/846a6693933fe03d06f73074879f470f.json	(revision e29cc2ea91f8c99a4329f6d20188305dfd752279)
@@ -0,0 +1,1 @@
+{"ast":null,"code":"import * as i0 from '@angular/core';\nimport { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ViewChild, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport { Header, Footer, PrimeTemplate, SharedModule } from 'primeng/api';\nimport * as i2 from 'primeng/ripple';\nimport { RippleModule } from 'primeng/ripple';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { UniqueComponentId } from 'primeng/utils';\nconst _c0 = [\"itemsContainer\"];\n\nfunction Carousel_div_1_ng_container_2_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementContainer(0);\n  }\n}\n\nfunction Carousel_div_1_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"div\", 11);\n    i0.ɵɵprojection(1);\n    i0.ɵɵtemplate(2, Carousel_div_1_ng_container_2_Template, 1, 0, \"ng-container\", 12);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const ctx_r0 = i0.ɵɵnextContext();\n    i0.ɵɵadvance(2);\n    i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.headerTemplate);\n  }\n}\n\nconst _c1 = function (a1) {\n  return {\n    \"p-carousel-prev p-link\": true,\n    \"p-disabled\": a1\n  };\n};\n\nconst _c2 = function (a1, a2) {\n  return {\n    \"p-carousel-prev-icon pi\": true,\n    \"pi-chevron-left\": a1,\n    \"pi-chevron-up\": a2\n  };\n};\n\nfunction Carousel_button_4_Template(rf, ctx) {\n  if (rf & 1) {\n    const _r11 = i0.ɵɵgetCurrentView();\n\n    i0.ɵɵelementStart(0, \"button\", 13);\n    i0.ɵɵlistener(\"click\", function Carousel_button_4_Template_button_click_0_listener($event) {\n      i0.ɵɵrestoreView(_r11);\n      const ctx_r10 = i0.ɵɵnextContext();\n      return ctx_r10.navBackward($event);\n    });\n    i0.ɵɵelement(1, \"span\", 2);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const ctx_r1 = i0.ɵɵnextContext();\n    i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(3, _c1, ctx_r1.isBackwardNavDisabled()))(\"disabled\", ctx_r1.isBackwardNavDisabled());\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(5, _c2, !ctx_r1.isVertical(), ctx_r1.isVertical()));\n  }\n}\n\nfunction Carousel_div_8_ng_container_1_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementContainer(0);\n  }\n}\n\nconst _c3 = function (a1, a2, a3) {\n  return {\n    \"p-carousel-item p-carousel-item-cloned\": true,\n    \"p-carousel-item-active\": a1,\n    \"p-carousel-item-start\": a2,\n    \"p-carousel-item-end\": a3\n  };\n};\n\nconst _c4 = function (a0) {\n  return {\n    $implicit: a0\n  };\n};\n\nfunction Carousel_div_8_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"div\", 2);\n    i0.ɵɵtemplate(1, Carousel_div_8_ng_container_1_Template, 1, 0, \"ng-container\", 14);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const item_r12 = ctx.$implicit;\n    const index_r13 = ctx.index;\n    const ctx_r3 = i0.ɵɵnextContext();\n    i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction3(3, _c3, ctx_r3.totalShiftedItems * -1 === ctx_r3.value.length, 0 === index_r13, ctx_r3.clonedItemsForStarting.length - 1 === index_r13));\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.itemTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(7, _c4, item_r12));\n  }\n}\n\nfunction Carousel_div_9_ng_container_1_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementContainer(0);\n  }\n}\n\nconst _c5 = function (a1, a2, a3) {\n  return {\n    \"p-carousel-item\": true,\n    \"p-carousel-item-active\": a1,\n    \"p-carousel-item-start\": a2,\n    \"p-carousel-item-end\": a3\n  };\n};\n\nfunction Carousel_div_9_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"div\", 2);\n    i0.ɵɵtemplate(1, Carousel_div_9_ng_container_1_Template, 1, 0, \"ng-container\", 14);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const item_r15 = ctx.$implicit;\n    const index_r16 = ctx.index;\n    const ctx_r4 = i0.ɵɵnextContext();\n    i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction3(3, _c5, ctx_r4.firstIndex() <= index_r16 && ctx_r4.lastIndex() >= index_r16, ctx_r4.firstIndex() === index_r16, ctx_r4.lastIndex() === index_r16));\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r4.itemTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(7, _c4, item_r15));\n  }\n}\n\nfunction Carousel_div_10_ng_container_1_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementContainer(0);\n  }\n}\n\nfunction Carousel_div_10_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"div\", 2);\n    i0.ɵɵtemplate(1, Carousel_div_10_ng_container_1_Template, 1, 0, \"ng-container\", 14);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const item_r18 = ctx.$implicit;\n    const index_r19 = ctx.index;\n    const ctx_r5 = i0.ɵɵnextContext();\n    i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction3(3, _c3, ctx_r5.totalShiftedItems * -1 === ctx_r5.numVisible, 0 === index_r19, ctx_r5.clonedItemsForFinishing.length - 1 === index_r19));\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r5.itemTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(7, _c4, item_r18));\n  }\n}\n\nconst _c6 = function (a1) {\n  return {\n    \"p-carousel-next p-link\": true,\n    \"p-disabled\": a1\n  };\n};\n\nconst _c7 = function (a1, a2) {\n  return {\n    \"p-carousel-prev-icon pi\": true,\n    \"pi-chevron-right\": a1,\n    \"pi-chevron-down\": a2\n  };\n};\n\nfunction Carousel_button_11_Template(rf, ctx) {\n  if (rf & 1) {\n    const _r22 = i0.ɵɵgetCurrentView();\n\n    i0.ɵɵelementStart(0, \"button\", 13);\n    i0.ɵɵlistener(\"click\", function Carousel_button_11_Template_button_click_0_listener($event) {\n      i0.ɵɵrestoreView(_r22);\n      const ctx_r21 = i0.ɵɵnextContext();\n      return ctx_r21.navForward($event);\n    });\n    i0.ɵɵelement(1, \"span\", 2);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const ctx_r6 = i0.ɵɵnextContext();\n    i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(3, _c6, ctx_r6.isForwardNavDisabled()))(\"disabled\", ctx_r6.isForwardNavDisabled());\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(5, _c7, !ctx_r6.isVertical(), ctx_r6.isVertical()));\n  }\n}\n\nconst _c8 = function (a1) {\n  return {\n    \"p-carousel-indicator\": true,\n    \"p-highlight\": a1\n  };\n};\n\nfunction Carousel_ul_12_li_1_Template(rf, ctx) {\n  if (rf & 1) {\n    const _r27 = i0.ɵɵgetCurrentView();\n\n    i0.ɵɵelementStart(0, \"li\", 2);\n    i0.ɵɵelementStart(1, \"button\", 15);\n    i0.ɵɵlistener(\"click\", function Carousel_ul_12_li_1_Template_button_click_1_listener($event) {\n      const restoredCtx = i0.ɵɵrestoreView(_r27);\n      const i_r25 = restoredCtx.index;\n      const ctx_r26 = i0.ɵɵnextContext(2);\n      return ctx_r26.onDotClick($event, i_r25);\n    });\n    i0.ɵɵelementEnd();\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const i_r25 = ctx.index;\n    const ctx_r23 = i0.ɵɵnextContext(2);\n    i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(5, _c8, ctx_r23._page === i_r25));\n    i0.ɵɵadvance(1);\n    i0.ɵɵclassMap(ctx_r23.indicatorStyleClass);\n    i0.ɵɵproperty(\"ngClass\", \"p-link\")(\"ngStyle\", ctx_r23.indicatorStyle);\n  }\n}\n\nfunction Carousel_ul_12_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"ul\", 0);\n    i0.ɵɵtemplate(1, Carousel_ul_12_li_1_Template, 2, 7, \"li\", 8);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const ctx_r7 = i0.ɵɵnextContext();\n    i0.ɵɵclassMap(ctx_r7.indicatorsContentClass);\n    i0.ɵɵproperty(\"ngClass\", \"p-carousel-indicators p-reset\")(\"ngStyle\", ctx_r7.indicatorsContentStyle);\n    i0.ɵɵadvance(1);\n    i0.ɵɵproperty(\"ngForOf\", ctx_r7.totalDotsArray());\n  }\n}\n\nfunction Carousel_div_13_ng_container_2_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementContainer(0);\n  }\n}\n\nfunction Carousel_div_13_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵelementStart(0, \"div\", 16);\n    i0.ɵɵprojection(1, 1);\n    i0.ɵɵtemplate(2, Carousel_div_13_ng_container_2_Template, 1, 0, \"ng-container\", 12);\n    i0.ɵɵelementEnd();\n  }\n\n  if (rf & 2) {\n    const ctx_r8 = i0.ɵɵnextContext();\n    i0.ɵɵadvance(2);\n    i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r8.footerTemplate);\n  }\n}\n\nconst _c9 = [[[\"p-header\"]], [[\"p-footer\"]]];\n\nconst _c10 = function (a1, a2) {\n  return {\n    \"p-carousel p-component\": true,\n    \"p-carousel-vertical\": a1,\n    \"p-carousel-horizontal\": a2\n  };\n};\n\nconst _c11 = function (a0) {\n  return {\n    \"height\": a0\n  };\n};\n\nconst _c12 = [\"p-header\", \"p-footer\"];\n\nclass Carousel {\n  constructor(el, zone, cd) {\n    this.el = el;\n    this.zone = zone;\n    this.cd = cd;\n    this.orientation = \"horizontal\";\n    this.verticalViewPortHeight = \"300px\";\n    this.contentClass = \"\";\n    this.indicatorsContentClass = \"\";\n    this.indicatorStyleClass = \"\";\n    this.circular = false;\n    this.showIndicators = true;\n    this.showNavigators = true;\n    this.autoplayInterval = 0;\n    this.onPage = new EventEmitter();\n    this._numVisible = 1;\n    this._numScroll = 1;\n    this._oldNumScroll = 0;\n    this.prevState = {\n      numScroll: 0,\n      numVisible: 0,\n      value: []\n    };\n    this.defaultNumScroll = 1;\n    this.defaultNumVisible = 1;\n    this._page = 0;\n    this.isRemainingItemsAdded = false;\n    this.remainingItems = 0;\n    this.swipeThreshold = 20;\n    this.totalShiftedItems = this.page * this.numScroll * -1;\n  }\n\n  get page() {\n    return this._page;\n  }\n\n  set page(val) {\n    if (this.isCreated && val !== this._page) {\n      if (this.autoplayInterval) {\n        this.stopAutoplay();\n        this.allowAutoplay = false;\n      }\n\n      if (val > this._page && val <= this.totalDots() - 1) {\n        this.step(-1, val);\n      } else if (val < this._page) {\n        this.step(1, val);\n      }\n    }\n\n    this._page = val;\n  }\n\n  get numVisible() {\n    return this._numVisible;\n  }\n\n  set numVisible(val) {\n    this._numVisible = val;\n  }\n\n  get numScroll() {\n    return this._numVisible;\n  }\n\n  set numScroll(val) {\n    this._numScroll = val;\n  }\n\n  get value() {\n    return this._value;\n  }\n\n  set value(val) {\n    this._value = val;\n  }\n\n  ngOnChanges(simpleChange) {\n    if (simpleChange.value) {\n      if (this.circular && this._value) {\n        this.setCloneItems();\n      }\n    }\n\n    if (this.isCreated) {\n      if (simpleChange.numVisible) {\n        if (this.responsiveOptions) {\n          this.defaultNumVisible = this.numVisible;\n        }\n\n        if (this.isCircular()) {\n          this.setCloneItems();\n        }\n\n        this.createStyle();\n        this.calculatePosition();\n      }\n\n      if (simpleChange.numScroll) {\n        if (this.responsiveOptions) {\n          this.defaultNumScroll = this.numScroll;\n        }\n      }\n    }\n  }\n\n  ngAfterContentInit() {\n    this.id = UniqueComponentId();\n    this.allowAutoplay = !!this.autoplayInterval;\n\n    if (this.circular) {\n      this.setCloneItems();\n    }\n\n    if (this.responsiveOptions) {\n      this.defaultNumScroll = this._numScroll;\n      this.defaultNumVisible = this._numVisible;\n    }\n\n    this.createStyle();\n    this.calculatePosition();\n\n    if (this.responsiveOptions) {\n      this.bindDocumentListeners();\n    }\n\n    this.templates.forEach(item => {\n      switch (item.getType()) {\n        case 'item':\n          this.itemTemplate = item.template;\n          break;\n\n        case 'header':\n          this.headerTemplate = item.template;\n          break;\n\n        case 'footer':\n          this.footerTemplate = item.template;\n          break;\n\n        default:\n          this.itemTemplate = item.template;\n          break;\n      }\n    });\n  }\n\n  ngAfterContentChecked() {\n    const isCircular = this.isCircular();\n    let totalShiftedItems = this.totalShiftedItems;\n\n    if (this.value && this.itemsContainer && (this.prevState.numScroll !== this._numScroll || this.prevState.numVisible !== this._numVisible || this.prevState.value.length !== this.value.length)) {\n      if (this.autoplayInterval) {\n        this.stopAutoplay();\n      }\n\n      this.remainingItems = (this.value.length - this._numVisible) % this._numScroll;\n      let page = this._page;\n\n      if (this.totalDots() !== 0 && page >= this.totalDots()) {\n        page = this.totalDots() - 1;\n        this._page = page;\n        this.onPage.emit({\n          page: this.page\n        });\n      }\n\n      totalShiftedItems = page * this._numScroll * -1;\n\n      if (isCircular) {\n        totalShiftedItems -= this._numVisible;\n      }\n\n      if (page === this.totalDots() - 1 && this.remainingItems > 0) {\n        totalShiftedItems += -1 * this.remainingItems + this._numScroll;\n        this.isRemainingItemsAdded = true;\n      } else {\n        this.isRemainingItemsAdded = false;\n      }\n\n      if (totalShiftedItems !== this.totalShiftedItems) {\n        this.totalShiftedItems = totalShiftedItems;\n      }\n\n      this._oldNumScroll = this._numScroll;\n      this.prevState.numScroll = this._numScroll;\n      this.prevState.numVisible = this._numVisible;\n      this.prevState.value = [...this._value];\n\n      if (this.totalDots() > 0 && this.itemsContainer.nativeElement) {\n        this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n      }\n\n      this.isCreated = true;\n\n      if (this.autoplayInterval && this.isAutoplay()) {\n        this.startAutoplay();\n      }\n    }\n\n    if (isCircular) {\n      if (this.page === 0) {\n        totalShiftedItems = -1 * this._numVisible;\n      } else if (totalShiftedItems === 0) {\n        totalShiftedItems = -1 * this.value.length;\n\n        if (this.remainingItems > 0) {\n          this.isRemainingItemsAdded = true;\n        }\n      }\n\n      if (totalShiftedItems !== this.totalShiftedItems) {\n        this.totalShiftedItems = totalShiftedItems;\n      }\n    }\n  }\n\n  createStyle() {\n    if (!this.carouselStyle) {\n      this.carouselStyle = document.createElement('style');\n      this.carouselStyle.type = 'text/css';\n      document.body.appendChild(this.carouselStyle);\n    }\n\n    let innerHTML = `\n            #${this.id} .p-carousel-item {\n\t\t\t\tflex: 1 0 ${100 / this.numVisible}%\n\t\t\t}\n        `;\n\n    if (this.responsiveOptions) {\n      this.responsiveOptions.sort((data1, data2) => {\n        const value1 = data1.breakpoint;\n        const value2 = data2.breakpoint;\n        let result = null;\n        if (value1 == null && value2 != null) result = -1;else if (value1 != null && value2 == null) result = 1;else if (value1 == null && value2 == null) result = 0;else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, {\n          numeric: true\n        });else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n        return -1 * result;\n      });\n\n      for (let i = 0; i < this.responsiveOptions.length; i++) {\n        let res = this.responsiveOptions[i];\n        innerHTML += `\n                    @media screen and (max-width: ${res.breakpoint}) {\n                        #${this.id} .p-carousel-item {\n                            flex: 1 0 ${100 / res.numVisible}%\n                        }\n                    }\n                `;\n      }\n    }\n\n    this.carouselStyle.innerHTML = innerHTML;\n  }\n\n  calculatePosition() {\n    if (this.responsiveOptions) {\n      let windowWidth = window.innerWidth;\n      let matchedResponsiveData = {\n        numVisible: this.defaultNumVisible,\n        numScroll: this.defaultNumScroll\n      };\n\n      for (let i = 0; i < this.responsiveOptions.length; i++) {\n        let res = this.responsiveOptions[i];\n\n        if (parseInt(res.breakpoint, 10) >= windowWidth) {\n          matchedResponsiveData = res;\n        }\n      }\n\n      if (this._numScroll !== matchedResponsiveData.numScroll) {\n        let page = this._page;\n        page = Math.floor(page * this._numScroll / matchedResponsiveData.numScroll);\n        let totalShiftedItems = matchedResponsiveData.numScroll * this.page * -1;\n\n        if (this.isCircular()) {\n          totalShiftedItems -= matchedResponsiveData.numVisible;\n        }\n\n        this.totalShiftedItems = totalShiftedItems;\n        this._numScroll = matchedResponsiveData.numScroll;\n        this._page = page;\n        this.onPage.emit({\n          page: this.page\n        });\n      }\n\n      if (this._numVisible !== matchedResponsiveData.numVisible) {\n        this._numVisible = matchedResponsiveData.numVisible;\n        this.setCloneItems();\n      }\n\n      this.cd.markForCheck();\n    }\n  }\n\n  setCloneItems() {\n    this.clonedItemsForStarting = [];\n    this.clonedItemsForFinishing = [];\n\n    if (this.isCircular()) {\n      this.clonedItemsForStarting.push(...this.value.slice(-1 * this._numVisible));\n      this.clonedItemsForFinishing.push(...this.value.slice(0, this._numVisible));\n    }\n  }\n\n  firstIndex() {\n    return this.isCircular() ? -1 * (this.totalShiftedItems + this.numVisible) : this.totalShiftedItems * -1;\n  }\n\n  lastIndex() {\n    return this.firstIndex() + this.numVisible - 1;\n  }\n\n  totalDots() {\n    return this.value ? Math.ceil((this.value.length - this._numVisible) / this._numScroll) + 1 : 0;\n  }\n\n  totalDotsArray() {\n    const totalDots = this.totalDots();\n    return totalDots <= 0 ? [] : Array(totalDots).fill(0);\n  }\n\n  isVertical() {\n    return this.orientation === 'vertical';\n  }\n\n  isCircular() {\n    return this.circular && this.value && this.value.length >= this.numVisible;\n  }\n\n  isAutoplay() {\n    return this.autoplayInterval && this.allowAutoplay;\n  }\n\n  isForwardNavDisabled() {\n    return this.isEmpty() || this._page >= this.totalDots() - 1 && !this.isCircular();\n  }\n\n  isBackwardNavDisabled() {\n    return this.isEmpty() || this._page <= 0 && !this.isCircular();\n  }\n\n  isEmpty() {\n    return !this.value || this.value.length === 0;\n  }\n\n  navForward(e, index) {\n    if (this.isCircular() || this._page < this.totalDots() - 1) {\n      this.step(-1, index);\n    }\n\n    if (this.autoplayInterval) {\n      this.stopAutoplay();\n      this.allowAutoplay = false;\n    }\n\n    if (e && e.cancelable) {\n      e.preventDefault();\n    }\n  }\n\n  navBackward(e, index) {\n    if (this.isCircular() || this._page !== 0) {\n      this.step(1, index);\n    }\n\n    if (this.autoplayInterval) {\n      this.stopAutoplay();\n      this.allowAutoplay = false;\n    }\n\n    if (e && e.cancelable) {\n      e.preventDefault();\n    }\n  }\n\n  onDotClick(e, index) {\n    let page = this._page;\n\n    if (this.autoplayInterval) {\n      this.stopAutoplay();\n      this.allowAutoplay = false;\n    }\n\n    if (index > page) {\n      this.navForward(e, index);\n    } else if (index < page) {\n      this.navBackward(e, index);\n    }\n  }\n\n  step(dir, page) {\n    let totalShiftedItems = this.totalShiftedItems;\n    const isCircular = this.isCircular();\n\n    if (page != null) {\n      totalShiftedItems = this._numScroll * page * -1;\n\n      if (isCircular) {\n        totalShiftedItems -= this._numVisible;\n      }\n\n      this.isRemainingItemsAdded = false;\n    } else {\n      totalShiftedItems += this._numScroll * dir;\n\n      if (this.isRemainingItemsAdded) {\n        totalShiftedItems += this.remainingItems - this._numScroll * dir;\n        this.isRemainingItemsAdded = false;\n      }\n\n      let originalShiftedItems = isCircular ? totalShiftedItems + this._numVisible : totalShiftedItems;\n      page = Math.abs(Math.floor(originalShiftedItems / this._numScroll));\n    }\n\n    if (isCircular && this.page === this.totalDots() - 1 && dir === -1) {\n      totalShiftedItems = -1 * (this.value.length + this._numVisible);\n      page = 0;\n    } else if (isCircular && this.page === 0 && dir === 1) {\n      totalShiftedItems = 0;\n      page = this.totalDots() - 1;\n    } else if (page === this.totalDots() - 1 && this.remainingItems > 0) {\n      totalShiftedItems += this.remainingItems * -1 - this._numScroll * dir;\n      this.isRemainingItemsAdded = true;\n    }\n\n    if (this.itemsContainer) {\n      this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n      this.itemsContainer.nativeElement.style.transition = 'transform 500ms ease 0s';\n    }\n\n    this.totalShiftedItems = totalShiftedItems;\n    this._page = page;\n    this.onPage.emit({\n      page: this.page\n    });\n  }\n\n  startAutoplay() {\n    this.interval = setInterval(() => {\n      if (this.totalDots() > 0) {\n        if (this.page === this.totalDots() - 1) {\n          this.step(-1, 0);\n        } else {\n          this.step(-1, this.page + 1);\n        }\n      }\n    }, this.autoplayInterval);\n  }\n\n  stopAutoplay() {\n    if (this.interval) {\n      clearInterval(this.interval);\n    }\n  }\n\n  onTransitionEnd() {\n    if (this.itemsContainer) {\n      this.itemsContainer.nativeElement.style.transition = '';\n\n      if ((this.page === 0 || this.page === this.totalDots() - 1) && this.isCircular()) {\n        this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${this.totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${this.totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n      }\n    }\n  }\n\n  onTouchStart(e) {\n    let touchobj = e.changedTouches[0];\n    this.startPos = {\n      x: touchobj.pageX,\n      y: touchobj.pageY\n    };\n  }\n\n  onTouchMove(e) {\n    if (e.cancelable) {\n      e.preventDefault();\n    }\n  }\n\n  onTouchEnd(e) {\n    let touchobj = e.changedTouches[0];\n\n    if (this.isVertical()) {\n      this.changePageOnTouch(e, touchobj.pageY - this.startPos.y);\n    } else {\n      this.changePageOnTouch(e, touchobj.pageX - this.startPos.x);\n    }\n  }\n\n  changePageOnTouch(e, diff) {\n    if (Math.abs(diff) > this.swipeThreshold) {\n      if (diff < 0) {\n        this.navForward(e);\n      } else {\n        this.navBackward(e);\n      }\n    }\n  }\n\n  bindDocumentListeners() {\n    if (!this.documentResizeListener) {\n      this.documentResizeListener = e => {\n        this.calculatePosition();\n      };\n\n      window.addEventListener('resize', this.documentResizeListener);\n    }\n  }\n\n  unbindDocumentListeners() {\n    if (this.documentResizeListener) {\n      window.removeEventListener('resize', this.documentResizeListener);\n      this.documentResizeListener = null;\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.responsiveOptions) {\n      this.unbindDocumentListeners();\n    }\n\n    if (this.autoplayInterval) {\n      this.stopAutoplay();\n    }\n  }\n\n}\n\nCarousel.ɵfac = function Carousel_Factory(t) {\n  return new (t || Carousel)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n};\n\nCarousel.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n  type: Carousel,\n  selectors: [[\"p-carousel\"]],\n  contentQueries: function Carousel_ContentQueries(rf, ctx, dirIndex) {\n    if (rf & 1) {\n      i0.ɵɵcontentQuery(dirIndex, Header, 5);\n      i0.ɵɵcontentQuery(dirIndex, Footer, 5);\n      i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n    }\n\n    if (rf & 2) {\n      let _t;\n\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerFacet = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerFacet = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n    }\n  },\n  viewQuery: function Carousel_Query(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵviewQuery(_c0, 5);\n    }\n\n    if (rf & 2) {\n      let _t;\n\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsContainer = _t.first);\n    }\n  },\n  hostAttrs: [1, \"p-element\"],\n  inputs: {\n    page: \"page\",\n    numVisible: \"numVisible\",\n    numScroll: \"numScroll\",\n    responsiveOptions: \"responsiveOptions\",\n    orientation: \"orientation\",\n    verticalViewPortHeight: \"verticalViewPortHeight\",\n    contentClass: \"contentClass\",\n    indicatorsContentClass: \"indicatorsContentClass\",\n    indicatorsContentStyle: \"indicatorsContentStyle\",\n    indicatorStyleClass: \"indicatorStyleClass\",\n    indicatorStyle: \"indicatorStyle\",\n    value: \"value\",\n    circular: \"circular\",\n    showIndicators: \"showIndicators\",\n    showNavigators: \"showNavigators\",\n    autoplayInterval: \"autoplayInterval\",\n    style: \"style\",\n    styleClass: \"styleClass\"\n  },\n  outputs: {\n    onPage: \"onPage\"\n  },\n  features: [i0.ɵɵNgOnChangesFeature],\n  ngContentSelectors: _c12,\n  decls: 14,\n  vars: 22,\n  consts: [[3, \"ngClass\", \"ngStyle\"], [\"class\", \"p-carousel-header\", 4, \"ngIf\"], [3, \"ngClass\"], [1, \"p-carousel-container\"], [\"type\", \"button\", \"pRipple\", \"\", 3, \"ngClass\", \"disabled\", \"click\", 4, \"ngIf\"], [1, \"p-carousel-items-content\", 3, \"ngStyle\"], [1, \"p-carousel-items-container\", 3, \"transitionend\", \"touchend\", \"touchstart\", \"touchmove\"], [\"itemsContainer\", \"\"], [3, \"ngClass\", 4, \"ngFor\", \"ngForOf\"], [3, \"ngClass\", \"class\", \"ngStyle\", 4, \"ngIf\"], [\"class\", \"p-carousel-footer\", 4, \"ngIf\"], [1, \"p-carousel-header\"], [4, \"ngTemplateOutlet\"], [\"type\", \"button\", \"pRipple\", \"\", 3, \"ngClass\", \"disabled\", \"click\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"type\", \"button\", 3, \"ngClass\", \"ngStyle\", \"click\"], [1, \"p-carousel-footer\"]],\n  template: function Carousel_Template(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵprojectionDef(_c9);\n      i0.ɵɵelementStart(0, \"div\", 0);\n      i0.ɵɵtemplate(1, Carousel_div_1_Template, 3, 1, \"div\", 1);\n      i0.ɵɵelementStart(2, \"div\", 2);\n      i0.ɵɵelementStart(3, \"div\", 3);\n      i0.ɵɵtemplate(4, Carousel_button_4_Template, 2, 8, \"button\", 4);\n      i0.ɵɵelementStart(5, \"div\", 5);\n      i0.ɵɵelementStart(6, \"div\", 6, 7);\n      i0.ɵɵlistener(\"transitionend\", function Carousel_Template_div_transitionend_6_listener() {\n        return ctx.onTransitionEnd();\n      })(\"touchend\", function Carousel_Template_div_touchend_6_listener($event) {\n        return ctx.onTouchEnd($event);\n      })(\"touchstart\", function Carousel_Template_div_touchstart_6_listener($event) {\n        return ctx.onTouchStart($event);\n      })(\"touchmove\", function Carousel_Template_div_touchmove_6_listener($event) {\n        return ctx.onTouchMove($event);\n      });\n      i0.ɵɵtemplate(8, Carousel_div_8_Template, 2, 9, \"div\", 8);\n      i0.ɵɵtemplate(9, Carousel_div_9_Template, 2, 9, \"div\", 8);\n      i0.ɵɵtemplate(10, Carousel_div_10_Template, 2, 9, \"div\", 8);\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementEnd();\n      i0.ɵɵtemplate(11, Carousel_button_11_Template, 2, 8, \"button\", 4);\n      i0.ɵɵelementEnd();\n      i0.ɵɵtemplate(12, Carousel_ul_12_Template, 2, 5, \"ul\", 9);\n      i0.ɵɵelementEnd();\n      i0.ɵɵtemplate(13, Carousel_div_13_Template, 3, 1, \"div\", 10);\n      i0.ɵɵelementEnd();\n    }\n\n    if (rf & 2) {\n      i0.ɵɵclassMap(ctx.styleClass);\n      i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(17, _c10, ctx.isVertical(), !ctx.isVertical()))(\"ngStyle\", ctx.style);\n      i0.ɵɵattribute(\"id\", ctx.id);\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"ngIf\", ctx.headerFacet || ctx.headerTemplate);\n      i0.ɵɵadvance(1);\n      i0.ɵɵclassMap(ctx.contentClass);\n      i0.ɵɵproperty(\"ngClass\", \"p-carousel-content\");\n      i0.ɵɵadvance(2);\n      i0.ɵɵproperty(\"ngIf\", ctx.showNavigators);\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"ngStyle\", i0.ɵɵpureFunction1(20, _c11, ctx.isVertical() ? ctx.verticalViewPortHeight : \"auto\"));\n      i0.ɵɵadvance(3);\n      i0.ɵɵproperty(\"ngForOf\", ctx.clonedItemsForStarting);\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"ngForOf\", ctx.value);\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"ngForOf\", ctx.clonedItemsForFinishing);\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"ngIf\", ctx.showNavigators);\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"ngIf\", ctx.showIndicators);\n      i0.ɵɵadvance(1);\n      i0.ɵɵproperty(\"ngIf\", ctx.footerFacet || ctx.footerTemplate);\n    }\n  },\n  directives: [i1.NgClass, i1.NgStyle, i1.NgIf, i1.NgForOf, i1.NgTemplateOutlet, i2.Ripple],\n  styles: [\".p-carousel{display:flex;flex-direction:column}.p-carousel-content{display:flex;flex-direction:column;overflow:auto}.p-carousel-prev,.p-carousel-next{align-self:center;flex-grow:0;flex-shrink:0;display:flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-carousel-container{display:flex;flex-direction:row}.p-carousel-items-content{overflow:hidden;width:100%}.p-carousel-items-container{display:flex;flex-direction:row}.p-carousel-indicators{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap}.p-carousel-indicator>button{display:flex;align-items:center;justify-content:center}.p-carousel-vertical .p-carousel-container{flex-direction:column}.p-carousel-vertical .p-carousel-items-container{flex-direction:column;height:100%}.p-items-hidden .p-carousel-item{visibility:hidden}.p-items-hidden .p-carousel-item.p-carousel-item-active{visibility:visible}\\n\"],\n  encapsulation: 2,\n  changeDetection: 0\n});\n\n(function () {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Carousel, [{\n    type: Component,\n    args: [{\n      selector: 'p-carousel',\n      template: `\n\t\t<div [attr.id]=\"id\" [ngClass]=\"{'p-carousel p-component':true, 'p-carousel-vertical': isVertical(), 'p-carousel-horizontal': !isVertical()}\" [ngStyle]=\"style\" [class]=\"styleClass\">\n\t\t\t<div class=\"p-carousel-header\" *ngIf=\"headerFacet || headerTemplate\">\n                <ng-content select=\"p-header\"></ng-content>\n                <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n\t\t\t</div>\n\t\t\t<div [class]=\"contentClass\" [ngClass]=\"'p-carousel-content'\">\n\t\t\t\t<div class=\"p-carousel-container\">\n\t\t\t\t\t<button type=\"button\" *ngIf=\"showNavigators\" [ngClass]=\"{'p-carousel-prev p-link':true, 'p-disabled': isBackwardNavDisabled()}\" [disabled]=\"isBackwardNavDisabled()\" (click)=\"navBackward($event)\" pRipple>\n\t\t\t\t\t\t<span [ngClass]=\"{'p-carousel-prev-icon pi': true, 'pi-chevron-left': !isVertical(), 'pi-chevron-up': isVertical()}\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<div class=\"p-carousel-items-content\" [ngStyle]=\"{'height': isVertical() ? verticalViewPortHeight : 'auto'}\">\n\t\t\t\t\t\t<div #itemsContainer class=\"p-carousel-items-container\" (transitionend)=\"onTransitionEnd()\" (touchend)=\"onTouchEnd($event)\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\">\n                            <div *ngFor=\"let item of clonedItemsForStarting; let index = index\" [ngClass]= \"{'p-carousel-item p-carousel-item-cloned': true,\n                                'p-carousel-item-active': (totalShiftedItems * -1) === (value.length),\n\t\t\t\t\t\t\t    'p-carousel-item-start': 0 === index,\n\t\t\t\t\t\t\t    'p-carousel-item-end': (clonedItemsForStarting.length - 1) === index}\">\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n\t\t\t\t\t\t\t</div>\n                            <div *ngFor=\"let item of value; let index = index\" [ngClass]= \"{'p-carousel-item': true,\n                                'p-carousel-item-active': (firstIndex() <= index && lastIndex() >= index),\n\t\t\t\t\t\t\t    'p-carousel-item-start': firstIndex() === index,\n\t\t\t\t\t\t\t    'p-carousel-item-end': lastIndex() === index}\">\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n\t\t\t\t\t\t\t</div>\n                            <div *ngFor=\"let item of clonedItemsForFinishing; let index = index\" [ngClass]= \"{'p-carousel-item p-carousel-item-cloned': true,\n                                'p-carousel-item-active': ((totalShiftedItems *-1) === numVisible),\n\t\t\t\t\t\t\t    'p-carousel-item-start': 0 === index,\n\t\t\t\t\t\t\t    'p-carousel-item-end': (clonedItemsForFinishing.length - 1) === index}\">\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<button type=\"button\" *ngIf=\"showNavigators\" [ngClass]=\"{'p-carousel-next p-link': true, 'p-disabled': isForwardNavDisabled()}\" [disabled]=\"isForwardNavDisabled()\" (click)=\"navForward($event)\" pRipple>\n\t\t\t\t\t\t<span [ngClass]=\"{'p-carousel-prev-icon pi': true, 'pi-chevron-right': !isVertical(), 'pi-chevron-down': isVertical()}\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<ul [ngClass]=\"'p-carousel-indicators p-reset'\" [class]=\"indicatorsContentClass\" [ngStyle]=\"indicatorsContentStyle\" *ngIf=\"showIndicators\">\n\t\t\t\t\t<li *ngFor=\"let totalDot of totalDotsArray(); let i = index\" [ngClass]=\"{'p-carousel-indicator':true,'p-highlight': _page === i}\">\n\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"'p-link'\" (click)=\"onDotClick($event, i)\" [class]=\"indicatorStyleClass\" [ngStyle]=\"indicatorStyle\"></button>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t<div class=\"p-carousel-footer\" *ngIf=\"footerFacet || footerTemplate\">\n                <ng-content select=\"p-footer\"></ng-content>\n                <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n\t\t\t</div>\n\t\t</div>\n    `,\n      changeDetection: ChangeDetectionStrategy.OnPush,\n      encapsulation: ViewEncapsulation.None,\n      host: {\n        'class': 'p-element'\n      },\n      styles: [\".p-carousel{display:flex;flex-direction:column}.p-carousel-content{display:flex;flex-direction:column;overflow:auto}.p-carousel-prev,.p-carousel-next{align-self:center;flex-grow:0;flex-shrink:0;display:flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-carousel-container{display:flex;flex-direction:row}.p-carousel-items-content{overflow:hidden;width:100%}.p-carousel-items-container{display:flex;flex-direction:row}.p-carousel-indicators{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap}.p-carousel-indicator>button{display:flex;align-items:center;justify-content:center}.p-carousel-vertical .p-carousel-container{flex-direction:column}.p-carousel-vertical .p-carousel-items-container{flex-direction:column;height:100%}.p-items-hidden .p-carousel-item{visibility:hidden}.p-items-hidden .p-carousel-item.p-carousel-item-active{visibility:visible}\\n\"]\n    }]\n  }], function () {\n    return [{\n      type: i0.ElementRef\n    }, {\n      type: i0.NgZone\n    }, {\n      type: i0.ChangeDetectorRef\n    }];\n  }, {\n    page: [{\n      type: Input\n    }],\n    numVisible: [{\n      type: Input\n    }],\n    numScroll: [{\n      type: Input\n    }],\n    responsiveOptions: [{\n      type: Input\n    }],\n    orientation: [{\n      type: Input\n    }],\n    verticalViewPortHeight: [{\n      type: Input\n    }],\n    contentClass: [{\n      type: Input\n    }],\n    indicatorsContentClass: [{\n      type: Input\n    }],\n    indicatorsContentStyle: [{\n      type: Input\n    }],\n    indicatorStyleClass: [{\n      type: Input\n    }],\n    indicatorStyle: [{\n      type: Input\n    }],\n    value: [{\n      type: Input\n    }],\n    circular: [{\n      type: Input\n    }],\n    showIndicators: [{\n      type: Input\n    }],\n    showNavigators: [{\n      type: Input\n    }],\n    autoplayInterval: [{\n      type: Input\n    }],\n    style: [{\n      type: Input\n    }],\n    styleClass: [{\n      type: Input\n    }],\n    onPage: [{\n      type: Output\n    }],\n    itemsContainer: [{\n      type: ViewChild,\n      args: ['itemsContainer']\n    }],\n    headerFacet: [{\n      type: ContentChild,\n      args: [Header]\n    }],\n    footerFacet: [{\n      type: ContentChild,\n      args: [Footer]\n    }],\n    templates: [{\n      type: ContentChildren,\n      args: [PrimeTemplate]\n    }]\n  });\n})();\n\nclass CarouselModule {}\n\nCarouselModule.ɵfac = function CarouselModule_Factory(t) {\n  return new (t || CarouselModule)();\n};\n\nCarouselModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n  type: CarouselModule\n});\nCarouselModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n  imports: [[CommonModule, SharedModule, RippleModule], CommonModule, SharedModule]\n});\n\n(function () {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CarouselModule, [{\n    type: NgModule,\n    args: [{\n      imports: [CommonModule, SharedModule, RippleModule],\n      exports: [CommonModule, Carousel, SharedModule],\n      declarations: [Carousel]\n    }]\n  }], null, null);\n})();\n/**\n * Generated bundle index. Do not edit.\n */\n\n\nexport { Carousel, CarouselModule };","map":{"version":3,"sources":["C:/Users/DELL/Desktop/bachelor-thesis/trip-planner-front/node_modules/primeng/fesm2015/primeng-carousel.mjs"],"names":["i0","EventEmitter","Component","ChangeDetectionStrategy","ViewEncapsulation","Input","Output","ViewChild","ContentChild","ContentChildren","NgModule","Header","Footer","PrimeTemplate","SharedModule","i2","RippleModule","i1","CommonModule","UniqueComponentId","Carousel","constructor","el","zone","cd","orientation","verticalViewPortHeight","contentClass","indicatorsContentClass","indicatorStyleClass","circular","showIndicators","showNavigators","autoplayInterval","onPage","_numVisible","_numScroll","_oldNumScroll","prevState","numScroll","numVisible","value","defaultNumScroll","defaultNumVisible","_page","isRemainingItemsAdded","remainingItems","swipeThreshold","totalShiftedItems","page","val","isCreated","stopAutoplay","allowAutoplay","totalDots","step","_value","ngOnChanges","simpleChange","setCloneItems","responsiveOptions","isCircular","createStyle","calculatePosition","ngAfterContentInit","id","bindDocumentListeners","templates","forEach","item","getType","itemTemplate","template","headerTemplate","footerTemplate","ngAfterContentChecked","itemsContainer","length","emit","nativeElement","style","transform","isVertical","isAutoplay","startAutoplay","carouselStyle","document","createElement","type","body","appendChild","innerHTML","sort","data1","data2","value1","breakpoint","value2","result","localeCompare","undefined","numeric","i","res","windowWidth","window","innerWidth","matchedResponsiveData","parseInt","Math","floor","markForCheck","clonedItemsForStarting","clonedItemsForFinishing","push","slice","firstIndex","lastIndex","ceil","totalDotsArray","Array","fill","isForwardNavDisabled","isEmpty","isBackwardNavDisabled","navForward","e","index","cancelable","preventDefault","navBackward","onDotClick","dir","originalShiftedItems","abs","transition","interval","setInterval","clearInterval","onTransitionEnd","onTouchStart","touchobj","changedTouches","startPos","x","pageX","y","pageY","onTouchMove","onTouchEnd","changePageOnTouch","diff","documentResizeListener","addEventListener","unbindDocumentListeners","removeEventListener","ngOnDestroy","ɵfac","ElementRef","NgZone","ChangeDetectorRef","ɵcmp","NgClass","NgStyle","NgIf","NgForOf","NgTemplateOutlet","Ripple","args","selector","changeDetection","OnPush","encapsulation","None","host","styles","indicatorsContentStyle","indicatorStyle","styleClass","headerFacet","footerFacet","CarouselModule","ɵmod","ɵinj","imports","exports","declarations"],"mappings":"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","sourcesContent":["import * as i0 from '@angular/core';\nimport { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ViewChild, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport { Header, Footer, PrimeTemplate, SharedModule } from 'primeng/api';\nimport * as i2 from 'primeng/ripple';\nimport { RippleModule } from 'primeng/ripple';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { UniqueComponentId } from 'primeng/utils';\n\nclass Carousel {\n    constructor(el, zone, cd) {\n        this.el = el;\n        this.zone = zone;\n        this.cd = cd;\n        this.orientation = \"horizontal\";\n        this.verticalViewPortHeight = \"300px\";\n        this.contentClass = \"\";\n        this.indicatorsContentClass = \"\";\n        this.indicatorStyleClass = \"\";\n        this.circular = false;\n        this.showIndicators = true;\n        this.showNavigators = true;\n        this.autoplayInterval = 0;\n        this.onPage = new EventEmitter();\n        this._numVisible = 1;\n        this._numScroll = 1;\n        this._oldNumScroll = 0;\n        this.prevState = {\n            numScroll: 0,\n            numVisible: 0,\n            value: []\n        };\n        this.defaultNumScroll = 1;\n        this.defaultNumVisible = 1;\n        this._page = 0;\n        this.isRemainingItemsAdded = false;\n        this.remainingItems = 0;\n        this.swipeThreshold = 20;\n        this.totalShiftedItems = this.page * this.numScroll * -1;\n    }\n    get page() {\n        return this._page;\n    }\n    set page(val) {\n        if (this.isCreated && val !== this._page) {\n            if (this.autoplayInterval) {\n                this.stopAutoplay();\n                this.allowAutoplay = false;\n            }\n            if (val > this._page && val <= (this.totalDots() - 1)) {\n                this.step(-1, val);\n            }\n            else if (val < this._page) {\n                this.step(1, val);\n            }\n        }\n        this._page = val;\n    }\n    get numVisible() {\n        return this._numVisible;\n    }\n    set numVisible(val) {\n        this._numVisible = val;\n    }\n    get numScroll() {\n        return this._numVisible;\n    }\n    set numScroll(val) {\n        this._numScroll = val;\n    }\n    get value() {\n        return this._value;\n    }\n    ;\n    set value(val) {\n        this._value = val;\n    }\n    ngOnChanges(simpleChange) {\n        if (simpleChange.value) {\n            if (this.circular && this._value) {\n                this.setCloneItems();\n            }\n        }\n        if (this.isCreated) {\n            if (simpleChange.numVisible) {\n                if (this.responsiveOptions) {\n                    this.defaultNumVisible = this.numVisible;\n                }\n                if (this.isCircular()) {\n                    this.setCloneItems();\n                }\n                this.createStyle();\n                this.calculatePosition();\n            }\n            if (simpleChange.numScroll) {\n                if (this.responsiveOptions) {\n                    this.defaultNumScroll = this.numScroll;\n                }\n            }\n        }\n    }\n    ngAfterContentInit() {\n        this.id = UniqueComponentId();\n        this.allowAutoplay = !!this.autoplayInterval;\n        if (this.circular) {\n            this.setCloneItems();\n        }\n        if (this.responsiveOptions) {\n            this.defaultNumScroll = this._numScroll;\n            this.defaultNumVisible = this._numVisible;\n        }\n        this.createStyle();\n        this.calculatePosition();\n        if (this.responsiveOptions) {\n            this.bindDocumentListeners();\n        }\n        this.templates.forEach((item) => {\n            switch (item.getType()) {\n                case 'item':\n                    this.itemTemplate = item.template;\n                    break;\n                case 'header':\n                    this.headerTemplate = item.template;\n                    break;\n                case 'footer':\n                    this.footerTemplate = item.template;\n                    break;\n                default:\n                    this.itemTemplate = item.template;\n                    break;\n            }\n        });\n    }\n    ngAfterContentChecked() {\n        const isCircular = this.isCircular();\n        let totalShiftedItems = this.totalShiftedItems;\n        if (this.value && this.itemsContainer && (this.prevState.numScroll !== this._numScroll || this.prevState.numVisible !== this._numVisible || this.prevState.value.length !== this.value.length)) {\n            if (this.autoplayInterval) {\n                this.stopAutoplay();\n            }\n            this.remainingItems = (this.value.length - this._numVisible) % this._numScroll;\n            let page = this._page;\n            if (this.totalDots() !== 0 && page >= this.totalDots()) {\n                page = this.totalDots() - 1;\n                this._page = page;\n                this.onPage.emit({\n                    page: this.page\n                });\n            }\n            totalShiftedItems = (page * this._numScroll) * -1;\n            if (isCircular) {\n                totalShiftedItems -= this._numVisible;\n            }\n            if (page === (this.totalDots() - 1) && this.remainingItems > 0) {\n                totalShiftedItems += (-1 * this.remainingItems) + this._numScroll;\n                this.isRemainingItemsAdded = true;\n            }\n            else {\n                this.isRemainingItemsAdded = false;\n            }\n            if (totalShiftedItems !== this.totalShiftedItems) {\n                this.totalShiftedItems = totalShiftedItems;\n            }\n            this._oldNumScroll = this._numScroll;\n            this.prevState.numScroll = this._numScroll;\n            this.prevState.numVisible = this._numVisible;\n            this.prevState.value = [...this._value];\n            if (this.totalDots() > 0 && this.itemsContainer.nativeElement) {\n                this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n            }\n            this.isCreated = true;\n            if (this.autoplayInterval && this.isAutoplay()) {\n                this.startAutoplay();\n            }\n        }\n        if (isCircular) {\n            if (this.page === 0) {\n                totalShiftedItems = -1 * this._numVisible;\n            }\n            else if (totalShiftedItems === 0) {\n                totalShiftedItems = -1 * this.value.length;\n                if (this.remainingItems > 0) {\n                    this.isRemainingItemsAdded = true;\n                }\n            }\n            if (totalShiftedItems !== this.totalShiftedItems) {\n                this.totalShiftedItems = totalShiftedItems;\n            }\n        }\n    }\n    createStyle() {\n        if (!this.carouselStyle) {\n            this.carouselStyle = document.createElement('style');\n            this.carouselStyle.type = 'text/css';\n            document.body.appendChild(this.carouselStyle);\n        }\n        let innerHTML = `\n            #${this.id} .p-carousel-item {\n\t\t\t\tflex: 1 0 ${(100 / this.numVisible)}%\n\t\t\t}\n        `;\n        if (this.responsiveOptions) {\n            this.responsiveOptions.sort((data1, data2) => {\n                const value1 = data1.breakpoint;\n                const value2 = data2.breakpoint;\n                let result = null;\n                if (value1 == null && value2 != null)\n                    result = -1;\n                else if (value1 != null && value2 == null)\n                    result = 1;\n                else if (value1 == null && value2 == null)\n                    result = 0;\n                else if (typeof value1 === 'string' && typeof value2 === 'string')\n                    result = value1.localeCompare(value2, undefined, { numeric: true });\n                else\n                    result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;\n                return -1 * result;\n            });\n            for (let i = 0; i < this.responsiveOptions.length; i++) {\n                let res = this.responsiveOptions[i];\n                innerHTML += `\n                    @media screen and (max-width: ${res.breakpoint}) {\n                        #${this.id} .p-carousel-item {\n                            flex: 1 0 ${(100 / res.numVisible)}%\n                        }\n                    }\n                `;\n            }\n        }\n        this.carouselStyle.innerHTML = innerHTML;\n    }\n    calculatePosition() {\n        if (this.responsiveOptions) {\n            let windowWidth = window.innerWidth;\n            let matchedResponsiveData = {\n                numVisible: this.defaultNumVisible,\n                numScroll: this.defaultNumScroll\n            };\n            for (let i = 0; i < this.responsiveOptions.length; i++) {\n                let res = this.responsiveOptions[i];\n                if (parseInt(res.breakpoint, 10) >= windowWidth) {\n                    matchedResponsiveData = res;\n                }\n            }\n            if (this._numScroll !== matchedResponsiveData.numScroll) {\n                let page = this._page;\n                page = Math.floor((page * this._numScroll) / matchedResponsiveData.numScroll);\n                let totalShiftedItems = (matchedResponsiveData.numScroll * this.page) * -1;\n                if (this.isCircular()) {\n                    totalShiftedItems -= matchedResponsiveData.numVisible;\n                }\n                this.totalShiftedItems = totalShiftedItems;\n                this._numScroll = matchedResponsiveData.numScroll;\n                this._page = page;\n                this.onPage.emit({\n                    page: this.page\n                });\n            }\n            if (this._numVisible !== matchedResponsiveData.numVisible) {\n                this._numVisible = matchedResponsiveData.numVisible;\n                this.setCloneItems();\n            }\n            this.cd.markForCheck();\n        }\n    }\n    setCloneItems() {\n        this.clonedItemsForStarting = [];\n        this.clonedItemsForFinishing = [];\n        if (this.isCircular()) {\n            this.clonedItemsForStarting.push(...this.value.slice(-1 * this._numVisible));\n            this.clonedItemsForFinishing.push(...this.value.slice(0, this._numVisible));\n        }\n    }\n    firstIndex() {\n        return this.isCircular() ? (-1 * (this.totalShiftedItems + this.numVisible)) : (this.totalShiftedItems * -1);\n    }\n    lastIndex() {\n        return this.firstIndex() + this.numVisible - 1;\n    }\n    totalDots() {\n        return this.value ? Math.ceil((this.value.length - this._numVisible) / this._numScroll) + 1 : 0;\n    }\n    totalDotsArray() {\n        const totalDots = this.totalDots();\n        return totalDots <= 0 ? [] : Array(totalDots).fill(0);\n    }\n    isVertical() {\n        return this.orientation === 'vertical';\n    }\n    isCircular() {\n        return this.circular && this.value && this.value.length >= this.numVisible;\n    }\n    isAutoplay() {\n        return this.autoplayInterval && this.allowAutoplay;\n    }\n    isForwardNavDisabled() {\n        return this.isEmpty() || (this._page >= (this.totalDots() - 1) && !this.isCircular());\n    }\n    isBackwardNavDisabled() {\n        return this.isEmpty() || (this._page <= 0 && !this.isCircular());\n    }\n    isEmpty() {\n        return !this.value || this.value.length === 0;\n    }\n    navForward(e, index) {\n        if (this.isCircular() || this._page < (this.totalDots() - 1)) {\n            this.step(-1, index);\n        }\n        if (this.autoplayInterval) {\n            this.stopAutoplay();\n            this.allowAutoplay = false;\n        }\n        if (e && e.cancelable) {\n            e.preventDefault();\n        }\n    }\n    navBackward(e, index) {\n        if (this.isCircular() || this._page !== 0) {\n            this.step(1, index);\n        }\n        if (this.autoplayInterval) {\n            this.stopAutoplay();\n            this.allowAutoplay = false;\n        }\n        if (e && e.cancelable) {\n            e.preventDefault();\n        }\n    }\n    onDotClick(e, index) {\n        let page = this._page;\n        if (this.autoplayInterval) {\n            this.stopAutoplay();\n            this.allowAutoplay = false;\n        }\n        if (index > page) {\n            this.navForward(e, index);\n        }\n        else if (index < page) {\n            this.navBackward(e, index);\n        }\n    }\n    step(dir, page) {\n        let totalShiftedItems = this.totalShiftedItems;\n        const isCircular = this.isCircular();\n        if (page != null) {\n            totalShiftedItems = (this._numScroll * page) * -1;\n            if (isCircular) {\n                totalShiftedItems -= this._numVisible;\n            }\n            this.isRemainingItemsAdded = false;\n        }\n        else {\n            totalShiftedItems += (this._numScroll * dir);\n            if (this.isRemainingItemsAdded) {\n                totalShiftedItems += this.remainingItems - (this._numScroll * dir);\n                this.isRemainingItemsAdded = false;\n            }\n            let originalShiftedItems = isCircular ? (totalShiftedItems + this._numVisible) : totalShiftedItems;\n            page = Math.abs(Math.floor((originalShiftedItems / this._numScroll)));\n        }\n        if (isCircular && this.page === (this.totalDots() - 1) && dir === -1) {\n            totalShiftedItems = -1 * (this.value.length + this._numVisible);\n            page = 0;\n        }\n        else if (isCircular && this.page === 0 && dir === 1) {\n            totalShiftedItems = 0;\n            page = (this.totalDots() - 1);\n        }\n        else if (page === (this.totalDots() - 1) && this.remainingItems > 0) {\n            totalShiftedItems += ((this.remainingItems * -1) - (this._numScroll * dir));\n            this.isRemainingItemsAdded = true;\n        }\n        if (this.itemsContainer) {\n            this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n            this.itemsContainer.nativeElement.style.transition = 'transform 500ms ease 0s';\n        }\n        this.totalShiftedItems = totalShiftedItems;\n        this._page = page;\n        this.onPage.emit({\n            page: this.page\n        });\n    }\n    startAutoplay() {\n        this.interval = setInterval(() => {\n            if (this.totalDots() > 0) {\n                if (this.page === (this.totalDots() - 1)) {\n                    this.step(-1, 0);\n                }\n                else {\n                    this.step(-1, this.page + 1);\n                }\n            }\n        }, this.autoplayInterval);\n    }\n    stopAutoplay() {\n        if (this.interval) {\n            clearInterval(this.interval);\n        }\n    }\n    onTransitionEnd() {\n        if (this.itemsContainer) {\n            this.itemsContainer.nativeElement.style.transition = '';\n            if ((this.page === 0 || this.page === (this.totalDots() - 1)) && this.isCircular()) {\n                this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${this.totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${this.totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\n            }\n        }\n    }\n    onTouchStart(e) {\n        let touchobj = e.changedTouches[0];\n        this.startPos = {\n            x: touchobj.pageX,\n            y: touchobj.pageY\n        };\n    }\n    onTouchMove(e) {\n        if (e.cancelable) {\n            e.preventDefault();\n        }\n    }\n    onTouchEnd(e) {\n        let touchobj = e.changedTouches[0];\n        if (this.isVertical()) {\n            this.changePageOnTouch(e, (touchobj.pageY - this.startPos.y));\n        }\n        else {\n            this.changePageOnTouch(e, (touchobj.pageX - this.startPos.x));\n        }\n    }\n    changePageOnTouch(e, diff) {\n        if (Math.abs(diff) > this.swipeThreshold) {\n            if (diff < 0) {\n                this.navForward(e);\n            }\n            else {\n                this.navBackward(e);\n            }\n        }\n    }\n    bindDocumentListeners() {\n        if (!this.documentResizeListener) {\n            this.documentResizeListener = (e) => {\n                this.calculatePosition();\n            };\n            window.addEventListener('resize', this.documentResizeListener);\n        }\n    }\n    unbindDocumentListeners() {\n        if (this.documentResizeListener) {\n            window.removeEventListener('resize', this.documentResizeListener);\n            this.documentResizeListener = null;\n        }\n    }\n    ngOnDestroy() {\n        if (this.responsiveOptions) {\n            this.unbindDocumentListeners();\n        }\n        if (this.autoplayInterval) {\n            this.stopAutoplay();\n        }\n    }\n}\nCarousel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: Carousel, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nCarousel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.0\", type: Carousel, selector: \"p-carousel\", inputs: { page: \"page\", numVisible: \"numVisible\", numScroll: \"numScroll\", responsiveOptions: \"responsiveOptions\", orientation: \"orientation\", verticalViewPortHeight: \"verticalViewPortHeight\", contentClass: \"contentClass\", indicatorsContentClass: \"indicatorsContentClass\", indicatorsContentStyle: \"indicatorsContentStyle\", indicatorStyleClass: \"indicatorStyleClass\", indicatorStyle: \"indicatorStyle\", value: \"value\", circular: \"circular\", showIndicators: \"showIndicators\", showNavigators: \"showNavigators\", autoplayInterval: \"autoplayInterval\", style: \"style\", styleClass: \"styleClass\" }, outputs: { onPage: \"onPage\" }, host: { classAttribute: \"p-element\" }, queries: [{ propertyName: \"headerFacet\", first: true, predicate: Header, descendants: true }, { propertyName: \"footerFacet\", first: true, predicate: Footer, descendants: true }, { propertyName: \"templates\", predicate: PrimeTemplate }], viewQueries: [{ propertyName: \"itemsContainer\", first: true, predicate: [\"itemsContainer\"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `\n\t\t<div [attr.id]=\"id\" [ngClass]=\"{'p-carousel p-component':true, 'p-carousel-vertical': isVertical(), 'p-carousel-horizontal': !isVertical()}\" [ngStyle]=\"style\" [class]=\"styleClass\">\n\t\t\t<div class=\"p-carousel-header\" *ngIf=\"headerFacet || headerTemplate\">\n                <ng-content select=\"p-header\"></ng-content>\n                <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n\t\t\t</div>\n\t\t\t<div [class]=\"contentClass\" [ngClass]=\"'p-carousel-content'\">\n\t\t\t\t<div class=\"p-carousel-container\">\n\t\t\t\t\t<button type=\"button\" *ngIf=\"showNavigators\" [ngClass]=\"{'p-carousel-prev p-link':true, 'p-disabled': isBackwardNavDisabled()}\" [disabled]=\"isBackwardNavDisabled()\" (click)=\"navBackward($event)\" pRipple>\n\t\t\t\t\t\t<span [ngClass]=\"{'p-carousel-prev-icon pi': true, 'pi-chevron-left': !isVertical(), 'pi-chevron-up': isVertical()}\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<div class=\"p-carousel-items-content\" [ngStyle]=\"{'height': isVertical() ? verticalViewPortHeight : 'auto'}\">\n\t\t\t\t\t\t<div #itemsContainer class=\"p-carousel-items-container\" (transitionend)=\"onTransitionEnd()\" (touchend)=\"onTouchEnd($event)\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\">\n                            <div *ngFor=\"let item of clonedItemsForStarting; let index = index\" [ngClass]= \"{'p-carousel-item p-carousel-item-cloned': true,\n                                'p-carousel-item-active': (totalShiftedItems * -1) === (value.length),\n\t\t\t\t\t\t\t    'p-carousel-item-start': 0 === index,\n\t\t\t\t\t\t\t    'p-carousel-item-end': (clonedItemsForStarting.length - 1) === index}\">\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n\t\t\t\t\t\t\t</div>\n                            <div *ngFor=\"let item of value; let index = index\" [ngClass]= \"{'p-carousel-item': true,\n                                'p-carousel-item-active': (firstIndex() <= index && lastIndex() >= index),\n\t\t\t\t\t\t\t    'p-carousel-item-start': firstIndex() === index,\n\t\t\t\t\t\t\t    'p-carousel-item-end': lastIndex() === index}\">\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n\t\t\t\t\t\t\t</div>\n                            <div *ngFor=\"let item of clonedItemsForFinishing; let index = index\" [ngClass]= \"{'p-carousel-item p-carousel-item-cloned': true,\n                                'p-carousel-item-active': ((totalShiftedItems *-1) === numVisible),\n\t\t\t\t\t\t\t    'p-carousel-item-start': 0 === index,\n\t\t\t\t\t\t\t    'p-carousel-item-end': (clonedItemsForFinishing.length - 1) === index}\">\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<button type=\"button\" *ngIf=\"showNavigators\" [ngClass]=\"{'p-carousel-next p-link': true, 'p-disabled': isForwardNavDisabled()}\" [disabled]=\"isForwardNavDisabled()\" (click)=\"navForward($event)\" pRipple>\n\t\t\t\t\t\t<span [ngClass]=\"{'p-carousel-prev-icon pi': true, 'pi-chevron-right': !isVertical(), 'pi-chevron-down': isVertical()}\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<ul [ngClass]=\"'p-carousel-indicators p-reset'\" [class]=\"indicatorsContentClass\" [ngStyle]=\"indicatorsContentStyle\" *ngIf=\"showIndicators\">\n\t\t\t\t\t<li *ngFor=\"let totalDot of totalDotsArray(); let i = index\" [ngClass]=\"{'p-carousel-indicator':true,'p-highlight': _page === i}\">\n\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"'p-link'\" (click)=\"onDotClick($event, i)\" [class]=\"indicatorStyleClass\" [ngStyle]=\"indicatorStyle\"></button>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t<div class=\"p-carousel-footer\" *ngIf=\"footerFacet || footerTemplate\">\n                <ng-content select=\"p-footer\"></ng-content>\n                <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n\t\t\t</div>\n\t\t</div>\n    `, isInline: true, styles: [\".p-carousel{display:flex;flex-direction:column}.p-carousel-content{display:flex;flex-direction:column;overflow:auto}.p-carousel-prev,.p-carousel-next{align-self:center;flex-grow:0;flex-shrink:0;display:flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-carousel-container{display:flex;flex-direction:row}.p-carousel-items-content{overflow:hidden;width:100%}.p-carousel-items-container{display:flex;flex-direction:row}.p-carousel-indicators{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap}.p-carousel-indicator>button{display:flex;align-items:center;justify-content:center}.p-carousel-vertical .p-carousel-container{flex-direction:column}.p-carousel-vertical .p-carousel-items-container{flex-direction:column;height:100%}.p-items-hidden .p-carousel-item{visibility:hidden}.p-items-hidden .p-carousel-item.p-carousel-item-active{visibility:visible}\\n\"], directives: [{ type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\"] }, { type: i2.Ripple, selector: \"[pRipple]\" }, { type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: Carousel, decorators: [{\n            type: Component,\n            args: [{ selector: 'p-carousel', template: `\n\t\t<div [attr.id]=\"id\" [ngClass]=\"{'p-carousel p-component':true, 'p-carousel-vertical': isVertical(), 'p-carousel-horizontal': !isVertical()}\" [ngStyle]=\"style\" [class]=\"styleClass\">\n\t\t\t<div class=\"p-carousel-header\" *ngIf=\"headerFacet || headerTemplate\">\n                <ng-content select=\"p-header\"></ng-content>\n                <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n\t\t\t</div>\n\t\t\t<div [class]=\"contentClass\" [ngClass]=\"'p-carousel-content'\">\n\t\t\t\t<div class=\"p-carousel-container\">\n\t\t\t\t\t<button type=\"button\" *ngIf=\"showNavigators\" [ngClass]=\"{'p-carousel-prev p-link':true, 'p-disabled': isBackwardNavDisabled()}\" [disabled]=\"isBackwardNavDisabled()\" (click)=\"navBackward($event)\" pRipple>\n\t\t\t\t\t\t<span [ngClass]=\"{'p-carousel-prev-icon pi': true, 'pi-chevron-left': !isVertical(), 'pi-chevron-up': isVertical()}\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<div class=\"p-carousel-items-content\" [ngStyle]=\"{'height': isVertical() ? verticalViewPortHeight : 'auto'}\">\n\t\t\t\t\t\t<div #itemsContainer class=\"p-carousel-items-container\" (transitionend)=\"onTransitionEnd()\" (touchend)=\"onTouchEnd($event)\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\">\n                            <div *ngFor=\"let item of clonedItemsForStarting; let index = index\" [ngClass]= \"{'p-carousel-item p-carousel-item-cloned': true,\n                                'p-carousel-item-active': (totalShiftedItems * -1) === (value.length),\n\t\t\t\t\t\t\t    'p-carousel-item-start': 0 === index,\n\t\t\t\t\t\t\t    'p-carousel-item-end': (clonedItemsForStarting.length - 1) === index}\">\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n\t\t\t\t\t\t\t</div>\n                            <div *ngFor=\"let item of value; let index = index\" [ngClass]= \"{'p-carousel-item': true,\n                                'p-carousel-item-active': (firstIndex() <= index && lastIndex() >= index),\n\t\t\t\t\t\t\t    'p-carousel-item-start': firstIndex() === index,\n\t\t\t\t\t\t\t    'p-carousel-item-end': lastIndex() === index}\">\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n\t\t\t\t\t\t\t</div>\n                            <div *ngFor=\"let item of clonedItemsForFinishing; let index = index\" [ngClass]= \"{'p-carousel-item p-carousel-item-cloned': true,\n                                'p-carousel-item-active': ((totalShiftedItems *-1) === numVisible),\n\t\t\t\t\t\t\t    'p-carousel-item-start': 0 === index,\n\t\t\t\t\t\t\t    'p-carousel-item-end': (clonedItemsForFinishing.length - 1) === index}\">\n\t\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<button type=\"button\" *ngIf=\"showNavigators\" [ngClass]=\"{'p-carousel-next p-link': true, 'p-disabled': isForwardNavDisabled()}\" [disabled]=\"isForwardNavDisabled()\" (click)=\"navForward($event)\" pRipple>\n\t\t\t\t\t\t<span [ngClass]=\"{'p-carousel-prev-icon pi': true, 'pi-chevron-right': !isVertical(), 'pi-chevron-down': isVertical()}\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<ul [ngClass]=\"'p-carousel-indicators p-reset'\" [class]=\"indicatorsContentClass\" [ngStyle]=\"indicatorsContentStyle\" *ngIf=\"showIndicators\">\n\t\t\t\t\t<li *ngFor=\"let totalDot of totalDotsArray(); let i = index\" [ngClass]=\"{'p-carousel-indicator':true,'p-highlight': _page === i}\">\n\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"'p-link'\" (click)=\"onDotClick($event, i)\" [class]=\"indicatorStyleClass\" [ngStyle]=\"indicatorStyle\"></button>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t<div class=\"p-carousel-footer\" *ngIf=\"footerFacet || footerTemplate\">\n                <ng-content select=\"p-footer\"></ng-content>\n                <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n\t\t\t</div>\n\t\t</div>\n    `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n                        'class': 'p-element'\n                    }, styles: [\".p-carousel{display:flex;flex-direction:column}.p-carousel-content{display:flex;flex-direction:column;overflow:auto}.p-carousel-prev,.p-carousel-next{align-self:center;flex-grow:0;flex-shrink:0;display:flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.p-carousel-container{display:flex;flex-direction:row}.p-carousel-items-content{overflow:hidden;width:100%}.p-carousel-items-container{display:flex;flex-direction:row}.p-carousel-indicators{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap}.p-carousel-indicator>button{display:flex;align-items:center;justify-content:center}.p-carousel-vertical .p-carousel-container{flex-direction:column}.p-carousel-vertical .p-carousel-items-container{flex-direction:column;height:100%}.p-items-hidden .p-carousel-item{visibility:hidden}.p-items-hidden .p-carousel-item.p-carousel-item-active{visibility:visible}\\n\"] }]\n        }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { page: [{\n                type: Input\n            }], numVisible: [{\n                type: Input\n            }], numScroll: [{\n                type: Input\n            }], responsiveOptions: [{\n                type: Input\n            }], orientation: [{\n                type: Input\n            }], verticalViewPortHeight: [{\n                type: Input\n            }], contentClass: [{\n                type: Input\n            }], indicatorsContentClass: [{\n                type: Input\n            }], indicatorsContentStyle: [{\n                type: Input\n            }], indicatorStyleClass: [{\n                type: Input\n            }], indicatorStyle: [{\n                type: Input\n            }], value: [{\n                type: Input\n            }], circular: [{\n                type: Input\n            }], showIndicators: [{\n                type: Input\n            }], showNavigators: [{\n                type: Input\n            }], autoplayInterval: [{\n                type: Input\n            }], style: [{\n                type: Input\n            }], styleClass: [{\n                type: Input\n            }], onPage: [{\n                type: Output\n            }], itemsContainer: [{\n                type: ViewChild,\n                args: ['itemsContainer']\n            }], headerFacet: [{\n                type: ContentChild,\n                args: [Header]\n            }], footerFacet: [{\n                type: ContentChild,\n                args: [Footer]\n            }], templates: [{\n                type: ContentChildren,\n                args: [PrimeTemplate]\n            }] } });\nclass CarouselModule {\n}\nCarouselModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: CarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCarouselModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: CarouselModule, declarations: [Carousel], imports: [CommonModule, SharedModule, RippleModule], exports: [CommonModule, Carousel, SharedModule] });\nCarouselModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: CarouselModule, imports: [[CommonModule, SharedModule, RippleModule], CommonModule, SharedModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.0\", ngImport: i0, type: CarouselModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    imports: [CommonModule, SharedModule, RippleModule],\n                    exports: [CommonModule, Carousel, SharedModule],\n                    declarations: [Carousel]\n                }]\n        }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Carousel, CarouselModule };\n"]},"metadata":{},"sourceType":"module"}
