cmat 0.0.81 → 0.0.83

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.
Files changed (148) hide show
  1. package/fesm2022/cmat-components-adapter.mjs +19 -13
  2. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  3. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  4. package/fesm2022/cmat-components-card.mjs.map +1 -1
  5. package/fesm2022/cmat-components-carousel.mjs +20 -20
  6. package/fesm2022/cmat-components-carousel.mjs.map +1 -1
  7. package/fesm2022/cmat-components-cascade.mjs +7 -5
  8. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  9. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  10. package/fesm2022/cmat-components-code-editor.mjs +3 -2
  11. package/fesm2022/cmat-components-code-editor.mjs.map +1 -1
  12. package/fesm2022/cmat-components-custom-formly.mjs +228 -108
  13. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  14. package/fesm2022/cmat-components-date-range.mjs +20 -11
  15. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  16. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  17. package/fesm2022/cmat-components-file-preview.mjs.map +1 -1
  18. package/fesm2022/cmat-components-fullscreen.mjs +1 -1
  19. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  20. package/fesm2022/cmat-components-highlight.mjs +1 -1
  21. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  22. package/fesm2022/cmat-components-image-viewer.mjs +29 -11
  23. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
  24. package/fesm2022/cmat-components-json-editor.mjs +16 -26
  25. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  26. package/fesm2022/cmat-components-knob-input.mjs +8 -7
  27. package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
  28. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  29. package/fesm2022/cmat-components-material-color-picker.mjs +3 -3
  30. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  31. package/fesm2022/cmat-components-material-datetimepicker.mjs +28 -16
  32. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  33. package/fesm2022/cmat-components-navigation.mjs +14 -14
  34. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  35. package/fesm2022/cmat-components-opt-input.mjs +2 -2
  36. package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
  37. package/fesm2022/cmat-components-password-strength.mjs +8 -5
  38. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  39. package/fesm2022/cmat-components-popover.mjs +2 -2
  40. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  41. package/fesm2022/cmat-components-qrcode.mjs +9 -2
  42. package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
  43. package/fesm2022/cmat-components-rating.mjs +1 -1
  44. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  45. package/fesm2022/cmat-components-select-search.mjs +25 -24
  46. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  47. package/fesm2022/cmat-components-select-table.mjs +42 -15
  48. package/fesm2022/cmat-components-select-table.mjs.map +1 -1
  49. package/fesm2022/cmat-components-select-tree.mjs +3 -1
  50. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  51. package/fesm2022/cmat-components-speed-dial.mjs +24 -5
  52. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
  53. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  54. package/fesm2022/cmat-components-toast.mjs +20 -13
  55. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  56. package/fesm2022/cmat-components-transfer-picker.mjs +11 -6
  57. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  58. package/fesm2022/cmat-components-treetable.mjs +4 -3
  59. package/fesm2022/cmat-components-treetable.mjs.map +1 -1
  60. package/fesm2022/cmat-components-upload.mjs +29 -15
  61. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  62. package/fesm2022/cmat-components-x6-angular-shape.mjs +2 -2
  63. package/fesm2022/cmat-components-x6-angular-shape.mjs.map +1 -1
  64. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  65. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  66. package/fesm2022/cmat-directives-data-exporter.mjs +1 -1
  67. package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
  68. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  69. package/fesm2022/cmat-directives-digit-only.mjs +12 -18
  70. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  71. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +3 -2
  72. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs.map +1 -1
  73. package/fesm2022/cmat-lib-mock-api.mjs +7 -7
  74. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  75. package/fesm2022/cmat-pipes-find-by-key.mjs +1 -1
  76. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  77. package/fesm2022/cmat-pipes-group-by.mjs +9 -5
  78. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  79. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  80. package/fesm2022/cmat-pipes-secure.mjs +9 -1
  81. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  82. package/fesm2022/cmat-services-alert.mjs +16 -7
  83. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  84. package/fesm2022/cmat-services-data.mjs.map +1 -1
  85. package/fesm2022/cmat-services-export-as.mjs +11 -10
  86. package/fesm2022/cmat-services-export-as.mjs.map +1 -1
  87. package/fesm2022/cmat-services-local-storage.mjs +42 -4
  88. package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
  89. package/fesm2022/cmat-services-title.mjs +2 -2
  90. package/fesm2022/cmat-services-title.mjs.map +1 -1
  91. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  92. package/fesm2022/cmat-services-utils.mjs +78 -57
  93. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  94. package/fesm2022/cmat-validators.mjs +4 -1
  95. package/fesm2022/cmat-validators.mjs.map +1 -1
  96. package/fesm2022/cmat.mjs +759 -438
  97. package/fesm2022/cmat.mjs.map +1 -1
  98. package/package.json +1 -1
  99. package/types/cmat-components-adapter.d.ts +24 -24
  100. package/types/cmat-components-breadcrumb.d.ts +1 -1
  101. package/types/cmat-components-card.d.ts +1 -1
  102. package/types/cmat-components-carousel.d.ts +23 -23
  103. package/types/cmat-components-cascade.d.ts +12 -12
  104. package/types/cmat-components-chip-input.d.ts +8 -8
  105. package/types/cmat-components-code-editor.d.ts +2 -2
  106. package/types/cmat-components-custom-formly.d.ts +121 -44
  107. package/types/cmat-components-date-range.d.ts +30 -16
  108. package/types/cmat-components-drawer.d.ts +2 -2
  109. package/types/cmat-components-file-preview.d.ts +1 -1
  110. package/types/cmat-components-image-viewer.d.ts +5 -3
  111. package/types/cmat-components-json-editor.d.ts +7 -9
  112. package/types/cmat-components-knob-input.d.ts +3 -3
  113. package/types/cmat-components-masonry.d.ts +3 -3
  114. package/types/cmat-components-material-color-picker.d.ts +13 -9
  115. package/types/cmat-components-material-datetimepicker.d.ts +26 -10
  116. package/types/cmat-components-navigation.d.ts +14 -14
  117. package/types/cmat-components-opt-input.d.ts +8 -8
  118. package/types/cmat-components-popover.d.ts +1 -1
  119. package/types/cmat-components-qrcode.d.ts +2 -1
  120. package/types/cmat-components-rating.d.ts +13 -13
  121. package/types/cmat-components-select-search.d.ts +5 -5
  122. package/types/cmat-components-select-table.d.ts +12 -8
  123. package/types/cmat-components-select-tree.d.ts +1 -1
  124. package/types/cmat-components-speed-dial.d.ts +3 -0
  125. package/types/cmat-components-timeline.d.ts +2 -2
  126. package/types/cmat-components-toast.d.ts +2 -2
  127. package/types/cmat-components-transfer-picker.d.ts +5 -4
  128. package/types/cmat-components-treetable.d.ts +2 -2
  129. package/types/cmat-components-upload.d.ts +35 -28
  130. package/types/cmat-components-x6-angular-shape.d.ts +1 -1
  131. package/types/cmat-directives-autofocus.d.ts +1 -1
  132. package/types/cmat-directives-data-exporter.d.ts +2 -1
  133. package/types/cmat-directives-debounce.d.ts +5 -5
  134. package/types/cmat-directives-digit-only.d.ts +7 -7
  135. package/types/cmat-directives-seamless-auto-scroll.d.ts +2 -2
  136. package/types/cmat-lib-mock-api.d.ts +1 -1
  137. package/types/cmat-pipes-find-by-key.d.ts +2 -1
  138. package/types/cmat-pipes-group-by.d.ts +6 -1
  139. package/types/cmat-pipes-keys.d.ts +4 -1
  140. package/types/cmat-pipes-secure.d.ts +1 -0
  141. package/types/cmat-services-alert.d.ts +14 -13
  142. package/types/cmat-services-data.d.ts +3 -3
  143. package/types/cmat-services-export-as.d.ts +4 -3
  144. package/types/cmat-services-local-storage.d.ts +10 -2
  145. package/types/cmat-services-translation.d.ts +3 -3
  146. package/types/cmat-services-utils.d.ts +31 -15
  147. package/types/cmat-validators.d.ts +1 -1
  148. package/types/cmat.d.ts +463 -304
