cmat 0.0.28 → 0.0.30
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/animations/index.d.ts +5 -5
- package/components/adapter/index.d.ts +187 -5
- package/components/breadcrumb/index.d.ts +243 -3
- package/components/card/index.d.ts +20 -5
- package/components/carousel/index.d.ts +175 -5
- package/components/cascade/index.d.ts +101 -5
- package/components/chip-input/index.d.ts +65 -5
- package/components/custom-formly/index.d.ts +669 -5
- package/components/date-range/index.d.ts +139 -5
- package/components/drawer/index.d.ts +101 -5
- package/components/fullscreen/index.d.ts +13 -5
- package/components/highlight/index.d.ts +28 -5
- package/components/image-viewer/index.d.ts +78 -5
- package/components/json-editor/index.d.ts +27 -5
- package/components/knob-input/index.d.ts +98 -5
- package/components/masonry/index.d.ts +16 -5
- package/components/material-color-picker/index.d.ts +46 -5
- package/components/material-datetimepicker/index.d.ts +752 -3
- package/components/navigation/index.d.ts +314 -5
- package/components/opt-input/index.d.ts +87 -5
- package/components/org-chart/index.d.ts +38 -5
- package/components/pagination/index.d.ts +119 -5
- package/components/password-strength/index.d.ts +92 -5
- package/components/popover/index.d.ts +289 -3
- package/components/progress-bar/index.d.ts +19 -5
- package/components/rating/index.d.ts +61 -5
- package/components/select-search/index.d.ts +108 -5
- package/components/select-table/index.d.ts +120 -5
- package/components/select-tree/index.d.ts +120 -5
- package/components/speed-dial/index.d.ts +66 -5
- package/components/timeline/index.d.ts +56 -5
- package/components/toast/index.d.ts +84 -5
- package/components/transfer-picker/index.d.ts +188 -3
- package/components/treetable/index.d.ts +43 -5
- package/components/upload/index.d.ts +111 -5
- package/components/x6-angular-shape/index.d.ts +43 -5
- package/directives/animate-on-scroll/index.d.ts +30 -5
- package/directives/arrow-cursor/index.d.ts +32 -5
- package/directives/autofocus/index.d.ts +11 -5
- package/directives/data-exporter/index.d.ts +41 -5
- package/directives/debounce/index.d.ts +32 -5
- package/directives/digit-only/index.d.ts +54 -5
- package/directives/equal-validator/index.d.ts +14 -5
- package/fesm2022/cmat-components-adapter.mjs +22 -39
- package/fesm2022/cmat-components-adapter.mjs.map +1 -1
- package/fesm2022/cmat-components-breadcrumb.mjs +19 -21
- package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/cmat-components-card.mjs +3 -3
- package/fesm2022/cmat-components-carousel.mjs +116 -133
- package/fesm2022/cmat-components-carousel.mjs.map +1 -1
- package/fesm2022/cmat-components-cascade.mjs +61 -73
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +14 -18
- package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
- package/fesm2022/cmat-components-custom-formly.mjs +176 -178
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
- package/fesm2022/cmat-components-date-range.mjs +18 -18
- package/fesm2022/cmat-components-date-range.mjs.map +1 -1
- package/fesm2022/cmat-components-drawer.mjs +17 -19
- package/fesm2022/cmat-components-drawer.mjs.map +1 -1
- package/fesm2022/cmat-components-fullscreen.mjs +8 -11
- package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
- package/fesm2022/cmat-components-highlight.mjs +14 -14
- package/fesm2022/cmat-components-highlight.mjs.map +1 -1
- package/fesm2022/cmat-components-image-viewer.mjs +10 -13
- package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
- package/fesm2022/cmat-components-json-editor.mjs +7 -7
- package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
- package/fesm2022/cmat-components-knob-input.mjs +13 -20
- package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
- package/fesm2022/cmat-components-masonry.mjs +3 -3
- package/fesm2022/cmat-components-material-color-picker.mjs +8 -7
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-material-datetimepicker.mjs +168 -220
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +115 -119
- package/fesm2022/cmat-components-navigation.mjs.map +1 -1
- package/fesm2022/cmat-components-opt-input.mjs +15 -22
- package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
- package/fesm2022/cmat-components-org-chart.mjs +9 -9
- package/fesm2022/cmat-components-org-chart.mjs.map +1 -1
- package/fesm2022/cmat-components-pagination.mjs +34 -40
- package/fesm2022/cmat-components-pagination.mjs.map +1 -1
- package/fesm2022/cmat-components-password-strength.mjs +15 -15
- package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
- package/fesm2022/cmat-components-popover.mjs +27 -32
- package/fesm2022/cmat-components-popover.mjs.map +1 -1
- package/fesm2022/cmat-components-progress-bar.mjs +10 -10
- package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
- package/fesm2022/cmat-components-rating.mjs +10 -14
- package/fesm2022/cmat-components-rating.mjs.map +1 -1
- package/fesm2022/cmat-components-select-search.mjs +30 -53
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-table.mjs +28 -33
- package/fesm2022/cmat-components-select-table.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +55 -61
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
- package/fesm2022/cmat-components-speed-dial.mjs +16 -19
- package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
- package/fesm2022/cmat-components-timeline.mjs +18 -20
- package/fesm2022/cmat-components-timeline.mjs.map +1 -1
- package/fesm2022/cmat-components-toast.mjs +16 -16
- package/fesm2022/cmat-components-toast.mjs.map +1 -1
- package/fesm2022/cmat-components-transfer-picker.mjs +49 -49
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-treetable.mjs +11 -12
- package/fesm2022/cmat-components-treetable.mjs.map +1 -1
- package/fesm2022/cmat-components-upload.mjs +33 -34
- package/fesm2022/cmat-components-upload.mjs.map +1 -1
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +13 -14
- package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
- package/fesm2022/cmat-directives-arrow-cursor.mjs +11 -15
- package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -1
- package/fesm2022/cmat-directives-autofocus.mjs +8 -9
- package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
- package/fesm2022/cmat-directives-data-exporter.mjs +29 -31
- package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
- package/fesm2022/cmat-directives-debounce.mjs +11 -13
- package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
- package/fesm2022/cmat-directives-digit-only.mjs +17 -17
- package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
- package/fesm2022/cmat-directives-equal-validator.mjs +9 -16
- package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
- package/fesm2022/cmat-lib-mock-api.mjs +11 -14
- package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
- package/fesm2022/cmat-pipes-bytes.mjs +4 -5
- package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
- package/fesm2022/cmat-pipes-date-format.mjs +4 -5
- package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
- package/fesm2022/cmat-pipes-find-by-key.mjs +4 -5
- package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
- package/fesm2022/cmat-pipes-group-by.mjs +4 -5
- package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
- package/fesm2022/cmat-pipes-keys.mjs +4 -5
- package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
- package/fesm2022/cmat-pipes-secure.mjs +13 -14
- package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
- package/fesm2022/cmat-pipes-uppercase.mjs +4 -5
- package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
- package/fesm2022/cmat-services-alert.mjs +7 -16
- package/fesm2022/cmat-services-alert.mjs.map +1 -1
- package/fesm2022/cmat-services-config.mjs +10 -12
- package/fesm2022/cmat-services-config.mjs.map +1 -1
- package/fesm2022/cmat-services-confirmation.mjs +17 -20
- package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
- package/fesm2022/cmat-services-data.mjs +10 -11
- package/fesm2022/cmat-services-data.mjs.map +1 -1
- package/fesm2022/cmat-services-export-as.mjs +3 -3
- package/fesm2022/cmat-services-loading.mjs +14 -14
- 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 +10 -10
- package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
- package/fesm2022/cmat-services-platform.mjs +8 -8
- package/fesm2022/cmat-services-platform.mjs.map +1 -1
- package/fesm2022/cmat-services-splash-screen.mjs +9 -14
- package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
- package/fesm2022/cmat-services-title.mjs +10 -11
- package/fesm2022/cmat-services-title.mjs.map +1 -1
- package/fesm2022/cmat-services-translation.mjs +8 -8
- package/fesm2022/cmat-services-translation.mjs.map +1 -1
- package/fesm2022/cmat-services-utils.mjs +5 -5
- package/fesm2022/cmat-services-utils.mjs.map +1 -1
- package/index.d.ts +2 -5
- package/lib/mock-api/index.d.ts +60 -5
- package/package.json +71 -71
- package/pipes/bytes/index.d.ts +10 -5
- package/pipes/date-format/index.d.ts +10 -5
- package/pipes/find-by-key/index.d.ts +10 -5
- package/pipes/group-by/index.d.ts +10 -5
- package/pipes/keys/index.d.ts +10 -5
- package/pipes/secure/index.d.ts +19 -5
- package/pipes/uppercase/index.d.ts +10 -5
- package/services/alert/index.d.ts +69 -5
- package/services/config/index.d.ts +30 -5
- package/services/confirmation/index.d.ts +42 -5
- package/services/data/index.d.ts +21 -5
- package/services/export-as/index.d.ts +55 -5
- package/services/loading/index.d.ts +35 -5
- package/services/local-storage/index.d.ts +11 -5
- package/services/media-watcher/index.d.ts +22 -5
- package/services/platform/index.d.ts +11 -5
- package/services/splash-screen/index.d.ts +16 -5
- package/services/title/index.d.ts +14 -5
- package/services/translation/index.d.ts +22 -5
- package/services/utils/index.d.ts +63 -5
- package/styles/themes.scss +2 -1
- package/validators/index.d.ts +8 -5
- package/version/index.d.ts +11 -5
- package/animations/defaults.d.ts +0 -11
- package/animations/dropdown.d.ts +0 -2
- package/animations/expand-collapse.d.ts +0 -2
- package/animations/fade.d.ts +0 -11
- package/animations/public-api.d.ts +0 -1
- package/animations/shake.d.ts +0 -2
- package/animations/slide.d.ts +0 -9
- package/animations/transform.d.ts +0 -2
- package/animations/zoom.d.ts +0 -3
- package/components/adapter/datetime-adapter.d.ts +0 -45
- package/components/adapter/datetime-formats.d.ts +0 -22
- package/components/adapter/dayjs-date-adapter.d.ts +0 -63
- package/components/adapter/dayjs-date-formats.d.ts +0 -2
- package/components/adapter/dayjs-datetime-adapter.d.ts +0 -22
- package/components/adapter/dayjs-datetime-formats.d.ts +0 -2
- package/components/adapter/native-datetime-adapter.d.ts +0 -31
- package/components/adapter/native-datetime-formats.d.ts +0 -2
- package/components/adapter/public-api.d.ts +0 -8
- package/components/breadcrumb/breadcrumb-item.directive.d.ts +0 -10
- package/components/breadcrumb/breadcrumb.component.d.ts +0 -55
- package/components/breadcrumb/breadcrumb.service.d.ts +0 -126
- package/components/breadcrumb/public-api.d.ts +0 -5
- package/components/breadcrumb/types/breadcrumb.config.d.ts +0 -33
- package/components/breadcrumb/types/breadcrumb.d.ts +0 -23
- package/components/card/card.component.d.ts +0 -15
- package/components/card/card.types.d.ts +0 -1
- package/components/card/public-api.d.ts +0 -2
- package/components/carousel/carousel.component.d.ts +0 -136
- package/components/carousel/carousel.interface.d.ts +0 -38
- package/components/carousel/public-api.d.ts +0 -2
- package/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.d.ts +0 -13
- package/components/cascade/cascade-list/cascade-list.component.d.ts +0 -79
- package/components/cascade/cascade-menu/cascade-menu.component.d.ts +0 -8
- package/components/cascade/options.interface.d.ts +0 -8
- package/components/cascade/public-api.d.ts +0 -3
- package/components/chip-input/chip-input.component.d.ts +0 -62
- package/components/chip-input/public-api.d.ts +0 -1
- package/components/custom-formly/extension/addons.extension.d.ts +0 -2
- package/components/custom-formly/public-api.d.ts +0 -30
- package/components/custom-formly/types/button/button.component.d.ts +0 -34
- package/components/custom-formly/types/cascade/cascade.component.d.ts +0 -39
- package/components/custom-formly/types/checklist/checklist.component.d.ts +0 -42
- package/components/custom-formly/types/chips/chips.component.d.ts +0 -28
- package/components/custom-formly/types/color-picker/color-picker.component.d.ts +0 -7
- package/components/custom-formly/types/date-range/date-range.component.d.ts +0 -21
- package/components/custom-formly/types/datepicker/datepicker.component.d.ts +0 -42
- package/components/custom-formly/types/knob/knob.component.d.ts +0 -36
- package/components/custom-formly/types/multicheckbox/multicheckbox.component.d.ts +0 -44
- package/components/custom-formly/types/number/number.component.d.ts +0 -21
- package/components/custom-formly/types/quill/quill.component.d.ts +0 -43
- package/components/custom-formly/types/radio/radio.component.d.ts +0 -44
- package/components/custom-formly/types/rating/rating.component.d.ts +0 -25
- package/components/custom-formly/types/repeat/repeat.component.d.ts +0 -16
- package/components/custom-formly/types/select/select.component.d.ts +0 -54
- package/components/custom-formly/types/select-table/select-table.component.d.ts +0 -40
- package/components/custom-formly/types/select-tree/select-tree.component.d.ts +0 -43
- package/components/custom-formly/types/stepper/horizontal/stepper.component.d.ts +0 -8
- package/components/custom-formly/types/stepper/stepper.type.d.ts +0 -6
- package/components/custom-formly/types/stepper/vertical/stepper.component.d.ts +0 -8
- package/components/custom-formly/types/table/table.component.d.ts +0 -43
- package/components/custom-formly/types/tabs/tab.component.d.ts +0 -7
- package/components/custom-formly/types/tags/tags.component.d.ts +0 -41
- package/components/custom-formly/types/textarea/textarea.component.d.ts +0 -13
- package/components/custom-formly/types/upload/upload.component.d.ts +0 -32
- package/components/custom-formly/wrappers/addons/addons.component.d.ts +0 -10
- package/components/custom-formly/wrappers/card/card.component.d.ts +0 -6
- package/components/custom-formly/wrappers/expansion/expansion.component.d.ts +0 -6
- package/components/custom-formly/wrappers/form-field/form-field.component.d.ts +0 -25
- package/components/custom-formly/wrappers/panel/panel.component.d.ts +0 -6
- package/components/date-range/date-range.component.d.ts +0 -137
- package/components/date-range/public-api.d.ts +0 -1
- package/components/drawer/drawer.component.d.ts +0 -75
- package/components/drawer/drawer.service.d.ts +0 -26
- package/components/drawer/drawer.types.d.ts +0 -2
- package/components/drawer/public-api.d.ts +0 -3
- package/components/fullscreen/fullscreen.component.d.ts +0 -11
- package/components/fullscreen/public-api.d.ts +0 -1
- package/components/highlight/highlight.component.d.ts +0 -21
- package/components/highlight/highlight.service.d.ts +0 -7
- package/components/highlight/public-api.d.ts +0 -2
- package/components/image-viewer/image-viewer.component.d.ts +0 -76
- package/components/image-viewer/public-api.d.ts +0 -1
- package/components/json-editor/json-editor.component.d.ts +0 -25
- package/components/json-editor/public-api.d.ts +0 -1
- package/components/knob-input/knob-input.component.d.ts +0 -95
- package/components/knob-input/public-api.d.ts +0 -1
- package/components/masonry/masonry.component.d.ts +0 -13
- package/components/masonry/public-api.d.ts +0 -1
- package/components/material-color-picker/base-color.d.ts +0 -2
- package/components/material-color-picker/material-color-picker.component.d.ts +0 -38
- package/components/material-color-picker/public-api.d.ts +0 -2
- package/components/material-color-picker/selected-color.d.ts +0 -5
- package/components/material-datetimepicker/calendar-body.d.ts +0 -42
- package/components/material-datetimepicker/calendar.d.ts +0 -145
- package/components/material-datetimepicker/clock.d.ts +0 -73
- package/components/material-datetimepicker/datetimepicker-animations.d.ts +0 -4
- package/components/material-datetimepicker/datetimepicker-errors.d.ts +0 -1
- package/components/material-datetimepicker/datetimepicker-filtertype.d.ts +0 -5
- package/components/material-datetimepicker/datetimepicker-input.d.ts +0 -106
- package/components/material-datetimepicker/datetimepicker-intl.d.ts +0 -51
- package/components/material-datetimepicker/datetimepicker-toggle.d.ts +0 -40
- package/components/material-datetimepicker/datetimepicker-types.d.ts +0 -13
- package/components/material-datetimepicker/datetimepicker.d.ts +0 -190
- package/components/material-datetimepicker/month-view.d.ts +0 -62
- package/components/material-datetimepicker/multi-year-view.d.ts +0 -74
- package/components/material-datetimepicker/public-api.d.ts +0 -10
- package/components/material-datetimepicker/time.d.ts +0 -129
- package/components/material-datetimepicker/year-view.d.ts +0 -56
- package/components/navigation/horizontal/components/basic/basic.component.d.ts +0 -27
- package/components/navigation/horizontal/components/branch/branch.component.d.ts +0 -39
- package/components/navigation/horizontal/components/divider/divider.component.d.ts +0 -23
- package/components/navigation/horizontal/components/spacer/spacer.component.d.ts +0 -23
- package/components/navigation/horizontal/horizontal.component.d.ts +0 -43
- package/components/navigation/navigation.service.d.ts +0 -71
- package/components/navigation/navigation.types.d.ts +0 -34
- package/components/navigation/public-api.d.ts +0 -4
- package/components/navigation/vertical/components/aside/aside.component.d.ts +0 -63
- package/components/navigation/vertical/components/basic/basic.component.d.ts +0 -24
- package/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +0 -74
- package/components/navigation/vertical/components/divider/divider.component.d.ts +0 -26
- package/components/navigation/vertical/components/group/group.component.d.ts +0 -36
- package/components/navigation/vertical/components/spacer/spacer.component.d.ts +0 -26
- package/components/navigation/vertical/vertical.component.d.ts +0 -176
- package/components/opt-input/models/config.d.ts +0 -14
- package/components/opt-input/otp-input.component.d.ts +0 -70
- package/components/opt-input/public-api.d.ts +0 -1
- package/components/opt-input/utils/keyboard-util.d.ts +0 -9
- package/components/opt-input/utils/object-util.d.ts +0 -3
- package/components/org-chart/designer/chart-designer.component.d.ts +0 -17
- package/components/org-chart/node/chart-node.component.d.ts +0 -17
- package/components/org-chart/node/node.type.d.ts +0 -22
- package/components/org-chart/org-chart.component.d.ts +0 -12
- package/components/org-chart/public-api.d.ts +0 -2
- package/components/pagination/pagination.component.d.ts +0 -23
- package/components/pagination/pagination.directive.d.ts +0 -40
- package/components/pagination/pagination.instance.d.ts +0 -11
- package/components/pagination/pagination.pipe.d.ts +0 -29
- package/components/pagination/pagination.service.d.ts +0 -20
- package/components/pagination/public-api.d.ts +0 -5
- package/components/password-strength/animations/index.d.ts +0 -4
- package/components/password-strength/enum.d.ts +0 -13
- package/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.d.ts +0 -11
- package/components/password-strength/mat-password-strength/mat-password-strength.component.d.ts +0 -52
- package/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.d.ts +0 -16
- package/components/password-strength/mat-password-strength-validator.d.ts +0 -6
- package/components/password-strength/public-api.d.ts +0 -3
- package/components/password-strength/regexp.class.d.ts +0 -6
- package/components/popover/popover-trigger.d.ts +0 -121
- package/components/popover/popover.component.d.ts +0 -136
- package/components/popover/popover.errors.d.ts +0 -14
- package/components/popover/popover.interfaces.d.ts +0 -43
- package/components/popover/popover.target.d.ts +0 -8
- package/components/popover/popover.type.d.ts +0 -5
- package/components/popover/public-api.d.ts +0 -4
- package/components/progress-bar/progress-bar.component.d.ts +0 -18
- package/components/progress-bar/public-api.d.ts +0 -1
- package/components/rating/public-api.d.ts +0 -1
- package/components/rating/rating.component.d.ts +0 -58
- package/components/select-search/default-options.d.ts +0 -8
- package/components/select-search/public-api.d.ts +0 -2
- package/components/select-search/select-no-entries-found.directive.d.ts +0 -5
- package/components/select-search/select-search-clear.directive.d.ts +0 -5
- package/components/select-search/select-search.component.d.ts +0 -91
- package/components/select-table/public-api.d.ts +0 -2
- package/components/select-table/select-table.component.d.ts +0 -96
- package/components/select-table/select-table.type.d.ts +0 -20
- package/components/select-tree/public-api.d.ts +0 -3
- package/components/select-tree/select-tree.component.d.ts +0 -105
- package/components/select-tree/select-tree.flatnode.d.ts +0 -6
- package/components/select-tree/select-tree.node.d.ts +0 -5
- package/components/speed-dial/public-api.d.ts +0 -2
- package/components/speed-dial/speed-dial.component.d.ts +0 -63
- package/components/timeline/public-api.d.ts +0 -2
- package/components/timeline/timeline-item/timeline-item.component.d.ts +0 -25
- package/components/timeline/timeline.component.d.ts +0 -30
- package/components/toast/models/global-config.model.d.ts +0 -12
- package/components/toast/models/toast.model.d.ts +0 -6
- package/components/toast/models/type.model.d.ts +0 -12
- package/components/toast/public-api.d.ts +0 -6
- package/components/toast/toast-modal.component.d.ts +0 -18
- package/components/toast/toast.component.d.ts +0 -17
- package/components/toast/toast.service.d.ts +0 -26
- package/components/transfer-picker/filter/filter.component.d.ts +0 -23
- package/components/transfer-picker/interface.d.ts +0 -41
- package/components/transfer-picker/public-api.d.ts +0 -7
- package/components/transfer-picker/search/search.component.d.ts +0 -14
- package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +0 -51
- package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.d.ts +0 -11
- package/components/transfer-picker/transfer-picker.component.d.ts +0 -28
- package/components/transfer-picker/transfer-picker.service.d.ts +0 -32
- package/components/treetable/public-api.d.ts +0 -2
- package/components/treetable/treetable.component.d.ts +0 -32
- package/components/treetable/treetable.interface.d.ts +0 -9
- package/components/upload/files.type.d.ts +0 -22
- package/components/upload/files.util.service.d.ts +0 -20
- package/components/upload/public-api.d.ts +0 -4
- package/components/upload/upload-queue/upload-queue.component.d.ts +0 -40
- package/components/upload/upload.component.d.ts +0 -32
- package/components/x6-angular-shape/node.d.ts +0 -11
- package/components/x6-angular-shape/public-api.d.ts +0 -3
- package/components/x6-angular-shape/registry.d.ts +0 -13
- package/components/x6-angular-shape/view.d.ts +0 -16
- package/directives/animate-on-scroll/animate-on-scroll.directive.d.ts +0 -29
- package/directives/animate-on-scroll/public-api.d.ts +0 -1
- package/directives/animate-on-scroll/scroll.service.d.ts +0 -15
- package/directives/arrow-cursor/arrow-cursor.directive.d.ts +0 -31
- package/directives/arrow-cursor/public-api.d.ts +0 -1
- package/directives/autofocus/autofocus.directive.d.ts +0 -8
- package/directives/autofocus/public-api.d.ts +0 -1
- package/directives/data-exporter/constants.d.ts +0 -26
- package/directives/data-exporter/data-exporter.directive.d.ts +0 -18
- package/directives/data-exporter/mime.d.ts +0 -5
- package/directives/data-exporter/options.d.ts +0 -21
- package/directives/data-exporter/public-api.d.ts +0 -2
- package/directives/data-exporter/services/exporters/csv-exporter.service.d.ts +0 -12
- package/directives/data-exporter/services/exporters/exporter.d.ts +0 -4
- package/directives/data-exporter/services/exporters/file-exporter.d.ts +0 -8
- package/directives/data-exporter/services/exporters/json-exporter.service.d.ts +0 -11
- package/directives/data-exporter/services/exporters/txt-exporter.service.d.ts +0 -12
- package/directives/data-exporter/services/exporters/worksheet-exporter.d.ts +0 -10
- package/directives/data-exporter/services/exporters/xls-exporter.service.d.ts +0 -14
- package/directives/data-exporter/services/exporters/xlsx-exporter.service.d.ts +0 -9
- package/directives/data-exporter/services/file-util.d.ts +0 -8
- package/directives/data-exporter/services/service-locator.service.d.ts +0 -11
- package/directives/debounce/abstract-debounce.directive.d.ts +0 -15
- package/directives/debounce/debounce-click.directive.d.ts +0 -8
- package/directives/debounce/debounce-keyup.directive.d.ts +0 -8
- package/directives/debounce/public-api.d.ts +0 -2
- package/directives/digit-only/digit-only.directive.d.ts +0 -36
- package/directives/digit-only/mask.directive.d.ts +0 -16
- package/directives/digit-only/public-api.d.ts +0 -2
- package/directives/equal-validator/equal-validator.directive.d.ts +0 -12
- package/directives/equal-validator/public-api.d.ts +0 -1
- package/lib/mock-api/mock-api.constants.d.ts +0 -2
- package/lib/mock-api/mock-api.interceptor.d.ts +0 -12
- package/lib/mock-api/mock-api.request-handler.d.ts +0 -16
- package/lib/mock-api/mock-api.service.d.ts +0 -20
- package/lib/mock-api/mock-api.types.d.ts +0 -7
- package/lib/mock-api/mock-api.utils.d.ts +0 -3
- package/lib/mock-api/public-api.d.ts +0 -5
- package/pipes/bytes/bytes.pipe.d.ts +0 -7
- package/pipes/bytes/public-api.d.ts +0 -1
- package/pipes/date-format/date-format.pipe.d.ts +0 -7
- package/pipes/date-format/public-api.d.ts +0 -1
- package/pipes/find-by-key/find-by-key.pipe.d.ts +0 -7
- package/pipes/find-by-key/public-api.d.ts +0 -1
- package/pipes/group-by/group-by.pipe.d.ts +0 -7
- package/pipes/group-by/public-api.d.ts +0 -1
- package/pipes/keys/keys.pipe.d.ts +0 -7
- package/pipes/keys/public-api.d.ts +0 -1
- package/pipes/secure/public-api.d.ts +0 -1
- package/pipes/secure/secure-pipe.d.ts +0 -18
- package/pipes/uppercase/public-api.d.ts +0 -1
- package/pipes/uppercase/uppercase.pipe.d.ts +0 -7
- package/public-api.d.ts +0 -1
- package/services/alert/alert.dialog.d.ts +0 -11
- package/services/alert/alert.message.d.ts +0 -8
- package/services/alert/alert.service.d.ts +0 -37
- package/services/alert/enum.d.ts +0 -12
- package/services/alert/public-api.d.ts +0 -4
- package/services/config/config.constants.d.ts +0 -6
- package/services/config/config.service.d.ts +0 -11
- package/services/config/public-api.d.ts +0 -3
- package/services/config/urlStateConfig.service.d.ts +0 -10
- package/services/confirmation/confirmation.service.d.ts +0 -12
- package/services/confirmation/confirmation.types.d.ts +0 -21
- package/services/confirmation/dialog/dialog.component.d.ts +0 -10
- package/services/confirmation/public-api.d.ts +0 -2
- package/services/data/data.service.d.ts +0 -20
- package/services/data/public-api.d.ts +0 -1
- package/services/export-as/export-as-config.model.d.ts +0 -8
- package/services/export-as/export-as.service.d.ts +0 -43
- package/services/export-as/public-api.d.ts +0 -2
- package/services/loading/loading.interceptor.d.ts +0 -12
- package/services/loading/loading.service.d.ts +0 -24
- package/services/loading/public-api.d.ts +0 -2
- package/services/local-storage/local-storage.service.d.ts +0 -8
- package/services/local-storage/public-api.d.ts +0 -1
- package/services/media-watcher/media-watcher.service.d.ts +0 -20
- package/services/media-watcher/public-api.d.ts +0 -1
- package/services/platform/platform.service.d.ts +0 -9
- package/services/platform/public-api.d.ts +0 -1
- package/services/splash-screen/public-api.d.ts +0 -1
- package/services/splash-screen/splash-screen.service.d.ts +0 -14
- package/services/title/public-api.d.ts +0 -1
- package/services/title/title.service.d.ts +0 -13
- package/services/translation/public-api.d.ts +0 -1
- package/services/translation/translation.service.d.ts +0 -20
- package/services/utils/public-api.d.ts +0 -1
- package/services/utils/utils.service.d.ts +0 -60
- package/validators/public-api.d.ts +0 -1
- package/validators/validators.d.ts +0 -5
- package/version/public-api.d.ts +0 -1
- package/version/version.d.ts +0 -9
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
2
|
-
import * as
|
|
3
|
-
import {
|
|
2
|
+
import * as i1 from '@angular/common';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import {
|
|
6
|
-
import * as
|
|
7
|
-
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { inject, DOCUMENT, Input, Output, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
|
|
6
|
+
import * as i2 from '@angular/forms';
|
|
7
|
+
import { NgControl, FormBuilder, FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
8
8
|
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
9
9
|
import { isNil } from 'lodash';
|
|
10
10
|
import { Subject } from 'rxjs';
|
|
@@ -47,10 +47,7 @@ class ObjectUtil {
|
|
|
47
47
|
/* eslint-disable @typescript-eslint/member-ordering */
|
|
48
48
|
let NEXT_ID = 0;
|
|
49
49
|
class CmatOtpInputComponent {
|
|
50
|
-
constructor(
|
|
51
|
-
this.ngControl = ngControl;
|
|
52
|
-
this._document = _document;
|
|
53
|
-
this._formBuilder = _formBuilder;
|
|
50
|
+
constructor() {
|
|
54
51
|
this.id = `cmat-otp-input-${NEXT_ID++}`;
|
|
55
52
|
this.onBlur = new Subject();
|
|
56
53
|
this.onInputChange = new Subject();
|
|
@@ -60,6 +57,9 @@ class CmatOtpInputComponent {
|
|
|
60
57
|
.substring(2) + new Date().getTime().toString(36);
|
|
61
58
|
this.stateChanges = new Subject();
|
|
62
59
|
this.focused = false;
|
|
60
|
+
this.ngControl = inject(NgControl, { optional: true, self: true });
|
|
61
|
+
this._document = inject(DOCUMENT);
|
|
62
|
+
this._formBuilder = inject(FormBuilder);
|
|
63
63
|
this._unsubscribeAll = new Subject();
|
|
64
64
|
this._activeFocusCount = 0;
|
|
65
65
|
this._placeholder = '';
|
|
@@ -338,7 +338,7 @@ class CmatOtpInputComponent {
|
|
|
338
338
|
}
|
|
339
339
|
handlePaste(e) {
|
|
340
340
|
// Get pasted data via clipboard API
|
|
341
|
-
let clipboardData = e.clipboardData
|
|
341
|
+
let clipboardData = e.clipboardData ?? window['clipboardData'];
|
|
342
342
|
if (clipboardData) {
|
|
343
343
|
var pastedData = clipboardData.getData('Text');
|
|
344
344
|
}
|
|
@@ -415,20 +415,13 @@ class CmatOtpInputComponent {
|
|
|
415
415
|
this.onInputChange.next(val);
|
|
416
416
|
}
|
|
417
417
|
}
|
|
418
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
419
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
418
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatOtpInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
419
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: CmatOtpInputComponent, isStandalone: true, selector: "cmat-otp-input", inputs: { id: "id", config: "config", placeholder: "placeholder", value: "value", required: "required", disabled: "disabled" }, outputs: { onBlur: "onBlur", onInputChange: "onInputChange" }, host: { properties: { "attr.id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CmatOtpInputComponent }], exportAs: ["cmatOtpInput"], usesOnChanges: true, ngImport: i0, template: "@if(otpForm.controls){\r\n<div class=\"cmat-otp-input-wrapper wrapper {{config.containerClass}}\" id=\"c_{{componentKey}}\"\r\n [attr.tabindex]=\"disabled ? -1 : 0\" [ngStyle]=\"config.containerStyles\" (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut()\">\r\n <div class=\"n-o-c\">\r\n @for (item of controlKeys; track $index) {\r\n <input #inp class=\"cmat-otp-input {{config.inputClass}}\" autocomplete=\"one-time-code\" [pattern]=\"config.allowNumbersOnly ? '\\\\d*' : ''\"\r\n [type]=\"inputType\" [placeholder]=\"config.placeholder || ''\"\r\n [ngStyle]=\"config.inputStyles\" [id]=\"getBoxId($index)\"\r\n [ngClass]=\"{'error-input': (config.showError && errorState)}\"\r\n [formControl]=\"getFormControl(item)\" (paste)=\"handlePaste($event)\" (keyup)=\"onKeyUp($event,$index)\"\r\n (input)=\"onInput($event,$index)\" (keydown)=\"onKeyDown($event,$index)\">\r\n @if(config.separator && !$last){\r\n {{config.separator}}\r\n }\r\n }\r\n </div>\r\n</div>\r\n}", styles: [".cmat-otp-input{width:50px;height:50px;border-radius:4px;border:solid 1px;border-color:rgba(var(--cmat-text-hint-rgb),.5);text-align:center;font-size:32px}.cmat-otp-input:focus{background-color:var(--cmat-divider);border:solid 2px var(--cmat-primary)}.cmat-otp-input-wrapper .cmat-otp-input{margin:0 .51rem}.cmat-otp-input-wrapper .cmat-otp-input:first-child{margin-left:0}.cmat-otp-input-wrapper .cmat-otp-input:last-child{margin-right:0}.n-o-c{display:flex;align-items:center}.error-input{border-color:var(--cmat-warn)}@media screen and (max-width: 767px){.cmat-otp-input{width:40px;font-size:24px;height:40px}}@media screen and (max-width: 420px){.cmat-otp-input{width:30px;font-size:18px;height:30px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
420
420
|
}
|
|
421
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
421
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatOtpInputComponent, decorators: [{
|
|
422
422
|
type: Component,
|
|
423
|
-
args: [{ selector: 'cmat-otp-input', exportAs: 'cmatOtpInput', imports: [CommonModule, ReactiveFormsModule], providers: [{ provide: MatFormFieldControl, useExisting: CmatOtpInputComponent }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if(otpForm.controls){\r\n<div
|
|
424
|
-
}], ctorParameters: () => [
|
|
425
|
-
type: Optional
|
|
426
|
-
}, {
|
|
427
|
-
type: Self
|
|
428
|
-
}] }, { type: Document, decorators: [{
|
|
429
|
-
type: Inject,
|
|
430
|
-
args: [DOCUMENT]
|
|
431
|
-
}] }, { type: i1.FormBuilder }], propDecorators: { id: [{
|
|
423
|
+
args: [{ selector: 'cmat-otp-input', exportAs: 'cmatOtpInput', imports: [CommonModule, ReactiveFormsModule], providers: [{ provide: MatFormFieldControl, useExisting: CmatOtpInputComponent }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if(otpForm.controls){\r\n<div class=\"cmat-otp-input-wrapper wrapper {{config.containerClass}}\" id=\"c_{{componentKey}}\"\r\n [attr.tabindex]=\"disabled ? -1 : 0\" [ngStyle]=\"config.containerStyles\" (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut()\">\r\n <div class=\"n-o-c\">\r\n @for (item of controlKeys; track $index) {\r\n <input #inp class=\"cmat-otp-input {{config.inputClass}}\" autocomplete=\"one-time-code\" [pattern]=\"config.allowNumbersOnly ? '\\\\d*' : ''\"\r\n [type]=\"inputType\" [placeholder]=\"config.placeholder || ''\"\r\n [ngStyle]=\"config.inputStyles\" [id]=\"getBoxId($index)\"\r\n [ngClass]=\"{'error-input': (config.showError && errorState)}\"\r\n [formControl]=\"getFormControl(item)\" (paste)=\"handlePaste($event)\" (keyup)=\"onKeyUp($event,$index)\"\r\n (input)=\"onInput($event,$index)\" (keydown)=\"onKeyDown($event,$index)\">\r\n @if(config.separator && !$last){\r\n {{config.separator}}\r\n }\r\n }\r\n </div>\r\n</div>\r\n}", styles: [".cmat-otp-input{width:50px;height:50px;border-radius:4px;border:solid 1px;border-color:rgba(var(--cmat-text-hint-rgb),.5);text-align:center;font-size:32px}.cmat-otp-input:focus{background-color:var(--cmat-divider);border:solid 2px var(--cmat-primary)}.cmat-otp-input-wrapper .cmat-otp-input{margin:0 .51rem}.cmat-otp-input-wrapper .cmat-otp-input:first-child{margin-left:0}.cmat-otp-input-wrapper .cmat-otp-input:last-child{margin-right:0}.n-o-c{display:flex;align-items:center}.error-input{border-color:var(--cmat-warn)}@media screen and (max-width: 767px){.cmat-otp-input{width:40px;font-size:24px;height:40px}}@media screen and (max-width: 420px){.cmat-otp-input{width:30px;font-size:18px;height:30px}}\n"] }]
|
|
424
|
+
}], ctorParameters: () => [], propDecorators: { id: [{
|
|
432
425
|
type: HostBinding,
|
|
433
426
|
args: ['attr.id']
|
|
434
427
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-opt-input.mjs","sources":["../../../projects/cmat/components/opt-input/utils/keyboard-util.ts","../../../projects/cmat/components/opt-input/utils/object-util.ts","../../../projects/cmat/components/opt-input/otp-input.component.ts","../../../projects/cmat/components/opt-input/otp-input.component.html","../../../projects/cmat/components/opt-input/cmat-components-opt-input.ts"],"sourcesContent":["export class KeyboardUtil {\r\n static ifTab(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Tab');\r\n }\r\n static ifDelete(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Delete;Del');\r\n }\r\n static ifBackspace(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Backspace');\r\n }\r\n static ifRightArrow(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'ArrowRight;Right')\r\n }\r\n static ifLeftArrow(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'ArrowLeft;Left')\r\n }\r\n static ifSpacebar(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Spacebar; ')//don't remove the space after ; as this will check for space key\r\n }\r\n static ifKey(event: KeyboardEvent, keys: string): boolean {\r\n let keysToCheck = keys.split(';');\r\n return keysToCheck.some(k => k === event.key);\r\n }\r\n}\r\n","export class ObjectUtil{\r\n static keys(obj:any):string[]{\r\n if(!obj) return [];\r\n return Object.keys(obj);\r\n }\r\n}\r\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\r\n/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\r\nimport { CommonModule, DOCUMENT } from '@angular/common';\r\nimport {\r\n Component,\r\n Input,\r\n Output,\r\n AfterViewInit,\r\n Inject,\r\n OnDestroy,\r\n OnChanges,\r\n SimpleChanges,\r\n ChangeDetectionStrategy,\r\n ViewEncapsulation,\r\n Optional,\r\n Self,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule, ControlValueAccessor, FormBuilder, UntypedFormGroup, NgControl } from '@angular/forms';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { isNil } from 'lodash';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { OptInputConfig } from './models/config';\r\nimport { KeyboardUtil } from './utils/keyboard-util';\r\nimport { ObjectUtil } from './utils/object-util';\r\n\r\nlet NEXT_ID = 0;\r\n\r\n@Component({\r\n selector: 'cmat-otp-input',\r\n templateUrl: './otp-input.component.html',\r\n styleUrls: ['./otp-input.component.scss'],\r\n exportAs: 'cmatOtpInput',\r\n imports: [CommonModule, ReactiveFormsModule],\r\n providers: [{ provide: MatFormFieldControl, useExisting: CmatOtpInputComponent }],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CmatOtpInputComponent implements MatFormFieldControl<any>, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {\r\n @HostBinding('attr.id')\r\n @Input()\r\n public id = `cmat-otp-input-${NEXT_ID++}`;\r\n\r\n @Output() onBlur = new Subject<void>();\r\n @Output() onInputChange = new Subject<string | null>();\r\n @Input() config: OptInputConfig = { length: 4 };\r\n\r\n otpForm: UntypedFormGroup;\r\n currentVal: string | null;\r\n\r\n componentKey = Math.random()\r\n .toString(36)\r\n .substring(2) + new Date().getTime().toString(36);\r\n\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n focused: boolean = false;\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n private _activeFocusCount = 0;\r\n\r\n constructor(@Optional() @Self() public ngControl: NgControl, @Inject(DOCUMENT) private _document: Document, private _formBuilder: FormBuilder) {\r\n this.otpForm = this._formBuilder.group({});\r\n\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n }\r\n\r\n get inputType(): string {\r\n return this.config?.isPasswordInput\r\n ? 'password'\r\n : this.config?.allowNumbersOnly\r\n ? 'tel'\r\n : 'text';\r\n }\r\n get controlKeys(): string[] { return ObjectUtil.keys(this.otpForm?.controls) };\r\n\r\n get errorState(): boolean {\r\n if (this.ngControl == null)\r\n return false;\r\n\r\n return (this.ngControl.invalid && ((this.ngControl.dirty ?? false) || this.ngControl.touched)) ?? false;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.config) {\r\n if (this.config.length !== ((this.otpForm?.controls as any).length ?? 0)) {\r\n this.otpForm = this._formBuilder.group({});\r\n for (let index = 0; index < this.config.length; index++) {\r\n this.otpForm.addControl(this._getControlName(index), new FormControl());\r\n }\r\n this.otpForm.valueChanges.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {\r\n ObjectUtil.keys(this.otpForm.controls).forEach((k) => {\r\n var val = this.otpForm.controls[k].value;\r\n if (val && val.length > 1) {\r\n if (val.length >= this.config.length) {\r\n this.setValue(val);\r\n } else {\r\n this._rebuildValue();\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n if (this.otpForm) {\r\n if (isDisabled) {\r\n this.otpForm.disable({ emitEvent: false });\r\n } else {\r\n this.otpForm.enable({ emitEvent: false });\r\n }\r\n }\r\n }\r\n writeValue(value: string): void {\r\n this.currentVal = value || null;\r\n if (this.otpForm && this.currentVal) {\r\n this.setValue(this.currentVal);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this._onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._onTouchedChange = fn;\r\n }\r\n\r\n onFocusIn(): void {\r\n this._onTouchedChange();\r\n this._activeFocusCount++;\r\n\r\n if (!this.focused) {\r\n this.focused = true;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onFocusOut(): void {\r\n setTimeout(() => {\r\n this._activeFocusCount--;\r\n if (this._activeFocusCount === 0) {\r\n this.focused = false;\r\n this._onTouchedChange();\r\n this.onBlur.next();\r\n this.stateChanges.next();\r\n }\r\n }, 0);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.config.disableAutoFocus) {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n if (containerItem) {\r\n const ele: any = containerItem.getElementsByClassName('cmat-otp-input')[0];\r\n if (ele?.focus) {\r\n ele.focus();\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholder;\r\n }\r\n set placeholder(value: string) {\r\n this._placeholder = value;\r\n this.stateChanges.next();\r\n }\r\n private _placeholder: string = '';\r\n\r\n @Input()\r\n get value(): any {\r\n return this._value;\r\n }\r\n set value(value: any) {\r\n if (value !== this.value) {\r\n this._value = value;\r\n\r\n this.stateChanges.next();\r\n\r\n this._onModelChange(value);\r\n }\r\n }\r\n protected _value: any;\r\n\r\n get empty(): boolean {\r\n return !this._value;\r\n }\r\n\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n @Input()\r\n get required(): boolean { return this._required; }\r\n set required(value: any) {\r\n this._required = coerceBooleanProperty(value);\r\n this.stateChanges.next();\r\n }\r\n protected _required = false;\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n if (!isNil(this.ngControl?.disabled)) {\r\n return this.ngControl.disabled;\r\n }\r\n return this._disabled;\r\n }\r\n set disabled(value: BooleanInput) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n this.setDisabledState(this._disabled);\r\n\r\n if (this.focused) {\r\n this.focused = false;\r\n this.stateChanges.next();\r\n }\r\n }\r\n protected _disabled = false;\r\n\r\n setDescribedByIds(ids: string[]): void {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n\r\n if (containerItem) {\r\n if (ids.length) {\r\n containerItem.setAttribute('aria-describedby', ids.join(' '));\r\n } else {\r\n containerItem.removeAttribute('aria-describedby');\r\n }\r\n }\r\n }\r\n\r\n onContainerClick(): void {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n\r\n if (!this.focused && containerItem) {\r\n containerItem.focus();\r\n }\r\n }\r\n\r\n onKeyDown($event: any, inputIdx: number): any {\r\n const prevInputId = this.getBoxId(inputIdx - 1);\r\n const currentInputId = this.getBoxId(inputIdx);\r\n const nextInputId = this.getBoxId(inputIdx + 1);\r\n if (KeyboardUtil.ifSpacebar($event)) {\r\n $event.preventDefault();\r\n return false;\r\n }\r\n if (KeyboardUtil.ifBackspace($event)) {\r\n if (!$event.target.value) {\r\n this._clearInput(prevInputId, inputIdx - 1);\r\n this._setSelected(prevInputId);\r\n } else {\r\n this._clearInput(currentInputId, inputIdx);\r\n }\r\n this._rebuildValue();\r\n return;\r\n }\r\n if (KeyboardUtil.ifDelete($event)) {\r\n if (!$event.target.value) {\r\n this._clearInput(prevInputId, inputIdx - 1);\r\n this._setSelected(prevInputId);\r\n } else {\r\n this._clearInput(currentInputId, inputIdx);\r\n }\r\n this._rebuildValue();\r\n return;\r\n }\r\n if (this.ifValidKeyCode($event)) {\r\n $event.target.value = $event.key;\r\n let ctrlName = this._getControlName(inputIdx);\r\n this.otpForm.controls[ctrlName]?.setValue($event.key);\r\n $event.preventDefault();\r\n this._setSelected(nextInputId);\r\n this._rebuildValue();\r\n }\r\n }\r\n onInput($event: any, inputIdx: number): void {\r\n let newVal = this.currentVal ? `${this.currentVal}${$event.target.value}` : $event.target.value;\r\n if (this.config.allowNumbersOnly && !this.validateNumber(newVal)) {\r\n $event.target.value = null;\r\n $event.stopPropagation();\r\n $event.preventDefault();\r\n this._clearInput(null, inputIdx);\r\n }\r\n }\r\n\r\n\r\n onKeyUp($event: any, inputIdx: number): void {\r\n if (KeyboardUtil.ifTab($event)) {\r\n inputIdx -= 1;\r\n }\r\n const nextInputId = this.getBoxId(inputIdx + 1);\r\n const prevInputId = this.getBoxId(inputIdx - 1);\r\n if (KeyboardUtil.ifRightArrow($event)) {\r\n $event.preventDefault();\r\n this._setSelected(nextInputId);\r\n return;\r\n }\r\n if (KeyboardUtil.ifLeftArrow($event)) {\r\n $event.preventDefault();\r\n this._setSelected(prevInputId);\r\n return;\r\n }\r\n\r\n if (!$event.target.value) {\r\n return;\r\n }\r\n }\r\n\r\n validateNumber(val: string): boolean | string {\r\n return val && /^[0-9]+$/.test(val);\r\n }\r\n\r\n getBoxId(idx: string | number): string {\r\n return `otp_${idx}_${this.componentKey}`;\r\n }\r\n\r\n focusTo(eleId: string): void {\r\n const ele: any = this._document.getElementById(eleId);\r\n if (ele) {\r\n ele.focus();\r\n }\r\n }\r\n\r\n setValue(value: any): void {\r\n if (this.config.allowNumbersOnly && isNaN(value)) {\r\n return;\r\n }\r\n this.otpForm.reset();\r\n if (!value) {\r\n this._rebuildValue();\r\n return;\r\n }\r\n value = value.toString().replace(/\\s/g, ''); // remove whitespace\r\n Array.from(value).forEach((c, idx) => {\r\n if (this.otpForm.get(this._getControlName(idx))) {\r\n this.otpForm.get(this._getControlName(idx))!.setValue(c);\r\n }\r\n });\r\n if (!this.config.disableAutoFocus) {\r\n setTimeout(() => {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n var indexOfElementToFocus = value.length < this.config.length ? value.length : (this.config.length - 1);\r\n let ele: any = containerItem!.getElementsByClassName('cmat-otp-input')[indexOfElementToFocus];\r\n if (ele?.focus) {\r\n setTimeout(() => {\r\n ele.focus();\r\n }, 1);\r\n }\r\n }, 0);\r\n\r\n }\r\n this._rebuildValue();\r\n }\r\n\r\n handlePaste(e: any): void {\r\n // Get pasted data via clipboard API\r\n let clipboardData = e.clipboardData || (window as any)['clipboardData'];\r\n if (clipboardData) {\r\n var pastedData = clipboardData.getData('Text');\r\n }\r\n e.stopPropagation();\r\n e.preventDefault();\r\n if (!pastedData || (this.config.allowNumbersOnly && !this.validateNumber(pastedData))) {\r\n return;\r\n }\r\n this.setValue(pastedData);\r\n }\r\n\r\n getFormControl(key: string): FormControl {\r\n return this.otpForm.controls[key] as FormControl;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private _onModelChange: (value: any) => void = () => { };\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private _onTouchedChange: () => any = () => { };\r\n\r\n private _getControlName(idx: number): string {\r\n return `ctrl_${idx}`;\r\n }\r\n\r\n private _clearInput(eleId: string | null, inputIdx: number): void {\r\n let ctrlName = this._getControlName(inputIdx);\r\n this.otpForm.controls[ctrlName]?.setValue(null);\r\n if (eleId) {\r\n const ele = this._document.getElementById(eleId);\r\n if (ele && ele instanceof HTMLInputElement) {\r\n ele.value = '';\r\n }\r\n }\r\n }\r\n\r\n private _setSelected(eleId: string): void {\r\n this.focusTo(eleId);\r\n const ele: any = this._document.getElementById(eleId);\r\n if (ele?.setSelectionRange) {\r\n setTimeout(() => {\r\n ele.setSelectionRange(0, 1);\r\n }, 0);\r\n }\r\n }\r\n\r\n private ifValidKeyCode(event: any): boolean | string {\r\n const inp = event.key;\r\n if (this.config?.allowNumbersOnly) {\r\n return this.validateNumber(inp);\r\n }\r\n const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\r\n return isMobile ||\r\n (/^[a-zA-Z0-9%*_\\-@#$!]$/.test(inp) && inp.length == 1);\r\n }\r\n\r\n\r\n private _rebuildValue(): void {\r\n let val: string | null = null;\r\n ObjectUtil.keys(this.otpForm.controls).forEach((k) => {\r\n let ctrlVal = this.otpForm.controls[k].value;\r\n if (ctrlVal) {\r\n let isLengthExceed = ctrlVal.length > 1;\r\n let isCaseTransformEnabled = !this.config.allowNumbersOnly && this.config.letterCase && (this.config.letterCase.toLocaleLowerCase() == 'upper' || this.config.letterCase.toLocaleLowerCase() == 'lower');\r\n ctrlVal = ctrlVal[0];\r\n let transformedVal = isCaseTransformEnabled ? this.config.letterCase?.toLocaleLowerCase() == 'upper' ? ctrlVal.toUpperCase() : ctrlVal.toLowerCase() : ctrlVal;\r\n if (isCaseTransformEnabled && transformedVal == ctrlVal) {\r\n isCaseTransformEnabled = false;\r\n } else {\r\n ctrlVal = transformedVal;\r\n }\r\n if (val == null) {\r\n val = ctrlVal;\r\n } else {\r\n val += ctrlVal;\r\n }\r\n if (isLengthExceed || isCaseTransformEnabled) {\r\n this.otpForm.controls[k].setValue(ctrlVal);\r\n }\r\n }\r\n });\r\n if (this.currentVal != val) {\r\n this.currentVal = val;\r\n this._onModelChange(val);\r\n\r\n this.onInputChange.next(val);\r\n }\r\n }\r\n}\r\n\r\n","@if(otpForm.controls){\r\n<div [attr.tabindex]=\"disabled ? -1 : 0\" class=\"cmat-otp-input-wrapper wrapper {{config.containerClass}}\"\r\n id=\"c_{{componentKey}}\" [ngStyle]=\"config.containerStyles\" (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut()\">\r\n <div class=\"n-o-c\">\r\n @for (item of controlKeys; track $index) {\r\n <input #inp autocomplete=\"one-time-code\" [pattern]=\"config.allowNumbersOnly ? '\\\\d*' : ''\" [type]=\"inputType\"\r\n [placeholder]=\"config.placeholder || ''\" [ngStyle]=\"config.inputStyles\"\r\n class=\"cmat-otp-input {{config.inputClass}}\" [id]=\"getBoxId($index)\"\r\n [ngClass]=\"{'error-input': (config.showError && errorState)}\"\r\n [formControl]=\"getFormControl(item)\" (paste)=\"handlePaste($event)\" (keyup)=\"onKeyUp($event,$index)\"\r\n (input)=\"onInput($event,$index)\" (keydown)=\"onKeyDown($event,$index)\">\r\n @if(config.separator && !$last){\r\n {{config.separator}}\r\n }\r\n }\r\n </div>\r\n</div>\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmat-components-opt-input.mjs","sources":["../../../projects/cmat/components/opt-input/utils/keyboard-util.ts","../../../projects/cmat/components/opt-input/utils/object-util.ts","../../../projects/cmat/components/opt-input/otp-input.component.ts","../../../projects/cmat/components/opt-input/otp-input.component.html","../../../projects/cmat/components/opt-input/cmat-components-opt-input.ts"],"sourcesContent":["export class KeyboardUtil {\r\n static ifTab(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Tab');\r\n }\r\n static ifDelete(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Delete;Del');\r\n }\r\n static ifBackspace(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Backspace');\r\n }\r\n static ifRightArrow(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'ArrowRight;Right')\r\n }\r\n static ifLeftArrow(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'ArrowLeft;Left')\r\n }\r\n static ifSpacebar(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Spacebar; ')//don't remove the space after ; as this will check for space key\r\n }\r\n static ifKey(event: KeyboardEvent, keys: string): boolean {\r\n let keysToCheck = keys.split(';');\r\n return keysToCheck.some(k => k === event.key);\r\n }\r\n}\r\n","export class ObjectUtil{\r\n static keys(obj:any):string[]{\r\n if(!obj) return [];\r\n return Object.keys(obj);\r\n }\r\n}\r\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\r\n/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Component, Input, Output, AfterViewInit, OnDestroy, OnChanges, SimpleChanges, ChangeDetectionStrategy, ViewEncapsulation, HostBinding, DOCUMENT, inject } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule, ControlValueAccessor, FormBuilder, UntypedFormGroup, NgControl } from '@angular/forms';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { isNil } from 'lodash';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { OptInputConfig } from './models/config';\r\nimport { KeyboardUtil } from './utils/keyboard-util';\r\nimport { ObjectUtil } from './utils/object-util';\r\n\r\nlet NEXT_ID = 0;\r\n\r\n@Component({\r\n selector: 'cmat-otp-input',\r\n templateUrl: './otp-input.component.html',\r\n styleUrls: ['./otp-input.component.scss'],\r\n exportAs: 'cmatOtpInput',\r\n imports: [CommonModule, ReactiveFormsModule],\r\n providers: [{ provide: MatFormFieldControl, useExisting: CmatOtpInputComponent }],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CmatOtpInputComponent implements MatFormFieldControl<any>, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {\r\n @HostBinding('attr.id')\r\n @Input()\r\n public id = `cmat-otp-input-${NEXT_ID++}`;\r\n\r\n @Output() onBlur = new Subject<void>();\r\n @Output() onInputChange = new Subject<string | null>();\r\n @Input() config: OptInputConfig = { length: 4 };\r\n\r\n otpForm: UntypedFormGroup;\r\n currentVal: string | null;\r\n\r\n componentKey = Math.random()\r\n .toString(36)\r\n .substring(2) + new Date().getTime().toString(36);\r\n\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n focused: boolean = false;\r\n\r\n ngControl = inject(NgControl, { optional: true, self: true })!;\r\n private _document = inject<Document>(DOCUMENT);\r\n private _formBuilder = inject(FormBuilder);\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n private _activeFocusCount = 0;\r\n\r\n constructor() {\r\n this.otpForm = this._formBuilder.group({});\r\n\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n }\r\n\r\n get inputType(): string {\r\n return this.config?.isPasswordInput\r\n ? 'password'\r\n : this.config?.allowNumbersOnly\r\n ? 'tel'\r\n : 'text';\r\n }\r\n get controlKeys(): string[] { return ObjectUtil.keys(this.otpForm?.controls) };\r\n\r\n get errorState(): boolean {\r\n if (this.ngControl == null)\r\n return false;\r\n\r\n return (this.ngControl.invalid && ((this.ngControl.dirty ?? false) || this.ngControl.touched)) ?? false;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.config) {\r\n if (this.config.length !== ((this.otpForm?.controls as any).length ?? 0)) {\r\n this.otpForm = this._formBuilder.group({});\r\n for (let index = 0; index < this.config.length; index++) {\r\n this.otpForm.addControl(this._getControlName(index), new FormControl());\r\n }\r\n this.otpForm.valueChanges.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {\r\n ObjectUtil.keys(this.otpForm.controls).forEach((k) => {\r\n var val = this.otpForm.controls[k].value;\r\n if (val && val.length > 1) {\r\n if (val.length >= this.config.length) {\r\n this.setValue(val);\r\n } else {\r\n this._rebuildValue();\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n if (this.otpForm) {\r\n if (isDisabled) {\r\n this.otpForm.disable({ emitEvent: false });\r\n } else {\r\n this.otpForm.enable({ emitEvent: false });\r\n }\r\n }\r\n }\r\n writeValue(value: string): void {\r\n this.currentVal = value || null;\r\n if (this.otpForm && this.currentVal) {\r\n this.setValue(this.currentVal);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this._onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._onTouchedChange = fn;\r\n }\r\n\r\n onFocusIn(): void {\r\n this._onTouchedChange();\r\n this._activeFocusCount++;\r\n\r\n if (!this.focused) {\r\n this.focused = true;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onFocusOut(): void {\r\n setTimeout(() => {\r\n this._activeFocusCount--;\r\n if (this._activeFocusCount === 0) {\r\n this.focused = false;\r\n this._onTouchedChange();\r\n this.onBlur.next();\r\n this.stateChanges.next();\r\n }\r\n }, 0);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.config.disableAutoFocus) {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n if (containerItem) {\r\n const ele: any = containerItem.getElementsByClassName('cmat-otp-input')[0];\r\n if (ele?.focus) {\r\n ele.focus();\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholder;\r\n }\r\n set placeholder(value: string) {\r\n this._placeholder = value;\r\n this.stateChanges.next();\r\n }\r\n private _placeholder: string = '';\r\n\r\n @Input()\r\n get value(): any {\r\n return this._value;\r\n }\r\n set value(value: any) {\r\n if (value !== this.value) {\r\n this._value = value;\r\n\r\n this.stateChanges.next();\r\n\r\n this._onModelChange(value);\r\n }\r\n }\r\n protected _value: any;\r\n\r\n get empty(): boolean {\r\n return !this._value;\r\n }\r\n\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n @Input()\r\n get required(): boolean { return this._required; }\r\n set required(value: any) {\r\n this._required = coerceBooleanProperty(value);\r\n this.stateChanges.next();\r\n }\r\n protected _required = false;\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n if (!isNil(this.ngControl?.disabled)) {\r\n return this.ngControl.disabled;\r\n }\r\n return this._disabled;\r\n }\r\n set disabled(value: BooleanInput) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n this.setDisabledState(this._disabled);\r\n\r\n if (this.focused) {\r\n this.focused = false;\r\n this.stateChanges.next();\r\n }\r\n }\r\n protected _disabled = false;\r\n\r\n setDescribedByIds(ids: string[]): void {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n\r\n if (containerItem) {\r\n if (ids.length) {\r\n containerItem.setAttribute('aria-describedby', ids.join(' '));\r\n } else {\r\n containerItem.removeAttribute('aria-describedby');\r\n }\r\n }\r\n }\r\n\r\n onContainerClick(): void {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n\r\n if (!this.focused && containerItem) {\r\n containerItem.focus();\r\n }\r\n }\r\n\r\n onKeyDown($event: any, inputIdx: number): any {\r\n const prevInputId = this.getBoxId(inputIdx - 1);\r\n const currentInputId = this.getBoxId(inputIdx);\r\n const nextInputId = this.getBoxId(inputIdx + 1);\r\n if (KeyboardUtil.ifSpacebar($event)) {\r\n $event.preventDefault();\r\n return false;\r\n }\r\n if (KeyboardUtil.ifBackspace($event)) {\r\n if (!$event.target.value) {\r\n this._clearInput(prevInputId, inputIdx - 1);\r\n this._setSelected(prevInputId);\r\n } else {\r\n this._clearInput(currentInputId, inputIdx);\r\n }\r\n this._rebuildValue();\r\n return;\r\n }\r\n if (KeyboardUtil.ifDelete($event)) {\r\n if (!$event.target.value) {\r\n this._clearInput(prevInputId, inputIdx - 1);\r\n this._setSelected(prevInputId);\r\n } else {\r\n this._clearInput(currentInputId, inputIdx);\r\n }\r\n this._rebuildValue();\r\n return;\r\n }\r\n if (this.ifValidKeyCode($event)) {\r\n $event.target.value = $event.key;\r\n let ctrlName = this._getControlName(inputIdx);\r\n this.otpForm.controls[ctrlName]?.setValue($event.key);\r\n $event.preventDefault();\r\n this._setSelected(nextInputId);\r\n this._rebuildValue();\r\n }\r\n }\r\n onInput($event: any, inputIdx: number): void {\r\n let newVal = this.currentVal ? `${this.currentVal}${$event.target.value}` : $event.target.value;\r\n if (this.config.allowNumbersOnly && !this.validateNumber(newVal)) {\r\n $event.target.value = null;\r\n $event.stopPropagation();\r\n $event.preventDefault();\r\n this._clearInput(null, inputIdx);\r\n }\r\n }\r\n\r\n\r\n onKeyUp($event: any, inputIdx: number): void {\r\n if (KeyboardUtil.ifTab($event)) {\r\n inputIdx -= 1;\r\n }\r\n const nextInputId = this.getBoxId(inputIdx + 1);\r\n const prevInputId = this.getBoxId(inputIdx - 1);\r\n if (KeyboardUtil.ifRightArrow($event)) {\r\n $event.preventDefault();\r\n this._setSelected(nextInputId);\r\n return;\r\n }\r\n if (KeyboardUtil.ifLeftArrow($event)) {\r\n $event.preventDefault();\r\n this._setSelected(prevInputId);\r\n return;\r\n }\r\n\r\n if (!$event.target.value) {\r\n return;\r\n }\r\n }\r\n\r\n validateNumber(val: string): boolean | string {\r\n return val && /^[0-9]+$/.test(val);\r\n }\r\n\r\n getBoxId(idx: string | number): string {\r\n return `otp_${idx}_${this.componentKey}`;\r\n }\r\n\r\n focusTo(eleId: string): void {\r\n const ele: any = this._document.getElementById(eleId);\r\n if (ele) {\r\n ele.focus();\r\n }\r\n }\r\n\r\n setValue(value: any): void {\r\n if (this.config.allowNumbersOnly && isNaN(value)) {\r\n return;\r\n }\r\n this.otpForm.reset();\r\n if (!value) {\r\n this._rebuildValue();\r\n return;\r\n }\r\n value = value.toString().replace(/\\s/g, ''); // remove whitespace\r\n Array.from(value).forEach((c, idx) => {\r\n if (this.otpForm.get(this._getControlName(idx))) {\r\n this.otpForm.get(this._getControlName(idx))!.setValue(c);\r\n }\r\n });\r\n if (!this.config.disableAutoFocus) {\r\n setTimeout(() => {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n var indexOfElementToFocus = value.length < this.config.length ? value.length : (this.config.length - 1);\r\n let ele: any = containerItem!.getElementsByClassName('cmat-otp-input')[indexOfElementToFocus];\r\n if (ele?.focus) {\r\n setTimeout(() => {\r\n ele.focus();\r\n }, 1);\r\n }\r\n }, 0);\r\n\r\n }\r\n this._rebuildValue();\r\n }\r\n\r\n handlePaste(e: any): void {\r\n // Get pasted data via clipboard API\r\n let clipboardData = e.clipboardData ?? (window as any)['clipboardData'];\r\n if (clipboardData) {\r\n var pastedData = clipboardData.getData('Text');\r\n }\r\n e.stopPropagation();\r\n e.preventDefault();\r\n if (!pastedData || (this.config.allowNumbersOnly && !this.validateNumber(pastedData))) {\r\n return;\r\n }\r\n this.setValue(pastedData);\r\n }\r\n\r\n getFormControl(key: string): FormControl {\r\n return this.otpForm.controls[key] as FormControl;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private _onModelChange: (value: any) => void = () => { };\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private _onTouchedChange: () => any = () => { };\r\n\r\n private _getControlName(idx: number): string {\r\n return `ctrl_${idx}`;\r\n }\r\n\r\n private _clearInput(eleId: string | null, inputIdx: number): void {\r\n let ctrlName = this._getControlName(inputIdx);\r\n this.otpForm.controls[ctrlName]?.setValue(null);\r\n if (eleId) {\r\n const ele = this._document.getElementById(eleId);\r\n if (ele && ele instanceof HTMLInputElement) {\r\n ele.value = '';\r\n }\r\n }\r\n }\r\n\r\n private _setSelected(eleId: string): void {\r\n this.focusTo(eleId);\r\n const ele: any = this._document.getElementById(eleId);\r\n if (ele?.setSelectionRange) {\r\n setTimeout(() => {\r\n ele.setSelectionRange(0, 1);\r\n }, 0);\r\n }\r\n }\r\n\r\n private ifValidKeyCode(event: any): boolean | string {\r\n const inp = event.key;\r\n if (this.config?.allowNumbersOnly) {\r\n return this.validateNumber(inp);\r\n }\r\n const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\r\n return isMobile ||\r\n (/^[a-zA-Z0-9%*_\\-@#$!]$/.test(inp) && inp.length == 1);\r\n }\r\n\r\n\r\n private _rebuildValue(): void {\r\n let val: string | null = null;\r\n ObjectUtil.keys(this.otpForm.controls).forEach((k) => {\r\n let ctrlVal = this.otpForm.controls[k].value;\r\n if (ctrlVal) {\r\n let isLengthExceed = ctrlVal.length > 1;\r\n let isCaseTransformEnabled = !this.config.allowNumbersOnly && this.config.letterCase && (this.config.letterCase.toLocaleLowerCase() == 'upper' || this.config.letterCase.toLocaleLowerCase() == 'lower');\r\n ctrlVal = ctrlVal[0];\r\n let transformedVal = isCaseTransformEnabled ? this.config.letterCase?.toLocaleLowerCase() == 'upper' ? ctrlVal.toUpperCase() : ctrlVal.toLowerCase() : ctrlVal;\r\n if (isCaseTransformEnabled && transformedVal == ctrlVal) {\r\n isCaseTransformEnabled = false;\r\n } else {\r\n ctrlVal = transformedVal;\r\n }\r\n if (val == null) {\r\n val = ctrlVal;\r\n } else {\r\n val += ctrlVal;\r\n }\r\n if (isLengthExceed || isCaseTransformEnabled) {\r\n this.otpForm.controls[k].setValue(ctrlVal);\r\n }\r\n }\r\n });\r\n if (this.currentVal != val) {\r\n this.currentVal = val;\r\n this._onModelChange(val);\r\n\r\n this.onInputChange.next(val);\r\n }\r\n }\r\n}\r\n\r\n","@if(otpForm.controls){\r\n<div class=\"cmat-otp-input-wrapper wrapper {{config.containerClass}}\" id=\"c_{{componentKey}}\"\r\n [attr.tabindex]=\"disabled ? -1 : 0\" [ngStyle]=\"config.containerStyles\" (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut()\">\r\n <div class=\"n-o-c\">\r\n @for (item of controlKeys; track $index) {\r\n <input #inp class=\"cmat-otp-input {{config.inputClass}}\" autocomplete=\"one-time-code\" [pattern]=\"config.allowNumbersOnly ? '\\\\d*' : ''\"\r\n [type]=\"inputType\" [placeholder]=\"config.placeholder || ''\"\r\n [ngStyle]=\"config.inputStyles\" [id]=\"getBoxId($index)\"\r\n [ngClass]=\"{'error-input': (config.showError && errorState)}\"\r\n [formControl]=\"getFormControl(item)\" (paste)=\"handlePaste($event)\" (keyup)=\"onKeyUp($event,$index)\"\r\n (input)=\"onInput($event,$index)\" (keydown)=\"onKeyDown($event,$index)\">\r\n @if(config.separator && !$last){\r\n {{config.separator}}\r\n }\r\n }\r\n </div>\r\n</div>\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -26,10 +26,10 @@ class CmatChartNodeComponent {
|
|
|
26
26
|
this.containerClass = `cmat-org-connector-${this.direction} `;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatChartNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: CmatChartNodeComponent, isStandalone: true, selector: "cmat-org-chart-node", inputs: { node: "node", hasParent: "hasParent", enableControlHeight: "enableControlHeight", direction: "direction", detailsBtnTitle: "detailsBtnTitle" }, outputs: { detailsBtnClick: "detailsBtnClick" }, exportAs: ["cmatOrgChartNode"], usesOnChanges: true, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n@if(hasParent){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\" [style.height]=\"connectorToParentHeight\"></div>\r\n}\r\n<div class=\"cmat-org-box cmat-org-border cmat-org-background\" [ngClass]=\"node.cssClass\">\r\n @if(node.image!==''){\r\n <div class=\"cmat-org-image\" [style]=\"{ 'background-image': 'url(\\'' + node.image + '\\')' }\"\r\n [style.border-color]=\"node.color\"></div>\r\n }@else {\r\n <div class=\"text-center\">\r\n <mat-icon class=\"icon-size-16\" [svgIcon]=\"'heroicons_outline:user-circle'\">\r\n </mat-icon>\r\n </div>\r\n }\r\n\r\n <div class=\"cmat-org-container\">\r\n <div class=\"cmat-org-title\" [innerHTML]=\"node.title\" [style.color]=\"node.color\"></div>\r\n <div class=\"cmat-org-name\" [innerHTML]=\"node.name\"></div>\r\n \r\n @if(node.showDetail){\r\n <div class=\"button-container\">\r\n <button mat-flat-button class=\"cmat-org-btn cmat-org-btn-details\" color=\"primary\"\r\n (click)=\"detailsBtnClick.emit(node)\">\r\n {{ detailsBtnTitle }}\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n@if(node.children.length){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\"></div>\r\n}", styles: ["cmat-org-chart-node{display:flex;align-items:center}.cmat-org-box{width:16em;height:16em;box-sizing:border-box;overflow:overlay;position:relative}.cmat-org-container{display:flex;flex-direction:column;align-items:center}.cmat-org-title,.cmat-org-name,.button-container{flex:1}.cmat-org-title{margin-top:.5em}.cmat-org-name{margin:.3em 0}.button-container{display:flex;flex-direction:row;justify-content:center;align-items:center;position:absolute;bottom:1em;width:100%}.cmat-org-image{background-repeat:round;width:4em;height:4em;background-color:transparent!important;border-radius:50%;padding:.25em;border:3px solid var(--cmat-text-hint);margin:4px auto auto}.cmat-org-title{font-size:1.1rem;font-weight:700;text-align:center}.cmat-org-name{text-align:center;margin-bottom:8px!important}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatChartNodeComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
34
|
args: [{ selector: 'cmat-org-chart-node', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatOrgChartNode', imports: [NgClass, MatIconModule, MatButtonModule], template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n@if(hasParent){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\" [style.height]=\"connectorToParentHeight\"></div>\r\n}\r\n<div class=\"cmat-org-box cmat-org-border cmat-org-background\" [ngClass]=\"node.cssClass\">\r\n @if(node.image!==''){\r\n <div class=\"cmat-org-image\" [style]=\"{ 'background-image': 'url(\\'' + node.image + '\\')' }\"\r\n [style.border-color]=\"node.color\"></div>\r\n }@else {\r\n <div class=\"text-center\">\r\n <mat-icon class=\"icon-size-16\" [svgIcon]=\"'heroicons_outline:user-circle'\">\r\n </mat-icon>\r\n </div>\r\n }\r\n\r\n <div class=\"cmat-org-container\">\r\n <div class=\"cmat-org-title\" [innerHTML]=\"node.title\" [style.color]=\"node.color\"></div>\r\n <div class=\"cmat-org-name\" [innerHTML]=\"node.name\"></div>\r\n \r\n @if(node.showDetail){\r\n <div class=\"button-container\">\r\n <button mat-flat-button class=\"cmat-org-btn cmat-org-btn-details\" color=\"primary\"\r\n (click)=\"detailsBtnClick.emit(node)\">\r\n {{ detailsBtnTitle }}\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n@if(node.children.length){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\"></div>\r\n}", styles: ["cmat-org-chart-node{display:flex;align-items:center}.cmat-org-box{width:16em;height:16em;box-sizing:border-box;overflow:overlay;position:relative}.cmat-org-container{display:flex;flex-direction:column;align-items:center}.cmat-org-title,.cmat-org-name,.button-container{flex:1}.cmat-org-title{margin-top:.5em}.cmat-org-name{margin:.3em 0}.button-container{display:flex;flex-direction:row;justify-content:center;align-items:center;position:absolute;bottom:1em;width:100%}.cmat-org-image{background-repeat:round;width:4em;height:4em;background-color:transparent!important;border-radius:50%;padding:.25em;border:3px solid var(--cmat-text-hint);margin:4px auto auto}.cmat-org-title{font-size:1.1rem;font-weight:700;text-align:center}.cmat-org-name{text-align:center;margin-bottom:8px!important}\n"] }]
|
|
35
35
|
}], propDecorators: { node: [{
|
|
@@ -63,10 +63,10 @@ class CmatChartDesignerComponent {
|
|
|
63
63
|
this.chartNodeClass = `cmat-org-${this.direction}`;
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
67
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
66
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatChartDesignerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: CmatChartDesignerComponent, isStandalone: true, selector: "cmat-org-chart-designer", inputs: { node: "node", hasParent: "hasParent", enableControlHeight: "enableControlHeight", direction: "direction", detailsBtnTitle: "detailsBtnTitle" }, outputs: { detailsBtnClick: "detailsBtnClick" }, host: { properties: { "style.flex-direction": "this.hostClass", "style.width": "this.hostWidthClass" } }, exportAs: ["cmatOrgChartDesigner"], usesOnChanges: true, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<cmat-org-chart-node [class]=\"chartNodeClass\" [node]=\"node\" [hasParent]=\"hasParent\"\r\n [enableControlHeight]=\"enableControlHeight\" [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\"\r\n (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n</cmat-org-chart-node>\r\n\r\n<div class=\"cmat-org-reports-{{ direction }} cmat-org-reports\">\r\n @for (childNode of node.children; track $index) {\r\n <div class=\"cmat-org-org-container cmat-org-org-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector-container cmat-org-connector-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$first ? 'transparent' : ''\"></div>\r\n <div class=\"cmat-org-border\"></div>\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$last ? 'transparent' : ''\"></div>\r\n </div>\r\n <cmat-org-chart-designer [node]=\"childNode\" [hasParent]=\"true\" [enableControlHeight]=\"enableControlHeight\"\r\n [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n </cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>", styles: ["cmat-org-chart-designer{display:flex;align-items:center;flex:1}.cmat-org-vertical{flex-direction:column}.cmat-org-org-container{display:flex}.cmat-org-org-container-vertical{flex-direction:column}.cmat-org-connector{flex:1}.cmat-org-connector-container{display:flex}.cmat-org-connector-container-horizontal{flex-direction:column}.cmat-org-reports{display:flex;flex:1}.cmat-org-reports-horizontal{flex-direction:column}.cmat-org-reports-vertical{width:100%}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => CmatChartDesignerComponent), selector: "cmat-org-chart-designer", inputs: ["node", "hasParent", "enableControlHeight", "direction", "detailsBtnTitle"], outputs: ["detailsBtnClick"], exportAs: ["cmatOrgChartDesigner"] }, { kind: "component", type: i0.forwardRef(() => CmatChartNodeComponent), selector: "cmat-org-chart-node", inputs: ["node", "hasParent", "enableControlHeight", "direction", "detailsBtnTitle"], outputs: ["detailsBtnClick"], exportAs: ["cmatOrgChartNode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
68
68
|
}
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatChartDesignerComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
71
|
args: [{ selector: 'cmat-org-chart-designer', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatOrgChartDesigner', imports: [CmatChartNodeComponent, forwardRef(() => CmatChartDesignerComponent)], template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<cmat-org-chart-node [class]=\"chartNodeClass\" [node]=\"node\" [hasParent]=\"hasParent\"\r\n [enableControlHeight]=\"enableControlHeight\" [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\"\r\n (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n</cmat-org-chart-node>\r\n\r\n<div class=\"cmat-org-reports-{{ direction }} cmat-org-reports\">\r\n @for (childNode of node.children; track $index) {\r\n <div class=\"cmat-org-org-container cmat-org-org-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector-container cmat-org-connector-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$first ? 'transparent' : ''\"></div>\r\n <div class=\"cmat-org-border\"></div>\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$last ? 'transparent' : ''\"></div>\r\n </div>\r\n <cmat-org-chart-designer [node]=\"childNode\" [hasParent]=\"true\" [enableControlHeight]=\"enableControlHeight\"\r\n [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n </cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>", styles: ["cmat-org-chart-designer{display:flex;align-items:center;flex:1}.cmat-org-vertical{flex-direction:column}.cmat-org-org-container{display:flex}.cmat-org-org-container-vertical{flex-direction:column}.cmat-org-connector{flex:1}.cmat-org-connector-container{display:flex}.cmat-org-connector-container-horizontal{flex-direction:column}.cmat-org-reports{display:flex;flex:1}.cmat-org-reports-horizontal{flex-direction:column}.cmat-org-reports-vertical{width:100%}\n"] }]
|
|
72
72
|
}], propDecorators: { node: [{
|
|
@@ -96,10 +96,10 @@ class CmatOrgChartComponent {
|
|
|
96
96
|
this.detailsBtnTitle = '查看详细';
|
|
97
97
|
this.detailsBtnClick = new EventEmitter();
|
|
98
98
|
}
|
|
99
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
100
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
99
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatOrgChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
100
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: CmatOrgChartComponent, isStandalone: true, selector: "cmat-org-chart", inputs: { nodes: "nodes", enableControlHeight: "enableControlHeight", direction: "direction", detailsBtnTitle: "detailsBtnTitle" }, outputs: { detailsBtnClick: "detailsBtnClick" }, exportAs: ["cmatOrgChart"], ngImport: i0, template: "<div class=\"cmat-org\">\r\n @for (node of nodes; track $index) {\r\n <div class=\"cmat-org-self-{{ direction }}\">\r\n <cmat-org-chart-designer [node]=\"node\" [direction]=\"direction\" [enableControlHeight]=\"enableControlHeight\"\r\n [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\"></cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>", styles: [".cmat-org-horizontal{padding:1em 0}.cmat-org-vertical{padding:0 1em}.cmat-org-border{border:.1em solid var(--cmat-divider);box-sizing:border-box}.cmat-org-box{padding:.5em 1em;border-radius:.2em;box-shadow:0 2px 8px #00000059}.cmat-org-connector-horizontal{width:1em!important;height:0!important}.cmat-org-connector-vertical{width:0!important;height:1em!important}.cmat-org .cmat-org-self-vertical{margin-bottom:2%}\n"], dependencies: [{ kind: "component", type: CmatChartDesignerComponent, selector: "cmat-org-chart-designer", inputs: ["node", "hasParent", "enableControlHeight", "direction", "detailsBtnTitle"], outputs: ["detailsBtnClick"], exportAs: ["cmatOrgChartDesigner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
101
101
|
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatOrgChartComponent, decorators: [{
|
|
103
103
|
type: Component,
|
|
104
104
|
args: [{ selector: 'cmat-org-chart', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatOrgChart', imports: [CmatChartDesignerComponent], template: "<div class=\"cmat-org\">\r\n @for (node of nodes; track $index) {\r\n <div class=\"cmat-org-self-{{ direction }}\">\r\n <cmat-org-chart-designer [node]=\"node\" [direction]=\"direction\" [enableControlHeight]=\"enableControlHeight\"\r\n [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\"></cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>", styles: [".cmat-org-horizontal{padding:1em 0}.cmat-org-vertical{padding:0 1em}.cmat-org-border{border:.1em solid var(--cmat-divider);box-sizing:border-box}.cmat-org-box{padding:.5em 1em;border-radius:.2em;box-shadow:0 2px 8px #00000059}.cmat-org-connector-horizontal{width:1em!important;height:0!important}.cmat-org-connector-vertical{width:0!important;height:1em!important}.cmat-org .cmat-org-self-vertical{margin-bottom:2%}\n"] }]
|
|
105
105
|
}], propDecorators: { nodes: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-org-chart.mjs","sources":["../../../projects/cmat/components/org-chart/node/chart-node.component.ts","../../../projects/cmat/components/org-chart/node/chart-node.component.html","../../../projects/cmat/components/org-chart/designer/chart-designer.component.ts","../../../projects/cmat/components/org-chart/designer/chart-designer.component.html","../../../projects/cmat/components/org-chart/org-chart.component.ts","../../../projects/cmat/components/org-chart/org-chart.component.html","../../../projects/cmat/components/org-chart/node/node.type.ts","../../../projects/cmat/components/org-chart/cmat-components-org-chart.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { INode } from './node.type';\r\n\r\n@Component({\r\n selector: 'cmat-org-chart-node',\r\n templateUrl: './chart-node.component.html',\r\n styleUrls: ['./chart-node.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatOrgChartNode',\r\n imports: [NgClass, MatIconModule, MatButtonModule]\r\n})\r\nexport class CmatChartNodeComponent implements OnChanges {\r\n @Input() node: INode;\r\n @Input() hasParent: boolean;\r\n @Input() enableControlHeight: boolean;\r\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\r\n @Input() detailsBtnTitle: string;\r\n\r\n @Output() detailsBtnClick = new EventEmitter<INode>();\r\n\r\n containerClass: string;\r\n connectorToParentHeight = '1em';\r\n maxHeightEm = 19.2;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.enableControlHeight) {\r\n if (this.enableControlHeight && this.node.heightFactor) {\r\n let newHeight = this.node.heightFactor * this.maxHeightEm;\r\n if (this.node.heightFactor >= 2) newHeight -= this.node.heightFactor - 1;\r\n this.connectorToParentHeight = `${newHeight}em`;\r\n }\r\n }\r\n\r\n if (changes.direction) {\r\n this.containerClass = `cmat-org-connector-${this.direction} `;\r\n }\r\n }\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n@if(hasParent){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\" [style.height]=\"connectorToParentHeight\"></div>\r\n}\r\n<div class=\"cmat-org-box cmat-org-border cmat-org-background\" [ngClass]=\"node.cssClass\">\r\n @if(node.image!==''){\r\n <div class=\"cmat-org-image\" [style]=\"{ 'background-image': 'url(\\'' + node.image + '\\')' }\"\r\n [style.border-color]=\"node.color\"></div>\r\n }@else {\r\n <div class=\"text-center\">\r\n <mat-icon class=\"icon-size-16\" [svgIcon]=\"'heroicons_outline:user-circle'\">\r\n </mat-icon>\r\n </div>\r\n }\r\n\r\n <div class=\"cmat-org-container\">\r\n <div class=\"cmat-org-title\" [innerHTML]=\"node.title\" [style.color]=\"node.color\"></div>\r\n <div class=\"cmat-org-name\" [innerHTML]=\"node.name\"></div>\r\n \r\n @if(node.showDetail){\r\n <div class=\"button-container\">\r\n <button mat-flat-button class=\"cmat-org-btn cmat-org-btn-details\" color=\"primary\"\r\n (click)=\"detailsBtnClick.emit(node)\">\r\n {{ detailsBtnTitle }}\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n@if(node.children.length){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\"></div>\r\n}","import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, HostBinding, Input, OnChanges, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { CmatChartNodeComponent } from '../node/chart-node.component';\r\nimport { INode } from '../node/node.type';\r\n\r\n@Component({\r\n selector: 'cmat-org-chart-designer',\r\n templateUrl: './chart-designer.component.html',\r\n styleUrls: ['./chart-designer.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatOrgChartDesigner',\r\n imports: [CmatChartNodeComponent, forwardRef(() => CmatChartDesignerComponent)]\r\n})\r\nexport class CmatChartDesignerComponent implements OnChanges {\r\n @Input() node: INode;\r\n @Input() hasParent = false;\r\n @Input() enableControlHeight: boolean;\r\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\r\n @Input() detailsBtnTitle: string;\r\n\r\n @Output() detailsBtnClick = new EventEmitter<INode>();\r\n\r\n chartNodeClass: string;\r\n\r\n\r\n @HostBinding('style.flex-direction')\r\n get hostClass(): string {\r\n return this.direction === 'vertical' ? 'column' : '';\r\n }\r\n\r\n @HostBinding('style.width')\r\n get hostWidthClass(): string {\r\n return this.direction === 'vertical' ? 'fit-content' : '';\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.direction) {\r\n this.chartNodeClass = `cmat-org-${this.direction}`;\r\n }\r\n }\r\n\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<cmat-org-chart-node [class]=\"chartNodeClass\" [node]=\"node\" [hasParent]=\"hasParent\"\r\n [enableControlHeight]=\"enableControlHeight\" [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\"\r\n (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n</cmat-org-chart-node>\r\n\r\n<div class=\"cmat-org-reports-{{ direction }} cmat-org-reports\">\r\n @for (childNode of node.children; track $index) {\r\n <div class=\"cmat-org-org-container cmat-org-org-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector-container cmat-org-connector-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$first ? 'transparent' : ''\"></div>\r\n <div class=\"cmat-org-border\"></div>\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$last ? 'transparent' : ''\"></div>\r\n </div>\r\n <cmat-org-chart-designer [node]=\"childNode\" [hasParent]=\"true\" [enableControlHeight]=\"enableControlHeight\"\r\n [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n </cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { CmatChartDesignerComponent } from './designer/chart-designer.component';\r\nimport { INode } from './node/node.type';\r\n\r\n\r\n@Component({\r\n selector: 'cmat-org-chart',\r\n templateUrl: './org-chart.component.html',\r\n styleUrls: ['./org-chart.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatOrgChart',\r\n imports: [CmatChartDesignerComponent]\r\n})\r\nexport class CmatOrgChartComponent {\r\n @Input() nodes: INode[];\r\n @Input() enableControlHeight:boolean = false;\r\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\r\n @Input() detailsBtnTitle = '查看详细';\r\n\r\n @Output() detailsBtnClick = new EventEmitter<INode>();\r\n}\r\n","<div class=\"cmat-org\">\r\n @for (node of nodes; track $index) {\r\n <div class=\"cmat-org-self-{{ direction }}\">\r\n <cmat-org-chart-designer [node]=\"node\" [direction]=\"direction\" [enableControlHeight]=\"enableControlHeight\"\r\n [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\"></cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>","export interface INode {\r\n name: string;\r\n cssClass: string;\r\n image: string;\r\n title?: string;\r\n color?: string;\r\n showDetail: boolean;\r\n children: INode[];\r\n heightFactor?: number;\r\n}\r\n\r\nexport class ChartNode implements INode {\r\n name: string;\r\n cssClass: string;\r\n image: string;\r\n title?: string;\r\n color?: string;\r\n showDetail: boolean;\r\n children: ChartNode[];\r\n heightFactor?: number;\r\n parent?: ChartNode;\r\n\r\n constructor(structure: string[], parent?: ChartNode) {\r\n this.parent = parent;\r\n const [name, ...reports] = structure;\r\n this.name = name.split('(')[0].trim();\r\n const titleMatch = /\\(([^)]+)\\)/.exec(name);\r\n this.title = titleMatch?.[1].trim();\r\n\r\n this.children = reports.map(r => r.substring(1))\r\n .reduce((previous, current) => {\r\n if (!current.startsWith(' ')) {\r\n previous.push([]);\r\n }\r\n\r\n previous[previous.length - 1].push(current);\r\n return previous;\r\n }, [] as string[][])\r\n .map(r => new ChartNode(r, this)) ?? [];\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-components-org-chart.mjs","sources":["../../../projects/cmat/components/org-chart/node/chart-node.component.ts","../../../projects/cmat/components/org-chart/node/chart-node.component.html","../../../projects/cmat/components/org-chart/designer/chart-designer.component.ts","../../../projects/cmat/components/org-chart/designer/chart-designer.component.html","../../../projects/cmat/components/org-chart/org-chart.component.ts","../../../projects/cmat/components/org-chart/org-chart.component.html","../../../projects/cmat/components/org-chart/node/node.type.ts","../../../projects/cmat/components/org-chart/cmat-components-org-chart.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { INode } from './node.type';\r\n\r\n@Component({\r\n selector: 'cmat-org-chart-node',\r\n templateUrl: './chart-node.component.html',\r\n styleUrls: ['./chart-node.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatOrgChartNode',\r\n imports: [NgClass, MatIconModule, MatButtonModule]\r\n})\r\nexport class CmatChartNodeComponent implements OnChanges {\r\n @Input() node: INode;\r\n @Input() hasParent: boolean;\r\n @Input() enableControlHeight: boolean;\r\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\r\n @Input() detailsBtnTitle: string;\r\n\r\n @Output() detailsBtnClick = new EventEmitter<INode>();\r\n\r\n containerClass: string;\r\n connectorToParentHeight = '1em';\r\n maxHeightEm = 19.2;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.enableControlHeight) {\r\n if (this.enableControlHeight && this.node.heightFactor) {\r\n let newHeight = this.node.heightFactor * this.maxHeightEm;\r\n if (this.node.heightFactor >= 2) newHeight -= this.node.heightFactor - 1;\r\n this.connectorToParentHeight = `${newHeight}em`;\r\n }\r\n }\r\n\r\n if (changes.direction) {\r\n this.containerClass = `cmat-org-connector-${this.direction} `;\r\n }\r\n }\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n@if(hasParent){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\" [style.height]=\"connectorToParentHeight\"></div>\r\n}\r\n<div class=\"cmat-org-box cmat-org-border cmat-org-background\" [ngClass]=\"node.cssClass\">\r\n @if(node.image!==''){\r\n <div class=\"cmat-org-image\" [style]=\"{ 'background-image': 'url(\\'' + node.image + '\\')' }\"\r\n [style.border-color]=\"node.color\"></div>\r\n }@else {\r\n <div class=\"text-center\">\r\n <mat-icon class=\"icon-size-16\" [svgIcon]=\"'heroicons_outline:user-circle'\">\r\n </mat-icon>\r\n </div>\r\n }\r\n\r\n <div class=\"cmat-org-container\">\r\n <div class=\"cmat-org-title\" [innerHTML]=\"node.title\" [style.color]=\"node.color\"></div>\r\n <div class=\"cmat-org-name\" [innerHTML]=\"node.name\"></div>\r\n \r\n @if(node.showDetail){\r\n <div class=\"button-container\">\r\n <button mat-flat-button class=\"cmat-org-btn cmat-org-btn-details\" color=\"primary\"\r\n (click)=\"detailsBtnClick.emit(node)\">\r\n {{ detailsBtnTitle }}\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n@if(node.children.length){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\"></div>\r\n}","import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, HostBinding, Input, OnChanges, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { CmatChartNodeComponent } from '../node/chart-node.component';\r\nimport { INode } from '../node/node.type';\r\n\r\n@Component({\r\n selector: 'cmat-org-chart-designer',\r\n templateUrl: './chart-designer.component.html',\r\n styleUrls: ['./chart-designer.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatOrgChartDesigner',\r\n imports: [CmatChartNodeComponent, forwardRef(() => CmatChartDesignerComponent)]\r\n})\r\nexport class CmatChartDesignerComponent implements OnChanges {\r\n @Input() node: INode;\r\n @Input() hasParent = false;\r\n @Input() enableControlHeight: boolean;\r\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\r\n @Input() detailsBtnTitle: string;\r\n\r\n @Output() detailsBtnClick = new EventEmitter<INode>();\r\n\r\n chartNodeClass: string;\r\n\r\n\r\n @HostBinding('style.flex-direction')\r\n get hostClass(): string {\r\n return this.direction === 'vertical' ? 'column' : '';\r\n }\r\n\r\n @HostBinding('style.width')\r\n get hostWidthClass(): string {\r\n return this.direction === 'vertical' ? 'fit-content' : '';\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.direction) {\r\n this.chartNodeClass = `cmat-org-${this.direction}`;\r\n }\r\n }\r\n\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<cmat-org-chart-node [class]=\"chartNodeClass\" [node]=\"node\" [hasParent]=\"hasParent\"\r\n [enableControlHeight]=\"enableControlHeight\" [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\"\r\n (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n</cmat-org-chart-node>\r\n\r\n<div class=\"cmat-org-reports-{{ direction }} cmat-org-reports\">\r\n @for (childNode of node.children; track $index) {\r\n <div class=\"cmat-org-org-container cmat-org-org-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector-container cmat-org-connector-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$first ? 'transparent' : ''\"></div>\r\n <div class=\"cmat-org-border\"></div>\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$last ? 'transparent' : ''\"></div>\r\n </div>\r\n <cmat-org-chart-designer [node]=\"childNode\" [hasParent]=\"true\" [enableControlHeight]=\"enableControlHeight\"\r\n [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n </cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { CmatChartDesignerComponent } from './designer/chart-designer.component';\r\nimport { INode } from './node/node.type';\r\n\r\n\r\n@Component({\r\n selector: 'cmat-org-chart',\r\n templateUrl: './org-chart.component.html',\r\n styleUrls: ['./org-chart.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatOrgChart',\r\n imports: [CmatChartDesignerComponent]\r\n})\r\nexport class CmatOrgChartComponent {\r\n @Input() nodes: INode[];\r\n @Input() enableControlHeight:boolean = false;\r\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\r\n @Input() detailsBtnTitle = '查看详细';\r\n\r\n @Output() detailsBtnClick = new EventEmitter<INode>();\r\n}\r\n","<div class=\"cmat-org\">\r\n @for (node of nodes; track $index) {\r\n <div class=\"cmat-org-self-{{ direction }}\">\r\n <cmat-org-chart-designer [node]=\"node\" [direction]=\"direction\" [enableControlHeight]=\"enableControlHeight\"\r\n [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\"></cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>","export interface INode {\r\n name: string;\r\n cssClass: string;\r\n image: string;\r\n title?: string;\r\n color?: string;\r\n showDetail: boolean;\r\n children: INode[];\r\n heightFactor?: number;\r\n}\r\n\r\nexport class ChartNode implements INode {\r\n name: string;\r\n cssClass: string;\r\n image: string;\r\n title?: string;\r\n color?: string;\r\n showDetail: boolean;\r\n children: ChartNode[];\r\n heightFactor?: number;\r\n parent?: ChartNode;\r\n\r\n constructor(structure: string[], parent?: ChartNode) {\r\n this.parent = parent;\r\n const [name, ...reports] = structure;\r\n this.name = name.split('(')[0].trim();\r\n const titleMatch = /\\(([^)]+)\\)/.exec(name);\r\n this.title = titleMatch?.[1].trim();\r\n\r\n this.children = reports.map(r => r.substring(1))\r\n .reduce((previous, current) => {\r\n if (!current.startsWith(' ')) {\r\n previous.push([]);\r\n }\r\n\r\n previous[previous.length - 1].push(current);\r\n return previous;\r\n }, [] as string[][])\r\n .map(r => new ChartNode(r, this)) ?? [];\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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"}
|