cmat 0.0.13 → 0.0.14
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/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.d.ts +0 -1
- package/components/cascade/cascade-menu/cascade-menu.component.d.ts +0 -1
- package/components/chip-input/chip-input.component.d.ts +0 -1
- package/components/custom-formly/public-api.d.ts +1 -0
- package/components/custom-formly/types/quill/quill.component.d.ts +42 -0
- package/components/custom-formly/types/repeat/repeat.component.d.ts +0 -1
- package/components/custom-formly/types/select/select.component.d.ts +0 -1
- package/components/custom-formly/types/stepper/horizontal/stepper.component.d.ts +0 -1
- package/components/custom-formly/types/stepper/vertical/stepper.component.d.ts +0 -1
- package/components/custom-formly/types/table/table.component.d.ts +0 -1
- package/components/custom-formly/types/tabs/tab.component.d.ts +0 -1
- package/components/custom-formly/types/tags/tags.component.d.ts +0 -1
- package/components/material-color-picker/material-color-picker.component.d.ts +0 -1
- package/components/material-datetimepicker/calendar-body.d.ts +0 -1
- package/components/material-datetimepicker/calendar.d.ts +3 -4
- package/components/material-datetimepicker/clock.d.ts +0 -1
- package/components/material-datetimepicker/datetimepicker.d.ts +3 -4
- package/components/material-datetimepicker/month-view.d.ts +0 -1
- package/components/pagination/pagination.component.d.ts +0 -1
- package/components/popover/popover.component.d.ts +3 -4
- package/components/popover/popover.interfaces.d.ts +1 -2
- package/components/select-tree/select-tree.component.d.ts +0 -1
- package/components/timeline/timeline.component.d.ts +3 -5
- package/components/transfer-picker/filter/filter.component.d.ts +0 -1
- package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.d.ts +0 -1
- package/esm2022/components/adapter/datetime-adapter.mjs +1 -1
- package/esm2022/components/adapter/dayjs-date-adapter.mjs +4 -4
- package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +4 -4
- package/esm2022/components/adapter/native-datetime-adapter.mjs +4 -4
- package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +3 -3
- package/esm2022/components/breadcrumb/breadcrumb.component.mjs +5 -5
- package/esm2022/components/breadcrumb/breadcrumb.service.mjs +4 -4
- package/esm2022/components/card/card.component.mjs +4 -4
- package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +5 -8
- package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +4 -4
- package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +5 -8
- package/esm2022/components/chip-input/chip-input.component.mjs +6 -9
- package/esm2022/components/custom-formly/extension/addons.extension.mjs +1 -1
- package/esm2022/components/custom-formly/public-api.mjs +2 -1
- package/esm2022/components/custom-formly/types/button/button.component.mjs +4 -4
- 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 +3 -3
- package/esm2022/components/custom-formly/types/datepicker/datepicker.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/number/number.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/quill/quill.component.mjs +171 -0
- package/esm2022/components/custom-formly/types/radio/radio.component.mjs +4 -4
- package/esm2022/components/custom-formly/types/rating/rating.component.mjs +3 -3
- package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/select/select.component.mjs +5 -8
- 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 +5 -8
- package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/table/table.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +5 -8
- package/esm2022/components/custom-formly/types/tags/tags.component.mjs +5 -8
- 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 +4 -4
- 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/panel/panel.component.mjs +3 -3
- package/esm2022/components/date-range/date-range.component.mjs +4 -4
- package/esm2022/components/drawer/drawer.component.mjs +4 -4
- package/esm2022/components/drawer/drawer.service.mjs +3 -3
- package/esm2022/components/fullscreen/fullscreen.component.mjs +4 -4
- package/esm2022/components/highlight/highlight.component.mjs +4 -4
- package/esm2022/components/highlight/highlight.service.mjs +4 -4
- package/esm2022/components/json-editor/json-editor.component.mjs +4 -4
- package/esm2022/components/masonry/masonry.component.mjs +4 -4
- package/esm2022/components/material-color-picker/material-color-picker.component.mjs +5 -8
- package/esm2022/components/material-datetimepicker/calendar-body.mjs +5 -8
- package/esm2022/components/material-datetimepicker/calendar.mjs +7 -13
- package/esm2022/components/material-datetimepicker/clock.mjs +5 -8
- package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +4 -4
- package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +3 -3
- package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +7 -7
- package/esm2022/components/material-datetimepicker/datetimepicker.mjs +10 -11
- package/esm2022/components/material-datetimepicker/month-view.mjs +5 -8
- package/esm2022/components/material-datetimepicker/multi-year-view.mjs +4 -4
- package/esm2022/components/material-datetimepicker/time.mjs +7 -7
- package/esm2022/components/material-datetimepicker/year-view.mjs +4 -4
- package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +3 -3
- package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +5 -5
- 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 +5 -5
- package/esm2022/components/navigation/navigation.service.mjs +4 -4
- package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +5 -5
- package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +3 -3
- 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 +5 -5
- package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +3 -3
- package/esm2022/components/navigation/vertical/vertical.component.mjs +5 -5
- package/esm2022/components/pagination/pagination.component.mjs +5 -8
- package/esm2022/components/pagination/pagination.directive.mjs +4 -4
- package/esm2022/components/pagination/pagination.pipe.mjs +4 -4
- package/esm2022/components/pagination/pagination.service.mjs +4 -4
- package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +3 -3
- package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +4 -4
- package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +4 -4
- package/esm2022/components/password-strength/mat-password-strength-validator.mjs +1 -1
- package/esm2022/components/popover/popover-trigger.mjs +6 -8
- package/esm2022/components/popover/popover.component.mjs +6 -7
- package/esm2022/components/popover/popover.interfaces.mjs +1 -1
- package/esm2022/components/popover/popover.target.mjs +3 -3
- package/esm2022/components/progress-bar/progress-bar.component.mjs +4 -4
- 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 +3 -3
- package/esm2022/components/select-search/select-search.component.mjs +4 -4
- package/esm2022/components/select-tree/select-tree.component.mjs +5 -8
- package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +9 -9
- package/esm2022/components/timeline/timeline.component.mjs +7 -11
- package/esm2022/components/toast/toast-modal.component.mjs +4 -4
- package/esm2022/components/toast/toast.component.mjs +5 -5
- package/esm2022/components/toast/toast.service.mjs +4 -4
- package/esm2022/components/transfer-picker/filter/filter.component.mjs +5 -8
- package/esm2022/components/transfer-picker/search/search.component.mjs +3 -3
- package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +4 -4
- package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +5 -8
- package/esm2022/components/transfer-picker/transfer-picker.component.mjs +4 -4
- package/esm2022/components/transfer-picker/transfer-picker.service.mjs +4 -4
- package/esm2022/components/upload/files.util.service.mjs +4 -4
- package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +4 -4
- package/esm2022/components/upload/upload.component.mjs +4 -4
- package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +4 -4
- 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 +4 -4
- package/esm2022/directives/digit-only/mask.directive.mjs +4 -4
- package/esm2022/directives/equal-validator/equal-validator.directive.mjs +4 -4
- package/esm2022/lib/mock-api/mock-api.interceptor.mjs +4 -4
- package/esm2022/lib/mock-api/mock-api.request-handler.mjs +1 -1
- package/esm2022/lib/mock-api/mock-api.service.mjs +4 -4
- package/esm2022/lib/mock-api/mock-api.utils.mjs +1 -1
- package/esm2022/pipes/bytes/bytes.pipe.mjs +4 -4
- package/esm2022/pipes/date-format/date-format.pipe.mjs +3 -3
- package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +4 -4
- package/esm2022/pipes/group-by/group-by.pipe.mjs +4 -4
- package/esm2022/pipes/keys/keys.pipe.mjs +4 -4
- 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 +4 -4
- 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 +3 -3
- package/esm2022/services/data/data.service.mjs +4 -4
- package/esm2022/services/loading/loading.interceptor.mjs +4 -4
- package/esm2022/services/loading/loading.service.mjs +4 -4
- package/esm2022/services/local-storage/local-storage.service.mjs +3 -3
- package/esm2022/services/media-watcher/media-watcher.service.mjs +4 -4
- package/esm2022/services/platform/platform.service.mjs +4 -4
- package/esm2022/services/splash-screen/splash-screen.service.mjs +3 -3
- package/esm2022/services/title/title.service.mjs +4 -4
- package/esm2022/services/translation/translation.service.mjs +4 -4
- package/esm2022/services/utils/utils.service.mjs +4 -4
- package/esm2022/validators/validators.mjs +1 -1
- package/fesm2022/cmat-animations.mjs +1 -1
- package/fesm2022/cmat-components-adapter.mjs +9 -9
- package/fesm2022/cmat-components-adapter.mjs.map +1 -1
- 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-card.mjs.map +1 -1
- package/fesm2022/cmat-components-cascade.mjs +11 -17
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +5 -8
- package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
- package/fesm2022/cmat-components-custom-formly.mjs +248 -104
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
- package/fesm2022/cmat-components-date-range.mjs +4 -4
- package/fesm2022/cmat-components-date-range.mjs.map +1 -1
- package/fesm2022/cmat-components-drawer.mjs +7 -7
- package/fesm2022/cmat-components-drawer.mjs.map +1 -1
- package/fesm2022/cmat-components-fullscreen.mjs +3 -3
- package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
- package/fesm2022/cmat-components-highlight.mjs +6 -6
- package/fesm2022/cmat-components-highlight.mjs.map +1 -1
- package/fesm2022/cmat-components-json-editor.mjs +3 -3
- package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-masonry.mjs +3 -3
- package/fesm2022/cmat-components-masonry.mjs.map +1 -1
- package/fesm2022/cmat-components-material-color-picker.mjs +4 -7
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-material-datetimepicker.mjs +53 -68
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +46 -46
- package/fesm2022/cmat-components-navigation.mjs.map +1 -1
- package/fesm2022/cmat-components-pagination.mjs +13 -16
- package/fesm2022/cmat-components-pagination.mjs.map +1 -1
- package/fesm2022/cmat-components-password-strength.mjs +10 -10
- package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
- package/fesm2022/cmat-components-popover.mjs +13 -16
- package/fesm2022/cmat-components-popover.mjs.map +1 -1
- package/fesm2022/cmat-components-progress-bar.mjs +3 -3
- 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 +10 -10
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +4 -7
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
- package/fesm2022/cmat-components-timeline.mjs +15 -19
- 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 +20 -26
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-upload.mjs +9 -9
- package/fesm2022/cmat-components-upload.mjs.map +1 -1
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
- package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
- package/fesm2022/cmat-directives-autofocus.mjs +3 -3
- package/fesm2022/cmat-directives-debounce.mjs +9 -9
- package/fesm2022/cmat-directives-digit-only.mjs +6 -6
- package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
- package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
- package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
- package/fesm2022/cmat-lib-mock-api.mjs +7 -7
- package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
- package/fesm2022/cmat-pipes-bytes.mjs +3 -3
- package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
- package/fesm2022/cmat-pipes-date-format.mjs +3 -3
- package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
- package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
- package/fesm2022/cmat-pipes-group-by.mjs +3 -3
- package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
- package/fesm2022/cmat-pipes-keys.mjs +3 -3
- package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
- 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-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-data.mjs.map +1 -1
- package/fesm2022/cmat-services-loading.mjs +6 -6
- 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-media-watcher.mjs.map +1 -1
- package/fesm2022/cmat-services-platform.mjs +3 -3
- package/fesm2022/cmat-services-platform.mjs.map +1 -1
- package/fesm2022/cmat-services-splash-screen.mjs +3 -3
- package/fesm2022/cmat-services-title.mjs +3 -3
- package/fesm2022/cmat-services-title.mjs.map +1 -1
- package/fesm2022/cmat-services-translation.mjs +3 -3
- package/fesm2022/cmat-services-translation.mjs.map +1 -1
- package/fesm2022/cmat-services-utils.mjs +3 -3
- package/fesm2022/cmat-services-utils.mjs.map +1 -1
- package/fesm2022/cmat-validators.mjs.map +1 -1
- package/package.json +111 -102
- package/styles/overrides/angular-material.scss +0 -1
- package/styles/overrides/quill.scss +102 -0
- package/styles/themes.scss +19 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-directives-digit-only.mjs","sources":["../../../projects/cmat/directives/digit-only/digit-only.directive.ts","../../../projects/cmat/directives/digit-only/mask.directive.ts","../../../projects/cmat/directives/digit-only/cmat-directives-digit-only.ts"],"sourcesContent":["import {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cmatDigitOnly]',\r\n standalone: true\r\n})\r\nexport class CmatDigitOnlyDirective implements OnChanges {\r\n @Input() decimal = false;\r\n @Input() decimalSeparator = '.';\r\n @Input() allowNegatives = false;\r\n @Input() allowPaste = true;\r\n @Input() negativeSign = '-';\r\n @Input() min = -Infinity;\r\n @Input() max = Infinity;\r\n @Input() pattern?: string | RegExp;\r\n inputElement: HTMLInputElement;\r\n value:string='';\r\n\r\n private _regex: RegExp | null = null;\r\n private _hasDecimalPoint = false;\r\n private _hasNegativeSign = false;\r\n private _navigationKeys = [\r\n 'Backspace',\r\n 'Delete',\r\n 'Tab',\r\n 'Escape',\r\n 'Enter',\r\n 'Home',\r\n 'End',\r\n 'ArrowLeft',\r\n 'ArrowRight',\r\n 'Clear',\r\n 'Copy',\r\n 'Paste',\r\n ];\r\n\r\n constructor(public el: ElementRef) {\r\n this.inputElement = el.nativeElement;\r\n }\r\n\r\n @HostListener('beforeinput', ['$event'])\r\n onBeforeInput(e: InputEvent): any {\r\n if (isNaN(Number(e.data))) {\r\n if (\r\n e.data === this.decimalSeparator ||\r\n (e.data === this.negativeSign && this.allowNegatives)\r\n ) {\r\n return; // go on\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInputChange(event: any): void {\r\n const reg = /^-?(0|[1-9][0-9]*)(\\.[0-9]*)?$/;\r\n const value=event.target.value;\r\n if ((!isNaN(+value) && reg.test(value)) || value === '' || value === '-') {\r\n this.value = value;\r\n }\r\n this.inputElement.value = this.value;\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent): any {\r\n if (e.key === 'Process') {\r\n e.preventDefault();\r\n return;\r\n }\r\n if (\r\n this._navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.\r\n ((e.key === 'a' || e.code === 'KeyA') && e.ctrlKey === true) || // Allow: Ctrl+A\r\n ((e.key === 'c' || e.code === 'KeyC') && e.ctrlKey === true) || // Allow: Ctrl+C\r\n ((e.key === 'v' || e.code === 'KeyV') && e.ctrlKey === true) || // Allow: Ctrl+V\r\n ((e.key === 'x' || e.code === 'KeyX') && e.ctrlKey === true) || // Allow: Ctrl+X\r\n ((e.key === 'a' || e.code === 'KeyA') && e.metaKey === true) || // Allow: Cmd+A (Mac)\r\n ((e.key === 'c' || e.code === 'KeyC') && e.metaKey === true) || // Allow: Cmd+C (Mac)\r\n ((e.key === 'v' || e.code === 'KeyV') && e.metaKey === true) || // Allow: Cmd+V (Mac)\r\n ((e.key === 'x' || e.code === 'KeyX') && e.metaKey === true) // Allow: Cmd+X (Mac)\r\n ) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n\r\n let newValue = '';\r\n\r\n if (this.decimal && e.key === this.decimalSeparator) {\r\n newValue = this._forecastValue(e.key);\r\n if (newValue.split(this.decimalSeparator).length > 2) {\r\n // has two or more decimal points\r\n e.preventDefault();\r\n return;\r\n } else {\r\n this._hasDecimalPoint = newValue.indexOf(this.decimalSeparator) > -1;\r\n return; // Allow: only one decimal point\r\n }\r\n }\r\n\r\n if (e.key === this.negativeSign && this.allowNegatives) {\r\n newValue = this._forecastValue(e.key);\r\n if (\r\n newValue.charAt(0) !== this.negativeSign ||\r\n newValue.split(this.negativeSign).length > 2\r\n ) {\r\n e.preventDefault();\r\n return;\r\n } else {\r\n this._hasNegativeSign = newValue.split(this.negativeSign).length > -1;\r\n return;\r\n }\r\n }\r\n\r\n // Ensure that it is a number and stop the keypress\r\n if (e.key === ' ' || isNaN(Number(e.key))) {\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n newValue = newValue || this._forecastValue(e.key);\r\n // check the input pattern RegExp\r\n if (this._regex) {\r\n if (!this._regex.test(newValue)) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n const newNumber = Number(newValue);\r\n if (newNumber > this.max || newNumber < this.min) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: any): void {\r\n if (this.allowPaste === true) {\r\n let pastedInput: string = '';\r\n if ((window as { [key: string]: any })['clipboardData']) {\r\n // Browser is IE\r\n pastedInput = (window as { [key: string]: any })[\r\n 'clipboardData'\r\n ].getData('text');\r\n } else if (event.clipboardData && event.clipboardData.getData) {\r\n // Other browsers\r\n pastedInput = event.clipboardData.getData('text/plain');\r\n }\r\n\r\n this._pasteData(pastedInput);\r\n event.preventDefault();\r\n } else {\r\n // this prevents the paste\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop(event: DragEvent): void {\r\n const textData = event.dataTransfer?.getData('text') ?? '';\r\n this.inputElement.focus();\r\n this._pasteData(textData);\r\n event.preventDefault();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['pattern']) {\r\n this._regex = this.pattern ? RegExp(this.pattern) : null;\r\n }\r\n\r\n if (changes['min']) {\r\n const maybeMin = Number(this.min);\r\n this.min = isNaN(maybeMin) ? -Infinity : maybeMin;\r\n }\r\n\r\n if (changes['max']) {\r\n const maybeMax = Number(this.max);\r\n this.max = isNaN(maybeMax) ? Infinity : maybeMax;\r\n }\r\n }\r\n\r\n\r\n\r\n private _pasteData(pastedContent: string): void {\r\n const sanitizedContent = this._sanitizeInput(pastedContent);\r\n if (\r\n sanitizedContent.includes(this.negativeSign) &&\r\n this._hasNegativeSign &&\r\n !this._getSelection().includes(this.negativeSign)\r\n ) {\r\n return;\r\n }\r\n const pasted = document.execCommand('insertText', false, sanitizedContent);\r\n if (!pasted) {\r\n if (this.inputElement.setRangeText) {\r\n const { selectionStart: start, selectionEnd: end } = this.inputElement;\r\n this.inputElement.setRangeText(\r\n sanitizedContent,\r\n start ?? 0,\r\n end ?? 0,\r\n 'end'\r\n );\r\n // Angular's Reactive Form relies on \"input\" event, but on Firefox, the setRangeText method doesn't trigger it\r\n // so we have to trigger it ourself.\r\n if (\r\n typeof (window as { [key: string]: any })['InstallTrigger'] !==\r\n 'undefined'\r\n ) {\r\n this.inputElement.dispatchEvent(\r\n new Event('input', { cancelable: true })\r\n );\r\n }\r\n } else {\r\n // Browser does not support setRangeText, e.g. IE\r\n this._insertAtCursor(this.inputElement, sanitizedContent);\r\n }\r\n }\r\n if (this.decimal) {\r\n this._hasDecimalPoint =\r\n this.inputElement.value.indexOf(this.decimalSeparator) > -1;\r\n }\r\n this._hasNegativeSign =\r\n this.inputElement.value.indexOf(this.negativeSign) > -1;\r\n }\r\n\r\n // The following 2 methods were added from the below article for browsers that do not support setRangeText\r\n // https://stackoverflow.com/questions/11076975/how-to-insert-text-into-the-textarea-at-the-current-cursor-position\r\n private _insertAtCursor(myField: HTMLInputElement, myValue: string): void {\r\n const startPos = myField.selectionStart ?? 0;\r\n const endPos = myField.selectionEnd ?? 0;\r\n\r\n myField.value =\r\n myField.value.substring(0, startPos) +\r\n myValue +\r\n myField.value.substring(endPos, myField.value.length);\r\n\r\n const pos = startPos + myValue.length;\r\n myField.focus();\r\n myField.setSelectionRange(pos, pos);\r\n\r\n this._triggerEvent(myField, 'input');\r\n }\r\n\r\n private _triggerEvent(el: HTMLInputElement, type: string): void {\r\n if ('createEvent' in document) {\r\n // modern browsers, IE9+\r\n const e = document.createEvent('HTMLEvents');\r\n e.initEvent(type, false, true);\r\n el.dispatchEvent(e);\r\n }\r\n }\r\n // end stack overflow code\r\n\r\n private _sanitizeInput(input: string): string {\r\n let result = '';\r\n let regex: RegExp;\r\n if (this.decimal && this._isValidDecimal(input)) {\r\n regex = new RegExp(\r\n `${this._getNegativeSignRegExp()}[^0-9${this.decimalSeparator}]`,\r\n 'g'\r\n );\r\n } else {\r\n regex = new RegExp(`${this._getNegativeSignRegExp()}[^0-9]`, 'g');\r\n }\r\n result = input.replace(regex, '');\r\n\r\n const maxLength = this.inputElement.maxLength;\r\n if (maxLength > 0) {\r\n // the input element has maxLength limit\r\n const allowedLength =\r\n maxLength -\r\n this.inputElement.value.length +\r\n (result.includes(`${this.negativeSign}`) ? 1 : 0);\r\n result = allowedLength > 0 ? result.substring(0, allowedLength) : '';\r\n }\r\n return result;\r\n }\r\n\r\n private _getNegativeSignRegExp(): string {\r\n return this.allowNegatives &&\r\n (!this._hasNegativeSign || this._getSelection().includes(this.negativeSign))\r\n ? `(?!^${this.negativeSign})`\r\n : '';\r\n }\r\n\r\n private _isValidDecimal(str: string): boolean {\r\n if (!this._hasDecimalPoint) {\r\n return str.split(this.decimalSeparator).length <= 2;\r\n } else {\r\n // the input element already has a decimal separator\r\n const selectedText = this._getSelection();\r\n if (selectedText && selectedText.indexOf(this.decimalSeparator) > -1) {\r\n return str.split(this.decimalSeparator).length <= 2;\r\n } else {\r\n return str.indexOf(this.decimalSeparator) < 0;\r\n }\r\n }\r\n }\r\n\r\n private _getSelection(): string {\r\n return this.inputElement.value.substring(\r\n this.inputElement.selectionStart ?? 0,\r\n this.inputElement.selectionEnd ?? 0\r\n );\r\n }\r\n\r\n private _forecastValue(key: string): string {\r\n const selectionStart = this.inputElement.selectionStart ?? 0;\r\n const selectionEnd = this.inputElement.selectionEnd ?? 0;\r\n const oldValue = this.inputElement.value;\r\n return (\r\n oldValue.substring(0, selectionStart) +\r\n key +\r\n oldValue.substring(selectionEnd)\r\n );\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, OnInit } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cmatMask]',\r\n standalone: true\r\n})\r\nexport class CmatMaskDirective implements OnInit {\r\n inputElement: HTMLInputElement;\r\n regex: RegExp = new RegExp('');\r\n\r\n private _navigationKeys = [\r\n 'Backspace',\r\n 'Delete',\r\n 'Tab',\r\n 'Escape',\r\n 'Enter',\r\n 'Home',\r\n 'End',\r\n 'ArrowLeft',\r\n 'ArrowRight',\r\n 'Clear',\r\n 'Copy',\r\n 'Paste',\r\n ];\r\n\r\n constructor(public el: ElementRef) {\r\n this.inputElement = el.nativeElement;\r\n }\r\n\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent): void {\r\n if (\r\n this._navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.\r\n ((e.key === 'a' || e.code === 'KeyA') && e.ctrlKey === true) || // Allow: Ctrl+A\r\n ((e.key === 'c' || e.code === 'KeyC') && e.ctrlKey === true) || // Allow: Ctrl+C\r\n ((e.key === 'v' || e.code === 'KeyV') && e.ctrlKey === true) || // Allow: Ctrl+V\r\n ((e.key === 'x' || e.code === 'KeyX') && e.ctrlKey === true) || // Allow: Ctrl+X\r\n ((e.key === 'a' || e.code === 'KeyA') && e.metaKey === true) || // Allow: Cmd+A (Mac)\r\n ((e.key === 'c' || e.code === 'KeyC') && e.metaKey === true) || // Allow: Cmd+C (Mac)\r\n ((e.key === 'v' || e.code === 'KeyV') && e.metaKey === true) || // Allow: Cmd+V (Mac)\r\n ((e.key === 'x' || e.code === 'KeyX') && e.metaKey === true) // Allow: Cmd+X (Mac)\r\n ) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n\r\n const newValue = this._forecastValue(e.key);\r\n if (!this.regex.test(newValue)) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.regex = new RegExp(this.inputElement.pattern);\r\n }\r\n\r\n private _forecastValue(key: string): string {\r\n const selectionStart = this.inputElement.selectionStart ?? 0;\r\n const selectionEnd = this.inputElement.selectionEnd ?? 0;\r\n const oldValue = this.inputElement.value;\r\n const selection = oldValue.substring(selectionStart, selectionEnd);\r\n return selection\r\n ? oldValue.replace(selection, key)\r\n : oldValue.substring(0, selectionStart) +\r\n key +\r\n oldValue.substring(selectionStart);\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-directives-digit-only.mjs","sources":["../../../projects/cmat/directives/digit-only/digit-only.directive.ts","../../../projects/cmat/directives/digit-only/mask.directive.ts","../../../projects/cmat/directives/digit-only/cmat-directives-digit-only.ts"],"sourcesContent":["import {\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cmatDigitOnly]',\r\n standalone: true\r\n})\r\nexport class CmatDigitOnlyDirective implements OnChanges {\r\n @Input() decimal = false;\r\n @Input() decimalSeparator = '.';\r\n @Input() allowNegatives = false;\r\n @Input() allowPaste = true;\r\n @Input() negativeSign = '-';\r\n @Input() min = -Infinity;\r\n @Input() max = Infinity;\r\n @Input() pattern?: string | RegExp;\r\n inputElement: HTMLInputElement;\r\n value:string='';\r\n\r\n private _regex: RegExp | null = null;\r\n private _hasDecimalPoint = false;\r\n private _hasNegativeSign = false;\r\n private _navigationKeys = [\r\n 'Backspace',\r\n 'Delete',\r\n 'Tab',\r\n 'Escape',\r\n 'Enter',\r\n 'Home',\r\n 'End',\r\n 'ArrowLeft',\r\n 'ArrowRight',\r\n 'Clear',\r\n 'Copy',\r\n 'Paste',\r\n ];\r\n\r\n constructor(public el: ElementRef) {\r\n this.inputElement = el.nativeElement;\r\n }\r\n\r\n @HostListener('beforeinput', ['$event'])\r\n onBeforeInput(e: InputEvent): any {\r\n if (isNaN(Number(e.data))) {\r\n if (\r\n e.data === this.decimalSeparator ||\r\n (e.data === this.negativeSign && this.allowNegatives)\r\n ) {\r\n return; // go on\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInputChange(event: any): void {\r\n const reg = /^-?(0|[1-9][0-9]*)(\\.[0-9]*)?$/;\r\n const value=event.target.value;\r\n if ((!isNaN(+value) && reg.test(value)) || value === '' || value === '-') {\r\n this.value = value;\r\n }\r\n this.inputElement.value = this.value;\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent): any {\r\n if (e.key === 'Process') {\r\n e.preventDefault();\r\n return;\r\n }\r\n if (\r\n this._navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.\r\n ((e.key === 'a' || e.code === 'KeyA') && e.ctrlKey === true) || // Allow: Ctrl+A\r\n ((e.key === 'c' || e.code === 'KeyC') && e.ctrlKey === true) || // Allow: Ctrl+C\r\n ((e.key === 'v' || e.code === 'KeyV') && e.ctrlKey === true) || // Allow: Ctrl+V\r\n ((e.key === 'x' || e.code === 'KeyX') && e.ctrlKey === true) || // Allow: Ctrl+X\r\n ((e.key === 'a' || e.code === 'KeyA') && e.metaKey === true) || // Allow: Cmd+A (Mac)\r\n ((e.key === 'c' || e.code === 'KeyC') && e.metaKey === true) || // Allow: Cmd+C (Mac)\r\n ((e.key === 'v' || e.code === 'KeyV') && e.metaKey === true) || // Allow: Cmd+V (Mac)\r\n ((e.key === 'x' || e.code === 'KeyX') && e.metaKey === true) // Allow: Cmd+X (Mac)\r\n ) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n\r\n let newValue = '';\r\n\r\n if (this.decimal && e.key === this.decimalSeparator) {\r\n newValue = this._forecastValue(e.key);\r\n if (newValue.split(this.decimalSeparator).length > 2) {\r\n // has two or more decimal points\r\n e.preventDefault();\r\n return;\r\n } else {\r\n this._hasDecimalPoint = newValue.indexOf(this.decimalSeparator) > -1;\r\n return; // Allow: only one decimal point\r\n }\r\n }\r\n\r\n if (e.key === this.negativeSign && this.allowNegatives) {\r\n newValue = this._forecastValue(e.key);\r\n if (\r\n newValue.charAt(0) !== this.negativeSign ||\r\n newValue.split(this.negativeSign).length > 2\r\n ) {\r\n e.preventDefault();\r\n return;\r\n } else {\r\n this._hasNegativeSign = newValue.split(this.negativeSign).length > -1;\r\n return;\r\n }\r\n }\r\n\r\n // Ensure that it is a number and stop the keypress\r\n if (e.key === ' ' || isNaN(Number(e.key))) {\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n newValue = newValue || this._forecastValue(e.key);\r\n // check the input pattern RegExp\r\n if (this._regex) {\r\n if (!this._regex.test(newValue)) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n const newNumber = Number(newValue);\r\n if (newNumber > this.max || newNumber < this.min) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: any): void {\r\n if (this.allowPaste === true) {\r\n let pastedInput: string = '';\r\n if ((window as { [key: string]: any })['clipboardData']) {\r\n // Browser is IE\r\n pastedInput = (window as { [key: string]: any })[\r\n 'clipboardData'\r\n ].getData('text');\r\n } else if (event.clipboardData && event.clipboardData.getData) {\r\n // Other browsers\r\n pastedInput = event.clipboardData.getData('text/plain');\r\n }\r\n\r\n this._pasteData(pastedInput);\r\n event.preventDefault();\r\n } else {\r\n // this prevents the paste\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n onDrop(event: DragEvent): void {\r\n const textData = event.dataTransfer?.getData('text') ?? '';\r\n this.inputElement.focus();\r\n this._pasteData(textData);\r\n event.preventDefault();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['pattern']) {\r\n this._regex = this.pattern ? RegExp(this.pattern) : null;\r\n }\r\n\r\n if (changes['min']) {\r\n const maybeMin = Number(this.min);\r\n this.min = isNaN(maybeMin) ? -Infinity : maybeMin;\r\n }\r\n\r\n if (changes['max']) {\r\n const maybeMax = Number(this.max);\r\n this.max = isNaN(maybeMax) ? Infinity : maybeMax;\r\n }\r\n }\r\n\r\n\r\n\r\n private _pasteData(pastedContent: string): void {\r\n const sanitizedContent = this._sanitizeInput(pastedContent);\r\n if (\r\n sanitizedContent.includes(this.negativeSign) &&\r\n this._hasNegativeSign &&\r\n !this._getSelection().includes(this.negativeSign)\r\n ) {\r\n return;\r\n }\r\n const pasted = document.execCommand('insertText', false, sanitizedContent);\r\n if (!pasted) {\r\n if (this.inputElement.setRangeText) {\r\n const { selectionStart: start, selectionEnd: end } = this.inputElement;\r\n this.inputElement.setRangeText(\r\n sanitizedContent,\r\n start ?? 0,\r\n end ?? 0,\r\n 'end'\r\n );\r\n // Angular's Reactive Form relies on \"input\" event, but on Firefox, the setRangeText method doesn't trigger it\r\n // so we have to trigger it ourself.\r\n if (\r\n typeof (window as { [key: string]: any })['InstallTrigger'] !==\r\n 'undefined'\r\n ) {\r\n this.inputElement.dispatchEvent(\r\n new Event('input', { cancelable: true })\r\n );\r\n }\r\n } else {\r\n // Browser does not support setRangeText, e.g. IE\r\n this._insertAtCursor(this.inputElement, sanitizedContent);\r\n }\r\n }\r\n if (this.decimal) {\r\n this._hasDecimalPoint =\r\n this.inputElement.value.indexOf(this.decimalSeparator) > -1;\r\n }\r\n this._hasNegativeSign =\r\n this.inputElement.value.indexOf(this.negativeSign) > -1;\r\n }\r\n\r\n // The following 2 methods were added from the below article for browsers that do not support setRangeText\r\n // https://stackoverflow.com/questions/11076975/how-to-insert-text-into-the-textarea-at-the-current-cursor-position\r\n private _insertAtCursor(myField: HTMLInputElement, myValue: string): void {\r\n const startPos = myField.selectionStart ?? 0;\r\n const endPos = myField.selectionEnd ?? 0;\r\n\r\n myField.value =\r\n myField.value.substring(0, startPos) +\r\n myValue +\r\n myField.value.substring(endPos, myField.value.length);\r\n\r\n const pos = startPos + myValue.length;\r\n myField.focus();\r\n myField.setSelectionRange(pos, pos);\r\n\r\n this._triggerEvent(myField, 'input');\r\n }\r\n\r\n private _triggerEvent(el: HTMLInputElement, type: string): void {\r\n if ('createEvent' in document) {\r\n // modern browsers, IE9+\r\n const e = document.createEvent('HTMLEvents');\r\n e.initEvent(type, false, true);\r\n el.dispatchEvent(e);\r\n }\r\n }\r\n // end stack overflow code\r\n\r\n private _sanitizeInput(input: string): string {\r\n let result = '';\r\n let regex: RegExp;\r\n if (this.decimal && this._isValidDecimal(input)) {\r\n regex = new RegExp(\r\n `${this._getNegativeSignRegExp()}[^0-9${this.decimalSeparator}]`,\r\n 'g'\r\n );\r\n } else {\r\n regex = new RegExp(`${this._getNegativeSignRegExp()}[^0-9]`, 'g');\r\n }\r\n result = input.replace(regex, '');\r\n\r\n const maxLength = this.inputElement.maxLength;\r\n if (maxLength > 0) {\r\n // the input element has maxLength limit\r\n const allowedLength =\r\n maxLength -\r\n this.inputElement.value.length +\r\n (result.includes(`${this.negativeSign}`) ? 1 : 0);\r\n result = allowedLength > 0 ? result.substring(0, allowedLength) : '';\r\n }\r\n return result;\r\n }\r\n\r\n private _getNegativeSignRegExp(): string {\r\n return this.allowNegatives &&\r\n (!this._hasNegativeSign || this._getSelection().includes(this.negativeSign))\r\n ? `(?!^${this.negativeSign})`\r\n : '';\r\n }\r\n\r\n private _isValidDecimal(str: string): boolean {\r\n if (!this._hasDecimalPoint) {\r\n return str.split(this.decimalSeparator).length <= 2;\r\n } else {\r\n // the input element already has a decimal separator\r\n const selectedText = this._getSelection();\r\n if (selectedText && selectedText.indexOf(this.decimalSeparator) > -1) {\r\n return str.split(this.decimalSeparator).length <= 2;\r\n } else {\r\n return str.indexOf(this.decimalSeparator) < 0;\r\n }\r\n }\r\n }\r\n\r\n private _getSelection(): string {\r\n return this.inputElement.value.substring(\r\n this.inputElement.selectionStart ?? 0,\r\n this.inputElement.selectionEnd ?? 0\r\n );\r\n }\r\n\r\n private _forecastValue(key: string): string {\r\n const selectionStart = this.inputElement.selectionStart ?? 0;\r\n const selectionEnd = this.inputElement.selectionEnd ?? 0;\r\n const oldValue = this.inputElement.value;\r\n return (\r\n oldValue.substring(0, selectionStart) +\r\n key +\r\n oldValue.substring(selectionEnd)\r\n );\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, OnInit } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[cmatMask]',\r\n standalone: true\r\n})\r\nexport class CmatMaskDirective implements OnInit {\r\n inputElement: HTMLInputElement;\r\n regex: RegExp = new RegExp('');\r\n\r\n private _navigationKeys = [\r\n 'Backspace',\r\n 'Delete',\r\n 'Tab',\r\n 'Escape',\r\n 'Enter',\r\n 'Home',\r\n 'End',\r\n 'ArrowLeft',\r\n 'ArrowRight',\r\n 'Clear',\r\n 'Copy',\r\n 'Paste',\r\n ];\r\n\r\n constructor(public el: ElementRef) {\r\n this.inputElement = el.nativeElement;\r\n }\r\n\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(e: KeyboardEvent): void {\r\n if (\r\n this._navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.\r\n ((e.key === 'a' || e.code === 'KeyA') && e.ctrlKey === true) || // Allow: Ctrl+A\r\n ((e.key === 'c' || e.code === 'KeyC') && e.ctrlKey === true) || // Allow: Ctrl+C\r\n ((e.key === 'v' || e.code === 'KeyV') && e.ctrlKey === true) || // Allow: Ctrl+V\r\n ((e.key === 'x' || e.code === 'KeyX') && e.ctrlKey === true) || // Allow: Ctrl+X\r\n ((e.key === 'a' || e.code === 'KeyA') && e.metaKey === true) || // Allow: Cmd+A (Mac)\r\n ((e.key === 'c' || e.code === 'KeyC') && e.metaKey === true) || // Allow: Cmd+C (Mac)\r\n ((e.key === 'v' || e.code === 'KeyV') && e.metaKey === true) || // Allow: Cmd+V (Mac)\r\n ((e.key === 'x' || e.code === 'KeyX') && e.metaKey === true) // Allow: Cmd+X (Mac)\r\n ) {\r\n // let it happen, don't do anything\r\n return;\r\n }\r\n\r\n const newValue = this._forecastValue(e.key);\r\n if (!this.regex.test(newValue)) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.regex = new RegExp(this.inputElement.pattern);\r\n }\r\n\r\n private _forecastValue(key: string): string {\r\n const selectionStart = this.inputElement.selectionStart ?? 0;\r\n const selectionEnd = this.inputElement.selectionEnd ?? 0;\r\n const oldValue = this.inputElement.value;\r\n const selection = oldValue.substring(selectionStart, selectionEnd);\r\n return selection\r\n ? oldValue.replace(selection, key)\r\n : oldValue.substring(0, selectionStart) +\r\n key +\r\n oldValue.substring(selectionStart);\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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"}
|
|
@@ -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: "18.0.0", ngImport: i0, type: CmatEqualValidatorDirective, deps: [{ token: 'cmatValidateEqual', attribute: true }, { token: 'reverse', attribute: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
35
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", 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: "18.0.0", ngImport: i0, type: CmatEqualValidatorDirective, decorators: [{
|
|
40
40
|
type: Directive,
|
|
41
41
|
args: [{
|
|
42
42
|
selector: '[cmatValidateEqual][formControlName],[cmatValidateEqual][formControl],[cmatValidateEqual][ngModel]',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-directives-equal-validator.mjs","sources":["../../../projects/cmat/directives/equal-validator/equal-validator.directive.ts","../../../projects/cmat/directives/equal-validator/cmat-directives-equal-validator.ts"],"sourcesContent":["import { Directive, forwardRef, Attribute } from '@angular/core';\r\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[cmatValidateEqual][formControlName],[cmatValidateEqual][formControl],[cmatValidateEqual][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => CmatEqualValidatorDirective), multi: true }\r\n ],\r\n standalone: true\r\n})\r\nexport class CmatEqualValidatorDirective implements Validator {\r\n constructor(@Attribute('cmatValidateEqual') private _validateEqual: string,\r\n @Attribute('reverse') private _reverse: string) {\r\n }\r\n\r\n private static _validateNoReverse(c: AbstractControl, other: AbstractControl): { [key: string]: any } | null {\r\n return other.value === c.value ? null : { validateEqual: true };\r\n }\r\n\r\n private static _validateReverse(c: AbstractControl, other: AbstractControl): { [key: string]: any } | null {\r\n if (c.value === other.value) {\r\n if (other.errors) {\r\n delete other.errors['cmatValidateEqual'];\r\n\r\n if (Object.keys(other.errors).length === 0) {\r\n other.setErrors(null);\r\n }\r\n }\r\n } else {\r\n other.setErrors({ validateEqual: true });\r\n }\r\n\r\n return null;\r\n }\r\n\r\n validate(c: AbstractControl): { [key: string]: any } | null {\r\n const other = c.root.get(this._validateEqual);\r\n\r\n if (!other) { return null; }\r\n\r\n return this._reverse === 'true' ? CmatEqualValidatorDirective._validateReverse(c, other) : CmatEqualValidatorDirective._validateNoReverse(c, other);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAUa,2BAA2B,CAAA;IACtC,WAAoD,CAAA,cAAsB,EAC1C,QAAgB,EAAA;QADI,IAAc,CAAA,cAAA,GAAd,cAAc,CAAQ;QAC1C,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAQ;KAC/C;AAEO,IAAA,OAAO,kBAAkB,CAAC,CAAkB,EAAE,KAAsB,EAAA;AAC1E,QAAA,OAAO,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;KACjE;AAEO,IAAA,OAAO,gBAAgB,CAAC,CAAkB,EAAE,KAAsB,EAAA;
|
|
1
|
+
{"version":3,"file":"cmat-directives-equal-validator.mjs","sources":["../../../projects/cmat/directives/equal-validator/equal-validator.directive.ts","../../../projects/cmat/directives/equal-validator/cmat-directives-equal-validator.ts"],"sourcesContent":["import { Directive, forwardRef, Attribute } from '@angular/core';\r\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[cmatValidateEqual][formControlName],[cmatValidateEqual][formControl],[cmatValidateEqual][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => CmatEqualValidatorDirective), multi: true }\r\n ],\r\n standalone: true\r\n})\r\nexport class CmatEqualValidatorDirective implements Validator {\r\n constructor(@Attribute('cmatValidateEqual') private _validateEqual: string,\r\n @Attribute('reverse') private _reverse: string) {\r\n }\r\n\r\n private static _validateNoReverse(c: AbstractControl, other: AbstractControl): { [key: string]: any } | null {\r\n return other.value === c.value ? null : { validateEqual: true };\r\n }\r\n\r\n private static _validateReverse(c: AbstractControl, other: AbstractControl): { [key: string]: any } | null {\r\n if (c.value === other.value) {\r\n if (other.errors) {\r\n delete other.errors['cmatValidateEqual'];\r\n\r\n if (Object.keys(other.errors).length === 0) {\r\n other.setErrors(null);\r\n }\r\n }\r\n } else {\r\n other.setErrors({ validateEqual: true });\r\n }\r\n\r\n return null;\r\n }\r\n\r\n validate(c: AbstractControl): { [key: string]: any } | null {\r\n const other = c.root.get(this._validateEqual);\r\n\r\n if (!other) { return null; }\r\n\r\n return this._reverse === 'true' ? CmatEqualValidatorDirective._validateReverse(c, other) : CmatEqualValidatorDirective._validateNoReverse(c, other);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAUa,2BAA2B,CAAA;IACtC,WAAoD,CAAA,cAAsB,EAC1C,QAAgB,EAAA;QADI,IAAc,CAAA,cAAA,GAAd,cAAc,CAAQ;QAC1C,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAQ;KAC/C;AAEO,IAAA,OAAO,kBAAkB,CAAC,CAAkB,EAAE,KAAsB,EAAA;AAC1E,QAAA,OAAO,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;KACjE;AAEO,IAAA,OAAO,gBAAgB,CAAC,CAAkB,EAAE,KAAsB,EAAA;QACxE,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE;AAC3B,YAAA,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,gBAAA,OAAO,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAEzC,gBAAA,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1C,oBAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;iBACvB;aACF;SACF;aAAM;YACL,KAAK,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;SAC1C;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,QAAQ,CAAC,CAAkB,EAAA;AACzB,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE9C,IAAI,CAAC,KAAK,EAAE;AAAE,YAAA,OAAO,IAAI,CAAC;SAAE;QAE5B,OAAO,IAAI,CAAC,QAAQ,KAAK,MAAM,GAAG,2BAA2B,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,2BAA2B,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;KACrJ;8GA/BU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EACf,mBAAmB,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAC7B,SAAS,EAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAFX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAL3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oGAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,2BAA2B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACpG,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAGU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oGAAoG;AAC9G,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,iCAAiC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACpG,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;0BAEc,SAAS;2BAAC,mBAAmB,CAAA;;0BACvC,SAAS;2BAAC,SAAS,CAAA;;;ACZxB;;AAEG;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, Injectable, Inject } from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { fromPairs, compact, isUndefined } from 'lodash-es';
|
|
4
4
|
import { throwError, Observable, of } from 'rxjs';
|
|
5
5
|
import { take, delay, switchMap } from 'rxjs/operators';
|
|
6
6
|
import { HttpErrorResponse, HttpResponse } from '@angular/common/http';
|
|
@@ -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: "18.0.0", ngImport: i0, type: CmatMockApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
136
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatMockApiService, providedIn: 'root' }); }
|
|
137
137
|
}
|
|
138
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatMockApiService, decorators: [{
|
|
139
139
|
type: Injectable,
|
|
140
140
|
args: [{
|
|
141
141
|
providedIn: 'root'
|
|
@@ -211,10 +211,10 @@ class CmatMockApiInterceptor {
|
|
|
211
211
|
return throwError(() => response);
|
|
212
212
|
}));
|
|
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: "18.0.0", ngImport: i0, type: CmatMockApiInterceptor, deps: [{ token: CMAT_MOCK_API_DEFAULT_DELAY }, { token: CmatMockApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
215
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatMockApiInterceptor, providedIn: 'root' }); }
|
|
216
216
|
}
|
|
217
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
217
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatMockApiInterceptor, decorators: [{
|
|
218
218
|
type: Injectable,
|
|
219
219
|
args: [{
|
|
220
220
|
providedIn: 'root'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-lib-mock-api.mjs","sources":["../../../projects/cmat/lib/mock-api/mock-api.constants.ts","../../../projects/cmat/lib/mock-api/mock-api.request-handler.ts","../../../projects/cmat/lib/mock-api/mock-api.service.ts","../../../projects/cmat/lib/mock-api/mock-api.utils.ts","../../../projects/cmat/lib/mock-api/mock-api.interceptor.ts","../../../projects/cmat/lib/mock-api/cmat-lib-mock-api.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const CMAT_MOCK_API_DEFAULT_DELAY = new InjectionToken<number>('CMAT_MOCK_API_DEFAULT_DELAY');\r\n","import { HttpRequest } from '@angular/common/http';\r\nimport { Observable, of, throwError } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\nimport { CmatMockApiReplyCallback } from './mock-api.types';\r\n\r\nexport class CmatMockApiHandler {\r\n request!: HttpRequest<any>;\r\n urlParams!: { [key: string]: string };\r\n\r\n private _reply: CmatMockApiReplyCallback = void 0;\r\n private _replyCount = 0;\r\n private _replied = 0;\r\n\r\n constructor(\r\n public url: string,\r\n public delay?: number\r\n ) {\r\n }\r\n\r\n get response(): Observable<any> {\r\n // If the execution limit has been reached, throw an error\r\n if (this._replyCount > 0 && this._replyCount <= this._replied) {\r\n return throwError(() => new Error('Execution limit has been reached!'));\r\n }\r\n\r\n // If the response callback has not been set, throw an error\r\n if (!this._reply) {\r\n return throwError(() => new Error('Response callback function does not exist!'));\r\n }\r\n\r\n // If the request has not been set, throw an error\r\n if (!this.request) {\r\n return throwError(() => new Error('Request does not exist!'));\r\n }\r\n\r\n // Increase the replied count\r\n this._replied++;\r\n\r\n // Execute the reply callback\r\n const replyResult = this._reply({\r\n request: this.request,\r\n urlParams: this.urlParams\r\n });\r\n\r\n // If the result of the reply callback is an observable...\r\n if (replyResult instanceof Observable) {\r\n // Return the result as it is\r\n return replyResult.pipe(take(1));\r\n }\r\n\r\n // Otherwise, return the result as an observable\r\n return of(replyResult).pipe(take(1));\r\n }\r\n\r\n reply(callback: CmatMockApiReplyCallback): void {\r\n // Store the reply\r\n this._reply = callback;\r\n }\r\n\r\n replyCount(count: number): void {\r\n // Store the reply count\r\n this._replyCount = count;\r\n }\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { compact, fromPairs } from 'lodash-es';\r\nimport { CmatMockApiHandler } from './mock-api.request-handler';\r\nimport { CmatMockApiMethods } from './mock-api.types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatMockApiService {\r\n private _handlers: { [key: string]: Map<string, CmatMockApiHandler> } = {\r\n 'get': new Map<string, CmatMockApiHandler>(),\r\n 'post': new Map<string, CmatMockApiHandler>(),\r\n 'patch': new Map<string, CmatMockApiHandler>(),\r\n 'delete': new Map<string, CmatMockApiHandler>(),\r\n 'put': new Map<string, CmatMockApiHandler>(),\r\n 'head': new Map<string, CmatMockApiHandler>(),\r\n 'jsonp': new Map<string, CmatMockApiHandler>(),\r\n 'options': new Map<string, CmatMockApiHandler>()\r\n };\r\n\r\n findHandler(method: string, url: string): { handler: CmatMockApiHandler | void; urlParams: { [key: string]: string } } {\r\n // Prepare the return object\r\n const matchingHandler: { handler: CmatMockApiHandler | void; urlParams: { [key: string]: string } } = {\r\n handler: void 0,\r\n urlParams: {}\r\n };\r\n\r\n // Split the url\r\n const urlParts = url.split('/');\r\n\r\n // Get all related request handlers\r\n const handlers = this._handlers[method.toLowerCase()];\r\n\r\n // Iterate through the handlers\r\n handlers.forEach((handler, handlerUrl) => {\r\n\r\n // Skip if there is already a matching handler\r\n if (matchingHandler.handler) {\r\n return;\r\n }\r\n\r\n // Split the handler url\r\n const handlerUrlParts = handlerUrl.split('/');\r\n\r\n // Skip if the lengths of the urls we are comparing are not the same\r\n if (urlParts.length !== handlerUrlParts.length) {\r\n return;\r\n }\r\n\r\n // Compare\r\n const matches = handlerUrlParts.every((handlerUrlPart, index) => handlerUrlPart === urlParts[index] || handlerUrlPart.startsWith(':'));\r\n\r\n // If there is a match...\r\n if (matches) {\r\n // Assign the matching handler\r\n matchingHandler.handler = handler;\r\n\r\n // Extract and assign the parameters\r\n matchingHandler.urlParams = fromPairs(compact(handlerUrlParts.map((handlerUrlPart, index) =>\r\n handlerUrlPart.startsWith(':') ? [handlerUrlPart.substring(1), urlParts[index]] : void 0\r\n )));\r\n }\r\n });\r\n\r\n return matchingHandler;\r\n }\r\n\r\n onDelete(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('delete', url, delay);\r\n }\r\n\r\n onGet(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('get', url, delay);\r\n }\r\n\r\n onPatch(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('patch', url, delay);\r\n }\r\n\r\n onPost(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('post', url, delay);\r\n }\r\n\r\n onPut(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('put', url, delay);\r\n }\r\n\r\n onHead(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('head', url, delay);\r\n }\r\n\r\n onJsonp(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('jsonp', url, delay);\r\n }\r\n\r\n onOptions(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('options', url, delay);\r\n }\r\n\r\n private _registerHandler(method: CmatMockApiMethods, url: string, delay?: number): CmatMockApiHandler {\r\n // Create a new instance of CmatMockApiRequestHandler\r\n const cmatMockHttp = new CmatMockApiHandler(url, delay);\r\n\r\n // Store the handler to access it from the interceptor\r\n this._handlers[method].set(url, cmatMockHttp);\r\n\r\n // Return the instance\r\n return cmatMockHttp;\r\n }\r\n}\r\n","import { isUndefined } from 'lodash-es';\r\n\r\nexport class CmatMockApiUtils {\r\n static guid(): string {\r\n /* eslint-disable */\r\n\r\n let d = new Date().getTime();\r\n\r\n // Use high-precision timer if available\r\n if (!isUndefined(performance) && typeof performance.now === 'function') {\r\n d += performance.now();\r\n }\r\n\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n const r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable, of, throwError } from 'rxjs';\r\nimport { delay, switchMap } from 'rxjs/operators';\r\nimport { CMAT_MOCK_API_DEFAULT_DELAY } from './mock-api.constants';\r\nimport { CmatMockApiService } from './mock-api.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatMockApiInterceptor implements HttpInterceptor {\r\n constructor(\r\n @Inject(CMAT_MOCK_API_DEFAULT_DELAY) private _defaultDelay: number,\r\n private _cmatMockApiService: CmatMockApiService\r\n ) {\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n // Try to get the request handler\r\n const {\r\n handler,\r\n urlParams\r\n } = this._cmatMockApiService.findHandler(request.method.toUpperCase(), request.url);\r\n\r\n // Pass through if the request handler does not exist\r\n if (!handler) {\r\n return next.handle(request);\r\n }\r\n\r\n // Set the intercepted request on the handler\r\n handler.request = request;\r\n\r\n // Set the url params on the handler\r\n handler.urlParams = urlParams;\r\n\r\n // Subscribe to the response function observable\r\n return handler.response.pipe(\r\n delay(handler.delay ?? this._defaultDelay ?? 0),\r\n switchMap((response: any) => {\r\n\r\n // If there is no response data,\r\n // throw an error response\r\n if (!response) {\r\n response = new HttpErrorResponse({\r\n error: 'NOT FOUND',\r\n status: 404,\r\n statusText: 'NOT FOUND'\r\n });\r\n\r\n return throwError(() => response);\r\n }\r\n\r\n // Parse the response data\r\n const data = {\r\n status: response[0],\r\n body: response[1]\r\n };\r\n\r\n // If the status code is in between 200 and 300,\r\n // return a success response\r\n if (data.status >= 200 && data.status < 300) {\r\n response = new HttpResponse({\r\n body: data.body,\r\n status: data.status,\r\n statusText: 'OK'\r\n });\r\n\r\n return of(response);\r\n }\r\n\r\n // For other status codes,\r\n // throw an error response\r\n response = new HttpErrorResponse({\r\n error: data.body.error,\r\n status: data.status,\r\n statusText: 'ERROR'\r\n });\r\n\r\n return throwError(() => response);\r\n }));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CmatMockApiService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmat-lib-mock-api.mjs","sources":["../../../projects/cmat/lib/mock-api/mock-api.constants.ts","../../../projects/cmat/lib/mock-api/mock-api.request-handler.ts","../../../projects/cmat/lib/mock-api/mock-api.service.ts","../../../projects/cmat/lib/mock-api/mock-api.utils.ts","../../../projects/cmat/lib/mock-api/mock-api.interceptor.ts","../../../projects/cmat/lib/mock-api/cmat-lib-mock-api.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const CMAT_MOCK_API_DEFAULT_DELAY = new InjectionToken<number>('CMAT_MOCK_API_DEFAULT_DELAY');\r\n","import { HttpRequest } from '@angular/common/http';\r\nimport { Observable, of, throwError } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\nimport { CmatMockApiReplyCallback } from './mock-api.types';\r\n\r\nexport class CmatMockApiHandler {\r\n request!: HttpRequest<any>;\r\n urlParams!: { [key: string]: string };\r\n\r\n private _reply: CmatMockApiReplyCallback = void 0;\r\n private _replyCount = 0;\r\n private _replied = 0;\r\n\r\n constructor(\r\n public url: string,\r\n public delay?: number\r\n ) {\r\n }\r\n\r\n get response(): Observable<any> {\r\n // If the execution limit has been reached, throw an error\r\n if (this._replyCount > 0 && this._replyCount <= this._replied) {\r\n return throwError(() => new Error('Execution limit has been reached!'));\r\n }\r\n\r\n // If the response callback has not been set, throw an error\r\n if (!this._reply) {\r\n return throwError(() => new Error('Response callback function does not exist!'));\r\n }\r\n\r\n // If the request has not been set, throw an error\r\n if (!this.request) {\r\n return throwError(() => new Error('Request does not exist!'));\r\n }\r\n\r\n // Increase the replied count\r\n this._replied++;\r\n\r\n // Execute the reply callback\r\n const replyResult = this._reply({\r\n request: this.request,\r\n urlParams: this.urlParams\r\n });\r\n\r\n // If the result of the reply callback is an observable...\r\n if (replyResult instanceof Observable) {\r\n // Return the result as it is\r\n return replyResult.pipe(take(1));\r\n }\r\n\r\n // Otherwise, return the result as an observable\r\n return of(replyResult).pipe(take(1));\r\n }\r\n\r\n reply(callback: CmatMockApiReplyCallback): void {\r\n // Store the reply\r\n this._reply = callback;\r\n }\r\n\r\n replyCount(count: number): void {\r\n // Store the reply count\r\n this._replyCount = count;\r\n }\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { compact, fromPairs } from 'lodash-es';\r\nimport { CmatMockApiHandler } from './mock-api.request-handler';\r\nimport { CmatMockApiMethods } from './mock-api.types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatMockApiService {\r\n private _handlers: { [key: string]: Map<string, CmatMockApiHandler> } = {\r\n 'get': new Map<string, CmatMockApiHandler>(),\r\n 'post': new Map<string, CmatMockApiHandler>(),\r\n 'patch': new Map<string, CmatMockApiHandler>(),\r\n 'delete': new Map<string, CmatMockApiHandler>(),\r\n 'put': new Map<string, CmatMockApiHandler>(),\r\n 'head': new Map<string, CmatMockApiHandler>(),\r\n 'jsonp': new Map<string, CmatMockApiHandler>(),\r\n 'options': new Map<string, CmatMockApiHandler>()\r\n };\r\n\r\n findHandler(method: string, url: string): { handler: CmatMockApiHandler | void; urlParams: { [key: string]: string } } {\r\n // Prepare the return object\r\n const matchingHandler: { handler: CmatMockApiHandler | void; urlParams: { [key: string]: string } } = {\r\n handler: void 0,\r\n urlParams: {}\r\n };\r\n\r\n // Split the url\r\n const urlParts = url.split('/');\r\n\r\n // Get all related request handlers\r\n const handlers = this._handlers[method.toLowerCase()];\r\n\r\n // Iterate through the handlers\r\n handlers.forEach((handler, handlerUrl) => {\r\n\r\n // Skip if there is already a matching handler\r\n if (matchingHandler.handler) {\r\n return;\r\n }\r\n\r\n // Split the handler url\r\n const handlerUrlParts = handlerUrl.split('/');\r\n\r\n // Skip if the lengths of the urls we are comparing are not the same\r\n if (urlParts.length !== handlerUrlParts.length) {\r\n return;\r\n }\r\n\r\n // Compare\r\n const matches = handlerUrlParts.every((handlerUrlPart, index) => handlerUrlPart === urlParts[index] || handlerUrlPart.startsWith(':'));\r\n\r\n // If there is a match...\r\n if (matches) {\r\n // Assign the matching handler\r\n matchingHandler.handler = handler;\r\n\r\n // Extract and assign the parameters\r\n matchingHandler.urlParams = fromPairs(compact(handlerUrlParts.map((handlerUrlPart, index) =>\r\n handlerUrlPart.startsWith(':') ? [handlerUrlPart.substring(1), urlParts[index]] : void 0\r\n )));\r\n }\r\n });\r\n\r\n return matchingHandler;\r\n }\r\n\r\n onDelete(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('delete', url, delay);\r\n }\r\n\r\n onGet(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('get', url, delay);\r\n }\r\n\r\n onPatch(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('patch', url, delay);\r\n }\r\n\r\n onPost(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('post', url, delay);\r\n }\r\n\r\n onPut(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('put', url, delay);\r\n }\r\n\r\n onHead(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('head', url, delay);\r\n }\r\n\r\n onJsonp(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('jsonp', url, delay);\r\n }\r\n\r\n onOptions(url: string, delay?: number): CmatMockApiHandler {\r\n return this._registerHandler('options', url, delay);\r\n }\r\n\r\n private _registerHandler(method: CmatMockApiMethods, url: string, delay?: number): CmatMockApiHandler {\r\n // Create a new instance of CmatMockApiRequestHandler\r\n const cmatMockHttp = new CmatMockApiHandler(url, delay);\r\n\r\n // Store the handler to access it from the interceptor\r\n this._handlers[method].set(url, cmatMockHttp);\r\n\r\n // Return the instance\r\n return cmatMockHttp;\r\n }\r\n}\r\n","import { isUndefined } from 'lodash-es';\r\n\r\nexport class CmatMockApiUtils {\r\n static guid(): string {\r\n /* eslint-disable */\r\n\r\n let d = new Date().getTime();\r\n\r\n // Use high-precision timer if available\r\n if (!isUndefined(performance) && typeof performance.now === 'function') {\r\n d += performance.now();\r\n }\r\n\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n const r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable, of, throwError } from 'rxjs';\r\nimport { delay, switchMap } from 'rxjs/operators';\r\nimport { CMAT_MOCK_API_DEFAULT_DELAY } from './mock-api.constants';\r\nimport { CmatMockApiService } from './mock-api.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatMockApiInterceptor implements HttpInterceptor {\r\n constructor(\r\n @Inject(CMAT_MOCK_API_DEFAULT_DELAY) private _defaultDelay: number,\r\n private _cmatMockApiService: CmatMockApiService\r\n ) {\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n // Try to get the request handler\r\n const {\r\n handler,\r\n urlParams\r\n } = this._cmatMockApiService.findHandler(request.method.toUpperCase(), request.url);\r\n\r\n // Pass through if the request handler does not exist\r\n if (!handler) {\r\n return next.handle(request);\r\n }\r\n\r\n // Set the intercepted request on the handler\r\n handler.request = request;\r\n\r\n // Set the url params on the handler\r\n handler.urlParams = urlParams;\r\n\r\n // Subscribe to the response function observable\r\n return handler.response.pipe(\r\n delay(handler.delay ?? this._defaultDelay ?? 0),\r\n switchMap((response: any) => {\r\n\r\n // If there is no response data,\r\n // throw an error response\r\n if (!response) {\r\n response = new HttpErrorResponse({\r\n error: 'NOT FOUND',\r\n status: 404,\r\n statusText: 'NOT FOUND'\r\n });\r\n\r\n return throwError(() => response);\r\n }\r\n\r\n // Parse the response data\r\n const data = {\r\n status: response[0],\r\n body: response[1]\r\n };\r\n\r\n // If the status code is in between 200 and 300,\r\n // return a success response\r\n if (data.status >= 200 && data.status < 300) {\r\n response = new HttpResponse({\r\n body: data.body,\r\n status: data.status,\r\n statusText: 'OK'\r\n });\r\n\r\n return of(response);\r\n }\r\n\r\n // For other status codes,\r\n // throw an error response\r\n response = new HttpErrorResponse({\r\n error: data.body.error,\r\n status: data.status,\r\n statusText: 'ERROR'\r\n });\r\n\r\n return throwError(() => response);\r\n }));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CmatMockApiService"],"mappings":"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"}
|
|
@@ -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: "18.0.0", ngImport: i0, type: CmatBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
17
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", 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: "18.0.0", ngImport: i0, type: CmatBytesPipe, decorators: [{
|
|
20
20
|
type: Pipe,
|
|
21
21
|
args: [{
|
|
22
22
|
name: 'cmatBytes',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-pipes-bytes.mjs","sources":["../../../projects/cmat/pipes/bytes/bytes.pipe.ts","../../../projects/cmat/pipes/bytes/cmat-pipes-bytes.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'cmatBytes',\r\n standalone: true\r\n})\r\nexport class CmatBytesPipe implements PipeTransform {\r\n public transform(bytes: number): string {\r\n if (isNaN(parseFloat('' + bytes)) || !isFinite(bytes)) {\r\n return '-';\r\n }\r\n if (bytes <= 0) {\r\n return '0';\r\n }\r\n const units = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\r\n const size = Math.floor(Math.log(bytes) / Math.log(1024));\r\n return (bytes / Math.pow(1024, Math.floor(size))).toFixed(1) + ' ' + units[size];\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAMa,aAAa,CAAA;AACf,IAAA,SAAS,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnD,YAAA,OAAO,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"cmat-pipes-bytes.mjs","sources":["../../../projects/cmat/pipes/bytes/bytes.pipe.ts","../../../projects/cmat/pipes/bytes/cmat-pipes-bytes.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'cmatBytes',\r\n standalone: true\r\n})\r\nexport class CmatBytesPipe implements PipeTransform {\r\n public transform(bytes: number): string {\r\n if (isNaN(parseFloat('' + bytes)) || !isFinite(bytes)) {\r\n return '-';\r\n }\r\n if (bytes <= 0) {\r\n return '0';\r\n }\r\n const units = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\r\n const size = Math.floor(Math.log(bytes) / Math.log(1024));\r\n return (bytes / Math.pow(1024, Math.floor(size))).toFixed(1) + ' ' + units[size];\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAMa,aAAa,CAAA;AACf,IAAA,SAAS,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnD,YAAA,OAAO,GAAG,CAAC;SACd;AACD,QAAA,IAAI,KAAK,IAAI,CAAC,EAAE;AACZ,YAAA,OAAO,GAAG,CAAC;SACd;AACD,QAAA,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,QAAA,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;KACpF;8GAXQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACLD;;AAEG;;;;"}
|
|
@@ -6,10 +6,10 @@ class CmatDateFormatPipe {
|
|
|
6
6
|
transform(value, format) {
|
|
7
7
|
return dayjs(value).format(format);
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatDateFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
10
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: CmatDateFormatPipe, isStandalone: true, name: "cmatDateFormat" }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatDateFormatPipe, decorators: [{
|
|
13
13
|
type: Pipe,
|
|
14
14
|
args: [{
|
|
15
15
|
name: 'cmatDateFormat',
|
|
@@ -10,10 +10,10 @@ class CmatFindByKeyPipe {
|
|
|
10
10
|
// If the value is a string...
|
|
11
11
|
return source.find(sourceItem => sourceItem[key] === value);
|
|
12
12
|
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
14
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatFindByKeyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
14
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: CmatFindByKeyPipe, isStandalone: true, name: "cmatFindByKey", pure: false }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatFindByKeyPipe, decorators: [{
|
|
17
17
|
type: Pipe,
|
|
18
18
|
args: [{
|
|
19
19
|
name: 'cmatFindByKey',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-pipes-find-by-key.mjs","sources":["../../../projects/cmat/pipes/find-by-key/find-by-key.pipe.ts","../../../projects/cmat/pipes/find-by-key/cmat-pipes-find-by-key.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'cmatFindByKey',\r\n pure: false,\r\n standalone: true\r\n})\r\nexport class CmatFindByKeyPipe implements PipeTransform {\r\n transform(value: string | string[], key: string, source: any[]): any {\r\n // If the given value is an array of strings...\r\n if (Array.isArray(value)) {\r\n return value.map(item => source.find(sourceItem => sourceItem[key] === item));\r\n }\r\n\r\n // If the value is a string...\r\n return source.find(sourceItem => sourceItem[key] === value);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,iBAAiB,CAAA;AAC1B,IAAA,SAAS,CAAC,KAAwB,EAAE,GAAW,EAAE,MAAa,EAAA;;AAE1D,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cmat-pipes-find-by-key.mjs","sources":["../../../projects/cmat/pipes/find-by-key/find-by-key.pipe.ts","../../../projects/cmat/pipes/find-by-key/cmat-pipes-find-by-key.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'cmatFindByKey',\r\n pure: false,\r\n standalone: true\r\n})\r\nexport class CmatFindByKeyPipe implements PipeTransform {\r\n transform(value: string | string[], key: string, source: any[]): any {\r\n // If the given value is an array of strings...\r\n if (Array.isArray(value)) {\r\n return value.map(item => source.find(sourceItem => sourceItem[key] === item));\r\n }\r\n\r\n // If the value is a string...\r\n return source.find(sourceItem => sourceItem[key] === value);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,iBAAiB,CAAA;AAC1B,IAAA,SAAS,CAAC,KAAwB,EAAE,GAAW,EAAE,MAAa,EAAA;;AAE1D,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;SACjF;;AAGD,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC;KAC/D;8GATQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,IAAI,EAAE,KAAK;AACX,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACND;;AAEG;;;;"}
|
|
@@ -17,10 +17,10 @@ class CmatGroupByPipe {
|
|
|
17
17
|
}, {});
|
|
18
18
|
return Object.keys(groupedObj).map(key => ({ key, value: groupedObj[key] }));
|
|
19
19
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
21
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatGroupByPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
21
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: CmatGroupByPipe, isStandalone: true, name: "cmatGroupBy" }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatGroupByPipe, decorators: [{
|
|
24
24
|
type: Pipe,
|
|
25
25
|
args: [{
|
|
26
26
|
name: 'cmatGroupBy',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-pipes-group-by.mjs","sources":["../../../projects/cmat/pipes/group-by/group-by.pipe.ts","../../../projects/cmat/pipes/group-by/cmat-pipes-group-by.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'cmatGroupBy',\r\n standalone: true\r\n})\r\nexport class CmatGroupByPipe implements PipeTransform {\r\n\r\n transform(value: Array<any>, field: string): Array<any> {\r\n\r\n if (!value) {\r\n return value;\r\n }\r\n\r\n const groupedObj = value.reduce((prev, cur) => {\r\n if (!prev[cur[field]]) {\r\n prev[cur[field]] = [cur];\r\n } else {\r\n prev[cur[field]].push(cur);\r\n }\r\n\r\n return prev;\r\n }, {});\r\n\r\n return Object.keys(groupedObj).map(key => ({ key, value: groupedObj[key] }));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAMa,eAAe,CAAA;IAExB,SAAS,CAAC,KAAiB,EAAE,KAAa,EAAA;QAEtC,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"cmat-pipes-group-by.mjs","sources":["../../../projects/cmat/pipes/group-by/group-by.pipe.ts","../../../projects/cmat/pipes/group-by/cmat-pipes-group-by.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'cmatGroupBy',\r\n standalone: true\r\n})\r\nexport class CmatGroupByPipe implements PipeTransform {\r\n\r\n transform(value: Array<any>, field: string): Array<any> {\r\n\r\n if (!value) {\r\n return value;\r\n }\r\n\r\n const groupedObj = value.reduce((prev, cur) => {\r\n if (!prev[cur[field]]) {\r\n prev[cur[field]] = [cur];\r\n } else {\r\n prev[cur[field]].push(cur);\r\n }\r\n\r\n return prev;\r\n }, {});\r\n\r\n return Object.keys(groupedObj).map(key => ({ key, value: groupedObj[key] }));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAMa,eAAe,CAAA;IAExB,SAAS,CAAC,KAAiB,EAAE,KAAa,EAAA;QAEtC,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,KAAI;YAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBACnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC9B;AAED,YAAA,OAAO,IAAI,CAAC;SACf,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KAChF;8GAnBQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACLD;;AAEG;;;;"}
|
|
@@ -14,10 +14,10 @@ class CmatKeysPipe {
|
|
|
14
14
|
}
|
|
15
15
|
return keys;
|
|
16
16
|
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
18
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatKeysPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
18
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: CmatKeysPipe, isStandalone: true, name: "cmatKeys" }); }
|
|
19
19
|
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatKeysPipe, decorators: [{
|
|
21
21
|
type: Pipe,
|
|
22
22
|
args: [{
|
|
23
23
|
name: 'cmatKeys',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-pipes-keys.mjs","sources":["../../../projects/cmat/pipes/keys/keys.pipe.ts","../../../projects/cmat/pipes/keys/cmat-pipes-keys.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'cmatKeys',\r\n standalone: true\r\n})\r\nexport class CmatKeysPipe implements PipeTransform {\r\n transform(value: any): any {\r\n const keys: any[] = [];\r\n\r\n for (const key in value) {\r\n if (Object.prototype.hasOwnProperty.call(value, key)) {\r\n keys.push({\r\n key: key,\r\n value: value[key]\r\n });\r\n }\r\n }\r\n\r\n return keys;\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAMa,YAAY,CAAA;AACrB,IAAA,SAAS,CAAC,KAAU,EAAA;QAChB,MAAM,IAAI,GAAU,EAAE,CAAC;AAEvB,QAAA,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AACrB,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;gBAClD,IAAI,CAAC,IAAI,CAAC;AACN,oBAAA,GAAG,EAAE,GAAG;AACR,oBAAA,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;AACpB,iBAAA,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cmat-pipes-keys.mjs","sources":["../../../projects/cmat/pipes/keys/keys.pipe.ts","../../../projects/cmat/pipes/keys/cmat-pipes-keys.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'cmatKeys',\r\n standalone: true\r\n})\r\nexport class CmatKeysPipe implements PipeTransform {\r\n transform(value: any): any {\r\n const keys: any[] = [];\r\n\r\n for (const key in value) {\r\n if (Object.prototype.hasOwnProperty.call(value, key)) {\r\n keys.push({\r\n key: key,\r\n value: value[key]\r\n });\r\n }\r\n }\r\n\r\n return keys;\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAMa,YAAY,CAAA;AACrB,IAAA,SAAS,CAAC,KAAU,EAAA;QAChB,MAAM,IAAI,GAAU,EAAE,CAAC;AAEvB,QAAA,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AACrB,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;gBAClD,IAAI,CAAC,IAAI,CAAC;AACN,oBAAA,GAAG,EAAE,GAAG;AACR,oBAAA,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;AACpB,iBAAA,CAAC,CAAC;aACN;SACJ;AAED,QAAA,OAAO,IAAI,CAAC;KACf;8GAdQ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACLD;;AAEG;;;;"}
|
|
@@ -34,10 +34,10 @@ class CmatSecurePipe {
|
|
|
34
34
|
})
|
|
35
35
|
.pipe(map((val) => this._sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(val))));
|
|
36
36
|
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
38
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatSecurePipe, deps: [{ token: i1.HttpClient }, { token: i2.DomSanitizer }, { token: i3.CmatUrlStateConfigService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
38
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: CmatSecurePipe, isStandalone: true, name: "cmatSecure" }); }
|
|
39
39
|
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatSecurePipe, decorators: [{
|
|
41
41
|
type: Pipe,
|
|
42
42
|
args: [{
|
|
43
43
|
name: 'cmatSecure',
|
|
@@ -5,10 +5,10 @@ class CmatUppercasePipe {
|
|
|
5
5
|
transform(value) {
|
|
6
6
|
return value.toUpperCase();
|
|
7
7
|
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatUppercasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
9
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: CmatUppercasePipe, isStandalone: true, name: "cmatUppercase" }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatUppercasePipe, decorators: [{
|
|
12
12
|
type: Pipe,
|
|
13
13
|
args: [{
|
|
14
14
|
name: 'cmatUppercase',
|
|
@@ -189,10 +189,10 @@ class CmatAlertService {
|
|
|
189
189
|
this._messages.next({ severity: severity, summary: summary, detail: detail, isPostionBottom: isPostionBottom });
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
193
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
192
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatAlertService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
193
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatAlertService, providedIn: 'root' }); }
|
|
194
194
|
}
|
|
195
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatAlertService, decorators: [{
|
|
196
196
|
type: Injectable,
|
|
197
197
|
args: [{
|
|
198
198
|
providedIn: 'root'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-services-alert.mjs","sources":["../../../projects/cmat/services/alert/alert.dialog.ts","../../../projects/cmat/services/alert/alert.message.ts","../../../projects/cmat/services/alert/enum.ts","../../../projects/cmat/services/alert/alert.service.ts","../../../projects/cmat/services/alert/cmat-services-alert.ts"],"sourcesContent":["import { CmatDialogType } from './enum';\r\n\r\nexport class CmatAlertDialog {\r\n constructor(public message: string, public type: CmatDialogType, public okCallback?: (val?: any) => any, public cancelCallback?: () => any,\r\n public defaultValue?: string, public okLabel?: string, public cancelLabel?: string) {\r\n\r\n }\r\n}\r\n","import { CmatMessageSeverity } from './enum';\r\n\r\nexport class CmatAlertMessage {\r\n constructor(public severity: CmatMessageSeverity, public summary: string, public detail: string, public isPostionBottom: boolean = false) { }\r\n}\r\n","export enum CmatDialogType {\r\n alert,\r\n confirm,\r\n prompt\r\n}\r\n\r\nexport enum CmatMessageSeverity {\r\n info = 'info',\r\n success = 'success',\r\n error = 'error',\r\n warning = 'warning',\r\n wait = 'wait'\r\n}\r\n","import { HttpResponseBase } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { CmatAlertDialog } from './alert.dialog';\r\nimport { CmatAlertMessage } from './alert.message';\r\nimport { CmatDialogType, CmatMessageSeverity } from './enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatAlertService {\r\n private _messages = new Subject<CmatAlertMessage>();\r\n private _stickyMessages = new Subject<CmatAlertMessage | void>();\r\n private _dialogs = new Subject<CmatAlertDialog>();\r\n\r\n private _isLoading = new Subject<boolean>();\r\n private _loadingMessageId: any;\r\n\r\n get dialogEvent$(): Observable<CmatAlertDialog> {\r\n return this._dialogs.asObservable();\r\n }\r\n\r\n\r\n get messageEvent$(): Observable<CmatAlertMessage> {\r\n return this._messages.asObservable();\r\n }\r\n\r\n get stickyMessageEvent$(): Observable<CmatAlertMessage | void> {\r\n return this._stickyMessages.asObservable();\r\n }\r\n\r\n get isLoadingInProgress$(): Observable<boolean> {\r\n return this._isLoading.asObservable();\r\n }\r\n\r\n showDialog(message: string, type?: CmatDialogType, okCallback?: (val?: any) => any, cancelCallback?: () => any,\r\n okLabel?: string, cancelLabel?: string, defaultValue?: string): void {\r\n\r\n if (!type) {\r\n type = CmatDialogType.alert;\r\n }\r\n\r\n this._dialogs.next({\r\n message: message,\r\n type: type,\r\n okCallback: okCallback,\r\n cancelCallback: cancelCallback,\r\n okLabel: okLabel,\r\n cancelLabel: cancelLabel,\r\n defaultValue: defaultValue\r\n });\r\n }\r\n\r\n showMessage(summary: string): void;\r\n showMessage(detail: string | string[] | HttpResponseBase, params: string, severity: CmatMessageSeverity): void;\r\n showMessage(data: any, separatorOrDetail?: string, severity?: CmatMessageSeverity): void {\r\n if (!severity) {\r\n severity = CmatMessageSeverity.info;\r\n }\r\n\r\n if (data instanceof HttpResponseBase) {\r\n data = CmatUtilsService.getHttpResponseMessage(data);\r\n separatorOrDetail = CmatUtilsService.captionAndMessageSeparator;\r\n }\r\n\r\n if (data instanceof Array) {\r\n for (const message of data) {\r\n const msgObject = CmatUtilsService.splitInTwo(message, separatorOrDetail);\r\n\r\n this._showMessageHelper(msgObject.firstPart, msgObject.secondPart || '', severity, false);\r\n }\r\n } else {\r\n this._showMessageHelper(data, separatorOrDetail || '', severity, false);\r\n }\r\n }\r\n\r\n showBottomMessage(summary: string): void;\r\n showBottomMessage(summary: string, detail: string, severity: CmatMessageSeverity): void;\r\n showBottomMessage(data: any, separatorOrDetail?: string, severity?: CmatMessageSeverity): void {\r\n if (!severity) {\r\n severity = CmatMessageSeverity.info;\r\n }\r\n\r\n if (data instanceof HttpResponseBase) {\r\n data = CmatUtilsService.getHttpResponseMessage(data);\r\n separatorOrDetail = CmatUtilsService.captionAndMessageSeparator;\r\n }\r\n\r\n if (data instanceof Array) {\r\n for (const message of data) {\r\n const msgObject = CmatUtilsService.splitInTwo(message, separatorOrDetail);\r\n\r\n this._showMessageHelper(msgObject.firstPart, msgObject.secondPart || '', severity, true, true);\r\n }\r\n } else {\r\n this._showMessageHelper(data, separatorOrDetail || '', severity, true, true);\r\n }\r\n }\r\n\r\n\r\n showStickyMessage(summary: string): void;\r\n showStickyMessage(summary: string, detail: string, severity: CmatMessageSeverity, error?: any): void;\r\n showStickyMessage(detail: string[] | HttpResponseBase, params: string, severity: CmatMessageSeverity): void;\r\n showStickyMessage(data: string | string[] | HttpResponseBase, separatorOrDetail?: string, severity?: CmatMessageSeverity, error?: any): void {\r\n\r\n if (!severity) {\r\n severity = CmatMessageSeverity.info;\r\n }\r\n\r\n if (data instanceof HttpResponseBase) {\r\n data = CmatUtilsService.getHttpResponseMessage(data);\r\n separatorOrDetail = CmatUtilsService.captionAndMessageSeparator;\r\n }\r\n\r\n\r\n if (data instanceof Array) {\r\n for (const message of data) {\r\n const msgObject = CmatUtilsService.splitInTwo(message, separatorOrDetail);\r\n\r\n this._showMessageHelper(msgObject.firstPart, msgObject.secondPart || '', severity, true);\r\n }\r\n } else {\r\n\r\n if (error) {\r\n\r\n const msg = `Message.Severity: \"${CmatMessageSeverity[severity]}\", Message.Summary: \"${data}\", \r\n Message.Detail: \"${separatorOrDetail}\", Message.Error: \"${CmatUtilsService.safeStringify(error)}\"`;\r\n\r\n switch (severity) {\r\n case CmatMessageSeverity.info:\r\n this.logInfo(msg);\r\n break;\r\n case CmatMessageSeverity.success:\r\n this.logMessage(msg);\r\n break;\r\n case CmatMessageSeverity.error:\r\n this.logError(msg);\r\n break;\r\n case CmatMessageSeverity.warning:\r\n this.logWarning(msg);\r\n break;\r\n case CmatMessageSeverity.wait:\r\n this.logTrace(msg);\r\n break;\r\n }\r\n }\r\n\r\n this._showMessageHelper((data) as any, separatorOrDetail || '', severity, true);\r\n }\r\n }\r\n\r\n startLoadingMessage(message = '载入中...', caption = ''): void {\r\n this._isLoading.next(true);\r\n clearTimeout(this._loadingMessageId);\r\n\r\n this._loadingMessageId = setTimeout(() => {\r\n this.showStickyMessage(caption, message, CmatMessageSeverity.wait);\r\n }, 1000);\r\n }\r\n\r\n stopLoadingMessage(): void {\r\n this._isLoading.next(false);\r\n clearTimeout(this._loadingMessageId);\r\n this.resetStickyMessage();\r\n }\r\n\r\n\r\n logDebug(msg: any): void {\r\n console.debug(msg);\r\n }\r\n\r\n logError(msg: any): void {\r\n console.error(msg);\r\n }\r\n\r\n logInfo(msg: any): void {\r\n console.info(msg);\r\n }\r\n\r\n logMessage(msg: any): void {\r\n console.log(msg);\r\n }\r\n\r\n logTrace(msg: any): void {\r\n console.trace(msg);\r\n }\r\n\r\n logWarning(msg: any): void {\r\n console.warn(msg);\r\n }\r\n\r\n resetStickyMessage(): void {\r\n this._stickyMessages.next(void 0);\r\n }\r\n\r\n private _showMessageHelper(summary: string, detail: string, severity: CmatMessageSeverity, isSticky: boolean, isPostionBottom: boolean = false): void {\r\n\r\n if (isSticky) {\r\n this._stickyMessages.next({ severity: severity, summary: summary, detail: detail, isPostionBottom: isPostionBottom });\r\n } else {\r\n this._messages.next({ severity: severity, summary: summary, detail: detail, isPostionBottom: isPostionBottom });\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-alert.mjs","sources":["../../../projects/cmat/services/alert/alert.dialog.ts","../../../projects/cmat/services/alert/alert.message.ts","../../../projects/cmat/services/alert/enum.ts","../../../projects/cmat/services/alert/alert.service.ts","../../../projects/cmat/services/alert/cmat-services-alert.ts"],"sourcesContent":["import { CmatDialogType } from './enum';\r\n\r\nexport class CmatAlertDialog {\r\n constructor(public message: string, public type: CmatDialogType, public okCallback?: (val?: any) => any, public cancelCallback?: () => any,\r\n public defaultValue?: string, public okLabel?: string, public cancelLabel?: string) {\r\n\r\n }\r\n}\r\n","import { CmatMessageSeverity } from './enum';\r\n\r\nexport class CmatAlertMessage {\r\n constructor(public severity: CmatMessageSeverity, public summary: string, public detail: string, public isPostionBottom: boolean = false) { }\r\n}\r\n","export enum CmatDialogType {\r\n alert,\r\n confirm,\r\n prompt\r\n}\r\n\r\nexport enum CmatMessageSeverity {\r\n info = 'info',\r\n success = 'success',\r\n error = 'error',\r\n warning = 'warning',\r\n wait = 'wait'\r\n}\r\n","import { HttpResponseBase } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { CmatAlertDialog } from './alert.dialog';\r\nimport { CmatAlertMessage } from './alert.message';\r\nimport { CmatDialogType, CmatMessageSeverity } from './enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatAlertService {\r\n private _messages = new Subject<CmatAlertMessage>();\r\n private _stickyMessages = new Subject<CmatAlertMessage | void>();\r\n private _dialogs = new Subject<CmatAlertDialog>();\r\n\r\n private _isLoading = new Subject<boolean>();\r\n private _loadingMessageId: any;\r\n\r\n get dialogEvent$(): Observable<CmatAlertDialog> {\r\n return this._dialogs.asObservable();\r\n }\r\n\r\n\r\n get messageEvent$(): Observable<CmatAlertMessage> {\r\n return this._messages.asObservable();\r\n }\r\n\r\n get stickyMessageEvent$(): Observable<CmatAlertMessage | void> {\r\n return this._stickyMessages.asObservable();\r\n }\r\n\r\n get isLoadingInProgress$(): Observable<boolean> {\r\n return this._isLoading.asObservable();\r\n }\r\n\r\n showDialog(message: string, type?: CmatDialogType, okCallback?: (val?: any) => any, cancelCallback?: () => any,\r\n okLabel?: string, cancelLabel?: string, defaultValue?: string): void {\r\n\r\n if (!type) {\r\n type = CmatDialogType.alert;\r\n }\r\n\r\n this._dialogs.next({\r\n message: message,\r\n type: type,\r\n okCallback: okCallback,\r\n cancelCallback: cancelCallback,\r\n okLabel: okLabel,\r\n cancelLabel: cancelLabel,\r\n defaultValue: defaultValue\r\n });\r\n }\r\n\r\n showMessage(summary: string): void;\r\n showMessage(detail: string | string[] | HttpResponseBase, params: string, severity: CmatMessageSeverity): void;\r\n showMessage(data: any, separatorOrDetail?: string, severity?: CmatMessageSeverity): void {\r\n if (!severity) {\r\n severity = CmatMessageSeverity.info;\r\n }\r\n\r\n if (data instanceof HttpResponseBase) {\r\n data = CmatUtilsService.getHttpResponseMessage(data);\r\n separatorOrDetail = CmatUtilsService.captionAndMessageSeparator;\r\n }\r\n\r\n if (data instanceof Array) {\r\n for (const message of data) {\r\n const msgObject = CmatUtilsService.splitInTwo(message, separatorOrDetail);\r\n\r\n this._showMessageHelper(msgObject.firstPart, msgObject.secondPart || '', severity, false);\r\n }\r\n } else {\r\n this._showMessageHelper(data, separatorOrDetail || '', severity, false);\r\n }\r\n }\r\n\r\n showBottomMessage(summary: string): void;\r\n showBottomMessage(summary: string, detail: string, severity: CmatMessageSeverity): void;\r\n showBottomMessage(data: any, separatorOrDetail?: string, severity?: CmatMessageSeverity): void {\r\n if (!severity) {\r\n severity = CmatMessageSeverity.info;\r\n }\r\n\r\n if (data instanceof HttpResponseBase) {\r\n data = CmatUtilsService.getHttpResponseMessage(data);\r\n separatorOrDetail = CmatUtilsService.captionAndMessageSeparator;\r\n }\r\n\r\n if (data instanceof Array) {\r\n for (const message of data) {\r\n const msgObject = CmatUtilsService.splitInTwo(message, separatorOrDetail);\r\n\r\n this._showMessageHelper(msgObject.firstPart, msgObject.secondPart || '', severity, true, true);\r\n }\r\n } else {\r\n this._showMessageHelper(data, separatorOrDetail || '', severity, true, true);\r\n }\r\n }\r\n\r\n\r\n showStickyMessage(summary: string): void;\r\n showStickyMessage(summary: string, detail: string, severity: CmatMessageSeverity, error?: any): void;\r\n showStickyMessage(detail: string[] | HttpResponseBase, params: string, severity: CmatMessageSeverity): void;\r\n showStickyMessage(data: string | string[] | HttpResponseBase, separatorOrDetail?: string, severity?: CmatMessageSeverity, error?: any): void {\r\n\r\n if (!severity) {\r\n severity = CmatMessageSeverity.info;\r\n }\r\n\r\n if (data instanceof HttpResponseBase) {\r\n data = CmatUtilsService.getHttpResponseMessage(data);\r\n separatorOrDetail = CmatUtilsService.captionAndMessageSeparator;\r\n }\r\n\r\n\r\n if (data instanceof Array) {\r\n for (const message of data) {\r\n const msgObject = CmatUtilsService.splitInTwo(message, separatorOrDetail);\r\n\r\n this._showMessageHelper(msgObject.firstPart, msgObject.secondPart || '', severity, true);\r\n }\r\n } else {\r\n\r\n if (error) {\r\n\r\n const msg = `Message.Severity: \"${CmatMessageSeverity[severity]}\", Message.Summary: \"${data}\", \r\n Message.Detail: \"${separatorOrDetail}\", Message.Error: \"${CmatUtilsService.safeStringify(error)}\"`;\r\n\r\n switch (severity) {\r\n case CmatMessageSeverity.info:\r\n this.logInfo(msg);\r\n break;\r\n case CmatMessageSeverity.success:\r\n this.logMessage(msg);\r\n break;\r\n case CmatMessageSeverity.error:\r\n this.logError(msg);\r\n break;\r\n case CmatMessageSeverity.warning:\r\n this.logWarning(msg);\r\n break;\r\n case CmatMessageSeverity.wait:\r\n this.logTrace(msg);\r\n break;\r\n }\r\n }\r\n\r\n this._showMessageHelper((data) as any, separatorOrDetail || '', severity, true);\r\n }\r\n }\r\n\r\n startLoadingMessage(message = '载入中...', caption = ''): void {\r\n this._isLoading.next(true);\r\n clearTimeout(this._loadingMessageId);\r\n\r\n this._loadingMessageId = setTimeout(() => {\r\n this.showStickyMessage(caption, message, CmatMessageSeverity.wait);\r\n }, 1000);\r\n }\r\n\r\n stopLoadingMessage(): void {\r\n this._isLoading.next(false);\r\n clearTimeout(this._loadingMessageId);\r\n this.resetStickyMessage();\r\n }\r\n\r\n\r\n logDebug(msg: any): void {\r\n console.debug(msg);\r\n }\r\n\r\n logError(msg: any): void {\r\n console.error(msg);\r\n }\r\n\r\n logInfo(msg: any): void {\r\n console.info(msg);\r\n }\r\n\r\n logMessage(msg: any): void {\r\n console.log(msg);\r\n }\r\n\r\n logTrace(msg: any): void {\r\n console.trace(msg);\r\n }\r\n\r\n logWarning(msg: any): void {\r\n console.warn(msg);\r\n }\r\n\r\n resetStickyMessage(): void {\r\n this._stickyMessages.next(void 0);\r\n }\r\n\r\n private _showMessageHelper(summary: string, detail: string, severity: CmatMessageSeverity, isSticky: boolean, isPostionBottom: boolean = false): void {\r\n\r\n if (isSticky) {\r\n this._stickyMessages.next({ severity: severity, summary: summary, detail: detail, isPostionBottom: isPostionBottom });\r\n } else {\r\n this._messages.next({ severity: severity, summary: summary, detail: detail, isPostionBottom: isPostionBottom });\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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"}
|