cmat 0.0.89 → 0.0.90

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 (89) hide show
  1. package/fesm2022/cmat-components-adapter.mjs +9 -9
  2. package/fesm2022/cmat-components-breadcrumb.mjs +9 -9
  3. package/fesm2022/cmat-components-card.mjs +3 -3
  4. package/fesm2022/cmat-components-carousel.mjs +12 -12
  5. package/fesm2022/cmat-components-cascade.mjs +9 -9
  6. package/fesm2022/cmat-components-chip-input.mjs +3 -3
  7. package/fesm2022/cmat-components-code-editor.mjs +3 -3
  8. package/fesm2022/cmat-components-color-picker.mjs +27 -27
  9. package/fesm2022/cmat-components-custom-formly.mjs +96 -96
  10. package/fesm2022/cmat-components-data-picker.mjs +15 -15
  11. package/fesm2022/cmat-components-date-range.mjs +3 -3
  12. package/fesm2022/cmat-components-date-time-display.mjs +3 -3
  13. package/fesm2022/cmat-components-drawer.mjs +6 -6
  14. package/fesm2022/cmat-components-empty-state.mjs +3 -3
  15. package/fesm2022/cmat-components-file-preview.mjs +3 -3
  16. package/fesm2022/cmat-components-filter-toolbar.mjs +3 -3
  17. package/fesm2022/cmat-components-form-actions.mjs +3 -3
  18. package/fesm2022/cmat-components-fullscreen.mjs +3 -3
  19. package/fesm2022/cmat-components-highlight.mjs +6 -6
  20. package/fesm2022/cmat-components-image-viewer.mjs +3 -3
  21. package/fesm2022/cmat-components-inline-loading.mjs +3 -3
  22. package/fesm2022/cmat-components-json-editor.mjs +3 -3
  23. package/fesm2022/cmat-components-knob-input.mjs +3 -3
  24. package/fesm2022/cmat-components-masonry.mjs +3 -3
  25. package/fesm2022/cmat-components-material-color-picker.mjs +3 -3
  26. package/fesm2022/cmat-components-material-datetimepicker.mjs +42 -42
  27. package/fesm2022/cmat-components-navigation.mjs +39 -39
  28. package/fesm2022/cmat-components-opt-input.mjs +3 -3
  29. package/fesm2022/cmat-components-org-chart.mjs +9 -9
  30. package/fesm2022/cmat-components-page-header.mjs +3 -3
  31. package/fesm2022/cmat-components-pagination.mjs +12 -12
  32. package/fesm2022/cmat-components-password-strength.mjs +9 -9
  33. package/fesm2022/cmat-components-popover.mjs +9 -9
  34. package/fesm2022/cmat-components-progress-bar.mjs +3 -3
  35. package/fesm2022/cmat-components-qrcode.mjs +3 -3
  36. package/fesm2022/cmat-components-rating.mjs +3 -3
  37. package/fesm2022/cmat-components-rich-text-editor.mjs +3 -3
  38. package/fesm2022/cmat-components-select-search.mjs +9 -9
  39. package/fesm2022/cmat-components-select-table.mjs +3 -3
  40. package/fesm2022/cmat-components-select-tree.mjs +3 -3
  41. package/fesm2022/cmat-components-skeleton.mjs +3 -3
  42. package/fesm2022/cmat-components-speed-dial.mjs +9 -9
  43. package/fesm2022/cmat-components-status-tag.mjs +3 -3
  44. package/fesm2022/cmat-components-table-toolbar.mjs +3 -3
  45. package/fesm2022/cmat-components-timeline.mjs +12 -12
  46. package/fesm2022/cmat-components-toast.mjs +11 -10
  47. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  48. package/fesm2022/cmat-components-transfer-picker.mjs +18 -18
  49. package/fesm2022/cmat-components-treetable.mjs +6 -6
  50. package/fesm2022/cmat-components-upload.mjs +9 -9
  51. package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
  52. package/fesm2022/cmat-directives-arrow-cursor.mjs +3 -3
  53. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  54. package/fesm2022/cmat-directives-data-exporter.mjs +21 -21
  55. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  56. package/fesm2022/cmat-directives-digit-only.mjs +6 -6
  57. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  58. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +3 -3
  59. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  60. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  61. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  62. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  63. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  64. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  65. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  66. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  67. package/fesm2022/cmat-services-alert.mjs +17 -6
  68. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  69. package/fesm2022/cmat-services-config.mjs +6 -6
  70. package/fesm2022/cmat-services-confirmation.mjs +6 -6
  71. package/fesm2022/cmat-services-data.mjs +3 -3
  72. package/fesm2022/cmat-services-export-as.mjs +3 -3
  73. package/fesm2022/cmat-services-loading.mjs +6 -6
  74. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  75. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  76. package/fesm2022/cmat-services-platform.mjs +3 -3
  77. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  78. package/fesm2022/cmat-services-title.mjs +3 -3
  79. package/fesm2022/cmat-services-translation.mjs +3 -3
  80. package/fesm2022/cmat-services-utils.mjs +3 -3
  81. package/fesm2022/cmat.mjs +571 -559
  82. package/fesm2022/cmat.mjs.map +1 -1
  83. package/package.json +1 -3
  84. package/styles/user-themes.scss +1 -1
  85. package/types/cmat-components-material-datetimepicker.d.ts +5 -5
  86. package/types/cmat-components-toast.d.ts +1 -1
  87. package/types/cmat-services-alert.d.ts +3 -0
  88. package/types/cmat.d.ts +9 -6
  89. package/styles/overrides/fullcalendar.scss +0 -552
