cmat 0.0.54 → 0.0.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/fesm2022/cmat-components-adapter.mjs +9 -9
  2. package/fesm2022/cmat-components-breadcrumb.mjs +10 -10
  3. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  4. package/fesm2022/cmat-components-card.mjs +3 -3
  5. package/fesm2022/cmat-components-carousel.mjs +12 -12
  6. package/fesm2022/cmat-components-carousel.mjs.map +1 -1
  7. package/fesm2022/cmat-components-cascade.mjs +10 -10
  8. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  9. package/fesm2022/cmat-components-chip-input.mjs +3 -3
  10. package/fesm2022/cmat-components-custom-formly.mjs +87 -87
  11. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  12. package/fesm2022/cmat-components-date-range.mjs +3 -3
  13. package/fesm2022/cmat-components-drawer.mjs +6 -6
  14. package/fesm2022/cmat-components-fullscreen.mjs +3 -3
  15. package/fesm2022/cmat-components-highlight.mjs +6 -6
  16. package/fesm2022/cmat-components-image-viewer.mjs +16 -3
  17. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
  18. package/fesm2022/cmat-components-json-editor.mjs +3 -3
  19. package/fesm2022/cmat-components-knob-input.mjs +3 -3
  20. package/fesm2022/cmat-components-masonry.mjs +3 -3
  21. package/fesm2022/cmat-components-material-color-picker.mjs +3 -3
  22. package/fesm2022/cmat-components-material-datetimepicker.mjs +44 -43
  23. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  24. package/fesm2022/cmat-components-navigation.mjs +39 -39
  25. package/fesm2022/cmat-components-opt-input.mjs +4 -4
  26. package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
  27. package/fesm2022/cmat-components-org-chart.mjs +9 -9
  28. package/fesm2022/cmat-components-pagination.mjs +13 -12
  29. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  30. package/fesm2022/cmat-components-password-strength.mjs +9 -9
  31. package/fesm2022/cmat-components-popover.mjs +10 -10
  32. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  33. package/fesm2022/cmat-components-progress-bar.mjs +3 -3
  34. package/fesm2022/cmat-components-qrcode.mjs +3 -3
  35. package/fesm2022/cmat-components-rating.mjs +3 -3
  36. package/fesm2022/cmat-components-select-search.mjs +10 -10
  37. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  38. package/fesm2022/cmat-components-select-table.mjs +3 -3
  39. package/fesm2022/cmat-components-select-tree.mjs +4 -4
  40. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  41. package/fesm2022/cmat-components-speed-dial.mjs +9 -9
  42. package/fesm2022/cmat-components-timeline.mjs +12 -12
  43. package/fesm2022/cmat-components-toast.mjs +9 -9
  44. package/fesm2022/cmat-components-transfer-picker.mjs +19 -19
  45. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  46. package/fesm2022/cmat-components-treetable.mjs +6 -6
  47. package/fesm2022/cmat-components-upload.mjs +19 -17
  48. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  49. package/fesm2022/cmat-components-x6-angular-shape.mjs +3 -7
  50. package/fesm2022/cmat-components-x6-angular-shape.mjs.map +1 -1
  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-lib-mock-api.mjs +6 -6
  59. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  60. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  61. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  62. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  63. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  64. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  65. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  66. package/fesm2022/cmat-services-alert.mjs +4 -6
  67. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  68. package/fesm2022/cmat-services-config.mjs +6 -6
  69. package/fesm2022/cmat-services-confirmation.mjs +6 -6
  70. package/fesm2022/cmat-services-data.mjs +3 -3
  71. package/fesm2022/cmat-services-export-as.mjs +3 -3
  72. package/fesm2022/cmat-services-loading.mjs +6 -6
  73. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  74. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  75. package/fesm2022/cmat-services-platform.mjs +3 -3
  76. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  77. package/fesm2022/cmat-services-title.mjs +3 -3
  78. package/fesm2022/cmat-services-translation.mjs +3 -3
  79. package/fesm2022/cmat-services-utils.mjs +4 -4
  80. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  81. package/package.json +109 -109
  82. package/{components/image-viewer/index.d.ts → types/cmat-components-image-viewer.d.ts} +7 -4
  83. package/{components/upload/index.d.ts → types/cmat-components-upload.d.ts} +1 -1
  84. package/{components/x6-angular-shape/index.d.ts → types/cmat-components-x6-angular-shape.d.ts} +4 -4
  85. package/{services/alert/index.d.ts → types/cmat-services-alert.d.ts} +3 -3
  86. /package/{components/adapter/index.d.ts → types/cmat-components-adapter.d.ts} +0 -0
  87. /package/{components/breadcrumb/index.d.ts → types/cmat-components-breadcrumb.d.ts} +0 -0
  88. /package/{components/card/index.d.ts → types/cmat-components-card.d.ts} +0 -0
  89. /package/{components/carousel/index.d.ts → types/cmat-components-carousel.d.ts} +0 -0
  90. /package/{components/cascade/index.d.ts → types/cmat-components-cascade.d.ts} +0 -0
  91. /package/{components/chip-input/index.d.ts → types/cmat-components-chip-input.d.ts} +0 -0
  92. /package/{components/custom-formly/index.d.ts → types/cmat-components-custom-formly.d.ts} +0 -0
  93. /package/{components/date-range/index.d.ts → types/cmat-components-date-range.d.ts} +0 -0
  94. /package/{components/drawer/index.d.ts → types/cmat-components-drawer.d.ts} +0 -0
  95. /package/{components/fullscreen/index.d.ts → types/cmat-components-fullscreen.d.ts} +0 -0
  96. /package/{components/highlight/index.d.ts → types/cmat-components-highlight.d.ts} +0 -0
  97. /package/{components/json-editor/index.d.ts → types/cmat-components-json-editor.d.ts} +0 -0
  98. /package/{components/knob-input/index.d.ts → types/cmat-components-knob-input.d.ts} +0 -0
  99. /package/{components/masonry/index.d.ts → types/cmat-components-masonry.d.ts} +0 -0
  100. /package/{components/material-color-picker/index.d.ts → types/cmat-components-material-color-picker.d.ts} +0 -0
  101. /package/{components/material-datetimepicker/index.d.ts → types/cmat-components-material-datetimepicker.d.ts} +0 -0
  102. /package/{components/navigation/index.d.ts → types/cmat-components-navigation.d.ts} +0 -0
  103. /package/{components/opt-input/index.d.ts → types/cmat-components-opt-input.d.ts} +0 -0
  104. /package/{components/org-chart/index.d.ts → types/cmat-components-org-chart.d.ts} +0 -0
  105. /package/{components/pagination/index.d.ts → types/cmat-components-pagination.d.ts} +0 -0
  106. /package/{components/password-strength/index.d.ts → types/cmat-components-password-strength.d.ts} +0 -0
  107. /package/{components/popover/index.d.ts → types/cmat-components-popover.d.ts} +0 -0
  108. /package/{components/progress-bar/index.d.ts → types/cmat-components-progress-bar.d.ts} +0 -0
  109. /package/{components/qrcode/index.d.ts → types/cmat-components-qrcode.d.ts} +0 -0
  110. /package/{components/rating/index.d.ts → types/cmat-components-rating.d.ts} +0 -0
  111. /package/{components/select-search/index.d.ts → types/cmat-components-select-search.d.ts} +0 -0
  112. /package/{components/select-table/index.d.ts → types/cmat-components-select-table.d.ts} +0 -0
  113. /package/{components/select-tree/index.d.ts → types/cmat-components-select-tree.d.ts} +0 -0
  114. /package/{components/speed-dial/index.d.ts → types/cmat-components-speed-dial.d.ts} +0 -0
  115. /package/{components/timeline/index.d.ts → types/cmat-components-timeline.d.ts} +0 -0
  116. /package/{components/toast/index.d.ts → types/cmat-components-toast.d.ts} +0 -0
  117. /package/{components/transfer-picker/index.d.ts → types/cmat-components-transfer-picker.d.ts} +0 -0
  118. /package/{components/treetable/index.d.ts → types/cmat-components-treetable.d.ts} +0 -0
  119. /package/{directives/animate-on-scroll/index.d.ts → types/cmat-directives-animate-on-scroll.d.ts} +0 -0
  120. /package/{directives/arrow-cursor/index.d.ts → types/cmat-directives-arrow-cursor.d.ts} +0 -0
  121. /package/{directives/autofocus/index.d.ts → types/cmat-directives-autofocus.d.ts} +0 -0
  122. /package/{directives/data-exporter/index.d.ts → types/cmat-directives-data-exporter.d.ts} +0 -0
  123. /package/{directives/debounce/index.d.ts → types/cmat-directives-debounce.d.ts} +0 -0
  124. /package/{directives/digit-only/index.d.ts → types/cmat-directives-digit-only.d.ts} +0 -0
  125. /package/{directives/equal-validator/index.d.ts → types/cmat-directives-equal-validator.d.ts} +0 -0
  126. /package/{lib/mock-api/index.d.ts → types/cmat-lib-mock-api.d.ts} +0 -0
  127. /package/{pipes/bytes/index.d.ts → types/cmat-pipes-bytes.d.ts} +0 -0
  128. /package/{pipes/date-format/index.d.ts → types/cmat-pipes-date-format.d.ts} +0 -0
  129. /package/{pipes/find-by-key/index.d.ts → types/cmat-pipes-find-by-key.d.ts} +0 -0
  130. /package/{pipes/group-by/index.d.ts → types/cmat-pipes-group-by.d.ts} +0 -0
  131. /package/{pipes/keys/index.d.ts → types/cmat-pipes-keys.d.ts} +0 -0
  132. /package/{pipes/secure/index.d.ts → types/cmat-pipes-secure.d.ts} +0 -0
  133. /package/{pipes/uppercase/index.d.ts → types/cmat-pipes-uppercase.d.ts} +0 -0
  134. /package/{services/config/index.d.ts → types/cmat-services-config.d.ts} +0 -0
  135. /package/{services/confirmation/index.d.ts → types/cmat-services-confirmation.d.ts} +0 -0
  136. /package/{services/data/index.d.ts → types/cmat-services-data.d.ts} +0 -0
  137. /package/{services/export-as/index.d.ts → types/cmat-services-export-as.d.ts} +0 -0
  138. /package/{services/loading/index.d.ts → types/cmat-services-loading.d.ts} +0 -0
  139. /package/{services/local-storage/index.d.ts → types/cmat-services-local-storage.d.ts} +0 -0
  140. /package/{services/media-watcher/index.d.ts → types/cmat-services-media-watcher.d.ts} +0 -0
  141. /package/{services/platform/index.d.ts → types/cmat-services-platform.d.ts} +0 -0
  142. /package/{services/splash-screen/index.d.ts → types/cmat-services-splash-screen.d.ts} +0 -0
  143. /package/{services/title/index.d.ts → types/cmat-services-title.d.ts} +0 -0
  144. /package/{services/translation/index.d.ts → types/cmat-services-translation.d.ts} +0 -0
  145. /package/{services/utils/index.d.ts → types/cmat-services-utils.d.ts} +0 -0
  146. /package/{validators/index.d.ts → types/cmat-validators.d.ts} +0 -0
  147. /package/{version/index.d.ts → types/cmat-version.d.ts} +0 -0
  148. /package/{index.d.ts → types/cmat.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-upload.mjs","sources":["../../../projects/cmat/components/upload/files.util.service.ts","../../../projects/cmat/components/upload/upload.component.ts","../../../projects/cmat/components/upload/upload.component.html","../../../projects/cmat/components/upload/upload-queue/upload-queue.component.ts","../../../projects/cmat/components/upload/upload-queue/upload-queue.component.html","../../../projects/cmat/components/upload/cmat-components-upload.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, OnDestroy, inject } from '@angular/core';\r\nimport { Observable, Subject, catchError, map, takeUntil, tap } from 'rxjs';\r\nimport { IUrlStateConfig, CmatUrlStateConfigService } from 'cmat/services/config';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { FileListModel } from './files.type';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatFilesUtilService implements OnDestroy {\r\n private _http = inject(HttpClient);\r\n private _urlStateConfigService = inject(CmatUrlStateConfigService);\r\n\r\n private _config: IUrlStateConfig;\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor() {\r\n this._urlStateConfigService.config$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((config: IUrlStateConfig) => {\r\n this._config = config;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n downloadFile(fileId: string, isStream: boolean = true): Observable<any> {\r\n return this._http.get(`${this._config.fileUrl}/download/${fileId}`, {\r\n headers: CmatUtilsService.getRequestCryptoHeaders(fileId),\r\n observe: 'response',\r\n reportProgress: true,\r\n responseType: 'blob',\r\n params: {\r\n isStream\r\n }\r\n },).pipe<any>(\r\n catchError(CmatUtilsService.handleError));\r\n }\r\n\r\n downloadFileZip(fileIds?: string[]): Observable<any> {\r\n return this._http.post(`${this._config.fileUrl}/download`, fileIds, {\r\n headers: CmatUtilsService.getRequestCryptoHeaders('fileZip'),\r\n observe: 'response',\r\n reportProgress: true,\r\n responseType: 'blob',\r\n }).pipe<any>(\r\n catchError(CmatUtilsService.handleError));\r\n }\r\n\r\n uploadFile(file: FormData): Observable<any> {\r\n return this._http.post(`${this._config.fileUrl}/upload`, file, {\r\n headers: CmatUtilsService.getRequestCryptoHeaders('files'),\r\n observe: 'events',\r\n reportProgress: true,\r\n responseType: 'json'\r\n }).pipe(\r\n tap((res: any) => res),\r\n catchError(CmatUtilsService.handleError));\r\n }\r\n\r\n uploadFileToProcessed(file: FormData): Observable<any> {\r\n return this._http.post(`${this._config.fileUrl}/upload/finish`, file, {\r\n headers: CmatUtilsService.getRequestCryptoHeaders('files'),\r\n observe: 'events',\r\n reportProgress: true,\r\n responseType: 'json'\r\n }).pipe(\r\n tap((res: any) => res),\r\n catchError(CmatUtilsService.handleError));\r\n }\r\n\r\n switchPublic(fileId: string, isPublic: boolean): Observable<any> {\r\n return this._http.patch(`${this._config.fileUrl}/switch-public/${fileId}`, {\r\n id: fileId,\r\n isPublic\r\n }, {\r\n headers: CmatUtilsService.getRequestCryptoHeaders('files-switch-public')\r\n }).pipe(\r\n catchError(err => CmatUtilsService.handleError(err))\r\n );\r\n }\r\n\r\n deleteFile(fileId: string): Observable<any> {\r\n return this._http.delete(`${this._config.fileUrl}/${fileId}`, {\r\n headers: CmatUtilsService.getRequestCryptoHeaders(fileId)\r\n }).pipe(\r\n catchError(err => CmatUtilsService.handleError(err))\r\n );\r\n }\r\n\r\n getFileList(queryData: object, pageIndex: number = -1, pageSize: number = -1): Observable<any> {\r\n if (this._config.enableDataProtect) {\r\n return this._http.post(`${this._config.fileUrl}/${pageIndex}/${pageSize}`,\r\n CmatUtilsService.getEncryptData(JSON.stringify(queryData)),\r\n {\r\n headers: CmatUtilsService.getRequestCryptoHeaders('fileList'),\r\n responseType: 'text'\r\n }\r\n )\r\n .pipe(\r\n // retry(3), // retry a failed request up to 3 times\r\n map((res: string) => JSON.parse(CmatUtilsService.getDecryptData(res))),\r\n catchError(err => CmatUtilsService.handleError(err))\r\n );\r\n } else {\r\n return this._http.post<FileListModel>(`${this._config.fileUrl}/${pageIndex}/${pageSize}`, queryData, {\r\n headers: CmatUtilsService.getRequestCryptoHeaders('fileList'),\r\n responseType: 'json'\r\n })\r\n .pipe(\r\n // retry(3), // retry a failed request up to 3 times\r\n tap((res: FileListModel) => res),\r\n catchError(err => CmatUtilsService.handleError(err))\r\n );\r\n }\r\n }\r\n}\r\n","import { NgClass } from '@angular/common';\r\nimport { HttpEventType } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation, inject } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { saveAs } from 'file-saver-es';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatBytesPipe } from 'cmat/pipes/bytes';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { FileModel } from './files.type';\r\nimport { CmatFilesUtilService } from './files.util.service';\r\n\r\n@Component({\r\n selector: 'cmat-upload',\r\n templateUrl: './upload.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatUpload',\r\n imports: [MatButtonModule, MatIconModule, MatProgressBarModule, MatTooltipModule, CmatBytesPipe, NgClass]\r\n})\r\nexport class CmatUploadComponent implements OnInit, OnDestroy {\r\n @Input()\r\n fileAlias: string = 'fileData';\r\n\r\n @Input()\r\n filePath: string = '';\r\n\r\n @Input()\r\n fileCategory: string = '';\r\n\r\n @Input()\r\n isPublic: boolean = false;\r\n\r\n @Input()\r\n editMode: boolean = false;\r\n\r\n @Input() autoUpload = true;\r\n\r\n @Input()\r\n id: string;\r\n\r\n @Output() removeEvent = new EventEmitter<CmatUploadComponent>();\r\n @Output() uploadEvent = new EventEmitter<any>();\r\n\r\n progressPercentage: number = 0;\r\n loaded: number = 0;\r\n total: number = 0;\r\n isUploading: boolean = false;\r\n\r\n private _fileService = inject(CmatFilesUtilService);\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n private _file: any;\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n @Input()\r\n get file(): any {\r\n return this._file;\r\n }\r\n set file(file: any) {\r\n this._file = file;\r\n this.total = this._file.size;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get fileType(): 'csv' | 'gif' | 'word' | 'excel' | 'jpg' | 'outlook' | 'pdf' | 'png' | 'ppt' | 'file' | 'text' | 'video' | 'zip' {\r\n return CmatUtilsService.getFileType(this.file.type);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.autoUpload && this.id === null) {\r\n this.upload();\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n\r\n upload(): void {\r\n this.isUploading = true;\r\n const fileModel = {\r\n id: null,\r\n fileName: this.file.name,\r\n length: this.file.size,\r\n fileCategory: this.fileCategory,\r\n isPublic: this.isPublic,\r\n filePath: this.filePath,\r\n fileType: 'file',\r\n data: this.file\r\n } as FileModel;\r\n\r\n fileModel.fileType = this.fileType;\r\n\r\n const formData = new FormData();\r\n\r\n formData.set('fileData', this._file, this._file.name);\r\n formData.append('fileInfo', JSON.stringify(fileModel));\r\n\r\n this._fileService.uploadFile(formData).pipe(\r\n takeUntil(this._unsubscribeAll)\r\n ).subscribe((event: any) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n this.progressPercentage = Math.floor(event.loaded * 100 / event.total);\r\n this.loaded = event.loaded;\r\n this.total = event.total;\r\n }\r\n if (event.type === HttpEventType.Response) {\r\n this.id = event.body.id;\r\n this.file.id = event.body.id;\r\n\r\n this.isUploading = false;\r\n\r\n this.uploadEvent.emit(this.file);\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n download(): void {\r\n this._fileService.downloadFile(this.id).pipe(\r\n takeUntil(this._unsubscribeAll)\r\n ).subscribe((file: any) => {\r\n saveAs(new Blob([file.body]), this.file.fileName);\r\n });\r\n }\r\n\r\n remove(): void {\r\n this.removeEvent.emit(this);\r\n }\r\n}\r\n","<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\"\r\n [svgIcon]=\"fileType\"></mat-icon>\r\n </span>\r\n <span matTooltip=\"{{file.name}}\"\r\n class=\"text-sm flex flex-auto whitespace-nowrap overflow-x-hidden text-ellipsis\">{{file.name}}({{file.size | cmatBytes}})</span>\r\n <span class=\"flex flex-row gap-1 print:hidden\">\r\n @if(id===null){\r\n <button matIconButton color=\"primary\" class=\"w-8 min-h-8 h-8 max-w-8\" [ngClass]=\"{'disabled' : isUploading}\"\r\n (click)=\"upload()\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n </button>\r\n }\r\n\r\n @if(id!==null){\r\n <button matIconButton color=\"primary\" class=\"w-8 min-h-8 h-8 max-w-8\" (click)=\"download()\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'mat_outline:file_download'\"></mat-icon>\r\n </button>\r\n }\r\n\r\n @if(editMode){\r\n <button matIconButton color=\"warn\" class=\"w-8 min-h-8 h-8 max-w-8\" (click)=\"remove()\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:trash'\"></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 class=\"text-sm block whitespace-nowrap overflow-x-hidden text-ellipsis\">\r\n <span>{{progressPercentage}}%</span><span> {{loaded | cmatBytes}} of {{total | cmatBytes}}</span>\r\n </div>\r\n }\r\n</div>","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, Input, OnDestroy, Output, QueryList, ViewChildren, ViewEncapsulation, forwardRef, inject } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatMediaWatcherService } from 'cmat/services/media-watcher';\r\nimport { CmatUploadComponent } from '../upload.component';\r\n\r\n@Component({\r\n selector: 'cmat-upload-queue',\r\n templateUrl: './upload-queue.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatUploadQueue',\r\n imports: [MatCardModule, MatListModule, MatButtonModule, MatIconModule, CmatUploadComponent]\r\n})\r\nexport class CmatUploadQueueComponent implements OnDestroy, AfterViewInit {\r\n @ViewChildren(forwardRef(() => CmatUploadComponent)) fileUploads: QueryList<CmatUploadComponent>;\r\n @Input()\r\n fileAlias: string = 'fileData';\r\n\r\n @Input()\r\n filePath: string = '';\r\n @Input()\r\n fileCategory: string;\r\n\r\n @Input()\r\n isPublic: boolean = false;\r\n\r\n @Input()\r\n required: boolean = false;\r\n\r\n @Input()\r\n autoUpload: boolean = true;\r\n\r\n @Input() multiple: boolean = true;\r\n @Input() accept: string = '';\r\n @Input() title: string = '附件';\r\n @Input() editMode: boolean = false;\r\n @Input()\r\n filesData: any[] = [];\r\n\r\n @Output() outputRemoveIdEvent = new EventEmitter<string>();\r\n @Output() outputUploadIdEvent = new EventEmitter<string>();\r\n @Output() outputFilesDataEvent = new EventEmitter<any>();\r\n\r\n public id = 'cmatupload-' + Math.floor(Math.random() * 1000000);\r\n\r\n isHandSet: boolean;\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _cmatMediaWatcherService = inject(CmatMediaWatcherService);\r\n private _elementRef = inject(ElementRef);\r\n\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n\r\n constructor() {\r\n this._cmatMediaWatcherService.onMediaChange$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(({ matchingAliases }) => {\r\n this.isHandSet = !matchingAliases.includes('lg');\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop(event: any): void {\r\n const files = event.dataTransfer.files;\r\n\r\n for (const file of files) {\r\n if (this.accept?.includes(file.type))\r\n this.add(file);\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n @HostListener('dragover', ['$event'])\r\n onDropOver(event: any): void {\r\n event.preventDefault();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const fileUpload = this._elementRef.nativeElement.querySelector('#' + this.id) as HTMLInputElement;\r\n\r\n fileUpload.onchange = (): void => {\r\n for (let index = 0; index < (fileUpload.files?.length ?? 0); index++) {\r\n const file = fileUpload.files![index];\r\n this.add(file);\r\n }\r\n };\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n add(file: any): void {\r\n if (!this.isFileTypeAccepted(file.type)) {\r\n return;\r\n }\r\n\r\n if (!Array.isArray(this.filesData)) {\r\n this.filesData = [];\r\n }\r\n\r\n if (!(!this.multiple && this.filesData.length > 0)) {\r\n this.filesData = [...this.filesData, file];\r\n } else if (this.fileUploads.first.id === null) {\r\n this.filesData = [...this.filesData, file];\r\n this.fileUploads.first.remove();\r\n }\r\n\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n upload(event: any): void {\r\n this.outputUploadIdEvent.emit(event.id);\r\n\r\n this.outputFilesDataEvent.emit(this.filesData);\r\n }\r\n\r\n remove(event: CmatUploadComponent): void {\r\n const index = this.filesData.indexOf(event.file);\r\n if (index > -1) {\r\n this.filesData.splice(index, 1);\r\n if (event.file.id) {\r\n this.outputRemoveIdEvent.emit(event.file.id);\r\n }\r\n\r\n this.outputFilesDataEvent.emit(this.filesData);\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n uploadAll(): void {\r\n this.fileUploads.forEach((fileUpload) => {\r\n if (fileUpload.id === null) {\r\n fileUpload.upload();\r\n }\r\n });\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n removeAll(): void {\r\n this.fileUploads.forEach((fileUpload) => { fileUpload.remove() });\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n choose(): void {\r\n (this._elementRef.nativeElement.querySelector('#' + this.id) as HTMLInputElement).click();\r\n }\r\n\r\n private isFileTypeAccepted(fileType: string): boolean {\r\n if (!this.accept || this.accept === '') {\r\n return true;\r\n }\r\n\r\n const acceptedTypes = this.accept.split(',').map(type => type.trim());\r\n\r\n return acceptedTypes.some((type) => {\r\n if (type.endsWith('/*')) {\r\n const prefix = type.slice(0, -1);\r\n return fileType.startsWith(prefix);\r\n }\r\n return fileType === type;\r\n });\r\n }\r\n}\r\n","<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 type=\"file\" class=\"hidden\" [id]=\"id\" [multiple]=\"multiple\" [accept]=\"accept\" />\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\">选择</span>\r\n </button>\r\n @if(filesData.length > 0&&multiple){\r\n @if(!autoUpload){\r\n <button matButton=\"filled\" color=\"accent\" (click)=\"uploadAll()\"><mat-icon\r\n [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon><span class=\"ml-2\">上传全部</span></button>\r\n }\r\n\r\n <button matButton=\"filled\" color=\"warn\" (click)=\"removeAll()\"><mat-icon\r\n [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon><span class=\"ml-2\">删除全部</span></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.length > 0&&multiple){\r\n @if(!autoUpload){\r\n <button matIconButton color=\"accent\" (click)=\"uploadAll()\"><mat-icon\r\n [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon></button>\r\n }\r\n\r\n <button matIconButton color=\"warn\" (click)=\"removeAll()\"><mat-icon\r\n [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon></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 class=\"my-2\" [fileAlias]=\"fileAlias\" [filePath]=\"filePath\" [fileCategory]=\"fileCategory\"\r\n [autoUpload]=\"autoUpload\" [editMode]=\"editMode\" [file]=\"file\" [id]=\"file.id||null\" [isPublic]=\"isPublic\"\r\n (removeEvent)=\"remove($event)\" (uploadEvent)=\"upload($event)\"></cmat-upload>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n </mat-card-content>\r\n</mat-card>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i2"],"mappings":"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"}
1
+ {"version":3,"file":"cmat-components-upload.mjs","sources":["../../../projects/cmat/components/upload/files.util.service.ts","../../../projects/cmat/components/upload/upload.component.ts","../../../projects/cmat/components/upload/upload.component.html","../../../projects/cmat/components/upload/upload-queue/upload-queue.component.ts","../../../projects/cmat/components/upload/upload-queue/upload-queue.component.html","../../../projects/cmat/components/upload/cmat-components-upload.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, OnDestroy, inject } from '@angular/core';\r\nimport { Observable, Subject, catchError, map, takeUntil, tap } from 'rxjs';\r\nimport { IUrlStateConfig, CmatUrlStateConfigService } from 'cmat/services/config';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { FileListModel } from './files.type';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatFilesUtilService implements OnDestroy {\r\n private _http = inject(HttpClient);\r\n private _urlStateConfigService = inject(CmatUrlStateConfigService);\r\n\r\n private _config: IUrlStateConfig;\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor() {\r\n this._urlStateConfigService.config$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((config: IUrlStateConfig) => {\r\n this._config = config;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n downloadFile(fileId: string, isStream: boolean = true): Observable<any> {\r\n return this._http.get(`${this._config.fileUrl}/download/${fileId}`, {\r\n headers: CmatUtilsService.getRequestCryptoHeaders(fileId),\r\n observe: 'response',\r\n reportProgress: true,\r\n responseType: 'blob',\r\n params: {\r\n isStream\r\n }\r\n },).pipe<any>(\r\n catchError(CmatUtilsService.handleError));\r\n }\r\n\r\n downloadFileZip(fileIds?: string[]): Observable<any> {\r\n return this._http.post(`${this._config.fileUrl}/download`, fileIds, {\r\n headers: CmatUtilsService.getRequestCryptoHeaders('fileZip'),\r\n observe: 'response',\r\n reportProgress: true,\r\n responseType: 'blob',\r\n }).pipe<any>(\r\n catchError(CmatUtilsService.handleError));\r\n }\r\n\r\n uploadFile(file: FormData): Observable<any> {\r\n return this._http.post(`${this._config.fileUrl}/upload`, file, {\r\n headers: CmatUtilsService.getRequestCryptoHeaders('files'),\r\n observe: 'events',\r\n reportProgress: true,\r\n responseType: 'json'\r\n }).pipe(\r\n tap((res: any) => res),\r\n catchError(CmatUtilsService.handleError));\r\n }\r\n\r\n uploadFileToProcessed(file: FormData): Observable<any> {\r\n return this._http.post(`${this._config.fileUrl}/upload/finish`, file, {\r\n headers: CmatUtilsService.getRequestCryptoHeaders('files'),\r\n observe: 'events',\r\n reportProgress: true,\r\n responseType: 'json'\r\n }).pipe(\r\n tap((res: any) => res),\r\n catchError(CmatUtilsService.handleError));\r\n }\r\n\r\n switchPublic(fileId: string, isPublic: boolean): Observable<any> {\r\n return this._http.patch(`${this._config.fileUrl}/switch-public/${fileId}`, {\r\n id: fileId,\r\n isPublic\r\n }, {\r\n headers: CmatUtilsService.getRequestCryptoHeaders('files-switch-public')\r\n }).pipe(\r\n catchError(err => CmatUtilsService.handleError(err))\r\n );\r\n }\r\n\r\n deleteFile(fileId: string): Observable<any> {\r\n return this._http.delete(`${this._config.fileUrl}/${fileId}`, {\r\n headers: CmatUtilsService.getRequestCryptoHeaders(fileId)\r\n }).pipe(\r\n catchError(err => CmatUtilsService.handleError(err))\r\n );\r\n }\r\n\r\n getFileList(queryData: object, pageIndex: number = -1, pageSize: number = -1): Observable<any> {\r\n if (this._config.enableDataProtect) {\r\n return this._http.post(`${this._config.fileUrl}/${pageIndex}/${pageSize}`,\r\n CmatUtilsService.getEncryptData(JSON.stringify(queryData)),\r\n {\r\n headers: CmatUtilsService.getRequestCryptoHeaders('fileList'),\r\n responseType: 'text'\r\n }\r\n )\r\n .pipe(\r\n // retry(3), // retry a failed request up to 3 times\r\n map((res: string) => JSON.parse(CmatUtilsService.getDecryptData(res))),\r\n catchError(err => CmatUtilsService.handleError(err))\r\n );\r\n } else {\r\n return this._http.post<FileListModel>(`${this._config.fileUrl}/${pageIndex}/${pageSize}`, queryData, {\r\n headers: CmatUtilsService.getRequestCryptoHeaders('fileList'),\r\n responseType: 'json'\r\n })\r\n .pipe(\r\n // retry(3), // retry a failed request up to 3 times\r\n tap((res: FileListModel) => res),\r\n catchError(err => CmatUtilsService.handleError(err))\r\n );\r\n }\r\n }\r\n}\r\n","import { NgClass } from '@angular/common';\r\nimport { HttpEventType } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation, inject } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { saveAs } from 'file-saver-es';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatBytesPipe } from 'cmat/pipes/bytes';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { FileModel } from './files.type';\r\nimport { CmatFilesUtilService } from './files.util.service';\r\n\r\n@Component({\r\n selector: 'cmat-upload',\r\n templateUrl: './upload.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatUpload',\r\n imports: [MatButtonModule, MatIconModule, MatProgressBarModule, MatTooltipModule, CmatBytesPipe, NgClass]\r\n})\r\nexport class CmatUploadComponent implements OnInit, OnDestroy {\r\n @Input()\r\n fileAlias: string = 'fileData';\r\n\r\n @Input()\r\n filePath: string = '';\r\n\r\n @Input()\r\n fileCategory: string = '';\r\n\r\n @Input()\r\n isPublic: boolean = false;\r\n\r\n @Input()\r\n editMode: boolean = false;\r\n\r\n @Input() autoUpload = true;\r\n\r\n @Input()\r\n id: string;\r\n\r\n @Output() removeEvent = new EventEmitter<CmatUploadComponent>();\r\n @Output() uploadEvent = new EventEmitter<any>();\r\n\r\n progressPercentage: number = 0;\r\n loaded: number = 0;\r\n total: number = 0;\r\n isUploading: boolean = false;\r\n\r\n private _fileService = inject(CmatFilesUtilService);\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n private _file: any;\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n @Input()\r\n get file(): any {\r\n return this._file;\r\n }\r\n set file(file: any) {\r\n this._file = file;\r\n this.total = this._file.size;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get fileType(): 'csv' | 'gif' | 'word' | 'excel' | 'jpg' | 'outlook' | 'pdf' | 'png' | 'ppt' | 'file' | 'text' | 'video' | 'zip' {\r\n return CmatUtilsService.getFileType(this.file.type);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.autoUpload && this.id === null) {\r\n this.upload();\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n\r\n upload(): void {\r\n this.isUploading = true;\r\n const fileModel = {\r\n id: null,\r\n fileName: this.file.name,\r\n length: this.file.size,\r\n fileCategory: this.fileCategory,\r\n isPublic: this.isPublic,\r\n filePath: this.filePath,\r\n fileType: 'file',\r\n data: this.file\r\n } as FileModel;\r\n\r\n fileModel.fileType = this.fileType;\r\n\r\n const formData = new FormData();\r\n\r\n formData.set('fileData', this._file, this._file.name);\r\n formData.append('fileInfo', JSON.stringify(fileModel));\r\n\r\n this._fileService.uploadFile(formData).pipe(\r\n takeUntil(this._unsubscribeAll)\r\n ).subscribe((event: any) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n this.progressPercentage = Math.floor(event.loaded * 100 / event.total);\r\n this.loaded = event.loaded;\r\n this.total = event.total;\r\n }\r\n if (event.type === HttpEventType.Response) {\r\n this.id = event.body.id;\r\n this.file.id = event.body.id;\r\n\r\n this.isUploading = false;\r\n\r\n this.uploadEvent.emit(this.file);\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n download(): void {\r\n this._fileService.downloadFile(this.id).pipe(\r\n takeUntil(this._unsubscribeAll)\r\n ).subscribe((file: any) => {\r\n saveAs(new Blob([file.body]), this.file.fileName);\r\n });\r\n }\r\n\r\n remove(): void {\r\n this.removeEvent.emit(this);\r\n }\r\n}\r\n","<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\"\r\n [svgIcon]=\"fileType\"></mat-icon>\r\n </span>\r\n <span matTooltip=\"{{file.name}}\"\r\n class=\"text-sm flex flex-auto whitespace-nowrap overflow-x-hidden text-ellipsis\">{{file.name}}({{file.size | cmatBytes}})</span>\r\n <span class=\"flex flex-row gap-1 print:hidden\">\r\n @if(id===null){\r\n <button matIconButton color=\"primary\" class=\"w-8 min-h-8 h-8 max-w-8\" [ngClass]=\"{'disabled' : isUploading}\"\r\n (click)=\"upload()\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n </button>\r\n }\r\n\r\n @if(id!==null){\r\n <button matIconButton color=\"primary\" class=\"w-8 min-h-8 h-8 max-w-8\" (click)=\"download()\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'mat_outline:file_download'\"></mat-icon>\r\n </button>\r\n }\r\n\r\n @if(editMode){\r\n <button matIconButton color=\"warn\" class=\"w-8 min-h-8 h-8 max-w-8\" (click)=\"remove()\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:trash'\"></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 class=\"text-sm block whitespace-nowrap overflow-x-hidden text-ellipsis\">\r\n <span>{{progressPercentage}}%</span><span> {{loaded | cmatBytes}} of {{total | cmatBytes}}</span>\r\n </div>\r\n }\r\n</div>","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, Input, OnDestroy, Output, QueryList, ViewChildren, ViewEncapsulation, forwardRef, inject } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatMediaWatcherService } from 'cmat/services/media-watcher';\r\nimport { CmatUploadComponent } from '../upload.component';\r\n\r\n@Component({\r\n selector: 'cmat-upload-queue',\r\n templateUrl: './upload-queue.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatUploadQueue',\r\n imports: [MatCardModule, MatListModule, MatButtonModule, MatIconModule, CmatUploadComponent]\r\n})\r\nexport class CmatUploadQueueComponent implements OnDestroy, AfterViewInit {\r\n @ViewChildren(forwardRef(() => CmatUploadComponent)) fileUploads: QueryList<CmatUploadComponent>;\r\n @Input()\r\n fileAlias: string = 'fileData';\r\n\r\n @Input()\r\n filePath: string = '';\r\n @Input()\r\n fileCategory: string;\r\n\r\n @Input()\r\n isPublic: boolean = false;\r\n\r\n @Input()\r\n required: boolean = false;\r\n\r\n @Input()\r\n autoUpload: boolean = true;\r\n\r\n @Input() multiple: boolean = true;\r\n @Input() accept: string = '';\r\n @Input() title: string = '附件';\r\n @Input() editMode: boolean = false;\r\n @Input()\r\n filesData: any[] | undefined = [];\r\n\r\n @Output() outputRemoveIdEvent = new EventEmitter<string>();\r\n @Output() outputUploadIdEvent = new EventEmitter<string>();\r\n @Output() outputFilesDataEvent = new EventEmitter<any>();\r\n\r\n public id = 'cmatupload-' + Math.floor(Math.random() * 1000000);\r\n\r\n isHandSet: boolean;\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _cmatMediaWatcherService = inject(CmatMediaWatcherService);\r\n private _elementRef = inject(ElementRef);\r\n\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n\r\n constructor() {\r\n this._cmatMediaWatcherService.onMediaChange$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(({ matchingAliases }) => {\r\n this.isHandSet = !matchingAliases.includes('lg');\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop(event: any): void {\r\n const files = event.dataTransfer.files;\r\n\r\n for (const file of files) {\r\n if (this.accept?.includes(file.type))\r\n this.add(file);\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n @HostListener('dragover', ['$event'])\r\n onDropOver(event: any): void {\r\n event.preventDefault();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const fileUpload = this._elementRef.nativeElement.querySelector('#' + this.id) as HTMLInputElement;\r\n\r\n fileUpload.onchange = (): void => {\r\n for (let index = 0; index < (fileUpload.files?.length ?? 0); index++) {\r\n const file = fileUpload.files![index];\r\n this.add(file);\r\n }\r\n };\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n add(file: any): void {\r\n if (!this.isFileTypeAccepted(file.type)) {\r\n return;\r\n }\r\n\r\n if (!Array.isArray(this.filesData)) {\r\n this.filesData = [];\r\n }\r\n\r\n if (!(!this.multiple && this.filesData.length > 0)) {\r\n this.filesData = [...this.filesData, file];\r\n } else if (this.fileUploads.first.id === null) {\r\n this.filesData = [...this.filesData, file];\r\n this.fileUploads.first.remove();\r\n }\r\n\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n upload(event: any): void {\r\n this.outputUploadIdEvent.emit(event.id);\r\n\r\n this.outputFilesDataEvent.emit(this.filesData);\r\n }\r\n\r\n remove(event: CmatUploadComponent): void {\r\n if (this.filesData) {\r\n const index = this.filesData.indexOf(event.file);\r\n if (index > -1) {\r\n this.filesData.splice(index, 1);\r\n if (event.file.id) {\r\n this.outputRemoveIdEvent.emit(event.file.id);\r\n }\r\n\r\n this.outputFilesDataEvent.emit(this.filesData);\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n uploadAll(): void {\r\n this.fileUploads.forEach((fileUpload) => {\r\n if (fileUpload.id === null) {\r\n fileUpload.upload();\r\n }\r\n });\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n removeAll(): void {\r\n this.fileUploads.forEach((fileUpload) => { fileUpload.remove() });\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n choose(): void {\r\n (this._elementRef.nativeElement.querySelector('#' + this.id) as HTMLInputElement).click();\r\n }\r\n\r\n private isFileTypeAccepted(fileType: string): boolean {\r\n if (!this.accept || this.accept === '') {\r\n return true;\r\n }\r\n\r\n const acceptedTypes = this.accept.split(',').map(type => type.trim());\r\n\r\n return acceptedTypes.some((type) => {\r\n if (type.endsWith('/*')) {\r\n const prefix = type.slice(0, -1);\r\n return fileType.startsWith(prefix);\r\n }\r\n return fileType === type;\r\n });\r\n }\r\n}\r\n","<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 type=\"file\" class=\"hidden\" [id]=\"id\" [multiple]=\"multiple\" [accept]=\"accept\" />\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\">选择</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()\"><mat-icon\r\n [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon><span class=\"ml-2\">上传全部</span></button>\r\n }\r\n\r\n <button matButton=\"filled\" color=\"warn\" (click)=\"removeAll()\"><mat-icon\r\n [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon><span class=\"ml-2\">删除全部</span></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()\"><mat-icon\r\n [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon></button>\r\n }\r\n\r\n <button matIconButton color=\"warn\" (click)=\"removeAll()\"><mat-icon\r\n [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon></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 class=\"my-2\" [fileAlias]=\"fileAlias\" [filePath]=\"filePath\" [fileCategory]=\"fileCategory\"\r\n [autoUpload]=\"autoUpload\" [editMode]=\"editMode\" [file]=\"file\" [id]=\"file.id||null\" [isPublic]=\"isPublic\"\r\n (removeEvent)=\"remove($event)\" (uploadEvent)=\"upload($event)\"></cmat-upload>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n </mat-card-content>\r\n</mat-card>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i2"],"mappings":"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"}
@@ -7,21 +7,17 @@ class AngularShape extends Node {
7
7
  }
8
8
  (function (AngularShape) {
9
9
  function getMarkup(primer) {
10
- const markup = [];
11
10
  const content = Markup.getForeignObjectMarkup();
12
11
  if (primer) {
13
- markup.push(...[
12
+ return [
14
13
  {
15
14
  tagName: primer,
16
15
  selector: 'body',
17
16
  },
18
17
  content,
19
- ]);
18
+ ];
20
19
  }
21
- else {
22
- markup.push(content);
23
- }
24
- return markup;
20
+ return [content];
25
21
  }
26
22
  AngularShape.config({
27
23
  view: 'angular-shape-view',
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-x6-angular-shape.mjs","sources":["../../../projects/cmat/components/x6-angular-shape/node.ts","../../../projects/cmat/components/x6-angular-shape/registry.ts","../../../projects/cmat/components/x6-angular-shape/view.ts","../../../projects/cmat/components/x6-angular-shape/cmat-components-x6-angular-shape.ts"],"sourcesContent":["/* eslint-disable no-redeclare */\r\n/* eslint-disable @typescript-eslint/no-namespace */\r\nimport { Node, Markup, ObjectExt } from '@antv/x6';\r\n\r\nexport class AngularShape<\r\n Properties extends AngularShape.Properties = AngularShape.Properties,\r\n> extends Node<Properties> { }\r\n\r\nexport namespace AngularShape {\r\n export type Primer = 'rect' | 'circle' | 'path' | 'ellipse' | 'polygon' | 'polyline';\r\n\r\n export interface Properties extends Node.Properties {\r\n primer?: Primer;\r\n }\r\n}\r\n\r\nexport namespace AngularShape {\r\n function getMarkup(primer?: Primer) : Markup.JSONMarkup[]{\r\n const markup: Markup.JSONMarkup[] = [];\r\n const content = Markup.getForeignObjectMarkup();\r\n\r\n if (primer) {\r\n markup.push(\r\n ...[\r\n {\r\n tagName: primer,\r\n selector: 'body',\r\n },\r\n content,\r\n ],\r\n );\r\n } else {\r\n markup.push(content);\r\n }\r\n\r\n return markup;\r\n }\r\n\r\n AngularShape.config<Properties>({\r\n view: 'angular-shape-view',\r\n markup: getMarkup(),\r\n attrs: {\r\n body: {\r\n fill: 'none',\r\n stroke: 'none',\r\n refWidth: '100%',\r\n refHeight: '100%',\r\n },\r\n fo: {\r\n refWidth: '100%',\r\n refHeight: '100%',\r\n },\r\n },\r\n propHooks(metadata: Properties) {\r\n if (metadata.markup == null) {\r\n const primer = metadata.primer;\r\n if (primer) {\r\n metadata.markup = getMarkup(primer);\r\n\r\n let attrs = {};\r\n switch (primer) {\r\n case 'circle':\r\n attrs = {\r\n refCx: '50%',\r\n refCy: '50%',\r\n refR: '50%',\r\n };\r\n break;\r\n case 'ellipse':\r\n attrs = {\r\n refCx: '50%',\r\n refCy: '50%',\r\n refRx: '50%',\r\n refRy: '50%',\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n metadata.attrs = ObjectExt.merge(\r\n {},\r\n {\r\n body: {\r\n refWidth: null,\r\n refHeight: null,\r\n ...attrs,\r\n },\r\n },\r\n metadata.attrs ?? {},\r\n );\r\n }\r\n }\r\n return metadata;\r\n },\r\n });\r\n\r\n Node.registry.register('angular-shape', AngularShape, true);\r\n}","import { Injector, TemplateRef, Type } from '@angular/core';\r\nimport { Graph, Node } from '@antv/x6';\r\n\r\nexport type Content = TemplateRef<any> | Type<any>;\r\n\r\nexport type AngularShapeConfig = Node.Properties & {\r\n shape: string;\r\n injector: Injector;\r\n content: Content;\r\n};\r\n\r\nexport const registerInfo = new Map<\r\n string,\r\n {\r\n injector: Injector;\r\n content: Content;\r\n }\r\n>();\r\n\r\nexport function register(config: AngularShapeConfig): void {\r\n const { shape, injector, content, ...others } = config;\r\n \r\n registerInfo.set(shape, { injector, content });\r\n\r\n Graph.registerNode(\r\n shape,\r\n {\r\n inherit: 'angular-shape',\r\n ...others,\r\n },\r\n true,\r\n );\r\n}","/* eslint-disable no-redeclare */\r\n/* eslint-disable @typescript-eslint/no-namespace */\r\nimport { ApplicationRef, ComponentRef, createComponent, EmbeddedViewRef, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { Dom, NodeView } from '@antv/x6';\r\nimport { AngularShape } from './node';\r\nimport { Content, registerInfo } from './registry';\r\n\r\nexport class AngularShapeView extends NodeView<AngularShape> {\r\n getNodeContainer(): HTMLDivElement {\r\n return this.selectors?.foContent as HTMLDivElement;\r\n }\r\n\r\n override onMouseDown(e: Dom.MouseDownEvent, x: number, y: number): void {\r\n const target = e.target as Element;\r\n const tagName = target.tagName.toLowerCase();\r\n if (tagName === 'input') {\r\n const type = target.getAttribute('type');\r\n if (type == null || ['text', 'password', 'number', 'email', 'search', 'tel', 'url'].includes(type)) {\r\n return;\r\n }\r\n }\r\n\r\n super.onMouseDown(e, x, y);\r\n }\r\n\r\n override unmount(): this {\r\n this.unmountAngularContent();\r\n super.unmount();\r\n return this;\r\n }\r\n\r\n override confirmUpdate(flag: number): number {\r\n const ret = super.confirmUpdate(flag);\r\n return this.handleAction(ret, AngularShapeView.action, () => this.renderAngularContent());\r\n }\r\n\r\n protected renderAngularContent(): void {\r\n this.unmountAngularContent();\r\n const container = this.getNodeContainer();\r\n if (container) {\r\n const node = this.cell;\r\n const { injector, content } = registerInfo.get(node.shape)!; \r\n const applicationRef = injector.get(ApplicationRef);\r\n const environmentInjector = applicationRef.injector; \r\n \r\n if (content instanceof TemplateRef) {\r\n const viewContainerRef = injector.get(ViewContainerRef);\r\n const renderer=injector.get(Renderer2);\r\n const ngArguments = this.getNgArguments();\r\n const embeddedViewRef = viewContainerRef.createEmbeddedView(content, { ngArguments });\r\n embeddedViewRef.rootNodes.forEach(node =>renderer.appendChild(container,node));\r\n embeddedViewRef.detectChanges();\r\n node.on('change:data', () => this.setInstanceInput(content, embeddedViewRef));\r\n } else { \r\n const componentRef = createComponent(content, { environmentInjector, hostElement: container });\r\n applicationRef.attachView(componentRef.hostView);\r\n this.setInstanceInput(content, componentRef);\r\n componentRef.changeDetectorRef.detectChanges();\r\n node.on('change:data', () => this.setInstanceInput(content, componentRef));\r\n node.on('removed', () => componentRef.destroy());\r\n }\r\n }\r\n }\r\n\r\n protected unmountAngularContent(): HTMLDivElement {\r\n const container = this.getNodeContainer();\r\n container.innerHTML = '';\r\n return container;\r\n }\r\n\r\n\r\n private getNgArguments(): Record<string, any> {\r\n const input = (this.cell.data?.ngArguments as Record<string, any>) || {};\r\n return input;\r\n }\r\n\r\n /** 当执行 node.setData() 时需要对实例设置新的输入值 */\r\n private setInstanceInput(content: Content, ref: EmbeddedViewRef<any> | ComponentRef<any>): void {\r\n const ngArguments = this.getNgArguments();\r\n if (content instanceof TemplateRef) {\r\n const embeddedViewRef = ref as EmbeddedViewRef<any>;\r\n embeddedViewRef.context = { ngArguments };\r\n } else {\r\n const componentRef = ref as ComponentRef<any>;\r\n Object.keys(ngArguments).forEach(v => componentRef.setInput(v, ngArguments[v]));\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n}\r\n\r\nexport namespace AngularShapeView {\r\n export const action = 'angular' as any;\r\n\r\n AngularShapeView.config({\r\n bootstrap: [action],\r\n actions: {\r\n component: action,\r\n },\r\n });\r\n\r\n NodeView.registry.register('angular-shape-view', AngularShapeView, true);\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmat-components-x6-angular-shape.mjs","sources":["../../../projects/cmat/components/x6-angular-shape/node.ts","../../../projects/cmat/components/x6-angular-shape/registry.ts","../../../projects/cmat/components/x6-angular-shape/view.ts","../../../projects/cmat/components/x6-angular-shape/cmat-components-x6-angular-shape.ts"],"sourcesContent":["/* eslint-disable no-redeclare */\r\n/* eslint-disable @typescript-eslint/no-namespace */\r\nimport { Node, Markup, ObjectExt, NodeProperties } from '@antv/x6';\r\nimport { MarkupJSONMarkup } from '@antv/x6/lib/view/markup';\r\n\r\nexport class AngularShape<\r\n Properties extends AngularShape.Properties = AngularShape.Properties,\r\n> extends Node<Properties> { }\r\n\r\nexport namespace AngularShape {\r\n export type Primer = 'rect' | 'circle' | 'path' | 'ellipse' | 'polygon' | 'polyline';\r\n\r\n export interface Properties extends NodeProperties {\r\n primer?: Primer;\r\n }\r\n}\r\n\r\nexport namespace AngularShape {\r\n function getMarkup(primer?: Primer) : MarkupJSONMarkup[]{\r\n const content = Markup.getForeignObjectMarkup();\r\n\r\n if (primer) {\r\n return [\r\n {\r\n tagName: primer,\r\n selector: 'body',\r\n },\r\n content,\r\n ];\r\n } \r\n\r\n return [content];\r\n }\r\n\r\n AngularShape.config<Properties>({\r\n view: 'angular-shape-view',\r\n markup: getMarkup(),\r\n attrs: {\r\n body: {\r\n fill: 'none',\r\n stroke: 'none',\r\n refWidth: '100%',\r\n refHeight: '100%',\r\n },\r\n fo: {\r\n refWidth: '100%',\r\n refHeight: '100%',\r\n },\r\n },\r\n propHooks(metadata: Properties) {\r\n if (metadata.markup == null) {\r\n const primer = metadata.primer;\r\n if (primer) {\r\n metadata.markup = getMarkup(primer);\r\n\r\n let attrs = {};\r\n switch (primer) {\r\n case 'circle':\r\n attrs = {\r\n refCx: '50%',\r\n refCy: '50%',\r\n refR: '50%',\r\n };\r\n break;\r\n case 'ellipse':\r\n attrs = {\r\n refCx: '50%',\r\n refCy: '50%',\r\n refRx: '50%',\r\n refRy: '50%',\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n metadata.attrs = ObjectExt.merge(\r\n {},\r\n {\r\n body: {\r\n refWidth: null,\r\n refHeight: null,\r\n ...attrs,\r\n },\r\n },\r\n metadata.attrs ?? {},\r\n );\r\n }\r\n }\r\n return metadata;\r\n },\r\n });\r\n\r\n Node.registry.register('angular-shape', AngularShape, true);\r\n}","import { Injector, TemplateRef, Type } from '@angular/core';\r\nimport { Graph } from '@antv/x6';\r\n\r\nexport type Content = TemplateRef<any> | Type<any>;\r\n\r\nexport type AngularShapeConfig = {\r\n shape: string;\r\n injector: Injector;\r\n content: Content;\r\n} & Record<string, any>;\r\n\r\nexport const registerInfo = new Map<\r\n string,\r\n {\r\n injector: Injector;\r\n content: Content;\r\n }\r\n>();\r\n\r\nexport function register(config: AngularShapeConfig): void {\r\n const { shape, injector, content, ...others } = config;\r\n\r\n registerInfo.set(shape, { injector, content });\r\n\r\n Graph.registerNode(\r\n shape,\r\n {\r\n inherit: 'angular-shape',\r\n ...others,\r\n },\r\n true,\r\n );\r\n}","/* eslint-disable no-redeclare */\r\n/* eslint-disable @typescript-eslint/no-namespace */\r\nimport { ApplicationRef, ComponentRef, createComponent, EmbeddedViewRef, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { Dom, NodeView } from '@antv/x6';\r\nimport { AngularShape } from './node';\r\nimport { Content, registerInfo } from './registry';\r\n\r\nexport class AngularShapeView extends NodeView<AngularShape> {\r\n getNodeContainer(): HTMLDivElement {\r\n return this.selectors?.foContent as HTMLDivElement;\r\n }\r\n\r\n override onMouseDown(e: Dom.MouseDownEvent, x: number, y: number): void {\r\n const target = e.target as Element;\r\n const tagName = target.tagName.toLowerCase();\r\n if (tagName === 'input') {\r\n const type = target.getAttribute('type');\r\n if (type == null || ['text', 'password', 'number', 'email', 'search', 'tel', 'url'].includes(type)) {\r\n return;\r\n }\r\n }\r\n\r\n super.onMouseDown(e, x, y);\r\n }\r\n\r\n override unmount(): this {\r\n this.unmountAngularContent();\r\n super.unmount();\r\n return this;\r\n }\r\n\r\n override confirmUpdate(flag: number): number {\r\n const ret = super.confirmUpdate(flag);\r\n return this.handleAction(ret, AngularShapeView.action, () => this.renderAngularContent());\r\n }\r\n\r\n protected renderAngularContent(): void {\r\n this.unmountAngularContent();\r\n const container = this.getNodeContainer();\r\n if (container) {\r\n const node = this.cell;\r\n const { injector, content } = registerInfo.get(node.shape)!; \r\n const applicationRef = injector.get(ApplicationRef);\r\n const environmentInjector = applicationRef.injector; \r\n \r\n if (content instanceof TemplateRef) {\r\n const viewContainerRef = injector.get(ViewContainerRef);\r\n const renderer=injector.get(Renderer2);\r\n const ngArguments = this.getNgArguments();\r\n const embeddedViewRef = viewContainerRef.createEmbeddedView(content, { ngArguments });\r\n embeddedViewRef.rootNodes.forEach(node =>renderer.appendChild(container,node));\r\n embeddedViewRef.detectChanges();\r\n node.on('change:data', () => this.setInstanceInput(content, embeddedViewRef));\r\n } else { \r\n const componentRef = createComponent(content, { environmentInjector, hostElement: container });\r\n applicationRef.attachView(componentRef.hostView);\r\n this.setInstanceInput(content, componentRef);\r\n componentRef.changeDetectorRef.detectChanges();\r\n node.on('change:data', () => this.setInstanceInput(content, componentRef));\r\n node.on('removed', () => componentRef.destroy());\r\n }\r\n }\r\n }\r\n\r\n protected unmountAngularContent(): HTMLDivElement {\r\n const container = this.getNodeContainer();\r\n container.innerHTML = '';\r\n return container;\r\n }\r\n\r\n\r\n private getNgArguments(): Record<string, any> {\r\n const input = (this.cell.data?.ngArguments as Record<string, any>) || {};\r\n return input;\r\n }\r\n\r\n /** 当执行 node.setData() 时需要对实例设置新的输入值 */\r\n private setInstanceInput(content: Content, ref: EmbeddedViewRef<any> | ComponentRef<any>): void {\r\n const ngArguments = this.getNgArguments();\r\n if (content instanceof TemplateRef) {\r\n const embeddedViewRef = ref as EmbeddedViewRef<any>;\r\n embeddedViewRef.context = { ngArguments };\r\n } else {\r\n const componentRef = ref as ComponentRef<any>;\r\n Object.keys(ngArguments).forEach(v => componentRef.setInput(v, ngArguments[v]));\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n}\r\n\r\nexport namespace AngularShapeView {\r\n export const action = 'angular' as any;\r\n\r\n AngularShapeView.config({\r\n bootstrap: [action],\r\n actions: {\r\n component: action,\r\n },\r\n });\r\n\r\n NodeView.registry.register('angular-shape-view', AngularShapeView, true);\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -27,10 +27,10 @@ class ScrollService {
27
27
  // update service property
28
28
  this.pos = typeof window !== 'undefined' ? window.scrollY : 0;
29
29
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
31
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ScrollService, providedIn: 'root' }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ScrollService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
31
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ScrollService, providedIn: 'root' }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ScrollService, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ScrollService, decorators: [{
34
34
  type: Injectable,
35
35
  args: [{
36
36
  providedIn: 'root'
@@ -136,10 +136,10 @@ class CmatAnimationOnScrollDirective {
136
136
  this._offsetTop = 0;
137
137
  }
138
138
  }
139
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatAnimationOnScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
140
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: CmatAnimationOnScrollDirective, isStandalone: true, selector: "[cmatAnimateOnScroll]", inputs: { animationName: "animationName", offset: "offset", useScroll: "useScroll", threshold: "threshold" }, providers: [ScrollService], ngImport: i0 }); }
139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatAnimationOnScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
140
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: CmatAnimationOnScrollDirective, isStandalone: true, selector: "[cmatAnimateOnScroll]", inputs: { animationName: "animationName", offset: "offset", useScroll: "useScroll", threshold: "threshold" }, providers: [ScrollService], ngImport: i0 }); }
141
141
  }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatAnimationOnScrollDirective, decorators: [{
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatAnimationOnScrollDirective, decorators: [{
143
143
  type: Directive,
144
144
  args: [{
145
145
  selector: '[cmatAnimateOnScroll]',
@@ -140,10 +140,10 @@ class CmatArrowCursorDirective {
140
140
  this.cursorAnimationFrame = requestAnimationFrame(this.moveCursor.bind(this));
141
141
  }
142
142
  }
143
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatArrowCursorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
144
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: CmatArrowCursorDirective, isStandalone: true, selector: "[cmatArrowCursor]", inputs: { animationDuration: "animationDuration", orientation: "orientation", enabled: "enabled", selector: "selector" }, outputs: { clickEvent: "clickEvent" }, host: { listeners: { "mouseenter": "onMouseEnter($event)", "mouseleave": "onMouseLeave($event)", "mousemove": "onMouseOver($event)", "click": "onClick($event)" } }, ngImport: i0 }); }
143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatArrowCursorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
144
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: CmatArrowCursorDirective, isStandalone: true, selector: "[cmatArrowCursor]", inputs: { animationDuration: "animationDuration", orientation: "orientation", enabled: "enabled", selector: "selector" }, outputs: { clickEvent: "clickEvent" }, host: { listeners: { "mouseenter": "onMouseEnter($event)", "mouseleave": "onMouseLeave($event)", "mousemove": "onMouseOver($event)", "click": "onClick($event)" } }, ngImport: i0 }); }
145
145
  }
146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatArrowCursorDirective, decorators: [{
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatArrowCursorDirective, decorators: [{
147
147
  type: Directive,
148
148
  args: [{
149
149
  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: "20.3.7", ngImport: i0, type: CmatAutofocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
12
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: CmatAutofocusDirective, isStandalone: true, selector: "[cmatAutofocus]", ngImport: i0 }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatAutofocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
12
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: CmatAutofocusDirective, isStandalone: true, selector: "[cmatAutofocus]", ngImport: i0 }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatAutofocusDirective, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatAutofocusDirective, decorators: [{
15
15
  type: Directive,
16
16
  args: [{
17
17
  selector: '[cmatAutofocus]'
@@ -106,10 +106,10 @@ class CsvExporterService extends WorksheetExporter {
106
106
  getMimeType() {
107
107
  return MIME_CSV;
108
108
  }
109
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CsvExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
110
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CsvExporterService, providedIn: 'root' }); }
109
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CsvExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
110
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CsvExporterService, providedIn: 'root' }); }
111
111
  }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CsvExporterService, decorators: [{
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CsvExporterService, decorators: [{
113
113
  type: Injectable,
114
114
  args: [{
115
115
  providedIn: 'root'
@@ -130,10 +130,10 @@ class JsonExporterService extends FileExporter {
130
130
  getMimeType() {
131
131
  return MIME_JSON;
132
132
  }
133
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: JsonExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
134
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: JsonExporterService, providedIn: 'root' }); }
133
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: JsonExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
134
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: JsonExporterService, providedIn: 'root' }); }
135
135
  }
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: JsonExporterService, decorators: [{
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: JsonExporterService, decorators: [{
137
137
  type: Injectable,
138
138
  args: [{
139
139
  providedIn: 'root'
@@ -164,10 +164,10 @@ class TxtExporterService extends FileExporter {
164
164
  return TAB;
165
165
  }
166
166
  }
167
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TxtExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
168
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TxtExporterService, providedIn: 'root' }); }
167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TxtExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
168
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TxtExporterService, providedIn: 'root' }); }
169
169
  }
170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TxtExporterService, decorators: [{
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TxtExporterService, decorators: [{
171
171
  type: Injectable,
172
172
  args: [{
173
173
  providedIn: 'root'
@@ -211,10 +211,10 @@ class XlsExporterService extends WorksheetExporter {
211
211
  _convertToWch(columnWidths) {
212
212
  return columnWidths.map(width => ({ wch: width }));
213
213
  }
214
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: XlsExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
215
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: XlsExporterService, providedIn: 'root' }); }
214
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XlsExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
215
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XlsExporterService, providedIn: 'root' }); }
216
216
  }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: XlsExporterService, decorators: [{
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XlsExporterService, decorators: [{
218
218
  type: Injectable,
219
219
  args: [{
220
220
  providedIn: 'root'
@@ -228,10 +228,10 @@ class XlsxExporterService extends XlsExporterService {
228
228
  getMimeType() {
229
229
  return MIME_EXCEL_XLSX;
230
230
  }
231
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: XlsxExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
232
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: XlsxExporterService, providedIn: 'root' }); }
231
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XlsxExporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
232
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XlsxExporterService, providedIn: 'root' }); }
233
233
  }
234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: XlsxExporterService, decorators: [{
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XlsxExporterService, decorators: [{
235
235
  type: Injectable,
236
236
  args: [{
237
237
  providedIn: 'root'
@@ -263,10 +263,10 @@ class ServiceLocatorService {
263
263
  return this._injector.get(XlsxExporterService);
264
264
  }
265
265
  }
266
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ServiceLocatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
267
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ServiceLocatorService, providedIn: 'root' }); }
266
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ServiceLocatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
267
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ServiceLocatorService, providedIn: 'root' }); }
268
268
  }
269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: ServiceLocatorService, decorators: [{
269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ServiceLocatorService, decorators: [{
270
270
  type: Injectable,
271
271
  args: [{
272
272
  providedIn: 'root'
@@ -296,10 +296,10 @@ class CmatDataExporterDirective {
296
296
  _loadExporter(exportType) {
297
297
  this._exporterService = this._serviceLocator.getService(exportType);
298
298
  }
299
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatDataExporterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
300
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: CmatDataExporterDirective, isStandalone: true, selector: "button[cmatDataExporter]", inputs: { dataSource: "dataSource", exportColumns: "exportColumns", options: "options", exportType: "exportType" }, usesOnChanges: true, ngImport: i0 }); }
299
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatDataExporterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
300
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: CmatDataExporterDirective, isStandalone: true, selector: "button[cmatDataExporter]", inputs: { dataSource: "dataSource", exportColumns: "exportColumns", options: "options", exportType: "exportType" }, usesOnChanges: true, ngImport: i0 }); }
301
301
  }
302
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatDataExporterDirective, decorators: [{
302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatDataExporterDirective, decorators: [{
303
303
  type: Directive,
304
304
  args: [{
305
305
  selector: 'button[cmatDataExporter]'
@@ -22,10 +22,10 @@ class AbstractDebounceDirective {
22
22
  this.subscription$.next();
23
23
  this.subscription$.complete();
24
24
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: AbstractDebounceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
26
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: AbstractDebounceDirective, isStandalone: true, inputs: { debounceTime: "debounceTime" }, outputs: { emitChanged: "emitChanged" }, ngImport: i0 }); }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AbstractDebounceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
26
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: AbstractDebounceDirective, isStandalone: true, inputs: { debounceTime: "debounceTime" }, outputs: { emitChanged: "emitChanged" }, ngImport: i0 }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: AbstractDebounceDirective, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AbstractDebounceDirective, decorators: [{
29
29
  type: Directive
30
30
  }], ctorParameters: () => [], propDecorators: { debounceTime: [{
31
31
  type: Input
@@ -41,10 +41,10 @@ class CmatDebounceClickDirective extends AbstractDebounceDirective {
41
41
  event.preventDefault();
42
42
  this.emitEvent$.next(event);
43
43
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatDebounceClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
45
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: CmatDebounceClickDirective, isStandalone: true, selector: "[cmatDebounceClick]", host: { listeners: { "click": "onKeyUp($event)" } }, usesInheritance: true, ngImport: i0 }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatDebounceClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
45
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: CmatDebounceClickDirective, isStandalone: true, selector: "[cmatDebounceClick]", host: { listeners: { "click": "onKeyUp($event)" } }, usesInheritance: true, ngImport: i0 }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatDebounceClickDirective, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatDebounceClickDirective, decorators: [{
48
48
  type: Directive,
49
49
  args: [{
50
50
  selector: '[cmatDebounceClick]'
@@ -62,10 +62,10 @@ class CmatDebounceKeyupDirective extends AbstractDebounceDirective {
62
62
  event.preventDefault();
63
63
  this.emitEvent$.next(event);
64
64
  }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatDebounceKeyupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
66
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: CmatDebounceKeyupDirective, isStandalone: true, selector: "input[cmatDebounceKeyup]", host: { listeners: { "keyup": "onKeyUp($event)" } }, usesInheritance: true, ngImport: i0 }); }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatDebounceKeyupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
66
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: CmatDebounceKeyupDirective, isStandalone: true, selector: "input[cmatDebounceKeyup]", host: { listeners: { "keyup": "onKeyUp($event)" } }, usesInheritance: true, ngImport: i0 }); }
67
67
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatDebounceKeyupDirective, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatDebounceKeyupDirective, decorators: [{
69
69
  type: Directive,
70
70
  args: [{
71
71
  selector: 'input[cmatDebounceKeyup]'
@@ -258,10 +258,10 @@ class CmatDigitOnlyDirective {
258
258
  key +
259
259
  oldValue.substring(selectionEnd));
260
260
  }
261
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatDigitOnlyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
262
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: CmatDigitOnlyDirective, isStandalone: true, selector: "[cmatDigitOnly]", inputs: { decimal: "decimal", decimalSeparator: "decimalSeparator", allowNegatives: "allowNegatives", allowPaste: "allowPaste", negativeSign: "negativeSign", min: "min", max: "max", pattern: "pattern" }, host: { listeners: { "beforeinput": "onBeforeInput($event)", "input": "onInputChange($event)", "keydown": "onKeyDown($event)", "paste": "onPaste($event)", "drop": "onDrop($event)" } }, usesOnChanges: true, ngImport: i0 }); }
261
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatDigitOnlyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
262
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: CmatDigitOnlyDirective, isStandalone: true, selector: "[cmatDigitOnly]", inputs: { decimal: "decimal", decimalSeparator: "decimalSeparator", allowNegatives: "allowNegatives", allowPaste: "allowPaste", negativeSign: "negativeSign", min: "min", max: "max", pattern: "pattern" }, host: { listeners: { "beforeinput": "onBeforeInput($event)", "input": "onInputChange($event)", "keydown": "onKeyDown($event)", "paste": "onPaste($event)", "drop": "onDrop($event)" } }, usesOnChanges: true, ngImport: i0 }); }
263
263
  }
264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatDigitOnlyDirective, decorators: [{
264
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatDigitOnlyDirective, decorators: [{
265
265
  type: Directive,
266
266
  args: [{
267
267
  selector: '[cmatDigitOnly]'
@@ -365,10 +365,10 @@ class CmatMaskDirective {
365
365
  key +
366
366
  oldValue.substring(selectionStart);
367
367
  }
368
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
369
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: CmatMaskDirective, isStandalone: true, selector: "[cmatMask]", host: { listeners: { "input": "onInputChange($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
368
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
369
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: CmatMaskDirective, isStandalone: true, selector: "[cmatMask]", host: { listeners: { "input": "onInputChange($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
370
370
  }
371
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatMaskDirective, decorators: [{
371
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatMaskDirective, decorators: [{
372
372
  type: Directive,
373
373
  args: [{
374
374
  selector: '[cmatMask]'
@@ -31,12 +31,12 @@ class CmatEqualValidatorDirective {
31
31
  }
32
32
  return this._reverse === 'true' ? CmatEqualValidatorDirective._validateReverse(c, other) : CmatEqualValidatorDirective._validateNoReverse(c, other);
33
33
  }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatEqualValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: CmatEqualValidatorDirective, isStandalone: true, selector: "[cmatValidateEqual][formControlName],[cmatValidateEqual][formControl],[cmatValidateEqual][ngModel]", providers: [
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatEqualValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: CmatEqualValidatorDirective, isStandalone: true, selector: "[cmatValidateEqual][formControlName],[cmatValidateEqual][formControl],[cmatValidateEqual][ngModel]", providers: [
36
36
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => CmatEqualValidatorDirective), multi: true }
37
37
  ], ngImport: i0 }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatEqualValidatorDirective, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatEqualValidatorDirective, decorators: [{
40
40
  type: Directive,
41
41
  args: [{
42
42
  selector: '[cmatValidateEqual][formControlName],[cmatValidateEqual][formControl],[cmatValidateEqual][ngModel]',
@@ -132,10 +132,10 @@ class CmatMockApiService {
132
132
  // Return the instance
133
133
  return cmatMockHttp;
134
134
  }
135
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatMockApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
136
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatMockApiService, providedIn: 'root' }); }
135
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatMockApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
136
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatMockApiService, providedIn: 'root' }); }
137
137
  }
138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatMockApiService, decorators: [{
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatMockApiService, decorators: [{
139
139
  type: Injectable,
140
140
  args: [{
141
141
  providedIn: 'root'
@@ -210,10 +210,10 @@ class CmatMockApiInterceptor {
210
210
  return throwError(() => response);
211
211
  }));
212
212
  }
213
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatMockApiInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
214
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatMockApiInterceptor, providedIn: 'root' }); }
213
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatMockApiInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
214
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatMockApiInterceptor, providedIn: 'root' }); }
215
215
  }
216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatMockApiInterceptor, decorators: [{
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatMockApiInterceptor, decorators: [{
217
217
  type: Injectable,
218
218
  args: [{
219
219
  providedIn: 'root'
@@ -13,10 +13,10 @@ class CmatBytesPipe {
13
13
  const size = Math.floor(Math.log(bytes) / Math.log(1024));
14
14
  return (bytes / Math.pow(1024, Math.floor(size))).toFixed(1) + ' ' + units[size];
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
17
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.7", ngImport: i0, type: CmatBytesPipe, isStandalone: true, name: "cmatBytes" }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
17
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: CmatBytesPipe, isStandalone: true, name: "cmatBytes" }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: CmatBytesPipe, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CmatBytesPipe, decorators: [{
20
20
  type: Pipe,
21
21
  args: [{
22
22
  name: 'cmatBytes'