{"version":3,"file":"iladiro-angular-slider.mjs","sources":["../../../projects/iladiro-angular-slider-library/src/lib/components/slider-paginator/slider-paginator.component.ts","../../../projects/iladiro-angular-slider-library/src/lib/components/slider-paginator/slider-paginator.component.html","../../../projects/iladiro-angular-slider-library/src/lib/components/slider-card/slider-card.component.ts","../../../projects/iladiro-angular-slider-library/src/lib/components/slider-card/slider-card.component.html","../../../projects/iladiro-angular-slider-library/src/lib/components/slider.component.ts","../../../projects/iladiro-angular-slider-library/src/lib/components/slider.component.html","../../../projects/iladiro-angular-slider-library/src/lib/iladiro-angular-slider-library.module.ts","../../../projects/iladiro-angular-slider-library/src/public-api.ts","../../../projects/iladiro-angular-slider-library/src/iladiro-angular-slider.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\r\n@Component({\r\n  selector: 'iladiro-angular-slider-paginator',\r\n  templateUrl: './slider-paginator.component.html',\r\n  styleUrls: ['./slider-paginator.component.scss']\r\n})\r\nexport class IladiroAngularSliderPaginatorComponent implements OnChanges {\r\n\r\n  @Input() totalPages!: number;\r\n  @Input() maxVisiblePages!: number;\r\n  @Input() template!: string;\r\n  @Input() arrowStart!: string;\r\n  @Input() arrowEnd!: string;\r\n  @Input() arrowNext!: string;\r\n  @Input() arrowPrev!: string;\r\n  @Output() selectedPageEvent = new EventEmitter();\r\n\r\n  currentPage = 1;\r\n  paginatorList: number[] = [];\r\n\r\n  sendEvent(direction: string): void {\r\n    this.selectedPageEvent.emit({\r\n      page: this.currentPage,\r\n      index: this.currentPage-1,\r\n      direction: direction\r\n    });\r\n  }\r\n\r\n  goTo(page: number): void {\r\n    const res = page > this.currentPage ? 'next' : 'prev';   \r\n    this.currentPage = page;    \r\n    this.sendEvent(res);\r\n  }\r\n\r\n  goNext(): void {    \r\n    this.currentPage += 1;\r\n    // da riattivare per implementazione sul template 2\r\n    if(this.template === 'templateTwo') {\r\n      this.increasePagination();\r\n    }\r\n    // end\r\n    this.sendEvent('next');\r\n  }  \r\n\r\n  goPrev(): void {\r\n    this.currentPage -= 1;    \r\n    // da riattivare per implementazione sul template 2\r\n    if(this.template === 'templateTwo') {          \r\n      this.decreasePagination();   \r\n    }\r\n    // end\r\n    this.sendEvent('prev');\r\n  }\r\n\r\n  goFirst(): void {\r\n    this.currentPage = 1;\r\n    if(this.template === 'templateTwo') {\r\n      this.paginatorList = this.generatePaginatorList(1, this.maxVisiblePages);          \r\n    }    \r\n    this.sendEvent('first');\r\n  }\r\n\r\n  goLast(): void {\r\n    this.currentPage = this.totalPages;\r\n    if(this.template === 'templateTwo') {\r\n      this.paginatorList = this.generatePaginatorList(this.currentPage - (this.maxVisiblePages - 1), this.currentPage);          \r\n    }    \r\n    this.sendEvent('last');\r\n  }\r\n\r\n  decreasePagination(): void {\r\n    if((this.currentPage <= this.maxVisiblePages)) {   \r\n      if(this.currentPage <= this.totalPages) {\r\n        console.log(\"currentPage\", this.currentPage);\r\n        if(this.currentPage >= this.paginatorList[0]) {\r\n          //console.log(\"do not anythings\");     \r\n        } else {            \r\n          //console.log(\"change pagination\");       \r\n          this.paginatorList = this.generatePaginatorList(this.currentPage, this.currentPage + (this.maxVisiblePages - 1));          \r\n        }   \r\n      }             \r\n    }\r\n  }\r\n\r\n  increasePagination(): void {\r\n    if((this.currentPage >= this.maxVisiblePages)) {   \r\n      if(this.currentPage <= this.totalPages) {\r\n        //console.log(\"currentPage\", this.currentPage);\r\n        if(this.currentPage <= this.paginatorList[this.maxVisiblePages - 1]) {\r\n          //console.log(\"do not anythings\");\r\n        } else {\r\n          //console.log(\"change pagination\");\r\n          this.paginatorList = this.generatePaginatorList(this.currentPage - (this.maxVisiblePages - 1), this.currentPage);          \r\n        }   \r\n      }             \r\n    } \r\n  }\r\n\r\n  generatePaginatorList(startFrom: number, untilTo: number): number[] {\r\n    /* console.log(\"startFrom\", startFrom);\r\n    console.log(\"untilTo\", untilTo); */\r\n    const pages: number[] = [];\r\n    for (let i = startFrom; i <= untilTo; i++) {\r\n      pages.push(i);\r\n    }\r\n\r\n    return pages;\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    console.log(changes);\r\n    if(this.template === 'templateTwo') {\r\n      if(changes['maxVisiblePages']?.currentValue) {\r\n        this.paginatorList = this.generatePaginatorList(1, this.maxVisiblePages ? this.maxVisiblePages : this.totalPages);\r\n      } \r\n    }       \r\n  }\r\n\r\n}\r\n","<ng-container *ngIf=\"template === 'default'\">\r\n    <ul *ngIf=\"totalPages\" class=\"iladiro-angular-slider-paginator iladiro-angular-slider-paginator--default\">\r\n        <li class=\"iladiro-angular-slider-paginator__item iladiro-angular-slider-paginator__item-arrow\">\r\n            <button class=\"iladiro-angular-slider-paginator__button\" (click)=\"goFirst()\" [disabled]=\"currentPage === 1\">\r\n                <i [class]=\"arrowStart\"></i>\r\n            </button>\r\n        </li>\r\n        <li class=\"iladiro-angular-slider-paginator__item iladiro-angular-slider-paginator__item-arrow\">\r\n            <button class=\"iladiro-angular-slider-paginator__button\" (click)=\"goPrev()\" [disabled]=\"currentPage === 1\">\r\n                <i [class]=\"arrowPrev\"></i>\r\n            </button>\r\n        </li>\r\n        <li class=\"iladiro-angular-slider-paginator__item iladiro-angular-slider-paginator__item-numbers\">{{currentPage}} di <span>{{totalPages}}</span></li>\r\n        <li class=\"iladiro-angular-slider-paginator__item iladiro-angular-slider-paginator__item-arrow\">\r\n            <button class=\"iladiro-angular-slider-paginator__button\" (click)=\"goNext()\" [disabled]=\"currentPage === totalPages\">\r\n                <i [class]=\"arrowNext\"></i>\r\n            </button>\r\n        </li>\r\n        <li class=\"iladiro-angular-slider-paginator__item iladiro-angular-slider-paginator__item-arrow\">\r\n            <button class=\"iladiro-angular-slider-paginator__button\" (click)=\"goLast()\" [disabled]=\"currentPage === totalPages\">\r\n                <i [class]=\"arrowEnd\"></i>\r\n            </button>\r\n        </li>\r\n    </ul>\r\n</ng-container>\r\n<ng-container *ngIf=\"template === 'templateOne'\">\r\n    <ul *ngIf=\"totalPages\" class=\"iladiro-angular-slider-paginator iladiro-angular-slider-paginator--templateOne\">\r\n        <li class=\"iladiro-angular-slider-paginator__item iladiro-angular-slider-paginator__item-arrow\">\r\n            <button class=\"iladiro-angular-slider-paginator__button\" (click)=\"goPrev()\" [disabled]=\"currentPage === 1\">\r\n                <i [class]=\"arrowPrev\"></i>\r\n            </button>\r\n        </li>       \r\n        <li class=\"iladiro-angular-slider-paginator__item iladiro-angular-slider-paginator__item-arrow\">\r\n            <button class=\"iladiro-angular-slider-paginator__button\" (click)=\"goNext()\" [disabled]=\"currentPage === totalPages\">\r\n                <i [class]=\"arrowNext\"></i>\r\n            </button>\r\n        </li>\r\n    </ul>\r\n</ng-container>\r\n<ng-container *ngIf=\"template === 'templateTwo'\">\r\n    <ul *ngIf=\"totalPages\" class=\"iladiro-angular-slider-paginator iladiro-angular-slider-paginator--default\">\r\n        <li class=\"iladiro-angular-slider-paginator__item iladiro-angular-slider-paginator__item-arrow\">\r\n            <button class=\"iladiro-angular-slider-paginator__button\" (click)=\"goFirst()\" [disabled]=\"currentPage === 1\">\r\n                <i [class]=\"arrowStart\"></i>\r\n            </button>\r\n        </li>\r\n        <li class=\"iladiro-angular-slider-paginator__item iladiro-angular-slider-paginator__item-arrow\">\r\n            <button class=\"iladiro-angular-slider-paginator__button\" (click)=\"goPrev()\" [disabled]=\"currentPage === 1\">\r\n                <i [class]=\"arrowPrev\"></i>\r\n            </button>\r\n        </li>\r\n        <li class=\"iladiro-angular-slider-paginator__item iladiro-angular-slider-paginator__item-numbers\" \r\n            [class.selected]=\"page === currentPage\" \r\n            *ngFor=\"let page of paginatorList\">\r\n            <button class=\"iladiro-angular-slider-paginator__button\" (click)=\"goTo(page)\" [disabled]=\"page === currentPage\">\r\n                {{page}}\r\n            </button>\r\n           <!--  <ng-template #morePages>\r\n                <button class=\"iladiro-angular-slider-paginator__button\" (click)=\"loadMorePges()\">...</button>\r\n            </ng-template> -->\r\n        </li>\r\n        <li class=\"iladiro-angular-slider-paginator__item iladiro-angular-slider-paginator__item-arrow\">\r\n            <button class=\"iladiro-angular-slider-paginator__button\" (click)=\"goNext()\" [disabled]=\"currentPage === totalPages\">\r\n                <i [class]=\"arrowNext\"></i>\r\n            </button>\r\n        </li>\r\n        <li class=\"iladiro-angular-slider-paginator__item iladiro-angular-slider-paginator__item-arrow\">\r\n            <button class=\"iladiro-angular-slider-paginator__button\" (click)=\"goLast()\" [disabled]=\"currentPage === totalPages\">\r\n                <i [class]=\"arrowEnd\"></i>\r\n            </button>\r\n        </li>\r\n    </ul>\r\n</ng-container>","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\r\nimport { IladiroAngularSlide } from '../../interfaces/slide.interface';\r\n\r\n@Component({\r\n  selector: 'iladiro-angular-slider-card',\r\n  templateUrl: './slider-card.component.html',\r\n  styleUrls: ['./slider-card.component.scss']\r\n})\r\nexport class IladiroAngularSliderCardComponent implements OnChanges {\r\n\r\n  @Input() slide!: IladiroAngularSlide;\r\n  @Input() index!: number;\r\n  @Input() activeIndex!: number;\r\n  @Input() first!: boolean;\r\n  @Input() last!: boolean;\r\n  @Input() direction!: string;\r\n  @Input() clickableSlide!: boolean;\r\n  @Output() clickSlideEvent = new EventEmitter();\r\n\r\n  activeClass!: string;\r\n\r\n  clickOnSlide() {\r\n    this.clickSlideEvent.emit()\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if(changes['activeIndex'].currentValue === this.index) {      \r\n      this.activeClass = 'active';\r\n    } else {\r\n      this.activeClass = '';\r\n    }\r\n  }\r\n\r\n}\r\n","<div (click)=\"clickOnSlide()\" [class.clickable]=\"clickableSlide\" class=\"iladiro-angular-slider-card {{activeClass}}\">\r\n    <figure class=\"iladiro-angular-slider-card__figure\" *ngIf=\"slide?.mediaSrc\">\r\n        <img class=\"iladiro-angular-slider-card__figure-image\" [src]=\"slide.mediaSrc\" [alt]=\"slide.tag\" *ngIf=\"slide?.mediaSrc\">\r\n        <figcaption class=\"iladiro-angular-slider-card__figure-label text-uppercase\" *ngIf=\"slide?.tag\">\r\n            {{slide.tag}}\r\n        </figcaption>\r\n    </figure>\r\n    <div class=\"iladiro-angular-slider-card__body\" *ngIf=\"slide.title || slide.description\">\r\n        <h1 class=\"iladiro-angular-slider-card__body--title\" *ngIf=\"slide.title\">{{slide.title}}</h1>\r\n        <p class=\"iladiro-angular-slider-card__body--description\" *ngIf=\"slide.description\">{{slide.description}}</p>\r\n        <a [href]=\"slide.link\" target=\"_blank\" class=\"iladiro-angular-slider-card__body--cta\" *ngIf=\"slide.link\">\r\n            <ng-container *ngIf=\"slide?.cta; else defaultCta\">\r\n                {{slide.cta}}\r\n            </ng-container>\r\n            <ng-template #defaultCta>\r\n                Read\r\n            </ng-template>\r\n        </a>\r\n    </div>    \r\n</div>\r\n","import { ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, Input, Output, QueryList, TemplateRef, ViewChild, ViewChildren, AfterViewInit, SimpleChanges, OnChanges } from '@angular/core';\n\n// Interfaces\nimport { IladiroAngularSlide } from '../interfaces/slide.interface';\nimport { IladiroAngularConfigSlider } from '../interfaces/config-slider.interface';\n\n\n@Component({\n  selector: 'iladiro-angular-slider',\n  templateUrl: './slider.component.html',\n  styleUrls: ['./slider.component.scss']\n})\nexport class IladiroAngularSliderComponent implements OnChanges, AfterViewInit {\n\n  @Input() slideList: IladiroAngularSlide[] = [];\n  @Input() customClass = '';\n  @Input() spaceBetweenSlide = 12;\n\n  // CardConfig\n  @Input() maxVisibleSlides!: number;\n\n  // Paginator config\n  @Input() paginatorTemplate = 'default';\n  @Input() paginatorArrowStart = 'fa fa-angle-double-left';\n  @Input() paginatorArrowEnd = 'fa fa-angle-double-right';\n  @Input() paginatorArrowNext = 'fa fa-chevron-right';\n  @Input() paginatorArrowPrev = 'fa fa-chevron-left';\n  @Input() paginatorMaxVisiblePages = 5;\n  @Input() clickableSlide = false;\n\n  @Output() goNextEvent = new EventEmitter();\n  @Output() goPrevEvent = new EventEmitter();\n  @Output() goFirstEvent = new EventEmitter();\n  @Output() goLastEvent = new EventEmitter();\n  @Output() clickSlideEvent = new EventEmitter();\n\n  activeIndex = 0;\n  currentDirection!: string;\n  slideWidth = 455;\n  wrapperWidth!: number;\n\n  @ViewChild('sliderMain') sliderMain!: ElementRef;\n  @ViewChild('sliderWrap') sliderWrap!: ElementRef;\n  @ViewChildren('item') items!:  QueryList<any>;\n  @ContentChild('customTemplate') customTemplate!: TemplateRef<any>;\n  \n  constructor(public cdRef: ChangeDetectorRef) { }\n\n  clickOnSlide(slide: IladiroAngularSlide) {\n    this.clickSlideEvent.emit(slide);\n  }\n\n  setSlideByIndex(config: IladiroAngularConfigSlider): void {    \n    this.items.forEach(item => {  \n      const translate = item.nativeElement.clientWidth * config.index;  \n      item.nativeElement.attributes['style'].value = this.calcTranslation(config.index, this.wrapperWidth, translate);\n    });\n\n    this.activeIndex = config.index;\n    this.currentDirection = config.direction;\n\n    this.sendPaginationEvent(config);\n  }\n\n  sendPaginationEvent(config: IladiroAngularConfigSlider): void {\n    const obj = {\n      page: config.page,\n      direction: config.direction\n    }\n    if(config.direction === 'next') {\n      this.goNextEvent.emit(obj);\n    } else if(config.direction === 'prev') {\n      this.goPrevEvent.emit(obj);\n    } else if(config.direction === 'first') {\n      this.goFirstEvent.emit(obj);\n    } else if(config.direction === 'last') {\n      this.goLastEvent.emit(obj);\n    }\n  }\n\n  calcTranslation(index: number, wrapperWidth: number, translate: number): string {\n    // Da rivedere perchè al momento funziona sui contenitori piccoli ma non bene su quelli grandi\n    /* if(index == this.slideList.length - 1) {\n      const leftovers = (wrapperWidth - itemWidth);\n      return  `transform: translateX(-${translate - leftovers}px);`;\n    } else {\n      return `transform: translateX(-${translate}px);`;\n    } */\n    return `transform: translateX(-${translate}px); padding-right: ${this.spaceBetweenSlide}px`;\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    console.log(changes)\n  }\n\n  ngAfterViewInit() {\n    if(this.maxVisibleSlides) {\n      this.wrapperWidth = this.sliderWrap?.nativeElement?.clientWidth;\n      if(this.slideList.length > this.maxVisibleSlides) {\n        if(this.maxVisibleSlides > 1) {\n          this.slideWidth = (this.wrapperWidth / this.maxVisibleSlides) - this.spaceBetweenSlide;\n        } else {\n          this.slideWidth = (this.wrapperWidth / this.maxVisibleSlides)\n        }\n      }\n    }\n\n    this.cdRef.detectChanges();\n  }\n\n}\n","<div class=\"iladiro-angular-slider {{customClass}}\" [class.onlyOne]=\"slideList.length === 1\">\r\n    <div class=\"iladiro-angular-slider__wrap\" #sliderWrap>\r\n        <div class=\"iladiro-angular-slider__main\" #sliderMain>\r\n            <div #item \r\n                class=\"iladiro-angular-slider__item\" \r\n                [ngClass]=\"customTemplate ? 'iladiro-angular-slider__item--custom' : 'iladiro-angular-slider__item--default'\" \r\n                [ngStyle]=\"{'transform': 'translateX(0px);'}\"\r\n                [style.paddingRight]=\"spaceBetweenSlide + 'px'\"                \r\n                *ngFor=\"let slide of slideList; let i = index; let first = first; let last = last;\"\r\n            >\r\n                <div class=\"iladiro-angular-slider__content\" [style.width]=\"slideWidth + 'px'\"  [class]=\"customTemplate ? 'iladiro-angular-slider__content--custom' : 'iladiro-angular-slider__content--default'\">                        \r\n                    <ng-container \r\n                        [ngTemplateOutlet]=\"customTemplate || defaultTemplate\" \r\n                        [ngTemplateOutletContext]=\"{\r\n                            slide: slide, \r\n                            first: first, \r\n                            last: last, \r\n                            index: i, \r\n                            activeIndex: activeIndex, \r\n                            direction: currentDirection\r\n                        }\">\r\n                    </ng-container>\r\n                    <ng-template #defaultTemplate>\r\n                        <iladiro-angular-slider-card                        \r\n                            [slide]=\"slide\" \r\n                            [index]=\"i\"\r\n                            [activeIndex]=\"activeIndex\"\r\n                            [first]=\"first\"\r\n                            [last]=\"last\"\r\n                            [direction]=\"currentDirection\"\r\n                            [clickableSlide]=\"clickableSlide\"\r\n                            (clickSlideEvent)=\"clickOnSlide(slide)\">\r\n                        </iladiro-angular-slider-card> \r\n                    </ng-template>                                           \r\n                </div>\r\n            </div>            \r\n        </div>\r\n    </div>    \r\n    <iladiro-angular-slider-paginator \r\n        [maxVisiblePages]=\"paginatorMaxVisiblePages\"\r\n        [arrowStart]=\"paginatorArrowStart\"\r\n        [arrowEnd]=\"paginatorArrowEnd\"\r\n        [arrowNext]=\"paginatorArrowNext\"\r\n        [arrowPrev]=\"paginatorArrowPrev\"\r\n        [template]=\"paginatorTemplate\"\r\n        [totalPages]=\"slideList.length\" \r\n        (selectedPageEvent)=\"setSlideByIndex($event)\"\r\n    ></iladiro-angular-slider-paginator>\r\n</div>","import { NgModule } from '@angular/core';\nimport { IladiroAngularSliderComponent } from './components/slider.component';\nimport { IladiroAngularSliderPaginatorComponent } from './components/slider-paginator/slider-paginator.component';\nimport { IladiroAngularSliderCardComponent } from './components/slider-card/slider-card.component';\nimport { CommonModule } from '@angular/common';\n\n\n\n@NgModule({\n  declarations: [\n    IladiroAngularSliderComponent,\n    IladiroAngularSliderPaginatorComponent,\n    IladiroAngularSliderCardComponent\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    IladiroAngularSliderComponent\n  ]\n})\nexport class IladiroAngularSliderLibraryModule { }\n","/*\n * Public API Surface of iladiro-angular-slider-library\n */\n\nexport * from './lib/components/slider.component';\nexport * from './lib/iladiro-angular-slider-library.module';\nexport { IladiroAngularSlide } from './lib/interfaces/slide.interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.IladiroAngularSliderPaginatorComponent","i3.IladiroAngularSliderCardComponent"],"mappings":";;;;;MAMa,sCAAsC,CAAA;AALnD,IAAA,WAAA,GAAA;AAcY,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;AAEjD,QAAA,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;AAChB,QAAA,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;KAoG9B;AAlGC,IAAA,SAAS,CAAC,SAAiB,EAAA;AACzB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC1B,IAAI,EAAE,IAAI,CAAC,WAAW;AACtB,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,GAAC,CAAC;AACzB,YAAA,SAAS,EAAE,SAAS;AACrB,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,IAAI,CAAC,IAAY,EAAA;AACf,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AACtD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;KACrB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;;AAEtB,QAAA,IAAG,IAAI,CAAC,QAAQ,KAAK,aAAa,EAAE;YAClC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,SAAA;;AAED,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KACxB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;;AAEtB,QAAA,IAAG,IAAI,CAAC,QAAQ,KAAK,aAAa,EAAE;YAClC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3B,SAAA;;AAED,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KACxB;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrB,QAAA,IAAG,IAAI,CAAC,QAAQ,KAAK,aAAa,EAAE;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC1E,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;KACzB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;AACnC,QAAA,IAAG,IAAI,CAAC,QAAQ,KAAK,aAAa,EAAE;YAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAClH,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KACxB;IAED,kBAAkB,GAAA;QAChB,KAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,GAAG;AAC7C,YAAA,IAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE;gBACtC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC7C,IAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;;AAE7C,iBAAA;AAAM,qBAAA;;oBAEL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC;AAClH,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAED,kBAAkB,GAAA;QAChB,KAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,GAAG;AAC7C,YAAA,IAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE;;AAEtC,gBAAA,IAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE;;AAEpE,iBAAA;AAAM,qBAAA;;oBAEL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAClH,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAED,qBAAqB,CAAC,SAAiB,EAAE,OAAe,EAAA;AACtD;AACmC;QACnC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;AACzC,YAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACf,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;;AAChC,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACrB,QAAA,IAAG,IAAI,CAAC,QAAQ,KAAK,aAAa,EAAE;AAClC,YAAA,IAAG,MAAA,OAAO,CAAC,iBAAiB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,EAAE;gBAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AACnH,aAAA;AACF,SAAA;KACF;;oIA9GU,sCAAsC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtC,sCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sCAAsC,kVCNnD,kpJAwEe,EAAA,MAAA,EAAA,CAAA,klBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDlEF,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBALlD,SAAS;+BACE,kCAAkC,EAAA,QAAA,EAAA,kpJAAA,EAAA,MAAA,EAAA,CAAA,klBAAA,CAAA,EAAA,CAAA;8BAMnC,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACI,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;MEPI,iCAAiC,CAAA;AAL9C,IAAA,WAAA,GAAA;AAcY,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;KAgBhD;IAZC,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;KAC5B;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAG,OAAO,CAAC,aAAa,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,EAAE;AACrD,YAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;AAC7B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACvB,SAAA;KACF;;+HAvBU,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjC,iCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,ySCR9C,svCAoBA,EAAA,MAAA,EAAA,CAAA,68CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDZa,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,svCAAA,EAAA,MAAA,EAAA,CAAA,68CAAA,CAAA,EAAA,CAAA;8BAM9B,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;MELI,6BAA6B,CAAA;AAkCxC,IAAA,WAAA,CAAmB,KAAwB,EAAA;AAAxB,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;AAhClC,QAAA,IAAS,CAAA,SAAA,GAA0B,EAAE,CAAC;AACtC,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AACjB,QAAA,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;;AAMvB,QAAA,IAAiB,CAAA,iBAAA,GAAG,SAAS,CAAC;AAC9B,QAAA,IAAmB,CAAA,mBAAA,GAAG,yBAAyB,CAAC;AAChD,QAAA,IAAiB,CAAA,iBAAA,GAAG,0BAA0B,CAAC;AAC/C,QAAA,IAAkB,CAAA,kBAAA,GAAG,qBAAqB,CAAC;AAC3C,QAAA,IAAkB,CAAA,kBAAA,GAAG,oBAAoB,CAAC;AAC1C,QAAA,IAAwB,CAAA,wBAAA,GAAG,CAAC,CAAC;AAC7B,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAEtB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;AAE/C,QAAA,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;AAEhB,QAAA,IAAU,CAAA,UAAA,GAAG,GAAG,CAAC;KAQ+B;AAEhD,IAAA,YAAY,CAAC,KAA0B,EAAA;AACrC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;AAED,IAAA,eAAe,CAAC,MAAkC,EAAA;AAChD,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;YAChE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAClH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC;AAEzC,QAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;KAClC;AAED,IAAA,mBAAmB,CAAC,MAAkC,EAAA;AACpD,QAAA,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAA;AACD,QAAA,IAAG,MAAM,CAAC,SAAS,KAAK,MAAM,EAAE;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,SAAA;AAAM,aAAA,IAAG,MAAM,CAAC,SAAS,KAAK,MAAM,EAAE;AACrC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,SAAA;AAAM,aAAA,IAAG,MAAM,CAAC,SAAS,KAAK,OAAO,EAAE;AACtC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,SAAA;AAAM,aAAA,IAAG,MAAM,CAAC,SAAS,KAAK,MAAM,EAAE;AACrC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,SAAA;KACF;AAED,IAAA,eAAe,CAAC,KAAa,EAAE,YAAoB,EAAE,SAAiB,EAAA;;AAEpE;;;;;AAKI;AACJ,QAAA,OAAO,0BAA0B,SAAS,CAAA,oBAAA,EAAuB,IAAI,CAAC,iBAAiB,IAAI,CAAC;KAC7F;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;KACrB;IAED,eAAe,GAAA;;QACb,IAAG,IAAI,CAAC,gBAAgB,EAAE;AACxB,YAAA,IAAI,CAAC,YAAY,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,CAAC;YAChE,IAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAChD,gBAAA,IAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE;AAC5B,oBAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,CAAC;AACxF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAA;AAC9D,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;KAC5B;;2HAhGU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,kiCCZ1C,2wFAgDM,EAAA,MAAA,EAAA,CAAA,u6BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,sCAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDpCO,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,2wFAAA,EAAA,MAAA,EAAA,CAAA,u6BAAA,CAAA,EAAA,CAAA;wGAMzB,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAGG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAGG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,wBAAwB,EAAA,CAAA;sBAAhC,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBAOkB,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBACE,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBACD,KAAK,EAAA,CAAA;sBAA1B,YAAY;uBAAC,MAAM,CAAA;gBACY,cAAc,EAAA,CAAA;sBAA7C,YAAY;uBAAC,gBAAgB,CAAA;;;MEvBnB,iCAAiC,CAAA;;+HAAjC,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjC,iCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,iBAX1C,6BAA6B;QAC7B,sCAAsC;AACtC,QAAA,iCAAiC,CAAA,EAAA,OAAA,EAAA,CAGjC,YAAY,CAAA,EAAA,OAAA,EAAA,CAGZ,6BAA6B,CAAA,EAAA,CAAA,CAAA;AAGpB,iCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,YAN1C,YAAY,CAAA,EAAA,CAAA,CAAA;4FAMH,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAb7C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,6BAA6B;wBAC7B,sCAAsC;wBACtC,iCAAiC;AAClC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,6BAA6B;AAC9B,qBAAA;iBACF,CAAA;;;ACpBD;;AAEG;;ACFH;;AAEG;;;;"}