@@ -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 AfterViewInit,\r\n OnDestroy,\r\n ChangeDetectionStrategy,\r\n ViewEncapsulation,\r\n signal,\r\n ElementRef,\r\n inject,\r\n input,\r\n output,\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 readonly closeToastEvent = output<number>();\r\n\r\n readonly toast = input.required<CmatToastModel>();\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(\r\n `\\u5269\\u4f59\\u65f6\\u95f4: ${secondsRemaining.toString()}\\u79d2`,\r\n );\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 =\r\n 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 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"," \r\n<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<div\r\n class=\"toast\"\r\n [ngClass]=\"[displayType(), toast().theme, leaving() ? 'toast-leaving' : '']\"\r\n>\r\n @if (toast().showClose) {\r\n <button\r\n type=\"button\"\r\n class=\"close-button\"\r\n (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()\"></div>\r\n </div>\r\n }\r\n</div>\r\n","/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { Injectable, signal, computed } from '@angular/core';\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 private readonly _toasts = signal<CmatToastModel[]>([]);\r\n\r\n readonly toasts = this._toasts.asReadonly();\r\n\r\n private readonly _position = signal<string>('toasta-position-bottom-right');\r\n\r\n readonly position = this._position.asReadonly();\r\n\r\n readonly hasToasts = computed(() => this._toasts().length > 0);\r\n readonly toastCount = computed(() => this._toasts().length);\r\n\r\n private _globalConfigs: GlobalConfigModel | undefined;\r\n private _counter = 1;\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.update(current =>\r\n current.filter(t => t.id !== toastId)\r\n );\r\n }\r\n\r\n clearAll(): void {\r\n this._toasts.set([]);\r\n }\r\n\r\n clearLast(): void {\r\n this._toasts.update((current) => {\r\n if (current.length === 0) return current;\r\n return current.slice(0, -1);\r\n });\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 | undefined {\r\n return this._globalConfigs;\r\n }\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._position.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 this._toasts.update((current) => {\r\n const limit = toast.limit ?? 0;\r\n\r\n if (current.length >= limit) {\r\n const newToasts = [...current.slice(1), latestToast];\r\n return newToasts;\r\n }\r\n\r\n return [...current, latestToast];\r\n });\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\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]\r\n})\r\nexport class CmatToastComponent {\r\n private readonly _cmatToastService = inject(CmatToastService);\r\n\r\n readonly toasts = this._cmatToastService.toasts;\r\n readonly position = this._cmatToastService.position;\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","<div class=\"toast-wrapper\" [ngClass]=\"[position()]\">\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>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MA6Ba,uBAAuB,CAAA;AATpC,IAAA,WAAA,GAAA;QAUW,IAAA,CAAA,eAAe,GAAG,MAAM,EAAU;QAElC,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ;kFAAkB;QACxC,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,GAAG;4FAAC;QAC7B,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,EAAE;yFAAC;QACzB,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,EAAE;wFAAC;QACxB,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,EAAE;2FAAC;QAC3B,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK;oFAAC;QAGxB,IAAA,CAAA,iBAAiB,GAAkB,IAAI;QAEvC,IAAA,CAAA,eAAe,GAAkB,IAAI;AACrC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAA0B,UAAU,CAAC;AA0FlE,IAAA;IAxFC,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;AAC/C,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;AAC7C,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,cAAc,EAAE;IACvB;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,kBAAkB,EAAE;IAC3B;IAEA,cAAc,GAAA;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,IAAI,CAAC;AACxC,QAAA,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;AAEnC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;YACjD,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,MAAK;gBAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU;AACnD,gBAAA,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,GAAG;AAEpD,gBAAA,IAAI,OAAO,IAAI,CAAC,EAAE;AAChB,oBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC3B,IAAI,CAAC,cAAc,EAAE;oBACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACxB;gBACF;AAEA,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC;AAEjC,gBAAA,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE;AAC5B,oBAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC;AACnE,oBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB,CAAA,0BAAA,EAA6B,gBAAgB,CAAC,QAAQ,EAAE,CAAA,MAAA,CAAQ,CACjE;AACD,oBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC;AACxC,oBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B;YACF,CAAC,EAAE,GAAG,CAAC;QACT;IACF;AAEA,IAAA,KAAK,CAAC,KAAqB,EAAA;QACzB,IAAI,CAAC,cAAc,EAAE;QAErB,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE;AACpB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AAEtB,QAAA,MAAM,EAAE,GACN,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAe,QAAQ,CAAC;QACtE,IAAI,EAAE,EAAE;YACN,MAAM,KAAK,GAAG,MAAW;AACvB,gBAAA,OAAO,EAAE;AACT,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxB,YAAA,CAAC;YACD,MAAM,OAAO,GAAG,MAAW;AACzB,gBAAA,EAAE,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC;gBAC7C,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,CAAC;AACD,YAAA,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC;YAC1C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;AAC5C,gBAAA,OAAO,EAAE;AACT,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YACxB,CAAC,EAAE,GAAG,CAAC;QACT;aAAO;AACL,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACxB;IACF;AAEQ,IAAA,UAAU,CAAC,KAAqB,EAAA;AACtC,QAAA,IAAI,KAAK,CAAC,EAAE,EAAE;YACZ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC;IACF;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE;AACnC,YAAA,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACrC,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;QAC/B;IACF;IAEQ,kBAAkB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;AACjC,YAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;AAClC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;QAC7B;IACF;8GAvGW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7BpC,28BAgCA,EAAA,MAAA,EAAA,CAAA,i60CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDLY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEN,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBATnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,aAAA,EAGb,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,gBAAgB,EAAA,OAAA,EACjB,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,28BAAA,EAAA,MAAA,EAAA,CAAA,i60CAAA,CAAA,EAAA;;;AE3BpB;MASa,gBAAgB,CAAA;AAH7B,IAAA,WAAA,GAAA;QAIqB,IAAA,CAAA,OAAO,GAAG,MAAM,CAAmB,EAAE;oFAAC;AAE9C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;QAE1B,IAAA,CAAA,SAAS,GAAG,MAAM,CAAS,8BAA8B;sFAAC;AAElE,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;AAEtC,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC;sFAAC;QACrD,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM;uFAAC;QAGnD,IAAA,CAAA,QAAQ,GAAG,CAAC;AA+HvB,IAAA;AA7HG,IAAA,oBAAoB,CAAC,OAA0B,EAAA;AAC3C,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,OAAO,EAAE;IACxC;AAEA,IAAA,WAAW,CAAC,OAAe,EAAA;QACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IACvB,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CACxC;IACL;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IACxB;IAEA,SAAS,GAAA;QACL,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,KAAI;AAC5B,YAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;AAAE,gBAAA,OAAO,OAAO;YACxC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,QAAQ,CAAC,KAAqB,EAAA;AAC1B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;AAEvD,QAAA,MAAM,UAAU,GAAmB;AAC/B,YAAA,IAAI,EAAE,CAAA,YAAA,EAAe,KAAK,CAAC,IAAI,CAAA,CAAgB;YAC/C,OAAO,EAAE,KAAK,CAAC,OAAO;AACtB,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK;AACvC,YAAA,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS;AACnD,YAAA,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,WAAW,CAAC,YAAY;AAC5D,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,GAAI,CAAA,aAAA,EAAgB,KAAK,CAAC,KAAK,CAAA,CAAkB,GAAG,WAAW,CAAC,KAAK;AACvF,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO;AACrE,YAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAI,CAAA,gBAAA,EAAmB,KAAK,CAAC,QAAQ,CAAA,CAAqB,GAAG,WAAW,CAAC,QAAQ;AACzG,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK;AACvC,YAAA,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW;SAC5D;AAED,QAAA,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE;AAC3B,YAAA,UAAU,CAAC,SAAS,GAAG,KAAK;QAChC;AAEA,QAAA,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,EAAE;AAC9B,YAAA,UAAU,CAAC,YAAY,GAAG,KAAK;QACnC;AAEA,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;IAChC;IAEA,gBAAgB,GAAA;QACZ,OAAO,IAAI,CAAC,cAAc;IAC9B;IAGQ,gBAAgB,GAAA;AACpB,QAAA,MAAM,YAAY,GAAsB;AACpC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,KAAK,EAAE,uBAAuB;AAC9B,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,8BAA8B;AACxC,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,WAAW,EAAE,KAAK;SACrB;AAED,QAAA,OAAO,YAAY;IACvB;AAEQ,IAAA,gBAAgB,CAAC,KAAwB,EAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc;AAEzC,YAAA,IAAI,aAAa,CAAC,KAAK,EAAE;AACrB,gBAAA,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK;YACrC;AACA,YAAA,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS,EAAE;AACrC,gBAAA,KAAK,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO;YACzC;AACA,YAAA,IAAI,aAAa,CAAC,KAAK,KAAK,SAAS,EAAE;AACnC,gBAAA,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK;YACrC;AACA,YAAA,IAAI,aAAa,CAAC,WAAW,KAAK,SAAS,EAAE;AACzC,gBAAA,KAAK,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW;YACjD;AACA,YAAA,IAAI,aAAa,CAAC,KAAK,EAAE;gBACrB,KAAK,CAAC,KAAK,GAAG,CAAA,aAAA,EAAgB,aAAa,CAAC,KAAK,EAAiB;YACtE;AACA,YAAA,IAAI,aAAa,CAAC,QAAQ,EAAE;gBACxB,KAAK,CAAC,QAAQ,GAAG,CAAA,gBAAA,EAAmB,aAAa,CAAC,QAAQ,EAAoB;YAClF;AACA,YAAA,IAAI,aAAa,CAAC,SAAS,KAAK,KAAK,EAAE;AACnC,gBAAA,KAAK,CAAC,SAAS,GAAG,KAAK;YAC3B;AACA,YAAA,IAAI,aAAa,CAAC,YAAY,KAAK,KAAK,EAAE;AACtC,gBAAA,KAAK,CAAC,YAAY,GAAG,KAAK;YAC9B;QACJ;AACA,QAAA,OAAO,KAAK;IAChB;AAEQ,IAAA,YAAY,CAAC,KAAqB,EAAA;AACtC,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,8BAA8B;AAEjE,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;IAChC;AAEQ,IAAA,WAAW,CAAC,KAAqB,EAAA;AACrC,QAAA,MAAM,WAAW,GAAG;AAChB,YAAA,GAAG,KAAK;AACR,YAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE;SACtB;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,KAAI;AAC5B,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC;AAE9B,YAAA,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE;AACzB,gBAAA,MAAM,SAAS,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;AACpD,gBAAA,OAAO,SAAS;YACpB;AAEA,YAAA,OAAO,CAAC,GAAG,OAAO,EAAE,WAAW,CAAC;AACpC,QAAA,CAAC,CAAC;IACN;8GA3IS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA;;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACRD;MAgBa,kBAAkB,CAAA;AAT/B,IAAA,WAAA,GAAA;AAUmB,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEpD,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM;AACtC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ;AASpD,IAAA;AAPC,IAAA,UAAU,CAAC,OAAe,EAAA;AACxB,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC;IAC7C;IAEA,SAAS,CAAC,KAAa,EAAE,IAAoB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,EAAE,IAAI,KAAK;IACzB;8GAZW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChB/B,oQAMM,EAAA,MAAA,EAAA,CAAA,s8BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDQM,OAAO,oFAAE,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAE/B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAT9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,aAAA,EAGP,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,WAAW,EAAA,OAAA,EACZ,CAAC,OAAO,EAAE,uBAAuB,CAAC,EAAA,QAAA,EAAA,oQAAA,EAAA,MAAA,EAAA,CAAA,s8BAAA,CAAA,EAAA;;;AEd7C;;AAEG;;;;"}
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 AfterViewInit,\r\n OnDestroy,\r\n ChangeDetectionStrategy,\r\n ViewEncapsulation,\r\n signal,\r\n ElementRef,\r\n inject,\r\n input,\r\n output,\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 readonly closeToastEvent = output<number>();\r\n\r\n readonly toast = input.required<CmatToastModel>();\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(\r\n `\\u5269\\u4f59\\u65f6\\u95f4: ${secondsRemaining.toString()}\\u79d2`,\r\n );\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 =\r\n 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 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"," \r\n<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<div\r\n class=\"toast\"\r\n [ngClass]=\"[displayType(), toast().theme, leaving() ? 'toast-leaving' : '']\"\r\n>\r\n @if (toast().showClose) {\r\n <button\r\n type=\"button\"\r\n class=\"close-button\"\r\n (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()\"></div>\r\n </div>\r\n }\r\n</div>\r\n","/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { Injectable, signal, computed } from '@angular/core';\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 private readonly _toasts = signal<CmatToastModel[]>([]);\r\n\r\n readonly toasts = this._toasts.asReadonly();\r\n\r\n private readonly _position = signal<string>('toasta-position-bottom-right');\r\n\r\n readonly position = this._position.asReadonly();\r\n\r\n readonly hasToasts = computed(() => this._toasts().length > 0);\r\n readonly toastCount = computed(() => this._toasts().length);\r\n\r\n private _globalConfigs: GlobalConfigModel | undefined;\r\n private _counter = 1;\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.update(current =>\r\n current.filter(t => t.id !== toastId)\r\n );\r\n }\r\n\r\n clearAll(): void {\r\n this._toasts.set([]);\r\n }\r\n\r\n clearLast(): void {\r\n this._toasts.update((current) => {\r\n if (current.length === 0) return current;\r\n return current.slice(0, -1);\r\n });\r\n }\r\n\r\n addToast(toast: CmatToastModel): number {\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\r\n return this._serveToast(finalToast);\r\n }\r\n\r\n getGlobalConfigs(): GlobalConfigModel | undefined {\r\n return this._globalConfigs;\r\n }\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._position.set(position);\r\n }\r\n\r\n private _serveToast(toast: CmatToastModel): number {\r\n const latestToast = {\r\n ...toast,\r\n id: this._counter++,\r\n };\r\n\r\n this._toasts.update((current) => {\r\n const limit = toast.limit ?? 0;\r\n\r\n if (current.length >= limit) {\r\n const newToasts = [...current.slice(1), latestToast];\r\n return newToasts;\r\n }\r\n\r\n return [...current, latestToast];\r\n });\r\n\r\n return latestToast.id;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\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]\r\n})\r\nexport class CmatToastComponent {\r\n private readonly _cmatToastService = inject(CmatToastService);\r\n\r\n readonly toasts = this._cmatToastService.toasts;\r\n readonly position = this._cmatToastService.position;\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","<div class=\"toast-wrapper\" [ngClass]=\"[position()]\">\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>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -167,10 +167,10 @@ class CmatTransferPickerService {
167
167
  }
168
168
  });
169
169
  }
170
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTransferPickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
171
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTransferPickerService, providedIn: 'root' }); }
170
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTransferPickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
171
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTransferPickerService, providedIn: 'root' }); }
172
172
  }
