cmat 0.0.15 → 0.0.16
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/README.md +2 -2
- package/components/custom-formly/public-api.d.ts +1 -0
- package/components/custom-formly/types/button/button.component.d.ts +19 -3
- package/components/custom-formly/types/cascade/cascade.component.d.ts +3 -2
- package/components/custom-formly/types/checklist/checklist.component.d.ts +3 -2
- package/components/custom-formly/types/chips/chips.component.d.ts +3 -2
- package/components/custom-formly/types/date-range/date-range.component.d.ts +3 -2
- package/components/custom-formly/types/datepicker/datepicker.component.d.ts +3 -2
- package/components/custom-formly/types/multicheckbox/multicheckbox.component.d.ts +3 -2
- package/components/custom-formly/types/number/number.component.d.ts +3 -2
- package/components/custom-formly/types/quill/quill.component.d.ts +3 -2
- package/components/custom-formly/types/radio/radio.component.d.ts +3 -2
- package/components/custom-formly/types/rating/rating.component.d.ts +3 -2
- package/components/custom-formly/types/repeat/repeat.component.d.ts +3 -2
- package/components/custom-formly/types/select/select.component.d.ts +3 -2
- package/components/custom-formly/types/select-tree/select-tree.component.d.ts +2 -2
- package/components/custom-formly/types/stepper/stepper.type.d.ts +2 -2
- package/components/custom-formly/types/table/table.component.d.ts +11 -5
- package/components/custom-formly/types/tags/tags.component.d.ts +3 -2
- package/components/custom-formly/types/upload/upload.component.d.ts +3 -2
- package/components/custom-formly/wrappers/form-field/form-field.component.d.ts +25 -0
- package/components/material-datetimepicker/datetimepicker.d.ts +4 -3
- package/components/upload/upload-queue/upload-queue.component.d.ts +3 -2
- package/esm2022/animations/dropdown.mjs +1 -1
- package/esm2022/components/adapter/dayjs-date-adapter.mjs +3 -3
- package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +3 -3
- package/esm2022/components/adapter/native-datetime-adapter.mjs +3 -3
- package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +3 -3
- package/esm2022/components/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/components/breadcrumb/breadcrumb.service.mjs +5 -5
- package/esm2022/components/card/card.component.mjs +5 -5
- package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +5 -5
- package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +6 -6
- package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +5 -5
- package/esm2022/components/cascade/options.interface.mjs +1 -1
- package/esm2022/components/chip-input/chip-input.component.mjs +6 -7
- package/esm2022/components/custom-formly/extension/addons.extension.mjs +2 -2
- package/esm2022/components/custom-formly/public-api.mjs +2 -1
- package/esm2022/components/custom-formly/types/button/button.component.mjs +57 -15
- package/esm2022/components/custom-formly/types/cascade/cascade.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/chips/chips.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/color-picker/color-picker.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/date-range/date-range.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/datepicker/datepicker.component.mjs +5 -5
- package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/number/number.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/quill/quill.component.mjs +6 -6
- package/esm2022/components/custom-formly/types/radio/radio.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/rating/rating.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/select/select.component.mjs +16 -15
- package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/stepper/stepper.type.mjs +1 -1
- package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/table/table.component.mjs +28 -14
- package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/tags/tags.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/upload/upload.component.mjs +4 -4
- package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +3 -3
- package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +3 -3
- package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +3 -3
- package/esm2022/components/custom-formly/wrappers/form-field/form-field.component.mjs +47 -0
- package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +3 -3
- package/esm2022/components/date-range/date-range.component.mjs +6 -6
- package/esm2022/components/drawer/drawer.component.mjs +3 -3
- package/esm2022/components/drawer/drawer.service.mjs +3 -3
- package/esm2022/components/fullscreen/fullscreen.component.mjs +3 -3
- package/esm2022/components/highlight/highlight.component.mjs +3 -3
- package/esm2022/components/highlight/highlight.service.mjs +3 -3
- package/esm2022/components/json-editor/json-editor.component.mjs +6 -6
- package/esm2022/components/masonry/masonry.component.mjs +3 -3
- package/esm2022/components/material-color-picker/material-color-picker.component.mjs +5 -5
- package/esm2022/components/material-datetimepicker/calendar-body.mjs +5 -5
- package/esm2022/components/material-datetimepicker/calendar.mjs +5 -5
- package/esm2022/components/material-datetimepicker/clock.mjs +5 -5
- package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +3 -3
- package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +3 -3
- package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +8 -8
- package/esm2022/components/material-datetimepicker/datetimepicker.mjs +14 -11
- package/esm2022/components/material-datetimepicker/month-view.mjs +5 -5
- package/esm2022/components/material-datetimepicker/multi-year-view.mjs +3 -3
- package/esm2022/components/material-datetimepicker/time.mjs +8 -8
- package/esm2022/components/material-datetimepicker/year-view.mjs +3 -3
- package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +5 -5
- package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +3 -3
- package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +3 -3
- package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +3 -3
- package/esm2022/components/navigation/horizontal/horizontal.component.mjs +4 -4
- package/esm2022/components/navigation/navigation.service.mjs +3 -3
- package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +3 -3
- package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +5 -5
- package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +5 -5
- package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +3 -3
- package/esm2022/components/navigation/vertical/components/group/group.component.mjs +3 -3
- package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +3 -3
- package/esm2022/components/navigation/vertical/vertical.component.mjs +4 -4
- package/esm2022/components/pagination/pagination.component.mjs +5 -5
- package/esm2022/components/pagination/pagination.directive.mjs +3 -3
- package/esm2022/components/pagination/pagination.pipe.mjs +3 -3
- package/esm2022/components/pagination/pagination.service.mjs +3 -3
- package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +5 -5
- package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +3 -3
- package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +5 -5
- package/esm2022/components/popover/popover-trigger.mjs +3 -3
- package/esm2022/components/popover/popover.component.mjs +3 -3
- package/esm2022/components/popover/popover.target.mjs +3 -3
- package/esm2022/components/progress-bar/progress-bar.component.mjs +5 -5
- package/esm2022/components/rating/rating.component.mjs +5 -5
- package/esm2022/components/select-search/select-no-entries-found.directive.mjs +3 -3
- package/esm2022/components/select-search/select-search-clear.directive.mjs +4 -4
- package/esm2022/components/select-search/select-search.component.mjs +6 -6
- package/esm2022/components/select-tree/select-tree.component.mjs +6 -6
- package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +11 -11
- package/esm2022/components/timeline/timeline.component.mjs +4 -4
- package/esm2022/components/toast/toast-modal.component.mjs +5 -5
- package/esm2022/components/toast/toast.component.mjs +3 -3
- package/esm2022/components/toast/toast.service.mjs +3 -3
- package/esm2022/components/transfer-picker/filter/filter.component.mjs +5 -5
- package/esm2022/components/transfer-picker/search/search.component.mjs +5 -5
- package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +5 -5
- package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +5 -5
- package/esm2022/components/transfer-picker/transfer-picker.component.mjs +5 -5
- package/esm2022/components/transfer-picker/transfer-picker.service.mjs +4 -4
- package/esm2022/components/upload/files.util.service.mjs +3 -3
- package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +13 -12
- package/esm2022/components/upload/upload.component.mjs +3 -3
- package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +3 -3
- package/esm2022/directives/animate-on-scroll/scroll.service.mjs +3 -3
- package/esm2022/directives/autofocus/autofocus.directive.mjs +3 -3
- package/esm2022/directives/debounce/abstract-debounce.directive.mjs +3 -3
- package/esm2022/directives/debounce/debounce-click.directive.mjs +3 -3
- package/esm2022/directives/debounce/debounce-keyup.directive.mjs +3 -3
- package/esm2022/directives/digit-only/digit-only.directive.mjs +10 -10
- package/esm2022/directives/digit-only/mask.directive.mjs +5 -5
- package/esm2022/directives/equal-validator/equal-validator.directive.mjs +3 -3
- package/esm2022/lib/mock-api/mock-api.interceptor.mjs +3 -3
- package/esm2022/lib/mock-api/mock-api.service.mjs +3 -3
- package/esm2022/pipes/bytes/bytes.pipe.mjs +3 -3
- package/esm2022/pipes/date-format/date-format.pipe.mjs +7 -5
- package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +3 -3
- package/esm2022/pipes/group-by/group-by.pipe.mjs +3 -3
- package/esm2022/pipes/keys/keys.pipe.mjs +3 -3
- package/esm2022/pipes/secure/secure-pipe.mjs +3 -3
- package/esm2022/pipes/uppercase/uppercase.pipe.mjs +3 -3
- package/esm2022/services/alert/alert.service.mjs +3 -3
- package/esm2022/services/config/config.service.mjs +3 -3
- package/esm2022/services/config/urlStateConfig.service.mjs +3 -3
- package/esm2022/services/confirmation/confirmation.service.mjs +3 -3
- package/esm2022/services/confirmation/dialog/dialog.component.mjs +5 -5
- package/esm2022/services/data/data.service.mjs +3 -3
- package/esm2022/services/loading/loading.interceptor.mjs +5 -5
- package/esm2022/services/loading/loading.service.mjs +3 -3
- package/esm2022/services/local-storage/local-storage.service.mjs +3 -3
- package/esm2022/services/media-watcher/media-watcher.service.mjs +3 -3
- package/esm2022/services/platform/platform.service.mjs +3 -3
- package/esm2022/services/splash-screen/splash-screen.service.mjs +3 -3
- package/esm2022/services/title/title.service.mjs +3 -3
- package/esm2022/services/translation/translation.service.mjs +5 -5
- package/esm2022/services/utils/utils.service.mjs +8 -7
- package/fesm2022/cmat-animations.mjs.map +1 -1
- 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 +4 -4
- package/fesm2022/cmat-components-card.mjs.map +1 -1
- package/fesm2022/cmat-components-cascade.mjs +13 -13
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +5 -6
- package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
- package/fesm2022/cmat-components-custom-formly.mjs +235 -142
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
- package/fesm2022/cmat-components-date-range.mjs +5 -5
- package/fesm2022/cmat-components-date-range.mjs.map +1 -1
- 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-json-editor.mjs +5 -5
- package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-masonry.mjs +3 -3
- package/fesm2022/cmat-components-material-color-picker.mjs +4 -4
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-material-datetimepicker.mjs +55 -52
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +42 -42
- package/fesm2022/cmat-components-navigation.mjs.map +1 -1
- package/fesm2022/cmat-components-pagination.mjs +13 -13
- package/fesm2022/cmat-components-pagination.mjs.map +1 -1
- package/fesm2022/cmat-components-password-strength.mjs +11 -11
- package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
- package/fesm2022/cmat-components-popover.mjs +9 -9
- package/fesm2022/cmat-components-progress-bar.mjs +4 -4
- package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
- package/fesm2022/cmat-components-rating.mjs +4 -4
- package/fesm2022/cmat-components-rating.mjs.map +1 -1
- package/fesm2022/cmat-components-select-search.mjs +11 -11
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +5 -5
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
- package/fesm2022/cmat-components-timeline.mjs +13 -13
- package/fesm2022/cmat-components-timeline.mjs.map +1 -1
- package/fesm2022/cmat-components-toast.mjs +10 -10
- package/fesm2022/cmat-components-toast.mjs.map +1 -1
- package/fesm2022/cmat-components-transfer-picker.mjs +23 -23
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-upload.mjs +18 -17
- package/fesm2022/cmat-components-upload.mjs.map +1 -1
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
- package/fesm2022/cmat-directives-autofocus.mjs +3 -3
- package/fesm2022/cmat-directives-debounce.mjs +9 -9
- package/fesm2022/cmat-directives-digit-only.mjs +13 -13
- package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
- 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 +6 -4
- package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
- 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 +3 -3
- package/fesm2022/cmat-services-config.mjs +6 -6
- package/fesm2022/cmat-services-confirmation.mjs +7 -7
- package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
- package/fesm2022/cmat-services-data.mjs +3 -3
- package/fesm2022/cmat-services-loading.mjs +7 -7
- package/fesm2022/cmat-services-loading.mjs.map +1 -1
- 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 +4 -4
- package/fesm2022/cmat-services-translation.mjs.map +1 -1
- package/fesm2022/cmat-services-utils.mjs +7 -6
- package/fesm2022/cmat-services-utils.mjs.map +1 -1
- package/icons/material-icons/material-solid.svg +3585 -3585
- package/package.json +49 -49
- package/pipes/date-format/date-format.pipe.d.ts +1 -1
- package/styles/overrides/angular-material.scss +6 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-services-loading.mjs","sources":["../../../projects/cmat/services/loading/loading.service.ts","../../../projects/cmat/services/loading/loading.interceptor.ts","../../../projects/cmat/services/loading/cmat-services-loading.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatLoadingService {\r\n private _auto$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n private _mode$: BehaviorSubject<'determinate' | 'indeterminate'> = new BehaviorSubject<'determinate' | 'indeterminate'>('indeterminate');\r\n private _progress$: BehaviorSubject<number | null> = new BehaviorSubject<number | null>(0);\r\n private _show$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n private _urlMap: Map<string, boolean> = new Map<string, boolean>();\r\n\r\n constructor(private _httpClient: HttpClient) {\r\n }\r\n\r\n get auto$(): Observable<boolean> {\r\n return this._auto$.asObservable();\r\n }\r\n\r\n get mode$(): Observable<'determinate' | 'indeterminate'> {\r\n return this._mode$.asObservable();\r\n }\r\n\r\n get progress$(): Observable<number | null> {\r\n return this._progress$.asObservable();\r\n }\r\n\r\n get show$(): Observable<boolean> {\r\n return this._show$.asObservable();\r\n }\r\n\r\n show(): void {\r\n this._show$.next(true);\r\n }\r\n\r\n hide(): void {\r\n this._show$.next(false);\r\n }\r\n\r\n setAutoMode(value: boolean): void {\r\n this._auto$.next(value);\r\n }\r\n\r\n setMode(value: 'determinate' | 'indeterminate'): void {\r\n this._mode$.next(value);\r\n }\r\n\r\n setProgress(value: number): void {\r\n if (value < 0 || value > 100) {\r\n console.error('Progress value must be between 0 and 100!');\r\n return;\r\n }\r\n\r\n this._progress$.next(value);\r\n }\r\n\r\n setLoadingStatus(status: boolean, url: string): void {\r\n // Return if the url was not provided\r\n if (!url) {\r\n console.error('The request URL must be provided!');\r\n return;\r\n }\r\n\r\n if (status === true) {\r\n this._urlMap.set(url, status);\r\n this._show$.next(true);\r\n }\r\n else if (status === false && this._urlMap.has(url)) {\r\n this._urlMap.delete(url);\r\n }\r\n\r\n // Only set the status to 'false' if all outgoing requests are completed\r\n if (this._urlMap.size === 0) {\r\n this._show$.next(false);\r\n }\r\n }\r\n}\r\n\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { finalize, Observable } from 'rxjs';\r\nimport { CmatLoadingService } from './loading.service';\r\n\r\n@Injectable()\r\nexport class CmatLoadingInterceptor implements HttpInterceptor {\r\n handleRequestsAutomatically: boolean;\r\n\r\n constructor(\r\n private _cmatLoadingService: CmatLoadingService\r\n ) {\r\n this._cmatLoadingService.auto$\r\n .subscribe((value: boolean) => {\r\n this.handleRequestsAutomatically = value;\r\n });\r\n }\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (!this.handleRequestsAutomatically || req.url.
|
|
1
|
+
{"version":3,"file":"cmat-services-loading.mjs","sources":["../../../projects/cmat/services/loading/loading.service.ts","../../../projects/cmat/services/loading/loading.interceptor.ts","../../../projects/cmat/services/loading/cmat-services-loading.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatLoadingService {\r\n private _auto$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n private _mode$: BehaviorSubject<'determinate' | 'indeterminate'> = new BehaviorSubject<'determinate' | 'indeterminate'>('indeterminate');\r\n private _progress$: BehaviorSubject<number | null> = new BehaviorSubject<number | null>(0);\r\n private _show$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n private _urlMap: Map<string, boolean> = new Map<string, boolean>();\r\n\r\n constructor(private _httpClient: HttpClient) {\r\n }\r\n\r\n get auto$(): Observable<boolean> {\r\n return this._auto$.asObservable();\r\n }\r\n\r\n get mode$(): Observable<'determinate' | 'indeterminate'> {\r\n return this._mode$.asObservable();\r\n }\r\n\r\n get progress$(): Observable<number | null> {\r\n return this._progress$.asObservable();\r\n }\r\n\r\n get show$(): Observable<boolean> {\r\n return this._show$.asObservable();\r\n }\r\n\r\n show(): void {\r\n this._show$.next(true);\r\n }\r\n\r\n hide(): void {\r\n this._show$.next(false);\r\n }\r\n\r\n setAutoMode(value: boolean): void {\r\n this._auto$.next(value);\r\n }\r\n\r\n setMode(value: 'determinate' | 'indeterminate'): void {\r\n this._mode$.next(value);\r\n }\r\n\r\n setProgress(value: number): void {\r\n if (value < 0 || value > 100) {\r\n console.error('Progress value must be between 0 and 100!');\r\n return;\r\n }\r\n\r\n this._progress$.next(value);\r\n }\r\n\r\n setLoadingStatus(status: boolean, url: string): void {\r\n // Return if the url was not provided\r\n if (!url) {\r\n console.error('The request URL must be provided!');\r\n return;\r\n }\r\n\r\n if (status === true) {\r\n this._urlMap.set(url, status);\r\n this._show$.next(true);\r\n }\r\n else if (status === false && this._urlMap.has(url)) {\r\n this._urlMap.delete(url);\r\n }\r\n\r\n // Only set the status to 'false' if all outgoing requests are completed\r\n if (this._urlMap.size === 0) {\r\n this._show$.next(false);\r\n }\r\n }\r\n}\r\n\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { finalize, Observable } from 'rxjs';\r\nimport { CmatLoadingService } from './loading.service';\r\n\r\n@Injectable()\r\nexport class CmatLoadingInterceptor implements HttpInterceptor {\r\n handleRequestsAutomatically: boolean;\r\n\r\n constructor(\r\n private _cmatLoadingService: CmatLoadingService\r\n ) {\r\n this._cmatLoadingService.auto$\r\n .subscribe((value: boolean) => {\r\n this.handleRequestsAutomatically = value;\r\n });\r\n }\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (!this.handleRequestsAutomatically || req.url.includes('file/download/')) {\r\n return next.handle(req);\r\n }\r\n\r\n this._cmatLoadingService.setLoadingStatus(true, req.url);\r\n\r\n return next.handle(req).pipe(\r\n finalize(() => {\r\n // Set the status to false if there are any errors or the request is completed\r\n this._cmatLoadingService.setLoadingStatus(false, req.url);\r\n }));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CmatLoadingService"],"mappings":"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"}
|
|
@@ -11,10 +11,10 @@ class CmatLocalStorageService {
|
|
|
11
11
|
removeItem(key) {
|
|
12
12
|
localStorage.removeItem(key);
|
|
13
13
|
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
15
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatLocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
15
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatLocalStorageService, providedIn: 'root' }); }
|
|
16
16
|
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatLocalStorageService, decorators: [{
|
|
18
18
|
type: Injectable,
|
|
19
19
|
args: [{
|
|
20
20
|
providedIn: 'root'
|
|
@@ -44,10 +44,10 @@ class CmatMediaWatcherService {
|
|
|
44
44
|
onMediaQueryChange$(query) {
|
|
45
45
|
return this._breakpointObserver.observe(query);
|
|
46
46
|
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
48
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatMediaWatcherService, deps: [{ token: i1.BreakpointObserver }, { token: i2.CmatConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
48
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatMediaWatcherService, providedIn: 'root' }); }
|
|
49
49
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatMediaWatcherService, decorators: [{
|
|
51
51
|
type: Injectable,
|
|
52
52
|
args: [{
|
|
53
53
|
providedIn: 'root'
|
|
@@ -35,10 +35,10 @@ class CmatPlatformService {
|
|
|
35
35
|
this.osName = 'os-android';
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
39
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatPlatformService, deps: [{ token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
39
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatPlatformService, providedIn: 'root' }); }
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatPlatformService, decorators: [{
|
|
42
42
|
type: Injectable,
|
|
43
43
|
args: [{
|
|
44
44
|
providedIn: 'root'
|
|
@@ -28,10 +28,10 @@ class CmatSplashScreenService {
|
|
|
28
28
|
hide() {
|
|
29
29
|
this._document.body.classList.add('cmat-splash-screen-hidden');
|
|
30
30
|
}
|
|
31
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
32
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatSplashScreenService, deps: [{ token: DOCUMENT }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
32
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatSplashScreenService, providedIn: 'root' }); }
|
|
33
33
|
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatSplashScreenService, decorators: [{
|
|
35
35
|
type: Injectable,
|
|
36
36
|
args: [{
|
|
37
37
|
providedIn: 'root'
|
|
@@ -35,10 +35,10 @@ class CmatTitleService {
|
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
39
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTitleService, deps: [{ token: i1.Title }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
39
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTitleService, providedIn: 'root' }); }
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTitleService, decorators: [{
|
|
42
42
|
type: Injectable,
|
|
43
43
|
args: [{
|
|
44
44
|
providedIn: 'root'
|
|
@@ -27,7 +27,7 @@ class CmatTranslationService {
|
|
|
27
27
|
}
|
|
28
28
|
useBrowserLanguage() {
|
|
29
29
|
const browserLang = this.getBrowserLanguage();
|
|
30
|
-
if (browserLang &&
|
|
30
|
+
if (browserLang && (/en|zh/.exec(browserLang))) {
|
|
31
31
|
this.changeLanguage(browserLang);
|
|
32
32
|
return browserLang;
|
|
33
33
|
}
|
|
@@ -51,10 +51,10 @@ class CmatTranslationService {
|
|
|
51
51
|
getTranslationAsync(key, interpolateParams) {
|
|
52
52
|
return this._translate.get(key, interpolateParams);
|
|
53
53
|
}
|
|
54
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
55
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTranslationService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
55
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTranslationService, providedIn: 'root' }); }
|
|
56
56
|
}
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTranslationService, decorators: [{
|
|
58
58
|
type: Injectable,
|
|
59
59
|
args: [{
|
|
60
60
|
providedIn: 'root'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-services-translation.mjs","sources":["../../../projects/cmat/services/translation/translation.service.ts","../../../projects/cmat/services/translation/cmat-services-translation.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatTranslationService {\r\n\r\n private readonly _defaultLanguage = 'zh';\r\n\r\n private _onLanguageChanged = new Subject<string>();\r\n\r\n constructor(private _translate: TranslateService) {\r\n this.setDefaultLanguage(this._defaultLanguage);\r\n }\r\n\r\n get languageChanged$(): Observable<string> {\r\n return this._onLanguageChanged.asObservable();\r\n }\r\n\r\n addLanguages(lang: string[]): void {\r\n this._translate.addLangs(lang);\r\n }\r\n\r\n\r\n setDefaultLanguage(lang: string): void {\r\n this._translate.setDefaultLang(lang);\r\n }\r\n\r\n getDefaultLanguage(): string {\r\n return this._translate.defaultLang;\r\n }\r\n\r\n getBrowserLanguage(): string | void {\r\n return this._translate.getBrowserLang();\r\n }\r\n\r\n\r\n useBrowserLanguage(): string | void {\r\n const browserLang = this.getBrowserLanguage();\r\n\r\n if (browserLang &&
|
|
1
|
+
{"version":3,"file":"cmat-services-translation.mjs","sources":["../../../projects/cmat/services/translation/translation.service.ts","../../../projects/cmat/services/translation/cmat-services-translation.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatTranslationService {\r\n\r\n private readonly _defaultLanguage = 'zh';\r\n\r\n private _onLanguageChanged = new Subject<string>();\r\n\r\n constructor(private _translate: TranslateService) {\r\n this.setDefaultLanguage(this._defaultLanguage);\r\n }\r\n\r\n get languageChanged$(): Observable<string> {\r\n return this._onLanguageChanged.asObservable();\r\n }\r\n\r\n addLanguages(lang: string[]): void {\r\n this._translate.addLangs(lang);\r\n }\r\n\r\n\r\n setDefaultLanguage(lang: string): void {\r\n this._translate.setDefaultLang(lang);\r\n }\r\n\r\n getDefaultLanguage(): string {\r\n return this._translate.defaultLang;\r\n }\r\n\r\n getBrowserLanguage(): string | void {\r\n return this._translate.getBrowserLang();\r\n }\r\n\r\n\r\n useBrowserLanguage(): string | void {\r\n const browserLang = this.getBrowserLanguage();\r\n\r\n if (browserLang && (/en|zh/.exec(browserLang))) {\r\n this.changeLanguage(browserLang);\r\n return browserLang;\r\n }\r\n return browserLang;\r\n }\r\n\r\n changeLanguage(language: string = 'zh'): string {\r\n if (!language) {\r\n language = this._translate.defaultLang;\r\n }\r\n\r\n if (language !== this._translate.currentLang) {\r\n setTimeout(() => {\r\n this._translate.use(language);\r\n this._onLanguageChanged.next(language);\r\n });\r\n }\r\n return language;\r\n }\r\n\r\n\r\n getTranslation(key: string | string[], interpolateParams?: object): any {\r\n return this._translate.instant(key, interpolateParams);\r\n }\r\n\r\n\r\n getTranslationAsync(key: string | string[], interpolateParams?: object): Observable<any> {\r\n return this._translate.get(key, interpolateParams);\r\n }\r\n}\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAOa,sBAAsB,CAAA;AAM/B,IAAA,WAAA,CAAoB,UAA4B,EAAA;QAA5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAkB;QAJ/B,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;AAEjC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAU,CAAC;AAG/C,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAClD;AAED,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACjD;AAED,IAAA,YAAY,CAAC,IAAc,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAClC;AAGD,IAAA,kBAAkB,CAAC,IAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;KACxC;IAED,kBAAkB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;KACtC;IAED,kBAAkB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;KAC3C;IAGD,kBAAkB,GAAA;AACd,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE9C,IAAI,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AACjC,YAAA,OAAO,WAAW,CAAC;SACtB;AACD,QAAA,OAAO,WAAW,CAAC;KACtB;IAED,cAAc,CAAC,WAAmB,IAAI,EAAA;QAClC,IAAI,CAAC,QAAQ,EAAE;AACX,YAAA,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;SAC1C;QAED,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC1C,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3C,aAAC,CAAC,CAAC;SACN;AACD,QAAA,OAAO,QAAQ,CAAC;KACnB;IAGD,cAAc,CAAC,GAAsB,EAAE,iBAA0B,EAAA;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;KAC1D;IAGD,mBAAmB,CAAC,GAAsB,EAAE,iBAA0B,EAAA;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;KACtD;8GAhEQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFnB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACND;;AAEG;;;;"}
|
|
@@ -133,13 +133,13 @@ class CmatUtilsService {
|
|
|
133
133
|
const httpMessages = this.getHttpResponseMessage(data);
|
|
134
134
|
for (const message of httpMessages) {
|
|
135
135
|
const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);
|
|
136
|
-
if (fullMessage.firstPart
|
|
136
|
+
if (fullMessage.firstPart?.toLowerCase().includes(searchString)) {
|
|
137
137
|
return includeCaptionInResult ? message : fullMessage.secondPart ?? fullMessage.firstPart;
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
140
|
if (!seachInCaptionOnly) {
|
|
141
141
|
for (const message of httpMessages) {
|
|
142
|
-
if (message.toLowerCase().
|
|
142
|
+
if (message.toLowerCase().includes(searchString)) {
|
|
143
143
|
if (includeCaptionInResult) {
|
|
144
144
|
return message;
|
|
145
145
|
}
|
|
@@ -351,6 +351,7 @@ class CmatUtilsService {
|
|
|
351
351
|
};
|
|
352
352
|
// Reject the promise on error
|
|
353
353
|
reader.onerror = (e) => {
|
|
354
|
+
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
|
|
354
355
|
reject(e);
|
|
355
356
|
};
|
|
356
357
|
// Read the file as the
|
|
@@ -359,7 +360,7 @@ class CmatUtilsService {
|
|
|
359
360
|
}
|
|
360
361
|
static dataURIToBlob(dataURI) {
|
|
361
362
|
const splitDataURI = dataURI.split(',');
|
|
362
|
-
const byteString = splitDataURI[0].
|
|
363
|
+
const byteString = splitDataURI[0].includes('base64') ? atob(splitDataURI[1]) : decodeURI(splitDataURI[1]);
|
|
363
364
|
const mimeString = splitDataURI[0].split(':')[1].split(';')[0];
|
|
364
365
|
const ia = new Uint8Array(byteString.length);
|
|
365
366
|
for (let i = 0; i < byteString.length; i++) {
|
|
@@ -423,10 +424,10 @@ class CmatUtilsService {
|
|
|
423
424
|
}
|
|
424
425
|
return id;
|
|
425
426
|
}
|
|
426
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
427
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
427
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatUtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
428
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatUtilsService, providedIn: 'root' }); }
|
|
428
429
|
}
|
|
429
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
430
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatUtilsService, decorators: [{
|
|
430
431
|
type: Injectable,
|
|
431
432
|
args: [{
|
|
432
433
|
providedIn: 'root'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-services-utils.mjs","sources":["../../../projects/cmat/services/utils/utils.service.ts","../../../projects/cmat/services/utils/cmat-services-utils.ts"],"sourcesContent":["import { HttpErrorResponse, HttpHeaders, HttpResponse, HttpResponseBase } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { IsActiveMatchOptions } from '@angular/router';\r\nimport AES from 'crypto-js/aes';\r\nimport CryptoJSCore from 'crypto-js/core';\r\nimport Base64 from 'crypto-js/enc-base64';\r\nimport Hex from 'crypto-js/enc-hex';\r\nimport UTF8 from 'crypto-js/enc-utf8';\r\nimport Pkcs7 from 'crypto-js/pad-pkcs7';\r\nimport { isUndefined } from 'lodash-es';\r\nimport { throwError, Observable } from 'rxjs';\r\nimport { CMAT_VERSION } from 'cmat/version';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatUtilsService {\r\n public static readonly captionAndMessageSeparator = ':';\r\n public static readonly noNetworkMessageCaption = '无网络';\r\n public static readonly noNetworkMessageDetail = '无法连接服务器';\r\n public static readonly accessDeniedMessageCaption = '拒绝访问!';\r\n public static readonly accessDeniedMessageDetail = '';\r\n private static readonly key = UTF8.parse('14789632236987411478963223698741');//32位\r\n private static readonly iv = UTF8.parse('1478963223698741');//16位\r\n\r\n get exactMatchOptions(): IsActiveMatchOptions {\r\n return {\r\n paths: 'exact',\r\n fragment: 'ignored',\r\n matrixParams: 'ignored',\r\n queryParams: 'exact'\r\n };\r\n }\r\n\r\n get subsetMatchOptions(): IsActiveMatchOptions {\r\n return {\r\n paths: 'subset',\r\n fragment: 'ignored',\r\n matrixParams: 'ignored',\r\n queryParams: 'subset'\r\n };\r\n }\r\n\r\n public static getRequestHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestBypassHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('bypass', 'true')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestCryptoHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getRequestCryptoBypassHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('bypass', 'true')\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getEncryptData(data: string): string {\r\n const src = UTF8.parse(data);\r\n\r\n return AES.encrypt(src, this.key, {\r\n iv: this.iv,\r\n mode: CryptoJSCore.mode.CBC,\r\n padding: Pkcs7\r\n }).ciphertext.toString();\r\n }\r\n\r\n public static getDecryptData(data: string): string {\r\n const encryptedHexStr = Hex.parse(data);\r\n return AES.decrypt(Base64.stringify(encryptedHexStr), this.key, {\r\n iv: this.iv,\r\n mode: CryptoJSCore.mode.CBC,\r\n padding: Pkcs7\r\n }).toString(UTF8).toString();\r\n }\r\n\r\n public static handleError(error: any): Observable<never> {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('Client side network error occurred:', error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error('Backend - ' +\r\n `status: ${error.status}, ` +\r\n `statusText: ${error.statusText}, ` +\r\n `message: ${error.message}`);\r\n }\r\n\r\n // return an observable with a user-facing error message\r\n return throwError(() => error || 'server error');\r\n }\r\n\r\n public static getHttpResponseMessage(data: any): string[] {\r\n\r\n const responses: string[] = [];\r\n\r\n if (data instanceof HttpResponseBase) {\r\n if (this.checkNoNetwork(data)) {\r\n responses.push(`${this.noNetworkMessageCaption}${this.captionAndMessageSeparator} ${this.noNetworkMessageDetail}`);\r\n } else {\r\n const responseObject = this.getResponseBody(data);\r\n\r\n if (responseObject && (typeof responseObject === 'object' || responseObject instanceof Object)) {\r\n\r\n for (const key in responseObject) {\r\n if (Object.prototype.hasOwnProperty.call(responseObject, key)) {\r\n if (key) {\r\n responses.push(`${key}${this.captionAndMessageSeparator} ${responseObject[key]}`);\r\n } else if (responseObject[key]) {\r\n responses.push(responseObject[key].toString());\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!responses.length && this.getResponseBody(data)) {\r\n responses.push(`${this.getResponseBody(data).toString()}`);\r\n }\r\n }\r\n\r\n if (!responses.length) {\r\n responses.push(data.toString());\r\n }\r\n\r\n if (this.checkAccessDenied(data)) {\r\n responses.splice(0, 0, `${this.accessDeniedMessageCaption}${this.captionAndMessageSeparator} ${this.accessDeniedMessageDetail}`);\r\n }\r\n\r\n return responses;\r\n }\r\n\r\n\r\n public static findHttpResponseMessage(messageToFind: string, data: any, seachInCaptionOnly = true, includeCaptionInResult = false): string | null {\r\n const searchString = messageToFind.toLowerCase();\r\n const httpMessages = this.getHttpResponseMessage(data);\r\n\r\n for (const message of httpMessages) {\r\n const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);\r\n\r\n if (fullMessage.firstPart && fullMessage.firstPart.toLowerCase().indexOf(searchString) !== -1) {\r\n return includeCaptionInResult ? message : fullMessage.secondPart ?? fullMessage.firstPart;\r\n }\r\n }\r\n\r\n if (!seachInCaptionOnly) {\r\n for (const message of httpMessages) {\r\n\r\n if (message.toLowerCase().indexOf(searchString) !== -1) {\r\n if (includeCaptionInResult) {\r\n return message;\r\n } else {\r\n const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);\r\n return fullMessage.secondPart ?? fullMessage.firstPart;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public static getResponseBody(response: HttpResponseBase): any {\r\n if (response instanceof HttpResponse) {\r\n return response.body;\r\n }\r\n\r\n if (response instanceof HttpErrorResponse) {\r\n return response.error || response.message || response.statusText;\r\n }\r\n return response;\r\n }\r\n\r\n\r\n public static checkNoNetwork(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkAccessDenied(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 403;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkNotFound(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 404;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkIsLocalHost(url: string, base?: string): boolean {\r\n if (url) {\r\n const location = new URL(url, base);\r\n return location.hostname === 'localhost' || location.hostname === '127.0.0.1';\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static getQueryParamsFromString(paramString: string): Record<string, string | null> | null {\r\n if (!paramString) {\r\n return null;\r\n }\r\n\r\n const params: Record<string, string | null> = {};\r\n\r\n for (const param of paramString.split('&')) {\r\n const keyValue = CmatUtilsService.splitInTwo(param, '=');\r\n params[keyValue.firstPart] = keyValue.secondPart;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n public static splitInTwo(text: string, separator?: string): { firstPart: string; secondPart: string | null } {\r\n const separatorIndex = separator ? text.indexOf(separator) : -1;\r\n\r\n if (separatorIndex === -1) {\r\n return { firstPart: text, secondPart: null };\r\n }\r\n\r\n const part1 = text.substring(0, separatorIndex).trim();\r\n const part2 = text.substring(separatorIndex + 1).trim();\r\n\r\n return { firstPart: part1, secondPart: part2 };\r\n }\r\n\r\n public static safeStringify(object: any): string {\r\n let result: string;\r\n\r\n try {\r\n result = JSON.stringify(object);\r\n return result;\r\n } catch { /* empty */ }\r\n\r\n const simpleObject: any = {};\r\n\r\n for (const prop in object) {\r\n if (!Object.prototype.hasOwnProperty.call(object, prop)) {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'object') {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'function') {\r\n continue;\r\n }\r\n simpleObject[prop] = object[prop];\r\n }\r\n\r\n result = '[***Sanitized Object***]: ' + JSON.stringify(simpleObject);\r\n\r\n return result;\r\n }\r\n\r\n public static jsonTryParse(value: string): string | void {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n if (isUndefined(value)) {\r\n return void 0;\r\n }\r\n\r\n return value;\r\n }\r\n }\r\n\r\n public static capitalizeFirstLetter(text: string): string {\r\n if (text) {\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n } else {\r\n return text;\r\n }\r\n }\r\n\r\n\r\n public static toTitleCase(text: string): string {\r\n return text.replace(/\\w\\S*/g, subString => subString.charAt(0).toUpperCase() + subString.substring(1).toLowerCase());\r\n }\r\n\r\n public static toLowerCase(items: any): string | string[] | void {\r\n if (items instanceof Array) {\r\n const loweredRoles: string[] = [];\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n loweredRoles[i] = items[i].toLowerCase();\r\n }\r\n\r\n return loweredRoles;\r\n } else if (typeof items === 'string' || items instanceof String) {\r\n return items.toLowerCase();\r\n }\r\n\r\n return void 0;\r\n }\r\n\r\n public static uniqueId(): string {\r\n return this.randomNumber(1000000, 9000000).toString();\r\n }\r\n\r\n public static randomNumber(min: number, max: number): number {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n public static baseUrl(): string {\r\n let base: string;\r\n\r\n if (window.location.origin) {\r\n base = window.location.origin;\r\n } else {\r\n base = window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n }\r\n\r\n return base.replace(/\\/$/, '');\r\n }\r\n\r\n public static newGuid(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n \r\n const r = (Math.random() * 16) | 0;\r\n \r\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n public static testIsAbsoluteUrl(url: string): boolean {\r\n const r = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n return r.test(url);\r\n }\r\n\r\n public static convertToAbsoluteUrl(url: string): string {\r\n return CmatUtilsService.testIsAbsoluteUrl(url) ? url : '//' + url;\r\n }\r\n\r\n public static urlBase64Decode(str: string): string {\r\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\r\n switch (output.length % 4) {\r\n case 0: {\r\n break;\r\n }\r\n case 2: {\r\n output += '==';\r\n break;\r\n }\r\n case 3: {\r\n output += '=';\r\n break;\r\n }\r\n }\r\n return this._base64DecodeUnicode(output);\r\n }\r\n\r\n public static decodeToken(token: string): any {\r\n const parts = token.split('.');\r\n\r\n if (parts.length !== 3) {\r\n throw new Error('JWT must have 3 parts');\r\n }\r\n\r\n const decoded = this.urlBase64Decode(parts[1]);\r\n if (!decoded) {\r\n throw new Error('Cannot decode the token');\r\n }\r\n\r\n return JSON.parse(decoded);\r\n }\r\n\r\n public static getTokenExpirationDate(token: string): Date | null {\r\n const decoded = this.decodeToken(token);\r\n\r\n if (!Object.prototype.hasOwnProperty.call(decoded, 'exp')) {\r\n return null;\r\n }\r\n\r\n const date = new Date(0); // The 0 here is the key, which sets the date to the epoch\r\n date.setUTCSeconds(decoded.exp);\r\n\r\n return date;\r\n }\r\n\r\n public static isTokenExpired(token: string, offsetSeconds?: number): boolean {\r\n const date = this.getTokenExpirationDate(token);\r\n offsetSeconds = offsetSeconds ?? 0;\r\n\r\n if (date == null) {\r\n return false;\r\n }\r\n\r\n // Token expired?\r\n return !(date.valueOf() > (new Date().valueOf() + (offsetSeconds * 1000)));\r\n }\r\n\r\n public static readAsDataURL(file: File): Promise<any> {\r\n // Return a new promise\r\n return new Promise((resolve, reject) => {\r\n\r\n // Create a new reader\r\n const reader = new FileReader();\r\n\r\n // Resolve the promise on success\r\n reader.onload = (): void => {\r\n resolve(reader.result);\r\n };\r\n\r\n // Reject the promise on error\r\n reader.onerror = (e): void => {\r\n reject(e);\r\n };\r\n\r\n // Read the file as the\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n\r\n public static dataURIToBlob(dataURI: string): Blob {\r\n const splitDataURI = dataURI.split(',');\r\n\r\n const byteString = splitDataURI[0].indexOf('base64') >= 0 ? atob(splitDataURI[1]) : decodeURI(splitDataURI[1]);\r\n const mimeString = splitDataURI[0].split(':')[1].split(';')[0];\r\n\r\n const ia = new Uint8Array(byteString.length);\r\n for (let i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n return new Blob([ia], { type: mimeString });\r\n }\r\n\r\n public static getFileType(accept: string): 'csv' | 'gif' | 'word' | 'excel' | 'jpg' | 'outlook' | 'pdf' | 'png' | 'ppt' | 'file' | 'text' | 'video' | 'zip' {\r\n let fileType = 'file';\r\n switch (accept) {\r\n case 'image/jpeg':\r\n case 'image/jpg':\r\n fileType = 'jpg';\r\n break;\r\n case 'image/png':\r\n fileType = 'png';\r\n break;\r\n case 'text/csv':\r\n fileType = 'csv';\r\n break;\r\n case 'image/gif':\r\n fileType = 'gif';\r\n break;\r\n case 'application/msword':\r\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\r\n fileType = 'word';\r\n break;\r\n case 'application/vnd.ms-excel':\r\n case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\r\n fileType = 'word';\r\n break;\r\n case 'application/pdf':\r\n fileType = 'pdf';\r\n break;\r\n case 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\r\n case 'application/vnd.ms-powerpoint':\r\n fileType = 'ppt';\r\n break;\r\n case 'text/plain':\r\n fileType = 'text';\r\n break;\r\n case 'video/mpeg':\r\n case 'video/mp4':\r\n case 'audio/mp4':\r\n fileType = 'video';\r\n break;\r\n case 'aplication/zip':\r\n fileType = 'zip';\r\n break;\r\n }\r\n\r\n return fileType as 'csv' | 'gif' | 'word' | 'excel' | 'jpg' | 'outlook' | 'pdf' | 'png' | 'ppt' | 'file' | 'text' | 'video' | 'zip';\r\n }\r\n\r\n private static _base64DecodeUnicode(str: any): string {\r\n return decodeURIComponent(Array.prototype.map.call(atob(str), (c: any) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));\r\n }\r\n\r\n randomId(stringLength: number = 10): string {\r\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n let id = '';\r\n\r\n for (let i = 0; i < stringLength; i++) {\r\n id += chars.charAt(Math.floor(Math.random() * chars.length));\r\n }\r\n\r\n return id;\r\n }\r\n}\r\n\r\n\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-services-utils.mjs","sources":["../../../projects/cmat/services/utils/utils.service.ts","../../../projects/cmat/services/utils/cmat-services-utils.ts"],"sourcesContent":["import { HttpErrorResponse, HttpHeaders, HttpResponse, HttpResponseBase } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { IsActiveMatchOptions } from '@angular/router';\r\nimport AES from 'crypto-js/aes';\r\nimport CryptoJSCore from 'crypto-js/core';\r\nimport Base64 from 'crypto-js/enc-base64';\r\nimport Hex from 'crypto-js/enc-hex';\r\nimport UTF8 from 'crypto-js/enc-utf8';\r\nimport Pkcs7 from 'crypto-js/pad-pkcs7';\r\nimport { isUndefined } from 'lodash-es';\r\nimport { throwError, Observable } from 'rxjs';\r\nimport { CMAT_VERSION } from 'cmat/version';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatUtilsService {\r\n public static readonly captionAndMessageSeparator = ':';\r\n public static readonly noNetworkMessageCaption = '无网络';\r\n public static readonly noNetworkMessageDetail = '无法连接服务器';\r\n public static readonly accessDeniedMessageCaption = '拒绝访问!';\r\n public static readonly accessDeniedMessageDetail = '';\r\n private static readonly key = UTF8.parse('14789632236987411478963223698741');//32位\r\n private static readonly iv = UTF8.parse('1478963223698741');//16位\r\n\r\n get exactMatchOptions(): IsActiveMatchOptions {\r\n return {\r\n paths: 'exact',\r\n fragment: 'ignored',\r\n matrixParams: 'ignored',\r\n queryParams: 'exact'\r\n };\r\n }\r\n\r\n get subsetMatchOptions(): IsActiveMatchOptions {\r\n return {\r\n paths: 'subset',\r\n fragment: 'ignored',\r\n matrixParams: 'ignored',\r\n queryParams: 'subset'\r\n };\r\n }\r\n\r\n public static getRequestHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestBypassHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('bypass', 'true')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestCryptoHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getRequestCryptoBypassHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('bypass', 'true')\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getEncryptData(data: string): string {\r\n const src = UTF8.parse(data);\r\n\r\n return AES.encrypt(src, this.key, {\r\n iv: this.iv,\r\n mode: CryptoJSCore.mode.CBC,\r\n padding: Pkcs7\r\n }).ciphertext.toString();\r\n }\r\n\r\n public static getDecryptData(data: string): string {\r\n const encryptedHexStr = Hex.parse(data);\r\n return AES.decrypt(Base64.stringify(encryptedHexStr), this.key, {\r\n iv: this.iv,\r\n mode: CryptoJSCore.mode.CBC,\r\n padding: Pkcs7\r\n }).toString(UTF8).toString();\r\n }\r\n\r\n public static handleError(error: any): Observable<never> {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('Client side network error occurred:', error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error('Backend - ' +\r\n `status: ${error.status}, ` +\r\n `statusText: ${error.statusText}, ` +\r\n `message: ${error.message}`);\r\n }\r\n\r\n // return an observable with a user-facing error message\r\n return throwError(() => error || 'server error');\r\n }\r\n\r\n public static getHttpResponseMessage(data: any): string[] {\r\n\r\n const responses: string[] = [];\r\n\r\n if (data instanceof HttpResponseBase) {\r\n if (this.checkNoNetwork(data)) {\r\n responses.push(`${this.noNetworkMessageCaption}${this.captionAndMessageSeparator} ${this.noNetworkMessageDetail}`);\r\n } else {\r\n const responseObject = this.getResponseBody(data);\r\n\r\n if (responseObject && (typeof responseObject === 'object' || responseObject instanceof Object)) {\r\n\r\n for (const key in responseObject) {\r\n if (Object.prototype.hasOwnProperty.call(responseObject, key)) {\r\n if (key) {\r\n responses.push(`${key}${this.captionAndMessageSeparator} ${responseObject[key]}`);\r\n } else if (responseObject[key]) {\r\n responses.push(responseObject[key].toString());\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!responses.length && this.getResponseBody(data)) {\r\n responses.push(`${this.getResponseBody(data).toString()}`);\r\n }\r\n }\r\n\r\n if (!responses.length) {\r\n responses.push(data.toString());\r\n }\r\n\r\n if (this.checkAccessDenied(data)) {\r\n responses.splice(0, 0, `${this.accessDeniedMessageCaption}${this.captionAndMessageSeparator} ${this.accessDeniedMessageDetail}`);\r\n }\r\n\r\n return responses;\r\n }\r\n\r\n\r\n public static findHttpResponseMessage(messageToFind: string, data: any, seachInCaptionOnly = true, includeCaptionInResult = false): string | null {\r\n const searchString = messageToFind.toLowerCase();\r\n const httpMessages = this.getHttpResponseMessage(data);\r\n\r\n for (const message of httpMessages) {\r\n const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);\r\n\r\n if (fullMessage.firstPart?.toLowerCase().includes(searchString)) {\r\n return includeCaptionInResult ? message : fullMessage.secondPart ?? fullMessage.firstPart;\r\n }\r\n }\r\n\r\n if (!seachInCaptionOnly) {\r\n for (const message of httpMessages) {\r\n\r\n if (message.toLowerCase().includes(searchString)) {\r\n if (includeCaptionInResult) {\r\n return message;\r\n } else {\r\n const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);\r\n return fullMessage.secondPart ?? fullMessage.firstPart;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public static getResponseBody(response: HttpResponseBase): any {\r\n if (response instanceof HttpResponse) {\r\n return response.body;\r\n }\r\n\r\n if (response instanceof HttpErrorResponse) {\r\n return response.error || response.message || response.statusText;\r\n }\r\n return response;\r\n }\r\n\r\n\r\n public static checkNoNetwork(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkAccessDenied(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 403;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkNotFound(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 404;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkIsLocalHost(url: string, base?: string): boolean {\r\n if (url) {\r\n const location = new URL(url, base);\r\n return location.hostname === 'localhost' || location.hostname === '127.0.0.1';\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static getQueryParamsFromString(paramString: string): Record<string, string | null> | null {\r\n if (!paramString) {\r\n return null;\r\n }\r\n\r\n const params: Record<string, string | null> = {};\r\n\r\n for (const param of paramString.split('&')) {\r\n const keyValue = CmatUtilsService.splitInTwo(param, '=');\r\n params[keyValue.firstPart] = keyValue.secondPart;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n public static splitInTwo(text: string, separator?: string): { firstPart: string; secondPart: string | null } {\r\n const separatorIndex = separator ? text.indexOf(separator) : -1;\r\n\r\n if (separatorIndex === -1) {\r\n return { firstPart: text, secondPart: null };\r\n }\r\n\r\n const part1 = text.substring(0, separatorIndex).trim();\r\n const part2 = text.substring(separatorIndex + 1).trim();\r\n\r\n return { firstPart: part1, secondPart: part2 };\r\n }\r\n\r\n public static safeStringify(object: any): string {\r\n let result: string;\r\n\r\n try {\r\n result = JSON.stringify(object);\r\n return result;\r\n } catch { /* empty */ }\r\n\r\n const simpleObject: any = {};\r\n\r\n for (const prop in object) {\r\n if (!Object.prototype.hasOwnProperty.call(object, prop)) {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'object') {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'function') {\r\n continue;\r\n }\r\n simpleObject[prop] = object[prop];\r\n }\r\n\r\n result = '[***Sanitized Object***]: ' + JSON.stringify(simpleObject);\r\n\r\n return result;\r\n }\r\n\r\n public static jsonTryParse(value: string): string | void {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n if (isUndefined(value)) {\r\n return void 0;\r\n }\r\n\r\n return value;\r\n }\r\n }\r\n\r\n public static capitalizeFirstLetter(text: string): string {\r\n if (text) {\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n } else {\r\n return text;\r\n }\r\n }\r\n\r\n\r\n public static toTitleCase(text: string): string {\r\n return text.replace(/\\w\\S*/g, subString => subString.charAt(0).toUpperCase() + subString.substring(1).toLowerCase());\r\n }\r\n\r\n public static toLowerCase(items: any): string | string[] | void {\r\n if (items instanceof Array) {\r\n const loweredRoles: string[] = [];\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n loweredRoles[i] = items[i].toLowerCase();\r\n }\r\n\r\n return loweredRoles;\r\n } else if (typeof items === 'string' || items instanceof String) {\r\n return items.toLowerCase();\r\n }\r\n\r\n return void 0;\r\n }\r\n\r\n public static uniqueId(): string {\r\n return this.randomNumber(1000000, 9000000).toString();\r\n }\r\n\r\n public static randomNumber(min: number, max: number): number {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n public static baseUrl(): string {\r\n let base: string;\r\n\r\n if (window.location.origin) {\r\n base = window.location.origin;\r\n } else {\r\n base = window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n }\r\n\r\n return base.replace(/\\/$/, '');\r\n }\r\n\r\n public static newGuid(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n \r\n const r = (Math.random() * 16) | 0;\r\n \r\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n public static testIsAbsoluteUrl(url: string): boolean {\r\n const r = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n return r.test(url);\r\n }\r\n\r\n public static convertToAbsoluteUrl(url: string): string {\r\n return CmatUtilsService.testIsAbsoluteUrl(url) ? url : '//' + url;\r\n }\r\n\r\n public static urlBase64Decode(str: string): string {\r\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\r\n switch (output.length % 4) {\r\n case 0: {\r\n break;\r\n }\r\n case 2: {\r\n output += '==';\r\n break;\r\n }\r\n case 3: {\r\n output += '=';\r\n break;\r\n }\r\n }\r\n return this._base64DecodeUnicode(output);\r\n }\r\n\r\n public static decodeToken(token: string): any {\r\n const parts = token.split('.');\r\n\r\n if (parts.length !== 3) {\r\n throw new Error('JWT must have 3 parts');\r\n }\r\n\r\n const decoded = this.urlBase64Decode(parts[1]);\r\n if (!decoded) {\r\n throw new Error('Cannot decode the token');\r\n }\r\n\r\n return JSON.parse(decoded);\r\n }\r\n\r\n public static getTokenExpirationDate(token: string): Date | null {\r\n const decoded = this.decodeToken(token);\r\n\r\n if (!Object.prototype.hasOwnProperty.call(decoded, 'exp')) {\r\n return null;\r\n }\r\n\r\n const date = new Date(0); // The 0 here is the key, which sets the date to the epoch\r\n date.setUTCSeconds(decoded.exp);\r\n\r\n return date;\r\n }\r\n\r\n public static isTokenExpired(token: string, offsetSeconds?: number): boolean {\r\n const date = this.getTokenExpirationDate(token);\r\n offsetSeconds = offsetSeconds ?? 0;\r\n\r\n if (date == null) {\r\n return false;\r\n }\r\n\r\n // Token expired?\r\n return !(date.valueOf() > (new Date().valueOf() + (offsetSeconds * 1000)));\r\n }\r\n\r\n public static readAsDataURL(file: File): Promise<any> {\r\n // Return a new promise\r\n return new Promise((resolve, reject) => {\r\n\r\n // Create a new reader\r\n const reader = new FileReader();\r\n\r\n // Resolve the promise on success\r\n reader.onload = (): void => {\r\n resolve(reader.result);\r\n };\r\n\r\n // Reject the promise on error\r\n reader.onerror = (e): void => {\r\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\r\n reject(e);\r\n };\r\n\r\n // Read the file as the\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n\r\n public static dataURIToBlob(dataURI: string): Blob {\r\n const splitDataURI = dataURI.split(',');\r\n\r\n const byteString = splitDataURI[0].includes('base64') ? atob(splitDataURI[1]) : decodeURI(splitDataURI[1]);\r\n const mimeString = splitDataURI[0].split(':')[1].split(';')[0];\r\n\r\n const ia = new Uint8Array(byteString.length);\r\n for (let i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n return new Blob([ia], { type: mimeString });\r\n }\r\n\r\n public static getFileType(accept: string): 'csv' | 'gif' | 'word' | 'excel' | 'jpg' | 'outlook' | 'pdf' | 'png' | 'ppt' | 'file' | 'text' | 'video' | 'zip' {\r\n let fileType = 'file';\r\n switch (accept) {\r\n case 'image/jpeg':\r\n case 'image/jpg':\r\n fileType = 'jpg';\r\n break;\r\n case 'image/png':\r\n fileType = 'png';\r\n break;\r\n case 'text/csv':\r\n fileType = 'csv';\r\n break;\r\n case 'image/gif':\r\n fileType = 'gif';\r\n break;\r\n case 'application/msword':\r\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\r\n fileType = 'word';\r\n break;\r\n case 'application/vnd.ms-excel':\r\n case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\r\n fileType = 'word';\r\n break;\r\n case 'application/pdf':\r\n fileType = 'pdf';\r\n break;\r\n case 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\r\n case 'application/vnd.ms-powerpoint':\r\n fileType = 'ppt';\r\n break;\r\n case 'text/plain':\r\n fileType = 'text';\r\n break;\r\n case 'video/mpeg':\r\n case 'video/mp4':\r\n case 'audio/mp4':\r\n fileType = 'video';\r\n break;\r\n case 'aplication/zip':\r\n fileType = 'zip';\r\n break;\r\n }\r\n\r\n return fileType as 'csv' | 'gif' | 'word' | 'excel' | 'jpg' | 'outlook' | 'pdf' | 'png' | 'ppt' | 'file' | 'text' | 'video' | 'zip';\r\n }\r\n\r\n private static _base64DecodeUnicode(str: any): string {\r\n return decodeURIComponent(Array.prototype.map.call(atob(str), (c: any) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));\r\n }\r\n\r\n randomId(stringLength: number = 10): string {\r\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n let id = '';\r\n\r\n for (let i = 0; i < stringLength; i++) {\r\n id += chars.charAt(Math.floor(Math.random() * chars.length));\r\n }\r\n\r\n return id;\r\n }\r\n}\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|