@@ -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\n\r\nimport { CommonModule } from '@angular/common';\r\nimport { AfterContentChecked, AfterContentInit, ChangeDetectionStrategy, Component, ContentChild, ContentChildren, Directive, ElementRef, EventEmitter, Input, NgZone, OnChanges, OnDestroy, Output, QueryList, Renderer2, SimpleChanges, TemplateRef, ViewChild, ViewEncapsulation, booleanAttribute, numberAttribute, DOCUMENT, inject, signal } 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 readonly refreshVersion = signal(0);\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&&this.suspendAutoPlay) {\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: booleanAttribute }) suspendAutoPlay: 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: { numScroll: number; numVisible: number; value: 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: HTMLStyleElement | null = null;\r\n\r\n id: string | undefined;\r\n\r\n totalShiftedItems;\r\n\r\n isRemainingItemsAdded: boolean = false;\r\n\r\n animationTimeout: number | null = null;\r\n\r\n translateTimeout: number | null = null;\r\n\r\n remainingItems: number = 0;\r\n\r\n startPos: { x: number; y: number } | null = null;\r\n\r\n documentResizeListener: VoidFunction | null = null;\r\n\r\n clonedItemsForStarting: any[] = [];\r\n\r\n clonedItemsForFinishing: any[] = [];\r\n\r\n allowAutoplay: boolean | undefined;\r\n\r\n interval: number | null = null;\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.refreshVersion.update(value => value + 1);\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.refreshVersion.update(value => value + 1);\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 this._stopAutoplay();\r\n if (this.animationTimeout !== null) {\r\n clearTimeout(this.animationTimeout);\r\n this.animationTimeout = null;\r\n }\r\n if (this.translateTimeout !== null) {\r\n clearTimeout(this.translateTimeout);\r\n this.translateTimeout = null;\r\n }\r\n if (this.carouselStyle?.parentNode) {\r\n this.carouselStyle.parentNode.removeChild(this.carouselStyle);\r\n this.carouselStyle = null;\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&&this.suspendAutoPlay) {\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&&this.suspendAutoPlay) {\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&&this.suspendAutoPlay) {\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.startPos) {\r\n return;\r\n }\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.refreshVersion.update(value => value + 1);\r\n this._updateCarouselItemsAccessibility();\r\n }\r\n\r\n private _startAutoplay(): void {\r\n if (this.interval !== null) {\r\n return;\r\n }\r\n this.interval = window.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.refreshVersion.update(value => value + 1);\r\n }\r\n\r\n private _stopAutoplay(changeAllow: boolean = true): void {\r\n if (this.interval !== null) {\r\n clearInterval(this.interval);\r\n this.interval = null;\r\n if (changeAllow) {\r\n this.allowAutoplay = false;\r\n }\r\n }\r\n this.refreshVersion.update(value => value + 1);\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\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;\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 if (this.carouselStyle) {\r\n this.carouselStyle.innerHTML = innerHTML;\r\n }\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 (this.window) {\r\n let windowWidth = this.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.refreshVersion.update(value => value + 1);\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 = [...this.data.slice(-1 * this._numVisible)];\r\n this.clonedItemsForFinishing= [...this.data.slice(0, this._numVisible)];\r\n }\r\n }\r\n}","<div role=\"region\" [attr.id]=\"id\" [attr.data-refresh]=\"refreshVersion()\"\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\" matIconButton [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\" matIconButton [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>\r\n","/**\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\n\r\nimport { CommonModule } from '@angular/common';\r\nimport { AfterContentChecked, AfterContentInit, ChangeDetectionStrategy, Component, ContentChild, ContentChildren, Directive, ElementRef, EventEmitter, Input, NgZone, OnChanges, OnDestroy, Output, QueryList, Renderer2, SimpleChanges, TemplateRef, ViewChild, ViewEncapsulation, booleanAttribute, numberAttribute, DOCUMENT, inject, signal } 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<unknown>>(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<HTMLElement>>(ElementRef);\r\n zone = inject(NgZone);\r\n readonly refreshVersion = signal(0);\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&&this.suspendAutoPlay) {\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._numScroll;\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, unknown> | null | undefined;\r\n\r\n @Input() indicatorStyleClass: string = '';\r\n\r\n @Input() indicatorStyle: Record<string, unknown> | null | undefined;\r\n\r\n @Input() get data(): Record<string, unknown>[] {\r\n return this._data!;\r\n }\r\n set data(val: Record<string, unknown>[]) {\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: booleanAttribute }) suspendAutoPlay: boolean = true;\r\n\r\n @Input({ transform: numberAttribute }) autoplayInterval: number = 0;\r\n\r\n @Input() style: Record<string, unknown> | 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<HTMLElement> | undefined;\r\n\r\n @ViewChild('indicatorContent') indicatorContent: ElementRef<HTMLElement> | 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: { numScroll: number; numVisible: number; value: Record<string, unknown>[] } = {\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: HTMLStyleElement | null = null;\r\n\r\n id: string | undefined;\r\n\r\n totalShiftedItems;\r\n\r\n isRemainingItemsAdded: boolean = false;\r\n\r\n animationTimeout: number | null = null;\r\n\r\n translateTimeout: number | null = null;\r\n\r\n remainingItems: number = 0;\r\n\r\n startPos: { x: number; y: number } | null = null;\r\n\r\n documentResizeListener: VoidFunction | null = null;\r\n\r\n clonedItemsForStarting: Record<string, unknown>[] = [];\r\n\r\n clonedItemsForFinishing: Record<string, unknown>[] = [];\r\n\r\n allowAutoplay: boolean | undefined;\r\n\r\n interval: number | null = null;\r\n\r\n isCreated: boolean | undefined;\r\n\r\n swipeThreshold: number = 20;\r\n\r\n itemTemplate: TemplateRef<unknown> | null;\r\n\r\n headerTemplate: TemplateRef<unknown> | null;\r\n\r\n footerTemplate: TemplateRef<unknown> | null;\r\n\r\n previousIconTemplate: TemplateRef<unknown> | null;\r\n\r\n nextIconTemplate: TemplateRef<unknown> | 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: Record<string, unknown>[] | 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.refreshVersion.update(value => value + 1);\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): void => {\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.refreshVersion.update(value => value + 1);\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 ?? 0;\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 this._stopAutoplay();\r\n if (this.animationTimeout !== null) {\r\n clearTimeout(this.animationTimeout);\r\n this.animationTimeout = null;\r\n }\r\n if (this.translateTimeout !== null) {\r\n clearTimeout(this.translateTimeout);\r\n this.translateTimeout = null;\r\n }\r\n if (this.carouselStyle?.parentNode) {\r\n this.carouselStyle.parentNode.removeChild(this.carouselStyle);\r\n this.carouselStyle = null;\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) as number[];\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&&this.suspendAutoPlay) {\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&&this.suspendAutoPlay) {\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&&this.suspendAutoPlay) {\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.startPos) {\r\n return;\r\n }\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', (): void => {\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 \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<HTMLElement>('[data-pc-section=\"indicator\"]') ?? []);\r\n const highlightedIndex = indicators.findIndex((ind): boolean => ind.getAttribute('cmat-carousel-highlight') !== undefined);\r\n\r\n const activeIndicator = this.indicatorContent?.nativeElement ? this.indicatorContent?.nativeElement.querySelector<HTMLElement>('[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]') : null;\r\n const activeIndex = indicators.findIndex((ind): boolean => ind === activeIndicator?.parentElement);\r\n\r\n (indicators[activeIndex]?.children[0] as HTMLButtonElement | undefined) && ((indicators[activeIndex].children[0] as HTMLButtonElement).tabIndex = -1);\r\n (indicators[highlightedIndex]?.children[0] as HTMLButtonElement | undefined) && ((indicators[highlightedIndex].children[0] as HTMLButtonElement).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<HTMLElement>('[data-pc-section=\"indicator\"]') ?? []);\r\n\r\n (indicators[prevInd]?.children[0] as HTMLButtonElement | undefined) && ((indicators[prevInd].children[0] as HTMLButtonElement).tabIndex = -1);\r\n (indicators[nextInd]?.children[0] as HTMLButtonElement | undefined) && ((indicators[nextInd].children[0] as HTMLButtonElement).tabIndex = 0);\r\n (indicators[nextInd]?.children[0] as HTMLButtonElement | undefined)?.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 ?? 0;\r\n this.pageEvent.emit({\r\n page: this.page\r\n });\r\n this.refreshVersion.update(value => value + 1);\r\n this._updateCarouselItemsAccessibility();\r\n }\r\n\r\n private _startAutoplay(): void {\r\n if (this.interval !== null) {\r\n return;\r\n }\r\n this.interval = window.setInterval((): void => {\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.refreshVersion.update(value => value + 1);\r\n }\r\n\r\n private _stopAutoplay(changeAllow: boolean = true): void {\r\n if (this.interval !== null) {\r\n clearInterval(this.interval);\r\n this.interval = null;\r\n if (changeAllow) {\r\n this.allowAutoplay = false;\r\n }\r\n }\r\n this.refreshVersion.update(value => value + 1);\r\n }\r\n\r\n private _findFocusedIndicatorIndex(): number {\r\n const indicators = Array.from(this.indicatorContent?.nativeElement.querySelectorAll<HTMLElement>('[data-pc-section=\"indicator\"]') ?? []);\r\n const activeIndicator = this.indicatorContent?.nativeElement ? this.indicatorContent?.nativeElement.querySelector<HTMLElement>('[data-pc-section=\"indicator\"] > button[tabindex=\"0\"]') : null;\r\n\r\n return indicators.findIndex((ind): boolean => 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') as HTMLStyleElement;\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): number => {\r\n const value1 = data1.breakpoint;\r\n const value2 = data2.breakpoint;\r\n let result;\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 if (this.carouselStyle) {\r\n this.renderer.setProperty(this.carouselStyle, 'textContent', innerHTML);\r\n }\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 (this.window) {\r\n let windowWidth = this.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.refreshVersion.update(value => value + 1);\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): void => {\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: Element, index: number): void => {\r\n const isActive = index === this._page;\r\n (slide as HTMLElement).setAttribute('aria-hidden', !isActive ? 'true' : 'false');\r\n this._updateSlideAccessibility(slide as HTMLElement, 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 = [...this.data.slice(-1 * this._numVisible)];\r\n this.clonedItemsForFinishing= [...this.data.slice(0, this._numVisible)];\r\n }\r\n }\r\n}","<div role=\"region\" [attr.id]=\"id\" [attr.data-refresh]=\"refreshVersion()\"\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\" matIconButton [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\" matIconButton [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>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -50,11 +50,11 @@ class CmatCascadeBottomSheetComponent {
50
50
  }
