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.
- package/fesm2022/cmat-components-adapter.mjs +9 -9
- package/fesm2022/cmat-components-breadcrumb.mjs +10 -10
- package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/cmat-components-card.mjs +3 -3
- package/fesm2022/cmat-components-carousel.mjs +12 -12
- package/fesm2022/cmat-components-carousel.mjs.map +1 -1
- package/fesm2022/cmat-components-cascade.mjs +10 -10
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +3 -3
- package/fesm2022/cmat-components-custom-formly.mjs +87 -87
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
- package/fesm2022/cmat-components-date-range.mjs +3 -3
- package/fesm2022/cmat-components-drawer.mjs +6 -6
- package/fesm2022/cmat-components-fullscreen.mjs +3 -3
- package/fesm2022/cmat-components-highlight.mjs +6 -6
- package/fesm2022/cmat-components-image-viewer.mjs +16 -3
- package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
- package/fesm2022/cmat-components-json-editor.mjs +3 -3
- package/fesm2022/cmat-components-knob-input.mjs +3 -3
- package/fesm2022/cmat-components-masonry.mjs +3 -3
- package/fesm2022/cmat-components-material-color-picker.mjs +3 -3
- package/fesm2022/cmat-components-material-datetimepicker.mjs +44 -43
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +39 -39
- package/fesm2022/cmat-components-opt-input.mjs +4 -4
- package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
- package/fesm2022/cmat-components-org-chart.mjs +9 -9
- package/fesm2022/cmat-components-pagination.mjs +13 -12
- package/fesm2022/cmat-components-pagination.mjs.map +1 -1
- package/fesm2022/cmat-components-password-strength.mjs +9 -9
- package/fesm2022/cmat-components-popover.mjs +10 -10
- package/fesm2022/cmat-components-popover.mjs.map +1 -1
- package/fesm2022/cmat-components-progress-bar.mjs +3 -3
- package/fesm2022/cmat-components-qrcode.mjs +3 -3
- package/fesm2022/cmat-components-rating.mjs +3 -3
- package/fesm2022/cmat-components-select-search.mjs +10 -10
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-table.mjs +3 -3
- package/fesm2022/cmat-components-select-tree.mjs +4 -4
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
- package/fesm2022/cmat-components-speed-dial.mjs +9 -9
- package/fesm2022/cmat-components-timeline.mjs +12 -12
- package/fesm2022/cmat-components-toast.mjs +9 -9
- package/fesm2022/cmat-components-transfer-picker.mjs +19 -19
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-treetable.mjs +6 -6
- package/fesm2022/cmat-components-upload.mjs +19 -17
- package/fesm2022/cmat-components-upload.mjs.map +1 -1
- package/fesm2022/cmat-components-x6-angular-shape.mjs +3 -7
- package/fesm2022/cmat-components-x6-angular-shape.mjs.map +1 -1
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
- package/fesm2022/cmat-directives-arrow-cursor.mjs +3 -3
- package/fesm2022/cmat-directives-autofocus.mjs +3 -3
- package/fesm2022/cmat-directives-data-exporter.mjs +21 -21
- package/fesm2022/cmat-directives-debounce.mjs +9 -9
- package/fesm2022/cmat-directives-digit-only.mjs +6 -6
- package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
- package/fesm2022/cmat-lib-mock-api.mjs +6 -6
- package/fesm2022/cmat-pipes-bytes.mjs +3 -3
- package/fesm2022/cmat-pipes-date-format.mjs +3 -3
- package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
- package/fesm2022/cmat-pipes-group-by.mjs +3 -3
- package/fesm2022/cmat-pipes-keys.mjs +3 -3
- package/fesm2022/cmat-pipes-secure.mjs +3 -3
- package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
- package/fesm2022/cmat-services-alert.mjs +4 -6
- package/fesm2022/cmat-services-alert.mjs.map +1 -1
- package/fesm2022/cmat-services-config.mjs +6 -6
- package/fesm2022/cmat-services-confirmation.mjs +6 -6
- package/fesm2022/cmat-services-data.mjs +3 -3
- package/fesm2022/cmat-services-export-as.mjs +3 -3
- package/fesm2022/cmat-services-loading.mjs +6 -6
- package/fesm2022/cmat-services-local-storage.mjs +3 -3
- package/fesm2022/cmat-services-media-watcher.mjs +3 -3
- package/fesm2022/cmat-services-platform.mjs +3 -3
- package/fesm2022/cmat-services-splash-screen.mjs +3 -3
- package/fesm2022/cmat-services-title.mjs +3 -3
- package/fesm2022/cmat-services-translation.mjs +3 -3
- package/fesm2022/cmat-services-utils.mjs +4 -4
- package/fesm2022/cmat-services-utils.mjs.map +1 -1
- package/package.json +109 -109
- package/{components/image-viewer/index.d.ts → types/cmat-components-image-viewer.d.ts} +7 -4
- package/{components/upload/index.d.ts → types/cmat-components-upload.d.ts} +1 -1
- package/{components/x6-angular-shape/index.d.ts → types/cmat-components-x6-angular-shape.d.ts} +4 -4
- package/{services/alert/index.d.ts → types/cmat-services-alert.d.ts} +3 -3
- /package/{components/adapter/index.d.ts → types/cmat-components-adapter.d.ts} +0 -0
- /package/{components/breadcrumb/index.d.ts → types/cmat-components-breadcrumb.d.ts} +0 -0
- /package/{components/card/index.d.ts → types/cmat-components-card.d.ts} +0 -0
- /package/{components/carousel/index.d.ts → types/cmat-components-carousel.d.ts} +0 -0
- /package/{components/cascade/index.d.ts → types/cmat-components-cascade.d.ts} +0 -0
- /package/{components/chip-input/index.d.ts → types/cmat-components-chip-input.d.ts} +0 -0
- /package/{components/custom-formly/index.d.ts → types/cmat-components-custom-formly.d.ts} +0 -0
- /package/{components/date-range/index.d.ts → types/cmat-components-date-range.d.ts} +0 -0
- /package/{components/drawer/index.d.ts → types/cmat-components-drawer.d.ts} +0 -0
- /package/{components/fullscreen/index.d.ts → types/cmat-components-fullscreen.d.ts} +0 -0
- /package/{components/highlight/index.d.ts → types/cmat-components-highlight.d.ts} +0 -0
- /package/{components/json-editor/index.d.ts → types/cmat-components-json-editor.d.ts} +0 -0
- /package/{components/knob-input/index.d.ts → types/cmat-components-knob-input.d.ts} +0 -0
- /package/{components/masonry/index.d.ts → types/cmat-components-masonry.d.ts} +0 -0
- /package/{components/material-color-picker/index.d.ts → types/cmat-components-material-color-picker.d.ts} +0 -0
- /package/{components/material-datetimepicker/index.d.ts → types/cmat-components-material-datetimepicker.d.ts} +0 -0
- /package/{components/navigation/index.d.ts → types/cmat-components-navigation.d.ts} +0 -0
- /package/{components/opt-input/index.d.ts → types/cmat-components-opt-input.d.ts} +0 -0
- /package/{components/org-chart/index.d.ts → types/cmat-components-org-chart.d.ts} +0 -0
- /package/{components/pagination/index.d.ts → types/cmat-components-pagination.d.ts} +0 -0
- /package/{components/password-strength/index.d.ts → types/cmat-components-password-strength.d.ts} +0 -0
- /package/{components/popover/index.d.ts → types/cmat-components-popover.d.ts} +0 -0
- /package/{components/progress-bar/index.d.ts → types/cmat-components-progress-bar.d.ts} +0 -0
- /package/{components/qrcode/index.d.ts → types/cmat-components-qrcode.d.ts} +0 -0
- /package/{components/rating/index.d.ts → types/cmat-components-rating.d.ts} +0 -0
- /package/{components/select-search/index.d.ts → types/cmat-components-select-search.d.ts} +0 -0
- /package/{components/select-table/index.d.ts → types/cmat-components-select-table.d.ts} +0 -0
- /package/{components/select-tree/index.d.ts → types/cmat-components-select-tree.d.ts} +0 -0
- /package/{components/speed-dial/index.d.ts → types/cmat-components-speed-dial.d.ts} +0 -0
- /package/{components/timeline/index.d.ts → types/cmat-components-timeline.d.ts} +0 -0
- /package/{components/toast/index.d.ts → types/cmat-components-toast.d.ts} +0 -0
- /package/{components/transfer-picker/index.d.ts → types/cmat-components-transfer-picker.d.ts} +0 -0
- /package/{components/treetable/index.d.ts → types/cmat-components-treetable.d.ts} +0 -0
- /package/{directives/animate-on-scroll/index.d.ts → types/cmat-directives-animate-on-scroll.d.ts} +0 -0
- /package/{directives/arrow-cursor/index.d.ts → types/cmat-directives-arrow-cursor.d.ts} +0 -0
- /package/{directives/autofocus/index.d.ts → types/cmat-directives-autofocus.d.ts} +0 -0
- /package/{directives/data-exporter/index.d.ts → types/cmat-directives-data-exporter.d.ts} +0 -0
- /package/{directives/debounce/index.d.ts → types/cmat-directives-debounce.d.ts} +0 -0
- /package/{directives/digit-only/index.d.ts → types/cmat-directives-digit-only.d.ts} +0 -0
- /package/{directives/equal-validator/index.d.ts → types/cmat-directives-equal-validator.d.ts} +0 -0
- /package/{lib/mock-api/index.d.ts → types/cmat-lib-mock-api.d.ts} +0 -0
- /package/{pipes/bytes/index.d.ts → types/cmat-pipes-bytes.d.ts} +0 -0
- /package/{pipes/date-format/index.d.ts → types/cmat-pipes-date-format.d.ts} +0 -0
- /package/{pipes/find-by-key/index.d.ts → types/cmat-pipes-find-by-key.d.ts} +0 -0
- /package/{pipes/group-by/index.d.ts → types/cmat-pipes-group-by.d.ts} +0 -0
- /package/{pipes/keys/index.d.ts → types/cmat-pipes-keys.d.ts} +0 -0
- /package/{pipes/secure/index.d.ts → types/cmat-pipes-secure.d.ts} +0 -0
- /package/{pipes/uppercase/index.d.ts → types/cmat-pipes-uppercase.d.ts} +0 -0
- /package/{services/config/index.d.ts → types/cmat-services-config.d.ts} +0 -0
- /package/{services/confirmation/index.d.ts → types/cmat-services-confirmation.d.ts} +0 -0
- /package/{services/data/index.d.ts → types/cmat-services-data.d.ts} +0 -0
- /package/{services/export-as/index.d.ts → types/cmat-services-export-as.d.ts} +0 -0
- /package/{services/loading/index.d.ts → types/cmat-services-loading.d.ts} +0 -0
- /package/{services/local-storage/index.d.ts → types/cmat-services-local-storage.d.ts} +0 -0
- /package/{services/media-watcher/index.d.ts → types/cmat-services-media-watcher.d.ts} +0 -0
- /package/{services/platform/index.d.ts → types/cmat-services-platform.d.ts} +0 -0
- /package/{services/splash-screen/index.d.ts → types/cmat-services-splash-screen.d.ts} +0 -0
- /package/{services/title/index.d.ts → types/cmat-services-title.d.ts} +0 -0
- /package/{services/translation/index.d.ts → types/cmat-services-translation.d.ts} +0 -0
- /package/{services/utils/index.d.ts → types/cmat-services-utils.d.ts} +0 -0
- /package/{validators/index.d.ts → types/cmat-validators.d.ts} +0 -0
- /package/{version/index.d.ts → types/cmat-version.d.ts} +0 -0
- /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
|
-
|
|
12
|
+
return [
|
|
14
13
|
{
|
|
15
14
|
tagName: primer,
|
|
16
15
|
selector: 'body',
|
|
17
16
|
},
|
|
18
17
|
content,
|
|
19
|
-
]
|
|
18
|
+
];
|
|
20
19
|
}
|
|
21
|
-
|
|
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: "
|
|
31
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
140
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
144
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
12
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
110
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
134
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
168
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
215
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
232
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
267
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
300
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
26
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
45
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
66
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
262
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
369
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
35
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
136
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
214
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
17
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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'
|