cmat 0.0.29 → 0.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/adapter/index.d.ts +8 -9
- package/components/breadcrumb/index.d.ts +2 -4
- package/components/carousel/index.d.ts +3 -5
- package/components/cascade/index.d.ts +6 -7
- package/components/chip-input/index.d.ts +2 -2
- package/components/custom-formly/index.d.ts +41 -49
- package/components/date-range/index.d.ts +5 -6
- package/components/drawer/index.d.ts +30 -34
- package/components/fullscreen/index.d.ts +1 -2
- package/components/highlight/index.d.ts +12 -14
- package/components/image-viewer/index.d.ts +4 -5
- package/components/json-editor/index.d.ts +2 -3
- package/components/knob-input/index.d.ts +8 -8
- package/components/material-color-picker/index.d.ts +3 -3
- package/components/material-datetimepicker/index.d.ts +89 -93
- package/components/navigation/index.d.ts +82 -88
- package/components/opt-input/index.d.ts +6 -6
- package/components/pagination/index.d.ts +6 -9
- package/components/popover/index.d.ts +13 -16
- package/components/progress-bar/index.d.ts +3 -5
- package/components/rating/index.d.ts +5 -5
- package/components/select-search/index.d.ts +16 -17
- package/components/select-table/index.d.ts +6 -6
- package/components/select-tree/index.d.ts +7 -6
- package/components/speed-dial/index.d.ts +2 -3
- package/components/timeline/index.d.ts +2 -3
- package/components/toast/index.d.ts +14 -16
- package/components/transfer-picker/index.d.ts +43 -44
- package/components/treetable/index.d.ts +2 -3
- package/components/upload/index.d.ts +24 -27
- package/directives/animate-on-scroll/index.d.ts +4 -19
- package/directives/arrow-cursor/index.d.ts +2 -4
- package/directives/autofocus/index.d.ts +2 -2
- package/directives/data-exporter/index.d.ts +2 -15
- package/directives/digit-only/index.d.ts +4 -4
- package/directives/equal-validator/index.d.ts +1 -2
- package/fesm2022/cmat-components-adapter.mjs +22 -39
- package/fesm2022/cmat-components-adapter.mjs.map +1 -1
- package/fesm2022/cmat-components-breadcrumb.mjs +19 -21
- package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/cmat-components-card.mjs +3 -3
- package/fesm2022/cmat-components-carousel.mjs +112 -127
- package/fesm2022/cmat-components-carousel.mjs.map +1 -1
- package/fesm2022/cmat-components-cascade.mjs +61 -73
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +14 -18
- package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
- package/fesm2022/cmat-components-custom-formly.mjs +167 -169
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
- package/fesm2022/cmat-components-date-range.mjs +17 -17
- package/fesm2022/cmat-components-date-range.mjs.map +1 -1
- package/fesm2022/cmat-components-drawer.mjs +17 -19
- package/fesm2022/cmat-components-drawer.mjs.map +1 -1
- package/fesm2022/cmat-components-fullscreen.mjs +7 -10
- package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
- package/fesm2022/cmat-components-highlight.mjs +14 -14
- package/fesm2022/cmat-components-highlight.mjs.map +1 -1
- package/fesm2022/cmat-components-image-viewer.mjs +9 -12
- package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
- package/fesm2022/cmat-components-json-editor.mjs +7 -7
- package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-knob-input.mjs +12 -19
- package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
- package/fesm2022/cmat-components-masonry.mjs +3 -3
- package/fesm2022/cmat-components-material-color-picker.mjs +8 -7
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-material-datetimepicker.mjs +166 -216
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +108 -112
- package/fesm2022/cmat-components-navigation.mjs.map +1 -1
- package/fesm2022/cmat-components-opt-input.mjs +13 -20
- package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
- package/fesm2022/cmat-components-org-chart.mjs +9 -9
- package/fesm2022/cmat-components-pagination.mjs +32 -34
- package/fesm2022/cmat-components-pagination.mjs.map +1 -1
- package/fesm2022/cmat-components-password-strength.mjs +9 -9
- package/fesm2022/cmat-components-popover.mjs +27 -32
- package/fesm2022/cmat-components-popover.mjs.map +1 -1
- package/fesm2022/cmat-components-progress-bar.mjs +10 -10
- package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
- package/fesm2022/cmat-components-rating.mjs +10 -14
- package/fesm2022/cmat-components-rating.mjs.map +1 -1
- package/fesm2022/cmat-components-select-search.mjs +30 -53
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-table.mjs +28 -33
- package/fesm2022/cmat-components-select-table.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +55 -61
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
- package/fesm2022/cmat-components-speed-dial.mjs +13 -13
- package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
- package/fesm2022/cmat-components-timeline.mjs +18 -20
- package/fesm2022/cmat-components-timeline.mjs.map +1 -1
- package/fesm2022/cmat-components-toast.mjs +16 -16
- package/fesm2022/cmat-components-toast.mjs.map +1 -1
- package/fesm2022/cmat-components-transfer-picker.mjs +47 -47
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-treetable.mjs +11 -12
- package/fesm2022/cmat-components-treetable.mjs.map +1 -1
- package/fesm2022/cmat-components-upload.mjs +40 -33
- package/fesm2022/cmat-components-upload.mjs.map +1 -1
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +13 -14
- package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
- package/fesm2022/cmat-directives-arrow-cursor.mjs +11 -14
- package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -1
- package/fesm2022/cmat-directives-autofocus.mjs +8 -9
- package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
- package/fesm2022/cmat-directives-data-exporter.mjs +28 -28
- package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
- package/fesm2022/cmat-directives-debounce.mjs +11 -13
- package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
- package/fesm2022/cmat-directives-digit-only.mjs +17 -17
- package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
- package/fesm2022/cmat-directives-equal-validator.mjs +9 -16
- package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
- package/fesm2022/cmat-lib-mock-api.mjs +11 -14
- package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
- package/fesm2022/cmat-pipes-bytes.mjs +4 -5
- package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
- package/fesm2022/cmat-pipes-date-format.mjs +4 -5
- package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
- package/fesm2022/cmat-pipes-find-by-key.mjs +4 -5
- package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
- package/fesm2022/cmat-pipes-group-by.mjs +4 -5
- package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
- package/fesm2022/cmat-pipes-keys.mjs +4 -5
- package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
- package/fesm2022/cmat-pipes-secure.mjs +13 -14
- package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
- package/fesm2022/cmat-pipes-uppercase.mjs +4 -5
- package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
- package/fesm2022/cmat-services-alert.mjs +3 -3
- package/fesm2022/cmat-services-config.mjs +10 -12
- package/fesm2022/cmat-services-config.mjs.map +1 -1
- package/fesm2022/cmat-services-confirmation.mjs +17 -20
- package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
- package/fesm2022/cmat-services-data.mjs +10 -11
- package/fesm2022/cmat-services-data.mjs.map +1 -1
- package/fesm2022/cmat-services-export-as.mjs +3 -3
- package/fesm2022/cmat-services-loading.mjs +14 -14
- package/fesm2022/cmat-services-loading.mjs.map +1 -1
- package/fesm2022/cmat-services-local-storage.mjs +3 -3
- package/fesm2022/cmat-services-media-watcher.mjs +10 -10
- package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
- package/fesm2022/cmat-services-platform.mjs +8 -8
- package/fesm2022/cmat-services-platform.mjs.map +1 -1
- package/fesm2022/cmat-services-splash-screen.mjs +9 -13
- package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
- package/fesm2022/cmat-services-title.mjs +10 -11
- package/fesm2022/cmat-services-title.mjs.map +1 -1
- package/fesm2022/cmat-services-translation.mjs +8 -8
- package/fesm2022/cmat-services-translation.mjs.map +1 -1
- package/fesm2022/cmat-services-utils.mjs +3 -3
- package/lib/mock-api/index.d.ts +0 -1
- package/package.json +17 -17
- package/pipes/secure/index.d.ts +2 -4
- package/services/config/index.d.ts +1 -1
- package/services/confirmation/index.d.ts +2 -4
- package/services/data/index.d.ts +1 -3
- package/services/loading/index.d.ts +3 -4
- package/services/media-watcher/index.d.ts +2 -3
- package/services/platform/index.d.ts +2 -3
- package/services/splash-screen/index.d.ts +1 -2
- package/services/title/index.d.ts +3 -5
- package/services/translation/index.d.ts +1 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-carousel.mjs","sources":["../../../projects/cmat/components/carousel/carousel.component.ts","../../../projects/cmat/components/carousel/carousel.component.html","../../../projects/cmat/components/carousel/cmat-components-carousel.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\r\nimport {\r\n AfterContentChecked,\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n PLATFORM_ID,\r\n QueryList,\r\n Renderer2,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation,\r\n booleanAttribute,\r\n numberAttribute,\r\n DOCUMENT\r\n} from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CmatArrowCursorDirective } from 'cmat/directives/arrow-cursor';\r\nimport { CmatCarouselPageEvent, CmatCarouselResponsiveOptions } from './carousel.interface';\r\n\r\n@Component({\r\n selector: 'cmat-carousel-header',\r\n template: '<ng-content></ng-content>'\r\n})\r\nexport class CmatCarouselHeaderComponent { }\r\n\r\n@Component({\r\n selector: 'cmat-carousel-footer',\r\n template: '<ng-content></ng-content>'\r\n})\r\nexport class CmatCarouselFooterComponent { }\r\n\r\n@Directive({\r\n selector: '[cmatCarouselTemplate]'\r\n})\r\nexport class CmatCarouselTemplateDirective {\r\n @Input() type: string | undefined;\r\n\r\n @Input('cmatCarouselTemplate') name: string | undefined;\r\n\r\n constructor(public template: TemplateRef<any>) { }\r\n\r\n getType(): string {\r\n return this.name!;\r\n }\r\n}\r\n\r\nlet NEXT_ID = 0;\r\n\r\n@Component({\r\n selector: 'cmat-carousel',\r\n templateUrl: './carousel.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: ['./carousel.component.scss'],\r\n imports: [MatIconModule, MatButtonModule, CmatArrowCursorDirective,CommonModule]\r\n})\r\nexport class CmatCarouselComponent implements AfterContentInit, OnChanges, AfterContentChecked, OnDestroy {\r\n @Input() get page(): number {\r\n return this._page;\r\n }\r\n set page(val: number) {\r\n if (this.isCreated && val !== this._page) {\r\n if (this.autoplayInterval) {\r\n this._stopAutoplay();\r\n }\r\n\r\n if (val > this._page && val <= this.totalDots() - 1) {\r\n this._step(-1, val);\r\n } else if (val < this._page) {\r\n this._step(1, val);\r\n }\r\n }\r\n\r\n this._page = val ?? 0;\r\n }\r\n\r\n @Input() get numVisible(): number {\r\n return this._numVisible;\r\n }\r\n set numVisible(val: number) {\r\n this._numVisible = val;\r\n }\r\n\r\n @Input() get numScroll(): number {\r\n return this._numVisible;\r\n }\r\n set numScroll(val: number) {\r\n this._numScroll = val;\r\n }\r\n\r\n\r\n @Input() responsiveOptions: CmatCarouselResponsiveOptions[] | undefined;\r\n\r\n @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\r\n\r\n @Input() navigatorsType: 'normal' | 'arrow' = 'normal';\r\n\r\n @Input() verticalViewPortHeight: string = '300px';\r\n\r\n @Input() arrowSelector='.carousel-arrow-cursor';\r\n\r\n @Input() contentClass: string = '';\r\n\r\n @Input() indicatorsContentClass: string = '';\r\n\r\n @Input() indicatorsContentStyle: Record<string, any> | null | undefined;\r\n\r\n @Input() indicatorStyleClass: string = '';\r\n\r\n @Input() indicatorStyle: Record<string, any> | null | undefined;\r\n\r\n @Input() get data(): any[] {\r\n return this._data!;\r\n }\r\n set data(val) {\r\n this._data = val;\r\n }\r\n\r\n @Input({ transform: booleanAttribute }) circular: boolean = false;\r\n\r\n @Input({ transform: booleanAttribute }) showIndicators: boolean = true;\r\n\r\n @Input({ transform: booleanAttribute }) showNavigators: boolean = true;\r\n\r\n @Input({ transform: numberAttribute }) autoplayInterval: number = 0;\r\n\r\n @Input() style: Record<string, any> | null | undefined;\r\n\r\n @Input() styleClass: string = '';\r\n\r\n @Output() pageEvent: EventEmitter<CmatCarouselPageEvent> = new EventEmitter<CmatCarouselPageEvent>();\r\n\r\n @ViewChild('itemsContainer') itemsContainer: ElementRef | undefined;\r\n\r\n @ViewChild('indicatorContent') indicatorContent: ElementRef | undefined;\r\n\r\n @ContentChild(CmatCarouselHeaderComponent) headerFacet: QueryList<CmatCarouselHeaderComponent> | undefined;\r\n\r\n @ContentChild(CmatCarouselFooterComponent) footerFacet: QueryList<CmatCarouselFooterComponent> | undefined;\r\n\r\n @ContentChildren(CmatCarouselTemplateDirective) templates: QueryList<CmatCarouselTemplateDirective> | undefined;\r\n\r\n prevState: any = {\r\n numScroll: 0,\r\n numVisible: 0,\r\n value: []\r\n };\r\n\r\n defaultNumScroll: number = 1;\r\n\r\n defaultNumVisible: number = 1;\r\n\r\n carouselStyle: any;\r\n\r\n id: string | undefined;\r\n\r\n totalShiftedItems;\r\n\r\n isRemainingItemsAdded: boolean = false;\r\n\r\n animationTimeout: any;\r\n\r\n translateTimeout: any;\r\n\r\n remainingItems: number = 0;\r\n\r\n startPos: any;\r\n\r\n documentResizeListener: any;\r\n\r\n clonedItemsForStarting: any[] | undefined;\r\n\r\n clonedItemsForFinishing: any[] | undefined;\r\n\r\n allowAutoplay: boolean | undefined;\r\n\r\n interval: any;\r\n\r\n isCreated: boolean | undefined;\r\n\r\n swipeThreshold: number = 20;\r\n\r\n itemTemplate: TemplateRef<any> | null;\r\n\r\n headerTemplate: TemplateRef<any> | null;\r\n\r\n footerTemplate: TemplateRef<any> | null;\r\n\r\n previousIconTemplate: TemplateRef<any> | null;\r\n\r\n nextIconTemplate: TemplateRef<any> | null;\r\n\r\n window: Window;\r\n\r\n private _numVisible: number = 1;\r\n\r\n private _numScroll: number = 1;\r\n\r\n private _oldNumScroll: number = 0;\r\n\r\n private _page: number = 0;\r\n\r\n private _data: any[] | null | undefined;\r\n\r\n constructor(\r\n public el: ElementRef,\r\n public zone: NgZone,\r\n public cd: ChangeDetectorRef,\r\n private renderer: Renderer2,\r\n @Inject(DOCUMENT) private _document: Document,\r\n @Inject(PLATFORM_ID) private _platformId: any\r\n ) {\r\n this.totalShiftedItems = this.page * this.numScroll * -1;\r\n this.window = this._document.defaultView as Window;\r\n }\r\n\r\n ngOnChanges(simpleChange: SimpleChanges): void {\r\n if (isPlatformBrowser(this._platformId)) {\r\n if (simpleChange.data) {\r\n if (this.circular && this._data) {\r\n this._setCloneItems();\r\n }\r\n }\r\n\r\n if (this.isCreated) {\r\n if (simpleChange.numVisible) {\r\n if (this.responsiveOptions) {\r\n this.defaultNumVisible = this.numVisible;\r\n }\r\n\r\n if (this.isCircular()) {\r\n this._setCloneItems();\r\n }\r\n\r\n this._createStyle();\r\n this._calculatePosition();\r\n }\r\n\r\n if (simpleChange.numScroll) {\r\n if (this.responsiveOptions) {\r\n this.defaultNumScroll = this.numScroll;\r\n }\r\n }\r\n\r\n if(simpleChange.autoplayInterval){\r\n this.allowAutoplay = !!this.autoplayInterval;\r\n }\r\n }\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.id = `cmat-carousel-${NEXT_ID++}`\r\n if (isPlatformBrowser(this._platformId)) {\r\n this.allowAutoplay = !!this.autoplayInterval;\r\n\r\n if (this.circular) {\r\n this._setCloneItems();\r\n }\r\n\r\n if (this.responsiveOptions) {\r\n this.defaultNumScroll = this._numScroll;\r\n this.defaultNumVisible = this._numVisible;\r\n }\r\n\r\n this._createStyle();\r\n this._calculatePosition();\r\n\r\n if (this.responsiveOptions) {\r\n this._bindDocumentListeners();\r\n }\r\n }\r\n\r\n this.templates?.forEach((item) => {\r\n switch (item.getType()) {\r\n case 'item':\r\n this.itemTemplate = item.template;\r\n break;\r\n\r\n case 'header':\r\n this.headerTemplate = item.template;\r\n break;\r\n\r\n case 'footer':\r\n this.footerTemplate = item.template;\r\n break;\r\n\r\n case 'previousicon':\r\n this.previousIconTemplate = item.template;\r\n break;\r\n\r\n case 'nexticon':\r\n this.nextIconTemplate = item.template;\r\n break;\r\n\r\n default:\r\n this.itemTemplate = item.template;\r\n break;\r\n }\r\n });\r\n\r\n this.cd.detectChanges();\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n if (isPlatformBrowser(this._platformId)) {\r\n const isCircular = this.isCircular();\r\n let totalShiftedItems = this.totalShiftedItems;\r\n\r\n if (this.data && this.itemsContainer && (this.prevState.numScroll !== this._numScroll || this.prevState.numVisible !== this._numVisible || this.prevState.value.length !== this.data.length)) {\r\n if (this.autoplayInterval) {\r\n this._stopAutoplay(false);\r\n }\r\n\r\n this.remainingItems = (this.data.length - this._numVisible) % this._numScroll;\r\n\r\n let page = this._page;\r\n if (this.totalDots() !== 0 && page >= this.totalDots()) {\r\n page = this.totalDots() - 1;\r\n this._page = page;\r\n this.pageEvent.emit({\r\n page: this.page\r\n });\r\n }\r\n\r\n totalShiftedItems = page * this._numScroll * -1;\r\n if (isCircular) {\r\n totalShiftedItems -= this._numVisible;\r\n }\r\n\r\n if (page === this.totalDots() - 1 && this.remainingItems > 0) {\r\n totalShiftedItems += -1 * this.remainingItems + this._numScroll;\r\n this.isRemainingItemsAdded = true;\r\n } else {\r\n this.isRemainingItemsAdded = false;\r\n }\r\n\r\n if (totalShiftedItems !== this.totalShiftedItems) {\r\n this.totalShiftedItems = totalShiftedItems;\r\n }\r\n\r\n this._oldNumScroll = this._numScroll;\r\n this.prevState.numScroll = this._numScroll;\r\n this.prevState.numVisible = this._numVisible;\r\n this.prevState.value = [...(this._data!)];\r\n\r\n if (this.totalDots() > 0 && this.itemsContainer.nativeElement) {\r\n this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\r\n }\r\n\r\n this.isCreated = true;\r\n\r\n if (this.autoplayInterval && this.isAutoplay()) {\r\n this._startAutoplay();\r\n }\r\n }\r\n\r\n if (isCircular) {\r\n if (this.page === 0) {\r\n totalShiftedItems = -1 * this._numVisible;\r\n } else if (totalShiftedItems === 0) {\r\n totalShiftedItems = -1 * this.data.length;\r\n if (this.remainingItems > 0) {\r\n this.isRemainingItemsAdded = true;\r\n }\r\n }\r\n\r\n if (totalShiftedItems !== this.totalShiftedItems) {\r\n this.totalShiftedItems = totalShiftedItems;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.responsiveOptions) {\r\n this._unbindDocumentListeners();\r\n }\r\n if (this.autoplayInterval) {\r\n this._stopAutoplay();\r\n }\r\n }\r\n\r\n\r\n firstIndex(): number {\r\n return this.isCircular() ? -1 * (this.totalShiftedItems + this.numVisible) : this.totalShiftedItems * -1;\r\n }\r\n\r\n lastIndex(): number {\r\n return this.firstIndex() + this.numVisible - 1;\r\n }\r\n\r\n totalDots(): number {\r\n if (this._numVisible > 0 && this._numScroll > 0)\r\n return this.data?.length ? Math.ceil((this.data.length - this._numVisible) / this._numScroll) + 1 : 0;\r\n\r\n return 0;\r\n }\r\n\r\n totalDotsArray(): number[] {\r\n const totalDots = this.totalDots();\r\n return totalDots <= 0 ? [] : Array(totalDots).fill(0);\r\n }\r\n\r\n isVertical(): boolean {\r\n return this.orientation === 'vertical';\r\n }\r\n\r\n isCircular(): boolean {\r\n return this.circular && this.data && this.data.length >= this.numVisible;\r\n }\r\n\r\n isAutoplay(): boolean | undefined {\r\n if (this.autoplayInterval) {\r\n return this.allowAutoplay;\r\n }\r\n return false;\r\n }\r\n\r\n isForwardNavDisabled(): boolean {\r\n return this.isEmpty() || (this._page >= this.totalDots() - 1 && !this.isCircular());\r\n }\r\n\r\n isBackwardNavDisabled(): boolean {\r\n return this.isEmpty() || (this._page <= 0 && !this.isCircular());\r\n }\r\n\r\n isEmpty(): boolean {\r\n return !this.data || this.data.length === 0;\r\n }\r\n\r\n navForward(e: MouseEvent | TouchEvent | null, index?: number): void {\r\n if (this.isCircular() || this._page < this.totalDots() - 1) {\r\n this._step(-1, index);\r\n }\r\n\r\n if (this.autoplayInterval) {\r\n this._stopAutoplay();\r\n }\r\n\r\n if (e?.cancelable) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n navBackward(e: MouseEvent | TouchEvent | null, index?: number): void {\r\n if (this.isCircular() || this._page !== 0) {\r\n this._step(1, index);\r\n }\r\n\r\n if (this.autoplayInterval) {\r\n this._stopAutoplay();\r\n }\r\n\r\n if (e?.cancelable) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n onDotClick(e: MouseEvent, index: number): void {\r\n let page = this._page;\r\n\r\n if (this.autoplayInterval) {\r\n this._stopAutoplay();\r\n }\r\n\r\n if (index > page) {\r\n this.navForward(e, index);\r\n } else if (index < page) {\r\n this.navBackward(e, index);\r\n }\r\n }\r\n\r\n onIndicatorKeydown(event: KeyboardEvent): void {\r\n switch (event.code) {\r\n case 'ArrowRight':\r\n this._onRightKey();\r\n break;\r\n\r\n case 'ArrowLeft':\r\n this._onLeftKey();\r\n break;\r\n case 'Home': {\r\n this._onHomeKey();\r\n break;\r\n }\r\n case 'End': {\r\n this._onEndKey();\r\n break;\r\n }\r\n case 'Tab': {\r\n this._onTabKey();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n isPlaying(): boolean {\r\n return !!this.interval;\r\n }\r\n\r\n onTransitionEnd(): void {\r\n if (this.itemsContainer) {\r\n this.itemsContainer.nativeElement.style.transition = '';\r\n\r\n if ((this.page === 0 || this.page === this.totalDots() - 1) && this.isCircular()) {\r\n this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${this.totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${this.totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\r\n }\r\n }\r\n }\r\n\r\n onTouchStart(e: TouchEvent): void {\r\n let touchobj = e.changedTouches[0];\r\n\r\n this.startPos = {\r\n x: touchobj.pageX,\r\n y: touchobj.pageY\r\n };\r\n }\r\n\r\n onTouchMove(e: TouchEvent | MouseEvent): void {\r\n if (e.cancelable) {\r\n e.preventDefault();\r\n }\r\n }\r\n onTouchEnd(e: TouchEvent): void {\r\n let touchobj = e.changedTouches[0];\r\n\r\n if (this.isVertical()) {\r\n this._changePageOnTouch(e, touchobj.pageY - this.startPos.y);\r\n } else {\r\n this._changePageOnTouch(e, touchobj.pageX - this.startPos.x);\r\n }\r\n }\r\n\r\n arrowCursorClick(cursorSide: string | null): void {\r\n switch (cursorSide) {\r\n case 'left':\r\n case 'up':\r\n this.navBackward(null);\r\n break;\r\n case 'right':\r\n case 'down':\r\n this.navForward(null);\r\n break;\r\n }\r\n }\r\n\r\n private _changePageOnTouch(e: TouchEvent | MouseEvent, diff: number): void {\r\n if (Math.abs(diff) > this.swipeThreshold) {\r\n if (diff < 0) {\r\n this.navForward(e);\r\n } else {\r\n this.navBackward(e);\r\n }\r\n }\r\n }\r\n\r\n private _bindDocumentListeners(): void {\r\n if (isPlatformBrowser(this._platformId)) {\r\n this.documentResizeListener ??= this.renderer.listen(this.window, 'resize', () => {\r\n this._calculatePosition();\r\n });\r\n }\r\n }\r\n\r\n private _unbindDocumentListeners(): void {\r\n if (isPlatformBrowser(this._platformId)) {\r\n if (this.documentResizeListener) {\r\n this.documentResizeListener();\r\n this.documentResizeListener = null;\r\n }\r\n }\r\n }\r\n\r\n private _onRightKey(): void {\r\n const indicators = [...Array.from(this.indicatorContent?.nativeElement.querySelectorAll('[data-pc-section=\"indicator\"]'))];\r\n const activeIndex = this._findFocusedIndicatorIndex();\r\n\r\n this._changedFocusedIndicator(activeIndex, activeIndex + 1 === indicators.length ? indicators.length - 1 : activeIndex + 1);\r\n }\r\n\r\n private _onLeftKey(): void {\r\n const activeIndex = this._findFocusedIndicatorIndex();\r\n\r\n this._changedFocusedIndicator(activeIndex, activeIndex - 1 <= 0 ? 0 : activeIndex - 1);\r\n }\r\n private _onHomeKey(): void {\r\n const activeIndex = this._findFocusedIndicatorIndex();\r\n\r\n this._changedFocusedIndicator(activeIndex, 0);\r\n }\r\n\r\n private _onEndKey(): void {\r\n const indicators = [...Array.from(this.indicatorContent?.nativeElement.querySelectorAll('[data-pc-section=\"indicator\"]'))];\r\n const activeIndex = this._findFocusedIndicatorIndex();\r\n\r\n this._changedFocusedIndicator(activeIndex, indicators.length - 1);\r\n }\r\n\r\n private _onTabKey(): void {\r\n const indicators = [...Array.from(this.indicatorContent?.nativeElement.querySelectorAll('[data-pc-section=\"indicator\"]'))] as any[];\r\n const highlightedIndex = indicators.findIndex(ind => ind.getAttribute('cmat-carousel-highlight') != undefined);\r\n\r\n const activeIndicator = this.indicatorContent?.nativeElement ? this.indicatorContent?.nativeElement.querySelector('[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]') : null;\r\n const activeIndex = indicators.findIndex(ind => ind === activeIndicator.parentElement);\r\n\r\n indicators[activeIndex].children[0].tabIndex = '-1';\r\n indicators[highlightedIndex].children[0].tabIndex = '0';\r\n }\r\n\r\n private _changedFocusedIndicator(prevInd: number, nextInd: number): void {\r\n const indicators = [...Array.from(this.indicatorContent?.nativeElement.querySelectorAll('[data-pc-section=\"indicator\"]'))] as any[];\r\n\r\n indicators[prevInd].children[0].tabIndex = '-1';\r\n indicators[nextInd].children[0].tabIndex = '0';\r\n indicators[nextInd].children[0].focus();\r\n }\r\n\r\n private _step(dir: number, page?: number): void {\r\n let totalShiftedItems = this.totalShiftedItems;\r\n const isCircular = this.isCircular();\r\n\r\n if (page != null) {\r\n totalShiftedItems = this._numScroll * page * -1;\r\n\r\n if (isCircular) {\r\n totalShiftedItems -= this._numVisible;\r\n }\r\n\r\n this.isRemainingItemsAdded = false;\r\n } else {\r\n totalShiftedItems += this._numScroll * dir;\r\n if (this.isRemainingItemsAdded) {\r\n totalShiftedItems += this.remainingItems - this._numScroll * dir;\r\n this.isRemainingItemsAdded = false;\r\n }\r\n\r\n let originalShiftedItems = isCircular ? totalShiftedItems + this._numVisible : totalShiftedItems;\r\n page = Math.abs(Math.floor(originalShiftedItems / this._numScroll));\r\n }\r\n\r\n if (isCircular && this.page === this.totalDots() - 1 && dir === -1) {\r\n totalShiftedItems = -1 * (this.data.length + this._numVisible);\r\n page = 0;\r\n } else if (isCircular && this.page === 0 && dir === 1) {\r\n totalShiftedItems = 0;\r\n page = this.totalDots() - 1;\r\n } else if (page === this.totalDots() - 1 && this.remainingItems > 0) {\r\n totalShiftedItems += this.remainingItems * -1 - this._numScroll * dir;\r\n this.isRemainingItemsAdded = true;\r\n }\r\n\r\n if (this.itemsContainer) {\r\n this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\r\n this.itemsContainer.nativeElement.style.transition = 'transform 500ms ease 0s';\r\n }\r\n\r\n this.totalShiftedItems = totalShiftedItems;\r\n this._page = page;\r\n this.pageEvent.emit({\r\n page: this.page\r\n });\r\n this.cd.markForCheck();\r\n this._updateCarouselItemsAccessibility();\r\n }\r\n\r\n private _startAutoplay(): void {\r\n this.interval = setInterval(() => {\r\n if (this.totalDots() > 0) {\r\n if (this.page === this.totalDots() - 1) {\r\n this._step(-1, 0);\r\n } else {\r\n this._step(-1, this.page + 1);\r\n }\r\n }\r\n }, this.autoplayInterval);\r\n this.allowAutoplay = true;\r\n this.cd.markForCheck();\r\n }\r\n\r\n private _stopAutoplay(changeAllow: boolean = true): void {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n this.interval = undefined;\r\n if (changeAllow) {\r\n this.allowAutoplay = false;\r\n }\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n private _findFocusedIndicatorIndex(): number {\r\n const indicators = [...Array.from(this.indicatorContent?.nativeElement.querySelectorAll('[data-pc-section=\"indicator\"]'))];\r\n const activeIndicator = this.indicatorContent?.nativeElement ? this.indicatorContent?.nativeElement.querySelector('[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]') : null;\r\n\r\n return indicators.findIndex(ind => ind === activeIndicator.parentElement);\r\n }\r\n\r\n private _createStyle(): void {\r\n if (!this.carouselStyle) {\r\n this.carouselStyle = this.renderer.createElement('style');\r\n this.carouselStyle.type = 'text/css';\r\n\r\n this.renderer.appendChild(this._document.head, this.carouselStyle);\r\n }\r\n\r\n let innerHTML = `\r\n #${this.id} .cmat-carousel-item {\r\n\t\t\t\tflex: 1 0 ${100 / this.numVisible}%\r\n\t\t\t}\r\n `;\r\n\r\n if (this.responsiveOptions) {\r\n this.responsiveOptions.sort((data1, data2) => {\r\n const value1 = data1.breakpoint;\r\n const value2 = data2.breakpoint;\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null) result = -1;\r\n else if (value1 != null && value2 == null) result = 1;\r\n else if (value1 == null && value2 == null) result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, { numeric: true });\r\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\r\n\r\n return -1 * result;\r\n });\r\n\r\n for (const res of this.responsiveOptions) {\r\n innerHTML += `\r\n @media screen and (max-width: ${res.breakpoint}) {\r\n #${this.id} .cmat-carousel-item {\r\n flex: 1 0 ${100 / res.numVisible}%\r\n }\r\n }\r\n `;\r\n }\r\n }\r\n\r\n this.carouselStyle.innerHTML = innerHTML;\r\n }\r\n\r\n private _calculatePosition(): void {\r\n if (this.responsiveOptions) {\r\n let matchedResponsiveData = {\r\n numVisible: this.defaultNumVisible,\r\n numScroll: this.defaultNumScroll\r\n };\r\n\r\n if (typeof window !== 'undefined') {\r\n let windowWidth = window.innerWidth;\r\n for (const res of this.responsiveOptions) {\r\n if (parseInt(res.breakpoint, 10) >= windowWidth) {\r\n matchedResponsiveData = res;\r\n }\r\n }\r\n }\r\n\r\n if (this._numScroll !== matchedResponsiveData.numScroll) {\r\n let page = this._page;\r\n page = Math.floor((page * this._numScroll) / matchedResponsiveData.numScroll);\r\n\r\n let totalShiftedItems = matchedResponsiveData.numScroll * this.page * -1;\r\n\r\n if (this.isCircular()) {\r\n totalShiftedItems -= matchedResponsiveData.numVisible;\r\n }\r\n\r\n this.totalShiftedItems = totalShiftedItems;\r\n this._numScroll = matchedResponsiveData.numScroll;\r\n\r\n this._page = page;\r\n this.pageEvent.emit({\r\n page: this.page\r\n });\r\n }\r\n\r\n if (this._numVisible !== matchedResponsiveData.numVisible) {\r\n this._numVisible = matchedResponsiveData.numVisible;\r\n this._setCloneItems();\r\n }\r\n\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n\r\n private _updateSlideAccessibility(slide: HTMLElement, isActive: boolean): void {\r\n const focusableElements = slide.querySelectorAll<HTMLElement>('a, button, input, select, textarea, [tabindex]');\r\n focusableElements.forEach((element) => {\r\n element.tabIndex = isActive ? 0 : -1;\r\n });\r\n }\r\n\r\n private _updateCarouselItemsAccessibility(): void {\r\n const slides = this.el.nativeElement.querySelectorAll('.cmat-carousel-item');\r\n slides.forEach((slide: HTMLElement, index: number) => {\r\n const isActive = index === this._page;\r\n slide.setAttribute('aria-hidden', !isActive ? 'true' : 'false');\r\n this._updateSlideAccessibility(slide, isActive);\r\n });\r\n }\r\n\r\n private _setCloneItems(): void {\r\n this.clonedItemsForStarting = [];\r\n this.clonedItemsForFinishing = [];\r\n if (this.isCircular()) {\r\n this.clonedItemsForStarting.push(...this.data.slice(-1 * this._numVisible));\r\n this.clonedItemsForFinishing.push(...this.data.slice(0, this._numVisible));\r\n }\r\n }\r\n}\r\n","<div role=\"region\" [attr.id]=\"id\"\r\n [ngClass]=\"{ 'cmat-carousel': true, 'cmat-carousel-vertical': isVertical(), 'cmat-carousel-horizontal': !isVertical() }\"\r\n [ngStyle]=\"style\" [class]=\"styleClass\">\r\n\r\n @if(headerFacet || headerTemplate){\r\n <div class=\"cmat-carousel-header\">\r\n <ng-content select=\"cmat-carousel-header\"></ng-content>\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n <div [class]=\"contentClass\" [ngClass]=\"'items-center cmat-carousel-content'\">\r\n <div class=\"cmat-carousel-container\" cmatArrowCursor [orientation]=\"orientation\" [selector]=\"arrowSelector\"\r\n [enabled]=\"navigatorsType==='arrow'\" [attr.aria-live]=\"allowAutoplay ? 'polite' : 'off'\"\r\n (clickEvent)=\"arrowCursorClick($event)\">\r\n @if(showNavigators&&navigatorsType==='normal'){\r\n <button type=\"button\" mat-icon-button [ngClass]=\"{ 'cmat-carousel-prev': true }\"\r\n [disabled]=\"isBackwardNavDisabled()\" (click)=\"navBackward($event)\">\r\n @if(!previousIconTemplate){\r\n @if(!isVertical()){\r\n <mat-icon [svgIcon]=\"'heroicons_solid:chevron-left'\"></mat-icon>\r\n }@else {\r\n <mat-icon [svgIcon]=\"'heroicons_solid:chevron-up'\"></mat-icon>\r\n }\r\n }\r\n @else {\r\n <span class=\"cmat-carousel-prev-icon\">\r\n <ng-template *ngTemplateOutlet=\"previousIconTemplate\"></ng-template>\r\n </span>\r\n }\r\n </button>\r\n }\r\n\r\n <div class=\"cmat-carousel-items-content\"\r\n [ngStyle]=\"{ height: isVertical() ? verticalViewPortHeight : 'auto' }\" (touchend)=\"onTouchEnd($event)\"\r\n (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\">\r\n <div #itemsContainer class=\"cmat-carousel-items-container\" (transitionend)=\"onTransitionEnd()\">\r\n @for (item of clonedItemsForStarting; track $index) {\r\n <div [ngClass]=\"{\r\n 'cmat-carousel-item cmat-carousel-item-cloned': true,\r\n 'cmat-carousel-item-active': totalShiftedItems * -1 === data.length,\r\n 'cmat-carousel-item-start': 0 === $index,\r\n 'cmat-carousel-item-end': clonedItemsForStarting?.length??0 - 1 === $index\r\n }\" [attr.aria-hidden]=\"!(totalShiftedItems * -1 === data.length)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n }\r\n\r\n @for (item of data; track $index) {\r\n <div [ngClass]=\"{ 'cmat-carousel-item': true, 'cmat-carousel-item-active': firstIndex() <= $index && lastIndex() >= $index, 'cmat-carousel-item-start': firstIndex() === $index, 'cmat-carousel-item-end': lastIndex() === $index }\"\r\n [attr.aria-hidden]=\"!(totalShiftedItems * -1 === data.length)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n }\r\n\r\n @for (item of clonedItemsForFinishing; track $index) {\r\n <div [ngClass]=\"{\r\n 'cmat-carousel-item cmat-carousel-item-cloned': true,\r\n 'cmat-carousel-item-active': totalShiftedItems * -1 === numVisible,\r\n 'cmat-carousel-item-start': 0 === $index,\r\n 'cmat-carousel-item-end': clonedItemsForFinishing?.length??0 - 1 === $index\r\n }\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n }\r\n\r\n </div>\r\n </div>\r\n\r\n @if(showNavigators&&navigatorsType==='normal'){\r\n <button type=\"button\" mat-icon-button [ngClass]=\"{ 'cmat-carousel-next': true}\"\r\n [disabled]=\"isForwardNavDisabled()\" (click)=\"navForward($event)\">\r\n @if(!nextIconTemplate){\r\n @if(!isVertical()){\r\n <mat-icon [svgIcon]=\"'heroicons_solid:chevron-right'\"></mat-icon>\r\n }@else {\r\n <mat-icon [svgIcon]=\"'heroicons_solid:chevron-down'\"></mat-icon>\r\n }\r\n }\r\n @else{\r\n <span class=\"cmat-carousel-prev-icon\">\r\n <ng-template *ngTemplateOutlet=\"nextIconTemplate\"></ng-template>\r\n </span>\r\n }\r\n </button>\r\n }\r\n\r\n </div>\r\n @if(showIndicators){\r\n <ul #indicatorContent role=\"presentation\" [ngClass]=\"'cmat-carousel-indicators'\"\r\n [class]=\"indicatorsContentClass\" [ngStyle]=\"indicatorsContentStyle\" (keydown)=\"onIndicatorKeydown($event)\">\r\n @for (totalDot of totalDotsArray(); track $index) {\r\n <li [ngClass]=\"{ 'cmat-carousel-indicator': true, 'cmat-carousel-indicator-active': page === $index }\"\r\n [attr.data-pc-section]=\"'indicator'\">\r\n <button type=\"button\" [ngClass]=\"'cmat-carousel-indicator-button'\" [class]=\"indicatorStyleClass\"\r\n [ngStyle]=\"indicatorStyle\" [attr.aria-current]=\"page === $index ? 'page' : undefined\"\r\n [tabindex]=\"page === $index ? 0 : -1\" (click)=\"onDotClick($event, $index)\">\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n\r\n </div>\r\n @if(footerFacet || footerTemplate){\r\n <div class=\"cmat-carousel-footer\">\r\n <ng-content select=\"cmat-carousel-footer\"></ng-content>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n }\r\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmat-components-carousel.mjs","sources":["../../../projects/cmat/components/carousel/carousel.component.ts","../../../projects/cmat/components/carousel/carousel.component.html","../../../projects/cmat/components/carousel/cmat-components-carousel.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { CommonModule } from '@angular/common';\r\nimport { AfterContentChecked, AfterContentInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, Directive, ElementRef, EventEmitter, Input, NgZone, OnChanges, OnDestroy, Output, QueryList, Renderer2, SimpleChanges, TemplateRef, ViewChild, ViewEncapsulation, booleanAttribute, numberAttribute, DOCUMENT, inject } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CmatArrowCursorDirective } from 'cmat/directives/arrow-cursor';\r\nimport { CmatCarouselPageEvent, CmatCarouselResponsiveOptions } from './carousel.interface';\r\n\r\n@Component({\r\n selector: 'cmat-carousel-header',\r\n template: '<ng-content></ng-content>'\r\n})\r\nexport class CmatCarouselHeaderComponent { }\r\n\r\n@Component({\r\n selector: 'cmat-carousel-footer',\r\n template: '<ng-content></ng-content>'\r\n})\r\nexport class CmatCarouselFooterComponent { }\r\n\r\n@Directive({\r\n selector: '[cmatCarouselTemplate]'\r\n})\r\nexport class CmatCarouselTemplateDirective {\r\n template = inject<TemplateRef<any>>(TemplateRef);\r\n\r\n @Input() type: string | undefined;\r\n\r\n @Input('cmatCarouselTemplate') name: string | undefined;\r\n\r\n getType(): string {\r\n return this.name!;\r\n }\r\n}\r\n\r\nlet NEXT_ID = 0;\r\n\r\n@Component({\r\n selector: 'cmat-carousel',\r\n templateUrl: './carousel.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: ['./carousel.component.scss'],\r\n imports: [MatIconModule, MatButtonModule, CmatArrowCursorDirective, CommonModule]\r\n})\r\nexport class CmatCarouselComponent implements AfterContentInit, OnChanges, AfterContentChecked, OnDestroy {\r\n el = inject(ElementRef);\r\n zone = inject(NgZone);\r\n cd = inject(ChangeDetectorRef);\r\n private renderer = inject(Renderer2);\r\n private _document = inject<Document>(DOCUMENT);\r\n\r\n @Input() get page(): number {\r\n return this._page;\r\n }\r\n set page(val: number) {\r\n if (this.isCreated && val !== this._page) {\r\n if (this.autoplayInterval) {\r\n this._stopAutoplay();\r\n }\r\n\r\n if (val > this._page && val <= this.totalDots() - 1) {\r\n this._step(-1, val);\r\n } else if (val < this._page) {\r\n this._step(1, val);\r\n }\r\n }\r\n\r\n this._page = val ?? 0;\r\n }\r\n\r\n @Input() get numVisible(): number {\r\n return this._numVisible;\r\n }\r\n set numVisible(val: number) {\r\n this._numVisible = val;\r\n }\r\n\r\n @Input() get numScroll(): number {\r\n return this._numVisible;\r\n }\r\n set numScroll(val: number) {\r\n this._numScroll = val;\r\n }\r\n\r\n\r\n @Input() responsiveOptions: CmatCarouselResponsiveOptions[] | undefined;\r\n\r\n @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\r\n\r\n @Input() navigatorsType: 'normal' | 'arrow' = 'normal';\r\n\r\n @Input() verticalViewPortHeight: string = '300px';\r\n\r\n @Input() arrowSelector = '.carousel-arrow-cursor';\r\n\r\n @Input() contentClass: string = '';\r\n\r\n @Input() indicatorsContentClass: string = '';\r\n\r\n @Input() indicatorsContentStyle: Record<string, any> | null | undefined;\r\n\r\n @Input() indicatorStyleClass: string = '';\r\n\r\n @Input() indicatorStyle: Record<string, any> | null | undefined;\r\n\r\n @Input() get data(): any[] {\r\n return this._data!;\r\n }\r\n set data(val) {\r\n this._data = val;\r\n }\r\n\r\n @Input({ transform: booleanAttribute }) circular: boolean = false;\r\n\r\n @Input({ transform: booleanAttribute }) showIndicators: boolean = true;\r\n\r\n @Input({ transform: booleanAttribute }) showNavigators: boolean = true;\r\n\r\n @Input({ transform: numberAttribute }) autoplayInterval: number = 0;\r\n\r\n @Input() style: Record<string, any> | null | undefined;\r\n\r\n @Input() styleClass: string = '';\r\n\r\n @Output() pageEvent: EventEmitter<CmatCarouselPageEvent> = new EventEmitter<CmatCarouselPageEvent>();\r\n\r\n @ViewChild('itemsContainer') itemsContainer: ElementRef | undefined;\r\n\r\n @ViewChild('indicatorContent') indicatorContent: ElementRef | undefined;\r\n\r\n @ContentChild(CmatCarouselHeaderComponent) headerFacet: QueryList<CmatCarouselHeaderComponent> | undefined;\r\n\r\n @ContentChild(CmatCarouselFooterComponent) footerFacet: QueryList<CmatCarouselFooterComponent> | undefined;\r\n\r\n @ContentChildren(CmatCarouselTemplateDirective) templates: QueryList<CmatCarouselTemplateDirective> | undefined;\r\n\r\n prevState: any = {\r\n numScroll: 0,\r\n numVisible: 0,\r\n value: []\r\n };\r\n\r\n defaultNumScroll: number = 1;\r\n\r\n defaultNumVisible: number = 1;\r\n\r\n carouselStyle: any;\r\n\r\n id: string | undefined;\r\n\r\n totalShiftedItems;\r\n\r\n isRemainingItemsAdded: boolean = false;\r\n\r\n animationTimeout: any;\r\n\r\n translateTimeout: any;\r\n\r\n remainingItems: number = 0;\r\n\r\n startPos: any;\r\n\r\n documentResizeListener: any;\r\n\r\n clonedItemsForStarting: any[] | undefined;\r\n\r\n clonedItemsForFinishing: any[] | undefined;\r\n\r\n allowAutoplay: boolean | undefined;\r\n\r\n interval: any;\r\n\r\n isCreated: boolean | undefined;\r\n\r\n swipeThreshold: number = 20;\r\n\r\n itemTemplate: TemplateRef<any> | null;\r\n\r\n headerTemplate: TemplateRef<any> | null;\r\n\r\n footerTemplate: TemplateRef<any> | null;\r\n\r\n previousIconTemplate: TemplateRef<any> | null;\r\n\r\n nextIconTemplate: TemplateRef<any> | null;\r\n\r\n window: Window;\r\n\r\n private _numVisible: number = 1;\r\n\r\n private _numScroll: number = 1;\r\n\r\n private _oldNumScroll: number = 0;\r\n\r\n private _page: number = 0;\r\n\r\n private _data: any[] | null | undefined;\r\n\r\n \r\n\r\n constructor() {\r\n this.totalShiftedItems = this.page * this.numScroll * -1;\r\n this.window = this._document.defaultView as Window;\r\n }\r\n\r\n ngOnChanges(simpleChange: SimpleChanges): void {\r\n if (simpleChange.data) {\r\n if (this.circular && this._data) {\r\n this._setCloneItems();\r\n }\r\n }\r\n\r\n if (this.isCreated) {\r\n if (simpleChange.circular) {\r\n if (this.isCircular()) {\r\n this._setCloneItems();\r\n }\r\n }\r\n\r\n if (simpleChange.numVisible) {\r\n if (this.responsiveOptions) {\r\n this.defaultNumVisible = this.numVisible;\r\n }\r\n\r\n this._createStyle();\r\n this._calculatePosition();\r\n }\r\n\r\n if (simpleChange.numScroll) {\r\n if (this.responsiveOptions) {\r\n this.defaultNumScroll = this.numScroll;\r\n }\r\n }\r\n\r\n if (simpleChange.autoplayInterval) {\r\n this.allowAutoplay = !!this.autoplayInterval;\r\n }\r\n }\r\n\r\n this.cd.markForCheck();\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.id = `cmat-carousel-${NEXT_ID++}`\r\n\r\n this.allowAutoplay = !!this.autoplayInterval;\r\n\r\n if (this.circular) {\r\n this._setCloneItems();\r\n }\r\n\r\n if (this.responsiveOptions) {\r\n this.defaultNumScroll = this._numScroll;\r\n this.defaultNumVisible = this._numVisible;\r\n }\r\n\r\n this._createStyle();\r\n this._calculatePosition();\r\n\r\n if (this.responsiveOptions) {\r\n this._bindDocumentListeners();\r\n }\r\n\r\n\r\n this.templates?.forEach((item) => {\r\n switch (item.getType()) {\r\n case 'item':\r\n this.itemTemplate = item.template;\r\n break;\r\n\r\n case 'header':\r\n this.headerTemplate = item.template;\r\n break;\r\n\r\n case 'footer':\r\n this.footerTemplate = item.template;\r\n break;\r\n\r\n case 'previousicon':\r\n this.previousIconTemplate = item.template;\r\n break;\r\n\r\n case 'nexticon':\r\n this.nextIconTemplate = item.template;\r\n break;\r\n\r\n default:\r\n this.itemTemplate = item.template;\r\n break;\r\n }\r\n });\r\n\r\n this.cd.detectChanges();\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n\r\n const isCircular = this.isCircular();\r\n let totalShiftedItems = this.totalShiftedItems;\r\n\r\n if (this.data && this.itemsContainer && (this.prevState.numScroll !== this._numScroll || this.prevState.numVisible !== this._numVisible || this.prevState.value.length !== this.data.length)) {\r\n if (this.autoplayInterval) {\r\n this._stopAutoplay(false);\r\n }\r\n\r\n this.remainingItems = (this.data.length - this._numVisible) % this._numScroll;\r\n\r\n let page = this._page;\r\n if (this.totalDots() !== 0 && page >= this.totalDots()) {\r\n page = this.totalDots() - 1;\r\n this._page = page;\r\n this.pageEvent.emit({\r\n page: this.page\r\n });\r\n }\r\n\r\n totalShiftedItems = page * this._numScroll * -1;\r\n if (isCircular) {\r\n totalShiftedItems -= this._numVisible;\r\n }\r\n\r\n if (page === this.totalDots() - 1 && this.remainingItems > 0) {\r\n totalShiftedItems += -1 * this.remainingItems + this._numScroll;\r\n this.isRemainingItemsAdded = true;\r\n } else {\r\n this.isRemainingItemsAdded = false;\r\n }\r\n\r\n if (totalShiftedItems !== this.totalShiftedItems) {\r\n this.totalShiftedItems = totalShiftedItems;\r\n }\r\n\r\n this._oldNumScroll = this._numScroll;\r\n this.prevState.numScroll = this._numScroll;\r\n this.prevState.numVisible = this._numVisible;\r\n this.prevState.value = [...(this._data!)];\r\n\r\n if (this.totalDots() > 0 && this.itemsContainer.nativeElement) {\r\n this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\r\n }\r\n\r\n this.isCreated = true;\r\n\r\n if (this.autoplayInterval && this.isAutoplay()) {\r\n this._startAutoplay();\r\n }\r\n }\r\n\r\n if (isCircular) {\r\n if (this.page === 0) {\r\n totalShiftedItems = -1 * this._numVisible;\r\n } else if (totalShiftedItems === 0) {\r\n totalShiftedItems = -1 * this.data.length;\r\n if (this.remainingItems > 0) {\r\n this.isRemainingItemsAdded = true;\r\n }\r\n }\r\n\r\n if (totalShiftedItems !== this.totalShiftedItems) {\r\n this.totalShiftedItems = totalShiftedItems;\r\n }\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.responsiveOptions) {\r\n this._unbindDocumentListeners();\r\n }\r\n if (this.autoplayInterval) {\r\n this._stopAutoplay();\r\n }\r\n }\r\n\r\n\r\n firstIndex(): number {\r\n return this.isCircular() ? -1 * (this.totalShiftedItems + this.numVisible) : this.totalShiftedItems * -1;\r\n }\r\n\r\n lastIndex(): number {\r\n return this.firstIndex() + this.numVisible - 1;\r\n }\r\n\r\n totalDots(): number {\r\n if (this._numVisible > 0 && this._numScroll > 0)\r\n return this.data?.length ? Math.ceil((this.data.length - this._numVisible) / this._numScroll) + 1 : 0;\r\n\r\n return 0;\r\n }\r\n\r\n totalDotsArray(): number[] {\r\n const totalDots = this.totalDots();\r\n return totalDots <= 0 ? [] : Array(totalDots).fill(0);\r\n }\r\n\r\n isVertical(): boolean {\r\n return this.orientation === 'vertical';\r\n }\r\n\r\n isCircular(): boolean {\r\n return this.circular && this.data && this.data.length >= this.numVisible;\r\n }\r\n\r\n isAutoplay(): boolean | undefined {\r\n if (this.autoplayInterval) {\r\n return this.allowAutoplay;\r\n }\r\n return false;\r\n }\r\n\r\n isForwardNavDisabled(): boolean {\r\n return this.isEmpty() || (this._page >= this.totalDots() - 1 && !this.isCircular());\r\n }\r\n\r\n isBackwardNavDisabled(): boolean {\r\n return this.isEmpty() || (this._page <= 0 && !this.isCircular());\r\n }\r\n\r\n isEmpty(): boolean {\r\n return !this.data || this.data.length === 0;\r\n }\r\n\r\n navForward(e: MouseEvent | TouchEvent | null, index?: number): void {\r\n if (this.isCircular() || this._page < this.totalDots() - 1) {\r\n this._step(-1, index);\r\n }\r\n\r\n if (this.autoplayInterval) {\r\n this._stopAutoplay();\r\n }\r\n\r\n if (e?.cancelable) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n navBackward(e: MouseEvent | TouchEvent | null, index?: number): void {\r\n if (this.isCircular() || this._page !== 0) {\r\n this._step(1, index);\r\n }\r\n\r\n if (this.autoplayInterval) {\r\n this._stopAutoplay();\r\n }\r\n\r\n if (e?.cancelable) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n onDotClick(e: MouseEvent, index: number): void {\r\n let page = this._page;\r\n\r\n if (this.autoplayInterval) {\r\n this._stopAutoplay();\r\n }\r\n\r\n if (index > page) {\r\n this.navForward(e, index);\r\n } else if (index < page) {\r\n this.navBackward(e, index);\r\n }\r\n }\r\n\r\n onIndicatorKeydown(event: KeyboardEvent): void {\r\n switch (event.code) {\r\n case 'ArrowRight':\r\n this._onRightKey();\r\n break;\r\n\r\n case 'ArrowLeft':\r\n this._onLeftKey();\r\n break;\r\n case 'Home': {\r\n this._onHomeKey();\r\n break;\r\n }\r\n case 'End': {\r\n this._onEndKey();\r\n break;\r\n }\r\n case 'Tab': {\r\n this._onTabKey();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n isPlaying(): boolean {\r\n return !!this.interval;\r\n }\r\n\r\n onTransitionEnd(): void {\r\n if (this.itemsContainer) {\r\n this.itemsContainer.nativeElement.style.transition = '';\r\n\r\n if ((this.page === 0 || this.page === this.totalDots() - 1) && this.isCircular()) {\r\n this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${this.totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${this.totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\r\n }\r\n }\r\n }\r\n\r\n onTouchStart(e: TouchEvent): void {\r\n let touchobj = e.changedTouches[0];\r\n\r\n this.startPos = {\r\n x: touchobj.pageX,\r\n y: touchobj.pageY\r\n };\r\n }\r\n\r\n onTouchMove(e: TouchEvent | MouseEvent): void {\r\n if (e.cancelable) {\r\n e.preventDefault();\r\n }\r\n }\r\n onTouchEnd(e: TouchEvent): void {\r\n let touchobj = e.changedTouches[0];\r\n\r\n if (this.isVertical()) {\r\n this._changePageOnTouch(e, touchobj.pageY - this.startPos.y);\r\n } else {\r\n this._changePageOnTouch(e, touchobj.pageX - this.startPos.x);\r\n }\r\n }\r\n\r\n arrowCursorClick(cursorSide: string | null): void {\r\n switch (cursorSide) {\r\n case 'left':\r\n case 'up':\r\n this.navBackward(null);\r\n break;\r\n case 'right':\r\n case 'down':\r\n this.navForward(null);\r\n break;\r\n }\r\n }\r\n\r\n private _changePageOnTouch(e: TouchEvent | MouseEvent, diff: number): void {\r\n if (Math.abs(diff) > this.swipeThreshold) {\r\n if (diff < 0) {\r\n this.navForward(e);\r\n } else {\r\n this.navBackward(e);\r\n }\r\n }\r\n }\r\n\r\n private _bindDocumentListeners(): void {\r\n\r\n this.documentResizeListener ??= this.renderer.listen(this.window, 'resize', () => {\r\n this._calculatePosition();\r\n });\r\n\r\n }\r\n\r\n private _unbindDocumentListeners(): void {\r\n\r\n if (this.documentResizeListener) {\r\n this.documentResizeListener();\r\n this.documentResizeListener = null;\r\n }\r\n\r\n }\r\n\r\n private _onRightKey(): void {\r\n const indicators = [...Array.from(this.indicatorContent?.nativeElement.querySelectorAll('[data-pc-section=\"indicator\"]'))];\r\n const activeIndex = this._findFocusedIndicatorIndex();\r\n\r\n this._changedFocusedIndicator(activeIndex, activeIndex + 1 === indicators.length ? indicators.length - 1 : activeIndex + 1);\r\n }\r\n\r\n private _onLeftKey(): void {\r\n const activeIndex = this._findFocusedIndicatorIndex();\r\n\r\n this._changedFocusedIndicator(activeIndex, activeIndex - 1 <= 0 ? 0 : activeIndex - 1);\r\n }\r\n private _onHomeKey(): void {\r\n const activeIndex = this._findFocusedIndicatorIndex();\r\n\r\n this._changedFocusedIndicator(activeIndex, 0);\r\n }\r\n\r\n private _onEndKey(): void {\r\n const indicators = [...Array.from(this.indicatorContent?.nativeElement.querySelectorAll('[data-pc-section=\"indicator\"]'))];\r\n const activeIndex = this._findFocusedIndicatorIndex();\r\n\r\n this._changedFocusedIndicator(activeIndex, indicators.length - 1);\r\n }\r\n\r\n private _onTabKey(): void {\r\n const indicators = [...Array.from(this.indicatorContent?.nativeElement.querySelectorAll('[data-pc-section=\"indicator\"]'))] as any[];\r\n const highlightedIndex = indicators.findIndex(ind => ind.getAttribute('cmat-carousel-highlight') != undefined);\r\n\r\n const activeIndicator = this.indicatorContent?.nativeElement ? this.indicatorContent?.nativeElement.querySelector('[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]') : null;\r\n const activeIndex = indicators.findIndex(ind => ind === activeIndicator.parentElement);\r\n\r\n indicators[activeIndex].children[0].tabIndex = '-1';\r\n indicators[highlightedIndex].children[0].tabIndex = '0';\r\n }\r\n\r\n private _changedFocusedIndicator(prevInd: number, nextInd: number): void {\r\n const indicators = [...Array.from(this.indicatorContent?.nativeElement.querySelectorAll('[data-pc-section=\"indicator\"]'))] as any[];\r\n\r\n indicators[prevInd].children[0].tabIndex = '-1';\r\n indicators[nextInd].children[0].tabIndex = '0';\r\n indicators[nextInd].children[0].focus();\r\n }\r\n\r\n private _step(dir: number, page?: number): void {\r\n let totalShiftedItems = this.totalShiftedItems;\r\n const isCircular = this.isCircular();\r\n\r\n if (page != null) {\r\n totalShiftedItems = this._numScroll * page * -1;\r\n\r\n if (isCircular) {\r\n totalShiftedItems -= this._numVisible;\r\n }\r\n\r\n this.isRemainingItemsAdded = false;\r\n } else {\r\n totalShiftedItems += this._numScroll * dir;\r\n if (this.isRemainingItemsAdded) {\r\n totalShiftedItems += this.remainingItems - this._numScroll * dir;\r\n this.isRemainingItemsAdded = false;\r\n }\r\n\r\n let originalShiftedItems = isCircular ? totalShiftedItems + this._numVisible : totalShiftedItems;\r\n page = Math.abs(Math.floor(originalShiftedItems / this._numScroll));\r\n }\r\n\r\n if (isCircular && this.page === this.totalDots() - 1 && dir === -1) {\r\n totalShiftedItems = -1 * (this.data.length + this._numVisible);\r\n page = 0;\r\n } else if (isCircular && this.page === 0 && dir === 1) {\r\n totalShiftedItems = 0;\r\n page = this.totalDots() - 1;\r\n } else if (page === this.totalDots() - 1 && this.remainingItems > 0) {\r\n totalShiftedItems += this.remainingItems * -1 - this._numScroll * dir;\r\n this.isRemainingItemsAdded = true;\r\n }\r\n\r\n if (this.itemsContainer) {\r\n this.itemsContainer.nativeElement.style.transform = this.isVertical() ? `translate3d(0, ${totalShiftedItems * (100 / this._numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this._numVisible)}%, 0, 0)`;\r\n this.itemsContainer.nativeElement.style.transition = 'transform 500ms ease 0s';\r\n }\r\n\r\n this.totalShiftedItems = totalShiftedItems;\r\n this._page = page;\r\n this.pageEvent.emit({\r\n page: this.page\r\n });\r\n this.cd.markForCheck();\r\n this._updateCarouselItemsAccessibility();\r\n }\r\n\r\n private _startAutoplay(): void {\r\n this.interval = setInterval(() => {\r\n if (this.totalDots() > 0) {\r\n if (this.page === this.totalDots() - 1) {\r\n this._step(-1, 0);\r\n } else {\r\n this._step(-1, this.page + 1);\r\n }\r\n }\r\n }, this.autoplayInterval);\r\n this.allowAutoplay = true;\r\n this.cd.markForCheck();\r\n }\r\n\r\n private _stopAutoplay(changeAllow: boolean = true): void {\r\n if (this.interval) {\r\n clearInterval(this.interval);\r\n this.interval = undefined;\r\n if (changeAllow) {\r\n this.allowAutoplay = false;\r\n }\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n private _findFocusedIndicatorIndex(): number {\r\n const indicators = [...Array.from(this.indicatorContent?.nativeElement.querySelectorAll('[data-pc-section=\"indicator\"]'))];\r\n const activeIndicator = this.indicatorContent?.nativeElement ? this.indicatorContent?.nativeElement.querySelector('[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]') : null;\r\n\r\n return indicators.findIndex(ind => ind === activeIndicator.parentElement);\r\n }\r\n\r\n private _createStyle(): void {\r\n if (!this.carouselStyle) {\r\n this.carouselStyle = this.renderer.createElement('style');\r\n this.carouselStyle.type = 'text/css';\r\n\r\n this.renderer.appendChild(this._document.head, this.carouselStyle);\r\n }\r\n\r\n let innerHTML = `\r\n #${this.id} .cmat-carousel-item {\r\n\t\t\t\tflex: 1 0 ${100 / this.numVisible}%\r\n\t\t\t}\r\n `;\r\n\r\n if (this.responsiveOptions) {\r\n this.responsiveOptions.sort((data1, data2) => {\r\n const value1 = data1.breakpoint;\r\n const value2 = data2.breakpoint;\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null) result = -1;\r\n else if (value1 != null && value2 == null) result = 1;\r\n else if (value1 == null && value2 == null) result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, undefined, { numeric: true });\r\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\r\n\r\n return -1 * result;\r\n });\r\n\r\n for (const res of this.responsiveOptions) {\r\n innerHTML += `\r\n @media screen and (max-width: ${res.breakpoint}) {\r\n #${this.id} .cmat-carousel-item {\r\n flex: 1 0 ${100 / res.numVisible}%\r\n }\r\n }\r\n `;\r\n }\r\n }\r\n\r\n this.carouselStyle.innerHTML = innerHTML;\r\n }\r\n\r\n private _calculatePosition(): void {\r\n if (this.responsiveOptions) {\r\n let matchedResponsiveData = {\r\n numVisible: this.defaultNumVisible,\r\n numScroll: this.defaultNumScroll\r\n };\r\n\r\n if (typeof window !== 'undefined') {\r\n let windowWidth = window.innerWidth;\r\n for (const res of this.responsiveOptions) {\r\n if (parseInt(res.breakpoint, 10) >= windowWidth) {\r\n matchedResponsiveData = res;\r\n }\r\n }\r\n }\r\n\r\n if (this._numScroll !== matchedResponsiveData.numScroll) {\r\n let page = this._page;\r\n page = Math.floor((page * this._numScroll) / matchedResponsiveData.numScroll);\r\n\r\n let totalShiftedItems = matchedResponsiveData.numScroll * this.page * -1;\r\n\r\n if (this.isCircular()) {\r\n totalShiftedItems -= matchedResponsiveData.numVisible;\r\n }\r\n\r\n this.totalShiftedItems = totalShiftedItems;\r\n this._numScroll = matchedResponsiveData.numScroll;\r\n\r\n this._page = page;\r\n this.pageEvent.emit({\r\n page: this.page\r\n });\r\n }\r\n\r\n if (this._numVisible !== matchedResponsiveData.numVisible) {\r\n this._numVisible = matchedResponsiveData.numVisible;\r\n this._setCloneItems();\r\n }\r\n\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n\r\n private _updateSlideAccessibility(slide: HTMLElement, isActive: boolean): void {\r\n const focusableElements = slide.querySelectorAll<HTMLElement>('a, button, input, select, textarea, [tabindex]');\r\n focusableElements.forEach((element) => {\r\n element.tabIndex = isActive ? 0 : -1;\r\n });\r\n }\r\n\r\n private _updateCarouselItemsAccessibility(): void {\r\n const slides = this.el.nativeElement.querySelectorAll('.cmat-carousel-item');\r\n slides.forEach((slide: HTMLElement, index: number) => {\r\n const isActive = index === this._page;\r\n slide.setAttribute('aria-hidden', !isActive ? 'true' : 'false');\r\n this._updateSlideAccessibility(slide, isActive);\r\n });\r\n }\r\n\r\n private _setCloneItems(): void {\r\n this.clonedItemsForStarting = [];\r\n this.clonedItemsForFinishing = [];\r\n if (this.isCircular()) {\r\n this.clonedItemsForStarting.push(...this.data.slice(-1 * this._numVisible));\r\n this.clonedItemsForFinishing.push(...this.data.slice(0, this._numVisible));\r\n }\r\n }\r\n}\r\n","<div role=\"region\" [attr.id]=\"id\"\r\n [ngClass]=\"{ 'cmat-carousel': true, 'cmat-carousel-vertical': isVertical(), 'cmat-carousel-horizontal': !isVertical() }\"\r\n [ngStyle]=\"style\" [class]=\"styleClass\">\r\n\r\n @if(headerFacet || headerTemplate){\r\n <div class=\"cmat-carousel-header\">\r\n <ng-content select=\"cmat-carousel-header\"></ng-content>\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n <div [class]=\"contentClass\" [ngClass]=\"'items-center cmat-carousel-content'\">\r\n <div class=\"cmat-carousel-container\" cmatArrowCursor [orientation]=\"orientation\" [selector]=\"arrowSelector\"\r\n [enabled]=\"navigatorsType==='arrow'\" [attr.aria-live]=\"allowAutoplay ? 'polite' : 'off'\"\r\n (clickEvent)=\"arrowCursorClick($event)\">\r\n @if(showNavigators&&navigatorsType==='normal'){\r\n <button type=\"button\" mat-icon-button [ngClass]=\"{ 'cmat-carousel-prev': true }\"\r\n [disabled]=\"isBackwardNavDisabled()\" (click)=\"navBackward($event)\">\r\n @if(!previousIconTemplate){\r\n @if(!isVertical()){\r\n <mat-icon [svgIcon]=\"'heroicons_solid:chevron-left'\"></mat-icon>\r\n }@else {\r\n <mat-icon [svgIcon]=\"'heroicons_solid:chevron-up'\"></mat-icon>\r\n }\r\n }\r\n @else {\r\n <span class=\"cmat-carousel-prev-icon\">\r\n <ng-template *ngTemplateOutlet=\"previousIconTemplate\"></ng-template>\r\n </span>\r\n }\r\n </button>\r\n }\r\n\r\n <div class=\"cmat-carousel-items-content\"\r\n [ngStyle]=\"{ height: isVertical() ? verticalViewPortHeight : 'auto' }\" (touchend)=\"onTouchEnd($event)\"\r\n (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\">\r\n <div #itemsContainer class=\"cmat-carousel-items-container\" (transitionend)=\"onTransitionEnd()\">\r\n @for (item of clonedItemsForStarting; track $index) {\r\n <div [ngClass]=\"{\r\n 'cmat-carousel-item cmat-carousel-item-cloned': true,\r\n 'cmat-carousel-item-active': totalShiftedItems * -1 === data.length,\r\n 'cmat-carousel-item-start': 0 === $index,\r\n 'cmat-carousel-item-end': clonedItemsForStarting?.length??0 - 1 === $index\r\n }\" [attr.aria-hidden]=\"!(totalShiftedItems * -1 === data.length)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n }\r\n\r\n @for (item of data; track $index) {\r\n <div [ngClass]=\"{ 'cmat-carousel-item': true, 'cmat-carousel-item-active': firstIndex() <= $index && lastIndex() >= $index, 'cmat-carousel-item-start': firstIndex() === $index, 'cmat-carousel-item-end': lastIndex() === $index }\"\r\n [attr.aria-hidden]=\"!(totalShiftedItems * -1 === data.length)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n }\r\n\r\n @for (item of clonedItemsForFinishing; track $index) {\r\n <div [ngClass]=\"{\r\n 'cmat-carousel-item cmat-carousel-item-cloned': true,\r\n 'cmat-carousel-item-active': totalShiftedItems * -1 === numVisible,\r\n 'cmat-carousel-item-start': 0 === $index,\r\n 'cmat-carousel-item-end': clonedItemsForFinishing?.length??0 - 1 === $index\r\n }\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n }\r\n\r\n </div>\r\n </div>\r\n\r\n @if(showNavigators&&navigatorsType==='normal'){\r\n <button type=\"button\" mat-icon-button [ngClass]=\"{ 'cmat-carousel-next': true}\"\r\n [disabled]=\"isForwardNavDisabled()\" (click)=\"navForward($event)\">\r\n @if(!nextIconTemplate){\r\n @if(!isVertical()){\r\n <mat-icon [svgIcon]=\"'heroicons_solid:chevron-right'\"></mat-icon>\r\n }@else {\r\n <mat-icon [svgIcon]=\"'heroicons_solid:chevron-down'\"></mat-icon>\r\n }\r\n }\r\n @else{\r\n <span class=\"cmat-carousel-prev-icon\">\r\n <ng-template *ngTemplateOutlet=\"nextIconTemplate\"></ng-template>\r\n </span>\r\n }\r\n </button>\r\n }\r\n\r\n </div>\r\n @if(showIndicators){\r\n <ul #indicatorContent role=\"presentation\" [ngClass]=\"'cmat-carousel-indicators'\"\r\n [class]=\"indicatorsContentClass\" [ngStyle]=\"indicatorsContentStyle\" (keydown)=\"onIndicatorKeydown($event)\">\r\n @for (totalDot of totalDotsArray(); track $index) {\r\n <li [ngClass]=\"{ 'cmat-carousel-indicator': true, 'cmat-carousel-indicator-active': page === $index }\"\r\n [attr.data-pc-section]=\"'indicator'\">\r\n <button type=\"button\" [ngClass]=\"'cmat-carousel-indicator-button'\" [class]=\"indicatorStyleClass\"\r\n [ngStyle]=\"indicatorStyle\" [attr.aria-current]=\"page === $index ? 'page' : undefined\"\r\n [tabindex]=\"page === $index ? 0 : -1\" (click)=\"onDotClick($event, $index)\">\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n\r\n </div>\r\n @if(footerFacet || footerTemplate){\r\n <div class=\"cmat-carousel-footer\">\r\n <ng-content select=\"cmat-carousel-footer\"></ng-content>\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n }\r\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;AAAA;MAYa,2BAA2B,CAAA;8GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,gFAF1B,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAE5B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE;AACb,iBAAA;;MAOY,2BAA2B,CAAA;8GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,gFAF1B,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAE5B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE;AACb,iBAAA;;MAMY,6BAA6B,CAAA;AAH1C,IAAA,WAAA,GAAA;AAII,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAmB,WAAW,CAAC;AASnD;IAHG,OAAO,GAAA;QACH,OAAO,IAAI,CAAC,IAAK;;8GARZ,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,sBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE;AACb,iBAAA;8BAIY,IAAI,EAAA,CAAA;sBAAZ;gBAE8B,IAAI,EAAA,CAAA;sBAAlC,KAAK;uBAAC,sBAAsB;;AAOjC,IAAI,OAAO,GAAG,CAAC;MAUF,qBAAqB,CAAA;AAO9B,IAAA,IAAa,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,KAAK;;IAErB,IAAI,IAAI,CAAC,GAAW,EAAA;QAChB,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC,KAAK,EAAE;AACtC,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAI,CAAC,aAAa,EAAE;;AAGxB,YAAA,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;gBACjD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;;AAChB,iBAAA,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE;AACzB,gBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;;;AAI1B,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC;;AAGzB,IAAA,IAAa,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;;IAE3B,IAAI,UAAU,CAAC,GAAW,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,GAAG;;AAG1B,IAAA,IAAa,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,WAAW;;IAE3B,IAAI,SAAS,CAAC,GAAW,EAAA;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG;;AAwBzB,IAAA,IAAa,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,KAAM;;IAEtB,IAAI,IAAI,CAAC,GAAG,EAAA;AACR,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG;;AA2FpB,IAAA,WAAA,GAAA;AA3JA,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACvB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AACrB,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACtB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAW,QAAQ,CAAC;QAsCrC,IAAW,CAAA,WAAA,GAA8B,YAAY;QAErD,IAAc,CAAA,cAAA,GAAuB,QAAQ;QAE7C,IAAsB,CAAA,sBAAA,GAAW,OAAO;QAExC,IAAa,CAAA,aAAA,GAAG,wBAAwB;QAExC,IAAY,CAAA,YAAA,GAAW,EAAE;QAEzB,IAAsB,CAAA,sBAAA,GAAW,EAAE;QAInC,IAAmB,CAAA,mBAAA,GAAW,EAAE;QAWD,IAAQ,CAAA,QAAA,GAAY,KAAK;QAEzB,IAAc,CAAA,cAAA,GAAY,IAAI;QAE9B,IAAc,CAAA,cAAA,GAAY,IAAI;QAE/B,IAAgB,CAAA,gBAAA,GAAW,CAAC;QAI1D,IAAU,CAAA,UAAA,GAAW,EAAE;AAEtB,QAAA,IAAA,CAAA,SAAS,GAAwC,IAAI,YAAY,EAAyB;AAYpG,QAAA,IAAA,CAAA,SAAS,GAAQ;AACb,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,KAAK,EAAE;SACV;QAED,IAAgB,CAAA,gBAAA,GAAW,CAAC;QAE5B,IAAiB,CAAA,iBAAA,GAAW,CAAC;QAQ7B,IAAqB,CAAA,qBAAA,GAAY,KAAK;QAMtC,IAAc,CAAA,cAAA,GAAW,CAAC;QAgB1B,IAAc,CAAA,cAAA,GAAW,EAAE;QAcnB,IAAW,CAAA,WAAA,GAAW,CAAC;QAEvB,IAAU,CAAA,UAAA,GAAW,CAAC;QAEtB,IAAa,CAAA,aAAA,GAAW,CAAC;QAEzB,IAAK,CAAA,KAAA,GAAW,CAAC;AAOrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAqB;;AAGtD,IAAA,WAAW,CAAC,YAA2B,EAAA;AACnC,QAAA,IAAI,YAAY,CAAC,IAAI,EAAE;YACnB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC7B,IAAI,CAAC,cAAc,EAAE;;;AAI7B,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,YAAY,CAAC,QAAQ,EAAE;AACvB,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;oBACnB,IAAI,CAAC,cAAc,EAAE;;;AAI7B,YAAA,IAAI,YAAY,CAAC,UAAU,EAAE;AACzB,gBAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,oBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU;;gBAG5C,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,kBAAkB,EAAE;;AAG7B,YAAA,IAAI,YAAY,CAAC,SAAS,EAAE;AACxB,gBAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,oBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS;;;AAI9C,YAAA,IAAI,YAAY,CAAC,gBAAgB,EAAE;gBAC/B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB;;;AAIpD,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;;IAG1B,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,EAAE,GAAG,iBAAiB,OAAO,EAAE,EAAE;QAEtC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB;AAE5C,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,cAAc,EAAE;;AAGzB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU;AACvC,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW;;QAG7C,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,kBAAkB,EAAE;AAEzB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,sBAAsB,EAAE;;QAIjC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,KAAI;AAC7B,YAAA,QAAQ,IAAI,CAAC,OAAO,EAAE;AAClB,gBAAA,KAAK,MAAM;AACP,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ;oBACjC;AAEJ,gBAAA,KAAK,QAAQ;AACT,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ;oBACnC;AAEJ,gBAAA,KAAK,QAAQ;AACT,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ;oBACnC;AAEJ,gBAAA,KAAK,cAAc;AACf,oBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ;oBACzC;AAEJ,gBAAA,KAAK,UAAU;AACX,oBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ;oBACrC;AAEJ,gBAAA;AACI,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ;oBACjC;;AAEZ,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;;IAG3B,qBAAqB,GAAA;AAEjB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AACpC,QAAA,IAAI,iBAAiB,GAAG,IAAI,CAAC,iBAAiB;QAE9C,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC1L,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;;AAG7B,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU;AAE7E,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK;AACrB,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACpD,gBAAA,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;AAC3B,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,IAAI,CAAC;AACd,iBAAA,CAAC;;YAGN,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YAC/C,IAAI,UAAU,EAAE;AACZ,gBAAA,iBAAiB,IAAI,IAAI,CAAC,WAAW;;AAGzC,YAAA,IAAI,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;gBAC1D,iBAAiB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU;AAC/D,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;;iBAC9B;AACH,gBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;;AAGtC,YAAA,IAAI,iBAAiB,KAAK,IAAI,CAAC,iBAAiB,EAAE;AAC9C,gBAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;AAG9C,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU;YACpC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU;YAC1C,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;AAC5C,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAM,CAAC,CAAC;AAEzC,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE;AAC3D,gBAAA,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAA,eAAA,EAAkB,iBAAiB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAO,KAAA,CAAA,GAAG,CAAA,YAAA,EAAe,iBAAiB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU;;AAGzN,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YAErB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBAC5C,IAAI,CAAC,cAAc,EAAE;;;QAI7B,IAAI,UAAU,EAAE;AACZ,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE;AACjB,gBAAA,iBAAiB,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW;;AACtC,iBAAA,IAAI,iBAAiB,KAAK,CAAC,EAAE;gBAChC,iBAAiB,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;AACzC,gBAAA,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;AACzB,oBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;;;AAIzC,YAAA,IAAI,iBAAiB,KAAK,IAAI,CAAC,iBAAiB,EAAE;AAC9C,gBAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;;;;IAMtD,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,wBAAwB,EAAE;;AAEnC,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,aAAa,EAAE;;;IAK5B,UAAU,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;;IAG5G,SAAS,GAAA;QACL,OAAO,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC;;IAGlD,SAAS,GAAA;QACL,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC;AAC3C,YAAA,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AAEzG,QAAA,OAAO,CAAC;;IAGZ,cAAc,GAAA;AACV,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;AAClC,QAAA,OAAO,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;;IAGzD,UAAU,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU;;IAG1C,UAAU,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU;;IAG5E,UAAU,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,OAAO,IAAI,CAAC,aAAa;;AAE7B,QAAA,OAAO,KAAK;;IAGhB,oBAAoB,GAAA;QAChB,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;;IAGvF,qBAAqB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;;IAGpE,OAAO,GAAA;AACH,QAAA,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;;IAG/C,UAAU,CAAC,CAAiC,EAAE,KAAc,EAAA;AACxD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;YACxD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;;AAGzB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,aAAa,EAAE;;AAGxB,QAAA,IAAI,CAAC,EAAE,UAAU,EAAE;YACf,CAAC,CAAC,cAAc,EAAE;;;IAI1B,WAAW,CAAC,CAAiC,EAAE,KAAc,EAAA;QACzD,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;;AAGxB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,aAAa,EAAE;;AAGxB,QAAA,IAAI,CAAC,EAAE,UAAU,EAAE;YACf,CAAC,CAAC,cAAc,EAAE;;;IAI1B,UAAU,CAAC,CAAa,EAAE,KAAa,EAAA;AACnC,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK;AAErB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,aAAa,EAAE;;AAGxB,QAAA,IAAI,KAAK,GAAG,IAAI,EAAE;AACd,YAAA,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC;;AACtB,aAAA,IAAI,KAAK,GAAG,IAAI,EAAE;AACrB,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC;;;AAIlC,IAAA,kBAAkB,CAAC,KAAoB,EAAA;AACnC,QAAA,QAAQ,KAAK,CAAC,IAAI;AACd,YAAA,KAAK,YAAY;gBACb,IAAI,CAAC,WAAW,EAAE;gBAClB;AAEJ,YAAA,KAAK,WAAW;gBACZ,IAAI,CAAC,UAAU,EAAE;gBACjB;YACJ,KAAK,MAAM,EAAE;gBACT,IAAI,CAAC,UAAU,EAAE;gBACjB;;YAEJ,KAAK,KAAK,EAAE;gBACR,IAAI,CAAC,SAAS,EAAE;gBAChB;;YAEJ,KAAK,KAAK,EAAE;gBACR,IAAI,CAAC,SAAS,EAAE;gBAChB;;;;IAKZ,SAAS,GAAA;AACL,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ;;IAG1B,eAAe,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE;YAEvD,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE,EAAE;gBAC9E,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,kBAAkB,IAAI,CAAC,iBAAiB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,CAAe,YAAA,EAAA,IAAI,CAAC,iBAAiB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAA,QAAA,CAAU;;;;AAK3O,IAAA,YAAY,CAAC,CAAa,EAAA;QACtB,IAAI,QAAQ,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;QAElC,IAAI,CAAC,QAAQ,GAAG;YACZ,CAAC,EAAE,QAAQ,CAAC,KAAK;YACjB,CAAC,EAAE,QAAQ,CAAC;SACf;;AAGL,IAAA,WAAW,CAAC,CAA0B,EAAA;AAClC,QAAA,IAAI,CAAC,CAAC,UAAU,EAAE;YACd,CAAC,CAAC,cAAc,EAAE;;;AAG1B,IAAA,UAAU,CAAC,CAAa,EAAA;QACpB,IAAI,QAAQ,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AAElC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACnB,YAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;;aACzD;AACH,YAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;;;AAIpE,IAAA,gBAAgB,CAAC,UAAyB,EAAA;QACtC,QAAQ,UAAU;AACd,YAAA,KAAK,MAAM;AACX,YAAA,KAAK,IAAI;AACL,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBACtB;AACJ,YAAA,KAAK,OAAO;AACZ,YAAA,KAAK,MAAM;AACP,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACrB;;;IAIJ,kBAAkB,CAAC,CAA0B,EAAE,IAAY,EAAA;QAC/D,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE;AACtC,YAAA,IAAI,IAAI,GAAG,CAAC,EAAE;AACV,gBAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;;iBACf;AACH,gBAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;;;;IAKvB,sBAAsB,GAAA;AAE1B,QAAA,IAAI,CAAC,sBAAsB,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAK;YAC7E,IAAI,CAAC,kBAAkB,EAAE;AAC7B,SAAC,CAAC;;IAIE,wBAAwB,GAAA;AAE5B,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI;;;IAKlC,WAAW,GAAA;QACf,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,CAAC,CAAC;AAC1H,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,0BAA0B,EAAE;QAErD,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,WAAW,GAAG,CAAC,KAAK,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;;IAGvH,UAAU,GAAA;AACd,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,0BAA0B,EAAE;QAErD,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;;IAElF,UAAU,GAAA;AACd,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,0BAA0B,EAAE;AAErD,QAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC,CAAC;;IAGzC,SAAS,GAAA;QACb,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,CAAC,CAAC;AAC1H,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,0BAA0B,EAAE;QAErD,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;;IAG7D,SAAS,GAAA;QACb,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,CAAC,CAAU;AACnI,QAAA,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,yBAAyB,CAAC,IAAI,SAAS,CAAC;QAE9G,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,aAAa,CAAC,sDAAsD,CAAC,GAAG,IAAI;AAChL,QAAA,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,KAAK,eAAe,CAAC,aAAa,CAAC;AAEtF,QAAA,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI;AACnD,QAAA,UAAU,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG;;IAGnD,wBAAwB,CAAC,OAAe,EAAE,OAAe,EAAA;QAC7D,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,CAAC,CAAU;AAEnI,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI;AAC/C,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG;QAC9C,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;;IAGnC,KAAK,CAAC,GAAW,EAAE,IAAa,EAAA;AACpC,QAAA,IAAI,iBAAiB,GAAG,IAAI,CAAC,iBAAiB;AAC9C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AAEpC,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;YACd,iBAAiB,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC;YAE/C,IAAI,UAAU,EAAE;AACZ,gBAAA,iBAAiB,IAAI,IAAI,CAAC,WAAW;;AAGzC,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;;aAC/B;AACH,YAAA,iBAAiB,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG;AAC1C,YAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC5B,iBAAiB,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG;AAChE,gBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;;AAGtC,YAAA,IAAI,oBAAoB,GAAG,UAAU,GAAG,iBAAiB,GAAG,IAAI,CAAC,WAAW,GAAG,iBAAiB;AAChG,YAAA,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;;AAGvE,QAAA,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;AAChE,YAAA,iBAAiB,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9D,IAAI,GAAG,CAAC;;AACL,aAAA,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE;YACnD,iBAAiB,GAAG,CAAC;AACrB,YAAA,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;;AACxB,aAAA,IAAI,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;AACjE,YAAA,iBAAiB,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG;AACrE,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;;AAGrC,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAA,eAAA,EAAkB,iBAAiB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAO,KAAA,CAAA,GAAG,CAAA,YAAA,EAAe,iBAAiB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU;YACrN,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,yBAAyB;;AAGlF,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;AAC1C,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAChB,IAAI,EAAE,IAAI,CAAC;AACd,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;QACtB,IAAI,CAAC,iCAAiC,EAAE;;IAGpC,cAAc,GAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAK;AAC7B,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;gBACtB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;oBACpC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;;qBACd;AACH,oBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;;;AAGzC,SAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;;IAGlB,aAAa,CAAC,cAAuB,IAAI,EAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;YACzB,IAAI,WAAW,EAAE;AACb,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;;;AAGlC,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;;IAGlB,0BAA0B,GAAA;QAC9B,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC1H,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,aAAa,CAAC,sDAAsD,CAAC,GAAG,IAAI;AAEhL,QAAA,OAAO,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,KAAK,eAAe,CAAC,aAAa,CAAC;;IAGrE,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AACzD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,UAAU;AAEpC,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC;;AAGtE,QAAA,IAAI,SAAS,GAAG,CAAA;AACT,aAAA,EAAA,IAAI,CAAC,EAAE,CAAA;gBACN,GAAG,GAAG,IAAI,CAAC,UAAU,CAAA;;SAE5B;AAED,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;AACzC,gBAAA,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU;AAC/B,gBAAA,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU;gBAC/B,IAAI,MAAM,GAAG,IAAI;AAEjB,gBAAA,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;oBAAE,MAAM,GAAG,CAAC,CAAC;AAC5C,qBAAA,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;oBAAE,MAAM,GAAG,CAAC;AAChD,qBAAA,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;oBAAE,MAAM,GAAG,CAAC;qBAChD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ;AAAE,oBAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;oBACjI,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;AAE5D,gBAAA,OAAO,CAAC,CAAC,GAAG,MAAM;AACtB,aAAC,CAAC;AAEF,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACtC,gBAAA,SAAS,IAAI,CAAA;AACuB,kDAAA,EAAA,GAAG,CAAC,UAAU,CAAA;AACvC,yBAAA,EAAA,IAAI,CAAC,EAAE,CAAA;wCACM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAA;;;iBAG3C;;;AAIT,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,SAAS;;IAGpC,kBAAkB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,qBAAqB,GAAG;gBACxB,UAAU,EAAE,IAAI,CAAC,iBAAiB;gBAClC,SAAS,EAAE,IAAI,CAAC;aACnB;AAED,YAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAC/B,gBAAA,IAAI,WAAW,GAAG,MAAM,CAAC,UAAU;AACnC,gBAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBACtC,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,WAAW,EAAE;wBAC7C,qBAAqB,GAAG,GAAG;;;;YAKvC,IAAI,IAAI,CAAC,UAAU,KAAK,qBAAqB,CAAC,SAAS,EAAE;AACrD,gBAAA,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK;AACrB,gBAAA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC,SAAS,CAAC;AAE7E,gBAAA,IAAI,iBAAiB,GAAG,qBAAqB,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAExE,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACnB,oBAAA,iBAAiB,IAAI,qBAAqB,CAAC,UAAU;;AAGzD,gBAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;AAC1C,gBAAA,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,SAAS;AAEjD,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,IAAI,CAAC;AACd,iBAAA,CAAC;;YAGN,IAAI,IAAI,CAAC,WAAW,KAAK,qBAAqB,CAAC,UAAU,EAAE;AACvD,gBAAA,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,UAAU;gBACnD,IAAI,CAAC,cAAc,EAAE;;AAGzB,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;;;IAKtB,yBAAyB,CAAC,KAAkB,EAAE,QAAiB,EAAA;QACnE,MAAM,iBAAiB,GAAG,KAAK,CAAC,gBAAgB,CAAc,gDAAgD,CAAC;AAC/G,QAAA,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AAClC,YAAA,OAAO,CAAC,QAAQ,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;AACxC,SAAC,CAAC;;IAGE,iCAAiC,GAAA;AACrC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;QAC5E,MAAM,CAAC,OAAO,CAAC,CAAC,KAAkB,EAAE,KAAa,KAAI;AACjD,YAAA,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK;AACrC,YAAA,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAC/D,YAAA,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC;AACnD,SAAC,CAAC;;IAGE,cAAc,GAAA;AAClB,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE;AAChC,QAAA,IAAI,CAAC,uBAAuB,GAAG,EAAE;AACjC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACnB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3E,YAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;;;8GAnvBzE,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAoEV,gBAAgB,CAEhB,EAAA,cAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAgB,wDAEhB,gBAAgB,CAAA,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAEhB,eAAe,CAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAYrB,2BAA2B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAE3B,2BAA2B,EAExB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,6BAA6B,ECvIlD,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6pMA8GM,EDnEQ,MAAA,EAAA,CAAA,oiDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,mLAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,aAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,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,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,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEvE,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,mBAER,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAE5B,OAAA,EAAA,CAAC,aAAa,EAAE,eAAe,EAAE,wBAAwB,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,6pMAAA,EAAA,MAAA,EAAA,CAAA,oiDAAA,CAAA,EAAA;wDASpE,IAAI,EAAA,CAAA;sBAAhB;gBAmBY,UAAU,EAAA,CAAA;sBAAtB;gBAOY,SAAS,EAAA,CAAA;sBAArB;gBAQQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAEQ,WAAW,EAAA,CAAA;sBAAnB;gBAEQ,cAAc,EAAA,CAAA;sBAAtB;gBAEQ,sBAAsB,EAAA,CAAA;sBAA9B;gBAEQ,aAAa,EAAA,CAAA;sBAArB;gBAEQ,YAAY,EAAA,CAAA;sBAApB;gBAEQ,sBAAsB,EAAA,CAAA;sBAA9B;gBAEQ,sBAAsB,EAAA,CAAA;sBAA9B;gBAEQ,mBAAmB,EAAA,CAAA;sBAA3B;gBAEQ,cAAc,EAAA,CAAA;sBAAtB;gBAEY,IAAI,EAAA,CAAA;sBAAhB;gBAOuC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAEE,cAAc,EAAA,CAAA;sBAArD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAEE,cAAc,EAAA,CAAA;sBAArD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAEC,gBAAgB,EAAA,CAAA;sBAAtD,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;gBAE5B,KAAK,EAAA,CAAA;sBAAb;gBAEQ,UAAU,EAAA,CAAA;sBAAlB;gBAES,SAAS,EAAA,CAAA;sBAAlB;gBAE4B,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB;gBAEI,gBAAgB,EAAA,CAAA;sBAA9C,SAAS;uBAAC,kBAAkB;gBAEc,WAAW,EAAA,CAAA;sBAArD,YAAY;uBAAC,2BAA2B;gBAEE,WAAW,EAAA,CAAA;sBAArD,YAAY;uBAAC,2BAA2B;gBAEO,SAAS,EAAA,CAAA;sBAAxD,eAAe;uBAAC,6BAA6B;;;AEvIlD;;AAEG;;;;"}
|
|
@@ -1,56 +1,83 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import * as
|
|
6
|
-
import { MAT_BOTTOM_SHEET_DATA } from '@angular/material/bottom-sheet';
|
|
7
|
-
import * as i8 from '@angular/material/button';
|
|
2
|
+
import { inject, ChangeDetectionStrategy, ViewEncapsulation, Component, ChangeDetectorRef, Input, ViewChild, HostBinding } from '@angular/core';
|
|
3
|
+
import { FormControl, NgControl } from '@angular/forms';
|
|
4
|
+
import { MAT_BOTTOM_SHEET_DATA, MatBottomSheet } from '@angular/material/bottom-sheet';
|
|
5
|
+
import * as i1 from '@angular/material/button';
|
|
8
6
|
import { MatButtonModule } from '@angular/material/button';
|
|
9
|
-
import * as
|
|
7
|
+
import * as i4 from '@angular/material/icon';
|
|
10
8
|
import { MatIconModule } from '@angular/material/icon';
|
|
11
|
-
import * as
|
|
9
|
+
import * as i3 from '@angular/material/list';
|
|
12
10
|
import { MatListModule } from '@angular/material/list';
|
|
13
|
-
import * as i2
|
|
11
|
+
import * as i2 from '@angular/material/tabs';
|
|
14
12
|
import { MatTabsModule } from '@angular/material/tabs';
|
|
15
|
-
import {
|
|
13
|
+
import { isUndefined, isNull, isNil } from 'lodash-es';
|
|
16
14
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
import * as i7 from '@angular/cdk/portal';
|
|
15
|
+
import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
|
|
16
|
+
import * as i3$1 from '@angular/cdk/overlay';
|
|
17
|
+
import { Overlay, OverlayConfig, OverlayModule, CdkOverlayOrigin } from '@angular/cdk/overlay';
|
|
18
|
+
import * as i4$1 from '@angular/cdk/portal';
|
|
22
19
|
import { PortalModule } from '@angular/cdk/portal';
|
|
23
20
|
import { NgClass } from '@angular/common';
|
|
24
21
|
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
25
|
-
import * as
|
|
22
|
+
import * as i2$1 from '@angular/material/input';
|
|
26
23
|
import { MatInputModule } from '@angular/material/input';
|
|
27
24
|
import { Subject } from 'rxjs';
|
|
28
25
|
import { takeUntil, map } from 'rxjs/operators';
|
|
29
26
|
import { cmatAnimations } from 'cmat/animations';
|
|
30
27
|
|
|
28
|
+
class CmatCascadeBottomSheetComponent {
|
|
29
|
+
constructor() {
|
|
30
|
+
this.root = inject(MAT_BOTTOM_SHEET_DATA);
|
|
31
|
+
this.selected = new FormControl(0);
|
|
32
|
+
this.labels = [];
|
|
33
|
+
this.root.steps.forEach((items) => {
|
|
34
|
+
const steps = items.filter((item) => item.active);
|
|
35
|
+
if (steps[0] && !isUndefined(steps[0].label)) {
|
|
36
|
+
this.labels.push(steps[0].label);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
clickHandle(event) {
|
|
41
|
+
event.stopPropagation();
|
|
42
|
+
}
|
|
43
|
+
select(disabled, label) {
|
|
44
|
+
if (!disabled) {
|
|
45
|
+
if (!isNull(this.selected.value)) {
|
|
46
|
+
this.labels[this.selected.value] = label;
|
|
47
|
+
this.labels = this.labels.slice(0, this.selected.value + 1);
|
|
48
|
+
}
|
|
49
|
+
this.selected.setValue(this.root.steps.length - 1);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatCascadeBottomSheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: CmatCascadeBottomSheetComponent, isStandalone: true, selector: "cmat-cascade-bottom-sheet", exportAs: ["cmatCascadeBottomSheet"], ngImport: i0, template: "<div role=\"presentation\" class=\"cmat-cascade-bottom-sheet\" (click)=\"clickHandle($event)\">\r\n <div class=\"sheet-header flex items-center\">\r\n <p class=\"sheet-title\">{{root.placeholder}}</p>\r\n <button type=\"button\" mat-icon-button (click)=\"root.bottomSheetRef.dismiss()\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\r\n </button>\r\n </div>\r\n <mat-tab-group [selectedIndex]=\"selected.value\" (selectedIndexChange)=\"selected.setValue($event);\">\r\n @for (menuItem of root.steps; track step; let step = $index) {\r\n <mat-tab\r\n [label]=\"labels[step] || '\u9009\u62E9'\">\r\n <mat-list class=\"menu-list overflow-y-auto scrollbar-custom\">\r\n @for (listItem of menuItem; track i; let i = $index) {\r\n <mat-list-item class=\"menu-item\"\r\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\r\n (click)=\"root.selectHandle($event, step, i); select(listItem.disabled,listItem.label);\">\r\n <div matLine>{{listItem.label}}</div>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n </mat-tab>\r\n }\r\n </mat-tab-group>\r\n</div>", styles: [".cmat-cascade-bottom-sheet{padding:0;margin:-8px -16px}.cmat-cascade-bottom-sheet .sheet-header{display:flex;flex:1 1 0%;align-items:center;font-size:1rem;border-bottom-width:1px;padding:12px 16px}.cmat-cascade-bottom-sheet .sheet-header .sheet-title{margin:0;padding:0;letter-spacing:.05rem;text-align:center;flex-grow:1}.cmat-cascade-bottom-sheet .menu-list{vertical-align:top;box-sizing:border-box;margin:0;padding:0;width:100%;overflow:hidden;position:relative;height:204px}.cmat-cascade-bottom-sheet .menu-item{padding:0 16px;text-overflow:ellipsis;box-sizing:border-box;cursor:pointer!important;font-size:14px;line-height:3em}.cmat-cascade-bottom-sheet .menu-item.disabled{cursor:not-allowed!important;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatCascadeBottomSheetComponent, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{ selector: 'cmat-cascade-bottom-sheet', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatCascadeBottomSheet', imports: [MatButtonModule, MatTabsModule, MatListModule, MatIconModule], template: "<div role=\"presentation\" class=\"cmat-cascade-bottom-sheet\" (click)=\"clickHandle($event)\">\r\n <div class=\"sheet-header flex items-center\">\r\n <p class=\"sheet-title\">{{root.placeholder}}</p>\r\n <button type=\"button\" mat-icon-button (click)=\"root.bottomSheetRef.dismiss()\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\r\n </button>\r\n </div>\r\n <mat-tab-group [selectedIndex]=\"selected.value\" (selectedIndexChange)=\"selected.setValue($event);\">\r\n @for (menuItem of root.steps; track step; let step = $index) {\r\n <mat-tab\r\n [label]=\"labels[step] || '\u9009\u62E9'\">\r\n <mat-list class=\"menu-list overflow-y-auto scrollbar-custom\">\r\n @for (listItem of menuItem; track i; let i = $index) {\r\n <mat-list-item class=\"menu-item\"\r\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\r\n (click)=\"root.selectHandle($event, step, i); select(listItem.disabled,listItem.label);\">\r\n <div matLine>{{listItem.label}}</div>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n </mat-tab>\r\n }\r\n </mat-tab-group>\r\n</div>", styles: [".cmat-cascade-bottom-sheet{padding:0;margin:-8px -16px}.cmat-cascade-bottom-sheet .sheet-header{display:flex;flex:1 1 0%;align-items:center;font-size:1rem;border-bottom-width:1px;padding:12px 16px}.cmat-cascade-bottom-sheet .sheet-header .sheet-title{margin:0;padding:0;letter-spacing:.05rem;text-align:center;flex-grow:1}.cmat-cascade-bottom-sheet .menu-list{vertical-align:top;box-sizing:border-box;margin:0;padding:0;width:100%;overflow:hidden;position:relative;height:204px}.cmat-cascade-bottom-sheet .menu-item{padding:0 16px;text-overflow:ellipsis;box-sizing:border-box;cursor:pointer!important;font-size:14px;line-height:3em}.cmat-cascade-bottom-sheet .menu-item.disabled{cursor:not-allowed!important;pointer-events:none}\n"] }]
|
|
58
|
+
}], ctorParameters: () => [] });
|
|
59
|
+
|
|
31
60
|
class CmatCascadeMenuComponent {
|
|
32
|
-
constructor(
|
|
33
|
-
this.root =
|
|
61
|
+
constructor() {
|
|
62
|
+
this.root = inject(CmatCascadeListComponent, { optional: true });
|
|
34
63
|
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.
|
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatCascadeMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: CmatCascadeMenuComponent, isStandalone: true, selector: "cmat-cascade-menu", exportAs: ["cmatCascadeMenu"], ngImport: i0, template: "@for (menuItem of root.steps; track step; let step = $index) {\r\n <mat-list class=\"menu-list overflow-y-auto scrollbar-custom\"\r\n >\r\n @for (listItem of menuItem; track i; let i = $index) {\r\n <mat-list-item class=\"menu-item\"\r\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\r\n (click)=\"root.selectHandle($event, step, i);\">\r\n <div matLine>{{listItem.label}}</div>\r\n @if (listItem.children && listItem.children.length) {\r\n <mat-icon class=\"item-icon\" [svgIcon]=\"'mat_outline:chevron_right'\"\r\n ></mat-icon>\r\n }\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n}", styles: ["cmat-cascade-menu{height:200px;z-index:2007;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;white-space:nowrap}cmat-cascade-menu .menu-list{display:inline-block;border-right-width:1px;box-sizing:border-box;margin:0;padding:.5rem;overflow:hidden;position:relative;height:200px;min-width:200px;vertical-align:top}cmat-cascade-menu .menu-list:last-child{border-right-width:0px}cmat-cascade-menu .menu-item{line-height:3rem;padding:0 16px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;cursor:pointer!important}cmat-cascade-menu .menu-item.disabled{cursor:not-allowed!important}cmat-cascade-menu .menu-item .item-icon{position:absolute;justify-items:center;top:50%;bottom:50%;right:0;transform:translateY(-50%)}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], animations: [cmatAnimations], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
37
66
|
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatCascadeMenuComponent, decorators: [{
|
|
39
68
|
type: Component,
|
|
40
69
|
args: [{ selector: 'cmat-cascade-menu', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatCascadeMenu', animations: [cmatAnimations], imports: [MatListModule, MatIconModule], template: "@for (menuItem of root.steps; track step; let step = $index) {\r\n <mat-list class=\"menu-list overflow-y-auto scrollbar-custom\"\r\n >\r\n @for (listItem of menuItem; track i; let i = $index) {\r\n <mat-list-item class=\"menu-item\"\r\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\r\n (click)=\"root.selectHandle($event, step, i);\">\r\n <div matLine>{{listItem.label}}</div>\r\n @if (listItem.children && listItem.children.length) {\r\n <mat-icon class=\"item-icon\" [svgIcon]=\"'mat_outline:chevron_right'\"\r\n ></mat-icon>\r\n }\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n}", styles: ["cmat-cascade-menu{height:200px;z-index:2007;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;white-space:nowrap}cmat-cascade-menu .menu-list{display:inline-block;border-right-width:1px;box-sizing:border-box;margin:0;padding:.5rem;overflow:hidden;position:relative;height:200px;min-width:200px;vertical-align:top}cmat-cascade-menu .menu-list:last-child{border-right-width:0px}cmat-cascade-menu .menu-item{line-height:3rem;padding:0 16px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;cursor:pointer!important}cmat-cascade-menu .menu-item.disabled{cursor:not-allowed!important}cmat-cascade-menu .menu-item .item-icon{position:absolute;justify-items:center;top:50%;bottom:50%;right:0;transform:translateY(-50%)}\n"] }]
|
|
41
|
-
}]
|
|
42
|
-
type: Optional
|
|
43
|
-
}] }] });
|
|
70
|
+
}] });
|
|
44
71
|
|
|
45
72
|
/* eslint-disable @typescript-eslint/member-ordering */
|
|
46
73
|
let NEXT_ID = 0;
|
|
47
74
|
class CmatCascadeListComponent {
|
|
48
|
-
constructor(
|
|
49
|
-
this.ngControl =
|
|
50
|
-
this._overlay =
|
|
51
|
-
this._breakpointObserver =
|
|
52
|
-
this._bottomSheet =
|
|
53
|
-
this._changeDetectorRef =
|
|
75
|
+
constructor() {
|
|
76
|
+
this.ngControl = inject(NgControl, { optional: true, self: true });
|
|
77
|
+
this._overlay = inject(Overlay);
|
|
78
|
+
this._breakpointObserver = inject(BreakpointObserver);
|
|
79
|
+
this._bottomSheet = inject(MatBottomSheet);
|
|
80
|
+
this._changeDetectorRef = inject(ChangeDetectorRef);
|
|
54
81
|
/* 组件 id */
|
|
55
82
|
this.id = `cmat-cascade-list-${NEXT_ID++}`;
|
|
56
83
|
this.clearable = false;
|
|
@@ -356,17 +383,13 @@ class CmatCascadeListComponent {
|
|
|
356
383
|
this._inputElement.nativeElement.value = this.currentLabels[this.currentLabels.length - 1].label ?? '';
|
|
357
384
|
}
|
|
358
385
|
}
|
|
359
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.
|
|
360
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.
|
|
386
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatCascadeListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
387
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: CmatCascadeListComponent, isStandalone: true, selector: "cmat-cascade-list", inputs: { id: "id", options: "options", clearable: "clearable", fullLevels: "fullLevels", changeOnSelect: "changeOnSelect", touchUi: "touchUi", placeholder: "placeholder", value: "value", required: "required", disabled: "disabled" }, host: { properties: { "attr.id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CmatCascadeListComponent }], viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, static: true }, { propertyName: "menuTemplate", first: true, predicate: ["menuTemplate"], descendants: true, static: true }, { propertyName: "_inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], exportAs: ["cmatCascadeList"], usesOnChanges: true, ngImport: i0, template: "<span role=\"presentation\" class=\"cmat-cascade-list\" cdk-overlay-origin\r\n [ngClass]=\"{'opened': menuVisible, 'disabled': disabled}\">\r\n <input #inputElement matInput readonly [required]='required' [placeholder]=\"currentLabels.length>0 ? '' : placeholder\" (click)=\"clickHandle($event)\"\r\n (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut($event)\">\r\n\r\n @if (showClearIcon()) {\r\n <button type=\"button\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"clearValue($event)\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\r\n </button>\r\n }\r\n @else {\r\n <mat-icon matSuffix [svgIcon]=\"'mat_outline:arrow_drop_down'\"></mat-icon>\r\n }\r\n</span>\r\n\r\n<ng-template #menuTemplate=\"cdkPortal\" cdk-portal>\r\n <cmat-cascade-menu></cmat-cascade-menu>\r\n</ng-template>", styles: ["cmat-cascade-list{width:100%}.cmat-cascade-list{position:relative;display:flex;width:100%;line-height:2;align-items:center}.cmat-cascade-list mat-form-field{width:100%}.cmat-cascade-list input{cursor:pointer}.cmat-cascade-list.disabled .cascade-label{z-index:2}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CmatCascadeMenuComponent, selector: "cmat-cascade-menu", exportAs: ["cmatCascadeMenu"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i3$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i4$1.TemplatePortalDirective, selector: "[cdk-portal], [portal]", exportAs: ["cdkPortal"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
361
388
|
}
|
|
362
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.
|
|
389
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatCascadeListComponent, decorators: [{
|
|
363
390
|
type: Component,
|
|
364
391
|
args: [{ selector: 'cmat-cascade-list', providers: [{ provide: MatFormFieldControl, useExisting: CmatCascadeListComponent }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatCascadeList', imports: [MatIconModule, NgClass, CmatCascadeMenuComponent, MatInputModule, OverlayModule, PortalModule, MatButtonModule], template: "<span role=\"presentation\" class=\"cmat-cascade-list\" cdk-overlay-origin\r\n [ngClass]=\"{'opened': menuVisible, 'disabled': disabled}\">\r\n <input #inputElement matInput readonly [required]='required' [placeholder]=\"currentLabels.length>0 ? '' : placeholder\" (click)=\"clickHandle($event)\"\r\n (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut($event)\">\r\n\r\n @if (showClearIcon()) {\r\n <button type=\"button\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"clearValue($event)\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\r\n </button>\r\n }\r\n @else {\r\n <mat-icon matSuffix [svgIcon]=\"'mat_outline:arrow_drop_down'\"></mat-icon>\r\n }\r\n</span>\r\n\r\n<ng-template #menuTemplate=\"cdkPortal\" cdk-portal>\r\n <cmat-cascade-menu></cmat-cascade-menu>\r\n</ng-template>", styles: ["cmat-cascade-list{width:100%}.cmat-cascade-list{position:relative;display:flex;width:100%;line-height:2;align-items:center}.cmat-cascade-list mat-form-field{width:100%}.cmat-cascade-list input{cursor:pointer}.cmat-cascade-list.disabled .cascade-label{z-index:2}\n"] }]
|
|
365
|
-
}], ctorParameters: () => [
|
|
366
|
-
type: Optional
|
|
367
|
-
}, {
|
|
368
|
-
type: Self
|
|
369
|
-
}] }, { type: i2$1.Overlay }, { type: i3$1.BreakpointObserver }, { type: i4.MatBottomSheet }, { type: i0.ChangeDetectorRef }], propDecorators: { id: [{
|
|
392
|
+
}], ctorParameters: () => [], propDecorators: { id: [{
|
|
370
393
|
type: HostBinding,
|
|
371
394
|
args: ['attr.id']
|
|
372
395
|
}, {
|
|
@@ -401,41 +424,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
401
424
|
type: Input
|
|
402
425
|
}] } });
|
|
403
426
|
|
|
404
|
-
class CmatCascadeBottomSheetComponent {
|
|
405
|
-
constructor(root) {
|
|
406
|
-
this.root = root;
|
|
407
|
-
this.selected = new FormControl(0);
|
|
408
|
-
this.labels = [];
|
|
409
|
-
this.root.steps.forEach((items) => {
|
|
410
|
-
const steps = items.filter((item) => item.active);
|
|
411
|
-
if (steps[0] && !isUndefined(steps[0].label)) {
|
|
412
|
-
this.labels.push(steps[0].label);
|
|
413
|
-
}
|
|
414
|
-
});
|
|
415
|
-
}
|
|
416
|
-
clickHandle(event) {
|
|
417
|
-
event.stopPropagation();
|
|
418
|
-
}
|
|
419
|
-
select(disabled, label) {
|
|
420
|
-
if (!disabled) {
|
|
421
|
-
if (!isNull(this.selected.value)) {
|
|
422
|
-
this.labels[this.selected.value] = label;
|
|
423
|
-
this.labels = this.labels.slice(0, this.selected.value + 1);
|
|
424
|
-
}
|
|
425
|
-
this.selected.setValue(this.root.steps.length - 1);
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: CmatCascadeBottomSheetComponent, deps: [{ token: MAT_BOTTOM_SHEET_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
429
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: CmatCascadeBottomSheetComponent, isStandalone: true, selector: "cmat-cascade-bottom-sheet", exportAs: ["cmatCascadeBottomSheet"], ngImport: i0, template: "<div role=\"presentation\" class=\"cmat-cascade-bottom-sheet\" (click)=\"clickHandle($event)\">\r\n <div class=\"sheet-header flex items-center\">\r\n <p class=\"sheet-title\">{{root.placeholder}}</p>\r\n <button type=\"button\" mat-icon-button (click)=\"root.bottomSheetRef.dismiss()\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\r\n </button>\r\n </div>\r\n <mat-tab-group [selectedIndex]=\"selected.value\" (selectedIndexChange)=\"selected.setValue($event);\">\r\n @for (menuItem of root.steps; track step; let step = $index) {\r\n <mat-tab\r\n [label]=\"labels[step] || '\u9009\u62E9'\">\r\n <mat-list class=\"menu-list overflow-y-auto scrollbar-custom\">\r\n @for (listItem of menuItem; track i; let i = $index) {\r\n <mat-list-item class=\"menu-item\"\r\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\r\n (click)=\"root.selectHandle($event, step, i); select(listItem.disabled,listItem.label);\">\r\n <div matLine>{{listItem.label}}</div>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n </mat-tab>\r\n }\r\n </mat-tab-group>\r\n</div>", styles: [".cmat-cascade-bottom-sheet{padding:0;margin:-8px -16px}.cmat-cascade-bottom-sheet .sheet-header{display:flex;flex:1 1 0%;align-items:center;font-size:1rem;border-bottom-width:1px;padding:12px 16px}.cmat-cascade-bottom-sheet .sheet-header .sheet-title{margin:0;padding:0;letter-spacing:.05rem;text-align:center;flex-grow:1}.cmat-cascade-bottom-sheet .menu-list{vertical-align:top;box-sizing:border-box;margin:0;padding:0;width:100%;overflow:hidden;position:relative;height:204px}.cmat-cascade-bottom-sheet .menu-item{padding:0 16px;text-overflow:ellipsis;box-sizing:border-box;cursor:pointer!important;font-size:14px;line-height:3em}.cmat-cascade-bottom-sheet .menu-item.disabled{cursor:not-allowed!important;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i2$2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass", "id"], exportAs: ["matTab"] }, { kind: "component", type: i2$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "mat-align-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
430
|
-
}
|
|
431
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: CmatCascadeBottomSheetComponent, decorators: [{
|
|
432
|
-
type: Component,
|
|
433
|
-
args: [{ selector: 'cmat-cascade-bottom-sheet', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatCascadeBottomSheet', imports: [MatButtonModule, MatTabsModule, MatListModule, MatIconModule], template: "<div role=\"presentation\" class=\"cmat-cascade-bottom-sheet\" (click)=\"clickHandle($event)\">\r\n <div class=\"sheet-header flex items-center\">\r\n <p class=\"sheet-title\">{{root.placeholder}}</p>\r\n <button type=\"button\" mat-icon-button (click)=\"root.bottomSheetRef.dismiss()\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\r\n </button>\r\n </div>\r\n <mat-tab-group [selectedIndex]=\"selected.value\" (selectedIndexChange)=\"selected.setValue($event);\">\r\n @for (menuItem of root.steps; track step; let step = $index) {\r\n <mat-tab\r\n [label]=\"labels[step] || '\u9009\u62E9'\">\r\n <mat-list class=\"menu-list overflow-y-auto scrollbar-custom\">\r\n @for (listItem of menuItem; track i; let i = $index) {\r\n <mat-list-item class=\"menu-item\"\r\n [class.active]=\"listItem.active\" [class.disabled]=\"listItem.disabled\"\r\n (click)=\"root.selectHandle($event, step, i); select(listItem.disabled,listItem.label);\">\r\n <div matLine>{{listItem.label}}</div>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n </mat-tab>\r\n }\r\n </mat-tab-group>\r\n</div>", styles: [".cmat-cascade-bottom-sheet{padding:0;margin:-8px -16px}.cmat-cascade-bottom-sheet .sheet-header{display:flex;flex:1 1 0%;align-items:center;font-size:1rem;border-bottom-width:1px;padding:12px 16px}.cmat-cascade-bottom-sheet .sheet-header .sheet-title{margin:0;padding:0;letter-spacing:.05rem;text-align:center;flex-grow:1}.cmat-cascade-bottom-sheet .menu-list{vertical-align:top;box-sizing:border-box;margin:0;padding:0;width:100%;overflow:hidden;position:relative;height:204px}.cmat-cascade-bottom-sheet .menu-item{padding:0 16px;text-overflow:ellipsis;box-sizing:border-box;cursor:pointer!important;font-size:14px;line-height:3em}.cmat-cascade-bottom-sheet .menu-item.disabled{cursor:not-allowed!important;pointer-events:none}\n"] }]
|
|
434
|
-
}], ctorParameters: () => [{ type: CmatCascadeListComponent, decorators: [{
|
|
435
|
-
type: Inject,
|
|
436
|
-
args: [MAT_BOTTOM_SHEET_DATA]
|
|
437
|
-
}] }] });
|
|
438
|
-
|
|
439
427
|
/**
|
|
440
428
|
* Generated bundle index. Do not edit.
|
|
441
429
|
*/
|