173
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTransferPickerService, decorators: [{
173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTransferPickerService, decorators: [{
174
174
  type: Injectable,
175
175
  args: [{
176
176
  providedIn: 'root'
@@ -248,10 +248,10 @@ class CmatTransferPickerFilterComponent {
248
248
  this.overlayRef.dispose();
249
249
  }
250
250
  }
251
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTransferPickerFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
252
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CmatTransferPickerFilterComponent, isStandalone: true, selector: "cmat-transfer-picker-filter", inputs: { filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "_overlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, isSignal: true }, { propertyName: "_filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, isSignal: 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 }); }
251
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTransferPickerFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
252
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CmatTransferPickerFilterComponent, isStandalone: true, selector: "cmat-transfer-picker-filter", inputs: { filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "_overlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, isSignal: true }, { propertyName: "_filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, isSignal: 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 }); }
253
253
  }
254
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTransferPickerFilterComponent, decorators: [{
254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTransferPickerFilterComponent, decorators: [{
255
255
  type: Component,
256
256
  args: [{ selector: 'cmat-transfer-picker-filter', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerFilter', imports: [MatButtonToggleModule, MatIconModule, CommonModule, PortalModule, MatButtonModule, OverlayModule], 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"] }]
257
257
  }], ctorParameters: () => [], propDecorators: { filters: [{ type: i0.Input, args: [{ isSignal: true, alias: "filters", required: false }] }], _overlayOrigin: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkOverlayOrigin), { isSignal: true }] }], _filterTemplate: [{ type: i0.ViewChild, args: ['filterTemplate', { isSignal: true }] }] } });
