cmat 0.0.82 → 0.0.84

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 (160) 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-date-time-display.mjs.map +1 -1
  17. package/fesm2022/cmat-components-drawer.mjs +0 -2
  18. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  19. package/fesm2022/cmat-components-empty-state.mjs.map +1 -1
  20. package/fesm2022/cmat-components-file-preview.mjs.map +1 -1
  21. package/fesm2022/cmat-components-filter-toolbar.mjs.map +1 -1
  22. package/fesm2022/cmat-components-form-actions.mjs.map +1 -1
  23. package/fesm2022/cmat-components-fullscreen.mjs +1 -1
  24. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  25. package/fesm2022/cmat-components-highlight.mjs +1 -1
  26. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  27. package/fesm2022/cmat-components-image-viewer.mjs +29 -11
  28. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
  29. package/fesm2022/cmat-components-inline-loading.mjs.map +1 -1
  30. package/fesm2022/cmat-components-json-editor.mjs +16 -26
  31. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  32. package/fesm2022/cmat-components-knob-input.mjs +8 -7
  33. package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
  34. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  35. package/fesm2022/cmat-components-material-color-picker.mjs +3 -3
  36. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  37. package/fesm2022/cmat-components-material-datetimepicker.mjs +28 -16
  38. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  39. package/fesm2022/cmat-components-navigation.mjs +1 -0
  40. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  41. package/fesm2022/cmat-components-opt-input.mjs +2 -2
  42. package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
  43. package/fesm2022/cmat-components-org-chart.mjs.map +1 -1
  44. package/fesm2022/cmat-components-page-header.mjs.map +1 -1
  45. package/fesm2022/cmat-components-password-strength.mjs +8 -5
  46. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  47. package/fesm2022/cmat-components-popover.mjs +2 -2
  48. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  49. package/fesm2022/cmat-components-qrcode.mjs +9 -2
  50. package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
  51. package/fesm2022/cmat-components-rating.mjs +1 -1
  52. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  53. package/fesm2022/cmat-components-rich-text-editor.mjs.map +1 -1
  54. package/fesm2022/cmat-components-select-search.mjs +25 -24
  55. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  56. package/fesm2022/cmat-components-select-table.mjs +42 -15
  57. package/fesm2022/cmat-components-select-table.mjs.map +1 -1
  58. package/fesm2022/cmat-components-select-tree.mjs +3 -1
  59. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  60. package/fesm2022/cmat-components-skeleton.mjs.map +1 -1
  61. package/fesm2022/cmat-components-speed-dial.mjs +24 -5
  62. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
  63. package/fesm2022/cmat-components-status-tag.mjs.map +1 -1
  64. package/fesm2022/cmat-components-table-toolbar.mjs.map +1 -1
  65. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  66. package/fesm2022/cmat-components-toast.mjs +20 -13
  67. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  68. package/fesm2022/cmat-components-transfer-picker.mjs +11 -6
  69. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  70. package/fesm2022/cmat-components-treetable.mjs +4 -3
  71. package/fesm2022/cmat-components-treetable.mjs.map +1 -1
  72. package/fesm2022/cmat-components-upload.mjs +29 -15
  73. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  74. package/fesm2022/cmat-components-x6-angular-shape.mjs +2 -2
  75. package/fesm2022/cmat-components-x6-angular-shape.mjs.map +1 -1
  76. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  77. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  78. package/fesm2022/cmat-directives-data-exporter.mjs +1 -1
  79. package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
  80. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  81. package/fesm2022/cmat-directives-digit-only.mjs +12 -18
  82. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  83. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +3 -2
  84. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs.map +1 -1
  85. package/fesm2022/cmat-lib-mock-api.mjs +7 -7
  86. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  87. package/fesm2022/cmat-pipes-find-by-key.mjs +1 -1
  88. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  89. package/fesm2022/cmat-pipes-group-by.mjs +9 -5
  90. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  91. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  92. package/fesm2022/cmat-pipes-secure.mjs +9 -1
  93. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  94. package/fesm2022/cmat-services-alert.mjs +16 -7
  95. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  96. package/fesm2022/cmat-services-data.mjs.map +1 -1
  97. package/fesm2022/cmat-services-export-as.mjs +11 -10
  98. package/fesm2022/cmat-services-export-as.mjs.map +1 -1
  99. package/fesm2022/cmat-services-local-storage.mjs +42 -4
  100. package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
  101. package/fesm2022/cmat-services-title.mjs +2 -2
  102. package/fesm2022/cmat-services-title.mjs.map +1 -1
  103. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  104. package/fesm2022/cmat-services-utils.mjs +78 -57
  105. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  106. package/fesm2022/cmat-validators.mjs +4 -1
  107. package/fesm2022/cmat-validators.mjs.map +1 -1
  108. package/fesm2022/cmat.mjs +746 -426
  109. package/fesm2022/cmat.mjs.map +1 -1
  110. package/package.json +1 -1
  111. package/types/cmat-components-adapter.d.ts +24 -24
  112. package/types/cmat-components-breadcrumb.d.ts +1 -1
  113. package/types/cmat-components-card.d.ts +1 -1
  114. package/types/cmat-components-carousel.d.ts +23 -23
  115. package/types/cmat-components-cascade.d.ts +12 -12
  116. package/types/cmat-components-chip-input.d.ts +8 -8
  117. package/types/cmat-components-code-editor.d.ts +2 -2
  118. package/types/cmat-components-custom-formly.d.ts +121 -44
  119. package/types/cmat-components-date-range.d.ts +31 -16
  120. package/types/cmat-components-drawer.d.ts +2 -3
  121. package/types/cmat-components-file-preview.d.ts +1 -1
  122. package/types/cmat-components-image-viewer.d.ts +5 -3
  123. package/types/cmat-components-json-editor.d.ts +7 -9
  124. package/types/cmat-components-knob-input.d.ts +3 -3
  125. package/types/cmat-components-masonry.d.ts +3 -3
  126. package/types/cmat-components-material-color-picker.d.ts +13 -9
  127. package/types/cmat-components-material-datetimepicker.d.ts +26 -10
  128. package/types/cmat-components-navigation.d.ts +1 -1
  129. package/types/cmat-components-opt-input.d.ts +8 -8
  130. package/types/cmat-components-popover.d.ts +1 -1
  131. package/types/cmat-components-qrcode.d.ts +2 -1
  132. package/types/cmat-components-rating.d.ts +13 -13
  133. package/types/cmat-components-select-search.d.ts +5 -5
  134. package/types/cmat-components-select-table.d.ts +12 -8
  135. package/types/cmat-components-select-tree.d.ts +1 -1
  136. package/types/cmat-components-speed-dial.d.ts +3 -0
  137. package/types/cmat-components-timeline.d.ts +2 -2
  138. package/types/cmat-components-toast.d.ts +2 -2
  139. package/types/cmat-components-transfer-picker.d.ts +5 -4
  140. package/types/cmat-components-treetable.d.ts +2 -2
  141. package/types/cmat-components-upload.d.ts +36 -29
  142. package/types/cmat-components-x6-angular-shape.d.ts +1 -1
  143. package/types/cmat-directives-autofocus.d.ts +1 -1
  144. package/types/cmat-directives-data-exporter.d.ts +3 -2
  145. package/types/cmat-directives-debounce.d.ts +5 -5
  146. package/types/cmat-directives-digit-only.d.ts +7 -7
  147. package/types/cmat-directives-seamless-auto-scroll.d.ts +2 -2
  148. package/types/cmat-lib-mock-api.d.ts +1 -1
  149. package/types/cmat-pipes-find-by-key.d.ts +2 -1
  150. package/types/cmat-pipes-group-by.d.ts +7 -1
  151. package/types/cmat-pipes-keys.d.ts +4 -1
  152. package/types/cmat-pipes-secure.d.ts +1 -0
  153. package/types/cmat-services-alert.d.ts +14 -13
  154. package/types/cmat-services-data.d.ts +3 -3
  155. package/types/cmat-services-export-as.d.ts +4 -3
  156. package/types/cmat-services-local-storage.d.ts +14 -2
  157. package/types/cmat-services-translation.d.ts +3 -3
  158. package/types/cmat-services-utils.d.ts +31 -15
  159. package/types/cmat-validators.d.ts +1 -1
  160. package/types/cmat.d.ts +465 -303
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-timeline.mjs","sources":["../../../projects/cmat/components/timeline/timeline-item/timeline-item.component.ts","../../../projects/cmat/components/timeline/timeline-item/timeline-item.component.html","../../../projects/cmat/components/timeline/timeline.component.ts","../../../projects/cmat/components/timeline/timeline.component.html","../../../projects/cmat/components/timeline/cmat-components-timeline.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n Directive,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n\r\n@Directive({\r\n selector: 'ng-template[cmatTimelineItemIcon]'\r\n})\r\nexport class CmatTimelineItemIconDirective {\r\n}\r\n\r\n\r\n@Directive({\r\n selector: 'ng-template[cmatTimelineItemLabel]'\r\n})\r\nexport class CmatTimelineItemLabelDirective {\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'cmat-timeline-item',\r\n templateUrl: './timeline-item.component.html',\r\n styleUrls: ['./timeline-item.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatTimelineItem',\r\n imports: [MatIconModule, NgTemplateOutlet]\r\n})\r\nexport class CmatTimelineItemComponent {\r\n\r\n @Input()\r\n label?: string | null;\r\n\r\n @Input()\r\n icon?: string | null;\r\n\r\n @Input()\r\n svgIcon?: string | null;\r\n\r\n @Input()\r\n iconUrl?: string | null;\r\n\r\n @HostBinding('class') class='cmat-timeline-item';\r\n \r\n @ContentChild(CmatTimelineItemIconDirective, { read: TemplateRef })\r\n customIconTpl?: TemplateRef<any>;\r\n\r\n @ContentChild(CmatTimelineItemLabelDirective, { read: TemplateRef })\r\n customLabelTpl?: TemplateRef<any>;\r\n\r\n @ViewChild('contentEl', { static: true })\r\n private _contentEl!: ElementRef;\r\n\r\n @ViewChild('fillEl', { static: true })\r\n private _fillEl!: ElementRef;\r\n\r\n \r\n\r\n updateVerticalCenteredLayout(): void {\r\n this._fillEl.nativeElement.style.minWidth = this._contentEl.nativeElement.offsetWidth + 'px';\r\n this._fillEl.nativeElement.style.minHeight = 'unset';\r\n }\r\n\r\n updateHorizontalCenteredLayout(): void {\r\n this._fillEl.nativeElement.style.minHeight = this._contentEl.nativeElement.offsetHeight + 'px';\r\n this._fillEl.nativeElement.style.minWidth = 'unset';\r\n }\r\n\r\n}\r\n","<div #fillEl class=\"cmat-timeline-item-fill\"></div>\r\n\r\n<div class=\"cmat-timeline-item-timeline\">\r\n\r\n <ng-container *ngTemplateOutlet=\"customIconTpl ? customIconTpl : iconTpl\"></ng-container>\r\n\r\n <ng-template #iconTpl>\r\n @if (icon) {\r\n <mat-icon class=\"cmat-timeline-item-icon\">{{ icon }}</mat-icon>\r\n } @else {\r\n @if (svgIcon) {\r\n <mat-icon class=\"cmat-timeline-item-icon\" [svgIcon]=\"svgIcon\"></mat-icon>\r\n } @else {\r\n @if (iconUrl) {\r\n <img alt=\"icon\" class=\"cmat-timeline-item-icon\" [src]=\"iconUrl\" />\r\n }\r\n }\r\n }\r\n </ng-template>\r\n\r\n\r\n\r\n <ng-container *ngTemplateOutlet=\"customLabelTpl ? customLabelTpl : labelTpl\"></ng-container>\r\n\r\n <ng-template #labelTpl>\r\n @if (label) {\r\n <div class=\"mat-caption cmat-timeline-item-label\">{{ label }}</div>\r\n }\r\n </ng-template>\r\n\r\n <div class=\"cmat-timeline-item-line\"></div>\r\n\r\n</div>\r\n\r\n<div #contentEl class=\"cmat-timeline-item-content\">\r\n <ng-content></ng-content>\r\n</div>","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChildren,\r\n DestroyRef,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n QueryList,\r\n ViewEncapsulation,\r\n inject,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { Observable } from 'rxjs';\r\nimport { tap, throttleTime } from 'rxjs/operators';\r\nimport { CmatTimelineItemComponent } from './timeline-item/timeline-item.component';\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport type CMAT_TIMELINE_POSITION = 'start' | 'end' | 'center' | 'center-alt';\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport type CMAT_TIMELINE_ORIENTATION = 'vertical' | 'horizontal';\r\n\r\n\r\n@Component({\r\n selector: 'cmat-timeline',\r\n templateUrl: './timeline.component.html',\r\n styleUrls: ['./timeline.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'cmatTimeLine',\r\n imports: []\r\n})\r\nexport class CmatTimelineComponent implements OnInit {\r\n @ContentChildren(CmatTimelineItemComponent)\r\n readonly items = new QueryList<CmatTimelineItemComponent>();\r\n readonly class = 'cmat-timeline';\r\n\r\n private _host = inject(ElementRef);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private _reverse: boolean = false;\r\n private _position: CMAT_TIMELINE_POSITION = 'start';\r\n private _orientation: CMAT_TIMELINE_ORIENTATION = 'vertical';\r\n\r\n\r\n @HostBinding('class.cmat-timeline-start')\r\n get isStartPosition(): boolean {\r\n return this._position === 'start';\r\n }\r\n @HostBinding('class.cmat-timeline-end')\r\n get isEndPosition(): boolean {\r\n return this._position === 'end';\r\n }\r\n\r\n @HostBinding('class.cmat-timeline-center')\r\n get isCenterPosition(): boolean {\r\n return this._position === 'center';\r\n }\r\n\r\n @HostBinding('class.cmat-timeline-center-alt')\r\n get isCenterAltPosition(): boolean {\r\n return this._position === 'center-alt';\r\n }\r\n\r\n @HostBinding('class.cmat-timeline-vertical')\r\n get isVerticalOrientation(): boolean {\r\n return this._orientation === 'vertical';\r\n }\r\n\r\n @HostBinding('class.cmat-timeline-horizontal')\r\n get isHorizontalOrientation(): boolean {\r\n return this._orientation === 'horizontal';\r\n }\r\n\r\n @HostBinding('class.cmat-timeline-reverse')\r\n get isReverse(): boolean {\r\n return this._reverse;\r\n }\r\n\r\n @Input()\r\n set position(position: CMAT_TIMELINE_POSITION) {\r\n this._position = position;\r\n this.updateLayout();\r\n }\r\n\r\n @Input()\r\n set orientation(orientation: CMAT_TIMELINE_ORIENTATION) {\r\n this._orientation = orientation;\r\n this.updateLayout();\r\n }\r\n\r\n @Input()\r\n set reverse(reverse: boolean) {\r\n this._reverse = reverse;\r\n this.updateLayout();\r\n }\r\n\r\n ngOnInit(): void {\r\n new Observable((observer) => {\r\n const ro = new ResizeObserver(entries => observer.next(entries));\r\n ro.observe(this._host.nativeElement);\r\n\r\n return (): void => {\r\n ro.unobserve(this._host.nativeElement);\r\n ro.disconnect();\r\n };\r\n }).pipe(\r\n throttleTime(10),\r\n tap(() => this.updateLayout()),\r\n takeUntilDestroyed(this._destroyRef)\r\n ).subscribe();\r\n }\r\n\r\n updateLayout(): void {\r\n if (this.isCenterPosition || this.isCenterAltPosition) {\r\n this.items.forEach((item) => {\r\n this.isVerticalOrientation ? item.updateVerticalCenteredLayout() : item.updateHorizontalCenteredLayout();\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"cmat-timeline-content\">\r\n <ng-content></ng-content>\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-timeline.mjs","sources":["../../../projects/cmat/components/timeline/timeline-item/timeline-item.component.ts","../../../projects/cmat/components/timeline/timeline-item/timeline-item.component.html","../../../projects/cmat/components/timeline/timeline.component.ts","../../../projects/cmat/components/timeline/timeline.component.html","../../../projects/cmat/components/timeline/cmat-components-timeline.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n Directive,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n\r\n@Directive({\r\n selector: 'ng-template[cmatTimelineItemIcon]'\r\n})\r\nexport class CmatTimelineItemIconDirective {\r\n}\r\n\r\n\r\n@Directive({\r\n selector: 'ng-template[cmatTimelineItemLabel]'\r\n})\r\nexport class CmatTimelineItemLabelDirective {\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'cmat-timeline-item',\r\n templateUrl: './timeline-item.component.html',\r\n styleUrls: ['./timeline-item.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatTimelineItem',\r\n imports: [MatIconModule, NgTemplateOutlet]\r\n})\r\nexport class CmatTimelineItemComponent {\r\n\r\n @Input()\r\n label?: string | null;\r\n\r\n @Input()\r\n icon?: string | null;\r\n\r\n @Input()\r\n svgIcon?: string | null;\r\n\r\n @Input()\r\n iconUrl?: string | null;\r\n\r\n @HostBinding('class') class='cmat-timeline-item';\r\n \r\n @ContentChild(CmatTimelineItemIconDirective, { read: TemplateRef })\r\n customIconTpl?: TemplateRef<unknown>;\r\n\r\n @ContentChild(CmatTimelineItemLabelDirective, { read: TemplateRef })\r\n customLabelTpl?: TemplateRef<unknown>;\r\n\r\n @ViewChild('contentEl', { static: true })\r\n private _contentEl!: ElementRef<HTMLElement>;\r\n\r\n @ViewChild('fillEl', { static: true })\r\n private _fillEl!: ElementRef<HTMLElement>;\r\n\r\n \r\n\r\n updateVerticalCenteredLayout(): void {\r\n this._fillEl.nativeElement.style.minWidth = this._contentEl.nativeElement.offsetWidth + 'px';\r\n this._fillEl.nativeElement.style.minHeight = 'unset';\r\n }\r\n\r\n updateHorizontalCenteredLayout(): void {\r\n this._fillEl.nativeElement.style.minHeight = this._contentEl.nativeElement.offsetHeight + 'px';\r\n this._fillEl.nativeElement.style.minWidth = 'unset';\r\n }\r\n\r\n}\r\n","<div #fillEl class=\"cmat-timeline-item-fill\"></div>\r\n\r\n<div class=\"cmat-timeline-item-timeline\">\r\n\r\n <ng-container *ngTemplateOutlet=\"customIconTpl ? customIconTpl : iconTpl\"></ng-container>\r\n\r\n <ng-template #iconTpl>\r\n @if (icon) {\r\n <mat-icon class=\"cmat-timeline-item-icon\">{{ icon }}</mat-icon>\r\n } @else {\r\n @if (svgIcon) {\r\n <mat-icon class=\"cmat-timeline-item-icon\" [svgIcon]=\"svgIcon\"></mat-icon>\r\n } @else {\r\n @if (iconUrl) {\r\n <img alt=\"icon\" class=\"cmat-timeline-item-icon\" [src]=\"iconUrl\" />\r\n }\r\n }\r\n }\r\n </ng-template>\r\n\r\n\r\n\r\n <ng-container *ngTemplateOutlet=\"customLabelTpl ? customLabelTpl : labelTpl\"></ng-container>\r\n\r\n <ng-template #labelTpl>\r\n @if (label) {\r\n <div class=\"mat-caption cmat-timeline-item-label\">{{ label }}</div>\r\n }\r\n </ng-template>\r\n\r\n <div class=\"cmat-timeline-item-line\"></div>\r\n\r\n</div>\r\n\r\n<div #contentEl class=\"cmat-timeline-item-content\">\r\n <ng-content></ng-content>\r\n</div>","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChildren,\r\n DestroyRef,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n QueryList,\r\n ViewEncapsulation,\r\n inject,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { Observable } from 'rxjs';\r\nimport { tap, throttleTime } from 'rxjs/operators';\r\nimport { CmatTimelineItemComponent } from './timeline-item/timeline-item.component';\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport type CMAT_TIMELINE_POSITION = 'start' | 'end' | 'center' | 'center-alt';\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport type CMAT_TIMELINE_ORIENTATION = 'vertical' | 'horizontal';\r\n\r\n\r\n@Component({\r\n selector: 'cmat-timeline',\r\n templateUrl: './timeline.component.html',\r\n styleUrls: ['./timeline.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'cmatTimeLine',\r\n imports: []\r\n})\r\nexport class CmatTimelineComponent implements OnInit {\r\n @ContentChildren(CmatTimelineItemComponent)\r\n readonly items = new QueryList<CmatTimelineItemComponent>();\r\n readonly class = 'cmat-timeline';\r\n\r\n private _host = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n private _reverse: boolean = false;\r\n private _position: CMAT_TIMELINE_POSITION = 'start';\r\n private _orientation: CMAT_TIMELINE_ORIENTATION = 'vertical';\r\n\r\n\r\n @HostBinding('class.cmat-timeline-start')\r\n get isStartPosition(): boolean {\r\n return this._position === 'start';\r\n }\r\n @HostBinding('class.cmat-timeline-end')\r\n get isEndPosition(): boolean {\r\n return this._position === 'end';\r\n }\r\n\r\n @HostBinding('class.cmat-timeline-center')\r\n get isCenterPosition(): boolean {\r\n return this._position === 'center';\r\n }\r\n\r\n @HostBinding('class.cmat-timeline-center-alt')\r\n get isCenterAltPosition(): boolean {\r\n return this._position === 'center-alt';\r\n }\r\n\r\n @HostBinding('class.cmat-timeline-vertical')\r\n get isVerticalOrientation(): boolean {\r\n return this._orientation === 'vertical';\r\n }\r\n\r\n @HostBinding('class.cmat-timeline-horizontal')\r\n get isHorizontalOrientation(): boolean {\r\n return this._orientation === 'horizontal';\r\n }\r\n\r\n @HostBinding('class.cmat-timeline-reverse')\r\n get isReverse(): boolean {\r\n return this._reverse;\r\n }\r\n\r\n @Input()\r\n set position(position: CMAT_TIMELINE_POSITION) {\r\n this._position = position;\r\n this.updateLayout();\r\n }\r\n\r\n @Input()\r\n set orientation(orientation: CMAT_TIMELINE_ORIENTATION) {\r\n this._orientation = orientation;\r\n this.updateLayout();\r\n }\r\n\r\n @Input()\r\n set reverse(reverse: boolean) {\r\n this._reverse = reverse;\r\n this.updateLayout();\r\n }\r\n\r\n ngOnInit(): void {\r\n new Observable<ResizeObserverEntry[]>((observer) => {\r\n const ro = new ResizeObserver(entries => observer.next(entries));\r\n ro.observe(this._host.nativeElement);\r\n\r\n return (): void => {\r\n ro.unobserve(this._host.nativeElement);\r\n ro.disconnect();\r\n };\r\n }).pipe(\r\n throttleTime(10),\r\n tap(() => this.updateLayout()),\r\n takeUntilDestroyed(this._destroyRef)\r\n ).subscribe();\r\n }\r\n\r\n updateLayout(): void {\r\n if (this.isCenterPosition || this.isCenterAltPosition) {\r\n this.items.forEach((item) => {\r\n this.isVerticalOrientation ? item.updateVerticalCenteredLayout() : item.updateHorizontalCenteredLayout();\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"cmat-timeline-content\">\r\n <ng-content></ng-content>\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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"}
@@ -54,7 +54,7 @@ class CmatToastModalComponent {
54
54
  if (this.leaving())
55
55
  return;
56
56
  this.leaving.set(true);
57
- const el = this._elementRef.nativeElement?.querySelector('.toast') ?? null;
57
+ const el = this._elementRef.nativeElement.querySelector('.toast');
58
58
  if (el) {
59
59
  const onEnd = () => {
60
60
  cleanup();
@@ -177,22 +177,29 @@ class CmatToastService {
177
177
  }
178
178
  _setGlobalValues(toast) {
179
179
  if (this._globalConfigs) {
180
- for (const [key, value] of Object.entries(this._globalConfigs)) {
181
- toast = {
182
- ...toast,
183
- [key]: value,
184
- };
180
+ const globalConfigs = this._globalConfigs;
181
+ if (globalConfigs.title) {
182
+ toast.title = globalConfigs.title;
185
183
  }
186
- if (this._globalConfigs.theme) {
187
- toast.theme = `toasta-theme-${this._globalConfigs.theme}`;
184
+ if (globalConfigs.timeout !== undefined) {
185
+ toast.timeout = globalConfigs.timeout;
188
186
  }
189
- if (this._globalConfigs.position) {
190
- toast.position = `toasta-position-${this._globalConfigs.position}`;
187
+ if (globalConfigs.limit !== undefined) {
188
+ toast.limit = globalConfigs.limit;
191
189
  }
192
- if (this._globalConfigs.showClose === false) {
190
+ if (globalConfigs.isCountdown !== undefined) {
191
+ toast.isCountdown = globalConfigs.isCountdown;
192
+ }
193
+ if (globalConfigs.theme) {
194
+ toast.theme = `toasta-theme-${globalConfigs.theme}`;
195
+ }
196
+ if (globalConfigs.position) {
197
+ toast.position = `toasta-position-${globalConfigs.position}`;
198
+ }
199
+ if (globalConfigs.showClose === false) {
193
200
  toast.showClose = false;
194
201
  }
195
- if (this._globalConfigs.showDuration === false) {
202
+ if (globalConfigs.showDuration === false) {
196
203
  toast.showDuration = false;
197
204
  }
198
205
  }
@@ -207,7 +214,7 @@ class CmatToastService {
207
214
  ...toast,
208
215
  id: this._counter++,
209
216
  };
210
- if (this.toasts.length >= toast.limit) {
217
+ if (this.toasts.length >= (toast.limit ?? 0)) {
211
218
  this.toasts.shift();
212
219
  }
213
220
  this.toasts.push(latestToast);
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-toast.mjs","sources":["../../../projects/cmat/components/toast/toast-modal.component.ts","../../../projects/cmat/components/toast/toast-modal.component.html","../../../projects/cmat/components/toast/toast.service.ts","../../../projects/cmat/components/toast/toast.component.ts","../../../projects/cmat/components/toast/toast.component.html","../../../projects/cmat/components/toast/cmat-components-toast.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n AfterViewInit,\r\n OnDestroy,\r\n ChangeDetectionStrategy,\r\n ViewEncapsulation,\r\n signal,\r\n ElementRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { CmatToastModel } from './models/toast.model';\r\n\r\n@Component({\r\n selector: 'cmat-toast-modal',\r\n templateUrl: './toast-modal.component.html',\r\n styleUrls: ['./toast-modal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatToastModal',\r\n imports: [NgClass]\r\n})\r\nexport class CmatToastModalComponent implements AfterViewInit, OnDestroy {\r\n @Input() toast: CmatToastModel;\r\n @Output() closeToastEvent = new EventEmitter<number>();\r\n\r\n readonly progressPercent = signal(100);\r\n readonly displayTitle = signal('');\r\n readonly displayType = signal('');\r\n readonly displayMessage = signal('');\r\n readonly leaving = signal(false);\r\n timeout: number;\r\n\r\n private _progressInterval: number | null = null;\r\n private _startTime: number;\r\n private _leaveTimeoutId: number | null = null;\r\n private _elementRef = inject(ElementRef);\r\n\r\n ngAfterViewInit(): void {\r\n this.displayTitle.set(this.toast.title ?? '');\r\n this.displayType.set(this.toast.type ?? '');\r\n this.displayMessage.set(this.toast.message ?? '');\r\n this.handleProgress();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._clearInterval();\r\n this._clearLeaveTimeout();\r\n }\r\n\r\n handleProgress(): void {\r\n this.timeout = this.toast.timeout ?? 0;\r\n this._startTime = performance.now();\r\n\r\n if (this.toast.showDuration && this.timeout > 0) {\r\n this._progressInterval = window.setInterval(() => {\r\n const elapsed = performance.now() - this._startTime;\r\n const percent = 100 - (elapsed / this.timeout * 100);\r\n\r\n if (percent <= 0) {\r\n this.progressPercent.set(0);\r\n this._clearInterval();\r\n this.close(this.toast);\r\n return;\r\n }\r\n\r\n this.progressPercent.set(percent);\r\n\r\n if (this.toast.isCountdown) {\r\n const secondsRemaining = Math.ceil((this.timeout - elapsed) / 1000);\r\n this.displayTitle.set(`\\u5269\\u4f59\\u65f6\\u95f4: ${secondsRemaining.toString()}\\u79d2`);\r\n this.displayType.set('toasta-type-wait');\r\n this.displayMessage.set('');\r\n }\r\n }, 100);\r\n }\r\n }\r\n\r\n close(toast: CmatToastModel): void {\r\n this._clearInterval();\r\n\r\n if (this.leaving()) return;\r\n this.leaving.set(true);\r\n\r\n const el: HTMLElement | null = this._elementRef.nativeElement?.querySelector('.toast') ?? null;\r\n if (el) {\r\n const onEnd = (): void => {\r\n cleanup();\r\n this._emitClose(toast);\r\n };\r\n const cleanup = (): void => {\r\n el.removeEventListener('animationend', onEnd);\r\n this._clearLeaveTimeout();\r\n };\r\n el.addEventListener('animationend', onEnd);\r\n this._leaveTimeoutId = window.setTimeout(() => {\r\n cleanup();\r\n this._emitClose(toast);\r\n }, 400);\r\n } else {\r\n this._emitClose(toast);\r\n }\r\n }\r\n\r\n private _emitClose(toast: CmatToastModel): void {\r\n if (toast.id) {\r\n this.closeToastEvent.emit(toast.id);\r\n }\r\n }\r\n\r\n\r\n private _clearInterval(): void {\r\n if (this._progressInterval !== null) {\r\n clearInterval(this._progressInterval);\r\n this._progressInterval = null;\r\n }\r\n }\r\n\r\n private _clearLeaveTimeout(): void {\r\n if (this._leaveTimeoutId !== null) {\r\n clearTimeout(this._leaveTimeoutId);\r\n this._leaveTimeoutId = null; \r\n }\r\n }\r\n}","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<div class=\"toast\" [ngClass]=\"[displayType(), toast.theme, leaving() ? 'toast-leaving' : '']\">\r\n @if (toast.showClose) {\r\n <button type=\"button\" class=\"close-button\" (click)=\"close(toast)\">\r\n </button>\r\n }\r\n @if (displayTitle() || displayMessage()) {\r\n <div class=\"toast-text\">\r\n @if (displayTitle()) {\r\n <span class=\"toast-title\">{{displayTitle()}}</span>\r\n }\r\n @if (displayTitle() && displayMessage()) {\r\n <br />\r\n }\r\n @if (displayMessage()) {\r\n <span class=\"toast-message\">{{displayMessage()}}</span>\r\n }\r\n </div>\r\n }\r\n @if (toast.showDuration && timeout > 0) {\r\n <div class=\"durationbackground\">\r\n <div class=\"durationbar\" [style.width.%]=\"progressPercent()\">\r\n </div>\r\n </div>\r\n }\r\n</div>","import { Injectable, signal } from '@angular/core';\r\nimport { toObservable } from '@angular/core/rxjs-interop';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { GlobalConfigModel } from './models/global-config.model';\r\nimport { CmatToastModel } from './models/toast.model';\r\nimport { GlobalPosition, GlobalTheme, GlobalType } from './models/type.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatToastService {\r\n toasts: CmatToastModel[] = [];\r\n\r\n private _positionSubject = signal<string>('toasta-position-bottom-right');\r\n private readonly _position$ = toObservable(this._positionSubject);\r\n private _toastPopSubject = new Subject<CmatToastModel[]>();\r\n private _globalConfigs: GlobalConfigModel;\r\n private _counter = 1;\r\n\r\n get position$(): Observable<string> {\r\n return this._position$;\r\n }\r\n get toastPop$(): Observable<CmatToastModel[]> {\r\n return this._toastPopSubject.asObservable();\r\n }\r\n\r\n\r\n receiveGlobalConfigs(configs: GlobalConfigModel): void {\r\n this._globalConfigs = { ...configs };\r\n }\r\n\r\n removeToast(toastId: number): void {\r\n this.toasts = this.toasts.filter(t => t.id !== toastId);\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n\r\n clearAll(): void {\r\n this.toasts.length = 0;\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n\r\n clearLast(): void {\r\n this.toasts.pop();\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n\r\n addToast(toast: CmatToastModel): void {\r\n const defaultToast = this._getDefaultToast();\r\n const globalToast = this._setGlobalValues(defaultToast);\r\n\r\n const finalToast: CmatToastModel = {\r\n type: `toasta-type-${toast.type}` as GlobalType,\r\n message: toast.message,\r\n title: toast.title ?? globalToast.title,\r\n showClose: toast.showClose ?? globalToast.showClose,\r\n showDuration: toast.showDuration ?? globalToast.showDuration,\r\n theme: toast.theme ? (`toasta-theme-${toast.theme}` as GlobalTheme) : globalToast.theme,\r\n timeout: toast.timeout !== null ? toast.timeout : globalToast.timeout,\r\n position: toast.position ? (`toasta-position-${toast.position}` as GlobalPosition) : globalToast.position,\r\n limit: toast.limit ?? globalToast.limit,\r\n isCountdown: toast.isCountdown ?? globalToast.isCountdown,\r\n };\r\n\r\n if (toast.showClose === false) {\r\n finalToast.showClose = false;\r\n }\r\n\r\n if (toast.showDuration === false) {\r\n finalToast.showDuration = false;\r\n }\r\n\r\n this._setPosition(finalToast);\r\n this._serveToast(finalToast);\r\n }\r\n\r\n getGlobalConfigs(): GlobalConfigModel {\r\n return this._globalConfigs;\r\n }\r\n\r\n getToasts(): CmatToastModel[] {\r\n return this.toasts;\r\n }\r\n\r\n private _getDefaultToast(): GlobalConfigModel {\r\n const defaultToast: GlobalConfigModel = {\r\n title: '',\r\n showClose: true,\r\n showDuration: true,\r\n theme: 'toasta-theme-material',\r\n timeout: 5000,\r\n position: 'toasta-position-bottom-right',\r\n limit: 5,\r\n isCountdown: false,\r\n };\r\n\r\n return defaultToast;\r\n }\r\n\r\n private _setGlobalValues(toast: GlobalConfigModel): GlobalConfigModel {\r\n if (this._globalConfigs) {\r\n for (const [key, value] of Object.entries(this._globalConfigs)) {\r\n toast = {\r\n ...toast,\r\n [key]: value,\r\n };\r\n }\r\n\r\n if (this._globalConfigs.theme) {\r\n toast.theme = `toasta-theme-${this._globalConfigs.theme}` as GlobalTheme;\r\n }\r\n\r\n if (this._globalConfigs.position) {\r\n toast.position = `toasta-position-${this._globalConfigs.position}` as GlobalPosition;\r\n }\r\n\r\n if (this._globalConfigs.showClose === false) {\r\n toast.showClose = false;\r\n }\r\n\r\n if (this._globalConfigs.showDuration === false) {\r\n toast.showDuration = false;\r\n }\r\n }\r\n return toast;\r\n }\r\n\r\n private _setPosition(toast: CmatToastModel): void {\r\n const position = toast.position ?? 'toasta-position-bottom-right';\r\n\r\n this._positionSubject.set(position);\r\n }\r\n\r\n private _serveToast(toast: any): void {\r\n const latestToast = {\r\n ...toast,\r\n id: this._counter++,\r\n };\r\n\r\n if (this.toasts.length >= toast.limit) {\r\n this.toasts.shift();\r\n }\r\n this.toasts.push(latestToast);\r\n\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n}\r\n","import { NgClass, AsyncPipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, OnInit, ViewEncapsulation, inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CmatToastModel } from './models/toast.model';\r\nimport { CmatToastModalComponent } from './toast-modal.component';\r\nimport { CmatToastService } from './toast.service';\r\n\r\n@Component({\r\n selector: 'cmat-toast',\r\n templateUrl: './toast.component.html',\r\n styleUrls: ['./toast.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatToast',\r\n imports: [NgClass, CmatToastModalComponent, AsyncPipe]\r\n})\r\nexport class CmatToastComponent implements OnInit {\r\n\r\n toasts$: Observable<CmatToastModel[]>;\r\n position$: Observable<string>;\r\n\r\n private _cmatToastService = inject(CmatToastService);\r\n\r\n ngOnInit(): void {\r\n this.listenForToastEvent();\r\n }\r\n\r\n listenForToastEvent(): void {\r\n this.toasts$ = this._cmatToastService.toastPop$;\r\n this.position$ = this._cmatToastService.position$;\r\n }\r\n\r\n clearToast(toastId: any): void {\r\n this._cmatToastService.removeToast(toastId);\r\n }\r\n\r\n trackByFn(index: number, item: CmatToastModel): any {\r\n return item.id ?? index;\r\n }\r\n}\r\n","@if ((toasts$ | async); as toasts) {\r\n <div class=\"toast-wrapper\" [ngClass]=\"[position$ | async]\">\r\n @for (toast of toasts; track trackByFn($index, toast)) {\r\n <cmat-toast-modal [toast]=\"toast\"\r\n (closeToastEvent)=\"clearToast($event)\">\r\n </cmat-toast-modal>\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-toast.mjs","sources":["../../../projects/cmat/components/toast/toast-modal.component.ts","../../../projects/cmat/components/toast/toast-modal.component.html","../../../projects/cmat/components/toast/toast.service.ts","../../../projects/cmat/components/toast/toast.component.ts","../../../projects/cmat/components/toast/toast.component.html","../../../projects/cmat/components/toast/cmat-components-toast.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n AfterViewInit,\r\n OnDestroy,\r\n ChangeDetectionStrategy,\r\n ViewEncapsulation,\r\n signal,\r\n ElementRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { CmatToastModel } from './models/toast.model';\r\n\r\ninterface ToastElement extends HTMLElement {\r\n addEventListener(type: 'animationend', listener: EventListener): void;\r\n removeEventListener(type: 'animationend', listener: EventListener): void;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-toast-modal',\r\n templateUrl: './toast-modal.component.html',\r\n styleUrls: ['./toast-modal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatToastModal',\r\n imports: [NgClass]\r\n})\r\nexport class CmatToastModalComponent implements AfterViewInit, OnDestroy {\r\n @Input() toast: CmatToastModel;\r\n @Output() closeToastEvent = new EventEmitter<number>();\r\n\r\n readonly progressPercent = signal(100);\r\n readonly displayTitle = signal('');\r\n readonly displayType = signal('');\r\n readonly displayMessage = signal('');\r\n readonly leaving = signal(false);\r\n timeout: number;\r\n\r\n private _progressInterval: number | null = null;\r\n private _startTime: number;\r\n private _leaveTimeoutId: number | null = null;\r\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\r\n ngAfterViewInit(): void {\r\n this.displayTitle.set(this.toast.title ?? '');\r\n this.displayType.set(this.toast.type ?? '');\r\n this.displayMessage.set(this.toast.message ?? '');\r\n this.handleProgress();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._clearInterval();\r\n this._clearLeaveTimeout();\r\n }\r\n\r\n handleProgress(): void {\r\n this.timeout = this.toast.timeout ?? 0;\r\n this._startTime = performance.now();\r\n\r\n if (this.toast.showDuration && this.timeout > 0) {\r\n this._progressInterval = window.setInterval(() => {\r\n const elapsed = performance.now() - this._startTime;\r\n const percent = 100 - (elapsed / this.timeout * 100);\r\n\r\n if (percent <= 0) {\r\n this.progressPercent.set(0);\r\n this._clearInterval();\r\n this.close(this.toast);\r\n return;\r\n }\r\n\r\n this.progressPercent.set(percent);\r\n\r\n if (this.toast.isCountdown) {\r\n const secondsRemaining = Math.ceil((this.timeout - elapsed) / 1000);\r\n this.displayTitle.set(`\\u5269\\u4f59\\u65f6\\u95f4: ${secondsRemaining.toString()}\\u79d2`);\r\n this.displayType.set('toasta-type-wait');\r\n this.displayMessage.set('');\r\n }\r\n }, 100);\r\n }\r\n }\r\n\r\n close(toast: CmatToastModel): void {\r\n this._clearInterval();\r\n\r\n if (this.leaving()) return;\r\n this.leaving.set(true);\r\n\r\n const el = this._elementRef.nativeElement.querySelector<ToastElement>('.toast');\r\n if (el) {\r\n const onEnd = (): void => {\r\n cleanup();\r\n this._emitClose(toast);\r\n };\r\n const cleanup = (): void => {\r\n el.removeEventListener('animationend', onEnd);\r\n this._clearLeaveTimeout();\r\n };\r\n el.addEventListener('animationend', onEnd);\r\n this._leaveTimeoutId = window.setTimeout(() => {\r\n cleanup();\r\n this._emitClose(toast);\r\n }, 400);\r\n } else {\r\n this._emitClose(toast);\r\n }\r\n }\r\n\r\n private _emitClose(toast: CmatToastModel): void {\r\n if (toast.id) {\r\n this.closeToastEvent.emit(toast.id);\r\n }\r\n }\r\n\r\n\r\n private _clearInterval(): void {\r\n if (this._progressInterval !== null) {\r\n clearInterval(this._progressInterval);\r\n this._progressInterval = null;\r\n }\r\n }\r\n\r\n private _clearLeaveTimeout(): void {\r\n if (this._leaveTimeoutId !== null) {\r\n clearTimeout(this._leaveTimeoutId);\r\n this._leaveTimeoutId = null; \r\n }\r\n }\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<div class=\"toast\" [ngClass]=\"[displayType(), toast.theme, leaving() ? 'toast-leaving' : '']\">\r\n @if (toast.showClose) {\r\n <button type=\"button\" class=\"close-button\" (click)=\"close(toast)\">\r\n </button>\r\n }\r\n @if (displayTitle() || displayMessage()) {\r\n <div class=\"toast-text\">\r\n @if (displayTitle()) {\r\n <span class=\"toast-title\">{{displayTitle()}}</span>\r\n }\r\n @if (displayTitle() && displayMessage()) {\r\n <br />\r\n }\r\n @if (displayMessage()) {\r\n <span class=\"toast-message\">{{displayMessage()}}</span>\r\n }\r\n </div>\r\n }\r\n @if (toast.showDuration && timeout > 0) {\r\n <div class=\"durationbackground\">\r\n <div class=\"durationbar\" [style.width.%]=\"progressPercent()\">\r\n </div>\r\n </div>\r\n }\r\n</div>","import { Injectable, signal } from '@angular/core';\r\nimport { toObservable } from '@angular/core/rxjs-interop';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { GlobalConfigModel } from './models/global-config.model';\r\nimport { CmatToastModel } from './models/toast.model';\r\nimport { GlobalPosition, GlobalTheme, GlobalType } from './models/type.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatToastService {\r\n toasts: CmatToastModel[] = [];\r\n\r\n private _positionSubject = signal<string>('toasta-position-bottom-right');\r\n private readonly _position$ = toObservable(this._positionSubject);\r\n private _toastPopSubject = new Subject<CmatToastModel[]>();\r\n private _globalConfigs: GlobalConfigModel;\r\n private _counter = 1;\r\n\r\n get position$(): Observable<string> {\r\n return this._position$;\r\n }\r\n get toastPop$(): Observable<CmatToastModel[]> {\r\n return this._toastPopSubject.asObservable();\r\n }\r\n\r\n\r\n receiveGlobalConfigs(configs: GlobalConfigModel): void {\r\n this._globalConfigs = { ...configs };\r\n }\r\n\r\n removeToast(toastId: number): void {\r\n this.toasts = this.toasts.filter(t => t.id !== toastId);\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n\r\n clearAll(): void {\r\n this.toasts.length = 0;\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n\r\n clearLast(): void {\r\n this.toasts.pop();\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n\r\n addToast(toast: CmatToastModel): void {\r\n const defaultToast = this._getDefaultToast();\r\n const globalToast = this._setGlobalValues(defaultToast);\r\n\r\n const finalToast: CmatToastModel = {\r\n type: `toasta-type-${toast.type}` as GlobalType,\r\n message: toast.message,\r\n title: toast.title ?? globalToast.title,\r\n showClose: toast.showClose ?? globalToast.showClose,\r\n showDuration: toast.showDuration ?? globalToast.showDuration,\r\n theme: toast.theme ? (`toasta-theme-${toast.theme}` as GlobalTheme) : globalToast.theme,\r\n timeout: toast.timeout !== null ? toast.timeout : globalToast.timeout,\r\n position: toast.position ? (`toasta-position-${toast.position}` as GlobalPosition) : globalToast.position,\r\n limit: toast.limit ?? globalToast.limit,\r\n isCountdown: toast.isCountdown ?? globalToast.isCountdown,\r\n };\r\n\r\n if (toast.showClose === false) {\r\n finalToast.showClose = false;\r\n }\r\n\r\n if (toast.showDuration === false) {\r\n finalToast.showDuration = false;\r\n }\r\n\r\n this._setPosition(finalToast);\r\n this._serveToast(finalToast);\r\n }\r\n\r\n getGlobalConfigs(): GlobalConfigModel {\r\n return this._globalConfigs;\r\n }\r\n\r\n getToasts(): CmatToastModel[] {\r\n return this.toasts;\r\n }\r\n\r\n private _getDefaultToast(): GlobalConfigModel {\r\n const defaultToast: GlobalConfigModel = {\r\n title: '',\r\n showClose: true,\r\n showDuration: true,\r\n theme: 'toasta-theme-material',\r\n timeout: 5000,\r\n position: 'toasta-position-bottom-right',\r\n limit: 5,\r\n isCountdown: false,\r\n };\r\n\r\n return defaultToast;\r\n }\r\n\r\n private _setGlobalValues(toast: GlobalConfigModel): GlobalConfigModel {\r\n if (this._globalConfigs) {\r\n const globalConfigs = this._globalConfigs;\r\n\r\n if (globalConfigs.title) {\r\n toast.title = globalConfigs.title;\r\n }\r\n if (globalConfigs.timeout !== undefined) {\r\n toast.timeout = globalConfigs.timeout;\r\n }\r\n if (globalConfigs.limit !== undefined) {\r\n toast.limit = globalConfigs.limit;\r\n }\r\n if (globalConfigs.isCountdown !== undefined) {\r\n toast.isCountdown = globalConfigs.isCountdown;\r\n }\r\n if (globalConfigs.theme) {\r\n toast.theme = `toasta-theme-${globalConfigs.theme}` as GlobalTheme;\r\n }\r\n if (globalConfigs.position) {\r\n toast.position = `toasta-position-${globalConfigs.position}` as GlobalPosition;\r\n }\r\n if (globalConfigs.showClose === false) {\r\n toast.showClose = false;\r\n }\r\n if (globalConfigs.showDuration === false) {\r\n toast.showDuration = false;\r\n }\r\n }\r\n return toast;\r\n }\r\n\r\n private _setPosition(toast: CmatToastModel): void {\r\n const position = toast.position ?? 'toasta-position-bottom-right';\r\n\r\n this._positionSubject.set(position);\r\n }\r\n\r\n private _serveToast(toast: CmatToastModel): void {\r\n const latestToast = {\r\n ...toast,\r\n id: this._counter++,\r\n };\r\n\r\n if (this.toasts.length >= (toast.limit ?? 0)) {\r\n this.toasts.shift();\r\n }\r\n this.toasts.push(latestToast);\r\n\r\n this._toastPopSubject.next(this.toasts);\r\n }\r\n}","import { NgClass, AsyncPipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, OnInit, ViewEncapsulation, inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CmatToastModel } from './models/toast.model';\r\nimport { CmatToastModalComponent } from './toast-modal.component';\r\nimport { CmatToastService } from './toast.service';\r\n\r\n@Component({\r\n selector: 'cmat-toast',\r\n templateUrl: './toast.component.html',\r\n styleUrls: ['./toast.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatToast',\r\n imports: [NgClass, CmatToastModalComponent, AsyncPipe]\r\n})\r\nexport class CmatToastComponent implements OnInit {\r\n\r\n toasts$: Observable<CmatToastModel[]>;\r\n position$: Observable<string>;\r\n\r\n private _cmatToastService = inject(CmatToastService);\r\n\r\n ngOnInit(): void {\r\n this.listenForToastEvent();\r\n }\r\n\r\n listenForToastEvent(): void {\r\n this.toasts$ = this._cmatToastService.toastPop$;\r\n this.position$ = this._cmatToastService.position$;\r\n }\r\n\r\n clearToast(toastId: number): void {\r\n this._cmatToastService.removeToast(toastId);\r\n }\r\n\r\n trackByFn(index: number, item: CmatToastModel): number {\r\n return item.id ?? index;\r\n }\r\n}\r\n","@if ((toasts$ | async); as toasts) {\r\n <div class=\"toast-wrapper\" [ngClass]=\"[position$ | async]\">\r\n @for (toast of toasts; track trackByFn($index, toast)) {\r\n <cmat-toast-modal [toast]=\"toast\"\r\n (closeToastEvent)=\"clearToast($event)\">\r\n </cmat-toast-modal>\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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"}
@@ -51,7 +51,7 @@ class CmatTransferPickerService {
51
51
  ['2', (a, b) => a > b],
52
52
  ['3', (a, b) => a < b],
53
53
  ['0,2', (a, b) => a >= b],
54
- ['0,2', (a, b) => a <= b]
54
+ ['0,3', (a, b) => a <= b]
55
55
  ]);
56
56
  this._conditionMap = new Map([
57
57
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
@@ -155,7 +155,7 @@ class CmatTransferPickerService {
155
155
  this._filteredDataSource.push(data);
156
156
  }
157
157
  else {
158
- compareResultArr.push(compare);
158
+ compareResultArr.push(compare ?? false);
159
159
  }
160
160
  }
161
161
  });
@@ -231,12 +231,12 @@ class CmatTransferPickerFilterComponent {
231
231
  }
232
232
  onFilterClick(filter) {
233
233
  filter.selected = !filter.selected;
234
- const existFilter = this.filterData.filters.find(item => item.value === filter.value);
234
+ const existFilter = this.filterData.filters.find((item) => item.value === filter.value);
235
235
  if (!existFilter) {
236
236
  this.filterData.filters.push(filter);
237
237
  }
238
238
  else if (!filter.selected) {
239
- this.filterData.filters.splice(this.filterData.filters.findIndex(j => j === filter), 1);
239
+ this.filterData.filters.splice(this.filterData.filters.findIndex((j) => j === filter), 1);
240
240
  }
241
241
  this.changeFilterData();
242
242
  }
@@ -247,6 +247,11 @@ class CmatTransferPickerFilterComponent {
247
247
  changeFilterData() {
248
248
  this._service.filterDataSource({ filterData: this.filterData });
249
249
  }
250
+ ngOnDestroy() {
251
+ if (this.overlayRef) {
252
+ this.overlayRef.dispose();
253
+ }
254
+ }
250
255
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: CmatTransferPickerFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
251
256
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: CmatTransferPickerFilterComponent, isStandalone: true, selector: "cmat-transfer-picker-filter", inputs: { filters: "filters" }, viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }], exportAs: ["cmatTransferPickerFilter"], ngImport: i0, template: "<button type=\"button\" class=\"mr-2 mt-1\" matIconButton cdk-overlay-origin (click)=\"toggleFilter()\">\r\n <mat-icon svgIcon=\"mat_outline:filter_list\"></mat-icon>\r\n</button>\r\n<ng-template #filterTemplate=\"cdkPortal\" cdkPortal>\r\n <div\r\n class=\"transfer-picker-filter-panel bg-card flex flex-col flex-nowrap place-content-start box-border items-start w-full shadow\">\r\n <mat-button-toggle-group name=\"condition\" [hideSingleSelectionIndicator]=\"true\" (change)=\"onConditionChange($event.value)\">\r\n <mat-button-toggle value=\"or\" [checked]=\"filterData.condition === 'or'\">\u6216</mat-button-toggle>\r\n <mat-button-toggle value=\"and\" [checked]=\"filterData.condition === 'and'\">\u4E14</mat-button-toggle>\r\n </mat-button-toggle-group>\r\n\r\n <div class=\"chip-list\">\r\n @for (item of filters; track $index) {\r\n <div class=\"chip-wrapper\" role=\"presentation\"\r\n (click)=\"onFilterClick(item)\">\r\n <span class=\"chip\" [ngClass]=\"{selected: item?.selected}\">{{item.label}}</span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".transfer-picker-filter-panel{min-width:276px;padding:10px 0;border-width:1px}.transfer-picker-filter-panel .mat-button-toggle-group{font-size:12px;margin-right:15px;margin-bottom:20px;align-self:flex-end}.transfer-picker-filter-panel .mat-button-toggle-group .mat-button-toggle-label-content{line-height:1.8}.transfer-picker-filter-panel .chip-list{width:276px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;box-sizing:border-box}.transfer-picker-filter-panel .chip-list:after{content:\"\";flex:1 1 0%;max-width:33.333333%}.transfer-picker-filter-panel .chip-list .chip-wrapper{flex:1 1 0%;box-sizing:border-box;max-width:33.333333%;text-align:center;margin-bottom:20px}.transfer-picker-filter-panel .chip-list .chip-wrapper .chip{display:inline-block;min-width:50%;cursor:pointer;padding:5px 10px;font-size:12px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i4.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i6.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
252
257
  }
@@ -272,7 +277,7 @@ class CmatTransferPickerSearchComponent {
272
277
  this.keyword
273
278
  .valueChanges
274
279
  .pipe(debounceTime(200), distinctUntilChanged())
275
- .subscribe((keyword) => this._service.filterDataSource({ keyword }));
280
+ .subscribe((keyword) => this._service.filterDataSource({ keyword: keyword ?? '' }));
276
281
  }
277
282
  reset() {
278
283
  this.keyword.setValue('');
@@ -329,7 +334,7 @@ class CmatTransferPickerSourceComponent {
329
334
  : new CmatTransferItemFlatNode();
330
335
  flatNode.label = node.label;
331
336
  flatNode.value = node.value;
332
- flatNode.disabled = node.disabled;
337
+ flatNode.disabled = !!node.disabled;
333
338
  flatNode.level = level;
334
339
  flatNode.expandable = !!node.children;
335
340
  this.nestedNodeMap.set(node, flatNode);