51
51
  }
52
52
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatCascadeBottomSheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
53
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", 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\" matIconButton (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 }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", 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\" matIconButton (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 ?? false, 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
54
  }
55
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatCascadeBottomSheetComponent, decorators: [{
56
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\" matIconButton (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"] }]
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\" matIconButton (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 ?? false, 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
58
  }], ctorParameters: () => [] });
59
59
 
60
60
  class CmatCascadeMenuComponent {
@@ -285,7 +285,8 @@ class CmatCascadeListComponent {
285
285
  ...item,
286
286
  active: false
287
287
  }));
288
- return this.steps.push(nativeNext);
288
+ this.steps.push(nativeNext);
289
+ return;
289
290
  }
290
291
  this._changeLabels();
291
292
  if (this.overlayRef?.hasAttached()) {
@@ -312,7 +313,8 @@ class CmatCascadeListComponent {
312
313
  _initSteps(index, options) {
313
314
  const step = [];
314
315
  options.map((item) => {
315
- if (this.value[index].value === item.value || (this.allowLabelValue && this.value[index].label === item.label)) {
316
+ if (this.value?.[index] &&
317
+ (this.value[index].value === item.value || (this.allowLabelValue && this.value[index].label === item.label))) {
316
318
  if (!isUndefined(item.children))
317
319
  options = item.children;
318
320
  step.push(({
@@ -326,7 +328,7 @@ class CmatCascadeListComponent {
326
328
  });
327
329
  this.steps.push(step);
328
330
  index += 1;
329
- if (index < this.value.length) {
331
+ if (this.value && index < this.value.length) {
330
332
  this._initSteps(index, options);
331
333
  }
332
334
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-cascade.mjs","sources":["../../../projects/cmat/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.ts","../../../projects/cmat/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.html","../../../projects/cmat/components/cascade/cascade-menu/cascade-menu.component.ts","../../../projects/cmat/components/cascade/cascade-menu/cascade-menu.component.html","../../../projects/cmat/components/cascade/cascade-list/cascade-list.component.ts","../../../projects/cmat/components/cascade/cascade-list/cascade-list.component.html","../../../projects/cmat/components/cascade/cmat-components-cascade.ts"],"sourcesContent":["\r\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MAT_BOTTOM_SHEET_DATA } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { isNull, isUndefined } from 'lodash-es';\r\nimport { CmatCascadeListComponent } from '../cascade-list/cascade-list.component';\r\nimport { CmatCascadeOptionsInterface } from '../options.interface';\r\n\r\n@Component({\r\n selector: 'cmat-cascade-bottom-sheet',\r\n templateUrl: './cascade-bottom-sheet.component.html',\r\n styleUrls: ['./cascade-bottom-sheet.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatCascadeBottomSheet',\r\n imports: [MatButtonModule, MatTabsModule, MatListModule, MatIconModule]\r\n})\r\nexport class CmatCascadeBottomSheetComponent {\r\n root = inject<CmatCascadeListComponent>(MAT_BOTTOM_SHEET_DATA);\r\n\r\n selected = new FormControl(0);\r\n labels: string[] = [];\r\n\r\n \r\n\r\n constructor() {\r\n this.root.steps.forEach((items: CmatCascadeOptionsInterface[]) => {\r\n const steps: CmatCascadeOptionsInterface[] = items.filter((item: CmatCascadeOptionsInterface) => item.active);\r\n if (steps[0] && !isUndefined(steps[0].label)) { this.labels.push(steps[0].label); }\r\n });\r\n }\r\n\r\n clickHandle(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n select(disabled: boolean, label: string): void {\r\n if (!disabled) {\r\n if (!isNull(this.selected.value)) {\r\n this.labels[this.selected.value] = label;\r\n this.labels = this.labels.slice(0, this.selected.value + 1);\r\n }\r\n this.selected.setValue(this.root.steps.length - 1);\r\n }\r\n }\r\n}\r\n","<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\" matIconButton (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] || '选择'\">\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>","\r\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { CmatCascadeListComponent } from '../cascade-list/cascade-list.component';\r\n\r\n@Component({\r\n selector: 'cmat-cascade-menu',\r\n templateUrl: './cascade-menu.component.html',\r\n styleUrls: ['./cascade-menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatCascadeMenu',\r\n imports: [MatListModule, MatIconModule]\r\n})\r\nexport class CmatCascadeMenuComponent {\r\n root = inject(CmatCascadeListComponent, { optional: true })!;\r\n}\r\n","@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}","/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\nimport { CdkOverlayOrigin, Overlay, OverlayConfig, OverlayModule, OverlayRef } from '@angular/cdk/overlay';\r\nimport { CdkPortal, PortalModule } from '@angular/cdk/portal';\r\nimport { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, HostBinding, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild, ViewEncapsulation, inject, signal } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\r\nimport { MatBottomSheet, MatBottomSheetRef } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { isNil, isUndefined } from 'lodash-es';\r\nimport { Subject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { CmatCascadeBottomSheetComponent } from '../cascade-bottom-sheet/cascade-bottom-sheet.component';\r\nimport { CmatCascadeMenuComponent } from '../cascade-menu/cascade-menu.component';\r\nimport { CmatCascadeOptionsInterface } from '../options.interface';\r\n\r\nlet NEXT_ID = 0;\r\n\r\n@Component({\r\n selector: 'cmat-cascade-list',\r\n templateUrl: './cascade-list.component.html',\r\n styleUrls: ['./cascade-list.component.scss'],\r\n providers: [{ provide: MatFormFieldControl, useExisting: CmatCascadeListComponent }],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatCascadeList',\r\n imports: [MatIconModule, NgClass, CmatCascadeMenuComponent, MatInputModule, OverlayModule, PortalModule, MatButtonModule]\r\n})\r\nexport class CmatCascadeListComponent implements MatFormFieldControl<any>, OnDestroy, OnInit, OnChanges, ControlValueAccessor {\r\n ngControl = inject(NgControl, { optional: true, self: true })!;\r\n private _overlay = inject(Overlay);\r\n private _breakpointObserver = inject(BreakpointObserver);\r\n private _bottomSheet = inject(MatBottomSheet);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n /* 组件 id */\r\n @HostBinding('attr.id')\r\n @Input()\r\n public id = `cmat-cascade-list-${NEXT_ID++}`;\r\n @Input({ required: true }) options: CmatCascadeOptionsInterface[];\r\n @Input() clearable = false;\r\n @Input() fullLevels = true;\r\n @Input() changeOnSelect = false;\r\n @Input() allowLabelValue = false;\r\n\r\n @ViewChild(CdkOverlayOrigin, { static: true }) overlayOrigin: CdkOverlayOrigin;\r\n @ViewChild('menuTemplate', { static: true }) menuTemplate: CdkPortal;\r\n @ViewChild('inputElement', { static: true }) private _inputElement: ElementRef<HTMLInputElement>;\r\n overlayRef: OverlayRef;\r\n bottomSheetRef: MatBottomSheetRef;\r\n steps: any[] = [];\r\n menuVisible = false;\r\n currentLabels: CmatCascadeOptionsInterface[] = [];\r\n\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n focused: boolean = false;\r\n touched: boolean = false;\r\n controlType: string = 'cmat-cascade-list';\r\n readonly refreshVersion = signal(0);\r\n\r\n \r\n constructor() {\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n }\r\n private _touchUi = false;\r\n @Input()\r\n get touchUi(): boolean {\r\n return this._touchUi;\r\n }\r\n\r\n set touchUi(value: boolean) {\r\n this._touchUi = coerceBooleanProperty(value);\r\n }\r\n\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholder;\r\n }\r\n set placeholder(value: string) {\r\n this._placeholder = value;\r\n this.stateChanges.next();\r\n }\r\n private _placeholder: string = '请选择';\r\n\r\n @Input()\r\n get value(): any {\r\n return this._value;\r\n }\r\n set value(value: any) {\r\n if (value !== this.value) {\r\n this._value = value;\r\n this._setInputValue();\r\n\r\n this.stateChanges.next();\r\n\r\n this.controlChange(value);\r\n }\r\n }\r\n protected _value: any;\r\n\r\n get empty(): boolean {\r\n return !this._value;\r\n }\r\n\r\n get errorState(): boolean {\r\n if (this.ngControl == null)\r\n return false;\r\n\r\n return (this.touched && this.ngControl?.invalid) ?? false;\r\n }\r\n\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n @Input()\r\n get required(): boolean { return this._required; }\r\n set required(value: any) {\r\n this._required = coerceBooleanProperty(value);\r\n this.stateChanges.next();\r\n }\r\n protected _required = false;\r\n\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n if (!isNil(this.ngControl?.disabled)) {\r\n return this.ngControl.disabled;\r\n }\r\n return this._disabled;\r\n }\r\n set disabled(value: BooleanInput) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n if (this.focused) {\r\n this.focused = false;\r\n this.stateChanges.next();\r\n }\r\n }\r\n protected _disabled = false;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched: () => any = () => { };\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n controlChange: (value: any[] | null) => any = () => { };\r\n\r\n ngOnInit(): void {\r\n const config = new OverlayConfig({\r\n hasBackdrop: true,\r\n backdropClass: 'cdk-overlay-transparent-backdrop',\r\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\r\n positionStrategy: this._overlay\r\n .position()\r\n .flexibleConnectedTo(\r\n this.overlayOrigin.elementRef)\r\n .withPositions([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top'\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom'\r\n }\r\n ])\r\n });\r\n\r\n this._breakpointObserver.observe(Breakpoints.Handset).pipe(\r\n takeUntilDestroyed(this._destroyRef),\r\n map((match: { matches: any }) => match.matches)\r\n ).subscribe((matches: boolean) => {\r\n this.touchUi !== matches && !matches && this.bottomSheetRef?.dismiss();\r\n });\r\n\r\n this.overlayRef = this._overlay.create(config);\r\n\r\n this.overlayRef.backdropClick().subscribe(() => {\r\n this.overlayRef.detach();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['options']) {\r\n if ((this.value && !this.value.length) || !this.value) {\r\n const step1 = this.options.map((option: CmatCascadeOptionsInterface) => ({\r\n ...option,\r\n active: false\r\n }));\r\n this.steps = [step1];\r\n }\r\n\r\n this._init();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n this.steps = [];\r\n this._init();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.controlChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n setDescribedByIds(ids: string[]): void {\r\n if (ids.length) {\r\n this._inputElement.nativeElement.setAttribute('aria-describedby', ids.join(' '));\r\n } else {\r\n this._inputElement.nativeElement.removeAttribute('aria-describedby');\r\n }\r\n }\r\n\r\n onContainerClick(): void {\r\n if (!this.focused) {\r\n this._inputElement.nativeElement.focus();\r\n }\r\n }\r\n\r\n clickHandle(event: MouseEvent): void {\r\n if (this.disabled || this.options.length === 0) {\r\n return;\r\n }\r\n const element: HTMLElement = event.target as HTMLElement;\r\n const isSelfTrigger = ['SPAN', 'I', 'INPUT'].find(v => v === element.tagName);\r\n if (!isSelfTrigger) {\r\n return;\r\n }\r\n\r\n if (this.touchUi) {\r\n if (this.overlayRef?.hasAttached()) {\r\n this.overlayRef.detach();\r\n }\r\n this._openBottomSheet();\r\n } else {\r\n this.overlayRef.attach(this.menuTemplate);\r\n }\r\n }\r\n\r\n clearValue(event?: Event): void {\r\n if (event) { event.stopPropagation(); }\r\n this.currentLabels = [];\r\n\r\n this.steps = [];\r\n\r\n const step1 = this.options.map((option: CmatCascadeOptionsInterface) => ({\r\n ...option,\r\n active: false\r\n }));\r\n this.steps = [step1];\r\n\r\n\r\n this.value = null;\r\n\r\n this.refreshVersion.update(value => value + 1);\r\n }\r\n\r\n\r\n showClearIcon(): boolean {\r\n return !!(this.clearable && this.currentLabels.length > 0 && !this.disabled);\r\n }\r\n\r\n selectHandle(event: Event, step: number, index: number): any {\r\n event.stopPropagation();\r\n\r\n if (this.steps[step][index].disabled) {\r\n return;\r\n }\r\n\r\n this.steps[step] = this.steps[step].map((item: CmatCascadeOptionsInterface, i: number) =>\r\n ({\r\n ...item,\r\n active: i === index\r\n }));\r\n this.steps.length = step + 1;\r\n const next = this.steps[step][index].children;\r\n if (next && Array.isArray(next) && next.length) {\r\n if (this.changeOnSelect) { this._changeLabels(); }\r\n\r\n const nativeNext = next.map((item: CmatCascadeOptionsInterface) => ({\r\n ...item,\r\n active: false\r\n }));\r\n return this.steps.push(nativeNext);\r\n }\r\n this._changeLabels();\r\n\r\n if (this.overlayRef?.hasAttached()) {\r\n this.overlayRef.detach();\r\n }\r\n if (this.touchUi) {\r\n this.bottomSheetRef.dismiss();\r\n }\r\n }\r\n\r\n onFocusIn(): void {\r\n if (!this.focused) {\r\n this.focused = true;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onFocusOut(event: FocusEvent): void {\r\n if (!this._inputElement.nativeElement.contains(event.relatedTarget as Element)) {\r\n this.touched = true;\r\n this.focused = false;\r\n this.onTouched();\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n private _initSteps(index: number, options: CmatCascadeOptionsInterface[]): void {\r\n const step: CmatCascadeOptionsInterface[] = [];\r\n options.map((item: CmatCascadeOptionsInterface) => {\r\n if (this.value[index].value === item.value||(this.allowLabelValue&&this.value[index].label === item.label)) {\r\n if (!isUndefined(item.children))\r\n options = item.children;\r\n\r\n step.push(({\r\n ...item,\r\n active: true\r\n }));\r\n } else {\r\n step.push(item);\r\n }\r\n });\r\n this.steps.push(step);\r\n index += 1;\r\n if (index < this.value.length) {\r\n this._initSteps(index, options);\r\n }\r\n }\r\n\r\n private _changeLabels(): void {\r\n const nextValue: CmatCascadeOptionsInterface[] = [];\r\n\r\n this.steps.forEach((items: CmatCascadeOptionsInterface[]) => {\r\n const steps: CmatCascadeOptionsInterface[] = items.filter((item: CmatCascadeOptionsInterface) => item.active);\r\n nextValue.push(steps[0]);\r\n });\r\n this.currentLabels = nextValue;\r\n const next = nextValue.map((item: CmatCascadeOptionsInterface) => {\r\n return {\r\n value: item.value,\r\n label: item.label\r\n }\r\n });\r\n\r\n this.value = next;\r\n }\r\n\r\n\r\n private _openBottomSheet(): void {\r\n this.bottomSheetRef = this._bottomSheet.open(CmatCascadeBottomSheetComponent, {\r\n data: this\r\n });\r\n }\r\n\r\n private _init(): void {\r\n this.currentLabels = [];\r\n\r\n if (this.value?.length && this.options.length > 0) {\r\n let options: CmatCascadeOptionsInterface[] = this.options;\r\n\r\n const val = this.value.map((v: any) => {\r\n const item = options.filter((i: CmatCascadeOptionsInterface) => i.value === v.value||(this.allowLabelValue&&i.label === v.label))?.[0];\r\n\r\n if (!isUndefined(item?.children))\r\n options = item.children;\r\n return item;\r\n });\r\n\r\n this.currentLabels = val.filter((v: any) => !!v);\r\n this._setInputValue();\r\n this._initSteps(0, this.options);\r\n }\r\n\r\n this.refreshVersion.update(value => value + 1);\r\n }\r\n\r\n private _setInputValue(): void {\r\n this._inputElement.nativeElement.value = '';\r\n if (this.fullLevels) {\r\n this.currentLabels.map((value, i) => {\r\n this._inputElement.nativeElement.value += `${value.label}${i < this.currentLabels.length - 1 ? ' / ' : ''}`;\r\n });\r\n } else {\r\n this._inputElement.nativeElement.value = this.currentLabels[this.currentLabels.length - 1].label ?? '';\r\n }\r\n }\r\n}\r\n","<span role=\"presentation\" class=\"cmat-cascade-list\" cdk-overlay-origin [attr.data-refresh]=\"refreshVersion()\"\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 matIconButton 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\" cdkPortal>\r\n <cmat-cascade-menu></cmat-cascade-menu>\r\n</ng-template>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i3","i5"],"mappings":"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"}
1
+ {"version":3,"file":"cmat-components-cascade.mjs","sources":["../../../projects/cmat/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.ts","../../../projects/cmat/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.html","../../../projects/cmat/components/cascade/cascade-menu/cascade-menu.component.ts","../../../projects/cmat/components/cascade/cascade-menu/cascade-menu.component.html","../../../projects/cmat/components/cascade/cascade-list/cascade-list.component.ts","../../../projects/cmat/components/cascade/cascade-list/cascade-list.component.html","../../../projects/cmat/components/cascade/cmat-components-cascade.ts"],"sourcesContent":["\r\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MAT_BOTTOM_SHEET_DATA } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { isNull, isUndefined } from 'lodash-es';\r\nimport { CmatCascadeListComponent } from '../cascade-list/cascade-list.component';\r\nimport { CmatCascadeOptionsInterface } from '../options.interface';\r\n\r\n@Component({\r\n selector: 'cmat-cascade-bottom-sheet',\r\n templateUrl: './cascade-bottom-sheet.component.html',\r\n styleUrls: ['./cascade-bottom-sheet.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatCascadeBottomSheet',\r\n imports: [MatButtonModule, MatTabsModule, MatListModule, MatIconModule]\r\n})\r\nexport class CmatCascadeBottomSheetComponent {\r\n root = inject<CmatCascadeListComponent>(MAT_BOTTOM_SHEET_DATA);\r\n\r\n selected = new FormControl(0);\r\n labels: string[] = [];\r\n\r\n \r\n\r\n constructor() {\r\n this.root.steps.forEach((items: CmatCascadeOptionsInterface[]) => {\r\n const steps: CmatCascadeOptionsInterface[] = items.filter((item: CmatCascadeOptionsInterface) => item.active);\r\n if (steps[0] && !isUndefined(steps[0].label)) { this.labels.push(steps[0].label); }\r\n });\r\n }\r\n\r\n clickHandle(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n select(disabled: boolean, label: string): void {\r\n if (!disabled) {\r\n if (!isNull(this.selected.value)) {\r\n this.labels[this.selected.value] = label;\r\n this.labels = this.labels.slice(0, this.selected.value + 1);\r\n }\r\n this.selected.setValue(this.root.steps.length - 1);\r\n }\r\n }\r\n}\r\n","<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\" matIconButton (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] || '选择'\">\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 ?? false, 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>","\r\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { CmatCascadeListComponent } from '../cascade-list/cascade-list.component';\r\n\r\n@Component({\r\n selector: 'cmat-cascade-menu',\r\n templateUrl: './cascade-menu.component.html',\r\n styleUrls: ['./cascade-menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatCascadeMenu',\r\n imports: [MatListModule, MatIconModule]\r\n})\r\nexport class CmatCascadeMenuComponent {\r\n root = inject(CmatCascadeListComponent, { optional: true })!;\r\n}\r\n","@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}","/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\nimport { CdkOverlayOrigin, Overlay, OverlayConfig, OverlayModule, OverlayRef } from '@angular/cdk/overlay';\r\nimport { CdkPortal, PortalModule } from '@angular/cdk/portal';\r\nimport { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, HostBinding, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild, ViewEncapsulation, inject, signal } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\r\nimport { MatBottomSheet, MatBottomSheetRef } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { isNil, isUndefined } from 'lodash-es';\r\nimport { Subject } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { CmatCascadeBottomSheetComponent } from '../cascade-bottom-sheet/cascade-bottom-sheet.component';\r\nimport { CmatCascadeMenuComponent } from '../cascade-menu/cascade-menu.component';\r\nimport { CmatCascadeOptionsInterface } from '../options.interface';\r\n\r\nlet NEXT_ID = 0;\r\n\r\n@Component({\r\n selector: 'cmat-cascade-list',\r\n templateUrl: './cascade-list.component.html',\r\n styleUrls: ['./cascade-list.component.scss'],\r\n providers: [{ provide: MatFormFieldControl, useExisting: CmatCascadeListComponent }],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatCascadeList',\r\n imports: [MatIconModule, NgClass, CmatCascadeMenuComponent, MatInputModule, OverlayModule, PortalModule, MatButtonModule]\r\n})\r\nexport class CmatCascadeListComponent implements MatFormFieldControl<any>, OnDestroy, OnInit, OnChanges, ControlValueAccessor {\r\n ngControl = inject(NgControl, { optional: true, self: true })!;\r\n private _overlay = inject(Overlay);\r\n private _breakpointObserver = inject(BreakpointObserver);\r\n private _bottomSheet = inject(MatBottomSheet);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n /* 组件 id */\r\n @HostBinding('attr.id')\r\n @Input()\r\n public id = `cmat-cascade-list-${NEXT_ID++}`;\r\n @Input({ required: true }) options: CmatCascadeOptionsInterface[];\r\n @Input() clearable = false;\r\n @Input() fullLevels = true;\r\n @Input() changeOnSelect = false;\r\n @Input() allowLabelValue = false;\r\n\r\n @ViewChild(CdkOverlayOrigin, { static: true }) overlayOrigin: CdkOverlayOrigin;\r\n @ViewChild('menuTemplate', { static: true }) menuTemplate: CdkPortal;\r\n @ViewChild('inputElement', { static: true }) private _inputElement: ElementRef<HTMLInputElement>;\r\n overlayRef: OverlayRef;\r\n bottomSheetRef: MatBottomSheetRef;\r\n steps: CmatCascadeOptionsInterface[][] = [];\r\n menuVisible = false;\r\n currentLabels: CmatCascadeOptionsInterface[] = [];\r\n\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n focused: boolean = false;\r\n touched: boolean = false;\r\n controlType: string = 'cmat-cascade-list';\r\n readonly refreshVersion = signal(0);\r\n\r\n \r\n constructor() {\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n }\r\n private _touchUi = false;\r\n @Input()\r\n get touchUi(): boolean {\r\n return this._touchUi;\r\n }\r\n\r\n set touchUi(value: boolean) {\r\n this._touchUi = coerceBooleanProperty(value);\r\n }\r\n\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholder;\r\n }\r\n set placeholder(value: string) {\r\n this._placeholder = value;\r\n this.stateChanges.next();\r\n }\r\n private _placeholder: string = '请选择';\r\n\r\n @Input()\r\n get value(): CmatCascadeOptionsInterface[] | null {\r\n return this._value;\r\n }\r\n set value(value: CmatCascadeOptionsInterface[] | null) {\r\n if (value !== this.value) {\r\n this._value = value;\r\n this._setInputValue();\r\n\r\n this.stateChanges.next();\r\n\r\n this.controlChange(value);\r\n }\r\n }\r\n protected _value: CmatCascadeOptionsInterface[] | null;\r\n\r\n get empty(): boolean {\r\n return !this._value;\r\n }\r\n\r\n get errorState(): boolean {\r\n if (this.ngControl == null)\r\n return false;\r\n\r\n return (this.touched && this.ngControl?.invalid) ?? false;\r\n }\r\n\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n @Input()\r\n get required(): boolean { return this._required; }\r\n set required(value: BooleanInput) {\r\n this._required = coerceBooleanProperty(value);\r\n this.stateChanges.next();\r\n }\r\n protected _required = false;\r\n\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n if (!isNil(this.ngControl?.disabled)) {\r\n return this.ngControl.disabled;\r\n }\r\n return this._disabled;\r\n }\r\n set disabled(value: BooleanInput) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n if (this.focused) {\r\n this.focused = false;\r\n this.stateChanges.next();\r\n }\r\n }\r\n protected _disabled = false;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched: () => void = () => { };\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n controlChange: (value: CmatCascadeOptionsInterface[] | null) => void = () => { };\r\n\r\n ngOnInit(): void {\r\n const config = new OverlayConfig({\r\n hasBackdrop: true,\r\n backdropClass: 'cdk-overlay-transparent-backdrop',\r\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\r\n positionStrategy: this._overlay\r\n .position()\r\n .flexibleConnectedTo(\r\n this.overlayOrigin.elementRef)\r\n .withPositions([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top'\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom'\r\n }\r\n ])\r\n });\r\n\r\n this._breakpointObserver.observe(Breakpoints.Handset).pipe(\r\n takeUntilDestroyed(this._destroyRef),\r\n map((match: { matches: boolean }) => match.matches)\r\n ).subscribe((matches: boolean) => {\r\n this.touchUi !== matches && !matches && this.bottomSheetRef?.dismiss();\r\n });\r\n\r\n this.overlayRef = this._overlay.create(config);\r\n\r\n this.overlayRef.backdropClick().subscribe(() => {\r\n this.overlayRef.detach();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['options']) {\r\n if ((this.value && !this.value.length) || !this.value) {\r\n const step1 = this.options.map((option: CmatCascadeOptionsInterface) => ({\r\n ...option,\r\n active: false\r\n }));\r\n this.steps = [step1];\r\n }\r\n\r\n this._init();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n }\r\n\r\n writeValue(value: CmatCascadeOptionsInterface[] | null): void {\r\n this.value = value;\r\n this.steps = [];\r\n this._init();\r\n }\r\n\r\n registerOnChange(fn: (value: CmatCascadeOptionsInterface[] | null) => void): void {\r\n this.controlChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n setDescribedByIds(ids: string[]): void {\r\n if (ids.length) {\r\n this._inputElement.nativeElement.setAttribute('aria-describedby', ids.join(' '));\r\n } else {\r\n this._inputElement.nativeElement.removeAttribute('aria-describedby');\r\n }\r\n }\r\n\r\n onContainerClick(): void {\r\n if (!this.focused) {\r\n this._inputElement.nativeElement.focus();\r\n }\r\n }\r\n\r\n clickHandle(event: MouseEvent): void {\r\n if (this.disabled || this.options.length === 0) {\r\n return;\r\n }\r\n const element: HTMLElement = event.target as HTMLElement;\r\n const isSelfTrigger = ['SPAN', 'I', 'INPUT'].find(v => v === element.tagName);\r\n if (!isSelfTrigger) {\r\n return;\r\n }\r\n\r\n if (this.touchUi) {\r\n if (this.overlayRef?.hasAttached()) {\r\n this.overlayRef.detach();\r\n }\r\n this._openBottomSheet();\r\n } else {\r\n this.overlayRef.attach(this.menuTemplate);\r\n }\r\n }\r\n\r\n clearValue(event?: Event): void {\r\n if (event) { event.stopPropagation(); }\r\n this.currentLabels = [];\r\n\r\n this.steps = [];\r\n\r\n const step1 = this.options.map((option: CmatCascadeOptionsInterface) => ({\r\n ...option,\r\n active: false\r\n }));\r\n this.steps = [step1];\r\n\r\n\r\n this.value = null;\r\n\r\n this.refreshVersion.update(value => value + 1);\r\n }\r\n\r\n\r\n showClearIcon(): boolean {\r\n return !!(this.clearable && this.currentLabels.length > 0 && !this.disabled);\r\n }\r\n\r\n selectHandle(event: Event, step: number, index: number): void {\r\n event.stopPropagation();\r\n\r\n if (this.steps[step][index].disabled) {\r\n return;\r\n }\r\n\r\n this.steps[step] = this.steps[step].map((item: CmatCascadeOptionsInterface, i: number) =>\r\n ({\r\n ...item,\r\n active: i === index\r\n }));\r\n this.steps.length = step + 1;\r\n const next = this.steps[step][index].children;\r\n if (next && Array.isArray(next) && next.length) {\r\n if (this.changeOnSelect) { this._changeLabels(); }\r\n\r\n const nativeNext = next.map((item: CmatCascadeOptionsInterface) => ({\r\n ...item,\r\n active: false\r\n }));\r\n this.steps.push(nativeNext);\r\n return;\r\n }\r\n this._changeLabels();\r\n\r\n if (this.overlayRef?.hasAttached()) {\r\n this.overlayRef.detach();\r\n }\r\n if (this.touchUi) {\r\n this.bottomSheetRef.dismiss();\r\n }\r\n }\r\n\r\n onFocusIn(): void {\r\n if (!this.focused) {\r\n this.focused = true;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onFocusOut(event: FocusEvent): void {\r\n if (!this._inputElement.nativeElement.contains(event.relatedTarget as Element)) {\r\n this.touched = true;\r\n this.focused = false;\r\n this.onTouched();\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n private _initSteps(index: number, options: CmatCascadeOptionsInterface[]): void {\r\n const step: CmatCascadeOptionsInterface[] = [];\r\n options.map((item: CmatCascadeOptionsInterface) => {\r\n if (\r\n this.value?.[index] &&\r\n (this.value[index].value === item.value || (this.allowLabelValue && this.value[index].label === item.label))\r\n ) {\r\n if (!isUndefined(item.children))\r\n options = item.children;\r\n\r\n step.push(({\r\n ...item,\r\n active: true\r\n }));\r\n } else {\r\n step.push(item);\r\n }\r\n });\r\n this.steps.push(step);\r\n index += 1;\r\n if (this.value && index < this.value.length) {\r\n this._initSteps(index, options);\r\n }\r\n }\r\n\r\n private _changeLabels(): void {\r\n const nextValue: CmatCascadeOptionsInterface[] = [];\r\n\r\n this.steps.forEach((items: CmatCascadeOptionsInterface[]) => {\r\n const steps: CmatCascadeOptionsInterface[] = items.filter((item: CmatCascadeOptionsInterface) => item.active);\r\n nextValue.push(steps[0]);\r\n });\r\n this.currentLabels = nextValue;\r\n const next = nextValue.map((item: CmatCascadeOptionsInterface) => {\r\n return {\r\n value: item.value,\r\n label: item.label\r\n }\r\n });\r\n\r\n this.value = next;\r\n }\r\n\r\n\r\n private _openBottomSheet(): void {\r\n this.bottomSheetRef = this._bottomSheet.open(CmatCascadeBottomSheetComponent, {\r\n data: this\r\n });\r\n }\r\n\r\n private _init(): void {\r\n this.currentLabels = [];\r\n\r\n if (this.value?.length && this.options.length > 0) {\r\n let options: CmatCascadeOptionsInterface[] = this.options;\r\n\r\n const val = this.value.map((v) => {\r\n const item = options.filter((i: CmatCascadeOptionsInterface) => i.value === v.value||(this.allowLabelValue&&i.label === v.label))?.[0];\r\n\r\n if (!isUndefined(item?.children))\r\n options = item.children;\r\n return item;\r\n });\r\n\r\n this.currentLabels = val.filter((v): v is CmatCascadeOptionsInterface => !!v);\r\n this._setInputValue();\r\n this._initSteps(0, this.options);\r\n }\r\n\r\n this.refreshVersion.update(value => value + 1);\r\n }\r\n\r\n private _setInputValue(): void {\r\n this._inputElement.nativeElement.value = '';\r\n if (this.fullLevels) {\r\n this.currentLabels.map((value, i) => {\r\n this._inputElement.nativeElement.value += `${value.label}${i < this.currentLabels.length - 1 ? ' / ' : ''}`;\r\n });\r\n } else {\r\n this._inputElement.nativeElement.value = this.currentLabels[this.currentLabels.length - 1].label ?? '';\r\n }\r\n }\r\n}\r\n","<span role=\"presentation\" class=\"cmat-cascade-list\" cdk-overlay-origin [attr.data-refresh]=\"refreshVersion()\"\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 matIconButton 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\" cdkPortal>\r\n <cmat-cascade-menu></cmat-cascade-menu>\r\n</ng-template>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i3","i5"],"mappings":"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"}