@@ -272,10 +272,10 @@ class CmatTransferPickerSearchComponent {
272
272
  reset() {
273
273
  this.keyword.setValue('');
274
274
  }
275
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTransferPickerSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
276
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CmatTransferPickerSearchComponent, isStandalone: true, selector: "cmat-transfer-picker-search", inputs: { searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["cmatTransferPickerSearch"], ngImport: i0, template: "<mat-form-field appearance=\"fill\">\r\n <input placeholder=\"{{searchPlaceholder()}}\" matInput type=\"text\" [formControl]=\"keyword\">\r\n @if (keyword.value) {\r\n <button type=\"button\" matSuffix matIconButton (click)=\"reset()\">\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n </button>\r\n }\r\n</mat-form-field>", styles: ["cmat-transfer-picker-search{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center}cmat-transfer-picker-search .mat-mdc-form-field{width:88%}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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: MatInputModule }, { kind: "directive", type: i5$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
275
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTransferPickerSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
276
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CmatTransferPickerSearchComponent, isStandalone: true, selector: "cmat-transfer-picker-search", inputs: { searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["cmatTransferPickerSearch"], ngImport: i0, template: "<mat-form-field appearance=\"fill\">\r\n <input placeholder=\"{{searchPlaceholder()}}\" matInput type=\"text\" [formControl]=\"keyword\">\r\n @if (keyword.value) {\r\n <button type=\"button\" matSuffix matIconButton (click)=\"reset()\">\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n </button>\r\n }\r\n</mat-form-field>", styles: ["cmat-transfer-picker-search{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center}cmat-transfer-picker-search .mat-mdc-form-field{width:88%}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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: MatInputModule }, { kind: "directive", type: i5$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
277
277
  }
278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTransferPickerSearchComponent, decorators: [{
278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTransferPickerSearchComponent, decorators: [{
279
279
  type: Component,
280
280
  args: [{ selector: 'cmat-transfer-picker-search', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerSearch', imports: [MatFormFieldModule, MatIconModule, ReactiveFormsModule, MatButtonModule, MatInputModule], template: "<mat-form-field appearance=\"fill\">\r\n <input placeholder=\"{{searchPlaceholder()}}\" matInput type=\"text\" [formControl]=\"keyword\">\r\n @if (keyword.value) {\r\n <button type=\"button\" matSuffix matIconButton (click)=\"reset()\">\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n </button>\r\n }\r\n</mat-form-field>", styles: ["cmat-transfer-picker-search{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center}cmat-transfer-picker-search .mat-mdc-form-field{width:88%}\n"] }]
281
281
  }], ctorParameters: () => [], propDecorators: { searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }] } });
@@ -490,10 +490,10 @@ class CmatTransferPickerSourceComponent {
490
490
  }
491
491
  }
492
492
  }
493
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTransferPickerSourceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
494
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CmatTransferPickerSourceComponent, isStandalone: true, selector: "cmat-transfer-picker-source", viewQueries: [{ propertyName: "_tree", first: true, predicate: ["componentTree"], descendants: true, isSignal: true }], exportAs: ["cmatTransferPickerSource"], ngImport: i0, template: "<mat-card class=\"transfer-picker-source shadow\">\r\n <mat-card-header class=\"pb-3 items-center\">\r\n <mat-card-title class=\"transfer-picker-source-title\">{{options()?.title}}</mat-card-title>\r\n @if (options()?.filterable) {\r\n <cmat-transfer-picker-filter\r\n [filters]=\"options()?.filters\"></cmat-transfer-picker-filter>\r\n }\r\n </mat-card-header>\r\n <mat-card-content class=\"transfer-picker-source-content\">\r\n @if (options()?.searchable) {\r\n <cmat-transfer-picker-search\r\n [searchPlaceholder]=\"options()?.searchPlaceholder\"></cmat-transfer-picker-search>\r\n }\r\n\r\n <cdk-virtual-scroll-viewport itemSize=\"48\"\r\n class=\"transfer-picker-source-scroll-wrapper overflow-y-auto scrollbar-custom\">\r\n <mat-tree #componentTree [dataSource]=\"dataSource()\" [childrenAccessor]=\"childrenAccessor\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" [matTreeNodePadding]=\"nestedNodeMap.get(node)?.level\">\r\n <button type=\"button\" matIconButton disabled> </button>\r\n <mat-checkbox class=\"checklist-leaf-node\" [checked]=\"checklistSelection.isSelected(nestedNodeMap.get(node)!)\"\r\n [disabled]=\"isNodeDisabled(nestedNodeMap.get(node)!)\" (change)=\"transferLeafItemSelectionToggle(nestedNodeMap.get(node)!);\">\r\n {{node.label}}\r\n </mat-checkbox>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" [matTreeNodePadding]=\"nestedNodeMap.get(node)?.level\">\r\n <button type=\"button\" matIconButton matTreeNodeToggle>\r\n <mat-icon svgIcon=\"{{componentTree.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'}}\"\r\n class=\"mat-icon-rtl-mirror\">\r\n </mat-icon>\r\n </button>\r\n <mat-checkbox [checked]=\"descendantsAllSelected(nestedNodeMap.get(node)!)||committedValueSet().has(nestedNodeMap.get(node)!.value)\"\r\n [indeterminate]=\"descendantsPartiallySelected(nestedNodeMap.get(node)!)\" [disabled]=\"isNodeDisabled(nestedNodeMap.get(node)!)\"\r\n (change)=\"transferItemSelectionToggle(nestedNodeMap.get(node)!)\">\r\n {{node.label}}\r\n </mat-checkbox>\r\n </mat-tree-node>\r\n </mat-tree>\r\n @if (!dataSource().length) {\r\n <div class=\"transfer-picker-source-empty\">\u6682\u65E0\u6570\u636E</div>\r\n }\r\n </cdk-virtual-scroll-viewport>\r\n </mat-card-content>\r\n</mat-card>\r\n", styles: [".transfer-picker-source{width:276px;height:100%;padding:0}.transfer-picker-source .mat-mdc-card-header{display:flex;flex-direction:row;flex-wrap:nowrap;box-sizing:border-box;place-content:space-between;align-items:flex-start;margin-bottom:-8px}.transfer-picker-source-title{font-size:1rem;margin-bottom:0}.transfer-picker-source-scroll-wrapper{height:300px}.transfer-picker-source-empty{text-align:center;font-size:1rem;margin-top:20px;color:#00000040}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i1$2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i1$2.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i1$2.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i1$2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i2$1.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i2$1.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i2$1.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i2$1.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i2$1.MatTreeNode, selector: "mat-tree-node", inputs: ["tabIndex", "disabled"], outputs: ["activation", "expandedChange"], exportAs: ["matTreeNode"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i3$2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: "component", type: CmatTransferPickerFilterComponent, selector: "cmat-transfer-picker-filter", inputs: ["filters"], exportAs: ["cmatTransferPickerFilter"] }, { kind: "component", type: CmatTransferPickerSearchComponent, selector: "cmat-transfer-picker-search", inputs: ["searchPlaceholder"], exportAs: ["cmatTransferPickerSearch"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i6.ɵɵCdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i6.ɵɵCdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
493
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTransferPickerSourceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
494
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CmatTransferPickerSourceComponent, isStandalone: true, selector: "cmat-transfer-picker-source", viewQueries: [{ propertyName: "_tree", first: true, predicate: ["componentTree"], descendants: true, isSignal: true }], exportAs: ["cmatTransferPickerSource"], ngImport: i0, template: "<mat-card class=\"transfer-picker-source shadow\">\r\n <mat-card-header class=\"pb-3 items-center\">\r\n <mat-card-title class=\"transfer-picker-source-title\">{{options()?.title}}</mat-card-title>\r\n @if (options()?.filterable) {\r\n <cmat-transfer-picker-filter\r\n [filters]=\"options()?.filters\"></cmat-transfer-picker-filter>\r\n }\r\n </mat-card-header>\r\n <mat-card-content class=\"transfer-picker-source-content\">\r\n @if (options()?.searchable) {\r\n <cmat-transfer-picker-search\r\n [searchPlaceholder]=\"options()?.searchPlaceholder\"></cmat-transfer-picker-search>\r\n }\r\n\r\n <cdk-virtual-scroll-viewport itemSize=\"48\"\r\n class=\"transfer-picker-source-scroll-wrapper overflow-y-auto scrollbar-custom\">\r\n <mat-tree #componentTree [dataSource]=\"dataSource()\" [childrenAccessor]=\"childrenAccessor\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" [matTreeNodePadding]=\"nestedNodeMap.get(node)?.level\">\r\n <button type=\"button\" matIconButton disabled> </button>\r\n <mat-checkbox class=\"checklist-leaf-node\" [checked]=\"checklistSelection.isSelected(nestedNodeMap.get(node)!)\"\r\n [disabled]=\"isNodeDisabled(nestedNodeMap.get(node)!)\" (change)=\"transferLeafItemSelectionToggle(nestedNodeMap.get(node)!);\">\r\n {{node.label}}\r\n </mat-checkbox>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" [matTreeNodePadding]=\"nestedNodeMap.get(node)?.level\">\r\n <button type=\"button\" matIconButton matTreeNodeToggle>\r\n <mat-icon svgIcon=\"{{componentTree.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'}}\"\r\n class=\"mat-icon-rtl-mirror\">\r\n </mat-icon>\r\n </button>\r\n <mat-checkbox [checked]=\"descendantsAllSelected(nestedNodeMap.get(node)!)||committedValueSet().has(nestedNodeMap.get(node)!.value)\"\r\n [indeterminate]=\"descendantsPartiallySelected(nestedNodeMap.get(node)!)\" [disabled]=\"isNodeDisabled(nestedNodeMap.get(node)!)\"\r\n (change)=\"transferItemSelectionToggle(nestedNodeMap.get(node)!)\">\r\n {{node.label}}\r\n </mat-checkbox>\r\n </mat-tree-node>\r\n </mat-tree>\r\n @if (!dataSource().length) {\r\n <div class=\"transfer-picker-source-empty\">\u6682\u65E0\u6570\u636E</div>\r\n }\r\n </cdk-virtual-scroll-viewport>\r\n </mat-card-content>\r\n</mat-card>\r\n", styles: [".transfer-picker-source{width:276px;height:100%;padding:0}.transfer-picker-source .mat-mdc-card-header{display:flex;flex-direction:row;flex-wrap:nowrap;box-sizing:border-box;place-content:space-between;align-items:flex-start;margin-bottom:-8px}.transfer-picker-source-title{font-size:1rem;margin-bottom:0}.transfer-picker-source-scroll-wrapper{height:300px}.transfer-picker-source-empty{text-align:center;font-size:1rem;margin-top:20px;color:#00000040}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i1$2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i1$2.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i1$2.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i1$2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i2$1.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i2$1.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i2$1.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i2$1.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i2$1.MatTreeNode, selector: "mat-tree-node", inputs: ["tabIndex", "disabled"], outputs: ["activation", "expandedChange"], exportAs: ["matTreeNode"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i3$2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: "component", type: CmatTransferPickerFilterComponent, selector: "cmat-transfer-picker-filter", inputs: ["filters"], exportAs: ["cmatTransferPickerFilter"] }, { kind: "component", type: CmatTransferPickerSearchComponent, selector: "cmat-transfer-picker-search", inputs: ["searchPlaceholder"], exportAs: ["cmatTransferPickerSearch"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i6.ɵɵCdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i6.ɵɵCdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
495
495
  }
496
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTransferPickerSourceComponent, decorators: [{
496
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTransferPickerSourceComponent, decorators: [{
497
497
  type: Component,
498
498
  args: [{ selector: 'cmat-transfer-picker-source', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerSource', imports: [MatCardModule, MatTreeModule, MatCheckboxModule, MatIconModule, MatButtonModule,
499
499
  CmatTransferPickerFilterComponent, CmatTransferPickerSearchComponent, ScrollingModule], template: "<mat-card class=\"transfer-picker-source shadow\">\r\n <mat-card-header class=\"pb-3 items-center\">\r\n <mat-card-title class=\"transfer-picker-source-title\">{{options()?.title}}</mat-card-title>\r\n @if (options()?.filterable) {\r\n <cmat-transfer-picker-filter\r\n [filters]=\"options()?.filters\"></cmat-transfer-picker-filter>\r\n }\r\n </mat-card-header>\r\n <mat-card-content class=\"transfer-picker-source-content\">\r\n @if (options()?.searchable) {\r\n <cmat-transfer-picker-search\r\n [searchPlaceholder]=\"options()?.searchPlaceholder\"></cmat-transfer-picker-search>\r\n }\r\n\r\n <cdk-virtual-scroll-viewport itemSize=\"48\"\r\n class=\"transfer-picker-source-scroll-wrapper overflow-y-auto scrollbar-custom\">\r\n <mat-tree #componentTree [dataSource]=\"dataSource()\" [childrenAccessor]=\"childrenAccessor\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" [matTreeNodePadding]=\"nestedNodeMap.get(node)?.level\">\r\n <button type=\"button\" matIconButton disabled> </button>\r\n <mat-checkbox class=\"checklist-leaf-node\" [checked]=\"checklistSelection.isSelected(nestedNodeMap.get(node)!)\"\r\n [disabled]=\"isNodeDisabled(nestedNodeMap.get(node)!)\" (change)=\"transferLeafItemSelectionToggle(nestedNodeMap.get(node)!);\">\r\n {{node.label}}\r\n </mat-checkbox>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" [matTreeNodePadding]=\"nestedNodeMap.get(node)?.level\">\r\n <button type=\"button\" matIconButton matTreeNodeToggle>\r\n <mat-icon svgIcon=\"{{componentTree.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'}}\"\r\n class=\"mat-icon-rtl-mirror\">\r\n </mat-icon>\r\n </button>\r\n <mat-checkbox [checked]=\"descendantsAllSelected(nestedNodeMap.get(node)!)||committedValueSet().has(nestedNodeMap.get(node)!.value)\"\r\n [indeterminate]=\"descendantsPartiallySelected(nestedNodeMap.get(node)!)\" [disabled]=\"isNodeDisabled(nestedNodeMap.get(node)!)\"\r\n (change)=\"transferItemSelectionToggle(nestedNodeMap.get(node)!)\">\r\n {{node.label}}\r\n </mat-checkbox>\r\n </mat-tree-node>\r\n </mat-tree>\r\n @if (!dataSource().length) {\r\n <div class=\"transfer-picker-source-empty\">\u6682\u65E0\u6570\u636E</div>\r\n }\r\n </cdk-virtual-scroll-viewport>\r\n </mat-card-content>\r\n</mat-card>\r\n", styles: [".transfer-picker-source{width:276px;height:100%;padding:0}.transfer-picker-source .mat-mdc-card-header{display:flex;flex-direction:row;flex-wrap:nowrap;box-sizing:border-box;place-content:space-between;align-items:flex-start;margin-bottom:-8px}.transfer-picker-source-title{font-size:1rem;margin-bottom:0}.transfer-picker-source-scroll-wrapper{height:300px}.transfer-picker-source-empty{text-align:center;font-size:1rem;margin-top:20px;color:#00000040}\n"] }]
@@ -508,10 +508,10 @@ class CmatTransferPickerTargetComponent {
508
508
  clearItem(item) {
509
509
  this.clearItemChange.emit(item);
510
510
  }
511
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTransferPickerTargetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
512
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CmatTransferPickerTargetComponent, isStandalone: true, selector: "cmat-transfer-picker-target", inputs: { committedSelection: { classPropertyName: "committedSelection", publicName: "committedSelection", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clearItemChange: "clearItemChange" }, exportAs: ["cmatTransferPickerTarget"], ngImport: i0, template: "<mat-card class=\"transfer-picker-target shadow\">\r\n <mat-card-header class=\"pb-3 items-center\">\r\n <mat-card-title class=\"transfer-picker-target-title\">\u5DF2\u9009\u62E9 {{committedSelection().length}} \u9879</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <cdk-virtual-scroll-viewport itemSize=\"40\"\r\n class=\"transfer-picker-target-scroll-wrapper overflow-y-auto scrollbar-custom\">\r\n <mat-list dense>\r\n @for (item of committedSelection(); track $index) {\r\n <mat-list-item class=\"transfer-picker-target-item\">\r\n <div mat-line class=\"flex flex-row items-center\">\r\n <div class=\"flex-1\">{{item.label}}</div>\r\n <button type=\"button\" matIconButton (click)=\"clearItem(item)\">\r\n <mat-icon svgIcon=\"heroicons_solid:x-circle\"></mat-icon>\r\n </button>\r\n </div>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n @if (!committedSelection().length) {\r\n <div class=\"transfer-picker-target-empty\">\u6682\u65E0\u6570\u636E</div>\r\n }\r\n </cdk-virtual-scroll-viewport>\r\n </mat-card-content>\r\n</mat-card>\r\n", styles: [".transfer-picker-target{height:100%;padding:0;width:276px}.transfer-picker-target .mat-mdc-card-header{margin-bottom:-8px}.transfer-picker-target-title{font-size:1rem;margin-bottom:0;padding:12px 0}.transfer-picker-target-item{width:100%}.transfer-picker-target-scroll-wrapper{height:356px}.transfer-picker-target-empty{text-align:center;margin-top:20px;color:#00000040}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i1$2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i1$2.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i1$2.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i1$2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i6.ɵɵCdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i6.ɵɵCdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
511
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTransferPickerTargetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
512
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CmatTransferPickerTargetComponent, isStandalone: true, selector: "cmat-transfer-picker-target", inputs: { committedSelection: { classPropertyName: "committedSelection", publicName: "committedSelection", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clearItemChange: "clearItemChange" }, exportAs: ["cmatTransferPickerTarget"], ngImport: i0, template: "<mat-card class=\"transfer-picker-target shadow\">\r\n <mat-card-header class=\"pb-3 items-center\">\r\n <mat-card-title class=\"transfer-picker-target-title\">\u5DF2\u9009\u62E9 {{committedSelection().length}} \u9879</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <cdk-virtual-scroll-viewport itemSize=\"40\"\r\n class=\"transfer-picker-target-scroll-wrapper overflow-y-auto scrollbar-custom\">\r\n <mat-list dense>\r\n @for (item of committedSelection(); track $index) {\r\n <mat-list-item class=\"transfer-picker-target-item\">\r\n <div mat-line class=\"flex flex-row items-center\">\r\n <div class=\"flex-1\">{{item.label}}</div>\r\n <button type=\"button\" matIconButton (click)=\"clearItem(item)\">\r\n <mat-icon svgIcon=\"heroicons_solid:x-circle\"></mat-icon>\r\n </button>\r\n </div>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n @if (!committedSelection().length) {\r\n <div class=\"transfer-picker-target-empty\">\u6682\u65E0\u6570\u636E</div>\r\n }\r\n </cdk-virtual-scroll-viewport>\r\n </mat-card-content>\r\n</mat-card>\r\n", styles: [".transfer-picker-target{height:100%;padding:0;width:276px}.transfer-picker-target .mat-mdc-card-header{margin-bottom:-8px}.transfer-picker-target-title{font-size:1rem;margin-bottom:0;padding:12px 0}.transfer-picker-target-item{width:100%}.transfer-picker-target-scroll-wrapper{height:356px}.transfer-picker-target-empty{text-align:center;margin-top:20px;color:#00000040}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i1$2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i1$2.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i1$2.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i1$2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i6.ɵɵCdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i6.ɵɵCdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
513
513
  }
514
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTransferPickerTargetComponent, decorators: [{
514
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTransferPickerTargetComponent, decorators: [{
515
515
  type: Component,
516
516
  args: [{ selector: 'cmat-transfer-picker-target', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerTarget', imports: [MatCardModule, MatListModule, MatIconModule, ScrollingModule, MatButtonModule], template: "<mat-card class=\"transfer-picker-target shadow\">\r\n <mat-card-header class=\"pb-3 items-center\">\r\n <mat-card-title class=\"transfer-picker-target-title\">\u5DF2\u9009\u62E9 {{committedSelection().length}} \u9879</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <cdk-virtual-scroll-viewport itemSize=\"40\"\r\n class=\"transfer-picker-target-scroll-wrapper overflow-y-auto scrollbar-custom\">\r\n <mat-list dense>\r\n @for (item of committedSelection(); track $index) {\r\n <mat-list-item class=\"transfer-picker-target-item\">\r\n <div mat-line class=\"flex flex-row items-center\">\r\n <div class=\"flex-1\">{{item.label}}</div>\r\n <button type=\"button\" matIconButton (click)=\"clearItem(item)\">\r\n <mat-icon svgIcon=\"heroicons_solid:x-circle\"></mat-icon>\r\n </button>\r\n </div>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n @if (!committedSelection().length) {\r\n <div class=\"transfer-picker-target-empty\">\u6682\u65E0\u6570\u636E</div>\r\n }\r\n </cdk-virtual-scroll-viewport>\r\n </mat-card-content>\r\n</mat-card>\r\n", styles: [".transfer-picker-target{height:100%;padding:0;width:276px}.transfer-picker-target .mat-mdc-card-header{margin-bottom:-8px}.transfer-picker-target-title{font-size:1rem;margin-bottom:0;padding:12px 0}.transfer-picker-target-item{width:100%}.transfer-picker-target-scroll-wrapper{height:356px}.transfer-picker-target-empty{text-align:center;margin-top:20px;color:#00000040}\n"] }]
517
517
  }], propDecorators: { committedSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "committedSelection", required: false }] }], clearItemChange: [{ type: i0.Output, args: ["clearItemChange"] }] } });
@@ -580,10 +580,10 @@ class CmatTransferPickerComponent {
580
580
  _emitterChange() {
581
581
  this.selectChange.emit(this.committedSelection());
582
582
  }
583
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTransferPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
584
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.6", type: CmatTransferPickerComponent, isStandalone: true, selector: "cmat-transfer-picker", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, filterable: { classPropertyName: "filterable", publicName: "filterable", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: false, transformFunction: null }, selectedValues: { classPropertyName: "selectedValues", publicName: "selectedValues", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectChange: "selectChange" }, viewQueries: [{ propertyName: "source", first: true, predicate: CmatTransferPickerSourceComponent, descendants: true, isSignal: true }], exportAs: ["cmatTransferPicker"], ngImport: i0, template: "<cmat-transfer-picker-source></cmat-transfer-picker-source>\r\n<div class=\"cmat-transfer-picker-operation flex flex-col flex-nowrap gap-2 mx-2\">\r\n <button type=\"button\" class=\"pl-2\" matButton=\"filled\" color=\"primary\" (click)=\"pick()\">\r\n \u9009\u62E9<mat-icon svgIcon=\"mat_outline:chevron_right\"></mat-icon>\r\n </button>\r\n <button type=\"button\" class=\"pl-2\" matButton=\"filled\" color=\"primary\" (click)=\"reset()\">\r\n <mat-icon svgIcon=\"mat_outline:chevron_left\"></mat-icon>\u91CD\u7F6E\r\n </button>\r\n</div>\r\n<cmat-transfer-picker-target [committedSelection]=\"committedSelection()\" (clearItemChange)=\"onClearItemChange($event)\">\r\n</cmat-transfer-picker-target>\r\n", styles: ["cmat-transfer-picker{height:100%;overflow:hidden;padding:1rem;display:flex;flex-wrap:nowrap;justify-items:center;align-items:center;gap:.5rem}cmat-transfer-picker cmat-transfer-picker-source,cmat-transfer-picker cmat-transfer-picker-target{height:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: CmatTransferPickerSourceComponent, selector: "cmat-transfer-picker-source", exportAs: ["cmatTransferPickerSource"] }, { kind: "component", type: CmatTransferPickerTargetComponent, selector: "cmat-transfer-picker-target", inputs: ["committedSelection"], outputs: ["clearItemChange"], exportAs: ["cmatTransferPickerTarget"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
583
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTransferPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
584
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.8", type: CmatTransferPickerComponent, isStandalone: true, selector: "cmat-transfer-picker", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, filterable: { classPropertyName: "filterable", publicName: "filterable", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: false, transformFunction: null }, selectedValues: { classPropertyName: "selectedValues", publicName: "selectedValues", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectChange: "selectChange" }, viewQueries: [{ propertyName: "source", first: true, predicate: CmatTransferPickerSourceComponent, descendants: true, isSignal: true }], exportAs: ["cmatTransferPicker"], ngImport: i0, template: "<cmat-transfer-picker-source></cmat-transfer-picker-source>\r\n<div class=\"cmat-transfer-picker-operation flex flex-col flex-nowrap gap-2 mx-2\">\r\n <button type=\"button\" class=\"pl-2\" matButton=\"filled\" color=\"primary\" (click)=\"pick()\">\r\n \u9009\u62E9<mat-icon svgIcon=\"mat_outline:chevron_right\"></mat-icon>\r\n </button>\r\n <button type=\"button\" class=\"pl-2\" matButton=\"filled\" color=\"primary\" (click)=\"reset()\">\r\n <mat-icon svgIcon=\"mat_outline:chevron_left\"></mat-icon>\u91CD\u7F6E\r\n </button>\r\n</div>\r\n<cmat-transfer-picker-target [committedSelection]=\"committedSelection()\" (clearItemChange)=\"onClearItemChange($event)\">\r\n</cmat-transfer-picker-target>\r\n", styles: ["cmat-transfer-picker{height:100%;overflow:hidden;padding:1rem;display:flex;flex-wrap:nowrap;justify-items:center;align-items:center;gap:.5rem}cmat-transfer-picker cmat-transfer-picker-source,cmat-transfer-picker cmat-transfer-picker-target{height:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: CmatTransferPickerSourceComponent, selector: "cmat-transfer-picker-source", exportAs: ["cmatTransferPickerSource"] }, { kind: "component", type: CmatTransferPickerTargetComponent, selector: "cmat-transfer-picker-target", inputs: ["committedSelection"], outputs: ["clearItemChange"], exportAs: ["cmatTransferPickerTarget"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
585
585
  }
586
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTransferPickerComponent, decorators: [{
586
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTransferPickerComponent, decorators: [{
587
587
  type: Component,
588
588
  args: [{ selector: 'cmat-transfer-picker', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPicker', imports: [MatIconModule, MatButtonModule, CmatTransferPickerSourceComponent, CmatTransferPickerTargetComponent], template: "<cmat-transfer-picker-source></cmat-transfer-picker-source>\r\n<div class=\"cmat-transfer-picker-operation flex flex-col flex-nowrap gap-2 mx-2\">\r\n <button type=\"button\" class=\"pl-2\" matButton=\"filled\" color=\"primary\" (click)=\"pick()\">\r\n \u9009\u62E9<mat-icon svgIcon=\"mat_outline:chevron_right\"></mat-icon>\r\n </button>\r\n <button type=\"button\" class=\"pl-2\" matButton=\"filled\" color=\"primary\" (click)=\"reset()\">\r\n <mat-icon svgIcon=\"mat_outline:chevron_left\"></mat-icon>\u91CD\u7F6E\r\n </button>\r\n</div>\r\n<cmat-transfer-picker-target [committedSelection]=\"committedSelection()\" (clearItemChange)=\"onClearItemChange($event)\">\r\n</cmat-transfer-picker-target>\r\n", styles: ["cmat-transfer-picker{height:100%;overflow:hidden;padding:1rem;display:flex;flex-wrap:nowrap;justify-items:center;align-items:center;gap:.5rem}cmat-transfer-picker cmat-transfer-picker-source,cmat-transfer-picker cmat-transfer-picker-target{height:100%}\n"] }]
589
589
  }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], filterable: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterable", required: false }] }], searchable: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchable", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: false }] }], filters: [{ type: i0.Input, args: [{ isSignal: true, alias: "filters", required: false }] }], selectedValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedValues", required: false }] }], selectChange: [{ type: i0.Output, args: ["selectChange"] }], source: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CmatTransferPickerSourceComponent), { isSignal: true }] }] } });
@@ -10,10 +10,10 @@ import * as i2 from '@angular/material/table';
10
10
  import { MatTableDataSource, MatTableModule } from '@angular/material/table';
11
11
 
12
12
  class CmatTreeTableColumnDirective {
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTreeTableColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
14
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: CmatTreeTableColumnDirective, isStandalone: true, selector: "ng-template[cmatTreeTableColumn]", ngImport: i0 }); }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTreeTableColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
14
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: CmatTreeTableColumnDirective, isStandalone: true, selector: "ng-template[cmatTreeTableColumn]", ngImport: i0 }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTreeTableColumnDirective, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTreeTableColumnDirective, decorators: [{
17
17
  type: Directive,
18
18
  args: [{
19
19
  selector: 'ng-template[cmatTreeTableColumn]'
@@ -94,10 +94,10 @@ class CmatTreeTableComponent {
94
94
  }
95
95
  return flattenedNodes;
96
96
  }
97
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTreeTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CmatTreeTableComponent, isStandalone: true, selector: "cmat-treetable", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, verticalSeparator: { classPropertyName: "verticalSeparator", publicName: "verticalSeparator", isSignal: true, isRequired: false, transformFunction: null }, initExpand: { classPropertyName: "initExpand", publicName: "initExpand", isSignal: true, isRequired: false, transformFunction: null }, tableClass: { classPropertyName: "tableClass", publicName: "tableClass", isSignal: true, isRequired: false, transformFunction: null }, showControlColumn: { classPropertyName: "showControlColumn", publicName: "showControlColumn", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodeClicked: "nodeClicked" }, queries: [{ propertyName: "customColumnTpl", first: true, predicate: CmatTreeTableColumnDirective, descendants: true, read: TemplateRef, isSignal: true }], exportAs: ["cmatTreeTable"], usesOnChanges: true, ngImport: i0, template: "<table mat-table class=\"normal-mobile-table w-full bg-transparent\" [dataSource]=\"dataSource()\" [ngClass]=\"tableClass()\">\r\n @for (column of getDisplayedColumns(); track $index) {\r\n @if(column==='operate'){\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell class=\"text-center\"\r\n [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\"> \u64CD\u4F5C </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\">\r\n <ng-container\r\n *ngTemplateOutlet=\"customColumnTpl() ? customColumnTpl() : columnTpl; context: {$implicit: element}\"></ng-container>\r\n </td>\r\n </ng-container>\r\n }@else {\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\">\r\n {{column}}\r\n </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\">\r\n @if($first){\r\n <div class=\"value-cell\">\r\n <div [innerHTML]=\"formatIndentation(element)\"></div>\r\n <button matIconButton [ngStyle]=\"{'visibility': element.children?.length>0 ? 'visible' : 'hidden'}\"\r\n (click)=\"onNodeClick(element)\">\r\n <mat-icon [svgIcon]=\"element.isExpanded? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\r\n </mat-icon>\r\n </button>\r\n\r\n <div>{{element[column]}}</div>\r\n </div>\r\n }@else {\r\n <div>\r\n {{element[column]}}\r\n </div>\r\n }\r\n </td>\r\n </ng-container>\r\n }\r\n }\r\n\r\n <tr *matHeaderRowDef=\"getDisplayedColumns()\" mat-header-row></tr>\r\n <tr *matRowDef=\"let row; columns: getDisplayedColumns();\" mat-row class='group'></tr>\r\n</table>\r\n\r\n<ng-template #columnTpl>\r\n <div>\u8BF7\u5B9E\u73B0\u81EA\u5B9A\u4E49\u6A21\u677F</div>\r\n</ng-template>\r\n", styles: ["cmat-treetable .value-cell{display:flex;align-items:center}cmat-treetable .vertical-separator{border-left:1px solid var(--cmat-divider)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
97
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTreeTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
98
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CmatTreeTableComponent, isStandalone: true, selector: "cmat-treetable", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, verticalSeparator: { classPropertyName: "verticalSeparator", publicName: "verticalSeparator", isSignal: true, isRequired: false, transformFunction: null }, initExpand: { classPropertyName: "initExpand", publicName: "initExpand", isSignal: true, isRequired: false, transformFunction: null }, tableClass: { classPropertyName: "tableClass", publicName: "tableClass", isSignal: true, isRequired: false, transformFunction: null }, showControlColumn: { classPropertyName: "showControlColumn", publicName: "showControlColumn", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodeClicked: "nodeClicked" }, queries: [{ propertyName: "customColumnTpl", first: true, predicate: CmatTreeTableColumnDirective, descendants: true, read: TemplateRef, isSignal: true }], exportAs: ["cmatTreeTable"], usesOnChanges: true, ngImport: i0, template: "<table mat-table class=\"normal-mobile-table w-full bg-transparent\" [dataSource]=\"dataSource()\" [ngClass]=\"tableClass()\">\r\n @for (column of getDisplayedColumns(); track $index) {\r\n @if(column==='operate'){\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell class=\"text-center\"\r\n [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\"> \u64CD\u4F5C </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\">\r\n <ng-container\r\n *ngTemplateOutlet=\"customColumnTpl() ? customColumnTpl() : columnTpl; context: {$implicit: element}\"></ng-container>\r\n </td>\r\n </ng-container>\r\n }@else {\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\">\r\n {{column}}\r\n </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\">\r\n @if($first){\r\n <div class=\"value-cell\">\r\n <div [innerHTML]=\"formatIndentation(element)\"></div>\r\n <button matIconButton [ngStyle]=\"{'visibility': element.children?.length>0 ? 'visible' : 'hidden'}\"\r\n (click)=\"onNodeClick(element)\">\r\n <mat-icon [svgIcon]=\"element.isExpanded? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\r\n </mat-icon>\r\n </button>\r\n\r\n <div>{{element[column]}}</div>\r\n </div>\r\n }@else {\r\n <div>\r\n {{element[column]}}\r\n </div>\r\n }\r\n </td>\r\n </ng-container>\r\n }\r\n }\r\n\r\n <tr *matHeaderRowDef=\"getDisplayedColumns()\" mat-header-row></tr>\r\n <tr *matRowDef=\"let row; columns: getDisplayedColumns();\" mat-row class='group'></tr>\r\n</table>\r\n\r\n<ng-template #columnTpl>\r\n <div>\u8BF7\u5B9E\u73B0\u81EA\u5B9A\u4E49\u6A21\u677F</div>\r\n</ng-template>\r\n", styles: ["cmat-treetable .value-cell{display:flex;align-items:center}cmat-treetable .vertical-separator{border-left:1px solid var(--cmat-divider)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
99
99
  }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatTreeTableComponent, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatTreeTableComponent, decorators: [{
101
101
  type: Component,
102
102
  args: [{ selector: 'cmat-treetable', imports: [CommonModule, MatTableModule, MatIconModule, MatButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'cmatTreeTable', template: "<table mat-table class=\"normal-mobile-table w-full bg-transparent\" [dataSource]=\"dataSource()\" [ngClass]=\"tableClass()\">\r\n @for (column of getDisplayedColumns(); track $index) {\r\n @if(column==='operate'){\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell class=\"text-center\"\r\n [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\"> \u64CD\u4F5C </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\">\r\n <ng-container\r\n *ngTemplateOutlet=\"customColumnTpl() ? customColumnTpl() : columnTpl; context: {$implicit: element}\"></ng-container>\r\n </td>\r\n </ng-container>\r\n }@else {\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\">\r\n {{column}}\r\n </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator()&&!$first}\">\r\n @if($first){\r\n <div class=\"value-cell\">\r\n <div [innerHTML]=\"formatIndentation(element)\"></div>\r\n <button matIconButton [ngStyle]=\"{'visibility': element.children?.length>0 ? 'visible' : 'hidden'}\"\r\n (click)=\"onNodeClick(element)\">\r\n <mat-icon [svgIcon]=\"element.isExpanded? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\r\n </mat-icon>\r\n </button>\r\n\r\n <div>{{element[column]}}</div>\r\n </div>\r\n }@else {\r\n <div>\r\n {{element[column]}}\r\n </div>\r\n }\r\n </td>\r\n </ng-container>\r\n }\r\n }\r\n\r\n <tr *matHeaderRowDef=\"getDisplayedColumns()\" mat-header-row></tr>\r\n <tr *matRowDef=\"let row; columns: getDisplayedColumns();\" mat-row class='group'></tr>\r\n</table>\r\n\r\n<ng-template #columnTpl>\r\n <div>\u8BF7\u5B9E\u73B0\u81EA\u5B9A\u4E49\u6A21\u677F</div>\r\n</ng-template>\r\n", styles: ["cmat-treetable .value-cell{display:flex;align-items:center}cmat-treetable .vertical-separator{border-left:1px solid var(--cmat-divider)}\n"] }]
103
103
  }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], verticalSeparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "verticalSeparator", required: false }] }], initExpand: [{ type: i0.Input, args: [{ isSignal: true, alias: "initExpand", required: false }] }], tableClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableClass", required: false }] }], showControlColumn: [{ type: i0.Input, args: [{ isSignal: true, alias: "showControlColumn", required: false }] }], nodeClicked: [{ type: i0.Output, args: ["nodeClicked"] }], customColumnTpl: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CmatTreeTableColumnDirective), { ...{ read: TemplateRef }, isSignal: true }] }] } });
@@ -93,10 +93,10 @@ class CmatFilesUtilService {
93
93
  .pipe(tap((res) => res), catchError(err => CmatUtilsService.handleError(err)));
94
94
  }
95
95
  }
96
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatFilesUtilService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
97
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatFilesUtilService, providedIn: 'root' }); }
96
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatFilesUtilService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
97
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatFilesUtilService, providedIn: 'root' }); }
98
98
  }
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatFilesUtilService, decorators: [{
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatFilesUtilService, decorators: [{
100
100
  type: Injectable,
101
101
  args: [{
102
102
  providedIn: 'root'
@@ -209,10 +209,10 @@ class CmatUploadComponent {
209
209
  remove() {
210
210
  this.removeEvent.emit(this);
211
211
  }
212
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
213
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CmatUploadComponent, isStandalone: true, selector: "cmat-upload", inputs: { fileAlias: { classPropertyName: "fileAlias", publicName: "fileAlias", isSignal: true, isRequired: false, transformFunction: null }, filePath: { classPropertyName: "filePath", publicName: "filePath", isSignal: true, isRequired: false, transformFunction: null }, fileCategory: { classPropertyName: "fileCategory", publicName: "fileCategory", isSignal: true, isRequired: false, transformFunction: null }, isPublic: { classPropertyName: "isPublic", publicName: "isPublic", isSignal: true, isRequired: false, transformFunction: null }, editMode: { classPropertyName: "editMode", publicName: "editMode", isSignal: true, isRequired: false, transformFunction: null }, autoUpload: { classPropertyName: "autoUpload", publicName: "autoUpload", isSignal: true, isRequired: false, transformFunction: null }, file: { classPropertyName: "file", publicName: "file", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { removeEvent: "removeEvent", uploadEvent: "uploadEvent", file: "fileChange" }, exportAs: ["cmatUpload"], ngImport: i0, template: "<div class=\"flex flex-col\">\r\n <div class=\"flex flex-row items-center\">\r\n <span class=\"flex items-center px-1\">\r\n <mat-icon class=\"icon-size-6 text-hint\" [svgIcon]=\"fileType\"></mat-icon>\r\n </span>\r\n <span\r\n matTooltip=\"{{ file().name }}\"\r\n class=\"text-sm flex flex-auto whitespace-nowrap overflow-x-hidden text-ellipsis\"\r\n >{{ file().name }}({{ fileSize | cmatBytes }})</span\r\n >\r\n <span class=\"flex flex-row gap-1 print:hidden\">\r\n @if (id() === null) {\r\n <button\r\n matIconButton\r\n color=\"primary\"\r\n class=\"w-8 min-h-8 h-8 max-w-8\"\r\n [ngClass]=\"{ disabled: isUploading() }\"\r\n (click)=\"upload()\"\r\n >\r\n <mat-icon\r\n class=\"icon-size-5\"\r\n [svgIcon]=\"'mat_outline:file_upload'\"\r\n ></mat-icon>\r\n </button>\r\n }\r\n\r\n @if (id() !== null) {\r\n <button\r\n matIconButton\r\n color=\"primary\"\r\n class=\"w-8 min-h-8 h-8 max-w-8\"\r\n (click)=\"download()\"\r\n >\r\n <mat-icon\r\n class=\"icon-size-5\"\r\n [svgIcon]=\"'mat_outline:file_download'\"\r\n ></mat-icon>\r\n </button>\r\n }\r\n\r\n @if (editMode()) {\r\n <button\r\n matIconButton\r\n color=\"warn\"\r\n class=\"w-8 min-h-8 h-8 max-w-8\"\r\n (click)=\"remove()\"\r\n >\r\n <mat-icon\r\n class=\"icon-size-5\"\r\n [svgIcon]=\"'heroicons_solid:trash'\"\r\n ></mat-icon>\r\n </button>\r\n }\r\n </span>\r\n </div>\r\n @if (id() === null) {\r\n <mat-progress-bar [value]=\"progressPercentage()\"></mat-progress-bar>\r\n <div\r\n class=\"text-sm block whitespace-nowrap overflow-x-hidden text-ellipsis\"\r\n >\r\n <span>{{ progressPercentage() }}%</span\r\n ><span> {{ loaded() | cmatBytes }} of {{ total() | cmatBytes }}</span>\r\n </div>\r\n }\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i3$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: CmatBytesPipe, name: "cmatBytes" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
212
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
213
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CmatUploadComponent, isStandalone: true, selector: "cmat-upload", inputs: { fileAlias: { classPropertyName: "fileAlias", publicName: "fileAlias", isSignal: true, isRequired: false, transformFunction: null }, filePath: { classPropertyName: "filePath", publicName: "filePath", isSignal: true, isRequired: false, transformFunction: null }, fileCategory: { classPropertyName: "fileCategory", publicName: "fileCategory", isSignal: true, isRequired: false, transformFunction: null }, isPublic: { classPropertyName: "isPublic", publicName: "isPublic", isSignal: true, isRequired: false, transformFunction: null }, editMode: { classPropertyName: "editMode", publicName: "editMode", isSignal: true, isRequired: false, transformFunction: null }, autoUpload: { classPropertyName: "autoUpload", publicName: "autoUpload", isSignal: true, isRequired: false, transformFunction: null }, file: { classPropertyName: "file", publicName: "file", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { removeEvent: "removeEvent", uploadEvent: "uploadEvent", file: "fileChange" }, exportAs: ["cmatUpload"], ngImport: i0, template: "<div class=\"flex flex-col\">\r\n <div class=\"flex flex-row items-center\">\r\n <span class=\"flex items-center px-1\">\r\n <mat-icon class=\"icon-size-6 text-hint\" [svgIcon]=\"fileType\"></mat-icon>\r\n </span>\r\n <span\r\n matTooltip=\"{{ file().name }}\"\r\n class=\"text-sm flex flex-auto whitespace-nowrap overflow-x-hidden text-ellipsis\"\r\n >{{ file().name }}({{ fileSize | cmatBytes }})</span\r\n >\r\n <span class=\"flex flex-row gap-1 print:hidden\">\r\n @if (id() === null) {\r\n <button\r\n matIconButton\r\n color=\"primary\"\r\n class=\"w-8 min-h-8 h-8 max-w-8\"\r\n [ngClass]=\"{ disabled: isUploading() }\"\r\n (click)=\"upload()\"\r\n >\r\n <mat-icon\r\n class=\"icon-size-5\"\r\n [svgIcon]=\"'mat_outline:file_upload'\"\r\n ></mat-icon>\r\n </button>\r\n }\r\n\r\n @if (id() !== null) {\r\n <button\r\n matIconButton\r\n color=\"primary\"\r\n class=\"w-8 min-h-8 h-8 max-w-8\"\r\n (click)=\"download()\"\r\n >\r\n <mat-icon\r\n class=\"icon-size-5\"\r\n [svgIcon]=\"'mat_outline:file_download'\"\r\n ></mat-icon>\r\n </button>\r\n }\r\n\r\n @if (editMode()) {\r\n <button\r\n matIconButton\r\n color=\"warn\"\r\n class=\"w-8 min-h-8 h-8 max-w-8\"\r\n (click)=\"remove()\"\r\n >\r\n <mat-icon\r\n class=\"icon-size-5\"\r\n [svgIcon]=\"'heroicons_solid:trash'\"\r\n ></mat-icon>\r\n </button>\r\n }\r\n </span>\r\n </div>\r\n @if (id() === null) {\r\n <mat-progress-bar [value]=\"progressPercentage()\"></mat-progress-bar>\r\n <div\r\n class=\"text-sm block whitespace-nowrap overflow-x-hidden text-ellipsis\"\r\n >\r\n <span>{{ progressPercentage() }}%</span\r\n ><span> {{ loaded() | cmatBytes }} of {{ total() | cmatBytes }}</span>\r\n </div>\r\n }\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i3$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: CmatBytesPipe, name: "cmatBytes" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
214
214
  }
215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatUploadComponent, decorators: [{
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatUploadComponent, decorators: [{
216
216
  type: Component,
217
217
  args: [{ selector: 'cmat-upload', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatUpload', imports: [
218
218
  MatButtonModule,
@@ -372,10 +372,10 @@ class CmatUploadQueueComponent {
372
372
  return fileType === type;
373
373
  });
374
374
  }
375
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatUploadQueueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
376
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CmatUploadQueueComponent, isStandalone: true, selector: "cmat-upload-queue", inputs: { fileAlias: { classPropertyName: "fileAlias", publicName: "fileAlias", isSignal: true, isRequired: false, transformFunction: null }, filePath: { classPropertyName: "filePath", publicName: "filePath", isSignal: true, isRequired: false, transformFunction: null }, fileCategory: { classPropertyName: "fileCategory", publicName: "fileCategory", isSignal: true, isRequired: false, transformFunction: null }, isPublic: { classPropertyName: "isPublic", publicName: "isPublic", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, autoUpload: { classPropertyName: "autoUpload", publicName: "autoUpload", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, editMode: { classPropertyName: "editMode", publicName: "editMode", isSignal: true, isRequired: false, transformFunction: null }, filesData: { classPropertyName: "filesData", publicName: "filesData", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outputRemoveIdEvent: "outputRemoveIdEvent", outputUploadIdEvent: "outputUploadIdEvent", outputFilesDataEvent: "outputFilesDataEvent", filesData: "filesDataChange" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDropOver($event)" } }, viewQueries: [{ propertyName: "fileUploads", predicate: CmatUploadComponent, descendants: true, isSignal: true }], exportAs: ["cmatUploadQueue"], ngImport: i0, template: "<mat-card>\r\n <mat-card-header>\r\n <mat-card-title>\r\n <legend class=\"text-lg\">\r\n {{ title() }}\r\n @if (required()) {\r\n <span>*</span>\r\n }\r\n </legend>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <input\r\n type=\"file\"\r\n class=\"hidden\"\r\n [id]=\"id\"\r\n [multiple]=\"multiple()\"\r\n [accept]=\"accept()\"\r\n />\r\n\r\n @if (editMode()) {\r\n <mat-card-actions class=\"flex flex-row gap-1 print:hidden\">\r\n @if (!isHandSet()) {\r\n <button matButton=\"filled\" color=\"primary\" (click)=\"choose()\">\r\n @if (autoUpload()) {\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n } @else {\r\n <mat-icon [svgIcon]=\"'mat_outline:add_box'\"></mat-icon>\r\n }\r\n <span class=\"ml-2\">\u9009\u62E9</span>\r\n </button>\r\n @if (filesData() && multiple() && filesData().length > 0) {\r\n @if (!autoUpload()) {\r\n <button matButton=\"filled\" color=\"accent\" (click)=\"uploadAll()\">\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon\r\n ><span class=\"ml-2\">\u4E0A\u4F20\u5168\u90E8</span>\r\n </button>\r\n }\r\n\r\n <button matButton=\"filled\" color=\"warn\" (click)=\"removeAll()\">\r\n <mat-icon [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon\r\n ><span class=\"ml-2\">\u5220\u9664\u5168\u90E8</span>\r\n </button>\r\n }\r\n } @else {\r\n <button matIconButton color=\"primary\" (click)=\"choose()\">\r\n @if (autoUpload()) {\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n } @else {\r\n <mat-icon [svgIcon]=\"'mat_outline:add_box'\"></mat-icon>\r\n }\r\n </button>\r\n\r\n @if (filesData() && multiple() && filesData().length > 0) {\r\n @if (!autoUpload()) {\r\n <button matIconButton color=\"accent\" (click)=\"uploadAll()\">\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n </button>\r\n }\r\n\r\n <button matIconButton color=\"warn\" (click)=\"removeAll()\">\r\n <mat-icon [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon>\r\n </button>\r\n }\r\n }\r\n </mat-card-actions>\r\n }\r\n\r\n <mat-card-content>\r\n <mat-list class=\"border-t\">\r\n @for (file of filesData(); track $index) {\r\n <mat-list-item class=\"cmat-upload-file-item h-full\">\r\n <cmat-upload\r\n class=\"my-2\"\r\n [fileAlias]=\"fileAlias()\"\r\n [filePath]=\"filePath()\"\r\n [fileCategory]=\"fileCategory()\"\r\n [autoUpload]=\"autoUpload()\"\r\n [editMode]=\"editMode()\"\r\n [file]=\"file\"\r\n [id]=\"file.id || null\"\r\n [isPublic]=\"isPublic()\"\r\n (removeEvent)=\"remove($event)\"\r\n (uploadEvent)=\"upload($event)\"\r\n ></cmat-upload>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n </mat-card-content>\r\n</mat-card>\r\n", dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$1.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: CmatUploadComponent, selector: "cmat-upload", inputs: ["fileAlias", "filePath", "fileCategory", "isPublic", "editMode", "autoUpload", "file", "id"], outputs: ["removeEvent", "uploadEvent", "fileChange"], exportAs: ["cmatUpload"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
375
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatUploadQueueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
376
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: CmatUploadQueueComponent, isStandalone: true, selector: "cmat-upload-queue", inputs: { fileAlias: { classPropertyName: "fileAlias", publicName: "fileAlias", isSignal: true, isRequired: false, transformFunction: null }, filePath: { classPropertyName: "filePath", publicName: "filePath", isSignal: true, isRequired: false, transformFunction: null }, fileCategory: { classPropertyName: "fileCategory", publicName: "fileCategory", isSignal: true, isRequired: false, transformFunction: null }, isPublic: { classPropertyName: "isPublic", publicName: "isPublic", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, autoUpload: { classPropertyName: "autoUpload", publicName: "autoUpload", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, editMode: { classPropertyName: "editMode", publicName: "editMode", isSignal: true, isRequired: false, transformFunction: null }, filesData: { classPropertyName: "filesData", publicName: "filesData", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outputRemoveIdEvent: "outputRemoveIdEvent", outputUploadIdEvent: "outputUploadIdEvent", outputFilesDataEvent: "outputFilesDataEvent", filesData: "filesDataChange" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDropOver($event)" } }, viewQueries: [{ propertyName: "fileUploads", predicate: CmatUploadComponent, descendants: true, isSignal: true }], exportAs: ["cmatUploadQueue"], ngImport: i0, template: "<mat-card>\r\n <mat-card-header>\r\n <mat-card-title>\r\n <legend class=\"text-lg\">\r\n {{ title() }}\r\n @if (required()) {\r\n <span>*</span>\r\n }\r\n </legend>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <input\r\n type=\"file\"\r\n class=\"hidden\"\r\n [id]=\"id\"\r\n [multiple]=\"multiple()\"\r\n [accept]=\"accept()\"\r\n />\r\n\r\n @if (editMode()) {\r\n <mat-card-actions class=\"flex flex-row gap-1 print:hidden\">\r\n @if (!isHandSet()) {\r\n <button matButton=\"filled\" color=\"primary\" (click)=\"choose()\">\r\n @if (autoUpload()) {\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n } @else {\r\n <mat-icon [svgIcon]=\"'mat_outline:add_box'\"></mat-icon>\r\n }\r\n <span class=\"ml-2\">\u9009\u62E9</span>\r\n </button>\r\n @if (filesData() && multiple() && filesData().length > 0) {\r\n @if (!autoUpload()) {\r\n <button matButton=\"filled\" color=\"accent\" (click)=\"uploadAll()\">\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon\r\n ><span class=\"ml-2\">\u4E0A\u4F20\u5168\u90E8</span>\r\n </button>\r\n }\r\n\r\n <button matButton=\"filled\" color=\"warn\" (click)=\"removeAll()\">\r\n <mat-icon [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon\r\n ><span class=\"ml-2\">\u5220\u9664\u5168\u90E8</span>\r\n </button>\r\n }\r\n } @else {\r\n <button matIconButton color=\"primary\" (click)=\"choose()\">\r\n @if (autoUpload()) {\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n } @else {\r\n <mat-icon [svgIcon]=\"'mat_outline:add_box'\"></mat-icon>\r\n }\r\n </button>\r\n\r\n @if (filesData() && multiple() && filesData().length > 0) {\r\n @if (!autoUpload()) {\r\n <button matIconButton color=\"accent\" (click)=\"uploadAll()\">\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n </button>\r\n }\r\n\r\n <button matIconButton color=\"warn\" (click)=\"removeAll()\">\r\n <mat-icon [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon>\r\n </button>\r\n }\r\n }\r\n </mat-card-actions>\r\n }\r\n\r\n <mat-card-content>\r\n <mat-list class=\"border-t\">\r\n @for (file of filesData(); track $index) {\r\n <mat-list-item class=\"cmat-upload-file-item h-full\">\r\n <cmat-upload\r\n class=\"my-2\"\r\n [fileAlias]=\"fileAlias()\"\r\n [filePath]=\"filePath()\"\r\n [fileCategory]=\"fileCategory()\"\r\n [autoUpload]=\"autoUpload()\"\r\n [editMode]=\"editMode()\"\r\n [file]=\"file\"\r\n [id]=\"file.id || null\"\r\n [isPublic]=\"isPublic()\"\r\n (removeEvent)=\"remove($event)\"\r\n (uploadEvent)=\"upload($event)\"\r\n ></cmat-upload>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n </mat-card-content>\r\n</mat-card>\r\n", dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$1.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: CmatUploadComponent, selector: "cmat-upload", inputs: ["fileAlias", "filePath", "fileCategory", "isPublic", "editMode", "autoUpload", "file", "id"], outputs: ["removeEvent", "uploadEvent", "fileChange"], exportAs: ["cmatUpload"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
377
377
  }
378
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatUploadQueueComponent, decorators: [{
378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatUploadQueueComponent, decorators: [{
379
379
  type: Component,
380
380
  args: [{ selector: 'cmat-upload-queue', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatUploadQueue', imports: [
381
381
  MatCardModule,
@@ -21,10 +21,10 @@ class ScrollService {
21
21
  manageScrollPos() {
22
22
  this.pos = typeof window !== 'undefined' ? window.scrollY : 0;
23
23
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
25
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ScrollService, providedIn: 'root' }); }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScrollService, providedIn: 'root' }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ScrollService, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScrollService, decorators: [{
28
28
  type: Injectable,
29
29
  args: [{
30
30
  providedIn: 'root'
@@ -120,10 +120,10 @@ class CmatAnimationOnScrollDirective {
120
120
  this._offsetTop = 0;
121
121
  }
122
122
  }
123
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatAnimationOnScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
124
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: CmatAnimationOnScrollDirective, isStandalone: true, selector: "[cmatAnimateOnScroll]", inputs: { animationName: { classPropertyName: "animationName", publicName: "animationName", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null }, useScroll: { classPropertyName: "useScroll", publicName: "useScroll", isSignal: true, isRequired: false, transformFunction: null }, threshold: { classPropertyName: "threshold", publicName: "threshold", isSignal: true, isRequired: false, transformFunction: null } }, providers: [ScrollService], ngImport: i0 }); }
123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatAnimationOnScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
124
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: CmatAnimationOnScrollDirective, isStandalone: true, selector: "[cmatAnimateOnScroll]", inputs: { animationName: { classPropertyName: "animationName", publicName: "animationName", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null }, useScroll: { classPropertyName: "useScroll", publicName: "useScroll", isSignal: true, isRequired: false, transformFunction: null }, threshold: { classPropertyName: "threshold", publicName: "threshold", isSignal: true, isRequired: false, transformFunction: null } }, providers: [ScrollService], ngImport: i0 }); }
125
125
  }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatAnimationOnScrollDirective, decorators: [{
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatAnimationOnScrollDirective, decorators: [{
127
127
  type: Directive,
128
128
  args: [{
129
129
  selector: '[cmatAnimateOnScroll]',
@@ -164,10 +164,10 @@ class CmatArrowCursorDirective {
164
164
  this._cursorIcon.style.transform = transform;
165
165
  }
166
166
  }
167
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatArrowCursorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
168
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: CmatArrowCursorDirective, isStandalone: true, selector: "[cmatArrowCursor]", inputs: { animationDuration: { classPropertyName: "animationDuration", publicName: "animationDuration", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, enabled: { classPropertyName: "enabled", publicName: "enabled", isSignal: true, isRequired: false, transformFunction: null }, selector: { classPropertyName: "selector", publicName: "selector", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickEvent: "clickEvent" }, host: { listeners: { "mouseenter": "onMouseEnter($event)", "mouseleave": "onMouseLeave($event)", "mousemove": "onMouseOver($event)", "click": "onClick($event)" } }, ngImport: i0 }); }
167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatArrowCursorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
168
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: CmatArrowCursorDirective, isStandalone: true, selector: "[cmatArrowCursor]", inputs: { animationDuration: { classPropertyName: "animationDuration", publicName: "animationDuration", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, enabled: { classPropertyName: "enabled", publicName: "enabled", isSignal: true, isRequired: false, transformFunction: null }, selector: { classPropertyName: "selector", publicName: "selector", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickEvent: "clickEvent" }, host: { listeners: { "mouseenter": "onMouseEnter($event)", "mouseleave": "onMouseLeave($event)", "mousemove": "onMouseOver($event)", "click": "onClick($event)" } }, ngImport: i0 }); }
169
169
  }
170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatArrowCursorDirective, decorators: [{
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatArrowCursorDirective, decorators: [{
171
171
  type: Directive,
172
172
  args: [{
173
173
  selector: '[cmatArrowCursor]'
@@ -8,10 +8,10 @@ class CmatAutofocusDirective {
8
8
  this.element.nativeElement.focus();
9
9
  }, 0);
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatAutofocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
12
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: CmatAutofocusDirective, isStandalone: true, selector: "[cmatAutofocus]", ngImport: i0 }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatAutofocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
12
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: CmatAutofocusDirective, isStandalone: true, selector: "[cmatAutofocus]", ngImport: i0 }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CmatAutofocusDirective, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: CmatAutofocusDirective, decorators: [{
15
15
  type: Directive,
16
16
  args: [{
17
17
  selector: '[cmatAutofocus]'